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

📄 listbox.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 TXT
📖 第 1 页 / 共 5 页
字号:
; generated by ARM C/C++ Compiler with , RVCT4.0 [Build 524] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\listbox.o --depend=.\Obj\listbox.d --device=DARMSTM --apcs=interwork -O3 -I..\..\include -I..\..\..\FWLib\library\inc -I..\..\..\USBLib\library\inc -I..\..\Config -I..\..\GUI\Core -I..\..\GUI\Font -I..\..\GUI\ConvertColor -I..\..\GUI\AntiAlias -I..\..\GUI\ConvertMono -I..\..\GUI\JPEG -I..\..\GUI\MemDev -I..\..\GUI\MultiLayer -I..\..\GUI\Widget -I..\..\GUI\WM -IC:\Keil\ARM\INC\ST\STM32F10x ..\..\GUI\Widget\LISTBOX.c]
                          THUMB

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

                  LISTBOX_AddKey PROC
;;;984    */
;;;985    int LISTBOX_AddKey(LISTBOX_Handle hObj, int Key) {
000000  0002              MOVS     r2,r0
;;;986      int r = 0;
000002  f04f0000          MOV      r0,#0
;;;987      if (hObj) {
000006  d002              BEQ      |L1.14|
;;;988        WM_LOCK();
;;;989        r = _AddKey(hObj, Key);
000008  4610              MOV      r0,r2
00000a  f7ffbffe          B.W      _AddKey
                  |L1.14|
;;;990        WM_UNLOCK();
;;;991      }
;;;992      return r;
;;;993    }
00000e  4770              BX       lr
;;;994    
                          ENDP


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

                  LISTBOX_AddString PROC
;;;998    */
;;;999    void LISTBOX_AddString(LISTBOX_Handle hObj, const char* s) {
000000  e92d41fc          PUSH     {r2-r8,lr}
000004  0005              MOVS     r5,r0
000006  460e              MOV      r6,r1
;;;1000     if (hObj && s) {
000008  d02d              BEQ      |L2.102|
00000a  2e00              CMP      r6,#0
00000c  d02b              BEQ      |L2.102|
;;;1001       LISTBOX_Obj* pObj;
;;;1002       LISTBOX_ITEM Item = {0, 0};
00000e  2100              MOVS     r1,#0
000010  4668              MOV      r0,sp
000012  460a              MOV      r2,r1
000014  c006              STM      r0!,{r1,r2}
;;;1003       WM_LOCK();
;;;1004       pObj = LISTBOX_H2P(hObj);
000016  4628              MOV      r0,r5
000018  f7fffffe          BL       GUI_ALLOC_h2p
00001c  4604              MOV      r4,r0
;;;1005       if (GUI_ARRAY_AddItem(&pObj->ItemArray, &Item, sizeof(LISTBOX_ITEM) + strlen(s)) == 0) {
00001e  4630              MOV      r0,r6
000020  f7fffffe          BL       strlen
000024  1d82              ADDS     r2,r0,#6
000026  f1040028          ADD      r0,r4,#0x28
00002a  4669              MOV      r1,sp
00002c  4680              MOV      r8,r0
00002e  f7fffffe          BL       GUI_ARRAY_AddItem
000032  2800              CMP      r0,#0
000034  d117              BNE      |L2.102|
000036  4640              MOV      r0,r8
;;;1006         unsigned ItemIndex = GUI_ARRAY_GetNumItems(&pObj->ItemArray) - 1;
000038  f7fffffe          BL       GUI_ARRAY_GetNumItems
00003c  1e47              SUBS     r7,r0,#1
;;;1007         LISTBOX_ITEM* pItem= (LISTBOX_ITEM*)GUI_ARRAY_GetpItem(&pObj->ItemArray, ItemIndex);
00003e  4639              MOV      r1,r7
000040  4640              MOV      r0,r8
000042  f7fffffe          BL       GUI_ARRAY_GetpItem
;;;1008         strcpy(pItem->acText, s);
000046  4631              MOV      r1,r6
000048  1d40              ADDS     r0,r0,#5
00004a  f7fffffe          BL       strcpy
;;;1009         LISTBOX__InvalidateItemSize(pObj, ItemIndex);
00004e  4639              MOV      r1,r7
000050  4620              MOV      r0,r4
000052  f7fffffe          BL       LISTBOX__InvalidateItemSize
;;;1010         LISTBOX_UpdateScrollers(hObj);
000056  4628              MOV      r0,r5
000058  f7fffffe          BL       LISTBOX_UpdateScrollers
;;;1011         LISTBOX__InvalidateItem(hObj, pObj, ItemIndex);
00005c  463a              MOV      r2,r7
00005e  4621              MOV      r1,r4
000060  4628              MOV      r0,r5
000062  f7fffffe          BL       LISTBOX__InvalidateItem
                  |L2.102|
;;;1012       }
;;;1013       WM_UNLOCK();
;;;1014     }
;;;1015   }
000066  e8bd81fc          POP      {r2-r8,pc}
;;;1016   
                          ENDP


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

                  LISTBOX_CreateEx PROC
;;;914    */
;;;915    LISTBOX_Handle LISTBOX_CreateEx(int x0, int y0, int xsize, int ysize, WM_HWIN hParent,
000000  e92d47ff          PUSH     {r0-r10,lr}
;;;916                                    int WinFlags, int ExFlags, int Id, const GUI_ConstString* ppText)
;;;917    {
000004  4604              MOV      r4,r0
000006  460d              MOV      r5,r1
;;;918      LISTBOX_Handle hObj;
;;;919      GUI_USE_PARA(ExFlags);
;;;920      hObj = WM_CreateWindowAsChild(x0, y0, xsize, ysize, hParent, WinFlags, _LISTBOX_Callback,
000008  e9dd010c          LDRD     r0,r1,[sp,#0x30]
00000c  e9dd980f          LDRD     r9,r8,[sp,#0x3c]
000010  4616              MOV      r6,r2                 ;917
000012  461f              MOV      r7,r3                 ;917
000014  2358              MOVS     r3,#0x58
000016  4a14              LDR      r2,|L3.104|
000018  b289              UXTH     r1,r1
00001a  e88d000f          STM      sp,{r0-r3}
00001e  463b              MOV      r3,r7
000020  4632              MOV      r2,r6
000022  4629              MOV      r1,r5
000024  4620              MOV      r0,r4
000026  f7fffffe          BL       WM_CreateWindowAsChild
00002a  0004              MOVS     r4,r0
;;;921                                    sizeof(LISTBOX_Obj) - sizeof(WM_Obj));
;;;922      if (hObj) {
00002c  d017              BEQ      |L3.94|
;;;923        LISTBOX_Obj* pObj;
;;;924        WM_LOCK();
;;;925        pObj = LISTBOX_H2P(hObj);
00002e  4620              MOV      r0,r4
000030  f7fffffe          BL       GUI_ALLOC_h2p
000034  4605              MOV      r5,r0
;;;926         /* Init sub-classes */
;;;927        GUI_ARRAY_CREATE(&pObj->ItemArray);
;;;928       /* init widget specific variables */
;;;929        WIDGET__Init(&pObj->Widget, Id, WIDGET_STATE_FOCUSSABLE);
000036  2210              MOVS     r2,#0x10
000038  4649              MOV      r1,r9
00003a  f7fffffe          BL       WIDGET__Init
;;;930        pObj->Props = LISTBOX_DefaultProps;
00003e  2228              MOVS     r2,#0x28
000040  490a              LDR      r1,|L3.108|
000042  f1050048          ADD      r0,r5,#0x48
000046  f7fffffe          BL       __aeabi_memcpy4
;;;931        if (ppText) {
00004a  f1b80f00          CMP      r8,#0
00004e  d003              BEQ      |L3.88|
;;;932          /* init member variables */
;;;933          /* Set non-zero attributes */
;;;934          LISTBOX_SetText(hObj, ppText);
000050  4641              MOV      r1,r8
000052  4620              MOV      r0,r4
000054  f7fffffe          BL       LISTBOX_SetText
                  |L3.88|
;;;935        }
;;;936        INIT_ID(pObj);
;;;937        LISTBOX_UpdateScrollers(hObj);
000058  4620              MOV      r0,r4
00005a  f7fffffe          BL       LISTBOX_UpdateScrollers
                  |L3.94|
;;;938        WM_UNLOCK();
;;;939      }
;;;940      return hObj;
00005e  4620              MOV      r0,r4
;;;941    }
000060  b004              ADD      sp,sp,#0x10
000062  e8bd87f0          POP      {r4-r10,pc}
;;;942    
                          ENDP

000066  0000              DCW      0x0000
                  |L3.104|
                          DCD      _LISTBOX_Callback
                  |L3.108|
                          DCD      ||.data||

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

                  LISTBOX_DecSel PROC
;;;1110   */
;;;1111   void LISTBOX_DecSel      (LISTBOX_Handle hObj) {
000000  2800              CMP      r0,#0
;;;1112     if (hObj) {
000002  d003              BEQ      |L4.12|
;;;1113       WM_LOCK();
;;;1114       _MoveSel(hObj, -1);
000004  f04f31ff          MOV      r1,#0xffffffff
000008  f7ffbffe          B.W      _MoveSel
                  |L4.12|
;;;1115       WM_UNLOCK();
;;;1116     }
;;;1117   }
00000c  4770              BX       lr
;;;1118   
                          ENDP


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

                  LISTBOX_GetSel PROC
;;;1081   */
;;;1082   int  LISTBOX_GetSel (LISTBOX_Handle hObj) {
000000  b510              PUSH     {r4,lr}
000002  0001              MOVS     r1,r0
;;;1083     int r = -1;
000004  f04f30ff          MOV      r0,#0xffffffff
;;;1084     LISTBOX_Obj* pObj;
;;;1085     if (hObj) {
000008  d004              BEQ      |L5.20|
;;;1086       WM_LOCK();
;;;1087       pObj = LISTBOX_H2P(hObj);
00000a  4608              MOV      r0,r1
00000c  f7fffffe          BL       GUI_ALLOC_h2p
;;;1088       ASSERT_IS_VALID_PTR(pObj);
;;;1089       r = pObj->Sel;
000010  f9b00072          LDRSH    r0,[r0,#0x72]
                  |L5.20|
;;;1090       WM_UNLOCK();
;;;1091     }
;;;1092     return r;
;;;1093   }
000014  bd10              POP      {r4,pc}
;;;1094   
                          ENDP


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

                  LISTBOX_IncSel PROC
;;;1098   */
;;;1099   void LISTBOX_IncSel      (LISTBOX_Handle hObj) {
000000  2800              CMP      r0,#0
;;;1100     if (hObj) {
000002  d002              BEQ      |L6.10|
;;;1101       WM_LOCK();
;;;1102       _MoveSel(hObj, 1);
000004  2101              MOVS     r1,#1
000006  f7ffbffe          B.W      _MoveSel
                  |L6.10|
;;;1103       WM_UNLOCK();
;;;1104     }
;;;1105   }
00000a  4770              BX       lr
;;;1106   
                          ENDP


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

                  LISTBOX_InvalidateItem PROC
;;;952    */
;;;953    void LISTBOX_InvalidateItem(LISTBOX_Handle hObj, int Index) {
000000  e92d41f0          PUSH     {r4-r8,lr}
000004  0007              MOVS     r7,r0
000006  460c              MOV      r4,r1
;;;954      if (hObj) {
000008  d02a              BEQ      |L7.96|
;;;955        LISTBOX_Obj* pObj;
;;;956        int NumItems;
;;;957        WM_LOCK();
;;;958        pObj = LISTBOX_H2P(hObj);
00000a  4638              MOV      r0,r7
00000c  f7fffffe          BL       GUI_ALLOC_h2p
000010  4606              MOV      r6,r0
000012  3028              ADDS     r0,r0,#0x28
000014  f7fffffe          BL       GUI_ARRAY_GetNumItems
;;;959        NumItems = LISTBOX__GetNumItems(pObj);
000018  4605              MOV      r5,r0
;;;960        if (Index < NumItems) {
00001a  4284              CMP      r4,r0
00001c  da20              BGE      |L7.96|
;;;961          if (Index < 0) {
00001e  2c00              CMP      r4,#0
000020  da10              BGE      |L7.68|
;;;962            int i;
;;;963            for (i = 0; i < NumItems; i++) {
000022  2400              MOVS     r4,#0
000024  e004              B        |L7.48|
                  |L7.38|
;;;964              LISTBOX__InvalidateItemSize(pObj, i);
000026  4621              MOV      r1,r4
000028  4630              MOV      r0,r6
00002a  f7fffffe          BL       LISTBOX__InvalidateItemSize
00002e  1c64              ADDS     r4,r4,#1              ;963
                  |L7.48|
000030  42ac              CMP      r4,r5                 ;963
000032  dbf8              BLT      |L7.38|
;;;965            }
;;;966            LISTBOX_UpdateScrollers(hObj);
000034  4638              MOV      r0,r7
000036  f7fffffe          BL       LISTBOX_UpdateScrollers
;;;967            LISTBOX__InvalidateInsideArea(hObj);
00003a  4638              MOV      r0,r7
00003c  e8bd41f0          POP      {r4-r8,lr}
000040  f7ffbffe          B.W      LISTBOX__InvalidateInsideArea
                  |L7.68|
;;;968          } else {
;;;969            LISTBOX__InvalidateItemSize(pObj, Index);
000044  4621              MOV      r1,r4
000046  4630              MOV      r0,r6
000048  f7fffffe          BL       LISTBOX__InvalidateItemSize
;;;970            LISTBOX_UpdateScrollers(hObj);
00004c  4638              MOV      r0,r7
00004e  f7fffffe          BL       LISTBOX_UpdateScrollers
;;;971            LISTBOX__InvalidateItemAndBelow(hObj, pObj, Index);
000052  4622              MOV      r2,r4
000054  4631              MOV      r1,r6
000056  4638              MOV      r0,r7
000058  e8bd41f0          POP      {r4-r8,lr}
00005c  f7ffbffe          B.W      LISTBOX__InvalidateItemAndBelow
                  |L7.96|
;;;972          }
;;;973        }

⌨️ 快捷键说明

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