📄 dropdown.txt
字号:
;;;430 r.y0 -= ySize;
000058 f8bd000e LDRH r0,[sp,#0xe]
00005c 1b40 SUBS r0,r0,r5
00005e e001 B |L6.100|
|L6.96|
;;;431 } else {
;;;432 r.y0 = r.y1;
000060 f8bd0012 LDRH r0,[sp,#0x12]
|L6.100|
000064 f8ad000e STRH r0,[sp,#0xe]
;;;433 }
;;;434 hLst = LISTBOX_CreateAsChild(NULL, WM_GetParent(hObj), r.x0, r.y0
000068 4640 MOV r0,r8
00006a f7fffffe BL WM_GetParent
00006e 2302 MOVS r3,#2
000070 e9cd9500 STRD r9,r5,[sp,#0]
000074 9302 STR r3,[sp,#8]
000076 4601 MOV r1,r0
000078 f9bd300e LDRSH r3,[sp,#0xe]
00007c f9bd200c LDRSH r2,[sp,#0xc]
000080 2000 MOVS r0,#0
000082 f7fffffe BL LISTBOX_CreateAsChild
000086 4606 MOV r6,r0
;;;435 , xSize, ySize, WM_CF_SHOW);
;;;436 if (pObj->Flags & DROPDOWN_SF_AUTOSCROLLBAR) {
000088 f8940062 LDRB r0,[r4,#0x62]
00008c 07c0 LSLS r0,r0,#31
00008e d008 BEQ |L6.162|
;;;437 LISTBOX_SetScrollbarWidth(hLst, pObj->ScrollbarWidth);
000090 f8941066 LDRB r1,[r4,#0x66]
000094 4630 MOV r0,r6
000096 f7fffffe BL LISTBOX_SetScrollbarWidth
;;;438 LISTBOX_SetAutoScrollV(hLst, 1);
00009a 2101 MOVS r1,#1
00009c 4630 MOV r0,r6
00009e f7fffffe BL LISTBOX_SetAutoScrollV
|L6.162|
;;;439 }
;;;440 for (i = 0; i< NumItems; i++) {
0000a2 2500 MOVS r5,#0
0000a4 e008 B |L6.184|
|L6.166|
;;;441 LISTBOX_AddString(hLst, _GetpItem(pObj, i));
0000a6 4629 MOV r1,r5
0000a8 4620 MOV r0,r4
0000aa f7fffffe BL _GetpItem
0000ae 4601 MOV r1,r0
0000b0 4630 MOV r0,r6
0000b2 f7fffffe BL LISTBOX_AddString
0000b6 1c6d ADDS r5,r5,#1 ;440
|L6.184|
0000b8 42bd CMP r5,r7 ;440
0000ba dbf4 BLT |L6.166|
;;;442 }
;;;443 for (i = 0; i < GUI_COUNTOF(pObj->Props.aBackColor); i++) {
0000bc f05f0500 MOVS.W r5,#0
|L6.192|
;;;444 LISTBOX_SetBkColor(hLst, i, pObj->Props.aBackColor[i]);
0000c0 eb040085 ADD r0,r4,r5,LSL #2
0000c4 6c42 LDR r2,[r0,#0x44]
0000c6 4629 MOV r1,r5
0000c8 4630 MOV r0,r6
0000ca f7fffffe BL LISTBOX_SetBkColor
0000ce 1c6d ADDS r5,r5,#1 ;443
0000d0 2d03 CMP r5,#3 ;443
0000d2 d3f5 BCC |L6.192|
;;;445 }
;;;446 for (i = 0; i < GUI_COUNTOF(pObj->Props.aTextColor); i++) {
0000d4 f05f0500 MOVS.W r5,#0
|L6.216|
;;;447 LISTBOX_SetTextColor(hLst, i, pObj->Props.aTextColor[i]);
0000d8 eb040085 ADD r0,r4,r5,LSL #2
0000dc 6d02 LDR r2,[r0,#0x50]
0000de 4629 MOV r1,r5
0000e0 4630 MOV r0,r6
0000e2 f7fffffe BL LISTBOX_SetTextColor
0000e6 1c6d ADDS r5,r5,#1 ;446
0000e8 2d03 CMP r5,#3 ;446
0000ea d3f5 BCC |L6.216|
0000ec 3428 ADDS r4,r4,#0x28 ;446
;;;448 }
;;;449 LISTBOX_SetItemSpacing(hLst, pObj->ItemSpacing);
0000ee 8fa1 LDRH r1,[r4,#0x3c]
0000f0 4630 MOV r0,r6
0000f2 f7fffffe BL LISTBOX_SetItemSpacing
;;;450 LISTBOX_SetFont(hLst, pObj->Props.pFont);
0000f6 4630 MOV r0,r6
0000f8 69a1 LDR r1,[r4,#0x18]
0000fa f7fffffe BL LISTBOX_SetFont
;;;451 WM_SetFocus(hLst);
0000fe 4630 MOV r0,r6
000100 f7fffffe BL WM_SetFocus
;;;452 pObj->hListWin = hLst;
000104 8726 STRH r6,[r4,#0x38]
;;;453 LISTBOX_SetOwner(hLst, hObj);
000106 4641 MOV r1,r8
000108 e000 B |L6.268|
|L6.266|
00010a e00b B |L6.292|
|L6.268|
00010c 4630 MOV r0,r6
00010e f7fffffe BL LISTBOX_SetOwner
;;;454 LISTBOX_SetSel(hLst, pObj->Sel);
000112 f9b41000 LDRSH r1,[r4,#0]
000116 4630 MOV r0,r6
000118 f7fffffe BL LISTBOX_SetSel
;;;455 WM_NotifyParent(hObj, WM_NOTIFICATION_CLICKED);
00011c 2101 MOVS r1,#1
00011e 4640 MOV r0,r8
000120 f7fffffe BL WM_NotifyParent
|L6.292|
;;;456 }
;;;457 WM_UNLOCK();
;;;458 }
;;;459 }
000124 b005 ADD sp,sp,#0x14
000126 e8bd83f0 POP {r4-r9,pc}
;;;460
ENDP
AREA ||i.DROPDOWN_GetDefaultFont||, CODE, READONLY, ALIGN=2
DROPDOWN_GetDefaultFont PROC
;;;672 */
;;;673 const GUI_FONT GUI_UNI_PTR * DROPDOWN_GetDefaultFont(void) {
000000 4801 LDR r0,|L7.8|
;;;674 return DROPDOWN__DefaultProps.pFont;
000002 6800 LDR r0,[r0,#0] ; DROPDOWN__DefaultProps
;;;675 }
000004 4770 BX lr
;;;676
ENDP
000006 0000 DCW 0x0000
|L7.8|
DCD ||.data||
AREA ||i.DROPDOWN_GetNumItems||, CODE, READONLY, ALIGN=1
DROPDOWN_GetNumItems PROC
;;;501 */
;;;502 int DROPDOWN_GetNumItems(DROPDOWN_Handle hObj) {
000000 b510 PUSH {r4,lr}
000002 0001 MOVS r1,r0
;;;503 DROPDOWN_Obj* pObj;
;;;504 int r = 0;
000004 f04f0000 MOV r0,#0
;;;505 if (hObj) {
000008 d003 BEQ |L8.18|
;;;506 WM_LOCK();
;;;507 pObj = DROPDOWN_H2P(hObj);
00000a 4608 MOV r0,r1
00000c f7fffffe BL GUI_ALLOC_h2p
;;;508 ASSERT_IS_VALID_PTR(pObj);
;;;509 r = _GetNumItems(pObj);
000010 8dc0 LDRH r0,[r0,#0x2e]
|L8.18|
;;;510 WM_UNLOCK();
;;;511 }
;;;512 return r;
;;;513 }
000012 bd10 POP {r4,pc}
;;;514
ENDP
AREA ||i.DROPDOWN_GetSel||, CODE, READONLY, ALIGN=1
DROPDOWN_GetSel PROC
;;;627
;;;628 int DROPDOWN_GetSel (DROPDOWN_Handle hObj) {
000000 b510 PUSH {r4,lr}
000002 0001 MOVS r1,r0
;;;629 int r = 0;
000004 f04f0000 MOV r0,#0
;;;630 DROPDOWN_Obj* pObj;
;;;631 if (hObj) {
000008 d004 BEQ |L9.20|
;;;632 WM_LOCK();
;;;633 pObj = DROPDOWN_H2P(hObj);
00000a 4608 MOV r0,r1
00000c f7fffffe BL GUI_ALLOC_h2p
;;;634 ASSERT_IS_VALID_PTR(pObj);
;;;635 r = pObj->Sel;
000010 f9b00028 LDRSH r0,[r0,#0x28]
|L9.20|
;;;636 WM_UNLOCK();
;;;637 }
;;;638 return r;
;;;639 }
000014 bd10 POP {r4,pc}
;;;640
ENDP
AREA ||i.DROPDOWN_IncSel||, CODE, READONLY, ALIGN=1
DROPDOWN_IncSel PROC
;;;611 */
;;;612 void DROPDOWN_IncSel(DROPDOWN_Handle hObj) {
000000 b510 PUSH {r4,lr}
000002 4604 MOV r4,r0
;;;613 int Sel = DROPDOWN_GetSel(hObj);
000004 f7fffffe BL DROPDOWN_GetSel
;;;614 DROPDOWN_SetSel(hObj, Sel+1);
000008 1c41 ADDS r1,r0,#1
00000a 4620 MOV r0,r4
00000c e8bd4010 POP {r4,lr}
000010 f7ffbffe B.W DROPDOWN_SetSel
;;;615 }
;;;616
ENDP
AREA ||i.DROPDOWN_SetBkColor||, CODE, READONLY, ALIGN=1
DROPDOWN_SetBkColor PROC
;;;544 */
;;;545 void DROPDOWN_SetBkColor(DROPDOWN_Handle hObj, unsigned int Index, GUI_COLOR color) {
000000 e92d41f0 PUSH {r4-r8,lr}
000004 0007 MOVS r7,r0
000006 460c MOV r4,r1
000008 4615 MOV r5,r2
;;;546 DROPDOWN_Obj* pObj;
;;;547 if (hObj) {
00000a d015 BEQ |L11.56|
;;;548 if (Index < GUI_COUNTOF(pObj->Props.aBackColor)) {
00000c 2c03 CMP r4,#3
00000e d213 BCS |L11.56|
;;;549 WM_LOCK();
;;;550 pObj = DROPDOWN_H2P(hObj);
000010 4638 MOV r0,r7
000012 f7fffffe BL GUI_ALLOC_h2p
000016 4606 MOV r6,r0
;;;551 ASSERT_IS_VALID_PTR(pObj);
;;;552 pObj->Props.aBackColor[Index] = color;
000018 eb000084 ADD r0,r0,r4,LSL #2
;;;553 DROPDOWN_Invalidate(hObj);
00001c 6445 STR r5,[r0,#0x44]
00001e 4638 MOV r0,r7
000020 f7fffffe BL WM_InvalidateWindow
;;;554 if (pObj->hListWin) {
000024 f9b60060 LDRSH r0,[r6,#0x60]
000028 2800 CMP r0,#0
00002a d005 BEQ |L11.56|
;;;555 LISTBOX_SetBkColor(pObj->hListWin, Index, color);
00002c 462a MOV r2,r5
00002e 4621 MOV r1,r4
000030 e8bd41f0 POP {r4-r8,lr}
000034 f7ffbffe B.W LISTBOX_SetBkColor
|L11.56|
;;;556 }
;;;557 WM_UNLOCK();
;;;558 }
;;;559 }
;;;560 }
000038 e8bd81f0 POP {r4-r8,pc}
;;;561
ENDP
AREA ||i.DROPDOWN_SetDefaultFont||, CODE, READONLY, ALIGN=2
DROPDOWN_SetDefaultFont PROC
;;;664 */
;;;665 void DROPDOWN_SetDefaultFont(const GUI_FONT* pFont) {
000000 4901 LDR r1,|L12.8|
;;;666 DROPDOWN__DefaultProps.pFont = pFont;
;;;667 }
000002 6008 STR r0,[r1,#0] ; DROPDOWN__DefaultProps
000004 4770 BX lr
;;;668
ENDP
000006 0000 DCW 0x0000
|L12.8|
DCD ||.data||
AREA ||i.DROPDOWN_SetFont||, CODE, READONLY, ALIGN=1
DROPDOWN_SetFont PROC
;;;518 */
;;;519 void DROPDOWN_SetFont(DROPDOWN_Handle hObj, const GUI_FONT GUI_UNI_PTR * pfont) {
000000 e92d41f0 PUSH {r4-r8,lr}
000004 0006 MOVS r6,r0
000006 460f MOV r7,r1
;;;520 int OldHeight;
;;;521 DROPDOWN_Obj* pObj;
;;;522 if (hObj) {
000008 d025 BEQ |L13.86|
;;;523 WM_LOCK();
;;;524 pObj = DROPDOWN_H2P(hObj);
00000a 4630 MOV r0,r6
00000c f7fffffe BL GUI_ALLOC_h2p
000010 4604 MOV r4,r0
;;;525 ASSERT_IS_VALID_PTR(pObj);
;;;526 OldHeight = GUI_GetYDistOfFont(pObj->Props.pFont);
000012 6c00 LDR r0,[r0,#0x40]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -