diff --git a/src/globals.c b/src/globals.c index 6c2f91ec..b9cf2576 100644 --- a/src/globals.c +++ b/src/globals.c @@ -99,7 +99,7 @@ unsigned char pixdata_init[22][32]={ /* fill patterns... indexed by laynumb. GC *gcstipple,*gc, gctiled; Display *display; XRectangle xrect[1] = {{0,0,0,0}}; -Pixmap cad_icon_pixmap=0, *pixmap,save_pixmap; /* save_pixmap used to restore window */ +Pixmap cad_icon_pixmap=0, cad_icon_mask=0, *pixmap,save_pixmap; /* save_pixmap used to restore window */ XPoint *gridpoint; /* pointer to array of gridpoints, used in draw() */ XColor xcolor_array[256]; Visual *visual; diff --git a/src/icon.c b/src/icon.c index b3023bf8..33a1a8b5 100644 --- a/src/icon.c +++ b/src/icon.c @@ -23,55 +23,55 @@ /* XPM */ char *cad_icon[] = { /* columns rows colors chars-per-pixel */ -"60 41 6 1", -" c black", -". c #78787C7C7878", -"X c #0000A8A8E8E8", -"o c #B0B000000000", -"O c #8888DCDC0000", +"56 42 6 1 ", +" c #BB2200", +". c #FA0000", +"X c red", +"o c #229900", +"O c #0044EE", "+ c None", /* pixels */ -"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++", -"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++", -"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++", -"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++", -"+++++++.+++++++++++.+++++++++++.+++++++++++.+++++++++++.++++", -"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++", -"+++++++++++++++++++OOOO+++++++++++++++++++++OOOO++++++++++++", -"++++++++++++++++++++O+++++++++++++++++++++++++O+++++++++++++", -"++++++++++++++++++++o++++++++++++++++++++++++oO+++++++++++++", -"++++++++++++++++++O+O++++++++++++++++++++++O++O+++++++++++++", -"++++++++++++++++++OOO++++++++++++++++++++++OOOO+++++++++++++", -"+++++++++++++++++OO+++++++++++++++++++++++OO++++++++++++++++", -"++++++++++++++++OOO++++++++++++++++++++++OOO++++++++++++++++", -"++++++++++++++oOOOO++++++++++++++++++++oOOOO++++++++++++++++", -"+++++++++++++++XOOO+++++++++++++++++++++XOOO++++++++++++++++", -"+++++++++++++++X+OO+++++++++++++++++++++X+OO++++++++++++++++", -"+++++++.+++++++X++OOO++++++++++.++++++++X++OOOO++++++++.++++", -"+++++++++++++++X++O+o+++++++++++++++++++X++O+oO+++++++++++++", -"+++++++++++++++X++++X+++++++++++++++++++X+++++X+++++++++++++", -"+++++++++++++++X++++X+++++++++++++++++++X+++++X+++++++++++++", -"++++++ooooXXXXXX++++XXXXXXXXXXXXXXXXXXXXX+++++XXXXXXXXXXXXXX", -"++++++ooo++++++X++++X+++++++++++++++++++X+++++X+++++++++++++", -"+++++++++++++++X++++X+++++++++++++++++++X+++++X+++++++++++++", -"+++++++++++++++X++++o+++++++++++++++++++X++++oO+++++++++++++", -"+++++++++++++++X++O+O+++++++++++++++++++X++O++O+++++++++++++", -"+++++++++++++++X++OOO+++++++++++++++++++X++OOOO+++++++++++++", -"+++++++++++++++X+OO+++++++++++++++++++++X+OO++++++++++++++++", -"+++++++++++++++X+OO+++++++++++++++++++++X+OO++++++++++++++++", -"+++++++.++++++oOOOO.+++++++++++.+++++++oOOOO+++++++++++.++++", -"+++++++++++++++++OO+++++++++++++++++++++++OO++++++++++++++++", -"+++++++++++++++++OO+++++++++++++++++++++++OO++++++++++++++++", -"++++++++++++++++++OOO++++++++++++++++++++++OOOO+++++++++++++", -"++++++++++++++++++O+o++++++++++++++++++++++O+oO+++++++++++++", -"++++++++++++++++++++O+++++++++++++++++++++++++O+++++++++++++", -"++++++++++++++++++++O+++++++++++++++++++++++++O+++++++++++++", -"++++++++++++++++++++OO+++++++++++++++++++++++OO+++++++++++++", -"++++++++++++++++++++O+++++++++++++++++++++++++O+++++++++++++", -"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++", -"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++", -"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++", -"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++", -"+++++++.+++++++++++.+++++++++++.+++++++++++.+++++++++++.++++" +"++++++++++++++++++++++++++++++++++++++++++++++++++++++++", +"+++++++++++++++++++++oooo+++++++++++++++++oooo++++++++++", +"++++++++++++++++++++++o++++++++++++++++++++o++++++++++++", +"++++++++++++++++++++++o++++++++++++++++++++o++++++++++++", +"++++++++++++++++++++++O +++++++++++++++++++O +++++++++++", +"++++++++++++++++++++++O +++++++++++++++++++O +++++++++++", +"++++++++++++++++++++++O++++++++++++++++++++O++++++++++++", +"++++++++++++++++++++++O +++++++++++++++++++O +++++++++++", +"++++++++++++++++++++o+OOOOOOOO+++++++++++o+OOOOOOOO+++++", +"++++++++++++++++++++o+o++++++O+++++++++++o+o++++++O+++++", +"++++++++++++++++++o+ooo++++++O+++++++++o+ooo++++++O+++++", +"++++++++++++++++++o+o++++++++O+++++++++o+o++++++++O+++++", +"+++++++++++++++++oo+o++++++++O++++++++oo+o++++++++O+++++", +"++++++++++++OOOO oo+ooOOOOOOOO+++OOOO oo+ooOOOOOOOO+++++", +"++++++++++++O++ oo+o+ +++++++++O++ oo+o+ +++++++++++", +"++++++++++++O+++++o+o++++++++++++O+++++o+o++++++++++++++", +"++++++++++++O+++++o+o++++++++++++O+++++o+o++++++++++++++", +"++++++++++++O+++++++ooo++++++++++O+++++++ooo++++++++++++", +"++++++++++++O+++++++o+O +++++++++O+++++++o+O +++++++++++", +"++ +++++++O+++++++++O +++++++++O+++++++++O +++++++ +", +".+ OOOOOOOO+++++++++OOOOOOOOOOOO+++++++++OOOOOOOOOO ", +"X+ +++++++O+++++++++O +++++++++O+++++++++O +++++++ +", +"++++++++++++O+++++++o+O +++++++++O+++++++o+O +++++++++++", +"++++++++++++O+++++++o+o++++++++++O+++++++o+o++++++++++++", +"++++++++++++O+++++o+ooo++++++++++O+++++o+ooo++++++++++++", +"++++++++++++O+++++o+o++++++++++++O+++++o+o++++++++++++++", +"++++++++++++O+++++o+o++++++++++++O+++++o+o++++++++++++++", +"++++++++++++OOOO oo+ooOOOOOOOO+++OOOO oo+ooOOOOOOOO+++++", +"+++++++++++++++ +o+o+ +++++O++++++ +o+o+ +++++O+++++", +"++++++++++++++++++o+o++++++++O+++++++++o+o++++++++O+++++", +"++++++++++++++++++o+o++++++++O+++++++++o+o++++++++O+++++", +"++++++++++++++++++++ooo++++++O+++++++++++ooo++++++O+++++", +"++++++++++++++++++++o+OOOOOOOO+++++++++++o+OOOOOOOO+++++", +"++++++++++++++++++++++O +++++++++++++++++++O +++++++++++", +"++++++++++++++++++++++O++++++++++++++++++++O++++++++++++", +"++++++++++++++++++++++O +++++++++++++++++++O +++++++++++", +"++++++++++++++++++++++O +++++++++++++++++++O +++++++++++", +"++++++++++++++++++++++o++++++++++++++++++++o++++++++++++", +"+++++++++++++++++++++ooo+++++++++++++++++++oo+++++++++++", +"++++++++++++++++++++++o++++++++++++++++++++o++++++++++++", +"++++++++++++++++++++++++++++++++++++++++++++++++++++++++", +"++++++++++++++++++++++++++++++++++++++++++++++++++++++++" }; diff --git a/src/icon.xpm b/src/icon.xpm index 1b262324..6010d5be 100644 --- a/src/icon.xpm +++ b/src/icon.xpm @@ -1,53 +1,55 @@ /* XPM */ static char *icon[] = { -/* width height num_colors chars_per_pixel */ -" 60 41 5 1", -/* colors */ -". c #000000", -"# c #00a8e8", -"a c #787c78", -"b c #88dc00", -"c c #b00000", +/* columns rows colors chars-per-pixel */ +"56 42 6 1 ", +" c #BB2200", +". c #FA0000", +"X c red", +"o c #229900", +"O c #0044EE", +"+ c None", /* pixels */ -"............................................................", -"............................................................", -"............................................................", -"............................................................", -".......a...........a...........a...........a...........a....", -"............................................................", -"...................bbbb.....................bbbb............", -"....................b.........................b.............", -"....................c........................cb.............", -"..................b.b......................b..b.............", -"..................bbb......................bbbb.............", -".................bb.......................bb................", -"................bbb......................bbb................", -"..............cbbbb....................cbbbb................", -"...............#bbb.....................#bbb................", -"...............#.bb.....................#.bb................", -".......a.......#..bbb..........a........#..bbbb........a....", -"...............#..b.c...................#..b.cb.............", -"...............#....#...................#.....#.............", -"...............#....#...................#.....#.............", -"......cccc######....#####################.....##############", -"......ccc......#....#...................#.....#.............", -"...............#....#...................#.....#.............", -"...............#....c...................#....cb.............", -"...............#..b.b...................#..b..b.............", -"...............#..bbb...................#..bbbb.............", -"...............#.bb.....................#.bb................", -"...............#.bb.....................#.bb................", -".......a......cbbbba...........a.......cbbbb...........a....", -".................bb.......................bb................", -".................bb.......................bb................", -"..................bbb......................bbbb.............", -"..................b.c......................b.cb.............", -"....................b.........................b.............", -"....................bb.......................bb.............", -"....................b.........................b.............", -"............................................................", -"............................................................", -"............................................................", -"............................................................", -".......a...........a...........a...........a...........a...." +"++++++++++++++++++++++++++++++++++++++++++++++++++++++++", +"+++++++++++++++++++++oooo+++++++++++++++++oooo++++++++++", +"++++++++++++++++++++++o++++++++++++++++++++o++++++++++++", +"++++++++++++++++++++++o++++++++++++++++++++o++++++++++++", +"++++++++++++++++++++++O +++++++++++++++++++O +++++++++++", +"++++++++++++++++++++++O +++++++++++++++++++O +++++++++++", +"++++++++++++++++++++++O++++++++++++++++++++O++++++++++++", +"++++++++++++++++++++++O +++++++++++++++++++O +++++++++++", +"++++++++++++++++++++o+OOOOOOOO+++++++++++o+OOOOOOOO+++++", +"++++++++++++++++++++o+o++++++O+++++++++++o+o++++++O+++++", +"++++++++++++++++++o+ooo++++++O+++++++++o+ooo++++++O+++++", +"++++++++++++++++++o+o++++++++O+++++++++o+o++++++++O+++++", +"+++++++++++++++++oo+o++++++++O++++++++oo+o++++++++O+++++", +"++++++++++++OOOO oo+ooOOOOOOOO+++OOOO oo+ooOOOOOOOO+++++", +"++++++++++++O++ oo+o+ +++++++++O++ oo+o+ +++++++++++", +"++++++++++++O+++++o+o++++++++++++O+++++o+o++++++++++++++", +"++++++++++++O+++++o+o++++++++++++O+++++o+o++++++++++++++", +"++++++++++++O+++++++ooo++++++++++O+++++++ooo++++++++++++", +"++++++++++++O+++++++o+O +++++++++O+++++++o+O +++++++++++", +"++ +++++++O+++++++++O +++++++++O+++++++++O +++++++ +", +".+ OOOOOOOO+++++++++OOOOOOOOOOOO+++++++++OOOOOOOOOO ", +"X+ +++++++O+++++++++O +++++++++O+++++++++O +++++++ +", +"++++++++++++O+++++++o+O +++++++++O+++++++o+O +++++++++++", +"++++++++++++O+++++++o+o++++++++++O+++++++o+o++++++++++++", +"++++++++++++O+++++o+ooo++++++++++O+++++o+ooo++++++++++++", +"++++++++++++O+++++o+o++++++++++++O+++++o+o++++++++++++++", +"++++++++++++O+++++o+o++++++++++++O+++++o+o++++++++++++++", +"++++++++++++OOOO oo+ooOOOOOOOO+++OOOO oo+ooOOOOOOOO+++++", +"+++++++++++++++ +o+o+ +++++O++++++ +o+o+ +++++O+++++", +"++++++++++++++++++o+o++++++++O+++++++++o+o++++++++O+++++", +"++++++++++++++++++o+o++++++++O+++++++++o+o++++++++O+++++", +"++++++++++++++++++++ooo++++++O+++++++++++ooo++++++O+++++", +"++++++++++++++++++++o+OOOOOOOO+++++++++++o+OOOOOOOO+++++", +"++++++++++++++++++++++O +++++++++++++++++++O +++++++++++", +"++++++++++++++++++++++O++++++++++++++++++++O++++++++++++", +"++++++++++++++++++++++O +++++++++++++++++++O +++++++++++", +"++++++++++++++++++++++O +++++++++++++++++++O +++++++++++", +"++++++++++++++++++++++o++++++++++++++++++++o++++++++++++", +"+++++++++++++++++++++ooo+++++++++++++++++++oo+++++++++++", +"++++++++++++++++++++++o++++++++++++++++++++o++++++++++++", +"++++++++++++++++++++++++++++++++++++++++++++++++++++++++", +"++++++++++++++++++++++++++++++++++++++++++++++++++++++++" }; + diff --git a/src/xinit.c b/src/xinit.c index b704214f..4aaa5924 100644 --- a/src/xinit.c +++ b/src/xinit.c @@ -178,11 +178,12 @@ void windowid() /* here I create the icon pixmap,to be used when iconified, */ #ifdef __unix__ if(!cad_icon_pixmap) { - i=XpmCreatePixmapFromData(display,framewin, cad_icon,&cad_icon_pixmap, NULL, NULL); + i=XpmCreatePixmapFromData(display,framewin, cad_icon,&cad_icon_pixmap, &cad_icon_mask, NULL); dbg(1, "Tcl_AppInit(): creating icon pixmap returned: %d\n",i); hints_ptr = XAllocWMHints(); hints_ptr->icon_pixmap = cad_icon_pixmap ; - hints_ptr->flags = IconPixmapHint ; + hints_ptr->icon_mask = cad_icon_mask ; + hints_ptr->flags = IconPixmapHint | IconMaskHint; XSetWMHints(display, parent_of_topwindow, hints_ptr); XFree(hints_ptr); } @@ -643,7 +644,10 @@ void xwin_exit(void) dbg(1, "xwin_exit(): destroying tk windows and releasing X11 stuff\n"); Tk_DestroyWindow(mainwindow); #ifdef __unix__ - if(cad_icon_pixmap) XFreePixmap(display, cad_icon_pixmap); + if(cad_icon_pixmap) { + XFreePixmap(display, cad_icon_pixmap); + XFreePixmap(display, cad_icon_mask); + } #else if (cad_icon_pixmap) Tk_FreePixmap(display, cad_icon_pixmap); #endif diff --git a/src/xschem.h b/src/xschem.h index 48711940..a44dbf1c 100644 --- a/src/xschem.h +++ b/src/xschem.h @@ -726,7 +726,7 @@ extern GC *gc, *gcstipple, gctiled; extern Display *display; extern XRectangle *rectangle; extern XPoint *gridpoint; -extern Pixmap cad_icon_pixmap, *pixmap,save_pixmap; +extern Pixmap cad_icon_pixmap, cad_icon_mask, *pixmap,save_pixmap; extern XColor xcolor_array[]; extern Visual *visual; #ifdef HAS_CAIRO