ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/menubar.C
(Generate patch)

Comparing rxvt-unicode/src/menubar.C (file contents):
Revision 1.19 by root, Sun Aug 15 04:54:21 2004 UTC vs.
Revision 1.24 by root, Fri Aug 5 16:42:44 2005 UTC

955 } 955 }
956 956
957 if (ActiveMenu->win == None) 957 if (ActiveMenu->win == None)
958 { 958 {
959 ActiveMenu->win = XCreateSimpleWindow (display->display, TermWin.vt, 959 ActiveMenu->win = XCreateSimpleWindow (display->display, TermWin.vt,
960 x, ActiveMenu->y, 960 x, ActiveMenu->y,
961 ActiveMenu->w, ActiveMenu->h, 961 ActiveMenu->w, ActiveMenu->h,
962 0, 962 0,
963 PixColors[Color_fg], 963 pix_colors[Color_fg],
964 PixColors[Color_scroll]); 964 pix_colors[Color_scroll]);
965 ActiveMenu->drawable = new rxvt_drawable (display, ActiveMenu->win); 965 ActiveMenu->drawable = new rxvt_drawable (display, ActiveMenu->win);
966 XMapWindow (display->display, ActiveMenu->win); 966 XMapWindow (display->display, ActiveMenu->win);
967 } 967 }
968 968
969 rxvt_Draw_Shadow (display->display, ActiveMenu->win, 969 rxvt_Draw_Shadow (display->display, ActiveMenu->win,
982 GC gc = menubarGC; 982 GC gc = menubarGC;
983 983
984 if (isSeparator (item->name)) 984 if (isSeparator (item->name))
985 { 985 {
986 rxvt_Draw_Shadow (display->display, ActiveMenu->win, 986 rxvt_Draw_Shadow (display->display, ActiveMenu->win,
987 topShadowGC, botShadowGC, 987 topShadowGC, botShadowGC,
988 SHADOW, y + SHADOW + 1, 988 SHADOW, y + SHADOW + 1,
989 ActiveMenu->w - 2 * SHADOW, 0); 989 ActiveMenu->w - 2 * SHADOW, 0);
990 h = HEIGHT_SEPARATOR; 990 h = HEIGHT_SEPARATOR;
991 } 991 }
992 else 992 else
993 { 993 {
994 char *name = item->name; 994 char *name = item->name;
1035 } 1035 }
1036 else if (item->name2 && !strcmp (name, item->name2)) 1036 else if (item->name2 && !strcmp (name, item->name2))
1037 name = NULL; 1037 name = NULL;
1038 1038
1039 if (len && name) 1039 if (len && name)
1040 draw_string (*ActiveMenu->drawable, gc, TermWin.fontset, 1040 draw_string (*ActiveMenu->drawable, gc, TermWin.fontset[0],
1041 xoff, 2 * SHADOW + y, name, len); 1041 xoff, 2 * SHADOW + y, name, len);
1042 1042
1043 len = item->len2; 1043 len = item->len2;
1044 name = item->name2; 1044 name = item->name2;
1045 1045
1046 if (len && name) 1046 if (len && name)
1047 draw_string (*ActiveMenu->drawable, gc, TermWin.fontset, 1047 draw_string (*ActiveMenu->drawable, gc, TermWin.fontset[0],
1048 ActiveMenu->w - (xoff + Width2Pixel (xright)), 2 * SHADOW + y, name, len); 1048 ActiveMenu->w - (xoff + Width2Pixel (xright)), 2 * SHADOW + y, name, len);
1049 1049
1050 h = HEIGHT_TEXT + 2 * SHADOW; 1050 h = HEIGHT_TEXT + 2 * SHADOW;
1051 } 1051 }
1052 y += h; 1052 y += h;
1563 /* what? ... skip this line */ 1563 /* what? ... skip this line */
1564 p[0] = COMMENT_CHAR; 1564 p[0] = COMMENT_CHAR;
1565 } 1565 }
1566 } 1566 }
1567 } 1567 }
1568
1568 /* 1569 /*
1569 * remove leading/trailing space 1570 * remove leading/trailing space
1570 * and strip-off leading/trailing quotes
1571 * skip blank or comment lines 1571 * skip blank or comment lines
1572 */ 1572 */
1573 rxvt_Str_trim (p); 1573 rxvt_Str_trim (p);
1574 if (*p && *p != '#') 1574 if (*p && *p != '#')
1575 { 1575 {
2015 const int y = (menuBar_TotalHeight () - w) / 2; 2015 const int y = (menuBar_TotalHeight () - w) / 2;
2016 int x = Arrows_x + (5 * Width2Pixel (i)) / 4; 2016 int x = Arrows_x + (5 * Width2Pixel (i)) / 4;
2017 2017
2018 if (!name || name == Arrows[i].name) 2018 if (!name || name == Arrows[i].name)
2019 rxvt_Draw_Triangle (display->display, menuBar.win, top, bot, x, y, w, 2019 rxvt_Draw_Triangle (display->display, menuBar.win, top, bot, x, y, w,
2020 Arrows[i].name); 2020 Arrows[i].name);
2021 } 2021 }
2022 XFlush (display->display); 2022 XFlush (display->display);
2023} 2023}
2024 2024
2025void 2025void
2034 if (menubarGC == None) 2034 if (menubarGC == None)
2035 { 2035 {
2036 /* Create the graphics context */ 2036 /* Create the graphics context */
2037 XGCValues gcvalue; 2037 XGCValues gcvalue;
2038 2038
2039 gcvalue.foreground = (display->depth <= 2 ? PixColors[Color_fg] 2039 gcvalue.foreground = (display->depth <= 2 ? pix_colors[Color_fg]
2040 : PixColors[Color_Black]); 2040 : pix_colors[Color_Black]);
2041 menubarGC = XCreateGC (display->display, menuBar.win, 2041 menubarGC = XCreateGC (display->display, menuBar.win,
2042 GCForeground, &gcvalue); 2042 GCForeground, &gcvalue);
2043 2043
2044 } 2044 }
2045 /* make sure the font is correct */ 2045 /* make sure the font is correct */
2062 2062
2063 if (x >= TermWin.ncol) 2063 if (x >= TermWin.ncol)
2064 len = (TermWin.ncol - (menu->x + HSPACE)); 2064 len = (TermWin.ncol - (menu->x + HSPACE));
2065 2065
2066 drawbox_menubar (menu->x, len, +1); 2066 drawbox_menubar (menu->x, len, +1);
2067 draw_string (*menuBar.drawable, menubarGC, TermWin.fontset, 2067 draw_string (*menuBar.drawable, menubarGC, TermWin.fontset[0],
2068 (Width2Pixel (menu->x) + Width2Pixel (HSPACE) / 2), 2068 (Width2Pixel (menu->x) + Width2Pixel (HSPACE) / 2),
2069 SHADOW, menu->name, len); 2069 SHADOW, menu->name, len);
2070 2070
2071 if (x >= TermWin.ncol) 2071 if (x >= TermWin.ncol)
2072 break; 2072 break;
2125 } 2125 }
2126 title[len] = '\0'; 2126 title[len] = '\0';
2127 2127
2128 ncol -= (x + len + HSPACE); 2128 ncol -= (x + len + HSPACE);
2129 if (len > 0 && ncol >= 0) 2129 if (len > 0 && ncol >= 0)
2130 draw_string (*menuBar.drawable, menubarGC, TermWin.fontset, 2130 draw_string (*menuBar.drawable, menubarGC, TermWin.fontset[0],
2131 Width2Pixel (x) + Width2Pixel (ncol + HSPACE) / 2, 2131 Width2Pixel (x) + Width2Pixel (ncol + HSPACE) / 2,
2132 SHADOW, title, len); 2132 SHADOW, title, len);
2133 } 2133 }
2134} 2134}
2135 2135
2248 break; 2248 break;
2249 2249
2250 case MenuAction: 2250 case MenuAction:
2251 case MenuTerminalAction: 2251 case MenuTerminalAction:
2252 drawbox_menuitem (this_y, -1); 2252 drawbox_menuitem (this_y, -1);
2253#ifdef HAVE_NANOSLEEP
2254 struct timespec rqt;
2255
2256 rqt.tv_sec = 0;
2257 rqt.tv_nsec = MENU_DELAY_USEC * 1000;
2258 nanosleep (&rqt, NULL);
2259#else
2260 /* use select for timing */
2261 struct timeval tv;
2262
2263 tv.tv_sec = 0;
2264 tv.tv_usec = MENU_DELAY_USEC; 2253 rxvt_usleep (MENU_DELAY_USEC);
2265 select (0, NULL, NULL, NULL, &tv);
2266#endif
2267 /* remove menu before sending keys to the application */ 2254 /* remove menu before sending keys to the application */
2268 menu_hide_all (); 2255 menu_hide_all ();
2269#ifndef DEBUG_MENU 2256#ifndef DEBUG_MENU
2270 action_dispatch (& (item->entry.action)); 2257 action_dispatch (& (item->entry.action));
2271#else /* DEBUG_MENU */ 2258#else /* DEBUG_MENU */
2349 if (ev.x >= (Arrows_x + (Width2Pixel (4 * i + i)) / 4) 2336 if (ev.x >= (Arrows_x + (Width2Pixel (4 * i + i)) / 4)
2350 && ev.x < (Arrows_x 2337 && ev.x < (Arrows_x
2351 + (Width2Pixel (4 * i + i + 4)) / 4)) 2338 + (Width2Pixel (4 * i + i + 4)) / 4))
2352 { 2339 {
2353 draw_Arrows (Arrows[i].name, -1); 2340 draw_Arrows (Arrows[i].name, -1);
2354 {
2355#ifdef HAVE_NANOSLEEP
2356 struct timespec rqt;
2357
2358 rqt.tv_sec = 0;
2359 rqt.tv_nsec = MENU_DELAY_USEC * 1000;
2360 nanosleep (&rqt, NULL);
2361#else
2362 /* use select for timing */
2363 struct timeval tv;
2364
2365 tv.tv_sec = 0;
2366 tv.tv_usec = MENU_DELAY_USEC; 2341 rxvt_usleep (MENU_DELAY_USEC);
2367 select (0, NULL, NULL, NULL, &tv);
2368#endif
2369
2370 }
2371 draw_Arrows (Arrows[i].name, +1); 2342 draw_Arrows (Arrows[i].name, +1);
2372#ifdef DEBUG_MENUARROWS 2343#ifdef DEBUG_MENUARROWS
2373 fprintf (stderr, "'%c': ", Arrows[i].name); 2344 fprintf (stderr, "'%c': ", Arrows[i].name);
2374 2345
2375 if (CurrentBar == NULL 2346 if (CurrentBar == NULL

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines