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

📄 header.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 TXT
📖 第 1 页 / 共 4 页
字号:
000032  f1070b04          ADD      r11,r7,#4
000036  f1a90a01          SUB      r10,r9,#1
00003a  9001              STR      r0,[sp,#4]
00003c  e016              B        |L29.108|
                  |L29.62|
00003e  4621              MOV      r1,r4
000040  9802              LDR      r0,[sp,#8]
000042  f7fffffe          BL       GUI_ARRAY_GetpItem
000046  6800              LDR      r0,[r0,#0]
000048  4405              ADD      r5,r5,r0
00004a  9801              LDR      r0,[sp,#4]
00004c  4285              CMP      r5,r0
00004e  db0c              BLT      |L29.106|
000050  455d              CMP      r5,r11
000052  dc0a              BGT      |L29.106|
000054  46a0              MOV      r8,r4
000056  4554              CMP      r4,r10
000058  da07              BGE      |L29.106|
00005a  42af              CMP      r7,r5
00005c  da05              BGE      |L29.106|
00005e  1c61              ADDS     r1,r4,#1
000060  9802              LDR      r0,[sp,#8]
000062  f7fffffe          BL       GUI_ARRAY_GetpItem
000066  6800              LDR      r0,[r0,#0]
000068  b110              CBZ      r0,|L29.112|
                  |L29.106|
00006a  1c64              ADDS     r4,r4,#1
                  |L29.108|
00006c  454c              CMP      r4,r9
00006e  dbe6              BLT      |L29.62|
                  |L29.112|
;;;215      int Hit = _GetItemIndex(hObj, pObj, x, y);
;;;216      /* set capture position () */
;;;217      if ((Pressed == 1) && (Hit >= 0) && (pObj->CapturePosX == -1)) {
000070  9910              LDR      r1,[sp,#0x40]
000072  4640              MOV      r0,r8
000074  2901              CMP      r1,#1
000076  d107              BNE      |L29.136|
000078  2800              CMP      r0,#0
00007a  db0b              BLT      |L29.148|
00007c  6b71              LDR      r1,[r6,#0x34]
00007e  1c49              ADDS     r1,r1,#1
000080  d104              BNE      |L29.140|
;;;218        pObj->CapturePosX = x;
;;;219        pObj->CaptureItem = Hit;
000082  e9c6700d          STRD     r7,r0,[r6,#0x34]
000086  e001              B        |L29.140|
                  |L29.136|
;;;220      }
;;;221      /* set mouse cursor and capture () */
;;;222      if (Hit >= 0) {
000088  2800              CMP      r0,#0
00008a  db03              BLT      |L29.148|
                  |L29.140|
;;;223        WM_SetCapture(hObj, 1);
00008c  2101              MOVS     r1,#1
00008e  9803              LDR      r0,[sp,#0xc]
000090  f7fffffe          BL       WM_SetCapture
                  |L29.148|
;;;224        #if GUI_SUPPORT_CURSOR
;;;225          if (!_pOldCursor) {
;;;226            _pOldCursor = GUI_CURSOR_Select(_pDefaultCursor);
;;;227          }
;;;228        #endif
;;;229      }
;;;230      /* modify header */
;;;231      if ((pObj->CapturePosX >= 0) && (x != pObj->CapturePosX) && (Pressed == 1)) {
000094  6b70              LDR      r0,[r6,#0x34]
000096  2800              CMP      r0,#0
000098  db14              BLT      |L29.196|
00009a  42b8              CMP      r0,r7
00009c  d012              BEQ      |L29.196|
00009e  9810              LDR      r0,[sp,#0x40]
0000a0  2801              CMP      r0,#1
0000a2  d10f              BNE      |L29.196|
;;;232        int NewSize = HEADER_GetItemWidth(hObj, pObj->CaptureItem) + x - pObj->CapturePosX;
0000a4  6bb1              LDR      r1,[r6,#0x38]
0000a6  9803              LDR      r0,[sp,#0xc]
0000a8  f7fffffe          BL       HEADER_GetItemWidth
0000ac  6b71              LDR      r1,[r6,#0x34]
0000ae  4438              ADD      r0,r0,r7
0000b0  1a42              SUBS     r2,r0,r1
;;;233        if (NewSize >= 0) {
0000b2  d404              BMI      |L29.190|
;;;234          HEADER_SetItemWidth(hObj, pObj->CaptureItem, NewSize);
0000b4  6bb1              LDR      r1,[r6,#0x38]
0000b6  9803              LDR      r0,[sp,#0xc]
0000b8  f7fffffe          BL       HEADER_SetItemWidth
;;;235          pObj->CapturePosX = x;
0000bc  6377              STR      r7,[r6,#0x34]
                  |L29.190|
;;;236        }
;;;237      }
;;;238      /* release capture & restore cursor */
;;;239      if (Pressed <= 0) {
;;;240        #if (GUI_SUPPORT_MOUSE)
;;;241        if (Hit == -1)
;;;242        #endif
;;;243        {
;;;244          _RestoreOldCursor();
;;;245          pObj->CapturePosX = -1;
;;;246          WM_ReleaseCapture();
;;;247        }
;;;248      }
;;;249    }
0000be  b007              ADD      sp,sp,#0x1c
0000c0  e8bd8ff0          POP      {r4-r11,pc}
                  |L29.196|
0000c4  9810              LDR      r0,[sp,#0x40]         ;239
0000c6  2800              CMP      r0,#0                 ;239
0000c8  dcf9              BGT      |L29.190|
0000ca  f7fffffe          BL       _RestoreOldCursor
0000ce  f04f30ff          MOV      r0,#0xffffffff        ;245
0000d2  6370              STR      r0,[r6,#0x34]         ;246
0000d4  b007              ADD      sp,sp,#0x1c           ;246
0000d6  e8bd4ff0          POP      {r4-r11,lr}           ;246
0000da  f7ffbffe          B.W      WM_ReleaseCapture
;;;250    #endif
                          ENDP


                          AREA ||i._Paint||, CODE, READONLY, ALIGN=2

                  _Paint PROC
;;;94     */
;;;95     static void _Paint(/*HEADER_Handle hObj, */HEADER_Obj* pObj) {
000000  e92d4ffe          PUSH     {r1-r11,lr}
000004  4606              MOV      r6,r0
;;;96       GUI_RECT Rect;
;;;97       int i, xPos = -pObj->ScrollPos;
000006  6bc0              LDR      r0,[r0,#0x3c]
000008  4245              RSBS     r5,r0,#0
;;;98       int NumItems = GUI_ARRAY_GetNumItems(&pObj->Columns);
00000a  f1060030          ADD      r0,r6,#0x30
00000e  9002              STR      r0,[sp,#8]
000010  f7fffffe          BL       GUI_ARRAY_GetNumItems
000014  4683              MOV      r11,r0
;;;99       int EffectSize = pObj->Widget.pEffect->EffectSize;
000016  6a30              LDR      r0,[r6,#0x20]
;;;100      LCD_SetBkColor(pObj->BkColor);
000018  f8d0a014          LDR      r10,[r0,#0x14]
00001c  6ab0              LDR      r0,[r6,#0x28]
00001e  f7fffffe          BL       LCD_SetBkColor
;;;101      GUI_SetFont(pObj->pFont);
000022  6c30              LDR      r0,[r6,#0x40]
000024  f7fffffe          BL       GUI_SetFont
;;;102      GUI_Clear();
000028  f7fffffe          BL       GUI_Clear
;;;103      for (i = 0; i < NumItems; i++) {
00002c  2000              MOVS     r0,#0
00002e  e082              B        |L30.310|
                  |L30.48|
;;;104        HEADER_COLUMN * pColumn = (HEADER_COLUMN*)GUI_ARRAY_GetpItem(&pObj->Columns, i);
000030  4641              MOV      r1,r8
000032  9802              LDR      r0,[sp,#8]
000034  f7fffffe          BL       GUI_ARRAY_GetpItem
000038  4604              MOV      r4,r0
;;;105        GUI_GetClientRect(&Rect);
00003a  4668              MOV      r0,sp
00003c  f7fffffe          BL       GUI_GetClientRect
;;;106        Rect.x0 = xPos;
000040  f8ad5000          STRH     r5,[sp,#0]
;;;107        Rect.x1 = Rect.x0 + pColumn->Width;
000044  6820              LDR      r0,[r4,#0]
000046  4428              ADD      r0,r0,r5
000048  f8ad0004          STRH     r0,[sp,#4]
;;;108        if (pColumn->hDrawObj) {
00004c  f9b40006          LDRSH    r0,[r4,#6]
000050  b3b8              CBZ      r0,|L30.194|
;;;109          int xOff = 0, yOff = 0;
;;;110          switch (pColumn->Align & GUI_TA_HORIZONTAL) {
000052  88a1              LDRH     r1,[r4,#4]
000054  2700              MOVS     r7,#0                 ;109
000056  f0010103          AND      r1,r1,#3
00005a  46b9              MOV      r9,r7                 ;109
00005c  2901              CMP      r1,#1
00005e  d01f              BEQ      |L30.160|
000060  2902              CMP      r1,#2
000062  d106              BNE      |L30.114|
;;;111            case GUI_TA_RIGHT:
;;;112              xOff = (pColumn->Width - GUI_DRAW__GetXSize(pColumn->hDrawObj));
;;;113              break;
;;;114            case GUI_TA_HCENTER:
;;;115              xOff = (pColumn->Width - GUI_DRAW__GetXSize(pColumn->hDrawObj)) / 2;
000064  f7fffffe          BL       GUI_DRAW__GetXSize
000068  6821              LDR      r1,[r4,#0]
00006a  1a08              SUBS     r0,r1,r0
00006c  eb0070d0          ADD      r0,r0,r0,LSR #31
000070  1047              ASRS     r7,r0,#1
                  |L30.114|
;;;116              break;
;;;117          }
;;;118          switch (pColumn->Align & GUI_TA_VERTICAL) {
000072  88a0              LDRH     r0,[r4,#4]
000074  f000000c          AND      r0,r0,#0xc
000078  2804              CMP      r0,#4
00007a  d016              BEQ      |L30.170|
00007c  280c              CMP      r0,#0xc
00007e  d121              BNE      |L30.196|
;;;119    	      case GUI_TA_BOTTOM:
;;;120              yOff = ((Rect.y1 - Rect.y0 + 1) - GUI_DRAW__GetYSize(pColumn->hDrawObj));
;;;121              break;
;;;122    	      case GUI_TA_VCENTER:
;;;123              yOff = ((Rect.y1 - Rect.y0 + 1) - GUI_DRAW__GetYSize(pColumn->hDrawObj)) / 2;
000080  f9b40006          LDRSH    r0,[r4,#6]
000084  f7fffffe          BL       GUI_DRAW__GetYSize
000088  f9bd1006          LDRSH    r1,[sp,#6]
00008c  f9bd2002          LDRSH    r2,[sp,#2]
000090  1a89              SUBS     r1,r1,r2
000092  1a08              SUBS     r0,r1,r0
000094  1c40              ADDS     r0,r0,#1
000096  eb0070d0          ADD      r0,r0,r0,LSR #31
00009a  1040              ASRS     r0,r0,#1
                  |L30.156|
00009c  4681              MOV      r9,r0                 ;120
00009e  e011              B        |L30.196|
                  |L30.160|
0000a0  f7fffffe          BL       GUI_DRAW__GetXSize
0000a4  6821              LDR      r1,[r4,#0]            ;112
0000a6  1a0f              SUBS     r7,r1,r0              ;112
0000a8  e7e3              B        |L30.114|
                  |L30.170|
0000aa  f9b40006          LDRSH    r0,[r4,#6]            ;120
0000ae  f7fffffe          BL       GUI_DRAW__GetYSize
0000b2  f9bd1006          LDRSH    r1,[sp,#6]            ;120
0000b6  f9bd2002          LDRSH    r2,[sp,#2]            ;120
0000ba  1a89              SUBS     r1,r1,r2              ;120
0000bc  1a08              SUBS     r0,r1,r0              ;120
0000be  1c40              ADDS     r0,r0,#1              ;120
0000c0  e7ec              B        |L30.156|
                  |L30.194|
0000c2  e00b              B        |L30.220|
                  |L30.196|
;;;124              break;
;;;125          }
;;;126          WM_SetUserClipRect(&Rect);
0000c4  4668              MOV      r0,sp
0000c6  f7fffffe          BL       WM_SetUserClipRect
;;;127          GUI_DRAW__Draw(pColumn->hDrawObj, xPos + xOff, yOff);
0000ca  19e9              ADDS     r1,r5,r7
0000cc  f9b40006          LDRSH    r0,[r4,#6]
0000d0  464a              MOV      r2,r9
0000d2  f7fffffe          BL       GUI_DRAW__Draw
;;;128          WM_SetUserClipRect(NULL);
0000d6  2000              MOVS     r0,#0
0000d8  f7fffffe          BL       WM_SetUserClipRect
                  |L30.220|
;;;129        }
;;;130        WIDGET__EFFECT_DrawUpRect(&pObj->Widget, &Rect);
0000dc  4669              MOV      r1,sp
0000de  4630              MOV      r0,r6
0000e0  f7fffffe          BL       WIDGET__EFFECT_DrawUpRect
;;;131        xPos += Rect.x1 - Rect.x0;
0000e4  f9bd0004          LDRSH    r0,[sp,#4]
0000e8  f9bd1000          LDRSH    r1,[sp,#0]
;;;132        Rect.x0 += EffectSize + _DefaultBorderH;
0000ec  4b1b              LDR      r3,|L30.348|
0000ee  1a42              SUBS     r2,r0,r1              ;131
0000f0  68df              LDR      r7,[r3,#0xc]  ; _DefaultBorderH
0000f2  4415              ADD      r5,r5,r2              ;131
0000f4  eb0a0207          ADD      r2,r10,r7
0000f8  4411              ADD      r1,r1,r2
;;;133        Rect.x1 -= EffectSize + _DefaultBorderH;
0000fa  1a80              SUBS     r0,r0,r2
0000fc  f8ad1000          STRH     r1,[sp,#0]            ;132
000100  f8ad0004          STRH     r0,[sp,#4]
;;;134        Rect.y0 += EffectSize + _DefaultBorderV;
000104  691a              LDR      r2,[r3,#0x10]  ; _DefaultBorderV
000106  f8bd1002          LDRH     r1,[sp,#2]
00010a  eb0a0002          ADD      r0,r10,r2
00010e  4401              ADD      r1,r1,r0
000110  f8ad1002          STRH     r1,[sp,#2]
;;;135        Rect.y1 -= EffectSize + _DefaultBorderV;
000114  f8bd1006          LDRH     r1,[sp,#6]
000118  1a08              SUBS     r0,r1,r0
00011a  f8ad0006          STRH     r0,[sp,#6]
;;;136        LCD_SetColor(pObj->TextColor);
00011e  6af0              LDR      r0,[r6,#0x2c]
000120  f7fffffe          BL       LCD_SetColor
;;;137        GUI_DispStringInRect(pColumn->acText, &Rect, pColumn->Align);
000124  f9b42004          LDRSH    r2,[r4,#4]
000128  4669              MOV      r1,sp
00012a  f1040008          ADD      r0,r4,#8
00012e  f7fffffe          BL       GUI_DispStringInRect
000132  f1080001          ADD      r0,r8,#1              ;103
                  |L30.310|
000136  4680              MOV      r8,r0                 ;103
000138  4558              CMP      r0,r11                ;103
00013a  f6ffaf79          BLT      |L30.48|
;;;138      }
;;;139      GUI_GetClientRect(&Rect);
00013e  4668              MOV      r0,sp
000140  f7fffffe          BL       GUI_GetClientRect
;;;140      Rect.x0 = xPos;
;;;141      Rect.x1 = 0xfff;
000144  f64070ff          MOV      r0,#0xfff
000148  f8ad0004          STRH     r0,[sp,#4]
00014c  f8ad5000          STRH     r5,[sp,#0]            ;140
;;;142      WIDGET__EFFECT_DrawUpRect(&pObj->Widget, &Rect);
000150  4669              MOV      r1,sp
000152  4630              MOV      r0,r6
000154  f7fffffe          BL       WIDGET__EFFECT_DrawUpRect
;;;143    }
000158  e8bd8ffe          POP      {r1-r11,pc}
;;;144    
                          ENDP

                  |L30.348|
                          DCD      ||.data||

                          AREA ||i._RestoreOldCursor||, CODE, READONLY, ALIGN=2

                  _RestoreOldCursor PROC
;;;148    */
;;;149    static void _RestoreOldCursor(void) {
000000  4803              LDR      r0,|L31.16|
;;;150      if (_pOldCursor) {
000002  6981              LDR      r1,[r0,#0x18]  ; _pOldCursor
000004  2900              CMP      r1,#0
000006  d001              BEQ      |L31.12|
;;;151        #if GUI_SUPPORT_CURSOR
;;;152          GUI_CURSOR_Select(_pOldCursor);
;;;153        #endif
;;;154        _pOldCursor = 0;
000008  2100              MOVS     r1,#0
00000a  6181              STR      r1,[r0,#0x18]  ; _pOldCursor
                  |L31.12|
;;;155      }
;;;156    }
00000c  4770              BX       lr
;;;157    
                          ENDP

00000e  0000              DCW      0x0000
                  |L31.16|
                          DCD      ||.data||

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

                  _pDefaultCursor
                          DCD      GUI_CursorHeaderM
                  _DefaultBkColor
                          DCD      0x00aaaaaa
                  _DefaultTextColor
                          DCD      0x00000000
                  _DefaultBorderH
                          DCD      0x00000002
                  _DefaultBorderV
                          DCD      0x00000000
                  _pDefaultFont
                          DCD      GUI_Font13_1
                  _pOldCursor
                          DCD      0x00000000

⌨️ 快捷键说明

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