📄 taskbar.c
字号:
break; case TASKBAR_OBJID_IME: TaskBar_ImePressed(hWnd,pItem); break; case TASKBAR_OBJID_CLOCK: TaskBar_ClockPressed(hWnd,pItem); break; } } pItem = pItem->pNext; }}static void TaskBar_StartButtonPressed( HWND hWnd, PTaskBarItem pItem){ PWindowsTree pWin; int iRetMsg; pWin = (PWindowsTree)hWnd; iRetMsg=STARTMENU_CLICKED; iRetMsg=iRetMsg<<16; SendNotifyMessage((HWND)(pWin->pParent), LMSG_COMMAND,(WPARAM)iRetMsg,(LPARAM)NULL);}static void TaskBar_SkbPressed( HWND hWnd, PTaskBarItem pItem){ pItem->iCurValue = (pItem->iCurValue + 1)%pItem->iTotalPictureNumber; InvalidateRect(hWnd,&(pItem->rect),true); if(pItem->iCurValue) ShowSkbWindow(); else HideSkbWindow();}static void TaskBar_DbcPressed( HWND hWnd, PTaskBarItem pItem){ pItem->iCurValue = (pItem->iCurValue + 1)%pItem->iTotalPictureNumber; InvalidateRect(hWnd,&(pItem->rect),true); SwitchDbc(pItem->iCurValue);}static void TaskBar_ImePressed( HWND hWnd, PTaskBarItem pItem){ pItem->iCurValue = (pItem->iCurValue + 1)%pItem->iTotalPictureNumber; InvalidateRect(hWnd,&(pItem->rect),true); //iCurValue is mapped to the ime status switch(pItem->iCurValue){ case IME_STATUS_ENGLISH: SetSkbLayout(SKB_LAYOUT_STANDARD); SwitchIme(); break; case IME_STATUS_HANDWRITE: SetSkbLayout(SKB_LAYOUT_HANDWRITE); SwitchIme(); break; default: //other installed chinese input method SetSkbLayout(SKB_LAYOUT_STANDARD); SwitchIme(); break; } }static void TaskBar_ClockPressed( HWND hWnd, PTaskBarItem pItem){// printf("!\n");}static void ClearTaskBarData( HWND hWnd){ PWindowsTree pWin; PTaskBar pTaskBar; PTaskBarItem pItem,pPrev; pWin = (PWindowsTree)hWnd; if(!pWin) return; pTaskBar = (PTaskBar)(pWin->dwAddData); if(!pTaskBar) return; pItem = pTaskBar->pItemHead; pPrev = pItem; while(pPrev){ pItem = pItem->pNext; free(pPrev->pData); free(pPrev); pPrev = pItem; } free(pTaskBar);}static BOOL InitFixTaskBarData( HWND hWnd){ FILE* fp; PTaskBarItem pItem; void* pAddr; char* pEnvStr; char pString[256]; PTaskBar pTaskBar; PWindowsTree pWin; pWin = (PWindowsTree)hWnd; if(!pWin) return false; pEnvStr=getenv("LGUI_HOME"); if(!pEnvStr) return false; pTaskBar = (PTaskBar)malloc(sizeof(TaskBar)); if(!pTaskBar) return false; memset(pTaskBar,0,sizeof(TaskBar)); pTaskBar->iTotalItem = TASKBAR_ITEMS_NUMBER; //========================================================== //start button pItem = (PTaskBarItem)malloc(sizeof(TaskBarItem)); if(!pItem) return false; memset(pItem,0,sizeof(TaskBarItem)); pItem->bShow = true; pItem->iCurValue = 0; pItem->id = TASKBAR_OBJID_STARTBUTTON; pItem->iTotalPictureNumber =TASKBAR_STARTBUTTONBMP_NUMBER; SetRect(&(pItem->rect),TASKBAR_STARTBUTTON_LEFT,1, TASKBAR_STARTBUTTON_LEFT + TASKBAR_STARTBUTTON_WIDTH-1,TASKBAR_BUTTONS_HEIGHT); pItem->pData = malloc(pItem->iTotalPictureNumber * TASKBAR_BUTTONS_HEIGHT * TASKBAR_STARTBUTTON_WIDTH * _lGUI_iBytesDataType); if(!pItem->pData) return false; strcpy(pString,pEnvStr); strcat(pString,TASKBAR_STARTBUTTONBMP_NOPRESSED); fp = fopen(pString,"rb"); if(!fp) return false; ReadBmpToBuf(fp,TASKBAR_STARTBUTTON_WIDTH,TASKBAR_BUTTONS_HEIGHT,pItem->pData); fclose(fp); strcpy(pString,pEnvStr); strcat(pString,TASKBAR_STARTBUTTONBMP_PRESSED); fp = fopen(pString,"rb"); if(!fp) return false; ReadBmpToBuf(fp,TASKBAR_STARTBUTTON_WIDTH,TASKBAR_BUTTONS_HEIGHT, GetStartButtonBmpBufAddress(pItem->pData,1)); fclose(fp); pTaskBar->pItemHead = pItem; //===================================================== //skb pItem = (PTaskBarItem)malloc(sizeof(TaskBarItem)); if(!pItem) return false; memset(pItem,0,sizeof(TaskBarItem)); pItem->bShow = true; pItem->iCurValue = 0; pItem->id = TASKBAR_OBJID_SKB; pItem->iTotalPictureNumber = TASKBAR_SKBBMP_NUMBER; SetRect(&(pItem->rect),TASKBAR_SKBSWITCH_LEFT,1, TASKBAR_SKBSWITCH_LEFT + TASKBAR_SKBSWITCH_WIDTH - 1,TASKBAR_BUTTONS_HEIGHT); pItem->pData = malloc(pItem->iTotalPictureNumber * TASKBAR_BUTTONS_HEIGHT * TASKBAR_SKBSWITCH_WIDTH * _lGUI_iBytesDataType); strcpy(pString,pEnvStr); strcat(pString,TASKBAR_SKBBMP_NOPRESSED); fp = fopen(pString,"rb"); if(!fp) return false; ReadBmpToBuf(fp,TASKBAR_SKBSWITCH_WIDTH,TASKBAR_BUTTONS_HEIGHT,pItem->pData); fclose(fp); strcpy(pString,pEnvStr); strcat(pString,TASKBAR_SKBBMP_PRESSED); fp = fopen(pString,"rb"); if(!fp) return false; ReadBmpToBuf(fp,TASKBAR_SKBSWITCH_WIDTH,TASKBAR_BUTTONS_HEIGHT, GetSkbBmpBufAddress(pItem->pData,1)); fclose(fp); pItem->pNext = pTaskBar->pItemHead; pTaskBar->pItemHead = pItem; //===================================================== //Dbc pItem = (PTaskBarItem)malloc(sizeof(TaskBarItem)); if(!pItem) return false; memset(pItem,0,sizeof(TaskBarItem)); pItem->bShow = true; pItem->iCurValue = 0; pItem->id = TASKBAR_OBJID_DBC; pItem->iTotalPictureNumber = TASKBAR_DBCBMP_NUMBER; SetRect(&(pItem->rect),TASKBAR_DBCSWITCH_LEFT,1, TASKBAR_DBCSWITCH_LEFT + TASKBAR_DBCSWITCH_WIDTH - 1,TASKBAR_BUTTONS_HEIGHT); pItem->pData = malloc(pItem->iTotalPictureNumber * TASKBAR_BUTTONS_HEIGHT * TASKBAR_DBCSWITCH_WIDTH * _lGUI_iBytesDataType); strcpy(pString,pEnvStr); strcat(pString,TASKBAR_DBCBMP_NOPRESSED); fp = fopen(pString,"rb"); if(!fp) return false; ReadBmpToBuf(fp,TASKBAR_DBCSWITCH_WIDTH,TASKBAR_BUTTONS_HEIGHT,pItem->pData); fclose(fp); strcpy(pString,pEnvStr); strcat(pString,TASKBAR_DBCBMP_PRESSED); fp = fopen(pString,"rb"); if(!fp) return false; ReadBmpToBuf(fp,TASKBAR_DBCSWITCH_WIDTH,TASKBAR_BUTTONS_HEIGHT, GetDbcBmpBufAddress(pItem->pData,1)); fclose(fp); pItem->pNext = pTaskBar->pItemHead; pTaskBar->pItemHead = pItem; //===================================================== //ime pItem = (PTaskBarItem)malloc(sizeof(TaskBarItem)); if(!pItem) return false; memset(pItem,0,sizeof(TaskBarItem)); pItem->bShow = true; pItem->iCurValue = 0; pItem->id = TASKBAR_OBJID_IME; pItem->iTotalPictureNumber = TASKBAR_IMEBMP_NUMBER; SetRect(&(pItem->rect),TASKBAR_IMESWITCH_LEFT,1, TASKBAR_IMESWITCH_LEFT + TASKBAR_IMESWITCH_WIDTH - 1,TASKBAR_BUTTONS_HEIGHT); pItem->pData = malloc(pItem->iTotalPictureNumber * TASKBAR_BUTTONS_HEIGHT * TASKBAR_IMESWITCH_WIDTH * _lGUI_iBytesDataType); strcpy(pString,pEnvStr); strcat(pString,TASKBAR_IMEBMP_ENG); fp = fopen(pString,"rb"); if(!fp) return false; ReadBmpToBuf(fp,TASKBAR_IMESWITCH_WIDTH,TASKBAR_BUTTONS_HEIGHT,pItem->pData); fclose(fp); strcpy(pString,pEnvStr); strcat(pString,TASKBAR_IMEBMP_HANDWRITE); fp = fopen(pString,"rb"); if(!fp) return false; ReadBmpToBuf(fp,TASKBAR_IMESWITCH_WIDTH,TASKBAR_BUTTONS_HEIGHT, GetImeBmpBufAddress(pItem->pData,1)); fclose(fp); pItem->pNext = pTaskBar->pItemHead; pTaskBar->pItemHead = pItem; pTaskBar->pItemIme = pItem; //===================================================== //clock pItem = (PTaskBarItem)malloc(sizeof(TaskBarItem)); if(!pItem) return false; memset(pItem,0,sizeof(TaskBarItem)); pItem->bShow = true; pItem->iCurValue = 0; pItem->id = TASKBAR_OBJID_CLOCK; pItem->iTotalPictureNumber = TASKBAR_CLOCKBMP_NUMBER; SetRect(&(pItem->rect),TASKBAR_CLOCKBOX_LEFT,1, TASKBAR_CLOCKBOX_LEFT + TASKBAR_CLOCKBOX_WIDTH - 1,TASKBAR_BUTTONS_HEIGHT); pItem->pData = malloc(pItem->iTotalPictureNumber * TASKBAR_BUTTONS_HEIGHT * TASKBAR_CLOCKBOX_WIDTH * _lGUI_iBytesDataType); strcpy(pString,pEnvStr); strcat(pString,TASKBAR_CLOCKBMP); fp = fopen(pString,"rb"); if(!fp) return false; ReadBmpToBuf(fp,TASKBAR_CLOCKBOX_WIDTH,TASKBAR_BUTTONS_HEIGHT,pItem->pData); fclose(fp); pItem->pNext = pTaskBar->pItemHead; pTaskBar->pItemHead = pItem; pWin->dwAddData = (DWORD)pTaskBar;}static void* GetBmpBufAddress( int iCounter, void* pOrgPointer, int iNumber){ switch(iCounter){ case TASKBAR_OBJID_STARTBUTTON: return GetStartButtonBmpBufAddress(pOrgPointer,iNumber); case TASKBAR_OBJID_SKB: return GetSkbBmpBufAddress(pOrgPointer,iNumber); case TASKBAR_OBJID_DBC: return GetDbcBmpBufAddress(pOrgPointer,iNumber); case TASKBAR_OBJID_IME: return GetImeBmpBufAddress(pOrgPointer,iNumber); default: return pOrgPointer; }}static void* GetStartButtonBmpBufAddress( void* pOrgPointer, int iNumber){ return pOrgPointer + iNumber * TASKBAR_BUTTONS_HEIGHT * TASKBAR_STARTBUTTON_WIDTH * _lGUI_iBytesDataType;}static void* GetSkbBmpBufAddress( void* pOrgPointer, int iNumber){ return pOrgPointer + iNumber * TASKBAR_BUTTONS_HEIGHT * TASKBAR_SKBSWITCH_WIDTH * _lGUI_iBytesDataType;}static void* GetDbcBmpBufAddress( void* pOrgPointer, int iNumber){ return pOrgPointer + iNumber * TASKBAR_BUTTONS_HEIGHT * TASKBAR_DBCSWITCH_WIDTH * _lGUI_iBytesDataType;}static void* GetImeBmpBufAddress( void* pOrgPointer, int iNumber){ return pOrgPointer + iNumber * TASKBAR_BUTTONS_HEIGHT * TASKBAR_IMESWITCH_WIDTH * _lGUI_iBytesDataType;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -