⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ctrls.hpp

📁 一个嵌入式系统的C代码
💻 HPP
字号:
//*************************************************************************//  MODULE : Pb - Class definitions for Pb, Rb and Sys objects            *//  AUTHOR : Ron Chernich                                                 *//  PURPOSE: Definition of a MW Windows GUI-like graphic control gadgets. *//  HISTORY:                                                              *//   19-JAN-93  First (MSC/C++ 7.00) version (sans mouse support)         *//   11-APR-93  Mouse activation code added				  *//   19-OCT-93  Double click on close gadget added                        *//   02-FEB-94  Refresh gadget chain function added for X convenience     *//*************************************************************************#ifndef _RCOS_CTRLS  #include "btn.hpp"  #include "gfx.hpp"  #include "timer.hpp"  #include "userip.hpp"  #define CTLS_Centre       1     // Constants for control label placement  #define CTLS_LJustify     2  #define CTLS_RJustify     3  #define RB_Radius         5     // Radio Button Indicator sizes  #define RB_LedRad         3  #define CB_Width         10     // Check Box Indicator sizes  #define CB_Height        10  #define SYS_Width        18     // Height for system menu and title bar  #define SYS_Height	   18  #define ID_CLOSE	 9000	  // System gadget identifiers  #define ID_HELP	 9001    #define ID_REDRAW	 9002  #define SYS_ClickDelay    2	  // TOD ticks to delay when graphic clicks  #define SYS_DBLclick      3	  // Close gadget double click delay  #define SYS_BarPatBkgnd   _Green	   // Title Bar Color Combos  #define SYS_BarPatFgnd    _Blue	   // set to -1 for solid color  #define SYS_TextColor     _BrightWhite   // will default to _Black  /////////////////  // Static support function prototypes used internally by these  // classes which would gain nothing by being friends to them...  //  static void CtrlTxtLab (char*, rect&, UINT16, UINT16 = _Black);  static void CtrlDelay  (UINT32 = SYS_ClickDelay);  //////////////////////////////////////  // This class defines a list of "Push Buttons", FIFO ordered by  // button ID (no check made for duplicates).  Buttons are activated  // ONE AT A TIME (no roll-over) by calling PbScan with either a Hot  // Key character (an ALT-key scan code), or a graphic point.  A non  // zero return indicates the ID of the defined button that has  // acknowledged the "Click".  //  class PbCtrl : public Btn {    void Render (btn*);    void Toggle (btn*);  public:    UINT16 Scan (char);    UINT16 Scan (point&);    void   Refresh (void);    BOOL   Create (UINT16, char*, INT16, INT16, INT16, INT16);    BOOL   Destroy (UINT16);  };  ////////////////////////  // This class defines a list of MUTUALLY EXCLUSIVE "Radio Buttons",  // FIFO ordered.  A Button is set (returning its ID) when it acknowledges  // its Hot Key character, or a point lying inside its bounding rectangle  // which comprises the button and the label.  Setting a button causes  // any other set button to be reset - cleared - turned off...  //  class RbCtrl : public Btn {    BOOL bNoDefault;    void Render (btn*);    void Toggle (btn*);  public:    RbCtrl ();    ~RbCtrl () { };    UINT16 Scan (char);    UINT16 Scan (point&);    void   Refresh (void);    BOOL   Create (UINT16, char*, INT16, INT16, BOOL = FALSE);    BOOL   Destroy (UINT16);  };  ////////////////////////  // This class defines a list of FIFO ordered "Check Boxes" - these act  // like latching Push Buttons.  A Check Box is set (returning its ID)  // when it acknowledges its Hot Key character, or a point lying inside  // its bounding rectangle which comprises the Box and the label.  The  // state (set/unset) of a particular Box may be queried.  //  class CbCtrl : public Btn {    void Render (btn*);    void Toggle (btn*);  public:    BOOL State (UINT16, BOOL&);    UINT16 Scan (char);    UINT16 Scan (point&);    void   Refresh (void);    BOOL   Create (UINT16, char*, INT16, INT16, BOOL = FALSE);    BOOL   Destroy (UINT16);  };  ////////////////////////  // And finally, this class defines a "System Menu" thing comprising a  // list of FIFO ordered objects which do MS Windows menu-like things.  // At this point, only the Title Bar and close gadget are implemented.  //  class SysMenu : public Btn {    Str  stTitle;    void RenderTB (void);    void RenderCG (BOOL);  public:    SysMenu (char* = NULL, BOOL = TRUE);    UINT16 Scan (char);    UINT16 Scan (point&);    void   Refresh (void);    void   SysTitle (char*, rect&);    BOOL   Create (UINT16, char*, char*, UINT16) { return FALSE; };  };  #define _RCOS_CTRLS#endif/********************************** eof **********************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -