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

Comparing rxvt-unicode/src/rxvt.h (file contents):
Revision 1.207 by root, Mon Jan 16 09:51:57 2006 UTC vs.
Revision 1.217 by root, Tue Jan 17 10:59:32 2006 UTC

129char * rxvt_Str_trim (char *str); 129char * rxvt_Str_trim (char *str);
130int rxvt_Str_escaped (char *str); 130int rxvt_Str_escaped (char *str);
131char ** rxvt_splitcommastring (const char *cs); 131char ** rxvt_splitcommastring (const char *cs);
132void rxvt_freecommastring (char **cs); 132void rxvt_freecommastring (char **cs);
133char * rxvt_File_find (const char *file, const char *ext, const char *path); 133char * rxvt_File_find (const char *file, const char *ext, const char *path);
134void rxvt_Draw_Shadow (Display *display, Window win, GC topShadow, GC botShadow, int x, int y, int w, int h);
135void rxvt_Draw_Triangle (Display *display, Window win, GC topShadow, GC botShadow, int x, int y, int w, int type);
136void rxvt_usleep (int usecs); 134void rxvt_usleep (int usecs);
137 135
138///////////////////////////////////////////////////////////////////////////// 136/////////////////////////////////////////////////////////////////////////////
139 137
140// temporarily replace the process environment 138// temporarily replace the process environment
158 * STRUCTURES AND TYPEDEFS 156 * STRUCTURES AND TYPEDEFS
159 ***************************************************************************** 157 *****************************************************************************
160 */ 158 */
161struct grwin_t; 159struct grwin_t;
162 160
163/* Sanitize menubar info */
164#ifndef MENUBAR
165# undef MENUBAR_MAX
166#endif
167#ifndef MENUBAR_MAX
168# define MENUBAR_MAX 0
169#endif
170
171/* If we're using either the rxvt scrollbar or menu bars, keep the 161/* If we're using either the rxvt scrollbar, keep the
172 * scrollColor resource. 162 * scrollColor resource.
173 */ 163 */
174#if defined(RXVT_SCROLLBAR) || defined(NEXT_SCROLLBAR) || defined(MENUBAR) || defined(PLAIN_SCROLLBAR) 164#if defined(RXVT_SCROLLBAR) || defined(NEXT_SCROLLBAR) || defined(PLAIN_SCROLLBAR)
175# define KEEP_SCROLLCOLOR 1 165# define KEEP_SCROLLCOLOR 1
176#else 166#else
177# undef KEEP_SCROLLCOLOR 167# undef KEEP_SCROLLCOLOR
178#endif 168#endif
179 169
260#ifndef EXIT_SUCCESS /* missing from <stdlib.h> */ 250#ifndef EXIT_SUCCESS /* missing from <stdlib.h> */
261# define EXIT_SUCCESS 0 /* exit function success */ 251# define EXIT_SUCCESS 0 /* exit function success */
262# define EXIT_FAILURE 1 /* exit function failure */ 252# define EXIT_FAILURE 1 /* exit function failure */
263#endif 253#endif
264 254
265#define menuBar_esc 10
266#define scrollBar_esc 30 255#define scrollBar_esc 30
267#define menuBar_margin 2 /* margin below text */
268 256
269#if defined(RXVT_SCROLLBAR) || defined(NEXT_SCROLLBAR) || defined(XTERM_SCROLLBAR) || defined(PLAIN_SCROLLBAR) 257#if defined(RXVT_SCROLLBAR) || defined(NEXT_SCROLLBAR) || defined(XTERM_SCROLLBAR) || defined(PLAIN_SCROLLBAR)
270# define HAVE_SCROLLBARS 1 258# define HAVE_SCROLLBARS 1
271#endif
272
273/* width of scrollBar, menuBar shadow, must be 1 or 2 */
274#ifdef HALFSHADOW
275# define MENU_SHADOW 1
276#else
277# define MENU_SHADOW 2
278#endif 259#endif
279 260
280#define R_SB_ALIGN_CENTRE 0 261#define R_SB_ALIGN_CENTRE 0
281#define R_SB_ALIGN_TOP 1 262#define R_SB_ALIGN_TOP 1
282#define R_SB_ALIGN_BOTTOM 2 263#define R_SB_ALIGN_BOTTOM 2
355 * | 336 * |
356 * +---< SB_WIDTH_NEXT 337 * +---< SB_WIDTH_NEXT
357 */ 338 */
358 339
359enum { 340enum {
360 NO_REFRESH = 0 , /* Window not visible at all! */ 341 NO_REFRESH = 0, /* Window not visible at all! */
361 FAST_REFRESH = 1<<0, /* Fully exposed window */ 342 FAST_REFRESH = 1, /* Fully exposed window */
362 SLOW_REFRESH = 1<<1, /* Partially exposed window */ 343 SLOW_REFRESH = 2, /* Partially exposed window */
363 SMOOTH_REFRESH = 1<<2, /* Do sync'ing to make it smooth */
364}; 344};
365 345
366#ifdef NO_SECONDARY_SCREEN 346#ifdef NO_SECONDARY_SCREEN
367# define NSCREENS 0 347# define NSCREENS 0
368#else 348#else
491 Rxvt_restoreFG = 39, // change default fg color 471 Rxvt_restoreFG = 39, // change default fg color
492 Rxvt_restoreBG = 49, // change default bg color 472 Rxvt_restoreBG = 49, // change default bg color
493 Rxvt_dumpscreen = 55, // dump scrollback and all of screen 473 Rxvt_dumpscreen = 55, // dump scrollback and all of screen
494 474
495 URxvt_locale = 701, // change locale 475 URxvt_locale = 701, // change locale
496 URxvt_Menu = 703, // set menu item 476
497 URxvt_Color_IT = 704, // change actual 'Italic' colour 477 URxvt_Color_IT = 704, // change actual 'Italic' colour
498 URxvt_Color_tint = 705, // change actual tint colour 478 URxvt_Color_tint = 705, // change actual tint colour
499 URxvt_Color_BD = 706, 479 URxvt_Color_BD = 706,
500 URxvt_Color_UL = 707, 480 URxvt_Color_UL = 707,
501 481
656#define PrivMode_ShiftKeys (1UL<<10) 636#define PrivMode_ShiftKeys (1UL<<10)
657#define PrivMode_VisibleCursor (1UL<<11) 637#define PrivMode_VisibleCursor (1UL<<11)
658#define PrivMode_MouseX10 (1UL<<12) 638#define PrivMode_MouseX10 (1UL<<12)
659#define PrivMode_MouseX11 (1UL<<13) 639#define PrivMode_MouseX11 (1UL<<13)
660#define PrivMode_scrollBar (1UL<<14) 640#define PrivMode_scrollBar (1UL<<14)
661#define PrivMode_menuBar (1UL<<15)
662#define PrivMode_TtyOutputInh (1UL<<16) 641#define PrivMode_TtyOutputInh (1UL<<15)
663#define PrivMode_Keypress (1UL<<17) 642#define PrivMode_Keypress (1UL<<16)
664#define PrivMode_smoothScroll (1UL<<18) 643#define PrivMode_smoothScroll (1UL<<17)
665#define PrivMode_vt52 (1UL<<19) 644#define PrivMode_vt52 (1UL<<18)
666#define PrivMode_LFNL (1UL<<20) 645#define PrivMode_LFNL (1UL<<19)
667/* too annoying to implement X11 highlight tracking */ 646/* too annoying to implement X11 highlight tracking */
668/* #define PrivMode_MouseX11Track (1LU<<21) */ 647/* #define PrivMode_MouseX11Track (1LU<<20) */
669 648
670#define PrivMode_mouse_report (PrivMode_MouseX10|PrivMode_MouseX11) 649#define PrivMode_mouse_report (PrivMode_MouseX10|PrivMode_MouseX11)
671#define PrivMode(test,bit) \ 650#define PrivMode(test,bit) \
672 if (test) \ 651 if (test) \
673 priv_modes |= (bit); \ 652 priv_modes |= (bit); \
720/* 699/*
721 ***************************************************************************** 700 *****************************************************************************
722 * MACRO DEFINES 701 * MACRO DEFINES
723 ***************************************************************************** 702 *****************************************************************************
724 */ 703 */
704#define dLocal(type,name) type const name = this->name
725#define dDisp Display *disp = display->display 705#define dDisp Display *disp = this->display->display
726 706
727/* convert pixel dimensions to row/column values. Everything as int32_t */ 707/* convert pixel dimensions to row/column values. Everything as int32_t */
728#define Pixel2Col(x) Pixel2Width((int32_t)(x)) 708#define Pixel2Col(x) Pixel2Width((int32_t)(x))
729#define Pixel2Row(y) Pixel2Height((int32_t)(y)) 709#define Pixel2Row(y) Pixel2Height((int32_t)(y))
730#define Pixel2Width(x) ((int32_t)(x) / (int32_t)fwidth) 710#define Pixel2Width(x) ((int32_t)(x) / (int32_t)fwidth)
803#define scrollbar_below_slider(y) ((y) > scrollBar.bot) 783#define scrollbar_below_slider(y) ((y) > scrollBar.bot)
804#define scrollbar_position(y) ((y) - scrollBar.beg) 784#define scrollbar_position(y) ((y) - scrollBar.beg)
805#define scrollbar_size() (scrollBar.end - scrollBar.beg \ 785#define scrollbar_size() (scrollBar.end - scrollBar.beg \
806 - scrollbar_minheight ()) 786 - scrollbar_minheight ())
807 787
808#if (MENUBAR_MAX > 1)
809/* rendition style flags */
810# define menuBar_height() (fheight + MENU_SHADOW)
811# define menuBar_TotalHeight() (menuBar_height() + MENU_SHADOW + menuBar_margin)
812# define isMenuBarWindow(w) ((w) == menuBar.win)
813#else
814# define menuBar_height() (0)
815# define menuBar_TotalHeight() (0)
816# define isMenuBarWindow(w) (0)
817#endif
818
819#ifdef XPM_BACKGROUND 788#ifdef XPM_BACKGROUND
820# define XPMClearArea(a, b, c, d, e, f, g) XClearArea((a), (b), (c), (d), (e), (f), (g)) 789# define XPMClearArea(a, b, c, d, e, f, g) XClearArea((a), (b), (c), (d), (e), (f), (g))
821#else 790#else
822# define XPMClearArea(a, b, c, d, e, f, g) 791# define XPMClearArea(a, b, c, d, e, f, g)
823#endif
824
825#ifdef UTMP_SUPPORT
826# if !defined(RXVT_UTMPX_FILE) || !defined(HAVE_STRUCT_UTMPX)
827# undef HAVE_UTMPX_H
828# undef HAVE_STRUCT_UTMPX
829# endif
830# if !defined(RXVT_UTMP_FILE) || !defined(HAVE_STRUCT_UTMP)
831# undef HAVE_UTMP_H
832# undef HAVE_STRUCT_UTMP
833# endif
834
835# ifdef HAVE_UTMPX_H
836# include <utmpx.h>
837# endif
838# ifdef HAVE_UTMP_H
839# include <utmp.h>
840# endif
841#endif 792#endif
842 793
843#ifdef DEBUG_CMD 794#ifdef DEBUG_CMD
844# define D_CMD(x) fprintf x ; fputc('\n', stderr) 795# define D_CMD(x) fprintf x ; fputc('\n', stderr)
845#else 796#else
876extern bool rxvt_set_locale (const char *locale); 827extern bool rxvt_set_locale (const char *locale);
877extern void rxvt_push_locale (const char *locale); 828extern void rxvt_push_locale (const char *locale);
878extern void rxvt_pop_locale (); 829extern void rxvt_pop_locale ();
879 830
880/****************************************************************************/ 831/****************************************************************************/
881
882#ifdef MENUBAR
883# include "menubar.h"
884#endif
885 832
886#define BLINK_INTERVAL 0.5 833#define BLINK_INTERVAL 0.5
887#define TEXT_BLINK_INTERVAL 0.5 834#define TEXT_BLINK_INTERVAL 0.5
888 835
889#ifndef __attribute__ 836#ifndef __attribute__
1073 refresh_limit, 1020 refresh_limit,
1074 last_bot, /* scrollbar last bottom position */ 1021 last_bot, /* scrollbar last bottom position */
1075 last_top, /* scrollbar last top position */ 1022 last_top, /* scrollbar last top position */
1076 last_state, /* scrollbar last state */ 1023 last_state, /* scrollbar last state */
1077 scrollbar_len, 1024 scrollbar_len,
1078#ifdef MENUBAR
1079 menu_readonly, /* okay to alter menu? */
1080 Arrows_x,
1081#endif
1082#if MENUBAR_MAX > 1
1083 Nbars,
1084#endif
1085 window_vt_x, 1025 window_vt_x,
1086 window_vt_y, 1026 window_vt_y,
1087 window_sb_x, 1027 window_sb_x,
1088# ifdef POINTER_BLANK 1028# ifdef POINTER_BLANK
1089 pointerBlankDelay, 1029 pointerBlankDelay,
1098 unsigned long priv_modes, 1038 unsigned long priv_modes,
1099 SavedModes; 1039 SavedModes;
1100/* ---------- */ 1040/* ---------- */
1101 Atom xa[NUM_XA]; 1041 Atom xa[NUM_XA];
1102/* ---------- */ 1042/* ---------- */
1103#ifdef MENUBAR 1043#ifdef RXVT_SCROLLBAR
1104 GC menubarGC;
1105#endif
1106#if defined(MENUBAR) || defined(RXVT_SCROLLBAR)
1107 GC scrollbarGC, 1044 GC scrollbarGC,
1108 topShadowGC, 1045 topShadowGC,
1109 botShadowGC; 1046 botShadowGC;
1110#endif 1047#endif
1111#ifdef XTERM_SCROLLBAR 1048#ifdef XTERM_SCROLLBAR
1143 const char *key_delete; 1080 const char *key_delete;
1144#endif 1081#endif
1145 struct mouse_event MEvent; 1082 struct mouse_event MEvent;
1146 XComposeStatus compose; 1083 XComposeStatus compose;
1147 ttymode_t tio; 1084 ttymode_t tio;
1148#ifdef UTMP_SUPPORT
1149# ifdef HAVE_STRUCT_UTMP
1150 struct utmp ut;
1151# endif
1152# ifdef HAVE_STRUCT_UTMPX
1153 struct utmpx utx;
1154# endif
1155# if (defined(HAVE_STRUCT_UTMP) && defined(HAVE_UTMP_PID)) || defined(HAVE_STRUCT_UTMPX)
1156 char ut_id[5];
1157# endif
1158 int utmp_pos;
1159#endif
1160 row_col_t oldcursor; 1085 row_col_t oldcursor;
1161#ifdef XPM_BACKGROUND 1086#ifdef XPM_BACKGROUND
1162 bgPixmap_t bgPixmap; 1087 bgPixmap_t bgPixmap;
1163 XpmAttributes xpmAttr; /* originally loaded pixmap and its scaling */ 1088 XpmAttributes xpmAttr; /* originally loaded pixmap and its scaling */
1164#endif
1165#ifdef MENUBAR
1166 menu_t *ActiveMenu, /* currently active menu */
1167 *BuildMenu; /* the menu currently being built */
1168 bar_t *CurrentBar;
1169# if ! (MENUBAR_MAX > 1)
1170 bar_t BarList;
1171# endif /* (MENUBAR_MAX > 1) */
1172#endif 1089#endif
1173 1090
1174#if ENABLE_OVERLAY 1091#if ENABLE_OVERLAY
1175 int ov_x, ov_y, ov_w, ov_h; // overlay dimensions 1092 int ov_x, ov_y, ov_w, ov_h; // overlay dimensions
1176 text_t **ov_text; 1093 text_t **ov_text;
1205 const char *rs[NUM_RESOURCES]; 1122 const char *rs[NUM_RESOURCES];
1206 /* command input buffering */ 1123 /* command input buffering */
1207 char *cmdbuf_ptr, *cmdbuf_endp; 1124 char *cmdbuf_ptr, *cmdbuf_endp;
1208 char cmdbuf_base[CBUFSIZ]; 1125 char cmdbuf_base[CBUFSIZ];
1209 1126
1127 rxvt_ptytty_unix pty;
1128
1210 rxvt_salloc *talloc; // text line allocator 1129 rxvt_salloc *talloc; // text line allocator
1211 rxvt_salloc *ralloc; // rend line allocator 1130 rxvt_salloc *ralloc; // rend line allocator
1212 1131
1213 static vector<rxvt_term *> termlist; // a vector of all running rxvt_term's 1132 static vector<rxvt_term *> termlist; // a vector of all running rxvt_term's
1214 1133
1242 void flush (); 1161 void flush ();
1243 xevent_watcher termwin_ev; 1162 xevent_watcher termwin_ev;
1244 xevent_watcher vt_ev; 1163 xevent_watcher vt_ev;
1245#ifdef HAVE_SCROLLBARS 1164#ifdef HAVE_SCROLLBARS
1246 xevent_watcher scrollbar_ev; 1165 xevent_watcher scrollbar_ev;
1247#endif
1248#ifdef MENUBAR
1249 xevent_watcher menubar_ev;
1250#endif 1166#endif
1251 1167
1252 void check_cb (check_watcher &w); check_watcher check_ev; 1168 void check_cb (check_watcher &w); check_watcher check_ev;
1253 void destroy_cb (time_watcher &w); time_watcher destroy_ev; 1169 void destroy_cb (time_watcher &w); time_watcher destroy_ev;
1254 void flush_cb (time_watcher &w); time_watcher flush_ev; 1170 void flush_cb (time_watcher &w); time_watcher flush_ev;
1385 void process_sgr_mode (unsigned int nargs, const int *arg); 1301 void process_sgr_mode (unsigned int nargs, const int *arg);
1386 void process_graphics (); 1302 void process_graphics ();
1387 // init.C 1303 // init.C
1388 void Get_Colours (); 1304 void Get_Colours ();
1389 void get_ourmods (); 1305 void get_ourmods ();
1390 // logging.C
1391 void makeutent (const char *pty, const char *hostname);
1392 void cleanutent ();
1393 // main.C 1306 // main.C
1394 void privileged_utmp (rxvt_privaction action); 1307 void privileged_utmp (rxvt_privaction action);
1395 bool set_fonts (); 1308 bool set_fonts ();
1396 void set_string_property (Atom prop, const char *str, int len = -1); 1309 void set_string_property (Atom prop, const char *str, int len = -1);
1397 void set_utf8_property (Atom prop, const char *str, int len = -1); 1310 void set_utf8_property (Atom prop, const char *str, int len = -1);
1400 void set_window_color (int idx, const char *color); 1313 void set_window_color (int idx, const char *color);
1401 void set_colorfgbg (); 1314 void set_colorfgbg ();
1402 int rXParseAllocColor (rxvt_color * screen_in_out, const char *colour); 1315 int rXParseAllocColor (rxvt_color * screen_in_out, const char *colour);
1403 void set_widthheight (unsigned int newwidth, unsigned int newheight); 1316 void set_widthheight (unsigned int newwidth, unsigned int newheight);
1404 1317
1405#ifdef MENUBAR
1406 // menubar.C
1407 void menuitem_free (menu_t *menu, menuitem_t *item);
1408 int action_dispatch (action_t *action);
1409 void menuarrow_free (char name);
1410 void menuarrow_add (char *string);
1411 char *menu_find_base (menu_t **menu, char *path);
1412 menu_t *menu_delete (menu_t *menu);
1413 menu_t *menu_add (menu_t *parent, char *path);
1414 void drawbox_menubar (int x, int len, int state);
1415 void drawtriangle (int x, int y, int state);
1416 void drawbox_menuitem (int y, int state);
1417 void menu_show ();
1418 void menu_display (void (rxvt_term::*update) ());
1419 void menu_hide_all ();
1420 void menu_hide ();
1421 void menu_clear (menu_t *menu);
1422 void menubar_clear ();
1423 bar_t *menubar_find (const char *name);
1424 int menubar_push (const char *name);
1425 void menubar_remove (const char *name);
1426 void menubar_dump (FILE *fp);
1427 void menubar_read (const char *filename);
1428 void menubar_dispatch (char *str);
1429 void draw_Arrows (int name, int state);
1430 void menubar_expose ();
1431 int menubar_mapping (int map);
1432 int menu_select (XButtonEvent &ev);
1433 void menubar_select (XButtonEvent &ev);
1434 void menubar_control (XButtonEvent &ev);
1435 void map_menuBar (int map);
1436#endif
1437
1438 // screen.C 1318 // screen.C
1439 1319
1440 void lalloc (line_t &l) const 1320 void lalloc (line_t &l) const
1441 { 1321 {
1442 l.t = (text_t *)talloc->alloc (); 1322 l.t = (text_t *)talloc->alloc ();
1510 void scr_blank_screen_mem (line_t &l, rend_t efs) const; 1390 void scr_blank_screen_mem (line_t &l, rend_t efs) const;
1511 int scr_scroll_text (int row1, int row2, int count); 1391 int scr_scroll_text (int row1, int row2, int count);
1512 void scr_reset (); 1392 void scr_reset ();
1513 void scr_release (); 1393 void scr_release ();
1514 void scr_clear (bool really = false); 1394 void scr_clear (bool really = false);
1515 void scr_refresh (unsigned char refresh_type); 1395 void scr_refresh ();
1516 bool scr_refresh_rend (rend_t mask, rend_t value); 1396 bool scr_refresh_rend (rend_t mask, rend_t value);
1517 void scr_erase_screen (int mode); 1397 void scr_erase_screen (int mode);
1518#if ENABLE_FRILLS 1398#if ENABLE_FRILLS
1519 void scr_erase_savelines (); 1399 void scr_erase_savelines ();
1520 void scr_backindex (); 1400 void scr_backindex ();
1584 int scrollbar_show_next (int update, int last_top, int last_bot, int scrollbar_len); 1464 int scrollbar_show_next (int update, int last_top, int last_bot, int scrollbar_len);
1585#endif 1465#endif
1586 1466
1587#if defined(RXVT_SCROLLBAR) 1467#if defined(RXVT_SCROLLBAR)
1588 // scrollbar-rxvt.C 1468 // scrollbar-rxvt.C
1589 void Draw_button (int x, int y, int state, int dirn);
1590 int scrollbar_show_rxvt (int update, int last_top, int last_bot, int scrollbar_len); 1469 int scrollbar_show_rxvt (int update, int last_top, int last_bot, int scrollbar_len);
1591#endif 1470#endif
1592 1471
1593#if defined(XTERM_SCROLLBAR) 1472#if defined(XTERM_SCROLLBAR)
1594 // scrollbar-xterm.C 1473 // scrollbar-xterm.C

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines