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

界面编程

开发平台:

DOS

  1. #ifndef __YYXWIN_H
  2. #define __YYXWIN_H
  3. #include "yyxsys.h"
  4. #include "yyxsys1.h"
  5. #include "keydef.h"
  6. #include "yyxmsg.h"
  7. #include "yyxctrl.h"
  8. #include "group.h"
  9. #include "yyxobj.h"
  10. #define VISIBLE 1
  11. #define IN_VISIBLE 0
  12. #define TEMP_IN_VISIBLE 3
  13. #define NORMAL_WIN 0x00
  14. #define DIALOG_WIN 0x01
  15. #define UNRESERVE_WIN 0x02
  16. #define SELECT_WIN 1
  17. #define UNSELECT_WIN 2
  18. #define VISIBLE_WIN 3
  19. #define IN_VISIBLE_WIN 4
  20. #define DRAW_WIN_FRAME 5
  21. #define DRAW_WIN_CONTROL 6
  22. #define SCREEN_BACK_COLOR WHITE
  23. //#define FALSE 0
  24. //#define TRUE  1
  25. #define SIZING 2 //for in_win_moving
  26. struct pwin_list {
  27. Twin *pthe_win;
  28. struct pwin_list *pnext_list;
  29. };
  30. class win_class :public Tobject {
  31. public:
  32. BOOL canclose;     // used for close
  33. Rect newbounds; //used in move & size
  34. Rect oldbounds; //used in Zoom in & out
  35. byte  visible;   /* VISIBLE & IN_VISIBLE  */
  36. Tgroup  *win_group_control;
  37. struct viewporttype  viewport;   /* inner rect's points */
  38. protected:
  39. void far  *punder_bitmap; /* used in open_win    */
  40. void far  *pself_bitmap;         /* used in visible_win */
  41. Twin    *pnext_win;         /* used as a link of all windows  */
  42. protected:
  43. Rect title_box;
  44. Rect close_box;
  45. Rect zoom_out_box;
  46. Rect zoom_in_box;
  47. Rect size_box;
  48. public:
  49. struct pwin_list   *pfirst_above;
  50. struct pwin_list   *pfirst_under;
  51. void far  *pother_info; /* used for later */
  52. public:static Twin *pnext; //used as CTRL_F6's link
  53. /*-----------------------------functions------------------------------*/
  54. /*------------------------------------------------------------------------*/
  55. /*------------------------------------------------------------------------*/
  56. public: // comes from yyxobject
  57. virtual void  select();
  58. virtual void  draw();
  59. virtual int   key_pressed_handler  ( int key_scan_num );
  60. virtual int   msg_handler (MSG& message );
  61. // Note: No unselect--->since unselect_current_selected_win
  62. public:
  63. int   unselect_current_selected_win();
  64.  win_class
  65. (int ID,char *title,byte type,byte hotkey,
  66.  int left,int top,int width,int height
  67. );
  68. virtual ~win_class ();
  69. virtual BOOL func_canclose(); // || canclose two channel
  70. virtual void  setup_window ();
  71.  void   draw_win_frame ();
  72.  void   draw_win_control ();
  73. virtual int   draw_win_contents ();
  74.  int   invisible_one_win ();
  75.  int   visible_one_win  ();
  76.  int   open_one_win  ();
  77.  int   close_one_win  ();
  78.  void  insert_control (Tcontrol *pcontrol_handled);
  79.  int move_size_window (int key_scan_num );
  80.  void draw_size_rect();
  81. protected:
  82.  void  dispose_all_controls (Tcontrol  *pcontrol_handled );
  83.  int   make_it_and_above_invisible();
  84.  int   make_it_and_above_visible ();
  85.  int   build_all_links ();
  86.  int   kill_all_links ();
  87.  int  restore_self_bitmap ();
  88.  int  restore_under_bitmap ();
  89.  int  reserve_self_bitmap ();
  90.  int  reserve_under_bitmap();
  91. BOOL win_class::above_has_this (Twin *tmp);
  92. int win_class::restore();
  93. BOOL win_class::under_all_redrawed(Twin *pwin);
  94. int win_class::mark_need_redraw();
  95. BOOL win_class::mark_above_win (Twin *pwin);              //no recursion
  96. };
  97. /* GLOBAL VARIABLES FOR WINDOWS */
  98. #ifdef __YYXMAIN
  99. int  WIN_TITLEBAR_SELECTED_COLOR ;
  100. int  WIN_TITLEBAR_UNSELECTED_COLOR ;
  101. int  WIN_TITLE_SELECTED_COLOR    ;
  102. int  WIN_TITLE_UNSELECTED_COLOR  ;
  103. int  WIN_BACKGROUND_COLOR     ;
  104. // WIN_FRAME_COLOR    ;
  105. // WIN_HOTKEY_COLOR   ;
  106.  Twin  *pfirst_win_of_all  =NULL; /* used in search of all window */
  107.  Twin  *pcurrent_selected_win =NULL;
  108.  BOOL  in_win_moving =FALSE;
  109. #else
  110. extern int WIN_TITLEBAR_SELECTED_COLOR ;
  111. extern int WIN_TITLEBAR_UNSELECTED_COLOR ;
  112. extern int WIN_TITLE_SELECTED_COLOR    ;
  113. extern int WIN_TITLE_UNSELECTED_COLOR  ;
  114. extern int WIN_BACKGROUND_COLOR     ;
  115. // extern int WIN_FRAME_COLOR    ;
  116. // extern int WIN_HOTKEY_COLOR   ;
  117. extern Twin  *pfirst_win_of_all  ; /* used in search of all window */
  118. extern Twin  *pcurrent_selected_win ;
  119. extern BOOL  in_win_moving ;
  120. #endif
  121. /*------------------------------------------------------------------------*/
  122. #endif