📄 listbox.txt
字号:
; 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 + -