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

📄 multipage.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 TXT
📖 第 1 页 / 共 5 页
字号:
000020  f7fffffe          BL       GUI_GetYSizeOfFont
000024  8861              LDRH     r1,[r4,#2]            ;225
000026  1d80              ADDS     r0,r0,#6              ;225
000028  4408              ADD      r0,r0,r1              ;225
00002a  8060              STRH     r0,[r4,#2]            ;225
00002c  bd70              POP      {r4-r6,pc}
;;;228    
                          ENDP


                          AREA ||i._Callback||, CODE, READONLY, ALIGN=1

                  _Callback PROC
;;;506    */
;;;507    static void _Callback (WM_MESSAGE *pMsg) {
000000  e92d41f0          PUSH     {r4-r8,lr}
;;;508      MULTIPAGE_Handle hObj = pMsg->hWin;
000004  f9b07004          LDRSH    r7,[r0,#4]
000008  4604              MOV      r4,r0                 ;507
;;;509      MULTIPAGE_Obj* pObj;
;;;510      int Handled;
;;;511      WM_LOCK();
;;;512      pObj    = MULTIPAGE_H2P(hObj);
00000a  4638              MOV      r0,r7
00000c  f7fffffe          BL       GUI_ALLOC_h2p
000010  4605              MOV      r5,r0
;;;513      Handled = WIDGET_HandleActive(hObj, pMsg);
000012  4621              MOV      r1,r4
000014  4638              MOV      r0,r7
000016  f7fffffe          BL       WIDGET_HandleActive
00001a  4606              MOV      r6,r0
;;;514      switch (pMsg->MsgId) {
00001c  6820              LDR      r0,[r4,#0]
00001e  2814              CMP      r0,#0x14
000020  d03f              BEQ      |L17.162|
000022  dc0c              BGT      |L17.62|
000024  2805              CMP      r0,#5
000026  d017              BEQ      |L17.88|
000028  280b              CMP      r0,#0xb
00002a  d040              BEQ      |L17.174|
00002c  280c              CMP      r0,#0xc
00002e  d019              BEQ      |L17.100|
000030  280f              CMP      r0,#0xf
000032  d140              BNE      |L17.182|
;;;515      case WM_PAINT:
;;;516        _Paint(pObj);
000034  4628              MOV      r0,r5
000036  e8bd41f0          POP      {r4-r8,lr}
00003a  f7ffbffe          B.W      _Paint
                  |L17.62|
00003e  2817              CMP      r0,#0x17              ;514
000040  d02a              BEQ      |L17.152|
000042  2826              CMP      r0,#0x26              ;514
000044  d015              BEQ      |L17.114|
000046  f5b07f40          CMP      r0,#0x300             ;514
00004a  d134              BNE      |L17.182|
;;;517        break;
;;;518      case WM_TOUCH:
;;;519        _OnTouch(hObj, pObj, pMsg);
;;;520        break;
;;;521      case WM_NOTIFY_PARENT:
;;;522        if (pMsg->Data.v == WM_NOTIFICATION_VALUE_CHANGED) {
;;;523          if (WM_GetId(pMsg->hWinSrc) == GUI_ID_HSCROLL) {
;;;524            pObj->ScrollState = SCROLLBAR_GetValue(pMsg->hWinSrc);
;;;525            WM_InvalidateWindow(hObj);
;;;526          }
;;;527        }
;;;528        break;
;;;529      case WM_GET_CLIENT_WINDOW:
;;;530        pMsg->Data.v = (int)pObj->hClient;
;;;531        break;
;;;532      case WM_GET_INSIDE_RECT:
;;;533        _CalcClientRect(pObj, (GUI_RECT*)(pMsg->Data.p));
;;;534        break;
;;;535      case WM_WIDGET_SET_EFFECT:
;;;536        WIDGET_SetEffect(WM_GetScrollbarH(hObj), (WIDGET_EFFECT const *)pMsg->Data.p);
00004c  4638              MOV      r0,r7
00004e  f7fffffe          BL       WM_GetScrollbarH
000052  68a1              LDR      r1,[r4,#8]
000054  f7fffffe          BL       WIDGET_SetEffect
                  |L17.88|
;;;537      case WM_SIZE:
;;;538        _UpdatePositions(hObj, pObj);
000058  4629              MOV      r1,r5
00005a  4638              MOV      r0,r7
00005c  e8bd41f0          POP      {r4-r8,lr}
000060  f7ffbffe          B.W      _UpdatePositions
                  |L17.100|
000064  4622              MOV      r2,r4                 ;519
000066  4629              MOV      r1,r5                 ;519
000068  4638              MOV      r0,r7                 ;519
00006a  e8bd41f0          POP      {r4-r8,lr}            ;519
00006e  f7ffbffe          B.W      _OnTouch
                  |L17.114|
000072  68a0              LDR      r0,[r4,#8]            ;522
000074  2805              CMP      r0,#5                 ;522
000076  d112              BNE      |L17.158|
000078  f9b40006          LDRSH    r0,[r4,#6]            ;523
00007c  f7fffffe          BL       WM_GetId
000080  28ff              CMP      r0,#0xff              ;523
000082  d10c              BNE      |L17.158|
000084  f9b40006          LDRSH    r0,[r4,#6]            ;524
000088  f7fffffe          BL       SCROLLBAR_GetValue
00008c  6368              STR      r0,[r5,#0x34]         ;525
00008e  4638              MOV      r0,r7                 ;525
000090  e8bd41f0          POP      {r4-r8,lr}            ;525
000094  f7ffbffe          B.W      WM_InvalidateWindow
                  |L17.152|
000098  f9b50028          LDRSH    r0,[r5,#0x28]         ;530
00009c  60a0              STR      r0,[r4,#8]            ;531
                  |L17.158|
;;;539        break;
;;;540      case WM_DELETE:
;;;541        GUI_ARRAY_Delete(&pObj->Handles);
;;;542        /* No break here ... WM_DefaultProc needs to be called */
;;;543      default:
;;;544        /* Let widget handle the standard messages */
;;;545        if (Handled) {
;;;546          WM_DefaultProc(pMsg);
;;;547        }
;;;548      }
;;;549      WM_UNLOCK();
;;;550    }
00009e  e8bd81f0          POP      {r4-r8,pc}
                  |L17.162|
0000a2  4628              MOV      r0,r5                 ;533
0000a4  68a1              LDR      r1,[r4,#8]            ;533
0000a6  e8bd41f0          POP      {r4-r8,lr}            ;533
0000aa  f7ffbffe          B.W      _CalcClientRect
                  |L17.174|
0000ae  f105002a          ADD      r0,r5,#0x2a           ;541
0000b2  f7fffffe          BL       GUI_ARRAY_Delete
                  |L17.182|
0000b6  2e00              CMP      r6,#0                 ;545
0000b8  d0f1              BEQ      |L17.158|
0000ba  4620              MOV      r0,r4                 ;546
0000bc  e8bd41f0          POP      {r4-r8,lr}            ;546
0000c0  f7ffbffe          B.W      WM_DefaultProc
;;;551    
                          ENDP


                          AREA ||i._ClickedOnMultipage||, CODE, READONLY, ALIGN=1

                  _ClickedOnMultipage PROC
;;;441    */
;;;442    static int _ClickedOnMultipage(MULTIPAGE_Handle hObj, MULTIPAGE_Obj* pObj, int x, int y) {
000000  e92d47fc          PUSH     {r2-r10,lr}
000004  4688              MOV      r8,r1
000006  4681              MOV      r9,r0
000008  4616              MOV      r6,r2
00000a  461c              MOV      r4,r3
;;;443      GUI_RECT rText;
;;;444      _GetTextRect(pObj, &rText);
00000c  4669              MOV      r1,sp
00000e  4640              MOV      r0,r8
000010  f7fffffe          BL       _GetTextRect
;;;445      if ((y >= rText.y0) && (y <= rText.y1)) {
000014  f9bd0002          LDRSH    r0,[sp,#2]
000018  42a0              CMP      r0,r4
00001a  dc2f              BGT      |L18.124|
00001c  f9bd0006          LDRSH    r0,[sp,#6]
000020  42a0              CMP      r0,r4
000022  db2b              BLT      |L18.124|
;;;446        if ((pObj->Handles.NumItems > 0) && (x >= rText.x0) && (x <= rText.x1)) {
000024  f8b8002a          LDRH     r0,[r8,#0x2a]
000028  b380              CBZ      r0,|L18.140|
00002a  f9bd4000          LDRSH    r4,[sp,#0]
00002e  42b4              CMP      r4,r6
000030  dc2c              BGT      |L18.140|
000032  f9bd0004          LDRSH    r0,[sp,#4]
000036  42b0              CMP      r0,r6
000038  db28              BLT      |L18.140|
;;;447          int i, w = 0, x0 = rText.x0;
;;;448          /* Check if another page must be selected */
;;;449          if (pObj->Widget.State & MULTIPAGE_STATE_SCROLLMODE) {
00003a  f8b80026          LDRH     r0,[r8,#0x26]
00003e  2700              MOVS     r7,#0                 ;447
000040  05c0              LSLS     r0,r0,#23
000042  d505              BPL      |L18.80|
;;;450            x0 -= _GetPagePosX(pObj, pObj->ScrollState);
000044  4640              MOV      r0,r8
000046  f8d81034          LDR      r1,[r8,#0x34]
00004a  f7fffffe          BL       _GetPagePosX
00004e  1a24              SUBS     r4,r4,r0
                  |L18.80|
;;;451          }
;;;452          for (i = 0; i < pObj->Handles.NumItems; i++) {
000050  2500              MOVS     r5,#0
000052  e017              B        |L18.132|
                  |L18.84|
;;;453            x0 += w;
000054  443c              ADD      r4,r4,r7
;;;454            w   = _GetPageSizeX(pObj, i);
000056  4629              MOV      r1,r5
000058  4640              MOV      r0,r8
00005a  f7fffffe          BL       _GetPageSizeX
00005e  4607              MOV      r7,r0
;;;455            if (x >= x0 && x <= (x0 + w - 1)) {
000060  42a6              CMP      r6,r4
000062  db0e              BLT      |L18.130|
000064  19e0              ADDS     r0,r4,r7
000066  1e40              SUBS     r0,r0,#1
000068  42b0              CMP      r0,r6
00006a  db0a              BLT      |L18.130|
;;;456              MULTIPAGE_SelectPage(hObj, i);
00006c  4629              MOV      r1,r5
00006e  4648              MOV      r0,r9
000070  f7fffffe          BL       MULTIPAGE_SelectPage
;;;457              WM_NotifyParent(hObj, WM_NOTIFICATION_VALUE_CHANGED);
000074  2105              MOVS     r1,#5
000076  4648              MOV      r0,r9
000078  f7fffffe          BL       WM_NotifyParent
                  |L18.124|
;;;458              return 1;
;;;459            }
;;;460          }
;;;461        }
;;;462        return 0;
;;;463      }
;;;464      return 1;
00007c  2001              MOVS     r0,#1
                  |L18.126|
;;;465    }
00007e  e8bd87fc          POP      {r2-r10,pc}
                  |L18.130|
000082  1c6d              ADDS     r5,r5,#1              ;452
                  |L18.132|
000084  f8b8002a          LDRH     r0,[r8,#0x2a]         ;452
000088  42a8              CMP      r0,r5                 ;452
00008a  dce3              BGT      |L18.84|
                  |L18.140|
00008c  2000              MOVS     r0,#0                 ;462
00008e  e7f6              B        |L18.126|
;;;466    
                          ENDP


                          AREA ||i._ClientCallback||, CODE, READONLY, ALIGN=1

                  _ClientCallback PROC
;;;555    */
;;;556    static void _ClientCallback(WM_MESSAGE* pMsg) {
000000  b570              PUSH     {r4-r6,lr}
;;;557      WM_HWIN hObj = pMsg->hWin;
000002  f9b05004          LDRSH    r5,[r0,#4]
000006  4604              MOV      r4,r0                 ;556
;;;558      WM_HWIN hParent = WM_GetParent(hObj);
000008  4628              MOV      r0,r5
00000a  f7fffffe          BL       WM_GetParent
00000e  4606              MOV      r6,r0
;;;559      MULTIPAGE_Obj* pParent;
;;;560      WM_LOCK();
;;;561      pParent = MULTIPAGE_H2P(hParent);
000010  f7fffffe          BL       GUI_ALLOC_h2p
;;;562      switch (pMsg->MsgId) {
000014  6821              LDR      r1,[r4,#0]
000016  290c              CMP      r1,#0xc
000018  d00e              BEQ      |L19.56|
00001a  290f              CMP      r1,#0xf
00001c  d005              BEQ      |L19.42|
00001e  2914              CMP      r1,#0x14
000020  d012              BEQ      |L19.72|
000022  2917              CMP      r1,#0x17
000024  d100              BNE      |L19.40|
;;;563      case WM_PAINT:
;;;564        LCD_SetBkColor(pParent->aBkColor[1]);
;;;565        GUI_Clear();
;;;566        break;
;;;567      case WM_TOUCH:
;;;568        WM_SetFocus(hParent);
;;;569        WM_BringToTop(hParent);
;;;570        break;
;;;571      case WM_GET_CLIENT_WINDOW:
;;;572        pMsg->Data.v = (int)hObj;
;;;573        break;
000026  60a5              STR      r5,[r4,#8]
                  |L19.40|
;;;574      case WM_GET_INSIDE_RECT:
;;;575        WM_DefaultProc(pMsg);
;;;576      }
;;;577      WM_UNLOCK();
;;;578    }
000028  bd70              POP      {r4-r6,pc}
                  |L19.42|
00002a  6c40              LDR      r0,[r0,#0x44]         ;564
00002c  f7fffffe          BL       LCD_SetBkColor
000030  e8bd4070          POP      {r4-r6,lr}            ;565
000034  f7ffbffe          B.W      GUI_Clear
                  |L19.56|
000038  4630              MOV      r0,r6                 ;568
00003a  f7fffffe          BL       WM_SetFocus
00003e  4630              MOV      r0,r6                 ;569
000040  e8bd4070          POP      {r4-r6,lr}            ;569
000044  f7ffbffe          B.W      WM_BringToTop
                  |L19.72|
000048  4620              MOV      r0,r4                 ;575
00004a  e8bd4070          POP      {r4-r6,lr}            ;575
00004e  f7ffbffe          B.W      WM_DefaultProc
;;;579    
                          ENDP


                          AREA ||i._DrawTextItem||, CODE, READONLY, ALIGN=2

                  _DrawTextItem PROC
;;;360    */

⌨️ 快捷键说明

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