1/* 2 * Author: William Chia-Wei Cheng (bill.cheng@acm.org) 3 * 4 * Copyright (C) 2001-2009, William Chia-Wei Cheng. 5 * 6 * This file may be distributed under the terms of the Q Public License 7 * as defined by Trolltech AS of Norway and appearing in the file 8 * LICENSE.QPL included in the packaging of this file. 9 * 10 * THIS FILE IS PROVIDED AS IS WITH NO WARRANTY OF ANY KIND, INCLUDING 11 * THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR 12 * PURPOSE. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, 13 * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING 14 * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, 15 * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION 16 * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 17 * 18 * @(#)$Header: /mm2/home/cvs/bc-src/tgif/menu.e,v 1.6 2011/05/16 16:21:58 william Exp $ 19 */ 20 21#ifndef _MENU_E_ 22#define _MENU_E_ 23 24typedef struct tagMenuDontSendCommandInfo { 25 int dont_send_command; 26 int selected_index; /* equals INVALID if nothing is selected */ 27} MenuDontSendCommandInfo; 28 29extern int iconWindowShown; 30extern int iconWindowCreated; 31extern int importingIconFile; 32extern int showVersion; 33extern int activeMenu; 34extern GC textMenuGC; 35extern GC rvPixmapMenuGC; 36extern int menuRowsBeforeScroll; 37extern int menuColsBeforeScroll; 38 39extern int maxScrollableMenuWidth; 40extern int maxScrollableMenuHeight; 41 42extern int deleteCmdAsCut; 43 44extern MenuDontSendCommandInfo gstMenuDontSendCommandInfo; 45 46#ifdef _INCLUDE_FROM_MENU_C_ 47#undef extern 48#define extern 49#endif /*_INCLUDE_FROM_MENU_C_*/ 50 51extern void SendCommandToSelf ARGS_DECL((int nCmdId, int nIndex)); 52extern TgMenuItem *FindMenuItemByCmdId ARGS_DECL((TgMenu*, int cmdid)); 53extern TgMenuItem *FindMenuItemByIndex ARGS_DECL((TgMenu*, int index)); 54extern TgMenuItem *FindMenuItemBySubMenuInfoPtr ARGS_DECL((TgMenu*, 55 TgMenuInfo*)); 56extern int TgSetMenuItemCheckById ARGS_DECL((TgMenu*, int cmdid, 57 int checked)); 58extern int TgSetMenuItemRadioById ARGS_DECL((TgMenu*, int cmdid, 59 int checked)); 60extern int TgIsMenuItemChecked ARGS_DECL((TgMenu*, int index)); 61extern int TgIsMenuItemRadio ARGS_DECL((TgMenu*, int index)); 62extern int TgIsMenuItemEnabled ARGS_DECL((TgMenu*, int index)); 63extern int TgEnableMenuItemById ARGS_DECL((TgMenu*, int cmdid, 64 int enabled)); 65extern int TgEnableMenuItemByIndex ARGS_DECL((TgMenu*, int index, 66 int enabled)); 67extern int TgEnableMenuItemBySubMenuInfoPtr ARGS_DECL((TgMenu*, 68 TgMenuInfo*, 69 int enabled)); 70extern void TgClearThreeDButton ARGS_DECL((Display*, Window, GC, 71 struct BBRec *, int linewidth)); 72extern void TgDrawThreeDButton ARGS_DECL((Display*, Window, GC, 73 struct BBRec *, int state, 74 int linewidth, int button)); 75extern void TgDrawStipple ARGS_DECL((Display*, Window, GC, Pixmap, 76 int x, int y, int w, int h, 77 int fg_pixel, int bg_pixel, 78 int fill_style)); 79extern void TgDraw2DGrayedPixmap ARGS_DECL((Display*, Window, Pixmap, 80 int x, int y, int w, int h, 81 int fg_pixel, int bg_pixel)); 82extern void TgDrawMenuItem ARGS_DECL((TgMenu*, TgMenuItem*)); 83extern void TgDrawEntireMenu ARGS_DECL((TgMenu*)); 84extern int TgWhichMenuIndex ARGS_DECL((TgMenu*, int x, int y, 85 int must_be_in_menu)); 86extern TgMenu *TgCreatePopUpSubMenu ARGS_DECL((TgMenu*, int selected_index)); 87extern int TgPopUpSubMenu ARGS_DECL((TgMenu*, int win_x, int win_y)); 88extern void ScrollMenu ARGS_DECL((TgMenu*, int x, int y, int menu_w, 89 int menu_h, int button_state)); 90extern int TgMenuLoop ARGS_DECL((TgMenu*)); 91extern TgMenu *TgDestroyMenu ARGS_DECL((TgMenu*, int free_menu)); 92extern int TgSetMenuItemInfo ARGS_DECL((TgMenuItem *to_menu_item, int mask, 93 TgMenuItem *from_menu_item)); 94extern void TgSetMenuCanScroll ARGS_DECL((TgMenu*)); 95extern void TgAdjustMenuGeometry ARGS_DECL((TgMenu*, int image_w, 96 int image_h, int max_rows)); 97extern TgMenu *TgCreateMenuFromMenuInfo ARGS_DECL((TgMenu*, int X, int Y, 98 TgMenuInfo*, 99 int status_str_xlated)); 100extern void SetScrollableMenuFirstIndex ARGS_DECL((TgMenu*, int index)); 101extern int RefreshMainMenu ARGS_DECL((TgMenu*)); 102extern TgMenu *CreateMainMenu ARGS_DECL((TgMenu*, int X, int Y, TgMenuInfo*, 103 int status_str_xlated)); 104extern int MainMenu ARGS_DECL((void)); 105extern int IsPrefix ARGS_DECL((char *Prefix, char *Str, char **Rest)); 106extern void RedrawTitleWindow ARGS_DECL((void)); 107extern void RedrawIconWindow ARGS_DECL((void)); 108extern void InitTitle ARGS_DECL((void)); 109extern void InitMenu ARGS_DECL((void)); 110extern void CleanUpMenu ARGS_DECL((void)); 111extern void SaveDrawWinInfo ARGS_DECL((void)); 112extern void UnIconify ARGS_DECL((void)); 113extern void Iconify ARGS_DECL((void)); 114extern void IconEventHandler ARGS_DECL((XEvent *)); 115extern void TitleEventHandler ARGS_DECL((XEvent *)); 116extern void CalcMenubarWindowHeight ARGS_DECL((void)); 117extern void RedrawMenubarWindow ARGS_DECL((void)); 118extern int MenubarEventHandler ARGS_DECL((XEvent *)); 119 120#ifdef _INCLUDE_FROM_MENU_C_ 121#undef extern 122#ifndef _NO_RECURSIVE_EXTERN 123#define extern extern 124#endif /* ~_NO_RECURSIVE_EXTERN */ 125#endif /*_INCLUDE_FROM_MENU_C_*/ 126 127#endif /*_MENU_E_*/ 128