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

📄 multipage.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 TXT
📖 第 1 页 / 共 5 页
字号:
00001c  f104002a          ADD      r0,r4,#0x2a
000020  4629              MOV      r1,r5
000022  4681              MOV      r9,r0
000024  f7fffffe          BL       GUI_ARRAY_GetpItem
;;;711            hWin = pPage->hWin;
000028  f9b08000          LDRSH    r8,[r0,#0]
;;;712            /* Remove the page from the multipage object */
;;;713            if (Index == pObj->Selection) {
00002c  6b20              LDR      r0,[r4,#0x30]
00002e  42a8              CMP      r0,r5
000030  d110              BNE      |L3.84|
;;;714              if (Index == ((unsigned)pObj->Handles.NumItems - 1)) {
000032  8d60              LDRH     r0,[r4,#0x2a]
;;;715                _ShowPage(pObj, Index - 1);
000034  4629              MOV      r1,r5
000036  f1a00001          SUB      r0,r0,#1              ;714
00003a  42a8              CMP      r0,r5                 ;714
00003c  d105              BNE      |L3.74|
00003e  1e49              SUBS     r1,r1,#1
000040  4620              MOV      r0,r4
000042  f7fffffe          BL       _ShowPage
;;;716                pObj->Selection--;
000046  6b20              LDR      r0,[r4,#0x30]
000048  e005              B        |L3.86|
                  |L3.74|
;;;717              } else {
;;;718                _ShowPage(pObj, Index + 1);
00004a  1c49              ADDS     r1,r1,#1
00004c  4620              MOV      r0,r4
00004e  f7fffffe          BL       _ShowPage
000052  e002              B        |L3.90|
                  |L3.84|
;;;719              }
;;;720            } else {
;;;721              if (Index < pObj->Selection) {
000054  d901              BLS      |L3.90|
                  |L3.86|
;;;722                pObj->Selection--;
000056  1e40              SUBS     r0,r0,#1
000058  6320              STR      r0,[r4,#0x30]
                  |L3.90|
;;;723              }
;;;724            }
;;;725            GUI_ARRAY_DeleteItem(&pObj->Handles, Index);
00005a  4629              MOV      r1,r5
00005c  4648              MOV      r0,r9
00005e  f7fffffe          BL       GUI_ARRAY_DeleteItem
;;;726            _UpdatePositions(hObj, pObj);
000062  4621              MOV      r1,r4
000064  4630              MOV      r0,r6
000066  f7fffffe          BL       _UpdatePositions
;;;727            /* Delete the window of the page */
;;;728            if (Delete) {
00006a  2f00              CMP      r7,#0
00006c  d004              BEQ      |L3.120|
;;;729              WM_DeleteWindow(hWin);
00006e  4640              MOV      r0,r8
000070  e8bd47f0          POP      {r4-r10,lr}
000074  f7ffbffe          B.W      WM_DeleteWindow
                  |L3.120|
;;;730            }
;;;731          }
;;;732        }
;;;733        WM_UNLOCK();
;;;734      }
;;;735    }
000078  e8bd87f0          POP      {r4-r10,pc}
;;;736    
                          ENDP


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

                  MULTIPAGE_DisablePage PROC
;;;763    */
;;;764    void MULTIPAGE_DisablePage(MULTIPAGE_Handle hObj, unsigned Index) {
000000  b570              PUSH     {r4-r6,lr}
000002  0004              MOVS     r4,r0
000004  460d              MOV      r5,r1
;;;765      if (hObj) {
000006  d00d              BEQ      |L4.36|
;;;766        MULTIPAGE_Obj* pObj;
;;;767        WM_LOCK();
;;;768        pObj = MULTIPAGE_H2P(hObj);
000008  4620              MOV      r0,r4
00000a  f7fffffe          BL       GUI_ALLOC_h2p
;;;769        MULTIPAGE_ASSERT_IS_VALID_PTR(pObj);
;;;770        if (pObj) {
00000e  2800              CMP      r0,#0
000010  d008              BEQ      |L4.36|
;;;771          _SetEnable(pObj, Index, 0);
000012  2200              MOVS     r2,#0
000014  4629              MOV      r1,r5
000016  f7fffffe          BL       _SetEnable
;;;772          WM_InvalidateWindow(hObj);
00001a  4620              MOV      r0,r4
00001c  e8bd4070          POP      {r4-r6,lr}
000020  f7ffbffe          B.W      WM_InvalidateWindow
                  |L4.36|
;;;773        }
;;;774        WM_UNLOCK();
;;;775      }
;;;776    }
000024  bd70              POP      {r4-r6,pc}
;;;777    
                          ENDP


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

                  MULTIPAGE_EnablePage PROC
;;;781    */
;;;782    void MULTIPAGE_EnablePage(MULTIPAGE_Handle hObj, unsigned Index) {
000000  b570              PUSH     {r4-r6,lr}
000002  0004              MOVS     r4,r0
000004  460d              MOV      r5,r1
;;;783      if (hObj) {
000006  d00d              BEQ      |L5.36|
;;;784        MULTIPAGE_Obj* pObj;
;;;785        WM_LOCK();
;;;786        pObj = MULTIPAGE_H2P(hObj);
000008  4620              MOV      r0,r4
00000a  f7fffffe          BL       GUI_ALLOC_h2p
;;;787        MULTIPAGE_ASSERT_IS_VALID_PTR(pObj);
;;;788        if (pObj) {
00000e  2800              CMP      r0,#0
000010  d008              BEQ      |L5.36|
;;;789          _SetEnable(pObj, Index, 1);
000012  2201              MOVS     r2,#1
000014  4629              MOV      r1,r5
000016  f7fffffe          BL       _SetEnable
;;;790          WM_InvalidateWindow(hObj);
00001a  4620              MOV      r0,r4
00001c  e8bd4070          POP      {r4-r6,lr}
000020  f7ffbffe          B.W      WM_InvalidateWindow
                  |L5.36|
;;;791        }
;;;792        WM_UNLOCK();
;;;793      }
;;;794    }
000024  bd70              POP      {r4-r6,pc}
;;;795    
                          ENDP


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

                  MULTIPAGE_GetSelection PROC
;;;909    */
;;;910    int MULTIPAGE_GetSelection(MULTIPAGE_Handle hObj) {
000000  b510              PUSH     {r4,lr}
;;;911      int r = 0;
000002  2400              MOVS     r4,#0
;;;912      if (hObj) {
000004  b118              CBZ      r0,|L6.14|
;;;913        MULTIPAGE_Obj* pObj;
;;;914        WM_LOCK();
;;;915        pObj = MULTIPAGE_H2P(hObj);
000006  f7fffffe          BL       GUI_ALLOC_h2p
;;;916        MULTIPAGE_ASSERT_IS_VALID_PTR(pObj);
;;;917        if (pObj) {
00000a  b100              CBZ      r0,|L6.14|
;;;918          r = pObj->Selection;
00000c  6b04              LDR      r4,[r0,#0x30]
                  |L6.14|
;;;919        }
;;;920        WM_UNLOCK();
;;;921      }
;;;922      return r;
00000e  4620              MOV      r0,r4
;;;923    }
000010  bd10              POP      {r4,pc}
;;;924    
                          ENDP


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

                  MULTIPAGE_GetWindow PROC
;;;928    */
;;;929    WM_HWIN MULTIPAGE_GetWindow(MULTIPAGE_Handle hObj, unsigned Index) {
000000  b570              PUSH     {r4-r6,lr}
000002  460d              MOV      r5,r1
;;;930      WM_HWIN r = 0;
000004  2400              MOVS     r4,#0
;;;931      if (hObj) {
000006  b158              CBZ      r0,|L7.32|
;;;932        MULTIPAGE_Obj* pObj;
;;;933        WM_LOCK();
;;;934        pObj = MULTIPAGE_H2P(hObj);
000008  f7fffffe          BL       GUI_ALLOC_h2p
;;;935        MULTIPAGE_ASSERT_IS_VALID_PTR(pObj);
;;;936        if (pObj) {
00000c  b140              CBZ      r0,|L7.32|
;;;937          if ((int)Index < pObj->Handles.NumItems) {
00000e  8d41              LDRH     r1,[r0,#0x2a]
000010  42a9              CMP      r1,r5
000012  dd05              BLE      |L7.32|
;;;938            MULTIPAGE_PAGE* pPage;
;;;939            pPage = (MULTIPAGE_PAGE*) GUI_ARRAY_GetpItem(&pObj->Handles, Index);
000014  4629              MOV      r1,r5
000016  302a              ADDS     r0,r0,#0x2a
000018  f7fffffe          BL       GUI_ARRAY_GetpItem
;;;940            r = pPage->hWin;
00001c  f9b04000          LDRSH    r4,[r0,#0]
                  |L7.32|
;;;941          }
;;;942        }
;;;943        WM_UNLOCK();
;;;944      }
;;;945      return r;
000020  4620              MOV      r0,r4
;;;946    }
000022  bd70              POP      {r4-r6,pc}
;;;947    
                          ENDP


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

                  MULTIPAGE_IsPageEnabled PROC
;;;951    */
;;;952    int MULTIPAGE_IsPageEnabled(MULTIPAGE_Handle hObj, unsigned Index) {
000000  b570              PUSH     {r4-r6,lr}
000002  460d              MOV      r5,r1
;;;953      int r = 0;
000004  2400              MOVS     r4,#0
;;;954      if (hObj) {
000006  b130              CBZ      r0,|L8.22|
;;;955        MULTIPAGE_Obj* pObj;
;;;956        WM_LOCK();
;;;957        pObj = MULTIPAGE_H2P(hObj);
000008  f7fffffe          BL       GUI_ALLOC_h2p
;;;958        MULTIPAGE_ASSERT_IS_VALID_PTR(pObj);
;;;959        if (pObj) {
00000c  b118              CBZ      r0,|L8.22|
;;;960          r = _GetEnable(pObj, Index);
00000e  4629              MOV      r1,r5
000010  f7fffffe          BL       _GetEnable
000014  4604              MOV      r4,r0
                  |L8.22|
;;;961        }
;;;962        WM_UNLOCK();
;;;963      }
;;;964      return r;
000016  4620              MOV      r0,r4
;;;965    }
000018  bd70              POP      {r4-r6,pc}
;;;966    
                          ENDP


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

                  MULTIPAGE_SelectPage PROC
;;;740    */
;;;741    void MULTIPAGE_SelectPage(MULTIPAGE_Handle hObj, unsigned Index) {
000000  b570              PUSH     {r4-r6,lr}
000002  0006              MOVS     r6,r0
000004  460d              MOV      r5,r1
;;;742      if (hObj) {
000006  d01b              BEQ      |L9.64|
;;;743        MULTIPAGE_Obj* pObj;
;;;744        WM_LOCK();
;;;745        pObj = MULTIPAGE_H2P(hObj);
000008  4630              MOV      r0,r6
00000a  f7fffffe          BL       GUI_ALLOC_h2p
00000e  0004              MOVS     r4,r0
;;;746        MULTIPAGE_ASSERT_IS_VALID_PTR(pObj);
;;;747        if (pObj) {
000010  d016              BEQ      |L9.64|
;;;748          if ((int)Index < pObj->Handles.NumItems) {
000012  8d60              LDRH     r0,[r4,#0x2a]
000014  42a8              CMP      r0,r5
000016  dd13              BLE      |L9.64|
;;;749            if (Index != pObj->Selection && _GetEnable(pObj, Index)) {
000018  6b20              LDR      r0,[r4,#0x30]
00001a  42a8              CMP      r0,r5
00001c  d010              BEQ      |L9.64|
00001e  4629              MOV      r1,r5
000020  4620              MOV      r0,r4
000022  f7fffffe          BL       _GetEnable
000026  2800              CMP      r0,#0
000028  d00a              BEQ      |L9.64|
;;;750              _ShowPage(pObj, Index);
00002a  4629              MOV      r1,r5
00002c  4620              MOV      r0,r4
00002e  f7fffffe          BL       _ShowPage
;;;751              pObj->Selection = Index;
;;;752              _UpdatePositions(hObj, pObj);
000032  4621              MOV      r1,r4
000034  4630              MOV      r0,r6
000036  6325              STR      r5,[r4,#0x30]
000038  e8bd4070          POP      {r4-r6,lr}
00003c  f7ffbffe          B.W      _UpdatePositions
                  |L9.64|
;;;753            }
;;;754          }
;;;755        }
;;;756        WM_UNLOCK();
;;;757      }
;;;758    }
000040  bd70              POP      {r4-r6,pc}
;;;759    
                          ENDP


⌨️ 快捷键说明

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