⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 progbar.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 TXT
📖 第 1 页 / 共 3 页
字号:
; 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 + -