📄 slider.txt
字号:
; generated by ARM C/C++ Compiler with , RVCT4.0 [Build 524] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\slider.o --depend=.\Obj\slider.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\SLIDER.c]
THUMB
AREA ||i.SLIDER_CreateEx||, CODE, READONLY, ALIGN=2
SLIDER_CreateEx PROC
;;;311 */
;;;312 SLIDER_Handle SLIDER_CreateEx(int x0, int y0, int xsize, int ysize, WM_HWIN hParent,
000000 e92d41ff PUSH {r0-r8,lr}
;;;313 int WinFlags, int ExFlags, int Id)
;;;314 {
000004 4605 MOV r5,r0
000006 460e MOV r6,r1
;;;315 SLIDER_Handle hObj;
;;;316 /* Create the window */
;;;317 WM_LOCK();
;;;318 #if SLIDER_SUPPORT_TRANSPARENCY
;;;319 WinFlags |= WM_CF_HASTRANS;
000008 a80a ADD r0,sp,#0x28
00000a e8900113 LDM r0,{r0,r1,r4,r8}
00000e 4617 MOV r7,r2 ;314
000010 469c MOV r12,r3 ;314
000012 b289 UXTH r1,r1
;;;320 #endif
;;;321 hObj = WM_CreateWindowAsChild(x0, y0, xsize, ysize, hParent, WinFlags, _SLIDER_Callback, sizeof(SLIDER_Obj) - sizeof(WM_Obj));
000014 2330 MOVS r3,#0x30
000016 4a17 LDR r2,|L1.116|
000018 f0410101 ORR r1,r1,#1
00001c e88d000f STM sp,{r0-r3}
000020 4663 MOV r3,r12
000022 463a MOV r2,r7
000024 4631 MOV r1,r6
000026 4628 MOV r0,r5
000028 f7fffffe BL WM_CreateWindowAsChild
00002c 0006 MOVS r6,r0
;;;322 if (hObj) {
00002e d01d BEQ |L1.108|
;;;323 SLIDER_Obj* pObj = SLIDER_H2P(hObj);
000030 4630 MOV r0,r6
000032 f7fffffe BL GUI_ALLOC_h2p
000036 4605 MOV r5,r0
;;;324 U16 InitState;
;;;325 /* Handle SpecialFlags */
;;;326 InitState = WIDGET_STATE_FOCUSSABLE;
000038 2210 MOVS r2,#0x10
;;;327 if (ExFlags & SLIDER_CF_VERTICAL) {
00003a 0720 LSLS r0,r4,#28
00003c d500 BPL |L1.64|
;;;328 InitState |= WIDGET_CF_VERTICAL;
00003e 2218 MOVS r2,#0x18
|L1.64|
;;;329 }
;;;330 /* init widget specific variables */
;;;331 WIDGET__Init(&pObj->Widget, Id, InitState);
000040 4641 MOV r1,r8
000042 4628 MOV r0,r5
000044 f7fffffe BL WIDGET__Init
;;;332 /* init member variables */
;;;333 SLIDER_INIT_ID(pObj);
;;;334 pObj->aBkColor[0] = _DefaultBkColor;
000048 480b LDR r0,|L1.120|
;;;335 pObj->aBkColor[1] = SLIDER_BKCOLOR1_DEFAULT;
;;;336 pObj->aColor[0] = SLIDER_COLOR0_DEFAULT;
;;;337 pObj->aColor[1] = SLIDER_COLOR1_DEFAULT;
;;;338 pObj->Width = 8;
00004a 2108 MOVS r1,#8
00004c 6800 LDR r0,[r0,#0] ;334 ; _DefaultBkColor
00004e 62a8 STR r0,[r5,#0x28] ;335
000050 f06f407f MVN r0,#0xff000000 ;335
000054 62e8 STR r0,[r5,#0x2c] ;336
000056 4809 LDR r0,|L1.124|
000058 6328 STR r0,[r5,#0x30] ;337
00005a 2000 MOVS r0,#0 ;337
00005c 6368 STR r0,[r5,#0x34]
00005e f8a5104c STRH r1,[r5,#0x4c]
;;;339 pObj->Max = 100;
000062 2164 MOVS r1,#0x64
;;;340 pObj->Min = 0;
;;;341 pObj->NumTicks = -1;
000064 e9c5010e STRD r0,r1,[r5,#0x38]
000068 1e40 SUBS r0,r0,#1
00006a 64a8 STR r0,[r5,#0x48]
|L1.108|
;;;342 } else {
;;;343 GUI_DEBUG_ERROROUT_IF(hObj==0, "SLIDER_Create failed")
;;;344 }
;;;345 WM_UNLOCK();
;;;346 return hObj;
00006c 4630 MOV r0,r6
;;;347 }
00006e b004 ADD sp,sp,#0x10
000070 e8bd81f0 POP {r4-r8,pc}
;;;348
ENDP
|L1.116|
DCD _SLIDER_Callback
|L1.120|
DCD ||.data||
|L1.124|
DCD 0x00c0c0c0
AREA ||i.SLIDER_Dec||, CODE, READONLY, ALIGN=1
SLIDER_Dec PROC
;;;358 */
;;;359 void SLIDER_Dec(SLIDER_Handle hObj) {
000000 b510 PUSH {r4,lr}
000002 0004 MOVS r4,r0
;;;360 SLIDER_Obj* pObj;
;;;361 if (hObj) {
000004 d011 BEQ |L2.42|
;;;362 WM_LOCK();
;;;363 pObj = SLIDER_H2P(hObj);
000006 4620 MOV r0,r4
000008 f7fffffe BL GUI_ALLOC_h2p
;;;364 if (pObj->v > pObj->Min) {
00000c 6b82 LDR r2,[r0,#0x38]
00000e 6c01 LDR r1,[r0,#0x40]
000010 4291 CMP r1,r2
000012 dd0a BLE |L2.42|
;;;365 pObj->v--;
000014 1e49 SUBS r1,r1,#1
;;;366 WM_InvalidateWindow(hObj);
000016 6401 STR r1,[r0,#0x40]
000018 4620 MOV r0,r4
00001a f7fffffe BL WM_InvalidateWindow
;;;367 WM_NotifyParent(hObj, WM_NOTIFICATION_VALUE_CHANGED);
00001e 4620 MOV r0,r4
000020 e8bd4010 POP {r4,lr}
000024 2105 MOVS r1,#5
000026 f7ffbffe B.W WM_NotifyParent
|L2.42|
;;;368 }
;;;369 WM_UNLOCK();
;;;370 }
;;;371 }
00002a bd10 POP {r4,pc}
;;;372
ENDP
AREA ||i.SLIDER_GetValue||, CODE, READONLY, ALIGN=1
SLIDER_GetValue PROC
;;;512 */
;;;513 int SLIDER_GetValue(SLIDER_Handle hObj) {
000000 b510 PUSH {r4,lr}
000002 0001 MOVS r1,r0
;;;514 int r = 0;
000004 f04f0000 MOV r0,#0
;;;515 SLIDER_Obj* pObj;
;;;516 if (hObj) {
000008 d003 BEQ |L3.18|
;;;517 WM_LOCK();
;;;518 pObj = SLIDER_H2P(hObj);
00000a 4608 MOV r0,r1
00000c f7fffffe BL GUI_ALLOC_h2p
;;;519 r = pObj->v;
000010 6c00 LDR r0,[r0,#0x40]
|L3.18|
;;;520 WM_UNLOCK();
;;;521 }
;;;522 return r;
;;;523 }
000012 bd10 POP {r4,pc}
;;;524
ENDP
AREA ||i.SLIDER_Inc||, CODE, READONLY, ALIGN=1
SLIDER_Inc PROC
;;;376 */
;;;377 void SLIDER_Inc(SLIDER_Handle hObj) {
000000 b510 PUSH {r4,lr}
000002 0004 MOVS r4,r0
;;;378 SLIDER_Obj* pObj;
;;;379 if (hObj) {
000004 d011 BEQ |L4.42|
;;;380 WM_LOCK();
;;;381 pObj = SLIDER_H2P(hObj);
000006 4620 MOV r0,r4
000008 f7fffffe BL GUI_ALLOC_h2p
;;;382 if (pObj->v < pObj->Max) {
00000c e9d0210f LDRD r2,r1,[r0,#0x3c]
000010 4291 CMP r1,r2
000012 da0a BGE |L4.42|
;;;383 pObj->v++;
000014 1c49 ADDS r1,r1,#1
;;;384 WM_InvalidateWindow(hObj);
000016 6401 STR r1,[r0,#0x40]
000018 4620 MOV r0,r4
00001a f7fffffe BL WM_InvalidateWindow
;;;385 WM_NotifyParent(hObj, WM_NOTIFICATION_VALUE_CHANGED);
00001e 4620 MOV r0,r4
000020 e8bd4010 POP {r4,lr}
000024 2105 MOVS r1,#5
000026 f7ffbffe B.W WM_NotifyParent
|L4.42|
;;;386 }
;;;387 WM_UNLOCK();
;;;388 }
;;;389 }
00002a bd10 POP {r4,pc}
;;;390
ENDP
AREA ||i.SLIDER_SetBkColor||, CODE, READONLY, ALIGN=1
SLIDER_SetBkColor PROC
;;;476 */
;;;477 void SLIDER_SetBkColor(SLIDER_Handle hObj, GUI_COLOR Color) {
000000 b570 PUSH {r4-r6,lr}
000002 0005 MOVS r5,r0
000004 460c MOV r4,r1
;;;478 if (hObj) {
000006 d011 BEQ |L5.44|
;;;479 SLIDER_Obj * pObj;
;;;480 WM_LOCK();
;;;481 pObj = SLIDER_H2P(hObj);
000008 4628 MOV r0,r5
00000a f7fffffe BL GUI_ALLOC_h2p
;;;482 pObj->aBkColor[0] = Color;
;;;483 #if SLIDER_SUPPORT_TRANSPARENCY
;;;484 if (Color <= 0xFFFFFF) {
00000e 6284 STR r4,[r0,#0x28]
000010 f1b47f80 CMP r4,#0x1000000
;;;485 WM_ClrHasTrans(hObj);
000014 4628 MOV r0,r5
000016 d202 BCS |L5.30|
000018 f7fffffe BL WM_ClrHasTrans
00001c e001 B |L5.34|
|L5.30|
;;;486 } else {
;;;487 WM_SetHasTrans(hObj);
00001e f7fffffe BL WM_SetHasTrans
|L5.34|
;;;488 }
;;;489 #endif
;;;490 WM_InvalidateWindow(hObj);
000022 4628 MOV r0,r5
000024 e8bd4070 POP {r4-r6,lr}
000028 f7ffbffe B.W WM_InvalidateWindow
|L5.44|
;;;491 WM_UNLOCK();
;;;492 }
;;;493 }
00002c bd70 POP {r4-r6,pc}
;;;494
ENDP
AREA ||i.SLIDER_SetDefaultBkColor||, CODE, READONLY, ALIGN=2
SLIDER_SetDefaultBkColor PROC
;;;498 */
;;;499 void SLIDER_SetDefaultBkColor(GUI_COLOR Color) {
000000 4901 LDR r1,|L6.8|
;;;500 _DefaultBkColor = Color;
;;;501 }
000002 6008 STR r0,[r1,#0] ; _DefaultBkColor
000004 4770 BX lr
;;;502
ENDP
000006 0000 DCW 0x0000
|L6.8|
DCD ||.data||
AREA ||i.SLIDER_SetNumTicks||, CODE, READONLY, ALIGN=1
SLIDER_SetNumTicks PROC
;;;461 */
;;;462 void SLIDER_SetNumTicks(SLIDER_Handle hObj, int NumTicks) {
000000 b570 PUSH {r4-r6,lr}
000002 0004 MOVS r4,r0
000004 460d MOV r5,r1
;;;463 if (hObj && (NumTicks >= 0)) {
000006 d00a BEQ |L7.30|
000008 2d00 CMP r5,#0
00000a db08 BLT |L7.30|
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -