📄 progbar.txt
字号:
; generated by ARM C/C++ Compiler with , RVCT4.0 [Build 524] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\progbar.o --depend=.\Obj\progbar.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\PROGBAR.c]
THUMB
AREA ||i.PROGBAR_CreateEx||, CODE, READONLY, ALIGN=2
PROGBAR_CreateEx PROC
;;;275 */
;;;276 PROGBAR_Handle PROGBAR_CreateEx(int x0, int y0, int xsize, int ysize, WM_HWIN hParent,
000000 e92d41ff PUSH {r0-r8,lr}
;;;277 int WinFlags, int ExFlags, int Id)
;;;278 {
000004 4604 MOV r4,r0
000006 460d MOV r5,r1
;;;279 PROGBAR_Handle hObj;
;;;280 GUI_USE_PARA(ExFlags);
;;;281 hObj = WM_CreateWindowAsChild(x0, y0, xsize, ysize, hParent, WinFlags, _PROGBAR_Callback,
000008 e9dd010a LDRD r0,r1,[sp,#0x28]
00000c 4616 MOV r6,r2 ;278
00000e 461f MOV r7,r3 ;278
000010 2330 MOVS r3,#0x30
000012 4a17 LDR r2,|L1.112|
000014 b289 UXTH r1,r1
000016 f8dd8034 LDR r8,[sp,#0x34]
00001a e88d000f STM sp,{r0-r3}
00001e 463b MOV r3,r7
000020 4632 MOV r2,r6
000022 4629 MOV r1,r5
000024 4620 MOV r0,r4
000026 f7fffffe BL WM_CreateWindowAsChild
00002a 0005 MOVS r5,r0
;;;282 sizeof(PROGBAR_Obj) - sizeof(WM_Obj));
;;;283 if (hObj) {
00002c d01c BEQ |L1.104|
;;;284 PROGBAR_Obj* pObj;
;;;285 WM_LOCK();
;;;286 pObj = (PROGBAR_Obj*) GUI_ALLOC_h2p(hObj);
00002e 4628 MOV r0,r5
000030 f7fffffe BL GUI_ALLOC_h2p
000034 4604 MOV r4,r0
;;;287 /* init widget specific variables */
;;;288 WIDGET__Init(&pObj->Widget, Id, 0);
000036 2200 MOVS r2,#0
000038 4641 MOV r1,r8
00003a f7fffffe BL WIDGET__Init
;;;289 WIDGET_SetEffect(hObj, &WIDGET_Effect_None); /* Standard effect for progbar: None */
00003e 490d LDR r1,|L1.116|
000040 4628 MOV r0,r5
000042 f7fffffe BL WIDGET_SetEffect
;;;290 INIT_ID(pObj);
;;;291 /* init member variables */
;;;292 pObj->pFont = GUI_DEFAULT_FONT;
000046 490c LDR r1,|L1.120|
;;;293 pObj->BarColor[0] = PROGBAR_DEFAULT_BARCOLOR0;
000048 62e1 STR r1,[r4,#0x2c]
00004a 490c LDR r1,|L1.124|
;;;294 pObj->BarColor[1] = PROGBAR_DEFAULT_BARCOLOR1;
00004c 6321 STR r1,[r4,#0x30]
00004e 0049 LSLS r1,r1,#1
;;;295 pObj->TextColor[0] = PROGBAR_DEFAULT_TEXTCOLOR0;
000050 6361 STR r1,[r4,#0x34]
000052 f06f417f MVN r1,#0xff000000
;;;296 pObj->TextColor[1] = PROGBAR_DEFAULT_TEXTCOLOR1;
000056 63a1 STR r1,[r4,#0x38]
000058 2100 MOVS r1,#0
;;;297 pObj->TextAlign = GUI_TA_CENTER;
00005a 2202 MOVS r2,#2
00005c 63e1 STR r1,[r4,#0x3c]
00005e f8a42046 STRH r2,[r4,#0x46]
;;;298 pObj->Max = 100;
000062 2264 MOVS r2,#0x64
;;;299 pObj->Min = 0;
000064 e9c41212 STRD r1,r2,[r4,#0x48]
|L1.104|
;;;300 WM_UNLOCK();
;;;301 }
;;;302 return hObj;
000068 4628 MOV r0,r5
;;;303 }
00006a b004 ADD sp,sp,#0x10
00006c e8bd81f0 POP {r4-r8,pc}
;;;304
ENDP
|L1.112|
DCD _PROGBAR_Callback
|L1.116|
DCD WIDGET_Effect_None
|L1.120|
DCD GUI_Font6x8
|L1.124|
DCD 0x00555555
AREA ||i.PROGBAR_SetBarColor||, CODE, READONLY, ALIGN=1
PROGBAR_SetBarColor PROC
;;;377 */
;;;378 void PROGBAR_SetBarColor(PROGBAR_Handle hObj, unsigned int Index, GUI_COLOR color) {
000000 b570 PUSH {r4-r6,lr}
000002 0005 MOVS r5,r0
000004 460c MOV r4,r1
000006 4616 MOV r6,r2
;;;379 PROGBAR_Obj* pObj;
;;;380 if (hObj) {
000008 d00c BEQ |L2.36|
;;;381 WM_LOCK();
;;;382 pObj = PROGBAR_H2P(hObj);
00000a 4628 MOV r0,r5
00000c f7fffffe BL GUI_ALLOC_h2p
;;;383 if (Index < GUI_COUNTOF(pObj->BarColor)) {
000010 2c02 CMP r4,#2
000012 d207 BCS |L2.36|
;;;384 pObj->BarColor[Index] = color;
000014 eb000084 ADD r0,r0,r4,LSL #2
;;;385 WM_InvalidateWindow(hObj);
000018 6306 STR r6,[r0,#0x30]
00001a 4628 MOV r0,r5
00001c e8bd4070 POP {r4-r6,lr}
000020 f7ffbffe B.W WM_InvalidateWindow
|L2.36|
;;;386 }
;;;387 WM_UNLOCK();
;;;388 }
;;;389 }
000024 bd70 POP {r4-r6,pc}
;;;390
ENDP
AREA ||i.PROGBAR_SetFont||, CODE, READONLY, ALIGN=1
PROGBAR_SetFont PROC
;;;362 */
;;;363 void PROGBAR_SetFont(PROGBAR_Handle hObj, const GUI_FONT GUI_UNI_PTR * pfont) {
000000 b570 PUSH {r4-r6,lr}
000002 0004 MOVS r4,r0
000004 460d MOV r5,r1
;;;364 PROGBAR_Obj* pObj;
;;;365 if (hObj) {
000006 d008 BEQ |L3.26|
;;;366 WM_LOCK();
;;;367 pObj = PROGBAR_H2P(hObj);
000008 4620 MOV r0,r4
00000a f7fffffe BL GUI_ALLOC_h2p
;;;368 pObj->pFont = pfont;
;;;369 WM_InvalidateWindow(hObj);
00000e 62c5 STR r5,[r0,#0x2c]
000010 4620 MOV r0,r4
000012 e8bd4070 POP {r4-r6,lr}
000016 f7ffbffe B.W WM_InvalidateWindow
|L3.26|
;;;370 WM_UNLOCK();
;;;371 }
;;;372 }
00001a bd70 POP {r4-r6,pc}
;;;373
ENDP
AREA ||i.PROGBAR_SetMinMax||, CODE, READONLY, ALIGN=1
PROGBAR_SetMinMax PROC
;;;467 */
;;;468 void PROGBAR_SetMinMax(PROGBAR_Handle hObj, int Min, int Max) {
000000 b570 PUSH {r4-r6,lr}
000002 0006 MOVS r6,r0
000004 460c MOV r4,r1
000006 4615 MOV r5,r2
;;;469 PROGBAR_Obj* pObj;
;;;470 if (hObj) {
000008 d011 BEQ |L4.46|
;;;471 WM_LOCK();
;;;472 pObj = PROGBAR_H2P(hObj);
00000a 4630 MOV r0,r6
00000c f7fffffe BL GUI_ALLOC_h2p
;;;473 if (Max > Min) {
000010 42a5 CMP r5,r4
000012 dd0c BLE |L4.46|
;;;474 if ((Max != pObj->Max) || (Min != pObj->Min)) {
000014 6cc1 LDR r1,[r0,#0x4c]
000016 42a9 CMP r1,r5
000018 d102 BNE |L4.32|
00001a 6c81 LDR r1,[r0,#0x48]
00001c 42a1 CMP r1,r4
00001e d006 BEQ |L4.46|
|L4.32|
;;;475 pObj->Min = Min;
;;;476 pObj->Max = Max;
;;;477 WM_InvalidateWindow(hObj);
000020 e9c04512 STRD r4,r5,[r0,#0x48]
000024 4630 MOV r0,r6
000026 e8bd4070 POP {r4-r6,lr}
00002a f7ffbffe B.W WM_InvalidateWindow
|L4.46|
;;;478 }
;;;479 }
;;;480 WM_UNLOCK();
;;;481 }
;;;482 }
00002e bd70 POP {r4-r6,pc}
;;;483
ENDP
AREA ||i.PROGBAR_SetText||, CODE, READONLY, ALIGN=1
PROGBAR_SetText PROC
;;;411 */
;;;412 void PROGBAR_SetText(PROGBAR_Handle hObj, const char* s) {
000000 b5f0 PUSH {r4-r7,lr}
000002 b087 SUB sp,sp,#0x1c
000004 0005 MOVS r5,r0
000006 460f MOV r7,r1
;;;413 if (hObj) {
000008 d02b BEQ |L5.98|
;;;414 PROGBAR_Obj* pObj;
;;;415 const GUI_FONT GUI_UNI_PTR * pOldFont;
;;;416 GUI_RECT r1;
;;;417 char acBuffer[5];
;;;418 WM_LOCK();
;;;419 pObj = PROGBAR_H2P(hObj);
00000a 4628 MOV r0,r5
00000c f7fffffe BL GUI_ALLOC_h2p
000010 4604 MOV r4,r0
;;;420 pOldFont = GUI_SetFont(pObj->pFont);
000012 6ac0 LDR r0,[r0,#0x2c]
000014 f7fffffe BL GUI_SetFont
000018 4606 MOV r6,r0
;;;421 _GetTextRect(pObj, &r1, _GetText(pObj, acBuffer));
00001a a903 ADD r1,sp,#0xc
00001c 4620 MOV r0,r4
00001e f7fffffe BL _GetText
000022 4602 MOV r2,r0
000024 a905 ADD r1,sp,#0x14
000026 4620 MOV r0,r4
000028 f7fffffe BL _GetTextRect
;;;422 if (GUI__SetText(&pObj->hpText, s)) {
00002c 4639 MOV r1,r7
00002e f1040040 ADD r0,r4,#0x40
000032 f7fffffe BL GUI__SetText
000036 b188 CBZ r0,|L5.92|
;;;423 GUI_RECT r2;
;;;424 _GetTextRect(pObj, &r2, _GetText(pObj, acBuffer));
000038 a903 ADD r1,sp,#0xc
00003a 4620 MOV r0,r4
00003c f7fffffe BL _GetText
000040 4602 MOV r2,r0
000042 a901 ADD r1,sp,#4
000044 4620 MOV r0,r4
000046 f7fffffe BL _GetTextRect
;;;425 GUI_MergeRect(&r1, &r1, &r2);
00004a aa01 ADD r2,sp,#4
00004c a905 ADD r1,sp,#0x14
00004e a805 ADD r0,sp,#0x14
000050 f7fffffe BL GUI_MergeRect
;;;426 WM_InvalidateRect(hObj, &r1);
000054 a905 ADD r1,sp,#0x14
000056 4628 MOV r0,r5
000058 f7fffffe BL WM_InvalidateRect
|L5.92|
;;;427 }
;;;428 GUI_SetFont(pOldFont);
00005c 4630 MOV r0,r6
00005e f7fffffe BL GUI_SetFont
|L5.98|
;;;429 WM_UNLOCK();
;;;430 }
;;;431 }
000062 b007 ADD sp,sp,#0x1c
000064 bdf0 POP {r4-r7,pc}
;;;432
ENDP
AREA ||i.PROGBAR_SetTextAlign||, CODE, READONLY, ALIGN=1
PROGBAR_SetTextAlign PROC
;;;436 */
;;;437 void PROGBAR_SetTextAlign(PROGBAR_Handle hObj, int Align) {
000000 b570 PUSH {r4-r6,lr}
000002 0004 MOVS r4,r0
000004 460d MOV r5,r1
;;;438 PROGBAR_Obj* pObj;
;;;439 if (hObj) {
000006 d009 BEQ |L6.28|
;;;440 WM_LOCK();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -