📄 scrollbar.txt
字号:
000066 f04f33ff MOV r3,#0xffffffff
00006a 1a40 SUBS r0,r0,r1
00006c 1042 ASRS r2,r0,#1
00006e f9bd000c LDRSH r0,[sp,#0xc]
000072 9300 STR r3,[sp,#0]
000074 1981 ADDS r1,r0,r6
000076 462b MOV r3,r5
000078 4620 MOV r0,r4
00007a f7fffffe BL _DrawTriangle
;;;221 WIDGET__EFFECT_DrawUpRect(&pObj->Widget, &r);
00007e a903 ADD r1,sp,#0xc
000080 4620 MOV r0,r4
000082 f7fffffe BL WIDGET__EFFECT_DrawUpRect
;;;222 /*
;;;223 Draw the thumb area which is not covered by the thumb
;;;224 */
;;;225 LCD_SetColor(pObj->aBkColor[0]);
000086 6aa0 LDR r0,[r4,#0x28]
000088 f7fffffe BL LCD_SetColor
;;;226 r.x0 = Pos.x1_LeftArrow + 1;
00008c 9806 LDR r0,[sp,#0x18]
;;;227 r.x1 = Pos.x0_Thumb - 1;
;;;228 WIDGET__FillRectEx(&pObj->Widget, &r);
00008e a903 ADD r1,sp,#0xc
000090 1c40 ADDS r0,r0,#1 ;226
000092 f8ad000c STRH r0,[sp,#0xc] ;226
000096 9807 LDR r0,[sp,#0x1c] ;227
000098 1e40 SUBS r0,r0,#1 ;227
00009a f8ad0010 STRH r0,[sp,#0x10] ;227
00009e 4620 MOV r0,r4
0000a0 f7fffffe BL WIDGET__FillRectEx
;;;229 r = rClient;
0000a4 e9dd0101 LDRD r0,r1,[sp,#4]
;;;230 r.x0 = Pos.x1_Thumb + 1;
0000a8 e9cd0103 STRD r0,r1,[sp,#0xc]
0000ac 9808 LDR r0,[sp,#0x20]
;;;231 r.x1 = Pos.x0_RightArrow - 1;
;;;232 WIDGET__FillRectEx(&pObj->Widget, &r);
0000ae a903 ADD r1,sp,#0xc
0000b0 1c40 ADDS r0,r0,#1 ;230
0000b2 f8ad000c STRH r0,[sp,#0xc] ;230
0000b6 9809 LDR r0,[sp,#0x24] ;231
0000b8 1e40 SUBS r0,r0,#1 ;231
0000ba f8ad0010 STRH r0,[sp,#0x10] ;231
0000be 4620 MOV r0,r4
0000c0 f7fffffe BL WIDGET__FillRectEx
;;;233 /*
;;;234 Draw Thumb
;;;235 */
;;;236 r = rClient;
0000c4 e9dd0101 LDRD r0,r1,[sp,#4]
;;;237 r.x0 = Pos.x0_Thumb;
0000c8 e9cd0103 STRD r0,r1,[sp,#0xc]
0000cc 9807 LDR r0,[sp,#0x1c]
0000ce f8ad000c STRH r0,[sp,#0xc]
;;;238 r.x1 = Pos.x1_Thumb;
0000d2 9808 LDR r0,[sp,#0x20]
0000d4 f8ad0010 STRH r0,[sp,#0x10]
;;;239 LCD_SetColor(pObj->aColor[0]);
0000d8 6b20 LDR r0,[r4,#0x30]
0000da f7fffffe BL LCD_SetColor
;;;240 WIDGET__FillRectEx(&pObj->Widget, &r);
0000de a903 ADD r1,sp,#0xc
0000e0 4620 MOV r0,r4
0000e2 f7fffffe BL WIDGET__FillRectEx
;;;241 WIDGET__EFFECT_DrawUpRect(&pObj->Widget, &r);
0000e6 a903 ADD r1,sp,#0xc
0000e8 4620 MOV r0,r4
0000ea f7fffffe BL WIDGET__EFFECT_DrawUpRect
;;;242 /*
;;;243 Draw right Arrow
;;;244 */
;;;245 LCD_SetColor(pObj->aColor[0]);
0000ee 6b20 LDR r0,[r4,#0x30]
0000f0 f7fffffe BL LCD_SetColor
;;;246 r.x0 = Pos.x0_RightArrow;
0000f4 9809 LDR r0,[sp,#0x24]
0000f6 f8ad000c STRH r0,[sp,#0xc]
;;;247 r.x1 = Pos.x1_RightArrow;
0000fa 980a LDR r0,[sp,#0x28]
0000fc f8ad0010 STRH r0,[sp,#0x10]
;;;248 WIDGET__FillRectEx(&pObj->Widget, &r);
000100 a903 ADD r1,sp,#0xc
000102 4620 MOV r0,r4
000104 f7fffffe BL WIDGET__FillRectEx
;;;249 LCD_SetColor(pObj->aBkColor[1]);
000108 6ae0 LDR r0,[r4,#0x2c]
00010a f7fffffe BL LCD_SetColor
;;;250 _DrawTriangle(&pObj->Widget, r.x1 - ArrowOff, (r.y1 - r.y0) >> 1, ArrowSize, 1);
00010e f9bd0012 LDRSH r0,[sp,#0x12]
000112 f9bd100e LDRSH r1,[sp,#0xe]
000116 2301 MOVS r3,#1
000118 1a40 SUBS r0,r0,r1
00011a 1042 ASRS r2,r0,#1
00011c f9bd0010 LDRSH r0,[sp,#0x10]
000120 9300 STR r3,[sp,#0]
000122 1b81 SUBS r1,r0,r6
000124 462b MOV r3,r5
000126 4620 MOV r0,r4
000128 f7fffffe BL _DrawTriangle
;;;251 WIDGET__EFFECT_DrawUpRect(&pObj->Widget, &r);
00012c a903 ADD r1,sp,#0xc
00012e 4620 MOV r0,r4
000130 f7fffffe BL WIDGET__EFFECT_DrawUpRect
;;;252 /*
;;;253 Draw overlap area (if any ...)
;;;254 */
;;;255 if (Pos.x1_RightArrow != Pos.x1) {
000134 e9dd010a LDRD r0,r1,[sp,#0x28]
000138 4288 CMP r0,r1
00013a d00c BEQ |L13.342|
;;;256 r.x0 = Pos.x1_RightArrow + 1;
00013c 1c40 ADDS r0,r0,#1
00013e f8ad000c STRH r0,[sp,#0xc]
;;;257 r.x1 = Pos.x1;
000142 980b LDR r0,[sp,#0x2c]
000144 f8ad0010 STRH r0,[sp,#0x10]
;;;258 LCD_SetColor(pObj->aColor[0]);
000148 6b20 LDR r0,[r4,#0x30]
00014a f7fffffe BL LCD_SetColor
;;;259 WIDGET__FillRectEx(&pObj->Widget, &r);
00014e a903 ADD r1,sp,#0xc
000150 4620 MOV r0,r4
000152 f7fffffe BL WIDGET__FillRectEx
|L13.342|
;;;260 }
;;;261 }
000156 b00e ADD sp,sp,#0x38
000158 bd70 POP {r4-r6,pc}
;;;262
ENDP
AREA ||i._SCROLLBAR_Callback||, CODE, READONLY, ALIGN=1
_SCROLLBAR_Callback PROC
;;;389 */
;;;390 static void _SCROLLBAR_Callback (WM_MESSAGE *pMsg) {
000000 b570 PUSH {r4-r6,lr}
;;;391 SCROLLBAR_Handle hObj;
;;;392 SCROLLBAR_Obj* pObj;
;;;393 hObj = pMsg->hWin;
000002 f9b06004 LDRSH r6,[r0,#4]
000006 4605 MOV r5,r0 ;390
;;;394 pObj = SCROLLBAR_H2P(hObj);
000008 4630 MOV r0,r6
00000a f7fffffe BL GUI_ALLOC_h2p
00000e 4604 MOV r4,r0
;;;395 /* Let widget handle the standard messages */
;;;396 if (WIDGET_HandleActive(hObj, pMsg) == 0) {
000010 4629 MOV r1,r5
000012 4630 MOV r0,r6
000014 f7fffffe BL WIDGET_HandleActive
000018 2800 CMP r0,#0
00001a d054 BEQ |L14.198|
;;;397 return;
;;;398 }
;;;399 switch (pMsg->MsgId) {
00001c 6828 LDR r0,[r5,#0]
00001e 280f CMP r0,#0xf
000020 d032 BEQ |L14.136|
000022 dc13 BGT |L14.76|
000024 280b CMP r0,#0xb
000026 d02b BEQ |L14.128|
000028 280c CMP r0,#0xc
00002a d032 BEQ |L14.146|
00002c 280e CMP r0,#0xe
00002e d145 BNE |L14.188|
000030 68a9 LDR r1,[r5,#8]
000032 c903 LDM r1,{r0,r1}
000034 2900 CMP r1,#0
000036 dd41 BLE |L14.188|
000038 2810 CMP r0,#0x10
00003a d030 BEQ |L14.158|
00003c 2811 CMP r0,#0x11
00003e d02e BEQ |L14.158|
000040 2812 CMP r0,#0x12
000042 d001 BEQ |L14.72|
000044 2813 CMP r0,#0x13
000046 d139 BNE |L14.188|
|L14.72|
000048 2101 MOVS r1,#1
00004a e02a B |L14.162|
|L14.76|
00004c 2823 CMP r0,#0x23
00004e d02c BEQ |L14.170|
000050 2824 CMP r0,#0x24
000052 d133 BNE |L14.188|
000054 68a8 LDR r0,[r5,#8]
000056 6ba2 LDR r2,[r4,#0x38]
000058 6801 LDR r1,[r0,#0]
00005a 4291 CMP r1,r2
00005c d107 BNE |L14.110|
00005e 6c22 LDR r2,[r4,#0x40]
000060 6883 LDR r3,[r0,#8]
000062 429a CMP r2,r3
000064 d103 BNE |L14.110|
000066 6be2 LDR r2,[r4,#0x3c]
000068 6843 LDR r3,[r0,#4]
00006a 429a CMP r2,r3
00006c d026 BEQ |L14.188|
|L14.110|
00006e 63a1 STR r1,[r4,#0x38]
000070 6881 LDR r1,[r0,#8]
000072 6421 STR r1,[r4,#0x40]
000074 6840 LDR r0,[r0,#4]
000076 63e0 STR r0,[r4,#0x3c]
000078 4630 MOV r0,r6
00007a f7fffffe BL WM_InvalidateWindow
00007e e01d B |L14.188|
|L14.128|
;;;400 case WM_DELETE:
;;;401 SCROLLBAR__InvalidatePartner(hObj);
000080 4630 MOV r0,r6
000082 f7fffffe BL SCROLLBAR__InvalidatePartner
;;;402 break;
000086 e019 B |L14.188|
|L14.136|
;;;403 case WM_PAINT:
;;;404 GUI_DEBUG_LOG("SCROLLBAR: _Callback(WM_PAINT)\n");
;;;405 _Paint(pObj);
000088 4620 MOV r0,r4
00008a e8bd4070 POP {r4-r6,lr}
00008e f7ffbffe B.W _Paint
|L14.146|
;;;406 return;
;;;407 case WM_TOUCH:
;;;408 _OnTouch(hObj, pObj, pMsg);
000092 462a MOV r2,r5
000094 4621 MOV r1,r4
000096 4630 MOV r0,r6
000098 f7fffffe BL _OnTouch
;;;409 break;
00009c e00e B |L14.188|
|L14.158|
00009e f04f31ff MOV r1,#0xffffffff
|L14.162|
0000a2 4630 MOV r0,r6
0000a4 f7fffffe BL SCROLLBAR_AddValue
0000a8 e008 B |L14.188|
|L14.170|
;;;410 case WM_KEY:
;;;411 _OnKey(hObj, pMsg);
;;;412 break;
;;;413 case WM_SET_SCROLL_STATE:
;;;414 _OnSetScrollState(hObj, pObj, (const WM_SCROLL_STATE*)pMsg->Data.p);
;;;415 break;
;;;416 case WM_GET_SCROLL_STATE:
;;;417 ((WM_SCROLL_STATE*)pMsg->Data.p)->NumItems = pObj->NumItems;
0000aa 68a9 LDR r1,[r5,#8]
0000ac 6ba0 LDR r0,[r4,#0x38]
;;;418 ((WM_SCROLL_STATE*)pMsg->Data.p)->PageSize = pObj->PageSize;
0000ae 6008 STR r0,[r1,#0]
0000b0 68a9 LDR r1,[r5,#8]
0000b2 6c20 LDR r0,[r4,#0x40]
;;;419 ((WM_SCROLL_STATE*)pMsg->Data.p)->v = pObj->v;
0000b4 6088 STR r0,[r1,#8]
0000b6 68a9 LDR r1,[r5,#8]
0000b8 6be0 LDR r0,[r4,#0x3c]
0000ba 6048 STR r0,[r1,#4]
|L14.188|
;;;420 break;
;;;421 }
;;;422 WM_DefaultProc(pMsg);
0000bc 4628 MOV r0,r5
0000be e8bd4070 POP {r4-r6,lr}
0000c2 f7ffbffe B.W WM_DefaultProc
|L14.198|
;;;423 }
0000c6 bd70 POP {r4-r6,pc}
;;;424
ENDP
AREA ||.data||, DATA, ALIGN=2
SCROLLBAR__DefaultWidth
000000 000b DCW 0x000b
000002 0000 DCB 0x00,0x00
SCROLLBAR__aDefaultBkColor
DCD 0x00808080
DCD 0x00000000
SCROLLBAR__aDefaultColor
DCD 0x00c0c0c0
DCD 0x00000000
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -