📄 widget.txt
字号:
WIDGET_SetDefaultEffect PROC
;;;452 */
;;;453 const WIDGET_EFFECT* WIDGET_SetDefaultEffect(const WIDGET_EFFECT* pEffect) {
000000 4902 LDR r1,|L6.12|
000002 4602 MOV r2,r0
;;;454 const WIDGET_EFFECT* r;
;;;455 r = _pEffectDefault;
;;;456 _pEffectDefault = pEffect;
000004 6808 LDR r0,[r1,#0] ; _pEffectDefault
;;;457 return r;
000006 600a STR r2,[r1,#0] ; _pEffectDefault
;;;458 }
000008 4770 BX lr
;;;459
ENDP
00000a 0000 DCW 0x0000
|L6.12|
DCD ||.data||
AREA ||i.WIDGET_SetState||, CODE, READONLY, ALIGN=1
WIDGET_SetState PROC
;;;200 */
;;;201 void WIDGET_SetState(WM_HWIN hObj, int State) {
000000 b570 PUSH {r4-r6,lr}
000002 4605 MOV r5,r0
000004 460c MOV r4,r1
;;;202 WIDGET* pWidget;
;;;203 WM_LOCK();
;;;204 pWidget = WIDGET_H2P(hObj);
000006 f7fffffe BL GUI_ALLOC_h2p
;;;205 if (State != pWidget->State) {
00000a 8cc1 LDRH r1,[r0,#0x26]
00000c 42a1 CMP r1,r4
00000e d005 BEQ |L7.28|
;;;206 pWidget->State = State;
000010 84c4 STRH r4,[r0,#0x26]
;;;207 WM_Invalidate(hObj);
000012 4628 MOV r0,r5
000014 e8bd4070 POP {r4-r6,lr}
000018 f7ffbffe B.W WM_InvalidateWindow
|L7.28|
;;;208 }
;;;209 WM_UNLOCK();
;;;210 }
00001c bd70 POP {r4-r6,pc}
;;;211
ENDP
AREA ||i.WIDGET__DrawFocusRect||, CODE, READONLY, ALIGN=1
WIDGET__DrawFocusRect PROC
;;;366 */
;;;367 void WIDGET__DrawFocusRect(WIDGET* pWidget, const GUI_RECT* pRect, int Dist) {
000000 b51c PUSH {r2-r4,lr}
000002 460b MOV r3,r1
;;;368 GUI_RECT Rect;
;;;369 if (pWidget->State & WIDGET_STATE_VERTICAL) {
000004 8cc1 LDRH r1,[r0,#0x26]
000006 4614 MOV r4,r2 ;367
000008 0709 LSLS r1,r1,#28
00000a d504 BPL |L8.22|
;;;370 WIDGET__RotateRect90(pWidget, &Rect, pRect);
00000c 461a MOV r2,r3
00000e 4669 MOV r1,sp
000010 f7fffffe BL WIDGET__RotateRect90
;;;371 pRect = &Rect;
000014 466b MOV r3,sp
|L8.22|
;;;372 }
;;;373 GUI_DrawFocusRect(pRect, Dist);
000016 4621 MOV r1,r4
000018 4618 MOV r0,r3
00001a f7fffffe BL GUI_DrawFocusRect
;;;374 }
00001e bd1c POP {r2-r4,pc}
;;;375
ENDP
AREA ||i.WIDGET__DrawVLine||, CODE, READONLY, ALIGN=1
WIDGET__DrawVLine PROC
;;;379 */
;;;380 void WIDGET__DrawVLine(WIDGET* pWidget, int x, int y0, int y1) {
000000 b51f PUSH {r0-r4,lr}
000002 4604 MOV r4,r0
000004 4608 MOV r0,r1
000006 4611 MOV r1,r2
000008 461a MOV r2,r3
;;;381 if (pWidget->State & WIDGET_STATE_VERTICAL) {
00000a 8ce3 LDRH r3,[r4,#0x26]
00000c 071b LSLS r3,r3,#28
00000e d515 BPL |L9.60|
;;;382 GUI_RECT r0, r1;
;;;383 r0.x0 = x;
000010 f8ad0008 STRH r0,[sp,#8]
;;;384 r0.x1 = x;
000014 f8ad000c STRH r0,[sp,#0xc]
;;;385 r0.y0 = y0;
000018 f8ad100a STRH r1,[sp,#0xa]
;;;386 r0.y1 = y1;
00001c f8ad200e STRH r2,[sp,#0xe]
;;;387 WIDGET__RotateRect90(pWidget, &r1, &r0);
000020 aa02 ADD r2,sp,#8
000022 4669 MOV r1,sp
000024 4620 MOV r0,r4
000026 f7fffffe BL WIDGET__RotateRect90
;;;388 GUI_DrawHLine(r1.y0, r1.x0, r1.x1);
00002a f9bd2004 LDRSH r2,[sp,#4]
00002e f9bd1000 LDRSH r1,[sp,#0]
000032 f9bd0002 LDRSH r0,[sp,#2]
000036 f7fffffe BL GUI_DrawHLine
;;;389 } else {
;;;390 GUI_DrawVLine(x, y0, y1);
;;;391 }
;;;392 }
00003a bd1f POP {r0-r4,pc}
|L9.60|
00003c b004 ADD sp,sp,#0x10 ;390
00003e e8bd4010 POP {r4,lr} ;390
000042 f7ffbffe B.W GUI_DrawVLine
;;;393
ENDP
AREA ||i.WIDGET__EFFECT_DrawDown||, CODE, READONLY, ALIGN=1
WIDGET__EFFECT_DrawDown PROC
;;;429 */
;;;430 void WIDGET__EFFECT_DrawDown(WIDGET* pWidget) {
000000 2100 MOVS r1,#0
;;;431 WIDGET__EFFECT_DrawDownRect(pWidget, NULL);
000002 f7ffbffe B.W WIDGET__EFFECT_DrawDownRect
;;;432 }
;;;433
ENDP
AREA ||i.WIDGET__EFFECT_DrawDownRect||, CODE, READONLY, ALIGN=1
WIDGET__EFFECT_DrawDownRect PROC
;;;410 */
;;;411 void WIDGET__EFFECT_DrawDownRect(WIDGET* pWidget, GUI_RECT* pRect) {
000000 b57c PUSH {r2-r6,lr}
000002 4605 MOV r5,r0
000004 000c MOVS r4,r1
;;;412 GUI_RECT Rect;
;;;413 if (pRect == NULL) {
000006 d103 BNE |L11.16|
;;;414 WM_GetClientRect(&Rect);
000008 4668 MOV r0,sp
00000a f7fffffe BL WM_GetClientRect
;;;415 pRect = &Rect;
00000e 466c MOV r4,sp
|L11.16|
;;;416 }
;;;417 if (pWidget->State & WIDGET_STATE_VERTICAL) {
000010 8ce8 LDRH r0,[r5,#0x26]
000012 0700 LSLS r0,r0,#28
000014 d505 BPL |L11.34|
;;;418 WIDGET__RotateRect90(pWidget, &Rect, pRect);
000016 4622 MOV r2,r4
000018 4669 MOV r1,sp
00001a 4628 MOV r0,r5
00001c f7fffffe BL WIDGET__RotateRect90
;;;419 pRect = &Rect;
000020 466c MOV r4,sp
|L11.34|
;;;420 }
;;;421 if (_EffectRequiresRedraw(pWidget, pRect)) {
000022 4621 MOV r1,r4
000024 4628 MOV r0,r5
000026 f7fffffe BL _EffectRequiresRedraw
00002a 2800 CMP r0,#0
00002c d003 BEQ |L11.54|
;;;422 pWidget->pEffect->pfDrawDownRect(pRect);
00002e 6a28 LDR r0,[r5,#0x20]
000030 68c1 LDR r1,[r0,#0xc]
000032 4620 MOV r0,r4
000034 4788 BLX r1
|L11.54|
;;;423 }
;;;424 }
000036 bd7c POP {r2-r6,pc}
;;;425
ENDP
AREA ||i.WIDGET__EFFECT_DrawUpRect||, CODE, READONLY, ALIGN=1
WIDGET__EFFECT_DrawUpRect PROC
;;;437 */
;;;438 void WIDGET__EFFECT_DrawUpRect(WIDGET* pWidget, GUI_RECT* pRect) {
000000 b57c PUSH {r2-r6,lr}
000002 4605 MOV r5,r0
;;;439 GUI_RECT Rect;
;;;440 if (pWidget->State & WIDGET_STATE_VERTICAL) {
000004 8cc0 LDRH r0,[r0,#0x26]
000006 460c MOV r4,r1 ;438
000008 0700 LSLS r0,r0,#28
00000a d505 BPL |L12.24|
;;;441 WIDGET__RotateRect90(pWidget, &Rect, pRect);
00000c 4622 MOV r2,r4
00000e 4669 MOV r1,sp
000010 4628 MOV r0,r5
000012 f7fffffe BL WIDGET__RotateRect90
;;;442 pRect = &Rect;
000016 466c MOV r4,sp
|L12.24|
;;;443 }
;;;444 if (_EffectRequiresRedraw(pWidget, pRect)) {
000018 4621 MOV r1,r4
00001a 4628 MOV r0,r5
00001c f7fffffe BL _EffectRequiresRedraw
000020 2800 CMP r0,#0
000022 d003 BEQ |L12.44|
;;;445 pWidget->pEffect->pfDrawUpRect(pRect);
000024 6a28 LDR r0,[r5,#0x20]
000026 6881 LDR r1,[r0,#8]
000028 4620 MOV r0,r4
00002a 4788 BLX r1
|L12.44|
;;;446 }
;;;447 }
00002c bd7c POP {r2-r6,pc}
;;;448
ENDP
AREA ||i.WIDGET__FillRectEx||, CODE, READONLY, ALIGN=1
WIDGET__FillRectEx PROC
;;;397 */
;;;398 void WIDGET__FillRectEx(WIDGET* pWidget, const GUI_RECT* pRect) {
000000 b51c PUSH {r2-r4,lr}
000002 4603 MOV r3,r0
000004 4608 MOV r0,r1
;;;399 if (pWidget->State & WIDGET_STATE_VERTICAL) {
000006 8cd9 LDRH r1,[r3,#0x26]
000008 0709 LSLS r1,r1,#28
00000a d505 BPL |L13.24|
;;;400 GUI_RECT r;
;;;401 WIDGET__RotateRect90(pWidget, &r, pRect);
00000c 4602 MOV r2,r0
00000e 4669 MOV r1,sp
000010 4618 MOV r0,r3
000012 f7fffffe BL WIDGET__RotateRect90
;;;402 pRect = &r;
000016 4668 MOV r0,sp
|L13.24|
;;;403 }
;;;404 GUI_FillRectEx(pRect);
000018 e8bd401c POP {r2-r4,lr}
00001c f7ffbffe B.W GUI_FillRectEx
;;;405 }
;;;406
ENDP
AREA ||i.WIDGET__GetBkColor||, CODE, READONLY, ALIGN=1
WIDGET__GetBkColor PROC
;;;136 */
;;;137 GUI_COLOR WIDGET__GetBkColor(WM_HWIN hObj) {
000000 b510 PUSH {r4,lr}
;;;138 GUI_COLOR BkColor = WM_GetBkColor(WM_GetParent(hObj));
000002 f7fffffe BL WM_GetParent
000006 f7fffffe BL WM_GetBkColor
;;;139 if (BkColor == GUI_INVALID_COLOR) {
00000a f06f4170 MVN r1,#0xf0000000
00000e 4288 CMP r0,r1
000010 d103 BNE |L14.26|
;;;140 BkColor = DIALOG_GetBkColor();
000012 e8bd4010 POP {r4,lr}
000016 f7ffbffe B.W DIALOG_GetBkColor
|L14.26|
;;;141 }
;;;142 return BkColor;
;;;143 }
00001a bd10 POP {r4,pc}
;;;144
ENDP
AREA ||i.WIDGET__GetClientRect||, CODE, READONLY, ALIGN=1
WIDGET__GetClientRect PROC
;;;119 */
;;;120 void WIDGET__GetClientRect(WIDGET* pWidget, GUI_RECT* pRect) {
000000 b51c PUSH {r2-r4,lr}
;;;121 if (pWidget->State & WIDGET_STATE_VERTICAL) {
000002 8cc0 LDRH r0,[r0,#0x26]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -