--- rxvt-unicode/src/main.C 2004/02/20 22:27:27 1.34 +++ rxvt-unicode/src/main.C 2004/02/22 08:28:36 1.41 @@ -1,4 +1,4 @@ -/*--------------------------------*-C-*---------------------------------* +/*--------------------------------*-C-*---------------------------------*; * File: main.c *----------------------------------------------------------------------* * @@ -13,6 +13,7 @@ * Copyright (c) 1997,1998 Oezguer Kesim * Copyright (c) 1998-2001 Geoff Wing * - extensive modifications + * Copyright (c) 2003-2004 Marc Lehmann * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -92,13 +93,13 @@ #ifdef POINTER_BLANK pointer_ev (this, &rxvt_term::pointer_cb), #endif +#ifdef USE_XIM + im_ev (this, &rxvt_term::im_cb), +#endif check_ev (this, &rxvt_term::check_cb), destroy_ev (this, &rxvt_term::destroy_cb), pty_ev (this, &rxvt_term::pty_cb), - incr_ev (this, &rxvt_term::incr_cb), -#ifdef USE_XIM - im_ev (this, &rxvt_term::im_cb) -#endif + incr_ev (this, &rxvt_term::incr_cb) { cmdbuf_ptr = cmdbuf_endp = cmdbuf_base; } @@ -263,11 +264,8 @@ init_xlocale (); scr_reset (); /* initialize screen */ -#ifdef RXVT_GRAPHICS - Gr_reset (); /* reset graphics */ -#endif -#if 1 +#if 0 XSynchronize (display->display, True); #endif @@ -719,13 +717,43 @@ * 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 + + return true; + } + } + + return false; +} + +bool rxvt_term::font_up_down (int n, int direction) -{} +{ + return false; +} /*----------------------------------------------------------------------*/ /*----------------------------------------------------------------------*/ @@ -996,11 +1024,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 (); @@ -1316,7 +1339,7 @@ #if defined(HAVE_XSETLOCALE) || defined(HAVE_SETLOCALE) if (rs[Rs_imLocale]) - setlocale (LC_CTYPE, rs[Rs_imLocale]); + SET_LOCALE (rs[Rs_imLocale]); #endif p = rs[Rs_inputMethod]; @@ -1357,7 +1380,7 @@ done: #if defined(HAVE_XSETLOCALE) || defined(HAVE_SETLOCALE) if (rs[Rs_imLocale]) - setlocale (LC_CTYPE, locale); + SET_LOCALE (locale); #endif }