📄 absfram.h
字号:
/**
* File Name : absfram.h
* Created : 07/04/10
* Author : ZhongNingLin@neusoft.com
* Model : 05YOP
* Description : [[CN]] 此文件的职责是: [[CN]]
**/
#ifndef _ABSFRAM_H
#define _ABSFRAM_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_ISPLUGIN(p) ((p)->m_pOwner->m_bPlugin)
#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 SH_ISFULLSCRN(p) ((p)->m_bImage && (p)->m_bFullScreen)
#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 MP_MAX_STRLEN 64
#define MP_MAX_FILES 32
#define MP_MEDIA_DIR "media"
#define MP_QCP_REC_FILE "sample.qcp"
#define MP_EXT_SEPARATOR ", "
#define MP_VOLUME_STEP 25
#define MP_SEEK_TIME 10000 // 10 seconds
#define MP_PROG_TIMER 2000
#define MP_HEADER_CY 16
#define MP_ICONVIEWCTL_CY 20
#define MP_PROGBAR_DX_DIV 3 // dx is dx/3 of main rectangle
#define MP_PROGBAR_DY_DIV 2 // dy is dy/2 of main rectangle
#define MP_PROGBAR_DX_OFFSET 4 // dx is reduced by offset
#define MP_CLR_PROG_FILL MAKE_RGB(0, 128, 192)
#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)
/*-------------------------------------------------------------------
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;
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;
IWindow * CWindow_New(int16 nSize, Schedule * pOwner, VTBL(IWindow) * pvt);
boolean CWindow_ProcessEnable(IWindow * po, boolean bEnable);
void SH_FreeIF(IBase ** ppif);
void SH_FreeWin(IWindow ** ppif);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -