⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 guidemo_wm.c

📁 UCOSII在STM32平台的移植
💻 C
📖 第 1 页 / 共 2 页
字号:

/*******************************************************************
*
*       _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 + -