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

📄 listview.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 TXT
📖 第 1 页 / 共 5 页
字号:
000096  4618              MOV      r0,r3
000098  9500              STR      r5,[sp,#0]
00009a  9303              STR      r3,[sp,#0xc]
00009c  f7fffffe          BL       HEADER_CreateEx
0000a0  8520              STRH     r0,[r4,#0x28]
;;;616        LISTVIEW__UpdateScrollParas(hObj, pObj);
0000a2  4621              MOV      r1,r4
0000a4  4628              MOV      r0,r5
0000a6  f7fffffe          BL       LISTVIEW__UpdateScrollParas
                  |L3.170|
;;;617        WM_UNLOCK();
;;;618      } else {
;;;619        GUI_DEBUG_ERROROUT_IF(hObj==0, "LISTVIEW_Create failed")
;;;620      }
;;;621      return hObj;
0000aa  4628              MOV      r0,r5
;;;622    }
0000ac  b004              ADD      sp,sp,#0x10
0000ae  e8bd87f0          POP      {r4-r10,pc}
;;;623    
                          ENDP

0000b2  0000              DCW      0x0000
                  |L3.180|
                          DCD      _LISTVIEW_Callback
                  |L3.184|
                          DCD      ||.data||

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

                  LISTVIEW_DecSel PROC
;;;642    */
;;;643    void LISTVIEW_DecSel(LISTVIEW_Handle hObj) {
000000  b510              PUSH     {r4,lr}
000002  4604              MOV      r4,r0
;;;644      int Sel = LISTVIEW_GetSel(hObj);
000004  f7fffffe          BL       LISTVIEW_GetSel
;;;645      if (Sel) {
000008  2800              CMP      r0,#0
00000a  d005              BEQ      |L4.24|
;;;646        LISTVIEW_SetSel(hObj, Sel - 1);
00000c  1e41              SUBS     r1,r0,#1
00000e  4620              MOV      r0,r4
000010  e8bd4010          POP      {r4,lr}
000014  f7ffbffe          B.W      LISTVIEW_SetSel
                  |L4.24|
;;;647      }
;;;648    }
000018  bd10              POP      {r4,pc}
;;;649    
                          ENDP


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

                  LISTVIEW_IncSel PROC
;;;633    */
;;;634    void LISTVIEW_IncSel(LISTVIEW_Handle hObj) {
000000  b510              PUSH     {r4,lr}
000002  4604              MOV      r4,r0
;;;635      int Sel = LISTVIEW_GetSel(hObj);
000004  f7fffffe          BL       LISTVIEW_GetSel
;;;636      LISTVIEW_SetSel(hObj, Sel + 1);
000008  1c41              ADDS     r1,r0,#1
00000a  4620              MOV      r0,r4
00000c  e8bd4010          POP      {r4,lr}
000010  f7ffbffe          B.W      LISTVIEW_SetSel
;;;637    }
;;;638    
                          ENDP


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

                  LISTVIEW__GetRowDistY PROC
;;;105    */
;;;106    unsigned LISTVIEW__GetRowDistY(const LISTVIEW_Obj* pObj) {
000000  b510              PUSH     {r4,lr}
000002  4604              MOV      r4,r0
;;;107      unsigned RowDistY;
;;;108      if (pObj->RowDistY) {
000004  6dc0              LDR      r0,[r0,#0x5c]
000006  2800              CMP      r0,#0
000008  d106              BNE      |L6.24|
;;;109        RowDistY = pObj->RowDistY;
;;;110      } else {
;;;111        RowDistY = GUI_GetYDistOfFont(pObj->Props.pFont);
00000a  6d20              LDR      r0,[r4,#0x50]
00000c  f7fffffe          BL       GUI_GetYDistOfFont
;;;112        if (pObj->ShowGrid) {
000010  6da1              LDR      r1,[r4,#0x58]
000012  2900              CMP      r1,#0
000014  d000              BEQ      |L6.24|
;;;113          RowDistY++;
000016  1c40              ADDS     r0,r0,#1
                  |L6.24|
;;;114        }
;;;115      }
;;;116      return RowDistY;
;;;117    }
000018  bd10              POP      {r4,pc}
;;;118    
                          ENDP


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

                  LISTVIEW__InvalidateInsideArea PROC
;;;280    */
;;;281    void LISTVIEW__InvalidateInsideArea(LISTVIEW_Handle hObj, LISTVIEW_Obj* pObj) {
000000  b57c              PUSH     {r2-r6,lr}
000002  4605              MOV      r5,r0
;;;282      GUI_RECT Rect;
;;;283      int HeaderHeight;
;;;284      HeaderHeight = HEADER_GetHeight(pObj->hHeader);
000004  f9b10028          LDRSH    r0,[r1,#0x28]
000008  f7fffffe          BL       HEADER_GetHeight
00000c  4604              MOV      r4,r0
;;;285      WM_GetInsideRectExScrollbar(hObj, &Rect);
00000e  4669              MOV      r1,sp
000010  4628              MOV      r0,r5
000012  f7fffffe          BL       WM_GetInsideRectExScrollbar
;;;286      Rect.y0 += HeaderHeight;
000016  f8bd0002          LDRH     r0,[sp,#2]
;;;287      WM_InvalidateRect(hObj, &Rect);
00001a  4669              MOV      r1,sp
00001c  4420              ADD      r0,r0,r4              ;286
00001e  f8ad0002          STRH     r0,[sp,#2]            ;286
000022  4628              MOV      r0,r5
000024  f7fffffe          BL       WM_InvalidateRect
;;;288    }
000028  bd7c              POP      {r2-r6,pc}
;;;289    
                          ENDP


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

                  LISTVIEW__InvalidateRow PROC
;;;293    */
;;;294    void LISTVIEW__InvalidateRow(LISTVIEW_Handle hObj, LISTVIEW_Obj* pObj, int Sel) {
000000  e92d41fc          PUSH     {r2-r8,lr}
000004  4680              MOV      r8,r0
000006  460d              MOV      r5,r1
000008  1e16              SUBS     r6,r2,#0
;;;295      if (Sel >= 0) {
00000a  db1d              BLT      |L8.72|
;;;296        GUI_RECT Rect;
;;;297        int HeaderHeight, RowDistY;
;;;298        HeaderHeight = HEADER_GetHeight(pObj->hHeader);
00000c  f9b50028          LDRSH    r0,[r5,#0x28]
000010  f7fffffe          BL       HEADER_GetHeight
000014  4607              MOV      r7,r0
;;;299        RowDistY     = LISTVIEW__GetRowDistY(pObj);
000016  4628              MOV      r0,r5
000018  f7fffffe          BL       LISTVIEW__GetRowDistY
00001c  4604              MOV      r4,r0
;;;300        WM_GetInsideRectExScrollbar(hObj, &Rect);
00001e  4669              MOV      r1,sp
000020  4640              MOV      r0,r8
000022  f7fffffe          BL       WM_GetInsideRectExScrollbar
;;;301        Rect.y0 += HeaderHeight + (Sel - pObj->ScrollStateV.v) * RowDistY;
000026  6ee9              LDR      r1,[r5,#0x6c]
000028  f9bd0002          LDRSH    r0,[sp,#2]
00002c  1a71              SUBS     r1,r6,r1
00002e  fb010104          MLA      r1,r1,r4,r0
000032  19c8              ADDS     r0,r1,r7
000034  f8ad0002          STRH     r0,[sp,#2]
;;;302        Rect.y1  = Rect.y0 + RowDistY - 1;
000038  1e64              SUBS     r4,r4,#1
00003a  4420              ADD      r0,r0,r4
00003c  f8ad0006          STRH     r0,[sp,#6]
;;;303        WM_InvalidateRect(hObj, &Rect);
000040  4669              MOV      r1,sp
000042  4640              MOV      r0,r8
000044  f7fffffe          BL       WM_InvalidateRect
                  |L8.72|
;;;304      }
;;;305    }
000048  e8bd81fc          POP      {r2-r8,pc}
;;;306    
                          ENDP


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

                  LISTVIEW__UpdateScrollParas PROC
;;;441    */
;;;442    int LISTVIEW__UpdateScrollParas(LISTVIEW_Handle hObj, LISTVIEW_Obj* pObj) {
000000  e92d47fc          PUSH     {r2-r10,lr}
000004  4681              MOV      r9,r0
000006  460d              MOV      r5,r1
;;;443      int NumRows;
;;;444      NumRows = GUI_ARRAY_GetNumItems(&pObj->RowArray);
000008  f101002a          ADD      r0,r1,#0x2a
00000c  f7fffffe          BL       GUI_ARRAY_GetNumItems
000010  4604              MOV      r4,r0
;;;445      /* update vertical scrollbar */
;;;446      pObj->ScrollStateV.PageSize = _GetNumVisibleRows(hObj, pObj);
000012  4629              MOV      r1,r5
000014  4648              MOV      r0,r9
000016  f7fffffe          BL       _GetNumVisibleRows
;;;447      pObj->ScrollStateV.NumItems = (NumRows) ? NumRows : 1;
00001a  6728              STR      r0,[r5,#0x70]
00001c  2001              MOVS     r0,#1
00001e  b104              CBZ      r4,|L9.34|
000020  4620              MOV      r0,r4
                  |L9.34|
000022  66a8              STR      r0,[r5,#0x68]
000024  4669              MOV      r1,sp
000026  4648              MOV      r0,r9
000028  f7fffffe          BL       WM_GetInsideRectExScrollbar
00002c  f9bd0004          LDRSH    r0,[sp,#4]
000030  2401              MOVS     r4,#1
000032  1c40              ADDS     r0,r0,#1
;;;448      /* update horizontal scrollbar */
;;;449      pObj->ScrollStateH.PageSize = _GetXSize(hObj);
;;;450      pObj->ScrollStateH.NumItems = _GetHeaderWidth(pObj, pObj->hHeader);
000034  67e8              STR      r0,[r5,#0x7c]
000036  f9b58028          LDRSH    r8,[r5,#0x28]
00003a  4640              MOV      r0,r8
00003c  f7fffffe          BL       HEADER_GetNumItems
000040  0007              MOVS     r7,r0
000042  d00a              BEQ      |L9.90|
000044  2600              MOVS     r6,#0
000046  4634              MOV      r4,r6
000048  e005              B        |L9.86|
                  |L9.74|
00004a  4631              MOV      r1,r6
00004c  4640              MOV      r0,r8
00004e  f7fffffe          BL       HEADER_GetItemWidth
000052  4404              ADD      r4,r4,r0
000054  1c76              ADDS     r6,r6,#1
                  |L9.86|
000056  42be              CMP      r6,r7
000058  dbf7              BLT      |L9.74|
                  |L9.90|
00005a  e9d5011e          LDRD     r0,r1,[r5,#0x78]
00005e  1a62              SUBS     r2,r4,r1
000060  4290              CMP      r0,r2
000062  dd02              BLE      |L9.106|
000064  1a20              SUBS     r0,r4,r0
000066  1a08              SUBS     r0,r1,r0
000068  4404              ADD      r4,r4,r0
                  |L9.106|
;;;451      return LISTVIEW__UpdateScrollPos(hObj, pObj);
00006a  4629              MOV      r1,r5
00006c  4648              MOV      r0,r9
00006e  676c              STR      r4,[r5,#0x74]
000070  e8bd47fc          POP      {r2-r10,lr}
000074  f7ffbffe          B.W      LISTVIEW__UpdateScrollPos
;;;452    }
;;;453    
                          ENDP


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

                  LISTVIEW__UpdateScrollPos PROC
;;;419    */
;;;420    int LISTVIEW__UpdateScrollPos(LISTVIEW_Handle hObj, LISTVIEW_Obj* pObj) {
000000  e92d41f0          PUSH     {r4-r8,lr}
000004  460c              MOV      r4,r1
;;;421      int PrevScrollStateV;
;;;422      PrevScrollStateV = pObj->ScrollStateV.v;
;;;423      if (pObj->Sel >= 0) {
000006  6ecd              LDR      r5,[r1,#0x6c]
000008  6d49              LDR      r1,[r1,#0x54]
00000a  4680              MOV      r8,r0                 ;420
;;;424        WM_CheckScrollPos(&pObj->ScrollStateV, pObj->Sel, 0, 0);
00000c  f1040668          ADD      r6,r4,#0x68
000010  2900              CMP      r1,#0                 ;423
000012  db05              BLT      |L10.32|
000014  2300              MOVS     r3,#0
000016  461a              MOV      r2,r3
000018  4630              MOV      r0,r6
00001a  f7fffffe          BL       WM_CheckScrollPos
00001e  e002              B        |L10.38|
                  |L10.32|
000020  4630              MOV      r0,r6
;;;425      } else {
;;;426        WM_CheckScrollBounds(&pObj->ScrollStateV);
000022  f7fffffe          BL       WM_CheckScrollBounds
                  |L10.38|

⌨️ 快捷键说明

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