📄 taskdock.c
字号:
/*
*********************************************************************************************************
* Samsung ARM S3C2410 Software Frame
*
* (c) Copyright 2008-2010, LastRitter
* All Rights Reserved
*
* File :
* By : LastRitter
*********************************************************************************************************
*/
#include "SystemTool.h"
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
extern window sta_Window[];
extern uint16 ui_TaskBar;
static uint16 ui_DockNum=0;
static uint16 ui_DockFirst=0;
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
uint16 ui_Dock[SW_DOCK_MAX];
/*
*********************************************************************************************************
*
*
* Description:
*
* Arguments :
*
* Returns :
*
* Note(s) :
*
*********************************************************************************************************
*/
uint16 SW_AddDock(uint16 uiHandle)
{
uint16 uiCount;
for(uiCount=0;uiCount<SW_DOCK_MAX;uiCount++)
{
if(ui_Dock[uiCount]==SW_DEF_HANDLE)
{
ui_Dock[uiCount]=uiHandle;
ui_DockNum++;
if(ui_DockNum>(ui_DockFirst+SW_DOCK_SHOW_MAX))
ui_DockFirst++;
SW_ShowWindow(ui_TaskBar);
return 0;
}
}
return 1;
}
/*
*********************************************************************************************************
*
*
* Description:
*
* Arguments :
*
* Returns :
*
* Note(s) :
*
*********************************************************************************************************
*/
uint16 SW_DeleteDock(uint16 uiHandle)
{
uint16 uiCount,uiCount2;
for(uiCount=0;uiCount<SW_DOCK_MAX;uiCount++)
{
if(ui_Dock[uiCount]==uiHandle)
{
if(uiCount<(SW_DOCK_MAX-1))
{
for(uiCount2=uiCount;uiCount2<(SW_DOCK_MAX-1);uiCount2++)
ui_Dock[uiCount2]=ui_Dock[uiCount2+1];
}
ui_Dock[SW_DOCK_MAX-1]=SW_DEF_HANDLE;
ui_DockNum--;
if(ui_DockFirst)
ui_DockFirst--;
SW_ShowWindow(ui_TaskBar);
return 0;
}
}
return 1;
}
/*
*********************************************************************************************************
*
*
* Description:
*
* Arguments :
*
* Returns :
*
* Note(s) :
*
*********************************************************************************************************
*/
void SW_ShowBar(uint16 uiHandle)
{
uint16 uiCount,uiHandleTemp,uiX0;
paintarea stArea;
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
SW_GetEffectArea(uiHandle,&stArea);
//******************************************************************************************************
if(ui_DockFirst)
EG_TextOutEx(stArea.uiX1-SW_DOCK_MOVE_WIDTH*2+2,stArea.uiY0,"←");
if(ui_DockNum>(ui_DockFirst+SW_DOCK_SHOW_MAX))
EG_TextOutEx(stArea.uiX1-SW_DOCK_MOVE_WIDTH+2,stArea.uiY0,"→");
EG_LineEx(stArea.uiX1-SW_DOCK_MOVE_WIDTH*2,stArea.uiY0,
stArea.uiX1-SW_DOCK_MOVE_WIDTH*2,stArea.uiY1,
SW_DEF_FRAME_WIDTH,SW_TASKBAR_FRONT);
EG_LineEx(stArea.uiX1-SW_DOCK_MOVE_WIDTH+2,stArea.uiY0,
stArea.uiX1-SW_DOCK_MOVE_WIDTH+2,stArea.uiY1,
SW_DEF_FRAME_WIDTH,SW_TASKBAR_FRONT);
//******************************************************************************************************
for(uiCount=ui_DockFirst;uiCount<(ui_DockFirst+SW_DOCK_SHOW_MAX);uiCount++)
{
uiHandleTemp=ui_Dock[uiCount];
if(uiHandleTemp!=SW_DEF_HANDLE)
{
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
uiX0=stArea.uiX0+SW_DOCK_WIDTH*(uiCount-ui_DockFirst);
EG_SetFontColour(SW_TASKBAR_FRONT);
EG_TextOutCut(uiX0+SW_DEF_FONT_WIDTH/4,stArea.uiY0,10,
sta_Window[uiHandleTemp].scTitle);
uiX0+=SW_DOCK_WIDTH;
EG_LineEx(uiX0,stArea.uiY0,uiX0,stArea.uiY1,
SW_DEF_FRAME_WIDTH,SW_TASKBAR_FRONT);
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
}
}
}
/*
*********************************************************************************************************
*
*
* Description:
*
* Arguments :
*
* Returns :
*
* Note(s) :
*
*********************************************************************************************************
*/
static void SW_MoveDock(uint16 uiDirection)
{
if(uiDirection==SW_DOCK_MOVE_LEFT)
{
if(ui_DockFirst)
{
ui_DockFirst--;
SW_ShowWindow(ui_TaskBar);
// UART_TextOut("Dock Move to left %d\n",ui_DockFirst);
}
}
else
{
if(ui_DockNum>(ui_DockFirst+SW_DOCK_SHOW_MAX))
{
ui_DockFirst++;
SW_ShowWindow(ui_TaskBar);
// UART_TextOut("Dock Move to right %d\n",ui_DockFirst);
}
}
}
/*
*********************************************************************************************************
*
*
* Description:
*
* Arguments :
*
* Returns :
*
* Note(s) :
*
*********************************************************************************************************
*/
static uint16 SW_GetClickDock(uint16 uiHandle,uint16 uiX)
{
uint16 uiCount;
paintarea stArea;
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
SW_GetEffectArea(uiHandle,&stArea);
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
for(uiCount=0;uiCount<SW_DOCK_SHOW_MAX;uiCount++)
if(uiX<((uiCount+1)*SW_DOCK_WIDTH))
return uiCount;
if(uiX<(SW_XMAX-SW_DOCK_MOVE_WIDTH))
return SW_DOCK_MOVE_LEFT;
return SW_DOCK_MOVE_RIGHT;
}
/*
*********************************************************************************************************
*
*
* Description:
*
* Arguments :
*
* Returns :
*
* Note(s) :
*
*********************************************************************************************************
*/
void SW_ShowDock(uint16 uiHandle,uint16 uiX)
{
uint16 uiDock,uiDockHandle;
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
uiDock=SW_GetClickDock(uiHandle,uiX);
if(uiDock>=SW_DOCK_SHOW_MAX)
{
SW_MoveDock(uiDock);
return;
}
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
uiDockHandle=ui_Dock[ui_DockFirst+uiDock];
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
if(sta_Window[uiDockHandle].uiHandle==SW_DEF_HANDLE)
return;
//******************************************************************************************************
if(sta_Window[ui_TaskBar].uiUnder!=uiDockHandle)
SW_ShowWindow(uiDockHandle);
else
SW_HideWindow(uiDockHandle);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -