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

📄 header.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 TXT
📖 第 1 页 / 共 4 页
字号:
;;;619    void HEADER_SetItemText(HEADER_Handle hObj, unsigned int Index, const char* s) {
000000  b570              PUSH     {r4-r6,lr}
000002  460d              MOV      r5,r1
000004  4614              MOV      r4,r2
;;;620      if (hObj) {
000006  2800              CMP      r0,#0
000008  d018              BEQ      |L23.60|
;;;621        HEADER_Obj* pObj;
;;;622        WM_LOCK();
;;;623        pObj = HEADER_H2P(hObj);
00000a  f7fffffe          BL       GUI_ALLOC_h2p
;;;624        if (Index < GUI_ARRAY_GetNumItems(&pObj->Columns)) {
00000e  3030              ADDS     r0,r0,#0x30
000010  4606              MOV      r6,r0
000012  f7fffffe          BL       GUI_ARRAY_GetNumItems
000016  42a8              CMP      r0,r5
000018  d910              BLS      |L23.60|
;;;625          HEADER_COLUMN* pColumn;
;;;626          pColumn = (HEADER_COLUMN*)GUI_ARRAY_ResizeItem(&pObj->Columns, Index, sizeof(HEADER_COLUMN) + strlen(s));
00001a  4620              MOV      r0,r4
00001c  f7fffffe          BL       strlen
000020  f100020c          ADD      r2,r0,#0xc
000024  4629              MOV      r1,r5
000026  4630              MOV      r0,r6
000028  f7fffffe          BL       GUI_ARRAY_ResizeItem
;;;627          if (pColumn) {
00002c  2800              CMP      r0,#0
00002e  d005              BEQ      |L23.60|
;;;628            strcpy(pColumn->acText, s);
000030  4621              MOV      r1,r4
000032  e8bd4070          POP      {r4-r6,lr}
000036  3008              ADDS     r0,r0,#8
000038  f7ffbffe          B.W      strcpy
                  |L23.60|
;;;629          }
;;;630        }
;;;631        WM_UNLOCK();
;;;632      }
;;;633    }
00003c  bd70              POP      {r4-r6,pc}
;;;634    
                          ENDP


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

                  HEADER_SetItemWidth PROC
;;;638    */
;;;639    void HEADER_SetItemWidth(HEADER_Handle hObj, unsigned int Index, int Width) {
000000  e92d41f0          PUSH     {r4-r8,lr}
000004  0004              MOVS     r4,r0
000006  460e              MOV      r6,r1
000008  4615              MOV      r5,r2
;;;640      if (hObj && (Width >= 0)) {
00000a  d021              BEQ      |L24.80|
00000c  2d00              CMP      r5,#0
00000e  db1f              BLT      |L24.80|
;;;641        HEADER_Obj * pObj;
;;;642        WM_LOCK();
;;;643        pObj = HEADER_H2P(hObj);
000010  4620              MOV      r0,r4
000012  f7fffffe          BL       GUI_ALLOC_h2p
;;;644        if (Index <= GUI_ARRAY_GetNumItems(&pObj->Columns)) {
000016  3030              ADDS     r0,r0,#0x30
000018  4607              MOV      r7,r0
00001a  f7fffffe          BL       GUI_ARRAY_GetNumItems
00001e  42b0              CMP      r0,r6
000020  d316              BCC      |L24.80|
;;;645          HEADER_COLUMN * pColumn;
;;;646          pColumn = (HEADER_COLUMN *)GUI_ARRAY_GetpItem(&pObj->Columns, Index);
000022  4631              MOV      r1,r6
000024  4638              MOV      r0,r7
000026  f7fffffe          BL       GUI_ARRAY_GetpItem
;;;647          if (pColumn) {
00002a  2800              CMP      r0,#0
00002c  d010              BEQ      |L24.80|
;;;648            pColumn->Width = Width;
;;;649            WM_InvalidateWindow(hObj);
00002e  6005              STR      r5,[r0,#0]
000030  4620              MOV      r0,r4
000032  f7fffffe          BL       WM_InvalidateWindow
;;;650            WM__SendMsgNoData(WM_GetParent(hObj), WM_NOTIFY_CLIENTCHANGE);
000036  4620              MOV      r0,r4
000038  f7fffffe          BL       WM_GetParent
00003c  2125              MOVS     r1,#0x25
00003e  f7fffffe          BL       WM__SendMsgNoData
;;;651            WM_InvalidateWindow(WM_GetParent(hObj));
000042  4620              MOV      r0,r4
000044  f7fffffe          BL       WM_GetParent
000048  e8bd41f0          POP      {r4-r8,lr}
00004c  f7ffbffe          B.W      WM_InvalidateWindow
                  |L24.80|
;;;652          }
;;;653        }
;;;654        WM_UNLOCK();
;;;655      }
;;;656    }
000050  e8bd81f0          POP      {r4-r8,pc}
;;;657    
                          ENDP


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

                  HEADER_SetScrollPos PROC
;;;550    */
;;;551    void HEADER_SetScrollPos(HEADER_Handle hObj, int ScrollPos) {
000000  b570              PUSH     {r4-r6,lr}
000002  0005              MOVS     r5,r0
000004  460c              MOV      r4,r1
;;;552      if (hObj && (ScrollPos >= 0)) {
000006  d012              BEQ      |L25.46|
000008  2c00              CMP      r4,#0
00000a  db10              BLT      |L25.46|
;;;553        HEADER_Obj* pObj;
;;;554        WM_LOCK();
;;;555        pObj = HEADER_H2P(hObj);
00000c  4628              MOV      r0,r5
00000e  f7fffffe          BL       GUI_ALLOC_h2p
;;;556        if (ScrollPos != pObj->ScrollPos) {
000012  6bc1              LDR      r1,[r0,#0x3c]
000014  42a1              CMP      r1,r4
000016  d00a              BEQ      |L25.46|
;;;557          pObj->ScrollPos = ScrollPos;
;;;558          WM_Invalidate(hObj);
000018  63c4              STR      r4,[r0,#0x3c]
00001a  4628              MOV      r0,r5
00001c  f7fffffe          BL       WM_InvalidateWindow
;;;559          WM_InvalidateWindow(WM_GetParent(hObj));
000020  4628              MOV      r0,r5
000022  f7fffffe          BL       WM_GetParent
000026  e8bd4070          POP      {r4-r6,lr}
00002a  f7ffbffe          B.W      WM_InvalidateWindow
                  |L25.46|
;;;560        }
;;;561        WM_UNLOCK();
;;;562      }
;;;563    }
00002e  bd70              POP      {r4-r6,pc}
;;;564    
                          ENDP


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

                  HEADER_SetTextAlign PROC
;;;531    */
;;;532    void HEADER_SetTextAlign(HEADER_Handle hObj, unsigned int Index, int Align) {
000000  e92d41f0          PUSH     {r4-r8,lr}
000004  0004              MOVS     r4,r0
000006  460e              MOV      r6,r1
000008  4615              MOV      r5,r2
;;;533      if (hObj) {
00000a  d012              BEQ      |L26.50|
;;;534        HEADER_Obj * pObj;
;;;535        WM_LOCK();
;;;536        pObj = HEADER_H2P(hObj);
00000c  4620              MOV      r0,r4
00000e  f7fffffe          BL       GUI_ALLOC_h2p
;;;537        if (Index <= GUI_ARRAY_GetNumItems(&pObj->Columns)) {
000012  3030              ADDS     r0,r0,#0x30
000014  4607              MOV      r7,r0
000016  f7fffffe          BL       GUI_ARRAY_GetNumItems
00001a  42b0              CMP      r0,r6
00001c  d309              BCC      |L26.50|
;;;538          HEADER_COLUMN * pColumn;
;;;539          pColumn = (HEADER_COLUMN *)GUI_ARRAY_GetpItem(&pObj->Columns, Index);
00001e  4631              MOV      r1,r6
000020  4638              MOV      r0,r7
000022  f7fffffe          BL       GUI_ARRAY_GetpItem
;;;540          pColumn->Align = Align;
000026  8085              STRH     r5,[r0,#4]
;;;541          WM_InvalidateWindow(hObj);
000028  4620              MOV      r0,r4
00002a  e8bd41f0          POP      {r4-r8,lr}
00002e  f7ffbffe          B.W      WM_InvalidateWindow
                  |L26.50|
;;;542        }
;;;543        WM_UNLOCK();
;;;544      }
;;;545    }
000032  e8bd81f0          POP      {r4-r8,pc}
;;;546    
                          ENDP


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

                  HEADER_SetTextColor PROC
;;;501    */
;;;502    void HEADER_SetTextColor(HEADER_Handle hObj, GUI_COLOR Color) {
000000  b570              PUSH     {r4-r6,lr}
000002  0004              MOVS     r4,r0
000004  460d              MOV      r5,r1
;;;503      if (hObj) {
000006  d008              BEQ      |L27.26|
;;;504        HEADER_Obj * pObj;
;;;505        WM_LOCK();
;;;506        pObj = HEADER_H2P(hObj);
000008  4620              MOV      r0,r4
00000a  f7fffffe          BL       GUI_ALLOC_h2p
;;;507        pObj->TextColor = Color;
;;;508        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
                  |L27.26|
;;;509        WM_UNLOCK();
;;;510      }
;;;511    }
00001a  bd70              POP      {r4-r6,pc}
;;;512    
                          ENDP


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

                  _HEADER_Callback PROC
;;;292    */
;;;293    static void _HEADER_Callback (WM_MESSAGE *pMsg) {
000000  b5f8              PUSH     {r3-r7,lr}
;;;294      HEADER_Handle hObj;
;;;295      HEADER_Obj * pObj;
;;;296      hObj = pMsg->hWin;
000002  f9b06004          LDRSH    r6,[r0,#4]
000006  4605              MOV      r5,r0                 ;293
;;;297      /* Let widget handle the standard messages */
;;;298      if (WIDGET_HandleActive(hObj, pMsg) == 0) {
000008  4601              MOV      r1,r0
00000a  4630              MOV      r0,r6
00000c  f7fffffe          BL       WIDGET_HandleActive
000010  2800              CMP      r0,#0
000012  d044              BEQ      |L28.158|
;;;299        return;
;;;300      }
;;;301      WM_LOCK();
;;;302      pObj = HEADER_H2P(hObj);
000014  4630              MOV      r0,r6
000016  f7fffffe          BL       GUI_ALLOC_h2p
;;;303      switch (pMsg->MsgId) {
00001a  6829              LDR      r1,[r5,#0]
00001c  290b              CMP      r1,#0xb
00001e  d021              BEQ      |L28.100|
000020  290c              CMP      r1,#0xc
000022  d005              BEQ      |L28.48|
000024  290f              CMP      r1,#0xf
000026  d135              BNE      |L28.148|
;;;304        case WM_PAINT:
;;;305          _Paint(/*hObj, */pObj);
000028  e8bd40f8          POP      {r3-r7,lr}
00002c  f7ffbffe          B.W      _Paint
                  |L28.48|
000030  68ac              LDR      r4,[r5,#8]
000032  b18c              CBZ      r4,|L28.88|
000034  7a23              LDRB     r3,[r4,#8]
000036  9300              STR      r3,[sp,#0]
000038  6821              LDR      r1,[r4,#0]
00003a  6bc2              LDR      r2,[r0,#0x3c]
00003c  6863              LDR      r3,[r4,#4]
00003e  440a              ADD      r2,r2,r1
000040  4601              MOV      r1,r0
000042  4630              MOV      r0,r6
000044  f7fffffe          BL       _HandlePID
000048  68a8              LDR      r0,[r5,#8]
00004a  b128              CBZ      r0,|L28.88|
00004c  7a20              LDRB     r0,[r4,#8]
00004e  b108              CBZ      r0,|L28.84|
000050  2101              MOVS     r1,#1
000052  e002              B        |L28.90|
                  |L28.84|
000054  2102              MOVS     r1,#2
000056  e000              B        |L28.90|
                  |L28.88|
000058  2103              MOVS     r1,#3
                  |L28.90|
00005a  4630              MOV      r0,r6
00005c  e8bd40f8          POP      {r3-r7,lr}
000060  f7ffbffe          B.W      WM_NotifyParent
                  |L28.100|
000064  3030              ADDS     r0,r0,#0x30
000066  4607              MOV      r7,r0
000068  f7fffffe          BL       GUI_ARRAY_GetNumItems
00006c  4606              MOV      r6,r0
00006e  2400              MOVS     r4,#0
000070  e009              B        |L28.134|
                  |L28.114|
000072  4621              MOV      r1,r4
000074  4638              MOV      r0,r7
000076  f7fffffe          BL       GUI_ARRAY_GetpItem
00007a  f9b00006          LDRSH    r0,[r0,#6]
00007e  b108              CBZ      r0,|L28.132|
000080  f7fffffe          BL       GUI_ALLOC_Free
                  |L28.132|
000084  1c64              ADDS     r4,r4,#1
                  |L28.134|
000086  42b4              CMP      r4,r6
000088  dbf3              BLT      |L28.114|
00008a  4638              MOV      r0,r7
00008c  f7fffffe          BL       GUI_ARRAY_Delete
000090  f7fffffe          BL       _RestoreOldCursor
                  |L28.148|
;;;306          break;
;;;307    #if (HEADER_SUPPORT_DRAG)
;;;308        case WM_TOUCH:
;;;309          _OnTouch(hObj, pObj, pMsg);
;;;310          break;
;;;311    #endif
;;;312    #if (HEADER_SUPPORT_DRAG & GUI_SUPPORT_MOUSE)
;;;313        case WM_MOUSEOVER:
;;;314          _OnMouseOver(hObj, pObj, pMsg);
;;;315          break;
;;;316    #endif
;;;317        case WM_DELETE:
;;;318          _FreeAttached(pObj); /* No return here ... WM_DefaultProc needs to be called */
;;;319        default:
;;;320          WM_DefaultProc(pMsg);
000094  4628              MOV      r0,r5
000096  e8bd40f8          POP      {r3-r7,lr}
00009a  f7ffbffe          B.W      WM_DefaultProc
                  |L28.158|
;;;321      }
;;;322      WM_UNLOCK();
;;;323    }
00009e  bdf8              POP      {r3-r7,pc}
;;;324    
                          ENDP


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

                  _HandlePID PROC
;;;213    #if (HEADER_SUPPORT_DRAG)
;;;214    static void _HandlePID(HEADER_Handle hObj, HEADER_Obj * pObj, int x, int y, int Pressed) {
000000  e92d4fff          PUSH     {r0-r11,lr}
000004  b083              SUB      sp,sp,#0xc
000006  460e              MOV      r6,r1
000008  4617              MOV      r7,r2
00000a  1e1c              SUBS     r4,r3,#0
00000c  f04f38ff          MOV      r8,#0xffffffff
000010  db2e              BLT      |L29.112|
000012  9803              LDR      r0,[sp,#0xc]
000014  f7fffffe          BL       WM_GetWindowSizeY
000018  42a0              CMP      r0,r4
00001a  dd29              BLE      |L29.112|
00001c  9803              LDR      r0,[sp,#0xc]
00001e  b338              CBZ      r0,|L29.112|
000020  f1060030          ADD      r0,r6,#0x30
000024  2500              MOVS     r5,#0
000026  9002              STR      r0,[sp,#8]
000028  f7fffffe          BL       GUI_ARRAY_GetNumItems
00002c  4681              MOV      r9,r0
00002e  2400              MOVS     r4,#0
000030  1f38              SUBS     r0,r7,#4

⌨️ 快捷键说明

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