diff --git a/ChangeLog b/ChangeLog index 15110f9..6938be2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2302,3 +2302,10 @@ Thu Aug 19 16:45:36 PDT 1999 Michael Jennings fonts. ------------------------------------------------------------------------------- +Fri Aug 20 13:23:44 PDT 1999 Michael Jennings + + Since Mr. Kletnieks reminded me that I never finished it, I finally + implemented support for right-justified menu text. :-) Now you'll + know why some of those menus seemed unnecessarily wide. + +------------------------------------------------------------------------------- diff --git a/bg/Makefile.am b/bg/Makefile.am index 8a42d6c..74822e1 100644 --- a/bg/Makefile.am +++ b/bg/Makefile.am @@ -1,7 +1,7 @@ # $Id$ DIRS = tile scale -EXTRA_DIST = tile/014.png tile/circuit.png tile/backwave.jpg tile/button1.jpg tile/button5.jpg \ +EXTRA_DIST = tile/014.png tile/circuit.png tile/backwave.jpg tile/40.png tile/6.png \ tile/nebula.jpg scale/fourthday.jpg scale/gaia.jpg scale/galleon.jpg scale/night_of_the_dragon.jpg \ README.backgrounds pixmapdir = $(pkgdatadir)/pix diff --git a/src/menus.c b/src/menus.c index f0b3df1..2df2177 100644 --- a/src/menus.c +++ b/src/menus.c @@ -770,6 +770,9 @@ menuitem_select(menu_t * menu, menuitem_t * item) render_simage(images[image_menu].selected, menu->swin, item->w - MENU_VGAP, item->h, image_menu, 0); } draw_string(menu->swin, menu->gc, MENU_HGAP, item->h - MENU_VGAP, item->text, item->len); + if (item->rtext) { + draw_string(menu->swin, menu->gc, item->w - XTextWidth(menu->font, item->rtext, item->rlen) - 2 * MENU_HGAP, item->h - MENU_VGAP, item->rtext, item->rlen); + } } void @@ -787,6 +790,10 @@ menuitem_deselect(menu_t * menu, menuitem_t * item) paste_simage(images[image_submenu].norm, menu->win, item->x, item->y, item->w - MENU_VGAP, item->h); } draw_string(menu->win, menu->gc, 2 * MENU_HGAP, item->y + item->h - MENU_VGAP, item->text, item->len); + if (item->rtext) { + draw_string(menu->win, menu->gc, item->x + item->w - XTextWidth(menu->font, item->rtext, item->rlen) - 2 * MENU_HGAP, item->y + item->h - MENU_VGAP, + item->rtext, item->rlen); + } } } @@ -827,7 +834,6 @@ menu_draw(menu_t * menu) int ascent, descent, direction; XCharStruct chars; Screen *scr; - unsigned short longest = 0; ASSERT(menu != NULL); @@ -839,6 +845,8 @@ menu_draw(menu_t * menu) XChangeGC(Xdisplay, menu->gc, GCForeground, &gcvalue); if (!menu->w) { + unsigned short longest; + len = strlen(menu->title); longest = XTextWidth(menu->font, menu->title, len); height = menu->fheight + 3 * MENU_VGAP; @@ -848,9 +856,9 @@ menu_draw(menu_t * menu) width = XTextWidth(menu->font, item->text, j); if (item->rtext) { - width += XTextWidth(menu->font, item->rtext, item->rlen) + (2*MENU_HGAP); + width += XTextWidth(menu->font, item->rtext, item->rlen) + (2 * MENU_HGAP); } - longest = (longest>width)?longest:width; + longest = (longest > width) ? longest : width; height += ((item->type == MENUITEM_SEP) ? (MENU_VGAP) : (menu->fheight)) + MENU_VGAP; } width = longest + (4 * MENU_HGAP); @@ -941,6 +949,10 @@ menu_draw(menu_t * menu) break; } draw_string(menu->win, menu->gc, str_x, str_y - MENU_VGAP / 2, item->text, item->len); + if (item->rtext) { + draw_string(menu->win, menu->gc, str_x + item->w - XTextWidth(menu->font, item->rtext, item->rlen) - 3 * MENU_HGAP, str_y - MENU_VGAP / 2, + item->rtext, item->rlen); + } } } }