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

📄 app.hpp

📁 一个嵌入式系统的C代码
💻 HPP
字号:
//*************************************************************************//  MODULE : App - Class definition for an "application"		  *//  AUTHOR : Ron Chernich                                                 *//  PURPOSE: Open a graphics screen, instanciate all the base controls	  *//	     types (which will be empty) and provide a messaging system   *//	     on which an application can be built.			  *//  HISTORY:                                                              *//   22-JAN-93	First (MSC/C++ 7.00) version				  *//   28-JAN-93	Modal/Modeless Window class added to allow pop-ups.	  *//   02-FEB-94  Anti-fascist mode window re-paint added for Xlib support  *//   05-FEB-94  "Window" changed to "AppWindow" 'cause of Xlib clash.     *//*************************************************************************#ifndef _RCOS_APP  #include "obj.hpp"  #include "timer.hpp"  #include "ctrls.hpp"  #include "userip.hpp"  /**********************  * First, define destinations, then messages..  */  #define   RC_System	2000	// has title and close gadget, but no border  #define   RC_Modal	2001	// has border, optional title bar, no close  #define   RC_Modeless 2002	// has the works.  #define   RC_Userapp	2010	// message destinations  #define   RC_Sysapp	2011  #define   RC_Click	2020	// user has clicked on a control  #define   RC_Close	2021	// user wants to terminate application  #define   RC_HelpKey	2022	// system level F1 key press  #define   RC_Paint	2023	// system needs display totally redrawn  #define   RC_PushBtn	2100	// creatable control gadgets  #define   RC_RadioBtn 2101  #define   RC_CheckBox 2102  /////////////////  // This is a "Window".  Instantiating one of these gives a work area  // (the graphic window) with anchors for all three button types, and  // some options, like menu bars and close gadget.  The window can be  // system modal (no menu bar, all input limited to the window), or  // modeless (menu bar, inputs go to it and its modeless ancestors).  // NOTE that (mostly) there will only ever be one instance of the  // "Window" class and that will belong to the one instance of the  // "Application" class.  Child windows are linked to the original  // window instance by calls to <Open>, so all the constructor need  // do is invoke that member to do create the head element.  In fact,  // this whole class probably should be private to the "App" class.  //  class AppWindow : public DblList {    typedef struct winTag {      rect r;      INT16  mode;      PbCtrl Pb;      RbCtrl Rb;      CbCtrl Cb;      SysMenu *Sys;      PIMBUF  pi;    } WIN;    typedef winTag *PWIN;    PWIN pw;  public:    AppWindow (INT16 md = RC_Modeless,			   // window type	    char* st = NULL,				   // title	    INT16 x1 = 0, INT16 y1 = 0,			   // location UL	    INT16 x2 = GFX_Xmin-1, INT16 y2 = GFX_Ymin-1,  // location BR	    INT16 n1 = _Black,				   // window color	    INT16 n2 = _Black)				   // modal border	   { Open(md, st, x1, y1, x2, y2, n1, n2); };    ~AppWindow (void);    UINT16 Scan (char);    UINT16 Scan (point&);    void   Title (char*);    void   Close (void);    virtual void Refresh (void);    BOOL   CBstate (UINT16 , BOOL&);    BOOL   Open (UINT16, char*, INT16, INT16, INT16, INT16, UINT16, UINT16);    BOOL   Create (UINT16, UINT16, char*, INT16, INT16, INT16, INT16);    BOOL   Destroy (UINT16, UINT16);  };  ///////////////////  // And this is an "Application".  There can be only one of these and it  // has the system timer ISR, the base Window and the Message switching  // centre for window action traffic.  //  class App : private DblList {    struct msgstruct {      INT16  dest;		// who it's from      UINT16 message;		// what it is      UINT16 wParam;		// optional 16 bit param      UINT32 lParam;		// and 32 bit param (usually a pointer)    };    BOOL bGfxOpen;    msgstruct *pm;    void AppRun (void);  public:    AppWindow *pMain;    App (char* = NULL);    ~App ();    void AppTitle   (char *st)      { pMain->Title(st); };    BOOL AppDestroy (UINT16 n, UINT16 id)      { return pMain->Destroy(n, id); };    BOOL AppCreate  (UINT16 n, UINT16 id, char *st,                     int p1, int p2, int p3 = 0, int p4 = 0)      { return pMain->Create(n, id, st, p1, p2, p3, p4); };    BOOL AppGetMsg  (UINT16&, UINT16&, UINT32&);    BOOL AppRunning (void)      { return bGfxOpen; };    BOOL AppChildWin (UINT16 md, char *st,                      INT16 x1, INT16 y1, INT16 x2, INT16 y2,		      UINT16 n1 = _Green, UINT16 n2 = _BrightWhite)      { return pMain->Open(md, st, x1, y1, x2, y2, n1, n2); };    void AppCloseWin (void)      { pMain->Close(); };    BOOL AppCBstate (UINT16 uId, BOOL &bCB)      { return pMain->CBstate(uId, bCB); };  };  #define _RCOS_APP#endif/********************************** eof **********************************/

⌨️ 快捷键说明

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