📄 dropdown.txt
字号:
000040 6841 LDR r1,[r0,#4]
000042 2900 CMP r1,#0
000044 dd49 BLE |L18.218|
;;;333 int Key = ((const WM_KEY_INFO*)(pMsg->Data.p))->Key;
;;;334 switch (Key) {
000046 6801 LDR r1,[r0,#0]
000048 2909 CMP r1,#9
00004a d046 BEQ |L18.218|
;;;335 case GUI_KEY_TAB:
;;;336 break; /* Send to parent by not doing anything */
;;;337 default:
;;;338 DROPDOWN_AddKey(hObj, Key);
00004c 4638 MOV r0,r7
00004e e8bd41f0 POP {r4-r8,lr}
000052 f7ffbffe B.W DROPDOWN_AddKey
|L18.86|
000056 2811 CMP r0,#0x11 ;297
000058 d01d BEQ |L18.150|
00005a 2826 CMP r0,#0x26 ;297
00005c d13d BNE |L18.218|
00005e 68a0 LDR r0,[r4,#8] ;299
000060 2801 CMP r0,#1 ;299
000062 d00c BEQ |L18.126|
000064 280a CMP r0,#0xa ;299
000066 d005 BEQ |L18.116|
000068 280b CMP r0,#0xb ;299
00006a d136 BNE |L18.218|
00006c 4638 MOV r0,r7 ;308
00006e f7fffffe BL DROPDOWN_Collapse
000072 e032 B |L18.218|
|L18.116|
000074 210a MOVS r1,#0xa ;301
000076 4638 MOV r0,r7 ;301
000078 f7fffffe BL WM_NotifyParent
00007c e02d B |L18.218|
|L18.126|
00007e f9b50060 LDRSH r0,[r5,#0x60] ;304
000082 f7fffffe BL LISTBOX_GetSel
000086 4601 MOV r1,r0 ;304
000088 4638 MOV r0,r7 ;304
00008a f7fffffe BL DROPDOWN_SetSel
00008e 4638 MOV r0,r7 ;305
000090 f7fffffe BL WM_SetFocus
000094 e021 B |L18.218|
|L18.150|
000096 bb06 CBNZ r6,|L18.218|
000098 68a0 LDR r0,[r4,#8] ;315
00009a 7a00 LDRB r0,[r0,#8] ;315
00009c b1e8 CBZ r0,|L18.218|
00009e 4638 MOV r0,r7 ;316
0000a0 f7fffffe BL DROPDOWN_Expand
0000a4 e019 B |L18.218|
|L18.166|
0000a6 68a0 LDR r0,[r4,#8] ;316
0000a8 b128 CBZ r0,|L18.182|
0000aa 7a00 LDRB r0,[r0,#8] ;316
0000ac b108 CBZ r0,|L18.178|
0000ae 2101 MOVS r1,#1 ;316
0000b0 e002 B |L18.184|
|L18.178|
0000b2 2102 MOVS r1,#2 ;316
0000b4 e000 B |L18.184|
|L18.182|
0000b6 2103 MOVS r1,#3 ;316
|L18.184|
0000b8 4638 MOV r0,r7 ;316
0000ba e8bd41f0 POP {r4-r8,lr} ;316
0000be f7ffbffe B.W WM_NotifyParent
|L18.194|
0000c2 4638 MOV r0,r7 ;326
0000c4 f7fffffe BL _Paint
0000c8 e007 B |L18.218|
|L18.202|
0000ca f105002e ADD r0,r5,#0x2e ;327
0000ce f7fffffe BL GUI_ARRAY_Delete
0000d2 f9b50060 LDRSH r0,[r5,#0x60] ;327
0000d6 f7fffffe BL WM_DeleteWindow
|L18.218|
;;;339 return;
;;;340 }
;;;341 }
;;;342 break;
;;;343 }
;;;344 WM_DefaultProc(pMsg);
0000da 4620 MOV r0,r4
0000dc e8bd41f0 POP {r4-r8,lr}
0000e0 f7ffbffe B.W WM_DefaultProc
|L18.228|
;;;345 }
0000e4 e8bd81f0 POP {r4-r8,pc}
;;;346
ENDP
AREA ||i._GetpItem||, CODE, READONLY, ALIGN=1
_GetpItem PROC
;;;160 */
;;;161 static const char* _GetpItem(DROPDOWN_Obj* pObj, int Index) {
000000 b510 PUSH {r4,lr}
;;;162 const char* s = NULL;
000002 2400 MOVS r4,#0
000004 302e ADDS r0,r0,#0x2e
000006 f7fffffe BL GUI_ARRAY_GethItem
;;;163 WM_HMEM h = _GethItem(pObj, Index);
;;;164 if (h) {
00000a b110 CBZ r0,|L19.18|
;;;165 s = (const char*) GUI_ALLOC_h2p(h);
00000c f7fffffe BL GUI_ALLOC_h2p
000010 4604 MOV r4,r0
|L19.18|
;;;166 }
;;;167 return s;
000012 4620 MOV r0,r4
;;;168 }
000014 bd10 POP {r4,pc}
;;;169
ENDP
AREA ||i._Paint||, CODE, READONLY, ALIGN=2
_Paint PROC
;;;211 */
;;;212 static void _Paint(DROPDOWN_Handle hObj) {
000000 e92d47fc PUSH {r2-r10,lr}
;;;213 int Border;
;;;214 GUI_RECT r;
;;;215 const char* s;
;;;216 int InnerSize, ColorIndex;
;;;217 DROPDOWN_Obj* pObj;
;;;218 int TextBorderSize;
;;;219 /* Do some initial calculations */
;;;220 pObj = DROPDOWN_H2P(hObj);
000004 f7fffffe BL GUI_ALLOC_h2p
000008 4605 MOV r5,r0
;;;221 Border = pObj->Widget.pEffect->EffectSize;
00000a 6a00 LDR r0,[r0,#0x20]
;;;222 TextBorderSize = pObj->Props.TextBorderSize;
00000c f9b5605c LDRSH r6,[r5,#0x5c]
;;;223 GUI_SetFont(pObj->Props.pFont);
000010 f8d09014 LDR r9,[r0,#0x14]
000014 6c28 LDR r0,[r5,#0x40]
000016 f7fffffe BL GUI_SetFont
;;;224 ColorIndex = (pObj->Widget.State & WIDGET_STATE_FOCUS) ? 2 : 1;
00001a 8ce8 LDRH r0,[r5,#0x26]
00001c 2702 MOVS r7,#2
00001e 07c0 LSLS r0,r0,#31
000020 d100 BNE |L20.36|
000022 2701 MOVS r7,#1
|L20.36|
;;;225 s = _GetpItem(pObj, pObj->Sel);
000024 f9b51028 LDRSH r1,[r5,#0x28]
000028 4628 MOV r0,r5
00002a f7fffffe BL _GetpItem
00002e 4680 MOV r8,r0
;;;226 WM_GetClientRect(&r);
000030 4668 MOV r0,sp
000032 f7fffffe BL WM_GetClientRect
;;;227 GUI__ReduceRect(&r, &r, Border);
000036 464a MOV r2,r9
000038 4669 MOV r1,sp
00003a 4668 MOV r0,sp
00003c f7fffffe BL GUI__ReduceRect
;;;228 InnerSize = r.y1 - r.y0 + 1;
000040 f8bd0006 LDRH r0,[sp,#6]
000044 f8bd1002 LDRH r1,[sp,#2]
000048 1a44 SUBS r4,r0,r1
00004a 1c64 ADDS r4,r4,#1
;;;229 /* Draw the 3D effect (if configured) */
;;;230 WIDGET__EFFECT_DrawDown(&pObj->Widget);
00004c 4628 MOV r0,r5
00004e f7fffffe BL WIDGET__EFFECT_DrawDown
;;;231 /* Draw the outer text frames */
;;;232 r.x1 -= InnerSize; /* Spare square area to the right */
000052 f8bd0004 LDRH r0,[sp,#4]
;;;233 LCD_SetColor(pObj->Props.aBackColor[ColorIndex]);
000056 eb050787 ADD r7,r5,r7,LSL #2
00005a 1b00 SUBS r0,r0,r4 ;232
00005c f8ad0004 STRH r0,[sp,#4] ;232
000060 6c78 LDR r0,[r7,#0x44]
000062 f7fffffe BL LCD_SetColor
;;;234 /* Draw the text */
;;;235 LCD_SetBkColor(pObj->Props.aBackColor[ColorIndex]);
000066 6c78 LDR r0,[r7,#0x44]
000068 f7fffffe BL LCD_SetBkColor
;;;236 GUI_FillRectEx(&r);
00006c 4668 MOV r0,sp
00006e f7fffffe BL GUI_FillRectEx
;;;237 r.x0 += TextBorderSize;
000072 f8bd0000 LDRH r0,[sp,#0]
000076 4430 ADD r0,r0,r6
000078 f8ad0000 STRH r0,[sp,#0]
;;;238 r.x1 -= TextBorderSize;
00007c f8bd0004 LDRH r0,[sp,#4]
000080 1b80 SUBS r0,r0,r6
000082 f8ad0004 STRH r0,[sp,#4]
;;;239 LCD_SetColor (pObj->Props.aTextColor[ColorIndex]);
000086 6d38 LDR r0,[r7,#0x50]
000088 f7fffffe BL LCD_SetColor
;;;240 GUI_DispStringInRect(s, &r, pObj->Props.Align);/**/
00008c f9b5205e LDRSH r2,[r5,#0x5e]
000090 4669 MOV r1,sp
000092 4640 MOV r0,r8
000094 f7fffffe BL GUI_DispStringInRect
;;;241 /* Draw arrow */
;;;242 WM_GetClientRect(&r);
000098 4668 MOV r0,sp
00009a f7fffffe BL WM_GetClientRect
;;;243 GUI__ReduceRect(&r, &r, Border);
00009e 464a MOV r2,r9
0000a0 4669 MOV r1,sp
0000a2 4668 MOV r0,sp
0000a4 f7fffffe BL GUI__ReduceRect
;;;244 r.x0 = r.x1 + 1 - InnerSize;
0000a8 f8bd0004 LDRH r0,[sp,#4]
0000ac 1b00 SUBS r0,r0,r4
0000ae 1c40 ADDS r0,r0,#1
0000b0 f8ad0000 STRH r0,[sp,#0]
;;;245 LCD_SetColor(0xc0c0c0);
0000b4 4815 LDR r0,|L20.268|
0000b6 f7fffffe BL LCD_SetColor
;;;246 GUI_FillRectEx(&r);
0000ba 4668 MOV r0,sp
0000bc f7fffffe BL GUI_FillRectEx
;;;247 LCD_SetColor(GUI_BLACK);
0000c0 2000 MOVS r0,#0
0000c2 f7fffffe BL LCD_SetColor
;;;248 _DrawTriangleDown((r.x1 + r.x0) / 2, r.y0 + 5, (r.y1 - r.y0 - 8) / 2);
0000c6 f9bd0004 LDRSH r0,[sp,#4]
0000ca f9bd1000 LDRSH r1,[sp,#0]
0000ce 4408 ADD r0,r0,r1
0000d0 eb0070d0 ADD r0,r0,r0,LSR #31
0000d4 1046 ASRS r6,r0,#1
0000d6 f9bd0002 LDRSH r0,[sp,#2]
0000da f9bd1006 LDRSH r1,[sp,#6]
0000de 1d47 ADDS r7,r0,#5
0000e0 1a08 SUBS r0,r1,r0
0000e2 3808 SUBS r0,r0,#8
0000e4 eb0070d0 ADD r0,r0,r0,LSR #31
0000e8 1044 ASRS r4,r0,#1
0000ea e006 B |L20.250|
|L20.236|
0000ec 1932 ADDS r2,r6,r4
0000ee 1b31 SUBS r1,r6,r4
0000f0 4638 MOV r0,r7
0000f2 f7fffffe BL GUI_DrawHLine
0000f6 1e64 SUBS r4,r4,#1
0000f8 1c7f ADDS r7,r7,#1
|L20.250|
0000fa 2c00 CMP r4,#0
0000fc daf6 BGE |L20.236|
;;;249 WIDGET__EFFECT_DrawUpRect(&pObj->Widget, &r);
0000fe 4669 MOV r1,sp
000100 4628 MOV r0,r5
000102 f7fffffe BL WIDGET__EFFECT_DrawUpRect
;;;250 }
000106 e8bd87fc POP {r2-r10,pc}
;;;251
ENDP
00010a 0000 DCW 0x0000
|L20.268|
DCD 0x00c0c0c0
AREA ||i._Tolower||, CODE, READONLY, ALIGN=1
_Tolower PROC
;;;173 */
;;;174 static int _Tolower(int Key) {
000000 f1a00141 SUB r1,r0,#0x41
;;;175 if ((Key >= 0x41) && (Key <= 0x5a)) {
000004 2919 CMP r1,#0x19
000006 d800 BHI |L21.10|
;;;176 Key += 0x20;
000008 3020 ADDS r0,r0,#0x20
|L21.10|
;;;177 }
;;;178 return Key;
;;;179 }
00000a 4770 BX lr
;;;180
ENDP
AREA ||.data||, DATA, ALIGN=2
DROPDOWN__DefaultProps
DCD GUI_Font13_1
DCD 0x00ffffff
DCD 0x00808080
DCD 0x00ff0000
DCD 0x00000000
DCD 0x00ffffff
DCD 0x00ffffff
00001c 00020000 DCW 0x0002,0x0000
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -