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

📄 scrollbar.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 TXT
📖 第 1 页 / 共 4 页
字号:
000066  f04f33ff          MOV      r3,#0xffffffff
00006a  1a40              SUBS     r0,r0,r1
00006c  1042              ASRS     r2,r0,#1
00006e  f9bd000c          LDRSH    r0,[sp,#0xc]
000072  9300              STR      r3,[sp,#0]
000074  1981              ADDS     r1,r0,r6
000076  462b              MOV      r3,r5
000078  4620              MOV      r0,r4
00007a  f7fffffe          BL       _DrawTriangle
;;;221      WIDGET__EFFECT_DrawUpRect(&pObj->Widget, &r);
00007e  a903              ADD      r1,sp,#0xc
000080  4620              MOV      r0,r4
000082  f7fffffe          BL       WIDGET__EFFECT_DrawUpRect
;;;222      /*
;;;223        Draw the thumb area which is not covered by the thumb
;;;224      */
;;;225      LCD_SetColor(pObj->aBkColor[0]);
000086  6aa0              LDR      r0,[r4,#0x28]
000088  f7fffffe          BL       LCD_SetColor
;;;226      r.x0 = Pos.x1_LeftArrow + 1;
00008c  9806              LDR      r0,[sp,#0x18]
;;;227      r.x1 = Pos.x0_Thumb - 1;
;;;228      WIDGET__FillRectEx(&pObj->Widget, &r);
00008e  a903              ADD      r1,sp,#0xc
000090  1c40              ADDS     r0,r0,#1              ;226
000092  f8ad000c          STRH     r0,[sp,#0xc]          ;226
000096  9807              LDR      r0,[sp,#0x1c]         ;227
000098  1e40              SUBS     r0,r0,#1              ;227
00009a  f8ad0010          STRH     r0,[sp,#0x10]         ;227
00009e  4620              MOV      r0,r4
0000a0  f7fffffe          BL       WIDGET__FillRectEx
;;;229      r = rClient;
0000a4  e9dd0101          LDRD     r0,r1,[sp,#4]
;;;230      r.x0 = Pos.x1_Thumb + 1;
0000a8  e9cd0103          STRD     r0,r1,[sp,#0xc]
0000ac  9808              LDR      r0,[sp,#0x20]
;;;231      r.x1 = Pos.x0_RightArrow - 1;
;;;232      WIDGET__FillRectEx(&pObj->Widget, &r);
0000ae  a903              ADD      r1,sp,#0xc
0000b0  1c40              ADDS     r0,r0,#1              ;230
0000b2  f8ad000c          STRH     r0,[sp,#0xc]          ;230
0000b6  9809              LDR      r0,[sp,#0x24]         ;231
0000b8  1e40              SUBS     r0,r0,#1              ;231
0000ba  f8ad0010          STRH     r0,[sp,#0x10]         ;231
0000be  4620              MOV      r0,r4
0000c0  f7fffffe          BL       WIDGET__FillRectEx
;;;233      /*
;;;234        Draw Thumb
;;;235      */
;;;236      r = rClient;
0000c4  e9dd0101          LDRD     r0,r1,[sp,#4]
;;;237      r.x0 = Pos.x0_Thumb;
0000c8  e9cd0103          STRD     r0,r1,[sp,#0xc]
0000cc  9807              LDR      r0,[sp,#0x1c]
0000ce  f8ad000c          STRH     r0,[sp,#0xc]
;;;238      r.x1 = Pos.x1_Thumb;
0000d2  9808              LDR      r0,[sp,#0x20]
0000d4  f8ad0010          STRH     r0,[sp,#0x10]
;;;239      LCD_SetColor(pObj->aColor[0]);
0000d8  6b20              LDR      r0,[r4,#0x30]
0000da  f7fffffe          BL       LCD_SetColor
;;;240      WIDGET__FillRectEx(&pObj->Widget, &r);
0000de  a903              ADD      r1,sp,#0xc
0000e0  4620              MOV      r0,r4
0000e2  f7fffffe          BL       WIDGET__FillRectEx
;;;241      WIDGET__EFFECT_DrawUpRect(&pObj->Widget, &r);
0000e6  a903              ADD      r1,sp,#0xc
0000e8  4620              MOV      r0,r4
0000ea  f7fffffe          BL       WIDGET__EFFECT_DrawUpRect
;;;242      /*
;;;243        Draw right Arrow
;;;244      */
;;;245      LCD_SetColor(pObj->aColor[0]);
0000ee  6b20              LDR      r0,[r4,#0x30]
0000f0  f7fffffe          BL       LCD_SetColor
;;;246      r.x0 = Pos.x0_RightArrow;
0000f4  9809              LDR      r0,[sp,#0x24]
0000f6  f8ad000c          STRH     r0,[sp,#0xc]
;;;247      r.x1 = Pos.x1_RightArrow;
0000fa  980a              LDR      r0,[sp,#0x28]
0000fc  f8ad0010          STRH     r0,[sp,#0x10]
;;;248      WIDGET__FillRectEx(&pObj->Widget, &r);
000100  a903              ADD      r1,sp,#0xc
000102  4620              MOV      r0,r4
000104  f7fffffe          BL       WIDGET__FillRectEx
;;;249      LCD_SetColor(pObj->aBkColor[1]);
000108  6ae0              LDR      r0,[r4,#0x2c]
00010a  f7fffffe          BL       LCD_SetColor
;;;250      _DrawTriangle(&pObj->Widget, r.x1 - ArrowOff, (r.y1 - r.y0) >> 1, ArrowSize, 1);
00010e  f9bd0012          LDRSH    r0,[sp,#0x12]
000112  f9bd100e          LDRSH    r1,[sp,#0xe]
000116  2301              MOVS     r3,#1
000118  1a40              SUBS     r0,r0,r1
00011a  1042              ASRS     r2,r0,#1
00011c  f9bd0010          LDRSH    r0,[sp,#0x10]
000120  9300              STR      r3,[sp,#0]
000122  1b81              SUBS     r1,r0,r6
000124  462b              MOV      r3,r5
000126  4620              MOV      r0,r4
000128  f7fffffe          BL       _DrawTriangle
;;;251      WIDGET__EFFECT_DrawUpRect(&pObj->Widget, &r);
00012c  a903              ADD      r1,sp,#0xc
00012e  4620              MOV      r0,r4
000130  f7fffffe          BL       WIDGET__EFFECT_DrawUpRect
;;;252      /*
;;;253        Draw overlap area (if any ...)
;;;254      */
;;;255      if (Pos.x1_RightArrow != Pos.x1) {
000134  e9dd010a          LDRD     r0,r1,[sp,#0x28]
000138  4288              CMP      r0,r1
00013a  d00c              BEQ      |L13.342|
;;;256        r.x0 = Pos.x1_RightArrow + 1;
00013c  1c40              ADDS     r0,r0,#1
00013e  f8ad000c          STRH     r0,[sp,#0xc]
;;;257        r.x1 = Pos.x1;
000142  980b              LDR      r0,[sp,#0x2c]
000144  f8ad0010          STRH     r0,[sp,#0x10]
;;;258        LCD_SetColor(pObj->aColor[0]);
000148  6b20              LDR      r0,[r4,#0x30]
00014a  f7fffffe          BL       LCD_SetColor
;;;259        WIDGET__FillRectEx(&pObj->Widget, &r);
00014e  a903              ADD      r1,sp,#0xc
000150  4620              MOV      r0,r4
000152  f7fffffe          BL       WIDGET__FillRectEx
                  |L13.342|
;;;260      }
;;;261    }
000156  b00e              ADD      sp,sp,#0x38
000158  bd70              POP      {r4-r6,pc}
;;;262    
                          ENDP


                          AREA ||i._SCROLLBAR_Callback||, CODE, READONLY, ALIGN=1

                  _SCROLLBAR_Callback PROC
;;;389    */
;;;390    static void _SCROLLBAR_Callback (WM_MESSAGE *pMsg) {
000000  b570              PUSH     {r4-r6,lr}
;;;391      SCROLLBAR_Handle hObj;
;;;392      SCROLLBAR_Obj* pObj;
;;;393      hObj = pMsg->hWin;
000002  f9b06004          LDRSH    r6,[r0,#4]
000006  4605              MOV      r5,r0                 ;390
;;;394      pObj = SCROLLBAR_H2P(hObj);
000008  4630              MOV      r0,r6
00000a  f7fffffe          BL       GUI_ALLOC_h2p
00000e  4604              MOV      r4,r0
;;;395      /* Let widget handle the standard messages */
;;;396      if (WIDGET_HandleActive(hObj, pMsg) == 0) {
000010  4629              MOV      r1,r5
000012  4630              MOV      r0,r6
000014  f7fffffe          BL       WIDGET_HandleActive
000018  2800              CMP      r0,#0
00001a  d054              BEQ      |L14.198|
;;;397        return;
;;;398      }
;;;399      switch (pMsg->MsgId) {
00001c  6828              LDR      r0,[r5,#0]
00001e  280f              CMP      r0,#0xf
000020  d032              BEQ      |L14.136|
000022  dc13              BGT      |L14.76|
000024  280b              CMP      r0,#0xb
000026  d02b              BEQ      |L14.128|
000028  280c              CMP      r0,#0xc
00002a  d032              BEQ      |L14.146|
00002c  280e              CMP      r0,#0xe
00002e  d145              BNE      |L14.188|
000030  68a9              LDR      r1,[r5,#8]
000032  c903              LDM      r1,{r0,r1}
000034  2900              CMP      r1,#0
000036  dd41              BLE      |L14.188|
000038  2810              CMP      r0,#0x10
00003a  d030              BEQ      |L14.158|
00003c  2811              CMP      r0,#0x11
00003e  d02e              BEQ      |L14.158|
000040  2812              CMP      r0,#0x12
000042  d001              BEQ      |L14.72|
000044  2813              CMP      r0,#0x13
000046  d139              BNE      |L14.188|
                  |L14.72|
000048  2101              MOVS     r1,#1
00004a  e02a              B        |L14.162|
                  |L14.76|
00004c  2823              CMP      r0,#0x23
00004e  d02c              BEQ      |L14.170|
000050  2824              CMP      r0,#0x24
000052  d133              BNE      |L14.188|
000054  68a8              LDR      r0,[r5,#8]
000056  6ba2              LDR      r2,[r4,#0x38]
000058  6801              LDR      r1,[r0,#0]
00005a  4291              CMP      r1,r2
00005c  d107              BNE      |L14.110|
00005e  6c22              LDR      r2,[r4,#0x40]
000060  6883              LDR      r3,[r0,#8]
000062  429a              CMP      r2,r3
000064  d103              BNE      |L14.110|
000066  6be2              LDR      r2,[r4,#0x3c]
000068  6843              LDR      r3,[r0,#4]
00006a  429a              CMP      r2,r3
00006c  d026              BEQ      |L14.188|
                  |L14.110|
00006e  63a1              STR      r1,[r4,#0x38]
000070  6881              LDR      r1,[r0,#8]
000072  6421              STR      r1,[r4,#0x40]
000074  6840              LDR      r0,[r0,#4]
000076  63e0              STR      r0,[r4,#0x3c]
000078  4630              MOV      r0,r6
00007a  f7fffffe          BL       WM_InvalidateWindow
00007e  e01d              B        |L14.188|
                  |L14.128|
;;;400      case WM_DELETE:
;;;401        SCROLLBAR__InvalidatePartner(hObj);
000080  4630              MOV      r0,r6
000082  f7fffffe          BL       SCROLLBAR__InvalidatePartner
;;;402        break;
000086  e019              B        |L14.188|
                  |L14.136|
;;;403      case WM_PAINT:
;;;404        GUI_DEBUG_LOG("SCROLLBAR: _Callback(WM_PAINT)\n");
;;;405        _Paint(pObj);
000088  4620              MOV      r0,r4
00008a  e8bd4070          POP      {r4-r6,lr}
00008e  f7ffbffe          B.W      _Paint
                  |L14.146|
;;;406        return;
;;;407      case WM_TOUCH:
;;;408        _OnTouch(hObj, pObj, pMsg);
000092  462a              MOV      r2,r5
000094  4621              MOV      r1,r4
000096  4630              MOV      r0,r6
000098  f7fffffe          BL       _OnTouch
;;;409        break;
00009c  e00e              B        |L14.188|
                  |L14.158|
00009e  f04f31ff          MOV      r1,#0xffffffff
                  |L14.162|
0000a2  4630              MOV      r0,r6
0000a4  f7fffffe          BL       SCROLLBAR_AddValue
0000a8  e008              B        |L14.188|
                  |L14.170|
;;;410      case WM_KEY:
;;;411        _OnKey(hObj, pMsg);
;;;412        break;
;;;413      case WM_SET_SCROLL_STATE:
;;;414        _OnSetScrollState(hObj, pObj, (const WM_SCROLL_STATE*)pMsg->Data.p);
;;;415        break;
;;;416      case WM_GET_SCROLL_STATE:
;;;417        ((WM_SCROLL_STATE*)pMsg->Data.p)->NumItems = pObj->NumItems;
0000aa  68a9              LDR      r1,[r5,#8]
0000ac  6ba0              LDR      r0,[r4,#0x38]
;;;418        ((WM_SCROLL_STATE*)pMsg->Data.p)->PageSize = pObj->PageSize;
0000ae  6008              STR      r0,[r1,#0]
0000b0  68a9              LDR      r1,[r5,#8]
0000b2  6c20              LDR      r0,[r4,#0x40]
;;;419        ((WM_SCROLL_STATE*)pMsg->Data.p)->v        = pObj->v;
0000b4  6088              STR      r0,[r1,#8]
0000b6  68a9              LDR      r1,[r5,#8]
0000b8  6be0              LDR      r0,[r4,#0x3c]
0000ba  6048              STR      r0,[r1,#4]
                  |L14.188|
;;;420        break;
;;;421      }
;;;422      WM_DefaultProc(pMsg);
0000bc  4628              MOV      r0,r5
0000be  e8bd4070          POP      {r4-r6,lr}
0000c2  f7ffbffe          B.W      WM_DefaultProc
                  |L14.198|
;;;423    }
0000c6  bd70              POP      {r4-r6,pc}
;;;424    
                          ENDP


                          AREA ||.data||, DATA, ALIGN=2

                  SCROLLBAR__DefaultWidth
000000  000b              DCW      0x000b
000002  0000              DCB      0x00,0x00
                  SCROLLBAR__aDefaultBkColor
                          DCD      0x00808080
                          DCD      0x00000000
                  SCROLLBAR__aDefaultColor
                          DCD      0x00c0c0c0
                          DCD      0x00000000

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -