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

📄 slider.lst

📁 Keil C下通过的UCGUI,UCGUI的移植源代码
💻 LST
📖 第 1 页 / 共 2 页
字号:
                      SLIDER_Inc(hObj);
                      break;                    /* Send to parent by not doing anything */
                    case GUI_KEY_LEFT:
                      SLIDER_Dec(hObj);
                      break;                    /* Send to parent by not doing anything */
                    default:
                      return;
                  }
                }
              }
              
              /*********************************************************************
              *
              *       _SLIDER_Callback
              */
              static void _SLIDER_Callback (WM_MESSAGE *pMsg) {
                SLIDER_Handle hObj;
                SLIDER_Obj* pObj;
                hObj = pMsg->hWin;
                pObj = SLIDER_H2P(hObj);
                /* Let widget handle the standard messages */
                if (WIDGET_HandleActive(hObj, pMsg) == 0) {
                  return;
                }
                switch (pMsg->MsgId) {
                case WM_PAINT:
                  GUI_DEBUG_LOG("SLIDER: _Callback(WM_PAINT)\n");
                  _Paint(pObj);
                  return;
                case WM_TOUCH:
                  _OnTouch(hObj, pObj, pMsg);
                  break;
                case WM_KEY:
                  _OnKey(hObj, pMsg);
                  break;
                }
C51 COMPILER V8.05a   SLIDER                                                               04/11/2008 14:19:38 PAGE 5   

                WM_DefaultProc(pMsg);
              }
              
              /*********************************************************************
              *
              *       Exported routines:  Create
              *
              **********************************************************************
              */
              
              /* Note: the parameters to a create function may vary.
                       Some widgets may have multiple create functions */
              
              
              SLIDER_Handle SLIDER_Create (int x0, int y0, int xsize, int ysize, WM_HWIN hParent, int Id, int WinFlags, 
             -int SpecialFlags) {
                SLIDER_Handle hObj;
                /* Create the window */
                WM_LOCK();
                hObj = WM_CreateWindowAsChild(x0, y0, xsize, ysize, hParent,
                                     WinFlags, _SLIDER_Callback, sizeof(SLIDER_Obj)-sizeof(WM_Obj));
                if (hObj) {
                  SLIDER_Obj* pObj = SLIDER_H2P(hObj);
                  U16 InitState;
                  /* Handle SpecialFlags */
                  InitState = WIDGET_STATE_ENABLED;
                  if (SpecialFlags & SLIDER_CF_VERTICAL) {
                    InitState |= WIDGET_CF_VERTICAL;
                  }
                  /* init widget specific variables */
                  WIDGET__Init(&pObj->Widget, InitState);
                  /* init member variables */
                  SLIDER_INIT_ID(pObj);
                  pObj->Widget.Id       = Id;
                  pObj->aBkColor[0]   = SLIDER_BKCOLOR0_DEFAULT;
                  pObj->aBkColor[1]   = SLIDER_BKCOLOR1_DEFAULT;
                  pObj->aColor[0]     = SLIDER_COLOR0_DEFAULT;
                  pObj->aColor[1]     = SLIDER_COLOR1_DEFAULT;
                  pObj->Width = 8;
                  pObj->Max =100;
                  pObj->Min =0;
                  pObj->NumSections = 10;
                } else {
                  GUI_DEBUG_ERROROUT_IF(hObj==0, "SLIDER_Create failed")
                }
                WM_UNLOCK();
                return hObj;
              }
              
              SLIDER_Handle SLIDER_CreateIndirect(const GUI_WIDGET_CREATE_INFO* pCreateInfo, WM_HWIN hWinParent, int x0,
             - int y0, WM_CALLBACK* cb) {
                SLIDER_Handle  hThis;
                GUI_USE_PARA(cb);
                hThis = SLIDER_Create(pCreateInfo->x0 + x0, pCreateInfo->y0 + y0, pCreateInfo->xSize, pCreateInfo->ySize
             -,
                                      hWinParent, pCreateInfo->Id, 0, pCreateInfo->Flags);
                return hThis;
              }
              
              /*********************************************************************
              *
              *       Exported routines:  Various methods
C51 COMPILER V8.05a   SLIDER                                                               04/11/2008 14:19:38 PAGE 6   

              *
              **********************************************************************
              */
              void SLIDER_Dec(SLIDER_Handle hObj) {
                SLIDER_Obj* pObj;
                if (hObj) {
                  WM_LOCK();
                  pObj = SLIDER_H2P(hObj);
                  if (pObj->v > pObj->Min) {
                    pObj->v--;
                    WM_InvalidateWindow(hObj);
                    WM_NotifyParent(hObj, WM_NOTIFICATION_VALUE_CHANGED);
                  }
                  WM_UNLOCK();
                }
              }
              
              void SLIDER_Inc(SLIDER_Handle hObj) {
                SLIDER_Obj* pObj;
                if (hObj) {
                  WM_LOCK();
                  pObj = SLIDER_H2P(hObj);
                  if (pObj->v < pObj->Max) {
                    pObj->v++;
                    WM_InvalidateWindow(hObj);
                    WM_NotifyParent(hObj, WM_NOTIFICATION_VALUE_CHANGED);
                  }
                  WM_UNLOCK();
                }
              }
              
              void SLIDER_SetWidth(SLIDER_Handle hObj, int Width) {
                SLIDER_Obj* pObj;
                if (hObj) {
                  WM_LOCK();
                  pObj = SLIDER_H2P(hObj);
                  if (pObj->Width != Width) {
                    pObj->Width = Width;
                    WM_InvalidateWindow(hObj);
                  }
                  WM_UNLOCK();
                }
              }
              
              void SLIDER_SetValue(SLIDER_Handle hObj, int v) {
                SLIDER_Obj* pObj;
                if (hObj) {
                  WM_LOCK();
                  pObj = SLIDER_H2P(hObj);
                  /* Put in min/max range */
                  if (v < pObj->Min) {
                    v = pObj->Min;
                  }
                  if (v > pObj->Max) {
                    v = pObj->Max;
                  }
                  if (pObj->v != v) {
                    pObj->v = v;
                    WM_InvalidateWindow(hObj);
                    WM_NotifyParent(hObj, WM_NOTIFICATION_VALUE_CHANGED);
                  }
                  WM_UNLOCK();
C51 COMPILER V8.05a   SLIDER                                                               04/11/2008 14:19:38 PAGE 7   

                }
              }
              
              void SLIDER_SetRange(SLIDER_Handle hObj, int Min, int Max) {
                SLIDER_Obj* pObj;
                if (hObj) {
                  WM_LOCK();
                  pObj = SLIDER_H2P(hObj);
                  pObj->Min = Min;
                  pObj->Max = Max;
                  WM_InvalidateWindow(hObj);
                  WM_UNLOCK();
                }
              }
              
              /*********************************************************************
              *
              *       Query state
              *
              **********************************************************************
              */
              int SLIDER_GetValue(SLIDER_Handle hObj) {
                int r = 0;
                SLIDER_Obj* pObj;
                if (hObj) {
                  WM_LOCK();
                  pObj = SLIDER_H2P(hObj);
                  r = pObj->v;
                  WM_UNLOCK();
                }
                return r;
              }
              
              
              #endif  /* #if GUI_WINSUPPORT */
 396          
 397          
 398          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   ----    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -