YYXMENU.H
上传用户:wtrl82617
上传日期:2007-01-07
资源大小:187k
文件大小:4k
源码类别:

界面编程

开发平台:

DOS

  1. #ifndef __YYXMENU_H
  2. #define __YYXMENU_H
  3. #if !defined(__YYXSYS_H)
  4. #include "yyxsys.h"
  5. #endif
  6. #if !defined(__YYXSYS1_H)
  7. #include "yyxsys1.h"
  8. #endif
  9. #if !defined(__YYXMSG_H)
  10. #include "yyxmsg.h"
  11. #endif
  12. #if !defined(__YYXOBJ_H)
  13. #include "yyxobj.h"
  14. #endif
  15. // #define ENABLED 1
  16. //  #define DISABLED 0       /* used for menu_status */
  17. //  #define INVISIBLE 2
  18. //#define SELECT_MENU 1
  19. //#define UNSELECT_MENU 2
  20. //#define DRAW_MENU_TITLE 3
  21. //#define ENTER_MENU 4
  22. //#define DRAW_SUB_MENU_RECT 5
  23. //#define ESC_MENU 6   /* menu OP s  */
  24. #define MAX_IMME_KEY_NUMBERS 10
  25. // #define patCopy 1
  26. class menu_class:public Tobject {
  27. public:
  28. char  *help;
  29. int  Imme_key_num;
  30. byte    sub_menu_nums;
  31. struct BitMap save_bitmap;
  32. Tmenu *psub_menu_selected;
  33. Tmenu *pfather_menu;
  34. Tmenu *pson_menu;
  35. /*____________________Functions _________________________ */
  36. public:
  37. virtual void select  () ;
  38. virtual void  unselect  () ;
  39. virtual void   draw ()  ;
  40. virtual int  msg_handler (MSG& message);
  41. virtual int   key_pressed_handler( int key_scan_num );
  42. public:
  43. menu_class (int ID,char *title_hotkey,char *help,Tmenu *pfather );
  44. menu_class (char *init_title,char *init_help);    //init
  45. void createmenu_class
  46. (Tmenu *pfather_menu,int ID,char *title,char *help,byte hotkey,int Imme_key_num,
  47.  byte status,int savebit_left,int savebit_top,int savebit_right,int savebit_bottom
  48.  );
  49. virtual ~menu_class( void );
  50. void dispose_all_submenus();
  51. // int  menu_key_trap(int key_scan_num );
  52. void  offsetmenu( int dx,int dy );
  53. void   enter_menu (void)                               ;
  54. protected:
  55. // Tmenu * get_next_enabled_item ( int direction )   ;
  56. int    esc_menu (void)                                 ;
  57. //int   menu_operation(int menu_OP) ;
  58. Tmenu   * get_next_sub_item (enum direction direct);
  59. // int   menu_func (int menu_ID )   ;
  60. // void    normal_key_handler  ( int key_scan_num );
  61. void  esc_all_menus(void);
  62. int  bar_Imme_menu_key_handler( int key_scan_num);
  63. void   draw_help_texts (char *help_texts);
  64. void   draw_sub_menu_rect ( void );
  65. //Tmenu *padd_a_new_menu
  66. int   Left_Right_key_handler(enum direction scroll_direction);
  67. };
  68. /*------------------------------------------------------ */
  69. /*------------------------------------------------------ */
  70. #ifdef __YYXMAIN
  71.   int  MENU_ITEM_ENABLED_COLOR     ;
  72.   int  MENU_ITEM_SELECTED_COLOR    ;
  73.   int  MENU_ITEM_DISABLED_COLOR    ;
  74.   int  MENU_ITEM_SELECT_COLOR      ;
  75.   int  MENU_HOTKEY_COLOR           ;
  76.   int  HELP_RECT_COLOR             ;
  77.   int  HELP_TEXT_COLOR             ;
  78.   int  MENU_RECT_COLOR             ;
  79. /* global variables */
  80. Tmenu *pcurrent_menu;
  81. struct Rect on_line_help_rect;
  82. struct viewporttype menu_viewport;
  83. int     Immediate_key [MAX_IMME_KEY_NUMBERS];
  84. int     Imme_Menu_ID    [MAX_IMME_KEY_NUMBERS];
  85. Tmenu * Imme_Menu_fptr  [MAX_IMME_KEY_NUMBERS];
  86. int     Max_Imme_key_nums;
  87. int  in_menu_trap;
  88. MSG menu_save_sysmsg;
  89. class MSGQueue menu_save_queue;
  90. #else
  91. extern int  MENU_ITEM_ENABLED_COLOR     ;
  92. extern int  MENU_ITEM_SELECTED_COLOR    ;
  93. extern int  MENU_ITEM_DISABLED_COLOR    ;
  94. extern int  MENU_ITEM_SELECT_COLOR      ;
  95. extern int  MENU_HOTKEY_COLOR           ;
  96. extern int  HELP_RECT_COLOR             ;
  97. extern int  HELP_TEXT_COLOR             ;
  98. extern int  MENU_RECT_COLOR             ;
  99. /*  global variables */
  100. extern Tmenu *pcurrent_menu;
  101. extern struct Rect on_line_help_rect;
  102. extern struct viewporttype menu_viewport;
  103. extern int Immediate_key [MAX_IMME_KEY_NUMBERS];
  104. extern int Imme_Menu_ID     [MAX_IMME_KEY_NUMBERS];
  105. extern Tmenu *Imme_Menu_fptr [MAX_IMME_KEY_NUMBERS];
  106. extern int Max_Imme_key_nums;
  107. extern int  in_menu_trap;
  108. extern MSG menu_save_sysmsg;
  109. extern class MSGQueue menu_save_queue;
  110. #endif
  111. // extern void menu_func (int menu_ID );
  112. #endif