📄 schmodule.h
字号:
/**
* File Name : schmodule.h
* Created : 07/04/10
* Author : ZhongNingLin@neusoft.com
* Model : 05YOP
* Description : [[CN]] 此文件的职责是: [[CN]]
**/
#ifndef _SCHMODULE_H
#define _SCHMODULE_H
/*===============================================================================
INCLUDES AND VARIABLE DEFINITIONS
=============================================================================== */
#include "AEEModGen.h" // Module interface definitions
#include "AEEAppGen.h" // Applet interface definitions
#include "AEEShell.h" // Shell interface definitions
#include "AEEFile.h" // File interface definitions
#include "AEEDB.h" // Database interface definitions
#include "AEEstdlib.h"
#include "AEE.h"
#include "AEEDate.h"
#include "AEETime.h"
#include "AEEText.h"
#include "Schedule.bid"
#include "schedule.brh"
/*INTERFACE DEFINITION*/
typedef struct _IWindow IWindow;
QINTERFACE(IWindow)
{
/*Enables/Disables the window. Window controls will not process*/
/*events if the window is disabled.*/
void (*Enable)(IWindow * po, boolean bEnable);
/*Redraws the window if enabled*/
void (*Redraw)(IWindow * po);
/*Handles the events routed to the window*/
boolean (*HandleEvent)(IWindow * po, AEEEvent eCode, uint16 wParam, uint32 dwParam);
/*Releases the window resources*/
void (*Delete)(IWindow * po);
};
#define IWINDOW_Enable(p) GET_PVTBL(p, IWindow)->Enable(p, TRUE)
#define IWINDOW_Disable(p) GET_PVTBL(p, IWindow)->Enable(p, FALSE)
#define IWINDOW_Redraw(p) GET_PVTBL(p, IWindow)->Redraw(p)
#define IWINDOW_HandleEvent(p, e, w, dw) GET_PVTBL(p, IWindow)->HandleEvent(p, e, w, dw)
#define IWINDOW_Delete(p) GET_PVTBL(p, IWindow)->Delete(p)
//MACROS
#define SH_IWINDOW_SETVTBL(pVtbl, pfnEn, pfnRd, pfnHE, pfnDel) \
(pVtbl)->Enable = (pfnEn); \
(pVtbl)->Redraw = (pfnRd); \
(pVtbl)->HandleEvent = (pfnHE); \
(pVtbl)->Delete = (pfnDel)
#define SH_RELEASEIF(p) SH_FreeIF((IBase **)&(p))
#define SH_RELEASEWIN(p) SH_FreeWin((IWindow **)&(p))
#define SH_WINERR_RETURN(p) { SH_RELEASEWIN(p); return NULL; }
#define SH_DRAWHEADER(pme) SH_DrawImage((pme)->m_pOwner->m_pHdrImage, &(pme)->m_pOwner->m_rectHdr, TRUE)
#define SH_ISEVTKEY(e) ((e) == EVT_KEY)
#define SH_ISCLR(e) (SH_ISEVTKEY(e) && wParam == AVK_CLR)
#define SH_ISEVTCMD(e) ((e) == EVT_COMMAND)
#define SH_ISCMD(e, c) (SH_ISEVTCMD(e) && (c) == wParam)
#define Schedule_CancelRedraw(p) { CALLBACK_Cancel(&(p)->m_cbRedraw); (p)->m_bRedraw = FALSE; }
#define Schedule_DisableWin(p) { IWINDOW_Disable((p)->m_pWin); Schedule_CancelRedraw(p); }
/*===========================================================================
PUBLIC DATA DECLARATIONS
===========================================================================*/
/*-------------------------------------------------------------------
Defines
-------------------------------------------------------------------*/
#define MP_SPLASH_TIMER 750
#define EVT_CREATEMEDIA EVT_USER
#define EVT_CREATEMEDIA_QCP EVT_USER + 1
// Based on Menu style sheet:
#define MENU8_FT AEE_FT_NONE
#define MENU8_SELECT_FT AEE_FT_RAISED
#define MENU8_RO AEE_RO_TRANSPARENT
#define MENU8_SELECT_RO AEE_RO_TRANSPARENT
#define MENU8_COLOR_MASK (MC_BACK | MC_SEL_BACK | MC_SEL_TEXT)
#define MENU8_BACKGROUND MAKE_RGB(255,255,204)
#define MENU8_SELECT_BACKGROUND MAKE_RGB(153, 204, 204)
#define RECT_BACKGROUND MAKE_RGB(153, 204, 204)
#define MENU8_SELECT_TEXT RGB_BLACK
#define TB8_BACKGROUND MAKE_RGB(192,192,192)
#define TB8_SELECT_BACKGROUND MAKE_RGB(192, 192, 192)
//MAIN WINDOW MACROS
#define UP 1
#define DOWN 2
#define LEFT 3
#define RIGHT 4
#define BANNER_DISPLAY_TIMER 750
//CREATE EVENT WINDWO MACROS
#define MAX_DESC_SIZE 30
#define CTL_TAB_LEFT 0 // The wParam value of a left key press in an EVT_CTL_TAB event
#define CTL_TAB_RIGHT 1 // The wParam value of a right key press in an EVT_CTL_TAB event
/*===========================================================================
ENUM TYPE DECLARATIONS
===========================================================================*/
/*窗口的类型*/
typedef enum _WinTypeType
{
APP_NONE,
APP_MAIN_WIN, //主窗口 used
APP_DATESEL_WIN, //选择日期窗口 used
APP_WEEKDATEDISP_WIN, //星期窗口 used
APP_STATE_ONEDAYDISP, //一日事件窗口 used
APP_STATE_MENUDISP, //目录窗口 used date select /event view /event creat
APP_STATE_EVTTYPE, //事件类型目录窗口calandar /memo /other
APP_STATE_CREATEVT, //create event used
APP_STATE_EVTLIST //事件列表窗口
}WinType;
/*程序事件状态*/
typedef enum _AppStateType
{
APP_STATE_MAIN, //主窗口
APP_STATE_DATEDISP
}AppStateType;
//===========================EXAMINE EVENT ENUM TYPE=========================
typedef enum _MenuStateType
{
APP_MENU_MAIN,
APP_MENU_OPTION,
APP_MENU_SELECT,
APP_MENU_VIEWD
}MenuState;
//===========================CREATE EVENT WINDOW ENUM TYPE===================
typedef enum _AppState
{
APP_MEMO, //备忘录
APP_MEMO_ALARM, //备忘录闹钟
APP_MEMO_ALARMTIME, //备忘录闹钟时间
APP_BRITHDATY_ALARM, //生日状态下的闹钟设置
APP_BRITHDATY_DATE, //生日出生年份
APP_BRITHDATY_ALARMTIME,//生日状态下的闹钟时间设置
APP_TELPHON, //通话
APP_TELPHON_NAME, //通话姓名
APP_TELPHON_TIME, //通话时间
APP_TELPHON_ALARM, //通话闹钟
APP_BRITHDATY, //生日
APP_OTHER, //其他
}AppState;
/*===========================================================================
STRUCTURE TYPE DECLARATIONS
===========================================================================*/
typedef struct Schedule Schedule;
/*扩展接口的宏*/
#define INHERIT_CWindow(iname) \
DECLARE_VTBL(iname) \
Schedule * m_pOwner; \
IShell * m_pIShell; \
IDisplay * m_pIDisplay; \
flg m_bActive:1
/*定义一个抽象窗口*/
typedef struct CWindow
{
INHERIT_CWindow(IWindow);
}CWindow;
//===========================MAIN WINDOW STRUCTURE============================
typedef struct _ScheExt
{
AEERect m_rRect1; // Screen Rect
AEERect m_rRect2; // Screen Rect
AEERect m_rRect3; // Screen Rect
}ScheExt;
// Main window: Displays main canlandar.
typedef struct _CMainWin
{
INHERIT_CWindow(IWindow);
AEERect m_rGridRect;
int v_distance;
int h_distance;
int h_startPos;
int v_startPos;
int h_count;
int v_count;
int m_firstPos;
int m_days;
flg m_bAbout:1;
ScheExt* set;
}CMainWin;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -