//================================================================== //function name: TxtLayer_Destroy //author: //date: 2008-10-7 //description: TxtLayer destroy //parameters: //return: if success return // if fail return the number of fail //modify history: //================================================================== //------------------------------------------------------------------------------------------------------------ __u32 TxtLayer_Destroy(txtlayer_man_t *ptxtlayer) { // __u8 err; __u32 ret; ptxtlayer->status |= TXTBOX_REQDEL; while(ptxtlayer->status & TXTBOX_ONDRAW) { esKRNL_TimeDly(3); } ret = TxtBuffer_Destroy(ptxtlayer->txtbuffer); if(ret!= OK) { return __LINE__; } ret = TxtList_Destroy(ptxtlayer->txtlist); if(ret != OK) { return __LINE__; } if(ptxtlayer->focus_lyr) { GUI_LyrWinDelete(ptxtlayer->focus_lyr); ptxtlayer->foucs_FB = NULL; ptxtlayer->focus_lyr = 0; } ptxtlayer->status &= (~TXTBOX_REQDEL); TXTBOX_MEMFREE(ptxtlayer); return OK; }
//================================================================== //function name: TxtLayer_Create //author: //date: 2008-10-7 //description: TxtLayer create //parameters: //return: if success return // if fail return the number of fail //modify history: //================================================================== //------------------------------------------------------------------------------------------------------------ txtlayer_man_t* TxtLayer_Create(H_LYR TxtLayer,__hdle txtbox,__u32 item_w) { // __u8 err; __u32 bpp; __u32 ret; // __u32 size; txtlayer_man_t * ptxtlayer = (txtlayer_man_t *)NULL; ptxtlayer = (txtlayer_man_t *)TXTBOX_MALLOC(sizeof(txtlayer_man_t)); if(!ptxtlayer) { goto error; } /*create txtbuffer of this TxtLayer object*/ ptxtlayer->txtbuffer = (txtbuffer_man_t *)TxtBuffer_Create(); ptxtlayer->ptxtbox = (struct tag_TXTBOX_DATA *)txtbox; ptxtlayer->layer = TxtLayer; ptxtlayer->focus_lyr = 0; ptxtlayer->chg_fb = NULL; ptxtlayer->foucs_FB = NULL; ret = TxtLayer_GetLayerInfo(ptxtlayer); if(ret != OK) { __msg("get layer information failed!\n"); goto error; } bpp = TxtLayer_GetBPP(ptxtlayer); ptxtlayer->txtlist = NULL; ptxtlayer->mode = 0; ptxtlayer->status = 0; ptxtlayer->status |= TXTBOX_INIT; ptxtlayer->draw_font = NULL; ptxtlayer->backup = EPDK_FALSE; ptxtlayer->backalpha = EPDK_FALSE; if(item_w != 0) { if(ptxtlayer->txtbuffer->rectsz.height < item_w) { __inf("no enough page!\n"); goto error; } } /*create txtlist of this TxtLayer*/ ptxtlayer->txtlist = TxtList_Create(); ptxtlayer->txtlist->bpp = bpp; ptxtlayer->layer = TxtLayer; ptxtlayer->head_fb = NULL; ptxtlayer->tail_fb = NULL; return ptxtlayer; error: if(ptxtlayer->txtlist) { TxtList_Destroy(ptxtlayer->txtlist); } if(ptxtlayer->focus_lyr) { GUI_LyrWinDelete(ptxtlayer->focus_lyr); ptxtlayer->foucs_FB = NULL; ptxtlayer->focus_lyr = 0; } if(ptxtlayer) { __inf("delete ptxtlayer\n"); TXTBOX_MEMFREE(ptxtlayer); } return NULL; }
static __s32 homeWndProc(__gui_msg_t * msg) { HomeDescriptor * hdp; H_WIN wndGesture; EWin_InheritInfo_ForHeader * extWinIfno; H_WIN hwnd; char name[20]; hdp = (HomeDescriptor *)GUI_WinGetAddData(msg->h_deswin); if (NULL == hdp) { if (GUI_MSG_CREATE != msg->id) { LogE("Failed to get home window private date, message ID (%d)", msg->id); return GUI_ManWinDefaultProc(msg); } } switch (msg->id) { case GUI_MSG_CREATE: hdp = homeWndInit(msg); if (!hdp) { GUI_PostQuitMessage(msg->h_deswin); LogE("Create Home window failed"); return -1; } if(hdp->ewii.suspend){ GUI_SetTimer(msg->h_deswin,SUSPEND_TIMER,6000,NULL); }else{ __msg("suspend is null"); } GUI_WinSetAddData(msg->h_deswin, (__u32)hdp); GUI_WinSetFocusChild(hdp->hFocusWin); break; case GUI_MSG_DESTROY: GG_GestureClose(hdp->inertia); if (hdp->ewii.gdi.font) { GUI_SFT_ReleaseFont(hdp->ewii.gdi.font); } esMEMS_Mfree(0, hdp); break; case GUI_MSG_TOUCH: #ifdef THIS_DEBUG //LogMI("Touch:%x,%d,%d", msg->dwAddData1, LOSWORD(msg->dwAddData2), HISWORD(msg->dwAddData2)); #endif if(standy_en){ if(hdp->ewii.suspend == 1){ dsk_display_lcd_on(); }else if(hdp->ewii.suspend == 2){ }else if(hdp->ewii.suspend == 3){ GUI_LyrWinDelete(hdp->StandyWindow); } standy_en = 0; break; } if(LOSWORD(msg->dwAddData2) > 320 || HISWORD(msg->dwAddData2) > 240){ break; } GUI_ResetTimer(msg->h_deswin,SUSPEND_TIMER,6000,NULL); if (GUI_MSG_TOUCH_DOWN == msg->dwAddData1) { wndGesture = EWin_GestureAttrCollect(GUI_WinGetFocusChild(msg->h_deswin), LOSWORD(msg->dwAddData2), HISWORD(msg->dwAddData2)); if (wndGesture) { extWinIfno = GUI_WinGetAttr(wndGesture); GG_GestureOnDown(hdp->inertia, msg, LOSWORD(msg->dwAddData2), HISWORD(msg->dwAddData2), &extWinIfno->gestureArgs); } } else if (GUI_MSG_TOUCH_MOVE == msg->dwAddData1) { GG_GestureOnMove(hdp->inertia, msg, LOSWORD(msg->dwAddData2), HISWORD(msg->dwAddData2)); } else if (GUI_MSG_TOUCH_UP == msg->dwAddData1) { GG_GestureOnUp(hdp->inertia, msg, LOSWORD(msg->dwAddData2), HISWORD(msg->dwAddData2)); }else if(GUI_MSG_TOUCH_LONGDOWN == msg->dwAddData1){ GG_GestureOnLpress(hdp->inertia, msg, LOSWORD(msg->dwAddData2), HISWORD(msg->dwAddData2)); } break; case GUI_MSG_TIMER: if (HOME_GESTURE_TIMER == msg->dwAddData1) { GG_GestureOnTimer(hdp->inertia, msg); }else if(SUSPEND_TIMER == msg->dwAddData1){ if(!standy_en){ if(hdp->ewii.suspend==1){ dsk_display_lcd_off(); //standy_en = 1; }else if(hdp->ewii.suspend==2){ msg->h_deswin = GUI_WinGetFocusChild(msg->h_deswin); msg->id = GUI_MSG_USER_GESTURE_DONE; msg->dwAddData2 = MAKELONG(320,0); GUI_PostMessage(msg); //standy_en = 1; }else if(hdp->ewii.suspend==3){ hdp->StandyWindow = StandyWndCreate("d:\\res\\boot_ui\\logo.bmp"); }else{ } standy_en = 1; } } break; case GUI_MSG_USER_WIN_CHANGE: if (HOME_SUBWIN_UPDATE == msg->dwAddData2) { GUI_LyrWinSetSta(hdp->ewii.lyrLow,GUI_LYRWIN_STA_SLEEP); GUI_LyrWinSetSta(hdp->ewii.lyrHigher,GUI_LYRWIN_STA_SLEEP); GUI_LyrWinSetSta(hdp->ewii.inilyrHigher,GUI_LYRWIN_STA_SLEEP); hdp->hFocusWin = SettingWndCreate(&hdp->ewii); if(hdp->hFocusWin){ GUI_WinSetFocusChild(hdp->hFocusWin); } }else if(HOME_SUBWIN_SETTING_TIME== msg->dwAddData2){ GUI_LyrWinSetSta(hdp->ewii.inilyrHigher,GUI_LYRWIN_STA_SLEEP); GUI_LyrWinSetSta(hdp->ewii.lyrHigher,GUI_LYRWIN_STA_SLEEP); GUI_LyrWinSetSta(hdp->ewii.lyrLow,GUI_LYRWIN_STA_SLEEP); hdp->hFocusWin = Setting_TimeWndCreate(&hdp->ewii); if(hdp->hFocusWin){ GUI_WinSetFocusChild(hdp->hFocusWin); } }else { if(GUI_ManWinDelete(hdp->hFocusWin)==ORANGE_OK){ GUI_WinSetFocusChild(GUI_WinGetFirstChild(msg->h_deswin)); GUI_LyrWinSetSta(hdp->ewii.lyrLow,GUI_LYRWIN_STA_ON); GUI_LyrWinSetSta(hdp->ewii.lyrHigher,GUI_LYRWIN_STA_ON); GUI_LyrWinSetSta(hdp->ewii.inilyrHigher,GUI_LYRWIN_STA_ON); } } break; default: #ifdef THIS_DEBUG // LogMI("Unhandled home window message (%d)", msg->id); #endif GUI_ManWinDefaultProc(msg); break; } return 0; }