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

📄 schmodule.h

📁 brew开发的日历程序 完全模仿mediaplayer的结构设计 值得初学者学习
💻 H
📖 第 1 页 / 共 2 页
字号:
//===================WEEKLY DISPLAY STRUCTURE.===============================
typedef struct _ScheWeekSreen 
{
	INHERIT_CWindow(IWindow);         //extends CWindow

	uint8            m_days;          // current month has days
	uint8            m_day;           // current month's day
	uint8            m_month;         // current month
	uint16           m_year;          // current year	

	uint16         dayOfweek;         // the day of this week	
	IMenuCtl *     m_pMenuCtl;
	AEERect        rectMenu;
} CWeekWin;	




//===================SELECTDAY WINDOW DISPLAY STRUCTURE.=====================
typedef struct _SelectDayWin
{
    INHERIT_CWindow(IWindow);                         // extends CWindow
	
	AEERect  rect;	
	IDateCtl *m_pDateCtl; 
	uint16   m_dayOfweek;
	
}SelectDWin;


//===================EXAMINE EVENT WINDOW DISPLAY STRUCTURE.=================
typedef struct _OneDayEvent
{
	INHERIT_CWindow(IWindow); 

    IMenuCtl*      m_pMenuCtl;
	AEERect        m_rMenuRect;
	MenuState      m_mState;
	flg            m_bHasMemo:1;            // Processing redraw 
	EventData *    data;
	uint8          m_mCindex;
}ExamineEventWin;



//===================CREATE EVENT WINDOW DISPLAY STRUCTURE.=================
typedef struct _CreateEventWin
{
    INHERIT_CWindow(IWindow);                         // extends CWindow

	AppState appState;
	AEERect  rect;	
	void     *m_Obj;       
	uint16   alarmType;
	AECHAR   memoContent[MAX_DESC_SIZE];
	AECHAR   name[10];
	AECHAR   alarmTime[25];
	
}CreateEventWin;



//===================APP GLOBAL STRUCTURE.===============================

struct Schedule 
{
	AEEApplet               a ;	                    // First element of this structure must be AEEApplet
	AEEDeviceInfo			DeviceInfo;             // always have access to the hardware device information
	uint16				    m_width;				// screen's width
	uint16				    m_height;			    // screen's height
	uint16                  m_year;                 // the year selected
	uint8                   m_month;                // the month selected
	uint8                   m_day;                  // the day selected
	uint8                   m_days;                 // the number of days of one month
	WinType                 e_win;                  // Window type
	AEERect                 m_rScreenRect;			// Screen Rect
	AEERect                 m_rectHdr;

	WinType                 m_eActiveWin;           // Active window
    WinType                 m_eSuspendWin;          // Suspended window

	IWindow *               m_pWin;                 // define interface window
	IImage *                m_pHdrImage;            // header image
	uint16                  eventType;
	AEECallback             m_cbRedraw;             // processing callback

	ScheDB*	m_pScheDB ;
	NodeHead * head; 
	flg                     m_bRedraw:1;            // Processing redraw   
};

/*===========================================================================
                      FUNCTIONS DECLARATIONS
===========================================================================*/
//====================ABSTRACT WINDOW FUNCTIONS==============================

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);

//====================APP FUNCTIONS =========================================

extern void     Schedule_RedrawNotify(Schedule * pme);
extern void     Schedule_Redraw(Schedule * pme, boolean bDefer);
extern boolean  Schedule_SetWindow(Schedule * pme, WinType eWin, uint32 dwParam);
extern void     SH_DrawImage(IImage * pImage, AEERect * pRect, boolean bCenter);
extern void     Schedule_DrawSplash(Schedule * pMe);
extern boolean  Schedule_HandleEvent(Schedule* , AEEEvent ,uint16 , uint32 );
extern boolean  Schedule_InitAppData(IApplet* );
extern void     Schedule_FreeAppData(IApplet* );
extern boolean  SH_AddMenuItem(IMenuCtl * ,uint16 ,AECHAR * ,uint16 ,uint16 ,uint32 );

//====================MAIN WINDOW FRAME FUNCTIONS============================

IWindow *  CMainWin_New(Schedule * pOwner);
void       CMainWin_InitData(CMainWin *pMe);
void       CMainWin_Delete(IWindow * po);
void       CMainWin_Enable(IWindow * po, boolean bEnable);
void       CMainWin_Redraw(IWindow * po);
boolean    CMainWin_HandleEvent(IWindow * po, AEEEvent eCode, uint16 wParam, uint32 dwParam);


void       ScheDateDisp_DrawGround  (CMainWin* pMe);
void       ScheDateDisp_CusorMove   (CMainWin* pMe,int direction);
void	   ScheDateDisp_DrawDate    (CMainWin* pMe);
void	   ScheDateDisp_UpdateScreen(CMainWin* pMe,int direction);
void	   ScheDateDisp_InitCusor   (CMainWin* pMe);
void       ScheDateDisp_DrawCusor   (CMainWin* pMe);
void       ScheDateDisp_Disp(CMainWin* pMe);
void       ScheExt_SetMonthProperties(Schedule* pMe);
boolean    ScheExt_InitClassData(ScheExt** ppObj,Schedule* pAee);
void       release_ScheExt(ScheExt* Set);
void       ScheExt_Reset(Schedule* pMe,ScheExt* Set);



//====================WEEKLY DISPLAY WINDOW FRAME FUNCTIONS==================
IWindow *  CWeekWin_New(Schedule * pOwner);
void       CWeekWin_Delete(IWindow * po);
void       CWeekWin_Enable(IWindow * po, boolean bEnable);
void       CWeekWin_Redraw(IWindow * po);
boolean    CWeekWin_HandleEvent(IWindow * po, AEEEvent eCode, uint16 wParam, uint32 dwParam);

void       SWeekInitMenu(CWeekWin* pMe);
void       ScheWeek_DrawDate(CWeekWin* pMe);
uint8      ScheWeek_getMonthDays(uint8 month);
void       ScheWeek_updateScreen(CWeekWin* pme,uint8 direction);
void       ScheWeek_addItemToMenu(CWeekWin* pme ,uint8 week);
void       ScheWeek_drawButton(CWeekWin* pMe);



//====================SELECTDAY DISPLAY WINDOW FRAME FUNCTIONS===============
IWindow *  CSelectDWin_New(Schedule * pOwner);
void       CSelectDWin_Delete(IWindow * po);
void       CSelectDWin_Enable(IWindow * po, boolean bEnable);
void       CSelectDWin_Redraw(IWindow * po);
boolean    CSelectDWin_HandleEvent(IWindow * po, AEEEvent eCode, uint16 wParam, uint32 dwParam);

void       CSelectDWin_InitDateCtl(SelectDWin *  pme);
void       CSelectDWin_DrawWeek(SelectDWin* pme);
void       CSelectDWin_drawButton(SelectDWin* pme);


//========================= EXAMINE EVENT WINDOW FUNCTIONS===================
IWindow *  CExamineEventWin_New(Schedule * pOwner);
void       CExamineEventWin_Delete(IWindow * po);
void       CExamineEventWin_Enable(IWindow * po, boolean bEnable);
void       CExamineEventWin_Redraw(IWindow * po);
boolean    CExamineEventWin_HandleEvent(IWindow * po, AEEEvent eCode, uint16 wParam, uint32 dwParam);


void       CExamineEventWin_InitData(ExamineEventWin *pme);
boolean    CExamineEventWin_InitMainMenu(ExamineEventWin *pme);
boolean    CExamineEventWin_HasMemos(ExamineEventWin* pme);
void       CExamineEventWin_DrawDate(ExamineEventWin* pme);
void	   SCEvent_DrawBottom(ExamineEventWin* pme ,const AECHAR *command);
void       CExamineEventWin_HasNoMemo(ExamineEventWin* pme);
void       CExamineEventWin_AddItemToMenu(ExamineEventWin *pme);
void       ReleaseObj(void ** ppObj);

//========================= CREATE EVENT WINDOW FUNCTIONS====================
IWindow *  CCEventWin_New(Schedule * pOwner);
void       CCEventWin_Delete(IWindow * po);
void       CCEventWin_Enable(IWindow * po, boolean bEnable);
void       CCEventWin_Redraw(IWindow * po);
boolean    CCEventWin_HandleEvent(IWindow * po, AEEEvent eCode, uint16 wParam, uint32 dwParam);


void       CCEventWin_InitData(CreateEventWin *pMe);
boolean    SCEvent_CreateMainControls(CreateEventWin *pme);
void       ReleaseObj(void ** ppObj);
boolean    SCEvent_CreateMemoScreen(CreateEventWin* pme);
void       SCEvent_DrawBottomScreen(CreateEventWin* pme);
boolean    SC_ProcessTextEvent(AEEEvent eCode, uint16 wParam, uint32 dwParam,ITextCtl* m_pText);
boolean    SCEvent_CreatBrithScreen(CreateEventWin* pme, AppState apps);
boolean    SCEvent_CreateTelphoneScreen(CreateEventWin* pme);
void       SC_setMemoContent(CreateEventWin* pme);
void       SC_setMemoTime(CreateEventWin* pme);
void       SC_saveMemo(CreateEventWin* pme);


#endif

⌨️ 快捷键说明

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