📄 absfram.c
字号:
/*===============================================================================
FileName: AbsFram.c
=============================================================================== */
#include "absfram.h"
#include "schedule.h"
/*===============================================================================
CWindow Functions
=============================================================================== */
/*===========================================================================
This function is the base class constructor of an IWindow object.
It allocates memory for the interface and sets the vtbl.
===========================================================================*/
IWindow * CWindow_New(int16 nSize, Schedule * pOwner, VTBL(IWindow) * pvt)
{
CWindow * pme;
VTBL(IWindow) * pVtbl;
pme = MALLOC(nSize + sizeof(VTBL(IWindow)));
if (!pme)
return NULL;
pme->m_pOwner = pOwner;
pme->m_pIShell = pme->m_pOwner->a.m_pIShell;
pme->m_pIDisplay = pme->m_pOwner->a.m_pIDisplay;
pVtbl = (VTBL(IWindow) *)((byte *)pme + nSize);
MEMCPY(pVtbl, pvt, sizeof(VTBL(IWindow)));
INIT_VTBL(pme, IWindow, *pVtbl);
return (IWindow *)pme;
}
/*===========================================================================
This function indicates if IWINDOW_Enable()/IWINDOW_Disable() needs to be
processed and also sets the bActive flag appropriately.
It is called by derived class IWINDOW_Enable() function before processing
the command.
===========================================================================*/
boolean CWindow_ProcessEnable(IWindow * po, boolean bEnable)
{
CWindow * pme = (CWindow *)po;
boolean bProc = TRUE;
if (!bEnable)
{
if (pme->m_bActive)
{
pme->m_bActive = FALSE;
Schedule_CancelRedraw(pme->m_pOwner);
}
else
bProc = FALSE;
}
else
{
if (pme->m_bActive)
bProc = FALSE;
else
pme->m_bActive = TRUE;
}
return bProc;
}
/*===========================================================================
This function releases IBase.
===========================================================================*/
void SH_FreeIF(IBase ** ppif)
{
if (ppif && *ppif)
{
IBASE_Release(*ppif);
*ppif = NULL;
}
}
/*===========================================================================
This function releases IWindow.
===========================================================================*/
void SH_FreeWin(IWindow ** ppif)
{
if (ppif && *ppif)
{
IWINDOW_Delete(*ppif);
*ppif = NULL;
}
}
//----------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -