📄 page.c
字号:
i++;
return i;
}
int page_p_add_button(Page* page_p,Button* button_p,int OwnPage_Pos,int type)
{
int i = 0;
ButtonList p;
ButtonList prv;
ButtonList* address;
if (page_p == NULL)
return -1;
address = &page_p->m_blButtonList;
p = page_p->m_blButtonList;
prv = p;
while(p){
i++;
prv = p;
address = &p->next;
p = p->next;
}
p = (ButtonList)malloc(sizeof(struct BUTTONLIST));
if( 0 == p)
return i;
memset(p,0,sizeof(struct BUTTONLIST));
p->button_p = button_p;
*address = p;
i++;
return i;
}
int page_add_image(Page* page_p,Image* image_p)
{
int i = 0;
ImageList p;
ImageList prv;
ImageList* address;
if (page_p == NULL)
return -1;
address = &page_p->m_ilImageList;
p = page_p->m_ilImageList;
prv = p;
while(p){
i++;
prv = p;
address = &p->next;
p = p->next;
}
p = (ImageList)malloc(sizeof(struct IMAGELIST));
if( 0 == p)
return i;
memset(p,0,sizeof(struct IMAGELIST));
image_p->m_pParentPage = page_p;
p->image_p = image_p;
*address = p;
list_add_widget(page_p,IMAGE_X,(void*)image_p);
i++;
return i;
}
int page_add_border(Page* page_p,Border* border_p)
{
int i = 0;
BorderList p;
BorderList prv;
BorderList* address;
if (page_p == NULL)
return -1;
address = &page_p->m_blBorderList;
p = page_p->m_blBorderList;
prv = p;
while(p){
i++;
prv = p;
address = &p->next;
p = p->next;
}
p = (BorderList)malloc(sizeof(struct BORDERLIST));
if( 0 == p)
return i;
memset(p,0,sizeof(struct BORDERLIST));
border_p->m_pParentPage=page_p;
p->border_p=border_p;
*address = p;
list_add_widget(page_p,BORDER_X,(void*)border_p);
i++;
return i;
}
int page_add_label(Page* page_p,Label* label_p)
{
int i = 0;
LabelList p;
LabelList prv;
LabelList* address;
if (page_p == NULL)
return -1;
address = &page_p->m_llLabelList ;
p = page_p->m_llLabelList ;
prv = p;
while(p){
i++;
prv = p;
address = &p->next;
p = p->next;
}
p = (LabelList)malloc(sizeof(struct LABELLIST));
if( 0 == p)
return i;
memset(p,0,sizeof(struct LABELLIST));
label_p->m_pParentPage = page_p;
p->label_p = label_p;
*address = p;
list_add_widget(page_p,LABEL_X,(void*)label_p);
i++;
return i;
}
int page_add_button(Page* page_p,Button* button_p,int OwnPage_Pos,int type)
{
int i = 0;
ButtonList p;
ButtonList prv;
ButtonList* address;
if (page_p == NULL)
return -1;
address = &page_p->m_blButtonList;
p = page_p->m_blButtonList;
prv = p;
while(p){
i++;
prv = p;
address = &p->next;
p = p->next;
}
p = (ButtonList)malloc(sizeof(struct BUTTONLIST));
if( 0 == p)
return i;
memset(p,0,sizeof(struct BUTTONLIST));
button_p->m_nButtonType = type;
button_p->m_pParentPage=page_p; // set parent page.
p->button_p = button_p;
*address = p;
list_add_widget(page_p,BUTTON_X,(void*)button_p);
i++;
return i;
}TextItem text_struct_init( STRING szContent,LOG_FONT logfont,BOOL bFring,eLocation eLoc,COLORREF dwTextColor)
{
TextItem text;
int slen;
if(szContent!=NULL)
slen = strlen(szContent);
else
slen = 0;
if (slen !=0 ){
text.m_szContent = (STRING) malloc(slen + 1);
if(text.m_szContent)
strcpy(text.m_szContent , szContent);
}
else
text.m_szContent = NULL;
text.m_eLocation = eLoc;
text.m_bFring = bFring;
text.m_ulTextColor = dwTextColor;
if(logfont!=NULL)
slen = strlen(logfont);
else
slen = 0;
if(slen !=0)
{
text.m_LogFont = (STRING) malloc(slen+1);
if(text.m_LogFont)
strcpy(text.m_LogFont ,logfont);
}
else
text.m_LogFont = NULL;
return text;
}
Point point_struct_init(LONG x,LONG y)
{
Point point;
if (x <0)
x = 0;
if (y <0)
y = 0;
point.x = x;
point.y = y;
return point;
}
RectItem rectitem_struct_init2(COLORREF dwFaceColor,COLORREF dwFrameColor,eFrame eFrameThick,eFace_Style eFaceStyle,Point TopLeft,Point BottomRight,int nFrameStyle,int nFrameContrans)
{
RectItem rectitem;
rectitem.m_pBottomRight = BottomRight;
rectitem.m_ulFaceColor = dwFaceColor;
rectitem.m_eFrameThick = eFrameThick;
rectitem.m_ulFrameColor = dwFrameColor;
rectitem.m_eFaceStyle = eFaceStyle;
rectitem.m_pTopLeft = TopLeft;
rectitem.m_eFrameStyle = nFrameStyle;
rectitem.m_eFrameContrans = nFrameContrans;
return rectitem;
}RectItem rectitem_struct_init(COLORREF dwFaceColor,COLORREF dwFrameColor,eFrame eFrameThick, eFace_Style eFaceStyle,Point TopLeft,Point BottomRight)
{
RectItem rectitem;
rectitem.m_pBottomRight = BottomRight;
rectitem.m_ulFaceColor = dwFaceColor;
rectitem.m_eFrameThick = eFrameThick;
rectitem.m_ulFrameColor = dwFrameColor;
rectitem.m_eFaceStyle = eFaceStyle;
rectitem.m_pTopLeft = TopLeft;
return rectitem;
}
void page_free_resource(Page* pPage)
{
/* void* widget_p;
WidgetList wl;
WidgetList pWidgetList , pWidgetNext;
ButtonList pButtonList , pButtonNext;
BorderList pBorderList , pBorderNext;
ImageList pImageList, pImageNext;
LabelList pLabelList,pLabelNext;
PageList pPageList,pPageNext;
LineList pLineList,pLineNext;
wl = pPage->m_wlWidgetList;
while (wl)
{
widget_p = wl->widget_pointer;
switch(wl->widget_type)
{
case BUTTON_X:
button_free_resource((Button*)widget_p);
break;
case BORDER_X:
border_free_resource((Border*)widget_p);
break;
case LINE_X:
line_free_resource ((Line*)widget_p);
break;
case IMAGE_X:
image_free_resource((Image*)widget_p);
break;
case LABEL_X:
label_free_resource((Label*)widget_p);
break;
default:
break;
}
wl = wl ->next ;
}
if(pPage->m_szPageName)
free (pPage->m_szPageName);
if(pPage->m_szGroupID)
free (pPage->m_szGroupID);
if(pPage->m_itImageItem.szImageName)
free(pPage->m_itImageItem.szImageName);
if(pPage->m_grPageID >0)
GrDestroyWindow(pPage->m_grPageID);
if(pPage->m_timer >0)
{
pPage->m_timer = 0;
}
pButtonList = pPage->m_blButtonList;
if(pButtonList)
{
pButtonNext = pButtonList->next ;
while(pButtonList)
{
free(pButtonList);
pButtonList = pButtonNext;
pButtonNext = pButtonList?pButtonList->next :NULL;
}
}
pBorderList = pPage->m_blBorderList;
if(pBorderList)
{
pBorderNext = pBorderList->next ;
while(pBorderList)
{
free(pBorderList);
pBorderList = pBorderNext;
pBorderNext = pBorderList?pBorderList->next :NULL;
}
}
pImageList = pPage->m_ilImageList;
if(pImageList)
{
pImageNext = pImageList->next ;
while(pImageList)
{
free(pImageList);
pImageList = pImageNext;
pImageNext = pImageList?pImageList->next :NULL;
}
}
pLabelList = pPage->m_llLabelList;
if(pLabelList)
{
pLabelNext = pLabelList->next ;
while(pLabelList)
{
free(pLabelList);
pLabelList = pLabelNext;
pLabelNext = pLabelList?pLabelList->next :NULL;
}
}
pLineList = pPage->m_llLineList;
if(pLineList)
{
pLineNext = pLineList->next ;
while(pLineList)
{
free(pLineList);
pLineList = pLineNext;
pLineNext = pLineList?pLineList->next :NULL;
}
}
pWidgetList = pPage->m_wlWidgetList ;
if(pWidgetList)
{
pWidgetNext = pWidgetList->next ;
while(pWidgetList)
{
free(pWidgetList);
pWidgetList = pWidgetNext;
pWidgetNext = pWidgetList?pWidgetList->next :NULL;
}
}
pPageList = pPage->m_plPageList ;
if(pPageList)
{
pPageNext = pPageList->next;
while(pPageList)
{
free(pPageList);
pPageList = pPageNext;
pPageNext = pPageList?pPageList->next:NULL;
}
}
pPage->m_wlWidgetList = NULL;
pPage->m_blButtonList = NULL;
pPage->m_blBorderList = NULL;
pPage->m_ilImageList = NULL;
pPage->m_llLabelList = NULL;
pPage->m_llLineList = NULL;
pPage->m_plPageList = NULL;
*/
return ;
}
BOOL RegisterPageminiGUI (void)
{
WNDCLASS MyClass;
MyClass.spClassName = PAGE_MINIGUI;
MyClass.dwStyle = WS_NONE;
MyClass.dwExStyle = WS_EX_NONE;
MyClass.hCursor = GetSystemCursor (IDC_ARROW);
MyClass.iBkColor = COLOR_lightwhite;
MyClass.WinProc = Page_miniGUIProc;
return RegisterWindowClass (&MyClass);
}
void UnRegisterPageminiGUI (void)
{
UnregisterWindowClass (PAGE_MINIGUI);
}
int Page_miniGUIProc (HWND hwnd, int message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case MSG_PAINT:
{
Page* page;
WinInfo* info = 0;
info = (WinInfo*)SearchInfo(hwnd);
if(!info)
return 0;
page = (Page*)info->obj;
ExposurePage(page);
}
break;
case MSG_LBUTTONDOWN:
break;
case MSG_LBUTTONUP:
break;
case MSG_TIMER:
{
WinInfo* info = 0;
info = (WinInfo*)SearchInfo(hwnd );
if(!info)
return ;
if(info->type == SUBPAGE_X)
{
int len =0;
int page_no = 0;
Page* page_p;
ButtonList buttonlist;
Page* page ,*target_page,*OwnPage;
page = (Page*)info->obj;
target_page =(Page*) page->target_page;
OwnPage = (Page*)page->m_pParentPage;
page_p = g_list;
if(page->m_timer >0 )
{
KillTimer(page->m_grPageID,page->m_timer);
page->m_timer = 0;
page->target_page = 0;
}
Show_page(page,FALSE,FALSE,NULL);
if(target_page != NULL)
{
Show_page(target_page,TRUE,TRUE,NULL);
for(page_no = 0;page_no < g_list_number;page_no++)
{
if ((g_list[page_no].m_bStyle == MAIN_PAGE) && (g_list[page_no].m_grPageID >0))
{
page_p = &g_list[page_no];
if(page_p!=target_page)
{
Show_page(page_p,FALSE,TRUE,NULL);
}
}
}
}
else
{
Show_page(OwnPage,TRUE,TRUE,NULL);
}
if(target_page)
{
buttonlist = target_page->m_blButtonList;
while(buttonlist)
{
Button* b = (Button*)buttonlist->button_p;
if(b && b->m_nReturn)
b->own_page = OwnPage;
buttonlist = buttonlist->next;
}
}
}
}
break;
default:
break;
}
return DefaultControlProc (hwnd, message, wParam, lParam);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -