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

界面编程

开发平台:

DOS

  1. #include "yyxobj.h"
  2. #if !defined(__YYXSYS1_H)
  3. #include "yyxsys1.h"
  4. #endif
  5. void object_class::select(){}
  6. void object_class::unselect(){}
  7. void object_class::draw(){}
  8. int  object_class::key_pressed_handler( int key_scan_num ){return FALSE;}
  9. int  object_class::msg_handler(MSG& message){return FALSE;}
  10. object_class::object_class(int ID,char *title_hotkey,byte status,byte type,
  11.  int left,int top,int width,int height )
  12. {
  13.   byte hotkey=0xff;
  14. this->ID =ID;
  15. strcpy (title,title_hotkey);
  16. get_title_hotkey (title,hotkey);
  17. this->hotkey =hotkey;
  18. this->status =status;
  19. this->type =type ;
  20. SetRect (&bounds,left,top,left+width,top+height);
  21. pleft  =this; //Don't Link into; Who do you know where to link???!!!
  22. pright =this;
  23. }
  24. object_class::~object_class(){};
  25. Tobject * object_class::get_object_thru_key ( int key_scan_num, BOOL useDisabled )
  26. {
  27. // Now it turns into Enabled_item // from this,to this's next
  28.   Tobject * ptmp;
  29. step =0;ptmp =this;
  30. if (ptmp->pright !=this)
  31. do {
  32. step ++;
  33. ptmp = ptmp->pright;
  34. }
  35. while ((!useDisabled)&&(ptmp !=this)&&((ptmp->status & DISABLE)||(ptmp->status&INVISIBLE)||
  36.   (alt_key[ toupper(ptmp->title[ptmp->hotkey])-'A'] !=key_scan_num )) );
  37. if (ptmp ==this) step =0;
  38. return ptmp;
  39. }
  40. Tobject * object_class::get_next_object ( enum direction direct, BOOL useDisabled )
  41. {
  42. // Now it turns into Enabled_item // from this,to this's next
  43.   Tobject * ptmp;
  44. step =0;ptmp =this;
  45. if (ptmp->pright !=this)
  46. do {
  47. step += ( (direct == TO_DOWN ) ? +1 : -1 );
  48. ptmp = (direct == TO_DOWN ) ?  ptmp->pright:ptmp->pleft;
  49. }
  50. while ((!useDisabled)&&(ptmp!=this)&& ((ptmp->status & DISABLE)||(ptmp->status&INVISIBLE)));
  51. if (ptmp ==this) step =0;
  52. return ptmp;
  53. }
  54. Tobject * object_class::get_object_thru_point (int x,int y , BOOL useDisabled )
  55. {
  56.   Tobject * ptmp;
  57. step =0;ptmp =this;
  58. if (ptmp->pright !=this)
  59. do {
  60. step ++;
  61. ptmp = ptmp->pright;
  62. }
  63. // while ((!useDisabled)&&(ptmp !=this)&&((ptmp->status & DISABLE)||(ptmp->status&INVISIBLE)||
  64. //   (! PtInRect(x,y,ptmp->bounds )))  );
  65. while ((  (! PtInRect(x,y,ptmp->bounds ))|| ( ((ptmp->status & DISABLE)||(ptmp->status&INVISIBLE)) && (!useDisabled) )  )
  66. && (ptmp !=this)
  67.   );
  68. if (ptmp ==this) step =0;
  69. return ptmp;
  70. }
  71. void object_class::change_select ( Tobject *pold_select,Tobject *pnew_select )
  72. { if (pold_select != NULL )
  73. pold_select->unselect();
  74.   if (pnew_select != NULL )
  75. pnew_select->select();
  76. }