--- rxvt-unicode/src/main.C 2004/02/21 22:14:00 1.39 +++ rxvt-unicode/src/main.C 2004/02/24 21:46:15 1.45 @@ -82,7 +82,7 @@ scrollbar_ev (this, &rxvt_term::x_cb), #endif #ifdef MENUBAR - menubar_ev (this, &rxvt_term::x_cb), fixme + menubar_ev (this, &rxvt_term::x_cb), #endif #ifdef CURSOR_BLINK cursor_blink_ev (this, &rxvt_term::cursor_blink_cb), @@ -119,8 +119,17 @@ delete TermWin.fontset; if (display) - if (TermWin.parent[0]) - XDestroyWindow (display->display, TermWin.parent[0]); + { +#if defined(MENUBAR) && (MENUBAR_MAX > 1) + delete menuBar.drawable; + //if (menuBar.win) + // XDestroyWindow (display->display, menuBar.win); +#endif + delete TermWin.drawable; + // destroy all windows + if (TermWin.parent[0]) + XDestroyWindow (display->display, TermWin.parent[0]); + } // TODO: free pixcolours, colours should become part of rxvt_display @@ -251,7 +260,7 @@ set_locale (""); -#if (MENUBAR_MAX) +#if MENUBAR_MAX menubar_read (rs[Rs_menu]); #endif #ifdef HAVE_SCROLLBARS @@ -264,9 +273,6 @@ init_xlocale (); scr_reset (); /* initialize screen */ -#ifdef RXVT_GRAPHICS - Gr_reset (); /* reset graphics */ -#endif #if 0 XSynchronize (display->display, True); @@ -277,7 +283,7 @@ resize_scrollbar (); /* create and map scrollbar */ #endif #if (MENUBAR_MAX) - if (menubar_visible (r)) + if (menubar_visible ()) XMapWindow (display->display, menuBar.win); #endif #ifdef TRANSPARENT @@ -720,13 +726,50 @@ * fontname == FONT_UP - switch to bigger font * fontname == FONT_DN - switch to smaller font */ -void -rxvt_term::change_font (int init, const char *fontname) -{} +bool +rxvt_term::change_font (const char *fontname) +{ + if (fontname == FONT_UP) + { + // TODO + } + else if (fontname == FONT_DN) + { + // TODO + } + else + { + rxvt_fontset *fs = new rxvt_fontset (this); -void + if (fs && fs->populate (fontname)) + { + delete TermWin.fontset; + TermWin.fontset = fs; + TermWin.fwidth = fs->base_font ()->width; + TermWin.fheight = fs->base_font ()->height; + TermWin.fbase = fs->base_font ()->ascent; + + // TODO: screen needs to be told about new fonts + + if (TermWin.parent[0]) + { + resize_all_windows (0, 0, 0); + scr_remap_chars (); + scr_touch (true); + } + + return true; + } + } + + return false; +} + +bool rxvt_term::font_up_down (int n, int direction) -{} +{ + return false; +} /*----------------------------------------------------------------------*/ /*----------------------------------------------------------------------*/ @@ -997,11 +1040,6 @@ XMoveResizeWindow (display->display, TermWin.vt, window_vt_x, window_vt_y, TermWin_TotalWidth (), TermWin_TotalHeight ()); -#ifdef RXVT_GRAPHICS - if (old_height) - Gr_Resize (old_width - szHint.base_width, - old_height - szHint.base_height); -#endif scr_clear (); #ifdef XPM_BACKGROUND resize_pixmap ();