📄 radio.txt
字号:
000116 4650 MOV r0,r10
000118 f7fffffe BL GUI_DrawBitmap
|L8.284|
;;;182 RADIO_BORDER + ((pBmRadio->YSize - pBmCheck->YSize) / 2) + y);
;;;183 }
;;;184 /* Draw text if available */
;;;185 pText = (const char*)GUI_ARRAY_GetpItem(&pObj->TextArray, i);
00011c 4629 MOV r1,r5
00011e f1040034 ADD r0,r4,#0x34
000122 f7fffffe BL GUI_ARRAY_GetpItem
000126 0007 MOVS r7,r0
;;;186 if (pText) {
000128 d037 BEQ |L8.410|
;;;187 if (*pText) {
00012a 7838 LDRB r0,[r7,#0]
00012c b3a8 CBZ r0,|L8.410|
;;;188 r = Rect;
00012e e9dd0105 LDRD r0,r1,[sp,#0x14]
;;;189 r.x1 = r.x0 + GUI_GetStringDistX(pText) - 2;
000132 e9cd0103 STRD r0,r1,[sp,#0xc]
000136 4638 MOV r0,r7
000138 f7fffffe BL GUI_GetStringDistX
00013c f8bd100c LDRH r1,[sp,#0xc]
000140 1e80 SUBS r0,r0,#2
000142 4408 ADD r0,r0,r1
000144 f8ad0010 STRH r0,[sp,#0x10]
;;;190 GUI_MoveRect(&r, 0, y);
000148 464a MOV r2,r9
00014a 2100 MOVS r1,#0
00014c a803 ADD r0,sp,#0xc
00014e f7fffffe BL GUI_MoveRect
;;;191 GUI_DispStringAt(pText, r.x0, r.y0 - SpaceAbove);
000152 f9bd000e LDRSH r0,[sp,#0xe]
000156 9900 LDR r1,[sp,#0]
000158 1a42 SUBS r2,r0,r1
00015a f9bd100c LDRSH r1,[sp,#0xc]
00015e 4638 MOV r0,r7
000160 f7fffffe BL GUI_DispStringAt
;;;192 /* Calculate focus rect */
;;;193 if (HasFocus && (pObj->Sel == i)) {
000164 f1bb0f00 CMP r11,#0
000168 d017 BEQ |L8.410|
00016a f9b40038 LDRSH r0,[r4,#0x38]
00016e 42a8 CMP r0,r5
000170 d113 BNE |L8.410|
000172 f8bd000e LDRH r0,[sp,#0xe]
000176 1b80 SUBS r0,r0,r6
000178 f8ad0006 STRH r0,[sp,#6]
00017c f8bd0012 LDRH r0,[sp,#0x12]
000180 4430 ADD r0,r0,r6
000182 f8ad000a STRH r0,[sp,#0xa]
000186 f8bd000c LDRH r0,[sp,#0xc]
00018a 1b80 SUBS r0,r0,r6
00018c f8ad0004 STRH r0,[sp,#4]
000190 f8bd0010 LDRH r0,[sp,#0x10]
000194 4430 ADD r0,r0,r6
000196 f8ad0008 STRH r0,[sp,#8]
|L8.410|
00019a 1c6d ADDS r5,r5,#1 ;175
|L8.412|
00019c 8fe0 LDRH r0,[r4,#0x3e] ;175
00019e 42a8 CMP r0,r5 ;175
0001a0 dc98 BGT |L8.212|
;;;194 _ResizeRect(&rFocus, &r, FocusBorder);
;;;195 }
;;;196 }
;;;197 }
;;;198 }
;;;199
;;;200 /* Draw the focus rect */
;;;201 if (HasFocus) {
0001a2 f1bb0f00 CMP r11,#0
0001a6 d007 BEQ |L8.440|
;;;202 LCD_SetColor(GUI_BLACK);
0001a8 2000 MOVS r0,#0
0001aa f7fffffe BL LCD_SetColor
;;;203 WIDGET__DrawFocusRect(&pObj->Widget, &rFocus, 0);
0001ae 2200 MOVS r2,#0
0001b0 a901 ADD r1,sp,#4
0001b2 4620 MOV r0,r4
0001b4 f7fffffe BL WIDGET__DrawFocusRect
|L8.440|
;;;204 }
;;;205 }
0001b8 b009 ADD sp,sp,#0x24
0001ba e8bd8ff0 POP {r4-r11,pc}
;;;206
ENDP
0001be 0000 DCW 0x0000
|L8.448|
DCD 0x00c0c0c0
AREA ||i._RADIO_Callback||, CODE, READONLY, ALIGN=1
_RADIO_Callback PROC
;;;268 */
;;;269 static void _RADIO_Callback (WM_MESSAGE* pMsg) {
000000 e92d41f0 PUSH {r4-r8,lr}
;;;270 RADIO_Handle hObj;
;;;271 RADIO_Obj* pObj;
;;;272 hObj = pMsg->hWin;
000004 f9b06004 LDRSH r6,[r0,#4]
000008 4605 MOV r5,r0 ;269
;;;273 pObj = RADIO_H2P(hObj);
00000a 4630 MOV r0,r6
00000c f7fffffe BL GUI_ALLOC_h2p
000010 4604 MOV r4,r0
;;;274 /* Let widget handle the standard messages */
;;;275 if (WIDGET_HandleActive(hObj, pMsg) == 0) {
000012 4629 MOV r1,r5
000014 4630 MOV r0,r6
000016 f7fffffe BL WIDGET_HandleActive
00001a 2800 CMP r0,#0
00001c d028 BEQ |L9.112|
;;;276 return;
;;;277 }
;;;278 switch (pMsg->MsgId) {
00001e 6829 LDR r1,[r5,#0]
000020 290e CMP r1,#0xe
000022 d03b BEQ |L9.156|
000024 dc1d BGT |L9.98|
000026 290b CMP r1,#0xb
000028 d04d BEQ |L9.198|
00002a 290c CMP r1,#0xc
00002c d14f BNE |L9.206|
00002e 68a8 LDR r0,[r5,#8]
000030 2700 MOVS r7,#0
000032 b340 CBZ r0,|L9.134|
000034 7a01 LDRB r1,[r0,#8]
000036 b319 CBZ r1,|L9.128|
000038 6840 LDR r0,[r0,#4]
00003a 8f62 LDRH r2,[r4,#0x3a]
00003c fb90f1f2 SDIV r1,r0,r2
000040 fb010012 MLS r0,r1,r2,r0
000044 8fa2 LDRH r2,[r4,#0x3c]
000046 4282 CMP r2,r0
000048 db02 BLT |L9.80|
00004a 4630 MOV r0,r6
00004c f7fffffe BL RADIO_SetValue
|L9.80|
000050 4630 MOV r0,r6
000052 f7fffffe BL WM_IsFocussable
000056 b110 CBZ r0,|L9.94|
000058 4630 MOV r0,r6
00005a f7fffffe BL WM_SetFocus
|L9.94|
00005e 2101 MOVS r1,#1
000060 e012 B |L9.136|
|L9.98|
000062 290f CMP r1,#0xf
000064 d006 BEQ |L9.116|
000066 292b CMP r1,#0x2b
000068 d131 BNE |L9.206|
;;;279 case WM_PAINT:
;;;280 GUI_DEBUG_LOG("RADIO: _Callback(WM_PAINT)\n");
;;;281 _OnPaint(hObj, pObj);
;;;282 return;
;;;283 case WM_GET_RADIOGROUP:
;;;284 pMsg->Data.v = pObj->GroupId;
00006a f8940040 LDRB r0,[r4,#0x40]
;;;285 return;
00006e 60a8 STR r0,[r5,#8]
|L9.112|
;;;286 case WM_TOUCH:
;;;287 _OnTouch(hObj, pObj, pMsg);
;;;288 break;
;;;289 case WM_KEY:
;;;290 _OnKey(hObj, pMsg);
;;;291 break;
;;;292 case WM_DELETE:
;;;293 GUI_ARRAY_Delete(&pObj->TextArray);
;;;294 break;
;;;295 }
;;;296 WM_DefaultProc(pMsg);
;;;297 }
000070 e8bd81f0 POP {r4-r8,pc}
|L9.116|
000074 4621 MOV r1,r4 ;281
000076 4630 MOV r0,r6 ;281
000078 e8bd41f0 POP {r4-r8,lr} ;281
00007c f7ffbffe B.W _OnPaint
|L9.128|
000080 2701 MOVS r7,#1 ;281
000082 2102 MOVS r1,#2 ;281
000084 e000 B |L9.136|
|L9.134|
000086 2103 MOVS r1,#3 ;281
|L9.136|
000088 4630 MOV r0,r6 ;281
00008a f7fffffe BL WM_NotifyParent
00008e 2f01 CMP r7,#1 ;281
000090 d11d BNE |L9.206|
000092 f9b40024 LDRSH r0,[r4,#0x24] ;281
000096 f7fffffe BL GUI_StoreKey
00009a e018 B |L9.206|
|L9.156|
00009c 68a8 LDR r0,[r5,#8] ;281
00009e 6841 LDR r1,[r0,#4] ;281
0000a0 2900 CMP r1,#0 ;281
0000a2 dd14 BLE |L9.206|
0000a4 6800 LDR r0,[r0,#0] ;281
0000a6 2810 CMP r0,#0x10 ;281
0000a8 d007 BEQ |L9.186|
0000aa 2811 CMP r0,#0x11 ;281
0000ac d005 BEQ |L9.186|
0000ae 2812 CMP r0,#0x12 ;281
0000b0 d001 BEQ |L9.182|
0000b2 2813 CMP r0,#0x13 ;281
0000b4 d10b BNE |L9.206|
|L9.182|
0000b6 2101 MOVS r1,#1 ;281
0000b8 e001 B |L9.190|
|L9.186|
0000ba f04f31ff MOV r1,#0xffffffff ;281
|L9.190|
0000be 4630 MOV r0,r6 ;281
0000c0 f7fffffe BL RADIO_AddValue
0000c4 e003 B |L9.206|
|L9.198|
0000c6 f1040034 ADD r0,r4,#0x34 ;293
0000ca f7fffffe BL GUI_ARRAY_Delete
|L9.206|
0000ce 4628 MOV r0,r5 ;296
0000d0 e8bd41f0 POP {r4-r8,lr} ;296
0000d4 f7ffbffe B.W WM_DefaultProc
;;;298
ENDP
AREA ||.data||, DATA, ALIGN=2
RADIO__DefaultTextColor
DCD 0x00000000
RADIO__pDefaultFont
DCD GUI_Font13_1
RADIO__pDefaultImageCheck
DCD RADIO__bmCheck
RADIO__pfHandleSetValue
DCD 0x00000000
RADIO__apDefaultImage
DCD RADIO__abmRadio
DCD RADIO__abmRadio+0x14
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -