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

📄 scrollbar.txt

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