📄 guidemo_wm.c
字号:
* _DemoBringToTop
Demonstrates the use of WM_BringToTop
*/
static void _DemoBringToTop(void) {
_ChangeInfoText("WM_BringToTop()");
// GUIDEMO_Delay(SPEED);
WM_BringToTop(_hWindow1);
GUIDEMO_Delay(SPEED);
GUIDEMO_NotifyStartNext();
}
/*******************************************************************
*
* _DemoMoveTo
Demonstrates the use of WM_MoveTo
*/
static void _DemoMoveTo(void) {
int i, tm, tDiff;
_ChangeInfoText("WM_MoveTo()");
// GUIDEMO_Delay(SPEED);
for (i = 1; i < 56; i++) {
tm = GUI_GetTime();
WM_MoveTo(_hWindow1, 50 + i, 70 + i);
WM_MoveTo(_hWindow2, 105 - i, 125 - i);
tDiff = 15 - (GUI_GetTime() - tm);
GUI_Delay(tDiff);
}
for (i = 1; i < 56; i++) {
tm = GUI_GetTime();
WM_MoveTo(_hWindow1, 105 - i, 125 - i);
WM_MoveTo(_hWindow2, 50 + i, 70 + i);
tDiff = 15 - (GUI_GetTime() - tm);
GUI_Delay(tDiff);
}
GUIDEMO_Delay(SPEED);
GUIDEMO_NotifyStartNext();
}
/*******************************************************************
*
* _DemoBringToBottom
Demonstrates the use of WM_BringToBottom
*/
static void _DemoBringToBottom(void) {
_ChangeInfoText("WM_BringToBottom()");
// GUIDEMO_Delay(SPEED);
WM_BringToBottom(_hWindow1);
GUIDEMO_Delay(SPEED);
GUIDEMO_NotifyStartNext();
}
/*******************************************************************
*
* _DemoMoveWindow
Demonstrates the use of WM_MoveWindow
*/
static void _DemoMoveWindow(void) {
int i, tm, tDiff;
_ChangeInfoText("WM_MoveWindow()");
// GUIDEMO_Delay(SPEED);
for (i = 0; i < 55; i++) {
tm = GUI_GetTime();
WM_MoveWindow(_hWindow1, 1, 1);
WM_MoveWindow(_hWindow2, -1, -1);
tDiff = 15 - (GUI_GetTime() - tm);
GUI_Delay(tDiff);
}
for (i = 0; i < 55; i++) {
tm = GUI_GetTime();
WM_MoveWindow(_hWindow1, -1, -1);
WM_MoveWindow(_hWindow2, 1, 1);
tDiff = 15 - (GUI_GetTime() - tm);
GUI_Delay(tDiff);
}
GUIDEMO_Delay(SPEED);
GUIDEMO_NotifyStartNext();
}
/*******************************************************************
*
* _DemoHideShowParent
Demonstrates the use of WM_HideWindow and WM_ShowWindow
*/
static void _DemoHideShowParent(void) {
_ChangeInfoText("WM_HideWindow(Parent)");
// GUIDEMO_Delay(SPEED);
WM_HideWindow(_hWindow2);
GUIDEMO_Delay(SPEED/3);
WM_HideWindow(_hWindow1);
GUIDEMO_Delay(SPEED);
_ChangeInfoText("WM_ShowWindow(Parent)");
GUIDEMO_Delay(SPEED);
WM_ShowWindow(_hWindow1);
GUIDEMO_Delay(SPEED/3);
WM_ShowWindow(_hWindow2);
GUIDEMO_Delay(SPEED);
GUIDEMO_NotifyStartNext();
}
/*******************************************************************
*
* _DemoHideShowChild
Demonstrates the use of WM_HideWindow and WM_ShowWindow
*/
static void _DemoHideShowChild(void) {
_ChangeInfoText("WM_HideWindow(Child)");
// GUIDEMO_Delay(SPEED);
WM_HideWindow(_hChild);
GUIDEMO_Delay(SPEED);
_ChangeInfoText("WM_ShowWindow(Child)");
GUIDEMO_Delay(SPEED);
WM_ShowWindow(_hChild);
GUIDEMO_Delay(SPEED);
GUIDEMO_NotifyStartNext();
}
/*******************************************************************
*
* _DemoClipping
Demonstrates clipping at parent borders
*/
static void _DemoClipping(void) {
int i, tm, tDiff;
_ChangeInfoText("Demonstrating clipping of child");
// GUIDEMO_Delay(SPEED);
for (i = 0; i < 25; i++) {
tm = GUI_GetTime();
WM_MoveWindow(_hChild, 1, 0);
tDiff = 15 - (GUI_GetTime() - tm);
GUI_Delay(tDiff);
}
for (i = 0; i < 25; i++) {
tm = GUI_GetTime();
WM_MoveWindow(_hChild, 0, 1);
tDiff = 15 - (GUI_GetTime() - tm);
GUI_Delay(tDiff);
}
for (i = 0; i < 50; i++) {
tm = GUI_GetTime();
WM_MoveWindow(_hChild, -1, 0);
tDiff = 15 - (GUI_GetTime() - tm);
GUI_Delay(tDiff);
}
for (i = 0; i < 25; i++) {
tm = GUI_GetTime();
WM_MoveWindow(_hChild, 0, -1);
tDiff = 15 - (GUI_GetTime() - tm);
GUI_Delay(tDiff);
}
for (i = 0; i < 25; i++) {
tm = GUI_GetTime();
WM_MoveWindow(_hChild, 1, 0);
tDiff = 15 - (GUI_GetTime() - tm);
GUI_Delay(tDiff);
}
GUIDEMO_Delay(SPEED);
GUIDEMO_NotifyStartNext();
}
/*******************************************************************
*
* _DemoRedrawing
Demonstrates how useful can be a callback
*/
static void _DemoRedrawing(void) {
int i, tm, tDiff;
_ChangeInfoText("Demonstrating redrawing");
// GUIDEMO_Delay(SPEED);
_LiftUp(40);
GUIDEMO_Delay(SPEED/3);
_ChangeInfoText("Using a callback for redrawing");
GUIDEMO_Delay(SPEED/3);
for (i = 0; i < 55; i++) {
tm = GUI_GetTime();
WM_MoveWindow(_hWindow1, 1, 1);
WM_MoveWindow(_hWindow2, -1, -1);
tDiff = 15 - (GUI_GetTime() - tm);
GUI_Delay(tDiff);
}
for (i = 0; i < 55; i++) {
tm = GUI_GetTime();
WM_MoveWindow(_hWindow1, -1, -1);
WM_MoveWindow(_hWindow2, 1, 1);
tDiff = 15 - (GUI_GetTime() - tm);
GUI_Delay(tDiff);
}
GUIDEMO_Delay(SPEED/4);
_LiftDown(30);
GUIDEMO_Delay(SPEED/2);
_ChangeInfoText("Without redrawing");
GUIDEMO_Delay(SPEED);
_LiftUp(30);
GUIDEMO_Delay(SPEED/4);
WM_SetCallback(WM_HBKWIN, _cbBkWindowOld);
for (i = 0; i < 55; i++) {
tm = GUI_GetTime();
WM_MoveWindow(_hWindow1, 1, 1);
WM_MoveWindow(_hWindow2, -1, -1);
tDiff = 15 - (GUI_GetTime() - tm);
GUI_Delay(tDiff);
}
for (i = 0; i < 55; i++) {
tm = GUI_GetTime();
WM_MoveWindow(_hWindow1, -1, -1);
WM_MoveWindow(_hWindow2, 1, 1);
tDiff = 15 - (GUI_GetTime() - tm);
GUI_Delay(tDiff);
}
GUIDEMO_Delay(SPEED/3);
WM_SetCallback(WM_HBKWIN, _cbBkWindow);
_LiftDown(40);
GUIDEMO_Delay(SPEED);
GUIDEMO_NotifyStartNext();
}
/*******************************************************************
*
* _DemoResizeWindow
Demonstrates the use of WM_ResizeWindow
*/
static void _DemoResizeWindow(void) {
int i, tm,tDiff;
_ChangeInfoText("WM_ResizeWindow()");
// GUIDEMO_Delay(SPEED);
_LiftUp(30);
for (i = 0; i < 40; i++) {
tm = GUI_GetTime();
WM_ResizeWindow(_hWindow1, 1, 1);
WM_ResizeWindow(_hWindow2, -1, -1);
tDiff = 15 - (GUI_GetTime() - tm);
GUI_Delay(tDiff);
}
for (i = 0; i < 80; i++) {
tm = GUI_GetTime();
WM_ResizeWindow(_hWindow1, -1, -1);
WM_ResizeWindow(_hWindow2, 1, 1);
tDiff = 15 - (GUI_GetTime() - tm);
GUI_Delay(tDiff);
}
for (i = 0; i < 40; i++) {
tm = GUI_GetTime();
WM_ResizeWindow(_hWindow1, 1, 1);
WM_ResizeWindow(_hWindow2, -1, -1);
tDiff = 15 - (GUI_GetTime() - tm);
GUI_Delay(tDiff);
}
_LiftDown(30);
GUIDEMO_Delay(SPEED);
GUIDEMO_NotifyStartNext();
}
/*******************************************************************
*
* _DemoSetCallback
Demonstrates the use of WM_SetCallback
*/
static void _DemoSetCallback(void) {
_ChangeInfoText("WM_SetCallback()");
// GUIDEMO_Delay(SPEED);
WM_SetCallback(_hWindow1, _cbDemoCallback1);
WM_InvalidateWindow(_hWindow1);
GUIDEMO_Delay(SPEED/2);
WM_SetCallback(_hWindow2, _cbDemoCallback2);
WM_InvalidateWindow(_hWindow2);
GUIDEMO_Delay(SPEED*3);
WM_SetCallback(_hWindow1, _cbWindow1);
WM_InvalidateWindow(_hWindow1);
GUIDEMO_Delay(SPEED/2);
WM_SetCallback(_hWindow2, _cbWindow2);
WM_InvalidateWindow(_hWindow2);
GUIDEMO_Delay(SPEED);
GUIDEMO_NotifyStartNext();
}
/*******************************************************************
*
* _DemoDeleteWindow
Demonstrates the use of WM_DeleteWindow
*/
static void _DemoDeleteWindow(void) {
_ChangeInfoText("WM_DeleteWindow()");
// GUIDEMO_Delay(SPEED);
WM_DeleteWindow(_hWindow2);
GUIDEMO_Delay(SPEED/3);
WM_DeleteWindow(_hWindow1);
GUIDEMO_Delay(SPEED);
_ChangeInfoText("");
GUIDEMO_Delay(SPEED);
/* Restore background callback and window colors */
WM_SetCallback(WM_HBKWIN, _cbBkWindowOld);
_WindowColor1 = GUI_GREEN;
_WindowColor2 = GUI_RED;
}
/*******************************************************************
*
* MainTask
*
* Demonstrates the use of the window manager
*
********************************************************************
*/
void GUIDEMO_WM(void) {
/* Show message */
/*
GUIDEMO_ShowIntro("Windows Manager",
"\nExamples for the"
"\nWindows manager");
*/
GUIDEMO_NotifyStartNext();
GUI_SetBkColor(GUI_BLACK);
GUI_Clear();
WM_SetCreateFlags(WM_CF_MEMDEV);
WM_EnableMemdev(WM_HBKWIN);
GUIDEMO_HideInfoWin();
_DemoSetDesktopColor();
_DemoCreateWindow();
_DemoCreateWindowAsChild();
_DemoInvalidateWindow();
_DemoBringToTop();
_DemoMoveTo();
_DemoBringToBottom();
_DemoMoveWindow();
_DemoHideShowParent();
_DemoHideShowChild();
//_DemoClipping();
_DemoRedrawing();
_DemoResizeWindow();
_DemoSetCallback();
_DemoDeleteWindow();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -