|
|
1.1 ! root 1: /* ! 2: * $Source: /u1/X/xterm/RCS/menu.h,v $ ! 3: * $Header: menu.h,v 10.100 86/12/01 14:40:05 jg Rel $ ! 4: */ ! 5: ! 6: /* @(#)menu.h X10/6.6B 12/26/86 */ ! 7: /* ! 8: * Menu items are constructed as follows, starting from the left side: ! 9: * ! 10: * menuItemPad ! 11: * space for check mark ! 12: * menuItemPad ! 13: * text + padding ! 14: * menuItemPad ! 15: * ! 16: * The padding for the text is that amount that this text is narrower than the ! 17: * widest text. ! 18: */ ! 19: ! 20: typedef struct _menuItem { ! 21: int itemHeight; /* total height of this item */ ! 22: int itemFlags; /* flags of item */ ! 23: ! 24: #define itemDisabled 0x0001 /* item is disabled */ ! 25: #define itemChecked 0x0002 /* item has check mark */ ! 26: #define itemStateMask 0x0003 /* mask for current state */ ! 27: #define itemSetDisabled 0x0004 /* item wants to be disabled */ ! 28: #define itemSetChecked 0x0008 /* item wants check mark */ ! 29: #define itemSetMask 0x000c /* mask for desired state */ ! 30: #define itemSetMaskShift 2 /* for comparison with actual */ ! 31: #define itemChanged 0x0010 /* item desires change */ ! 32: ! 33: char *itemText; /* text of item */ ! 34: int itemTextWidth; /* width of text */ ! 35: int itemTextLength; /* length of text */ ! 36: struct _menuItem *nextItem; /* next item in chain */ ! 37: } MenuItem; ! 38: ! 39: typedef struct _menu { ! 40: int menuWidth; /* full width of menu */ ! 41: int menuHeight; /* full height of menu */ ! 42: int menuFlags; /* flags of this menu */ ! 43: ! 44: # define menuChanged 0x0001 /* menu changed, must redraw */ ! 45: # define menuItemChanged 0x0002 /* item changed, must redraw */ ! 46: # define menuMapped 0x0004 /* menu is now mapped */ ! 47: # define menuFreeze 0x0008 /* freeze when doing menu */ ! 48: # define menuSaveMenu 0x0010 /* save copy of menu */ ! 49: ! 50: int menuMaxTextWidth; /* width of widest text */ ! 51: int menuInitialItem; /* < 0 none, >= 0 initial item */ ! 52: int menuBorderWidth; /* width of border */ ! 53: int menuBgColor; /* background color */ ! 54: int menuFgColor; /* foreground color */ ! 55: Pixmap menuBgTile; /* backgroud tile */ ! 56: FontInfo *menuFontInfo; /* fontinfo for menu font */ ! 57: int menuItemPad; /* pad amount */ ! 58: Window menuWindow; /* window of menu */ ! 59: int (*menuEventHandler)(); /* external event handler */ ! 60: Cursor menuCursor; /* cursor used in menu */ ! 61: Pixmap menuSaved; /* copy of menu */ ! 62: Pixmap menuSavedImage; /* copy of image under menu */ ! 63: int menuSavedImageX; /* X coordinate of the saved image */ ! 64: int menuSavedImageY; /* Y coordinate of the saved image */ ! 65: MenuItem *menuItems; /* head of menu item chain */ ! 66: char *menuTitle; /* title of menu */ ! 67: int menuTitleWidth; /* width of title */ ! 68: int menuTitleLength; /* length of title */ ! 69: int menuItemTop; /* position of top of first item */ ! 70: } Menu; ! 71: ! 72: #define checkMarkWidth 9 ! 73: #define checkMarkHeight 8 ! 74: #define defaultCursorWidth 16 ! 75: #define defaultCursorHeight 16 ! 76: #define defaultCursorX 1 ! 77: #define defaultCursorY 1 ! 78: #define grayHeight 16 ! 79: #define grayWidth 16 ! 80: #define lineSeparatorHeight 9 ! 81: ! 82: #define CheckItem(menu,item) SetItemCheck(menu,item,1) ! 83: #define DisableItem(menu,item) SetItemDisable(menu,item,1) ! 84: #define EnableItem(menu,item) SetItemDisable(menu,item,0) ! 85: #define SetMenuEventHandler(menu,f) menu->menuEventHandler = f ! 86: #define UncheckItem(menu,item) SetItemCheck(menu,item,0) ! 87: ! 88: extern Menu *NewMenu();
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.