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

📄 listbox.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 TXT
📖 第 1 页 / 共 5 页
字号:
;;;1076   }
000080  e8bd81f0          POP      {r4-r8,pc}
;;;1077   
                          ENDP


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

                  LISTBOX_SetText PROC
;;;1020   */
;;;1021   void LISTBOX_SetText(LISTBOX_Handle hObj, const GUI_ConstString* ppText) {
000000  b570              PUSH     {r4-r6,lr}
000002  0006              MOVS     r6,r0
000004  460d              MOV      r5,r1
;;;1022     if (hObj) {
000006  d011              BEQ      |L10.44|
;;;1023       int i;
;;;1024       const char* s;
;;;1025       WM_LOCK();
;;;1026       if (ppText) {
000008  b14d              CBZ      r5,|L10.30|
;;;1027         for (i = 0; (s = *(ppText+i)) != 0; i++) {
00000a  2400              MOVS     r4,#0
00000c  e003              B        |L10.22|
                  |L10.14|
;;;1028           LISTBOX_AddString(hObj, s);
00000e  4630              MOV      r0,r6
000010  f7fffffe          BL       LISTBOX_AddString
000014  1c64              ADDS     r4,r4,#1              ;1027
                  |L10.22|
000016  f8551024          LDR      r1,[r5,r4,LSL #2]     ;1027
00001a  2900              CMP      r1,#0                 ;1027
00001c  d1f7              BNE      |L10.14|
                  |L10.30|
;;;1029         }
;;;1030       }
;;;1031       LISTBOX_InvalidateItem(hObj, LISTBOX_ALL_ITEMS);
00001e  4630              MOV      r0,r6
000020  e8bd4070          POP      {r4-r6,lr}
000024  f04f31ff          MOV      r1,#0xffffffff
000028  f7ffbffe          B.W      LISTBOX_InvalidateItem
                  |L10.44|
;;;1032       WM_UNLOCK();
;;;1033     }
;;;1034   }
00002c  bd70              POP      {r4-r6,pc}
;;;1035   
                          ENDP


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

                  LISTBOX_UpdateScrollers PROC
;;;555    */
;;;556    int LISTBOX_UpdateScrollers(LISTBOX_Handle hObj) {
000000  b57c              PUSH     {r2-r6,lr}
000002  4605              MOV      r5,r0
;;;557      _ManageAutoScroll(hObj);
000004  f7fffffe          BL       _ManageAutoScroll
000008  4628              MOV      r0,r5
00000a  f7fffffe          BL       GUI_ALLOC_h2p
00000e  4604              MOV      r4,r0
000010  3028              ADDS     r0,r0,#0x28
000012  f7fffffe          BL       GUI_ARRAY_GetNumItems
000016  6320              STR      r0,[r4,#0x30]
000018  4629              MOV      r1,r5
00001a  4620              MOV      r0,r4
00001c  f7fffffe          BL       _GetNumVisItems
000020  63a0              STR      r0,[r4,#0x38]
000022  4669              MOV      r1,sp
000024  4628              MOV      r0,r5
000026  f7fffffe          BL       WM_GetInsideRectExScrollbar
00002a  4628              MOV      r0,r5
00002c  f7fffffe          BL       _GetContentsSizeX
000030  63e0              STR      r0,[r4,#0x3c]
000032  f9bd0004          LDRSH    r0,[sp,#4]
000036  f9bd1000          LDRSH    r1,[sp,#0]
00003a  1a41              SUBS     r1,r0,r1
00003c  1c49              ADDS     r1,r1,#1
00003e  6461              STR      r1,[r4,#0x44]
000040  4621              MOV      r1,r4
000042  4628              MOV      r0,r5
000044  f7fffffe          BL       _UpdateScrollPos
;;;558      return _CalcScrollParas(hObj);
;;;559    }
000048  bd7c              POP      {r2-r6,pc}
;;;560    
                          ENDP


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

                  LISTBOX__GetNumItems PROC
;;;140    */
;;;141    unsigned LISTBOX__GetNumItems(const LISTBOX_Obj* pObj) {
000000  3028              ADDS     r0,r0,#0x28
;;;142      return GUI_ARRAY_GetNumItems(&pObj->ItemArray);
000002  f7ffbffe          B.W      GUI_ARRAY_GetNumItems
;;;143    }
;;;144    
                          ENDP


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

                  LISTBOX__GetpString PROC
;;;151    */
;;;152    const char* LISTBOX__GetpString(const LISTBOX_Obj* pObj, int Index) {
000000  b510              PUSH     {r4,lr}
;;;153      const char* s = NULL;
000002  2400              MOVS     r4,#0
;;;154      LISTBOX_ITEM* pItem = (LISTBOX_ITEM*)GUI_ARRAY_GetpItem(&pObj->ItemArray, Index);
000004  3028              ADDS     r0,r0,#0x28
000006  f7fffffe          BL       GUI_ARRAY_GetpItem
;;;155      if (pItem) {
00000a  b100              CBZ      r0,|L13.14|
;;;156        s = pItem->acText;
00000c  1d44              ADDS     r4,r0,#5
                  |L13.14|
;;;157      }
;;;158      return s;
00000e  4620              MOV      r0,r4
;;;159    }
000010  bd10              POP      {r4,pc}
;;;160    
                          ENDP


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

                  LISTBOX__InvalidateInsideArea PROC
;;;449    */
;;;450    void LISTBOX__InvalidateInsideArea(LISTBOX_Handle hObj) {
000000  b51c              PUSH     {r2-r4,lr}
000002  4604              MOV      r4,r0
;;;451      GUI_RECT Rect;
;;;452      WM_GetInsideRectExScrollbar(hObj, &Rect);
000004  4669              MOV      r1,sp
000006  f7fffffe          BL       WM_GetInsideRectExScrollbar
;;;453      WM_InvalidateRect(hObj, &Rect);
00000a  4669              MOV      r1,sp
00000c  4620              MOV      r0,r4
00000e  f7fffffe          BL       WM_InvalidateRect
;;;454    }
000012  bd1c              POP      {r2-r4,pc}
;;;455    
                          ENDP


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

                  LISTBOX__InvalidateItem PROC
;;;459    */
;;;460    void LISTBOX__InvalidateItem(LISTBOX_Handle hObj, const LISTBOX_Obj* pObj, int Sel) {
000000  e92d41fc          PUSH     {r2-r8,lr}
000004  4606              MOV      r6,r0
000006  460f              MOV      r7,r1
000008  1e15              SUBS     r5,r2,#0
;;;461      if (Sel >= 0) {
00000a  db1d              BLT      |L15.72|
;;;462        int ItemPosY;
;;;463        ItemPosY = _GetItemPosY(hObj, pObj, Sel);
00000c  462a              MOV      r2,r5
00000e  4639              MOV      r1,r7
000010  4630              MOV      r0,r6
000012  f7fffffe          BL       _GetItemPosY
000016  1e04              SUBS     r4,r0,#0
;;;464        if (ItemPosY >= 0) {
000018  db16              BLT      |L15.72|
;;;465          GUI_RECT Rect;
;;;466          int ItemDistY;
;;;467          ItemDistY = _GetItemSizeY(hObj, pObj, Sel);
00001a  462a              MOV      r2,r5
00001c  4639              MOV      r1,r7
00001e  4630              MOV      r0,r6
000020  f7fffffe          BL       _GetItemSizeY
000024  4605              MOV      r5,r0
;;;468          WM_GetInsideRectExScrollbar(hObj, &Rect);
000026  4669              MOV      r1,sp
000028  4630              MOV      r0,r6
00002a  f7fffffe          BL       WM_GetInsideRectExScrollbar
;;;469          Rect.y0 += ItemPosY;
00002e  f8bd0002          LDRH     r0,[sp,#2]
000032  1901              ADDS     r1,r0,r4
;;;470          Rect.y1  = Rect.y0 + ItemDistY - 1;
000034  1e68              SUBS     r0,r5,#1
000036  4408              ADD      r0,r0,r1
000038  f8ad1002          STRH     r1,[sp,#2]            ;469
00003c  f8ad0006          STRH     r0,[sp,#6]
;;;471          WM_InvalidateRect(hObj, &Rect);
000040  4669              MOV      r1,sp
000042  4630              MOV      r0,r6
000044  f7fffffe          BL       WM_InvalidateRect
                  |L15.72|
;;;472        }
;;;473      }
;;;474    }
000048  e8bd81fc          POP      {r2-r8,pc}
;;;475    
                          ENDP


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

                  LISTBOX__InvalidateItemAndBelow PROC
;;;479    */
;;;480    void LISTBOX__InvalidateItemAndBelow(LISTBOX_Handle hObj, const LISTBOX_Obj* pObj, int Sel) {
000000  b57c              PUSH     {r2-r6,lr}
000002  4605              MOV      r5,r0
;;;481      if (Sel >= 0) {
000004  2a00              CMP      r2,#0
000006  db11              BLT      |L16.44|
;;;482        int ItemPosY;
;;;483        ItemPosY = _GetItemPosY(hObj, pObj, Sel);
000008  4628              MOV      r0,r5
00000a  f7fffffe          BL       _GetItemPosY
00000e  1e04              SUBS     r4,r0,#0
;;;484        if (ItemPosY >= 0) {
000010  db0c              BLT      |L16.44|
;;;485          GUI_RECT Rect;
;;;486          WM_GetInsideRectExScrollbar(hObj, &Rect);
000012  4669              MOV      r1,sp
000014  4628              MOV      r0,r5
000016  f7fffffe          BL       WM_GetInsideRectExScrollbar
;;;487          Rect.y0 += ItemPosY;
00001a  f8bd0002          LDRH     r0,[sp,#2]
;;;488          WM_InvalidateRect(hObj, &Rect);
00001e  4669              MOV      r1,sp
000020  4420              ADD      r0,r0,r4              ;487
000022  f8ad0002          STRH     r0,[sp,#2]            ;487
000026  4628              MOV      r0,r5
000028  f7fffffe          BL       WM_InvalidateRect
                  |L16.44|
;;;489        }
;;;490      }
;;;491    }
00002c  bd7c              POP      {r2-r6,pc}
;;;492    
                          ENDP


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

                  LISTBOX__InvalidateItemSize PROC
;;;436    */
;;;437    void LISTBOX__InvalidateItemSize(const LISTBOX_Obj* pObj, unsigned Index) {
000000  b510              PUSH     {r4,lr}
;;;438      LISTBOX_ITEM* pItem;
;;;439      pItem = (LISTBOX_ITEM*)GUI_ARRAY_GetpItem(&pObj->ItemArray, Index);
000002  3028              ADDS     r0,r0,#0x28
000004  f7fffffe          BL       GUI_ARRAY_GetpItem
;;;440      if (pItem) {
000008  2800              CMP      r0,#0
00000a  d002              BEQ      |L17.18|
;;;441        pItem->xSize = 0;
00000c  2100              MOVS     r1,#0
00000e  8001              STRH     r1,[r0,#0]
;;;442        pItem->ySize = 0;
000010  8041              STRH     r1,[r0,#2]
                  |L17.18|
;;;443      }
;;;444    }
000012  bd10              POP      {r4,pc}
;;;445    
                          ENDP


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

                  LISTBOX__SetScrollbarWidth PROC
;;;496    */
;;;497    void LISTBOX__SetScrollbarWidth(LISTBOX_Handle hObj, const LISTBOX_Obj* pObj) {
000000  b570              PUSH     {r4-r6,lr}
;;;498      WM_HWIN hBarH, hBarV;
;;;499      int Width;
;;;500      Width = pObj->ScrollbarWidth;
000002  f8914075          LDRB     r4,[r1,#0x75]
000006  4605              MOV      r5,r0                 ;497
;;;501      if (Width == 0) {
000008  b914              CBNZ     r4,|L18.16|
;;;502        Width = SCROLLBAR_GetDefaultWidth();
00000a  f7fffffe          BL       SCROLLBAR_GetDefaultWidth
00000e  4604              MOV      r4,r0
                  |L18.16|
;;;503      }
;;;504      hBarH = WM_GetDialogItem(hObj, GUI_ID_HSCROLL);
000010  21ff              MOVS     r1,#0xff
000012  4628              MOV      r0,r5
000014  f7fffffe          BL       WM_GetDialogItem
000018  4606              MOV      r6,r0
;;;505      hBarV = WM_GetDialogItem(hObj, GUI_ID_VSCROLL);
00001a  21fe              MOVS     r1,#0xfe
00001c  4628              MOV      r0,r5
00001e  f7fffffe          BL       WM_GetDialogItem
000022  4605              MOV      r5,r0
;;;506      SCROLLBAR_SetWidth(hBarH, Width);
000024  4621              MOV      r1,r4
000026  4630              MOV      r0,r6
000028  f7fffffe          BL       SCROLLBAR_SetWidth
;;;507      SCROLLBAR_SetWidth(hBarV, Width);
00002c  4621              MOV      r1,r4
00002e  4628              MOV      r0,r5
000030  e8bd4070          POP      {r4-r6,lr}
000034  f7ffbffe          B.W      SCROLLBAR_SetWidth
;;;508    }
;;;509    
                          ENDP


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

                  _AddKey PROC

⌨️ 快捷键说明

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