📄 scrollbar.txt
字号:
; generated by ARM C/C++ Compiler with , RVCT4.0 [Build 524] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\scrollbar.o --depend=.\Obj\scrollbar.d --device=DARMSTM --apcs=interwork -O3 -I..\..\include -I..\..\..\FWLib\library\inc -I..\..\..\USBLib\library\inc -I..\..\Config -I..\..\GUI\Core -I..\..\GUI\Font -I..\..\GUI\ConvertColor -I..\..\GUI\AntiAlias -I..\..\GUI\ConvertMono -I..\..\GUI\JPEG -I..\..\GUI\MemDev -I..\..\GUI\MultiLayer -I..\..\GUI\Widget -I..\..\GUI\WM -IC:\Keil\ARM\INC\ST\STM32F10x ..\..\GUI\Widget\SCROLLBAR.c]
THUMB
AREA ||i.SCROLLBAR_AddValue||, CODE, READONLY, ALIGN=1
SCROLLBAR_AddValue PROC
;;;521 */
;;;522 void SCROLLBAR_AddValue(SCROLLBAR_Handle hObj, int Add) {
000000 b570 PUSH {r4-r6,lr}
000002 0004 MOVS r4,r0
000004 460d MOV r5,r1
;;;523 SCROLLBAR_Obj* pObj;
;;;524 if (hObj) {
000006 d009 BEQ |L1.28|
;;;525 WM_LOCK();
;;;526 pObj = SCROLLBAR_H2P(hObj);
000008 4620 MOV r0,r4
00000a f7fffffe BL GUI_ALLOC_h2p
;;;527 SCROLLBAR_SetValue(hObj, pObj->v + Add);
00000e 6bc0 LDR r0,[r0,#0x3c]
000010 1941 ADDS r1,r0,r5
000012 4620 MOV r0,r4
000014 e8bd4070 POP {r4-r6,lr}
000018 f7ffbffe B.W SCROLLBAR_SetValue
|L1.28|
;;;528 WM_UNLOCK();
;;;529 }
;;;530 }
00001c bd70 POP {r4-r6,pc}
;;;531
ENDP
AREA ||i.SCROLLBAR_CreateEx||, CODE, READONLY, ALIGN=2
SCROLLBAR_CreateEx PROC
;;;438 */
;;;439 SCROLLBAR_Handle SCROLLBAR_CreateEx(int x0, int y0, int xsize, int ysize, WM_HWIN hParent,
000000 e92d5fff PUSH {r0-r12,lr}
;;;440 int WinFlags, int ExFlags, int Id)
;;;441 {
;;;442 SCROLLBAR_Handle hObj;
;;;443 WM_LOCK();
;;;444 /* Set defaults if necessary */
;;;445 if ((xsize == 0) && (ysize == 0)) {
000004 e9ddba0e LDRD r11,r10,[sp,#0x38]
000008 e9dd8910 LDRD r8,r9,[sp,#0x40]
00000c 4606 MOV r6,r0 ;441
00000e 460f MOV r7,r1 ;441
000010 4614 MOV r4,r2 ;441
000012 461d MOV r5,r3 ;441
000014 ea520003 ORRS r0,r2,r3
000018 d120 BNE |L2.92|
;;;446 GUI_RECT Rect;
;;;447 WM_GetInsideRectEx(hParent, &Rect);
00001a a902 ADD r1,sp,#8
00001c 4658 MOV r0,r11
00001e f7fffffe BL WM_GetInsideRectEx
;;;448 if (ExFlags & SCROLLBAR_CF_VERTICAL) {
;;;449 xsize = SCROLLBAR__DefaultWidth;
000022 4830 LDR r0,|L2.228|
000024 ea5f7108 LSLS r1,r8,#28 ;448
000028 d50c BPL |L2.68|
00002a f9b04000 LDRSH r4,[r0,#0] ; SCROLLBAR__DefaultWidth
;;;450 x0 = Rect.x1 + 1 - xsize;
00002e f9bd000c LDRSH r0,[sp,#0xc]
;;;451 y0 = Rect.y0;
000032 f9bd700a LDRSH r7,[sp,#0xa]
000036 1b06 SUBS r6,r0,r4 ;450
;;;452 ysize = Rect.y1 - Rect.y0 + 1;
000038 f9bd000e LDRSH r0,[sp,#0xe]
00003c 1c76 ADDS r6,r6,#1 ;450
00003e 1bc5 SUBS r5,r0,r7
000040 1c6d ADDS r5,r5,#1
000042 e00b B |L2.92|
|L2.68|
;;;453 } else {
;;;454 ysize = SCROLLBAR__DefaultWidth;
000044 f9b05000 LDRSH r5,[r0,#0] ; SCROLLBAR__DefaultWidth
;;;455 y0 = Rect.y1 + 1 - ysize;
000048 f9bd000e LDRSH r0,[sp,#0xe]
;;;456 x0 = Rect.x0;
00004c f9bd6008 LDRSH r6,[sp,#8]
000050 1b47 SUBS r7,r0,r5 ;455
;;;457 xsize = Rect.x1 - Rect.x0 + 1;
000052 f9bd000c LDRSH r0,[sp,#0xc]
000056 1c7f ADDS r7,r7,#1 ;455
000058 1b84 SUBS r4,r0,r6
00005a 1c64 ADDS r4,r4,#1
|L2.92|
;;;458 }
;;;459 }
;;;460 /* Create the window */
;;;461 hObj = WM_CreateWindowAsChild(x0, y0, xsize, ysize, hParent, WinFlags, _SCROLLBAR_Callback,
00005c fa1ff18a UXTH r1,r10
000060 2324 MOVS r3,#0x24
000062 4a21 LDR r2,|L2.232|
000064 e9cdb100 STRD r11,r1,[sp,#0]
000068 e9cd2302 STRD r2,r3,[sp,#8]
00006c 462b MOV r3,r5
00006e 4622 MOV r2,r4
000070 4639 MOV r1,r7
000072 4630 MOV r0,r6
000074 f7fffffe BL WM_CreateWindowAsChild
000078 0005 MOVS r5,r0
;;;462 sizeof(SCROLLBAR_Obj) - sizeof(WM_Obj));
;;;463 if (hObj) {
00007a d02e BEQ |L2.218|
;;;464 SCROLLBAR_Obj* pObj = SCROLLBAR_H2P(hObj);
00007c 4628 MOV r0,r5
00007e f7fffffe BL GUI_ALLOC_h2p
000082 4604 MOV r4,r0
;;;465 U16 InitState;
;;;466 /* Handle SpecialFlags */
;;;467 InitState = 0;
000084 2200 MOVS r2,#0
;;;468 if (ExFlags & SCROLLBAR_CF_VERTICAL) {
000086 ea5f7008 LSLS r0,r8,#28
00008a d500 BPL |L2.142|
;;;469 InitState |= WIDGET_CF_VERTICAL;
00008c 2208 MOVS r2,#8
|L2.142|
;;;470 }
;;;471 if (ExFlags & SCROLLBAR_CF_FOCUSSABLE) {
00008e ea5f60c8 LSLS r0,r8,#27
000092 d501 BPL |L2.152|
;;;472 InitState |= WIDGET_STATE_FOCUSSABLE;
000094 f0420210 ORR r2,r2,#0x10
|L2.152|
;;;473 }
;;;474 if ((Id != GUI_ID_HSCROLL) && (Id != GUI_ID_VSCROLL)) {
000098 f1b90fff CMP r9,#0xff
00009c d004 BEQ |L2.168|
00009e f1b90ffe CMP r9,#0xfe
0000a2 d001 BEQ |L2.168|
;;;475 InitState |= WIDGET_STATE_FOCUSSABLE;
0000a4 f0420210 ORR r2,r2,#0x10
|L2.168|
;;;476 }
;;;477 /* init widget specific variables */
;;;478 WIDGET__Init(&pObj->Widget, Id, InitState);
0000a8 4649 MOV r1,r9
0000aa 4620 MOV r0,r4
0000ac f7fffffe BL WIDGET__Init
;;;479 /* init member variables */
;;;480 SCROLLBAR_INIT_ID(pObj);
;;;481 pObj->aBkColor[0] = SCROLLBAR__aDefaultBkColor[0];
0000b0 480c LDR r0,|L2.228|
0000b2 1d00 ADDS r0,r0,#4
0000b4 6801 LDR r1,[r0,#0] ; SCROLLBAR__aDefaultBkColor
;;;482 pObj->aBkColor[1] = SCROLLBAR__aDefaultBkColor[1];
0000b6 62a1 STR r1,[r4,#0x28]
0000b8 6840 LDR r0,[r0,#4] ; SCROLLBAR__aDefaultBkColor
;;;483 pObj->aColor[0] = SCROLLBAR__aDefaultColor[0];
0000ba 62e0 STR r0,[r4,#0x2c]
0000bc 4809 LDR r0,|L2.228|
0000be 300c ADDS r0,r0,#0xc
0000c0 6801 LDR r1,[r0,#0] ; SCROLLBAR__aDefaultColor
;;;484 pObj->aColor[1] = SCROLLBAR__aDefaultColor[1];
0000c2 6321 STR r1,[r4,#0x30]
0000c4 6840 LDR r0,[r0,#4] ; SCROLLBAR__aDefaultColor
;;;485 pObj->NumItems = 100;
0000c6 6360 STR r0,[r4,#0x34]
0000c8 2064 MOVS r0,#0x64
;;;486 pObj->PageSize = 10;
0000ca 63a0 STR r0,[r4,#0x38]
0000cc 200a MOVS r0,#0xa
;;;487 pObj->v = 0;
0000ce 6420 STR r0,[r4,#0x40]
0000d0 2000 MOVS r0,#0
;;;488 SCROLLBAR__InvalidatePartner(hObj);
0000d2 63e0 STR r0,[r4,#0x3c]
0000d4 4628 MOV r0,r5
0000d6 f7fffffe BL SCROLLBAR__InvalidatePartner
|L2.218|
;;;489 } else {
;;;490 GUI_DEBUG_ERROROUT_IF(hObj==0, "SCROLLBAR_Create failed")
;;;491 }
;;;492 WM_UNLOCK();
;;;493 return hObj;
0000da 4628 MOV r0,r5
;;;494 }
0000dc b004 ADD sp,sp,#0x10
0000de e8bd9ff0 POP {r4-r12,pc}
;;;495
ENDP
0000e2 0000 DCW 0x0000
|L2.228|
DCD ||.data||
|L2.232|
DCD _SCROLLBAR_Callback
AREA ||i.SCROLLBAR_Dec||, CODE, READONLY, ALIGN=1
SCROLLBAR_Dec PROC
;;;505 */
;;;506 void SCROLLBAR_Dec(SCROLLBAR_Handle hObj) {
000000 f04f31ff MOV r1,#0xffffffff
;;;507 SCROLLBAR_AddValue(hObj, -1);
000004 f7ffbffe B.W SCROLLBAR_AddValue
;;;508 }
;;;509
ENDP
AREA ||i.SCROLLBAR_Inc||, CODE, READONLY, ALIGN=1
SCROLLBAR_Inc PROC
;;;513 */
;;;514 void SCROLLBAR_Inc(SCROLLBAR_Handle hObj) {
000000 2101 MOVS r1,#1
;;;515 SCROLLBAR_AddValue(hObj, 1);
000002 f7ffbffe B.W SCROLLBAR_AddValue
;;;516 }
;;;517
ENDP
AREA ||i.SCROLLBAR_SetNumItems||, CODE, READONLY, ALIGN=1
SCROLLBAR_SetNumItems PROC
;;;564 */
;;;565 void SCROLLBAR_SetNumItems(SCROLLBAR_Handle hObj, int NumItems) {
000000 b570 PUSH {r4-r6,lr}
000002 0005 MOVS r5,r0
000004 460c MOV r4,r1
;;;566 SCROLLBAR_Obj* pObj;
;;;567 if (hObj) {
000006 d00b BEQ |L5.32|
;;;568 WM_LOCK();
;;;569 pObj = SCROLLBAR_H2P(hObj);
000008 4628 MOV r0,r5
00000a f7fffffe BL GUI_ALLOC_h2p
;;;570 if (pObj->NumItems != NumItems) {
00000e 6b81 LDR r1,[r0,#0x38]
000010 42a1 CMP r1,r4
000012 d005 BEQ |L5.32|
;;;571 pObj->NumItems = NumItems;
;;;572 WM_InvalidateWindow(hObj);
000014 6384 STR r4,[r0,#0x38]
000016 4628 MOV r0,r5
000018 e8bd4070 POP {r4-r6,lr}
00001c f7ffbffe B.W WM_InvalidateWindow
|L5.32|
;;;573 }
;;;574 WM_UNLOCK();
;;;575 }
;;;576 }
000020 bd70 POP {r4-r6,pc}
;;;577
ENDP
AREA ||i.SCROLLBAR_SetPageSize||, CODE, READONLY, ALIGN=1
SCROLLBAR_SetPageSize PROC
;;;581 */
;;;582 void SCROLLBAR_SetPageSize(SCROLLBAR_Handle hObj, int PageSize) {
000000 b570 PUSH {r4-r6,lr}
000002 0005 MOVS r5,r0
000004 460c MOV r4,r1
;;;583 SCROLLBAR_Obj* pObj;
;;;584 if (hObj) {
000006 d00b BEQ |L6.32|
;;;585 WM_LOCK();
;;;586 pObj = SCROLLBAR_H2P(hObj);
000008 4628 MOV r0,r5
00000a f7fffffe BL GUI_ALLOC_h2p
;;;587 if (pObj->PageSize != PageSize) {
00000e 6c01 LDR r1,[r0,#0x40]
000010 42a1 CMP r1,r4
000012 d005 BEQ |L6.32|
;;;588 pObj->PageSize = PageSize;
;;;589 WM_InvalidateWindow(hObj);
000014 6404 STR r4,[r0,#0x40]
000016 4628 MOV r0,r5
000018 e8bd4070 POP {r4-r6,lr}
00001c f7ffbffe B.W WM_InvalidateWindow
|L6.32|
;;;590 }
;;;591 WM_UNLOCK();
;;;592 }
;;;593 }
000020 bd70 POP {r4-r6,pc}
;;;594
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -