home *** CD-ROM | disk | FTP | other *** search
Text File | 1990-01-15 | 44.5 KB | 1,290 lines |
- Newsgroups: comp.sources.misc
- subject: v10i010: Calctool V2.4 - a simple calculator (Part 5 of 6).
- from: richb@Aus.Sun.COM (Rich Burridge)
- Sender: allbery@uunet.UU.NET (Brandon S. Allbery - comp.sources.misc)
-
- Posting-number: Volume 10, Issue 10
- Submitted-by: richb@Aus.Sun.COM (Rich Burridge)
- Archive-name: calctool24/part05
-
- ---- Cut Here and unpack ----
- #!/bin/sh
- # this is part 5 of a multipart archive
- # do not concatenate these parts, unpack them in order with /bin/sh
- # file x11.c continued
- #
- CurArch=5
- if test ! -r s2_seq_.tmp
- then echo "Please unpack part 1 first!"
- exit 1; fi
- ( read Scheck
- if test "$Scheck" != $CurArch
- then echo "Please unpack part $Scheck next!"
- exit 1;
- else exit 0; fi
- ) < s2_seq_.tmp || exit 1
- echo "x - Continuing file x11.c"
- sed 's/^X//' << 'SHAR_EOF' >> x11.c
- X
- X load_colors() ;
- X if (iscolor) calctool_icon = load_icon(cicon_image) ;
- X else calctool_icon = load_icon(icon_image) ;
- X
- X size.flags = PMinSize | PMaxSize | PPosition | PSize ;
- X size.x = 0 ;
- X size.y = 0 ;
- X size.max_width = size.min_width = size.width = TWIDTH ;
- X size.max_height = size.min_height = size.height = THEIGHT + DISPLAY ;
- X
- X if (strlen(geometry))
- X {
- X flags = XParseGeometry(geometry, &x, &y, &w, &h) ;
- X if (XValue & flags)
- X {
- X if (XNegative & flags)
- X x = DisplayWidth(dpy, screen) + x - size.width ;
- X size.flags |= USPosition ;
- X size.x = x ;
- X }
- X if (YValue & flags)
- X {
- X if (YNegative & flags)
- X y = DisplayHeight(dpy, screen) + y - size.height ;
- X size.flags |= USPosition ;
- X size.y = y ;
- X }
- X }
- X
- X frame = XCreateSimpleWindow(dpy, RootWindow(dpy, screen),
- X size.x, size.y, size.width, size.height,
- X CALCTOOL_BORDER_WIDTH, foregnd, backgnd) ;
- X
- X rframe = XCreateSimpleWindow(dpy, RootWindow(dpy, screen),
- X size.x + TWIDTH + 15, size.y,
- X size.width, 200,
- X CALCTOOL_BORDER_WIDTH, foregnd, backgnd) ;
- X
- X protocol_atom = XInternAtom(dpy, "WM_PROTOCOLS", False) ;
- X kill_atom = XInternAtom(dpy, "WM_DELETE_WINDOW", False) ;
- X
- X XSetStandardProperties(dpy, frame, "calctool", NULL, calctool_icon,
- X argv, argc, &size) ;
- X
- X wm_hints.icon_x = ix ;
- X wm_hints.icon_y = iy ;
- X wm_hints.input = True ;
- X wm_hints.icon_pixmap = calctool_icon ;
- X wm_hints.flags = IconPositionHint | InputHint | IconPixmapHint ;
- X if (iconic)
- X {
- X wm_hints.initial_state = IconicState ;
- X wm_hints.flags |= StateHint ;
- X }
- X XSetWMHints(dpy, frame, &wm_hints) ;
- X
- X gc_mask = GCFont | GCForeground | GCBackground | GCGraphicsExposures ;
- X gc_val.font = nfont->fid ;
- X gc_val.foreground = foregnd ;
- X gc_val.background = backgnd ;
- X gc_val.graphics_exposures = False ;
- X gc = XCreateGC(dpy, RootWindow(dpy, screen), gc_mask, &gc_val) ;
- X XSetFunction(dpy, gc, GXcopy) ;
- X
- X main_cursor = XCreateFontCursor(dpy, XC_top_left_arrow) ;
- X FGcolor.red = FGcolor.green = FGcolor.blue = 0 ;
- X BGcolor.red = BGcolor.green = BGcolor.blue = 0xffff ;
- X help_cursor = load_cursor(help_cursor_array) ;
- X}
- X
- X
- Xmake_icon() {} /* Null routine - icon created in make_frame. */
- X
- X
- Xmake_items()
- X{
- X XSelectInput(dpy, frame, FRAME_MASK) ;
- X XMapWindow(dpy, frame) ;
- X
- X XSelectInput(dpy, rframe, ExposureMask) ;
- X}
- X
- X
- Xmake_subframes() {} /* Null routine, see the make_frame routine. */
- X
- X
- Xprocess_expose(event)
- XXExposeEvent *event ;
- X{
- X int doframe, dorframe ;
- X
- X doframe = dorframe = 0 ;
- X do
- X {
- X if (event->count == 0)
- X {
- X if (event->window == frame) doframe++ ;
- X else if (event->window == rframe) dorframe++ ;
- X }
- X }
- X while (XCheckMaskEvent(dpy, ExposureMask, event)) ;
- X
- X if (dorframe && rstate) make_registers() ;
- X if (doframe) return(CFRAME_REPAINT) ;
- X}
- X
- X
- Xset_cursor(type)
- Xint type ;
- X{
- X switch (type)
- X {
- X case HELPCURSOR : XDefineCursor(dpy, frame, help_cursor) ;
- X break ;
- X case MAINCURSOR : XDefineCursor(dpy, frame, main_cursor) ;
- X }
- X}
- X
- X
- Xstart_tool()
- X{
- X while (1)
- X process_event(get_next_event()) ;
- X}
- X
- X
- Xtoggle_reg_canvas()
- X{
- X rstate = !rstate ;
- X if (rstate) XMapWindow(dpy, rframe) ;
- X else XUnmapWindow(dpy, rframe) ;
- X}
- SHAR_EOF
- echo "File x11.c is complete"
- chmod 0444 x11.c || echo "restore of x11.c fails"
- set `wc -c x11.c`;Sum=$1
- if test "$Sum" != "13680"
- then echo original size 13680, current size $Sum;fi
- echo "x - extracting xview.c (Text)"
- sed 's/^X//' << 'SHAR_EOF' > xview.c &&
- X
- X/* @(#)xview.c 1.11 89/12/21
- X *
- X * These are the XView dependent graphics routines used by calctool.
- X *
- X * Copyright (c) Rich Burridge.
- X * Sun Microsystems, Australia - All rights reserved.
- X *
- X * Permission is given to distribute these sources, as long as the
- X * copyright messages are not removed, and no monies are exchanged.
- X *
- X * No responsibility is taken for any errors or inaccuracies inherent
- X * either to the comments or the code of this program, but if
- X * reported to me then an attempt will be made to fix them.
- X */
- X
- X#include "calctool.h"
- X#include "color.h"
- X#include "extern.h"
- X#include <xview/xview.h>
- X#include <xview/canvas.h>
- X#include <xview/cms.h>
- X#include <xview/cursor.h>
- X#include <xview/sel_svc.h>
- X#include <xview/sel_attrs.h>
- X
- X#define MENU_SET (void) menu_set
- X#define NOTIFY_DO_DISPATCH (void) notify_do_dispatch
- X#define NOTIFY_INTERPOSE_DESTROY_FUNC (void) notify_interpose_destroy_func
- X#define PW_SETCMSNAME (void) pw_setcmsname
- X#define PW_PUTCOLORMAP (void) pw_putcolormap
- X#define PW_TTEXT (void) pw_ttext
- X#define PW_WRITEBACKGROUND (void) pw_writebackground
- X#define SELN_QUERY (void) seln_query
- X#define XV_SET (void) xv_set
- X#define WINDOW_DONE (void) window_done
- X
- X#define SMALLFONT "/usr/lib/fonts/fixedwidthfonts/screen.r.7"
- X#define NORMALFONT "/usr/lib/fonts/fixedwidthfonts/screen.b.14"
- X#define BIGFONT "/usr/lib/fonts/fixedwidthfonts/gallant.r.19"
- X
- Xvoid func_key_proc() ;
- Xint menu_proc() ;
- X
- XCanvas kcanvas, rcanvas ;
- XEvent *cur_event ;
- XFrame frame, rframe ;
- XIcon calctool_icon ;
- XMenu menus[MAXMENUS] ;
- XNotify_value destroy_proc() ;
- XPixfont *bfont, *font, *nfont, *sfont, *xv_pf_default(), *xv_pf_open() ;
- XCanvas_paint_window pw, cpw, rcpw ;
- XSeln_client sel_client ;
- XSeln_holder holder ;
- XSeln_rank rank = SELN_PRIMARY ;
- XSeln_result get_proc(), reply_proc() ;
- XXv_cmsdata cms_data ;
- XXv_Cursor help_cursor, main_cursor ;
- X
- Xchar colorname[CMS_NAMESIZE] ;
- Xu_char red[CALC_COLORSIZE], green[CALC_COLORSIZE], blue[CALC_COLORSIZE] ;
- X
- Xenum menu_type curmenu ; /* Current menu (if any) being processed. */
- Xint started ; /* Set just before window is displayed. */
- X
- Xshort help_cursor_array[16] = {
- X#include "help.cursor"
- X} ;
- Xmpr_static(help_cursor_pr, 16, 16, 1, help_cursor_array) ;
- X
- Xunsigned short icon_image[] = {
- X#include "calctool.icon"
- X} ;
- Xmpr_static(icon_pr, 64, 64, 1, icon_image) ;
- X
- Xshort cicon_image[] = {
- X#include "calctool.color.icon"
- X} ;
- Xmpr_static(cicon_pr, 64, 64, 8, cicon_image) ;
- X
- X
- X/*ARGSUSED*/
- Xvoid
- Xcanvas_event_proc(canvas, event, arg)
- XCanvas canvas ;
- XEvent *event ;
- Xcaddr_t arg ;
- X{
- X if (!started) return ;
- X cur_event = event ;
- X process_event(get_next_event(event)) ;
- X}
- X
- X
- Xclear_canvas(window, color)
- Xenum can_type window ;
- Xint color ;
- X{
- X int height,width ;
- X Canvas ctype ;
- X
- X if (window == KEYCANVAS)
- X {
- X pw = cpw ;
- X ctype = frame ;
- X }
- X else if (window == REGCANVAS)
- X {
- X pw = rcpw ;
- X ctype = rframe ;
- X }
- X height = (int) xv_get(ctype, XV_HEIGHT) ;
- X width = (int) xv_get(ctype, XV_WIDTH) ;
- X PW_WRITEBACKGROUND(pw, 0, 0, width, height, PIX_SRC | PIX_COLOR(color)) ;
- X}
- X
- X
- Xclose_frame()
- X{
- X if ((int) xv_get(rframe, XV_SHOW) == TRUE)
- X XV_SET(rframe, XV_SHOW, FALSE, 0) ;
- X XV_SET(frame, FRAME_CLOSED, TRUE, 0) ;
- X rstate = 0 ;
- X}
- X
- X
- Xcolor_area(x, y, width, height, color)
- Xint x, y, width, height, color ;
- X{
- X PW_WRITEBACKGROUND(cpw, x, y, width, height, PIX_SRC | PIX_COLOR(color)) ;
- X}
- X
- X
- Xcreate_menu(mtype) /* Create popup menu for right button press. */
- Xenum menu_type mtype ;
- X{
- X int i ;
- X
- X menus[(int) mtype] = xv_create(XV_NULL, MENU_COMMAND_MENU,
- X MENU_NOTIFY_PROC, menu_proc,
- X MENU_FONT, nfont,
- X 0) ;
- X for (i = 0; i < MAXREGS; i++)
- X {
- X switch (mtype)
- X {
- X case M_ACC : /* Accuracies. */
- X case M_EXCH : /* Register exchange. */
- X case M_LSHIFT : /* Left shift. */
- X case M_RCL : /* Register recall. */
- X case M_RSHIFT : /* Right shift. */
- X case M_STO : MENU_SET(menus[(int) mtype], /* Register store. */
- X MENU_STRING_ITEM, num_names[i], i+1,
- X 0) ;
- X break ;
- X case M_CON : if (strlen(con_names[i])) /* Constants. */
- X MENU_SET(menus[(int) mtype],
- X MENU_STRING_ITEM, con_names[i], i+1,
- X 0) ;
- X break ;
- X case M_FUN : if (strlen(fun_names[i])) /* Functions. */
- X MENU_SET(menus[(int) mtype],
- X MENU_STRING_ITEM, fun_names[i], i+1,
- X 0) ;
- X }
- X }
- X}
- X
- X
- Xdestroy_frame()
- X{
- X WINDOW_DONE(frame) ;
- X exit(0) ;
- X}
- X
- X
- Xdestroy_rframe(frame)
- XFrame frame ;
- X{
- X rstate = 0 ;
- X XV_SET(frame, XV_SHOW, FALSE, 0) ;
- X}
- X
- X
- X/*ARGSUSED*/
- XNotify_value
- Xdestroy_proc(client, status)
- XNotify_client client ;
- XDestroy_status status ;
- X{
- X exit(0) ;
- X}
- X
- X
- X/* This routine works rather strangely. Because menu_show does not block
- X * under XView, do_menu cannot return a valid selection. So the menu
- X * selection handling has been moved to the notification procedure, and
- X * the appropriate code in graphics.c has been isolated into a separate
- X * routine. All in all, a bit of a kludge.
- X */
- X
- Xdo_menu(mtype) /* Popup appropriate menu. */
- Xenum menu_type mtype ;
- X{
- X curmenu = mtype ;
- X menu_show(menus[(int) mtype], kcanvas, cur_event, 0) ;
- X return(0) ;
- X}
- X
- X
- Xdrawline(x1, y1, x2, y2)
- Xint x1, y1, x2, y2 ;
- X{
- X (void) pw_vector(cpw, x1, y1, x2, y2, PIX_SET, 0) ;
- X}
- X
- X
- Xdraw_regs()
- X{
- X make_registers() ;
- X XV_SET(rframe, XV_SHOW, TRUE, 0) ;
- X}
- X
- X
- Xdrawtext(x, y, window, fontno, color, str)
- Xenum font_type fontno ;
- Xenum can_type window ;
- Xint x, y, color ;
- Xchar *str ;
- X{
- X if (fontno == SFONT) font = sfont ;
- X else if (fontno == NFONT) font = nfont ;
- X else if (fontno == BFONT) font = bfont ;
- X if (window == KEYCANVAS) pw = cpw ;
- X else if (window == REGCANVAS) pw = rcpw ;
- X
- X if (color == BLACK)
- X (void) pw_text(pw, x, y, PIX_SRC | PIX_DST, font, str) ;
- X else if (color == WHITE)
- X PW_TTEXT(pw, x, y, PIX_SRC | PIX_COLOR(color), font, str) ;
- X}
- X
- X
- X/*ARGSUSED*/
- Xvoid
- Xfunc_key_proc(client_data, args)
- Xchar *client_data ;
- XSeln_function_buffer *args ;
- X{
- X get_display() ;
- X}
- X
- X
- Xget_display() /* The GET function key has been pressed. */
- X{
- X if (seln_acquire(sel_client, SELN_SHELF) == SELN_SHELF)
- X {
- X if (shelf != NULL) free(shelf) ;
- X shelf = malloc((unsigned) strlen(display)) ;
- X STRCPY(shelf, display) ; /* Safely keep copy of display. */
- X }
- X}
- X
- X
- XPixfont *
- Xget_font(name)
- Xchar *name ;
- X{
- X Pixfont *font ;
- X
- X font = xv_pf_open(name) ;
- X if (font == NULL) font = xv_pf_default() ;
- X if (font == NULL)
- X {
- X perror("couldn't get the default font.") ;
- X exit(1) ;
- X }
- X return font ;
- X}
- X
- X
- Xget_next_event(event)
- XEvent *event ;
- X{
- X static char eb[4] ; /* Event buffer. */
- X int i ;
- X
- X#ifdef SUN4_KEYBOARD
- X char *rpad = "\000\000\000=/*789456123" ;
- X char *akeys = "8264" ;
- X char *sun4keys = "\000\000\000+-\000\0000\000." ;
- X#else
- X char *rpad = "\000\000\00078945612301=" ;
- X char *akeys = "5.31" ;
- X#endif /*SUN4_KEYBOARD*/
- X
- X nextc = event_id(event) ;
- X curx = event_x(event) ;
- X cury = event_y(event) ;
- X
- X if (event_is_button(event))
- X if (event_is_down(event) && nextc == MS_LEFT) return(LEFT_DOWN) ;
- X else if (event_is_down(event) && nextc == MS_MIDDLE) return(MIDDLE_DOWN) ;
- X else if (event_is_down(event) && nextc == MS_RIGHT) return(RIGHT_DOWN) ;
- X else if (event_is_up(event) && nextc == MS_LEFT) return(LEFT_UP) ;
- X else if (event_is_up(event) && nextc == MS_MIDDLE) return(MIDDLE_UP) ;
- X else if (event_is_up(event) && nextc == MS_RIGHT) return(RIGHT_UP) ;
- X
- X/* The following code attempts to handle a numeric keypad using the right
- X * function keys. This pad differs on the Sun3 and Sun4 keyboards. There
- X * is a compile-time define which determines which keyboard setup is
- X * looked for.
- X */
- X
- X if (event_is_ascii(event) && event_is_down(event))
- X {
- X
- X/* If the last two events were escape and left square bracket.. */
- X
- X if (eb[0] && eb[1])
- X {
- X switch (nextc)
- X {
- X
- X/* Interpret the arrow keys (if they are set).
- X * R8 = ^[A R14 = ^[B R12 = ^[C R10 = ^[B
- X */
- X
- X case 'A' :
- X case 'B' :
- X case 'C' :
- X case 'D' : cur_ch = akeys[nextc - 'A'] ;
- X eb[0] = eb[1] = '\0' ;
- X return(KEYBOARD) ;
- X
- X/* Interpret the extra keys found on Sun4 keyboards.
- X * These have codes of the form: ^[<int>z where <int> is a number
- X * between 247 and 255. We're only interested in 4 of these keys.
- X * These are:
- X * ^[253z = + ^[254z = - ^[257z = 0 ^[259z = .
- X */
- X#ifdef SUN4_KEYBOARD
- X case '2' : eb[2] = '2' ;
- X break ;
- X
- X case '5' : if (eb[0] && eb[1] && eb[2])
- X {
- X eb[3] = '5' ;
- X break ;
- X }
- X else
- X
- X/* Clear event_buf and treat as normal ascii char. */
- X
- X {
- X eb[0] = eb[1] = '\0' ;
- X cur_ch = nextc ;
- X return(KEYBOARD) ;
- X }
- X
- X case '3' :
- X case '4' :
- X case '7' :
- X case '9' : if (eb[0] && eb[1] && eb[2] && eb[3])
- X {
- X cur_ch = sun4keys[nextc - '0'] ;
- X eb[0] = eb[1] = eb[2] = eb[3] = '\0' ;
- X return(KEYBOARD) ;
- X }
- X else if (eb[0] && eb[1] && eb[2] && nextc == '4')
- X {
- X eb[3] = nextc ;
- X break ;
- X }
- X else
- X
- X/* Clear event_buf and treat as normal ascii char. */
- X
- X {
- X eb[0] = eb[1] = '\0' ;
- X cur_ch = nextc ;
- X return(KEYBOARD) ;
- X }
- X#endif /*SUN4_KEYBOARD*/
- X
- X default : eb[0] = eb[1] = eb[2] = eb[3] = '\0' ;
- X }
- X }
- X
- X/* If previous events are ^[[ : set buffer */
- X
- X else if (nextc == '[' && eb[0]) /* Check for left square bracket. */
- X eb[1] = '[' ;
- X else if (nextc == '\033') /* Check for escape char. */
- X eb[0] = '\033' ;
- X else
- X {
- X
- X/* All the rest of the ASCII characters. */
- X
- X eb[0] = eb[1] = '\0' ;
- X cur_ch = nextc ;
- X return(KEYBOARD) ;
- X }
- X }
- X
- X if (event_is_key_right(event) && event_is_up(event))
- X {
- X for (i = 1; i < 16; i++)
- X if (nextc == KEY_RIGHT(i))
- X {
- X cur_ch = rpad[i-1] ;
- X return(KEYBOARD) ;
- X }
- X }
- X
- X if (nextc == KBD_DONE && down) return(EXIT_WINDOW) ;
- X if (nextc == LOC_WINEXIT) return(EXIT_WINDOW) ;
- X if (nextc == LOC_WINENTER) return(ENTER_WINDOW) ;
- X
- X if (nextc == WIN_RESIZE) return(CFRAME_REPAINT) ;
- X if (nextc == WIN_REPAINT) return(CFRAME_REPAINT) ;
- X
- X if ((nextc == KEY_LEFT(6)) & event_is_up(event)) return(PUT_ON_SHELF) ;
- X if ((nextc == KEY_LEFT(8)) && event_is_up(event)) return(TAKE_FROM_SHELF) ;
- X return(LASTEVENTPLUSONE) ;
- X}
- X
- X
- XSeln_result
- Xget_proc(buffer)
- XSeln_request *buffer ;
- X{
- X issel = 0 ;
- X if (*buffer->requester.context == 0)
- X {
- X if (buffer == (Seln_request *) NULL ||
- X *((Seln_attribute *) buffer->data) != SELN_REQ_CONTENTS_ASCII)
- X return ;
- X selection = buffer->data + sizeof(Seln_attribute) ;
- X *buffer->requester.context = 1 ;
- X }
- X else selection = buffer->data ;
- X issel = 1 ;
- X}
- X
- X
- Xhandle_selection() /* Handle the GET function key being pressed. */
- X{
- X char context = 0 ;
- X
- X holder = seln_inquire(rank) ;
- X if (holder.state == SELN_NONE) return ;
- X SELN_QUERY(&holder, get_proc, &context, SELN_REQ_CONTENTS_ASCII, 0, 0) ;
- X}
- X
- X
- Xinit_fonts()
- X{
- X bfont = get_font(BIGFONT) ;
- X nfont = get_font(NORMALFONT) ;
- X nfont_width = nfont->pf_defaultsize.x ;
- X sfont = get_font(SMALLFONT) ;
- X}
- X
- X
- Xinit_ws_type()
- X{
- X gtype = XVIEW ;
- X started = 0 ; /* Kludge to correctly handle repaints. */
- X return 0 ;
- X}
- X
- X
- Xload_colors() /* Create and load color map - done in make_subframes. */
- X{
- X}
- X
- X
- Xmake_frames(argc, argv)
- Xint argc ;
- Xchar *argv[] ;
- X{
- X int x, y ;
- X
- X xv_init(XV_INIT_ARGS, argc, argv, 0) ;
- X frame = xv_create(0, FRAME,
- X FRAME_ICON, calctool_icon,
- X FRAME_SHOW_LABEL, FALSE,
- X FRAME_NO_CONFIRM, TRUE,
- X XV_WIDTH, TWIDTH,
- X XV_HEIGHT, THEIGHT + DISPLAY,
- X 0) ;
- X iscolor = ((int) xv_get(frame, WIN_DEPTH) > 1) ? 1 : 0 ;
- X sel_client = seln_create(func_key_proc, reply_proc, (char *) 0) ;
- X NOTIFY_INTERPOSE_DESTROY_FUNC(frame, destroy_proc) ;
- X rframe = xv_create(frame, FRAME,
- X FRAME_SHOW_LABEL, FALSE,
- X FRAME_NO_CONFIRM, TRUE,
- X FRAME_DONE_PROC, destroy_rframe,
- X XV_X, TWIDTH + 15,
- X XV_Y, 0,
- X XV_SHOW, FALSE,
- X XV_WIDTH, TWIDTH,
- X XV_HEIGHT, 200,
- X XV_FONT, nfont,
- X 0) ;
- X
- X}
- X
- X
- Xmake_icon()
- X{
- X calctool_icon = xv_create(0, ICON,
- X XV_WIDTH, ICONWIDTH,
- X ICON_IMAGE, &icon_pr,
- X 0) ;
- X}
- X
- X
- Xmake_items()
- X{
- X main_cursor = xv_get(kcanvas, WIN_CURSOR) ;
- X
- X if (iscolor)
- X {
- X calctool_icon = (Icon) xv_get(frame, FRAME_ICON) ;
- X XV_SET(calctool_icon,
- X ICON_IMAGE, &cicon_pr,
- X WIN_CMS_NAME, colorname,
- X 0) ;
- X XV_SET(frame, FRAME_ICON, calctool_icon, 0) ;
- X }
- X
- X help_cursor = xv_create(NULL, CURSOR,
- X CURSOR_XHOT, 0,
- X CURSOR_YHOT, 0,
- X CURSOR_OP, PIX_SRC | PIX_DST,
- X CURSOR_IMAGE, &help_cursor_pr,
- X 0) ;
- X}
- X
- X
- Xmake_subframes()
- X{
- X rcanvas = xv_create(rframe, CANVAS, 0) ;
- X
- X SPRINTF(colorname, "%s%D", CALC_COLOR, getpid()) ;
- X calc_colorsetup(red, green, blue) ;
- X
- X cms_data.type = XV_STATIC_CMS ;
- X cms_data.size = CALC_COLORSIZE ;
- X cms_data.rgb_count = CALC_COLORSIZE ;
- X cms_data.index = 0 ;
- X cms_data.red = red ;
- X cms_data.green = green ;
- X cms_data.blue = blue ;
- X
- X kcanvas = xv_create(frame, CANVAS,
- X CANVAS_RETAINED, FALSE,
- X OPENWIN_AUTO_CLEAR, FALSE,
- X XV_WIDTH, TWIDTH,
- X XV_HEIGHT, THEIGHT + DISPLAY,
- X XV_FONT, nfont,
- X CANVAS_PAINTWINDOW_ATTRS,
- X WIN_CMS_NAME, colorname,
- X WIN_CMS_DATA, &cms_data,
- X WIN_CONSUME_EVENTS,
- X MS_LEFT, MS_MIDDLE, MS_RIGHT,
- X WIN_ASCII_EVENTS, KBD_USE, KBD_DONE,
- X LOC_WINENTER, LOC_WINEXIT,
- X WIN_LEFT_KEYS, WIN_TOP_KEYS, WIN_RIGHT_KEYS,
- X 0,
- X WIN_IGNORE_EVENTS,
- X LOC_MOVE, LOC_DRAG,
- X 0,
- X WIN_EVENT_PROC, canvas_event_proc,
- X 0,
- X 0) ;
- X
- X rcpw = canvas_paint_window(rcanvas) ;
- X cpw = canvas_paint_window(kcanvas) ;
- X}
- X
- X
- Xmenu_proc(menu, menu_item)
- XMenu menu ;
- XMenu_item menu_item ;
- X{
- X int choice ;
- X
- X choice = (int) menu_get(menu_item, MENU_VALUE) ;
- X if (choice) handle_menu_selection(curmenu, choice) ;
- X}
- X
- X
- X/*ARGSUSED*/
- XSeln_result
- Xreply_proc(item, context, length)
- XSeln_attribute item ;
- XSeln_replier_data *context ;
- Xint length ;
- X{
- X int size ;
- X char *destp ;
- X
- X switch (item)
- X {
- X case SELN_REQ_CONTENTS_ASCII :
- X
- X if (context->context == NULL)
- X {
- X if (shelf == NULL) return(SELN_DIDNT_HAVE) ;
- X context->context = shelf ;
- X }
- X size = strlen(context->context) ;
- X destp = (char *) context->response_pointer ;
- X STRCPY(destp, context->context) ;
- X destp += size ;
- X while ((int) destp % 4 != 0) *destp++ = '\0' ;
- X context->response_pointer = (char **) destp ;
- X *context->response_pointer++ = 0 ;
- X return(SELN_SUCCESS) ;
- X
- X case SELN_REQ_YIELD :
- X
- X *context->response_pointer++ = (char *) SELN_SUCCESS ;
- X return(SELN_SUCCESS) ;
- X
- X case SELN_REQ_BYTESIZE :
- X
- X if (shelf == NULL) return(SELN_DIDNT_HAVE) ;
- X *context->response_pointer++ = (char *) strlen(shelf) ;
- X return(SELN_SUCCESS) ;
- X
- X case SELN_REQ_END_REQUEST : return(SELN_SUCCESS) ;
- X
- X default : return(SELN_UNRECOGNIZED) ;
- X }
- X}
- X
- X
- Xset_cursor(type)
- Xint type ;
- X{
- X switch (type)
- X {
- X case HELPCURSOR : XV_SET(kcanvas, WIN_CURSOR, help_cursor, 0) ;
- X break ;
- X case MAINCURSOR : XV_SET(kcanvas, WIN_CURSOR, main_cursor, 0) ;
- X }
- X}
- X
- X
- Xstart_tool()
- X{
- X started = 1 ;
- X xv_main_loop(frame) ;
- X}
- X
- X
- Xtoggle_reg_canvas()
- X{
- X rstate = !rstate ;
- X if (rstate) draw_regs() ;
- X else XV_SET(rframe, XV_SHOW, FALSE, 0) ;
- X}
- SHAR_EOF
- chmod 0444 xview.c || echo "restore of xview.c fails"
- set `wc -c xview.c`;Sum=$1
- if test "$Sum" != "18237"
- then echo original size 18237, current size $Sum;fi
- echo "x - extracting calctool.h (Text)"
- sed 's/^X//' << 'SHAR_EOF' > calctool.h &&
- X
- X/* @(#)calctool.h 1.10 89/11/06
- X *
- X * Contains all the global definitions used by calctool.
- X *
- X * Copyright (c) Rich Burridge.
- X * Sun Microsystems, Australia - All rights reserved.
- X *
- X * Permission is given to distribute these sources, as long as the
- X * copyright messages are not removed, and no monies are exchanged.
- X *
- X * No responsibility is taken for any errors or inaccuracies inherent
- X * either to the comments or the code of this program, but if
- X * reported to me then an attempt will be made to fix them.
- X */
- X
- X#include <stdio.h>
- X#include <strings.h>
- X#include <ctype.h>
- X#include <signal.h>
- X#include <sys/types.h>
- X#include <sys/ioctl.h>
- X#include <sys/time.h>
- X#include <pwd.h>
- X#include <math.h>
- X
- Xchar *getenv(), *sprintf() ;
- X
- X#define CLOSE (void) close /* To make lint happy. */
- X#define FCLOSE (void) fclose
- X#define FFLUSH (void) fflush
- X#define FGETS (void) fgets
- X#define FPRINTF (void) fprintf
- X#define IOCTL (void) ioctl
- X#define PUTC (void) putc
- X#define READ (void) read
- X#define SELECT (void) select
- X#define SIGNAL (void) signal
- X#define SPRINTF (void) sprintf
- X#define SSCANF (void) sscanf
- X#define STRCAT (void) strcat
- X#define STRCPY (void) strcpy
- X#define STRNCAT (void) strncat
- X#define STRNCPY (void) strncpy
- X#define WRITE (void) write
- X
- X/* Various pseudo events used by the calctool program. */
- X#define CFRAME_REPAINT 100 /* Main frame needs repainting. */
- X#define RFRAME_REPAINT 101 /* Register frame needs repainting. */
- X#define ENTER_WINDOW 102 /* Mouse has enter calctool window. */
- X#define EXIT_WINDOW 103 /* Mouse has exited calctool window. */
- X#define KEYBOARD 104 /* Keyboard character was pressed. */
- X#define LEFT_DOWN 105 /* Left mouse button was depressed. */
- X#define LEFT_UP 106 /* Left mouse button was debounced. */
- X#define MIDDLE_DOWN 107 /* Middle mouse button was depressed. */
- X#define MIDDLE_UP 108 /* Middle mouse button was debounced. */
- X#define RIGHT_DOWN 109 /* Right mouse button was depressed. */
- X#define RIGHT_UP 110 /* Right mouse button was debounced. */
- X#define TAKE_FROM_SHELF 111 /* PUT function key was pressed. */
- X#define PUT_ON_SHELF 112 /* GET function key was pressed. */
- X#define DIED 113 /* Calctool window has been destroyed. */
- X#define LASTEVENTPLUSONE 114 /* Not one of the above. */
- X
- X#define HELPCURSOR 0 /* Cursor types. */
- X#define MAINCURSOR 1
- X
- Xenum base_type { BIN, OCT, DEC, HEX } ; /* Base definitions. */
- X
- Xenum but_state { NORMAL, INVERTED } ; /* Calculator button states. */
- X
- Xenum can_type { KEYCANVAS, REGCANVAS, PANELCANVAS } ; /* Canvas types. */
- X
- Xenum font_type { SFONT, NFONT, BFONT } ; /* Text font definitions. */
- X
- X/* Graphics supported. */
- Xenum gr_type { MGR, NEWS, SVIEW, TTY, X11, XVIEW } ;
- X
- X/* Pseudo panel items. */
- Xenum item_type { BASEITEM, DISPLAYITEM, TTYPEITEM, NUMITEM,
- X HYPITEM, INVITEM, OPITEM } ;
- X
- X/* Popup menu types. Used with some of the graphics versions. */
- Xenum menu_type {
- X M_ACC, M_CON, M_EXCH, M_FUN,
- X M_LSHIFT, M_RCL, M_RSHIFT, M_STO
- X} ;
- X
- Xenum num_type { FIX, SCI } ; /* Number display mode. */
- X
- Xenum op_type { OP_SET, OP_CLEAR, OP_NOP } ; /* Operation item settings. */
- X
- Xenum trig_type { DEG, GRAD, RAD } ; /* Trigonometric types. */
- X
- X#define BBORDER 10 /* No of pixels in border. */
- X#define BCOLS 6 /* No of columns of buttons. */
- X#define BGAP 5 /* No of pixels between buttons. */
- X#define BHEIGHT 52 /* Number of pixels for height. */
- X#define BROWS 6 /* No of rows of buttons. */
- X#define BWIDTH 44 /* No of pixels for width. */
- X
- X#define CCTRL(n) n - 96 /* Generate control character value. */
- X#define DISPLAY 30 /* Calculators numerical display. */
- X
- X#define EQUAL !strcmp /* For character comparisons. */
- X#define EXTRA 5 /* Extra useful character definitions. */
- X
- X#ifndef HELPGIVEN
- X#define HELPNAME "calctool.help"
- X#endif /*HELPGIVEN*/
- X
- X#define ICONHEIGHT 64 /* Height of calctool icon. */
- X#define ICONWIDTH 42 /* Width of calctool icon. */
- X#define INC argc-- ; argv++ ;
- X#define MAX_DIGITS 32 /* Maximum displayable number of digits. */
- X#define MAXITEMS 7 /* Maximum number of panel items. */
- X
- X#ifndef MAXLINE
- X#define MAXLINE 256 /* Length of character strings. */
- X#endif /*MAXLINE*/
- X
- X#define MAXMENUS 8 /* Maximum number of popup menus. */
- X#define MAXREGS 10 /* Maximum number of memory registers. */
- X#define MAXVKEYS 7 /* Number of valid keys after an error. */
- X#define MIN(x,y) ((x) < (y) ? (x) : (y))
- X
- X#ifndef NEWSGIVEN
- X#define NEWSNAME "calctool.ps"
- X#endif /*NEWSGIVEN*/
- X
- X#define NOBUTTONS BROWS * BCOLS
- X
- X#ifndef RCGIVEN
- X#define RCNAME ".calctoolrc"
- X#endif /*RCGIVEN*/
- X
- X#ifndef NO_4_3SIGNAL
- X#define SIGRET void
- X#else
- X#define SIGRET int
- X#endif /*NO_4_3SIGNAL*/
- X
- X#define THEIGHT (BROWS*BHEIGHT) + ((BROWS-1) * BGAP) + (2*BBORDER)
- X#define TITEMS NOBUTTONS*2 + EXTRA /* Total definitions. */
- X#define TWIDTH (BCOLS*BWIDTH) + ((BCOLS-1) * BGAP) + (2*BBORDER)
- X
- Xtypedef unsigned long BOOLEAN ;
- X
- Xstruct iteminfo /* Panel item information record. */
- X {
- X enum font_type font ; /* Font type for this panel item. */
- X int x ; /* X position of item. */
- X int y ; /* Y position of item. */
- X char text[60] ; /* Text string associated with this item. */
- X } ;
- X
- Xstruct button {
- X char *str ; /* Button display string. */
- X char value ; /* Unique button keyboard equivalent. */
- X enum op_type opdisp ; /* Display operation code during operation. */
- X char color ; /* Color of button portion. */
- X int (*func)() ; /* Function to obey on button press. */
- X} ;
- SHAR_EOF
- chmod 0444 calctool.h || echo "restore of calctool.h fails"
- set `wc -c calctool.h`;Sum=$1
- if test "$Sum" != "6292"
- then echo original size 6292, current size $Sum;fi
- echo "x - extracting color.h (Text)"
- sed 's/^X//' << 'SHAR_EOF' > color.h &&
- X
- X/* @(#)color.h 1.1 89/03/21
- X *
- X * Colormap definitions used by calctool.
- X *
- X * Copyright (c) Rich Burridge.
- X * Sun Microsystems, Australia - All rights reserved.
- X *
- X * Permission is given to distribute these sources, as long as the
- X * copyright messages are not removed, and no monies are exchanged.
- X *
- X * No responsibility is taken for any errors or inaccuracies inherent
- X * either to the comments or the code of this program, but if
- X * reported to me then an attempt will be made to fix them.
- X */
- X
- X#define CALC_COLOR "calcolor"
- X#define CALC_COLORSIZE 16
- X
- X#define WHITE 0
- X#define RED 1
- X#define ORANGE 2
- X#define YELLOW 3
- X#define LGREEN 4
- X#define BLUE 5
- X#define MAUVE 6
- X#define GREEN 7
- X#define PINK 8
- X#define LBLUE 9
- X#define GREY 10
- X#define LGREY 11
- X#define LPURPLE 12
- X#define BLACK 13
- X#define SPARE14 14
- X#define SPARE15 15
- X
- X#define calc_colorsetup(r,g,b) \
- X (r)[WHITE] = 255 ; (g)[WHITE] = 255 ; (b)[WHITE] = 255 ; \
- X (r)[RED] = 255 ; (g)[RED] = 50 ; (b)[RED] = 0 ; \
- X (r)[ORANGE] = 255 ; (g)[ORANGE] = 128 ; (b)[ORANGE] = 0 ; \
- X (r)[YELLOW] = 255 ; (g)[YELLOW] = 255 ; (b)[YELLOW] = 0 ; \
- X (r)[LGREEN] = 128 ; (g)[LGREEN] = 255 ; (b)[LGREEN] = 128 ; \
- X (r)[BLUE] = 50 ; (g)[BLUE] = 128 ; (b)[BLUE] = 255 ; \
- X (r)[MAUVE] = 128 ; (g)[MAUVE] = 128 ; (b)[MAUVE] = 255 ; \
- X (r)[GREEN] = 0 ; (g)[GREEN] = 158 ; (b)[GREEN] = 158 ; \
- X (r)[PINK] = 255 ; (g)[PINK] = 192 ; (b)[PINK] = 192 ; \
- X (r)[LBLUE] = 50 ; (g)[LBLUE] = 178 ; (b)[LBLUE] = 255 ; \
- X (r)[GREY] = 128 ; (g)[GREY] = 128 ; (b)[GREY] = 128 ; \
- X (r)[LGREY] = 200 ; (g)[LGREY] = 200 ; (b)[LGREY] = 200 ; \
- X (r)[LPURPLE] = 225 ; (g)[LPURPLE] = 225 ; (b)[LPURPLE] = 255 ; \
- X (r)[BLACK] = 0 ; (g)[BLACK] = 0 ; (b)[BLACK] = 0 ; \
- X (r)[SPARE14] = 0 ; (g)[SPARE14] = 0 ; (b)[SPARE14] = 0 ; \
- X (r)[SPARE15] = 0 ; (g)[SPARE15] = 0 ; (b)[SPARE15] = 0 ;
- SHAR_EOF
- chmod 0444 color.h || echo "restore of color.h fails"
- set `wc -c color.h`;Sum=$1
- if test "$Sum" != "2202"
- then echo original size 2202, current size $Sum;fi
- echo "x - extracting extern.h (Text)"
- sed 's/^X//' << 'SHAR_EOF' > extern.h &&
- X
- X/* @(#)extern.h 1.9 89/11/01
- X *
- X * Contains the external variable definitions used by calctool.
- X *
- X * Copyright (c) Rich Burridge.
- X * Sun Microsystems, Australia - All rights reserved.
- X *
- X * Permission is given to distribute these sources, as long as the
- X * copyright messages are not removed, and no monies are exchanged.
- X *
- X * No responsibility is taken for any errors or inaccuracies inherent
- X * either to the comments or the code of this program, but if
- X * reported to me then an attempt will be made to fix them.
- X */
- X
- Xextern char *make_fixed(), *make_number(), *make_scientific() ;
- Xextern char base_str[4][4] ; /* Strings for each base value. */
- Xextern char con_names[MAXREGS][MAXLINE] ; /* .calctoolrc constant names. */
- Xextern char cur_op ; /* Current arithmetic operation. */
- Xextern char current ; /* Current button or character pressed. */
- Xextern char digits[] ; /* Valid numerical digits. */
- Xextern char display[] ; /* Current calculator display. */
- Xextern char dtype_str[2][4] ; /* Strings for each display mode value. */
- Xextern char *exp_posn ; /* Position of the exponent sign. */
- Xextern char fnum[] ; /* Scratch area for fixed point numbers. */
- Xextern char fun_names[MAXREGS][MAXLINE] ; /* .calctoolrc function names. */
- Xextern char fun_vals[MAXREGS][MAXLINE] ; /* .calctoolrc function defs. */
- Xextern char geometry[] ; /* X11 geometry information. */
- Xextern char helpname[] ; /* Filename for helpfile. */
- Xextern char num_names[MAXREGS][2] ; /* Used by the popup menus. */
- Xextern char old_cal_value ; /* Previous calculation operator. */
- Xextern char progname[] ; /* Name of this program. */
- Xextern char pstr[] ; /* Current button text string. */
- Xextern char revtable[] ; /* Table for reversing the bits in a byte. */
- Xextern char *selection ; /* Current [Get] selection. */
- Xextern char *shelf ; /* PUT selection shelf contents. */
- Xextern char snum[] ; /* Scratch are for scientific numbers. */
- Xextern char ttype_str[3][5] ; /* Strings for each trig type value. */
- Xextern char validkeys[] ; /* Valid keys after an error condition. */
- Xextern char validmenu[] ; /* Valid keys with popup menus. */
- Xextern char x11_display[] ; /* X11 display information. */
- X
- Xextern double convert_display() ;
- Xextern double con_vals[] ; /* Selectable constants. */
- Xextern double disp_val ; /* Value of the current display. */
- Xextern double exp_p1[10][4] ;
- Xextern double last_input ; /* Previous number input by user. */
- Xextern double max_fix[] ; /* Maximum showable fixed values. */
- Xextern double mem_vals[] ; /* Memory register values. */
- Xextern double powers[11][4] ; /* Table of power values for each base. */
- Xextern double result ; /* Current calculator total value. */
- Xextern double tresults[] ; /* Current trigonometric results. */
- X
- Xextern enum base_type base ; /* Current base: BIN, OCT, DEC or HEX. */
- Xextern enum gr_type gtype ; /* What graphics system is being used. */
- Xextern enum num_type dtype ; /* Number display mode. */
- Xextern enum trig_type ttype ; /* Trigonometric type (deg, grad or rad). */
- X
- Xextern int accuracy ; /* Number of digits precision (Max 9). */
- Xextern int basevals[] ; /* Supported arithmetic bases. */
- Xextern int chxoff[] ; /* X offset for various length button strings. */
- Xextern int color ; /* Color used for current raster operation. */
- Xextern int column ; /* Column number of current key/mouse press. */
- Xextern int cur_ch ; /* Current character if keyboard event. */
- Xextern int curx ; /* Current mouse X position. */
- Xextern int cury ; /* Current mouse Y position. */
- Xextern int disp_length[] ; /* Display length in characters for each base. */
- Xextern int down ; /* Indicates if mouse button is down. */
- Xextern int error ; /* Indicates some kind of display error. */
- Xextern int hyperbolic ; /* If set, trig functions will be hyperbolic. */
- Xextern int iconic ; /* Set if window is currently iconic. */
- Xextern int inv_video ; /* Set if user wants inverse video mode. */
- Xextern int inverse ; /* If set, trig & log functions will be inversed. */
- Xextern int iscolor ; /* Set if this is a color screen. */
- Xextern int ishelp ; /* Set if there is a help file. */
- Xextern int issel ; /* Set if valid [Get] selection. */
- Xextern int ix ; /* Initial X position of the icon. */
- Xextern int iy ; /* Initial Y position of the icon. */
- Xextern int key_exp ; /* Set if entering exponent number. */
- Xextern int new_input ; /* New number input since last op. */
- Xextern int nextc ; /* Current event identifier. */
- Xextern int nfont_width ; /* Width of the normal font characters. */
- Xextern int pending ; /* Set for command with on multiple presses. */
- Xextern int pending_op ; /* Arithmetic operation for pending command. */
- Xextern int pointed ; /* Whether a decimal point has been given. */
- Xextern int portion ; /* Button portion on current key/mouse press. */
- Xextern int posspec ; /* Set if -Wp or -g option is present (for X11) */
- Xextern int row ; /* Row number of current key/mouse press. */
- Xextern int rstate ; /* Is memory register frame displayed? */
- Xextern int signgam ;
- Xextern int spaces ; /* Number of spaces in current button string. */
- Xextern int toclear ; /* Indicates if display should be cleared. */
- Xextern int tstate ; /* Current button set being displayed. */
- Xextern int wx ; /* Initial X position of the window. */
- Xextern int wy ; /* Initial Y position of the window. */
- Xextern int x ; /* X offset for text for button. */
- Xextern int y ; /* Y offset for text for button. */
- X
- Xextern FILE *hfd ; /* File descriptor for help information. */
- X
- Xextern struct iteminfo items[] ; /* Panel items. */
- Xextern struct button buttons[] ; /* Calculator button values. */
- SHAR_EOF
- chmod 0444 extern.h || echo "restore of extern.h fails"
- set `wc -c extern.h`;Sum=$1
- if test "$Sum" != "6171"
- then echo original size 6171, current size $Sum;fi
- echo "x - extracting calctool.icon (Text)"
- sed 's/^X//' << 'SHAR_EOF' > calctool.icon &&
- X/* Format_version=1, Width=64, Height=64, Depth=1, Valid_bits_per_item=16
- X */
- X 0x9555,0x5555,0x5540,0x0000,0xAAAA,0xAAAA,0xAA80,0x0000,
- X 0x5555,0x5555,0x5540,0x0000,0xFFFF,0xFFFF,0xFE80,0x0000,
- X 0x8000,0x0000,0x0340,0x0000,0xBFFF,0xFFFF,0xFA80,0x0000,
- X 0xA000,0x0000,0x0B40,0x0000,0xA000,0x0000,0x0A80,0x0000,
- X 0xA003,0x0030,0xCB40,0x0000,0xA004,0x8049,0x2A80,0x0000,
- X 0xA005,0x8059,0x6B40,0x0000,0xA006,0x8069,0xAA80,0x0000,
- X 0xA004,0x8449,0x2B40,0x0000,0xA003,0x0430,0xCA80,0x0000,
- X 0xA000,0x0000,0x0B40,0x0000,0xA000,0x0000,0x0A80,0x0000,
- X 0xBFFF,0xFFFF,0xFB40,0x0000,0x8000,0x0000,0x0280,0x0000,
- X 0x8000,0x0000,0x0340,0x0000,0xBFDF,0xEFF7,0xFA80,0x0000,
- X 0xA050,0x2814,0x0B40,0x0000,0xAF53,0x2994,0x0A80,0x0000,
- X 0xA154,0xAA55,0x1340,0x0000,0xA253,0x2A54,0xAA80,0x0000,
- X 0xA254,0xA9D4,0x4B40,0x0000,0xA454,0xA854,0xAA80,0x0000,
- X 0xA453,0x2995,0x1B40,0x0000,0xA050,0x2814,0x0A80,0x0000,
- X 0xBFDF,0xEFF7,0xFB40,0x0000,0x8000,0x0000,0x0280,0x0000,
- X 0xBFDF,0xEFF7,0xFB40,0x0000,0xA050,0x2814,0x0A80,0x0000,
- X 0xA257,0xA994,0x2B40,0x0000,0xA654,0x2A14,0x4A80,0x0000,
- X 0xAA57,0x2B94,0x4B40,0x0000,0xAF50,0xAA54,0x8A80,0x0000,
- X 0xA254,0xAA54,0x8B40,0x0000,0xA253,0x2995,0x0A80,0x0000,
- X 0xA050,0x2814,0x0B40,0x0000,0xBFDF,0xEFF7,0xFA80,0x0000,
- X 0x8000,0x0000,0x0340,0x0000,0xBFDF,0xEFF7,0xFA80,0x0000,
- X 0xA050,0x2814,0x0B40,0x0000,0xA253,0x2994,0x0A80,0x0000,
- X 0xA654,0xAA54,0x0B40,0x0000,0xA250,0xA895,0xEA80,0x0000,
- X 0xA253,0x2854,0x0B40,0x0000,0xA254,0x2A54,0x0A80,0x0000,
- X 0xA757,0xA994,0x0B40,0x0000,0xA050,0x2814,0x0A80,0x0000,
- X 0xBFDF,0xEFF7,0xFB40,0x0000,0x8000,0x0000,0x0280,0x0000,
- X 0xBFDF,0xEFF7,0xFB40,0x0000,0xA050,0x2814,0x0A80,0x0000,
- X 0xA650,0x2814,0x0B40,0x0000,0xA950,0x2814,0x4A80,0x0000,
- X 0xAB50,0x2BD4,0x4B40,0x0000,0xAD50,0x2815,0xFA80,0x0000,
- X 0xA951,0x2BD4,0x4B40,0x0000,0xA651,0x2814,0x4A80,0x0000,
- X 0xA050,0x2814,0x0B40,0x0000,0xBFDF,0xEFF7,0xFA80,0x0000,
- X 0x8000,0x0000,0x0300,0x0000,0xFFFF,0xFFFF,0xFE00,0x0000
- SHAR_EOF
- chmod 0444 calctool.icon || echo "restore of calctool.icon fails"
- set `wc -c calctool.icon`;Sum=$1
- if test "$Sum" != "1933"
- then echo original size 1933, current size $Sum;fi
- echo "x - extracting calctool.color.icon (Text)"
- sed 's/^X//' << 'SHAR_EOF' > calctool.color.icon &&
- X/* Format_version=1, Width=64, Height=64, Depth=8, Valid_bits_per_item=16
- X */
- X 0x0d00,0x000d,0x0a0d,0x0a0d,0x0a0d,0x0a0d,0x0a0d,0x0a0d,
- X 0x0a0d,0x0a0d,0x0a0d,0x0a0d,0x0a0d,0x0a0d,0x0a0d,0x0a0d,
- X 0x0a0d,0x0a0d,0x0a0d,0x0a0d,0x0a0d,0x0000,0x0000,0x0000,
- X 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- X 0x0d00,0x0d0a,0x0d0a,0x0d0a,0x0d0a,0x0d0a,0x0d0a,0x0d0a,
- X 0x0d0a,0x0d0a,0x0d0a,0x0d0a,0x0d0a,0x0d0a,0x0d0a,0x0d0a,
- X 0x0d0a,0x0d0a,0x0d0a,0x0d0a,0x0d0a,0x0000,0x0000,0x0000,
- X 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- X 0x000d,0x0a0d,0x0a0d,0x0a0d,0x0a0d,0x0a0d,0x0a0d,0x0a0d,
- X 0x0a0d,0x0a0d,0x0a0d,0x0a0d,0x0a0d,0x0a0d,0x0a0d,0x0a0d,
- X 0x0a0d,0x0a0d,0x0a0d,0x0a0d,0x0a0d,0x0000,0x0000,0x0000,
- X 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- X 0x0d0d,0x0d0d,0x0d0d,0x0d0d,0x0d0d,0x0d0d,0x0d0d,0x0d0d,
- X 0x0d0d,0x0d0d,0x0d0d,0x0d0d,0x0d0d,0x0d0d,0x0d0d,0x0d0d,
- X 0x0d0d,0x0d0d,0x0d0d,0x0d0a,0x0d0a,0x0000,0x0000,0x0000,
- X 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- X 0x0d0b,0x0b0b,0x0b0b,0x0b0b,0x0b0b,0x0b0b,0x0b0b,0x0b0b,
- X 0x0b0b,0x0b0b,0x0b0b,0x0b0b,0x0b0b,0x0b0b,0x0b0b,0x0b0b,
- X 0x0b0b,0x0b0b,0x0b0b,0x0d0d,0x0a0d,0x0000,0x0000,0x0000,
- X 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- X 0x0d0b,0x0d0d,0x0d0d,0x0d0d,0x0d0d,0x0d0d,0x0d0d,0x0d0d,
- X 0x0d0d,0x0d0d,0x0d0d,0x0d0d,0x0d0d,0x0d0d,0x0d0d,0x0d0d,
- X 0x0d0d,0x0d0d,0x0d0b,0x0d0a,0x0d0a,0x0000,0x0000,0x0000,
- X 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- X 0x0d0b,0x0d00,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- X 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- X 0x0000,0x0000,0x0d0b,0x0d0d,0x0a0d,0x0000,0x0000,0x0000,
- X 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- X 0x0d0b,0x0d00,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- X 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- X 0x0000,0x0000,0x0d0b,0x0d0a,0x0d0a,0x0000,0x0000,0x0000,
- X 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- X 0x0d0b,0x0d00,0x0000,0x0000,0x0000,0x0000,0x0000,0x0d0d,
- X 0x0000,0x0000,0x0000,0x0000,0x0000,0x0d0d,0x0000,0x0000,
- X 0x0d0d,0x0000,0x0d0b,0x0d0d,0x0a0d,0x0000,0x0000,0x0000,
- X 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- X 0x0d0b,0x0d00,0x0000,0x0000,0x0000,0x0000,0x000d,0x0000,
- X 0x0d00,0x0000,0x0000,0x0000,0x000d,0x0000,0x0d00,0x000d,
- X 0x0000,0x0d00,0x0d0b,0x0d0a,0x0d0a,0x0000,0x0000,0x0000,
- X 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- X 0x0d0b,0x0d00,0x0000,0x0000,0x0000,0x0000,0x000d,0x000d,
- X 0x0d00,0x0000,0x0000,0x0000,0x000d,0x000d,0x0d00,0x000d,
- X 0x000d,0x0d00,0x0d0b,0x0d0d,0x0a0d,0x0000,0x0000,0x0000,
- X 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- X 0x0d0b,0x0d00,0x0000,0x0000,0x0000,0x0000,0x000d,0x0d00,
- X 0x0d00,0x0000,0x0000,0x0000,0x000d,0x0d00,0x0d00,0x000d,
- X 0x0d00,0x0d00,0x0d0b,0x0d0a,0x0d0a,0x0000,0x0000,0x0000,
- X 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- X 0x0d0b,0x0d00,0x0000,0x0000,0x0000,0x0000,0x000d,0x0000,
- X 0x0d00,0x0000,0x000d,0x0000,0x000d,0x0000,0x0d00,0x000d,
- X 0x0000,0x0d00,0x0d0b,0x0d0d,0x0a0d,0x0000,0x0000,0x0000,
- X 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- X 0x0d0b,0x0d00,0x0000,0x0000,0x0000,0x0000,0x0000,0x0d0d,
- X 0x0000,0x0000,0x000d,0x0000,0x0000,0x0d0d,0x0000,0x0000,
- X 0x0d0d,0x0000,0x0d0b,0x0d0a,0x0d0a,0x0000,0x0000,0x0000,
- X 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- X 0x0d0b,0x0d00,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- X 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- X 0x0000,0x0000,0x0d0b,0x0d0d,0x0a0d,0x0000,0x0000,0x0000,
- SHAR_EOF
- echo "End of part 5"
- echo "File calctool.color.icon is continued in part 6"
- echo "6" > s2_seq_.tmp
- exit 0
-
-