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

📄 listview_deleterow.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 TXT
字号:
; generated by ARM C/C++ Compiler with , RVCT4.0 [Build 524] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\listview_deleterow.o --depend=.\Obj\listview_deleterow.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\LISTVIEW_DeleteRow.c]
                          THUMB

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

                  LISTVIEW_DeleteRow PROC
;;;55     */
;;;56     void LISTVIEW_DeleteRow(LISTVIEW_Handle hObj, unsigned Index) {
000000  e92d47fc          PUSH     {r2-r10,lr}
000004  ea5f0800          MOVS     r8,r0
000008  460e              MOV      r6,r1
;;;57       if (hObj) {
00000a  d057              BEQ      |L1.188|
;;;58         LISTVIEW_Obj* pObj;
;;;59         unsigned NumRows;
;;;60         WM_LOCK();
;;;61         pObj = LISTVIEW_H2P(hObj);
00000c  4640              MOV      r0,r8
00000e  f7fffffe          BL       GUI_ALLOC_h2p
000012  4604              MOV      r4,r0
;;;62         NumRows = GUI_ARRAY_GetNumItems(&pObj->RowArray);
000014  302a              ADDS     r0,r0,#0x2a
000016  4682              MOV      r10,r0
000018  f7fffffe          BL       GUI_ARRAY_GetNumItems
;;;63         if (Index < NumRows) {
00001c  4286              CMP      r6,r0
00001e  d24d              BCS      |L1.188|
;;;64           unsigned NumColumns, i;
;;;65           GUI_ARRAY* pRow;
;;;66           pRow = (GUI_ARRAY*)GUI_ARRAY_GetpItem(&pObj->RowArray, Index);
000020  4631              MOV      r1,r6
000022  4650              MOV      r0,r10
000024  f7fffffe          BL       GUI_ARRAY_GetpItem
000028  4681              MOV      r9,r0
;;;67           /* Delete attached info items */
;;;68           NumColumns = GUI_ARRAY_GetNumItems(pRow);
00002a  f7fffffe          BL       GUI_ARRAY_GetNumItems
00002e  4607              MOV      r7,r0
;;;69           for (i = 0; i < NumColumns; i++) {
000030  2500              MOVS     r5,#0
000032  e009              B        |L1.72|
                  |L1.52|
;;;70             LISTVIEW_ITEM * pItem;
;;;71             pItem = (LISTVIEW_ITEM *)GUI_ARRAY_GetpItem(pRow, i);
000034  4629              MOV      r1,r5
000036  4648              MOV      r0,r9
000038  f7fffffe          BL       GUI_ARRAY_GetpItem
;;;72             if (pItem->hItemInfo) {
00003c  f9b00000          LDRSH    r0,[r0,#0]
000040  b108              CBZ      r0,|L1.70|
;;;73               GUI_ALLOC_Free(pItem->hItemInfo);
000042  f7fffffe          BL       GUI_ALLOC_Free
                  |L1.70|
000046  1c6d              ADDS     r5,r5,#1              ;69
                  |L1.72|
000048  42bd              CMP      r5,r7                 ;69
00004a  d3f3              BCC      |L1.52|
;;;74             }
;;;75           }
;;;76           /* Delete row */
;;;77           GUI_ARRAY_Delete(pRow);
00004c  4648              MOV      r0,r9
00004e  f7fffffe          BL       GUI_ARRAY_Delete
;;;78           GUI_ARRAY_DeleteItem(&pObj->RowArray, Index);
000052  4631              MOV      r1,r6
000054  4650              MOV      r0,r10
000056  f7fffffe          BL       GUI_ARRAY_DeleteItem
;;;79           /* Adjust properties */
;;;80           if (pObj->Sel == (signed int)Index) {
00005a  6d60              LDR      r0,[r4,#0x54]
00005c  42b0              CMP      r0,r6
00005e  d102              BNE      |L1.102|
;;;81             pObj->Sel = -1;
000060  f04f30ff          MOV      r0,#0xffffffff
000064  6560              STR      r0,[r4,#0x54]
                  |L1.102|
;;;82           }
;;;83           if (pObj->Sel > (signed int)Index) {
000066  42b0              CMP      r0,r6
000068  dd01              BLE      |L1.110|
;;;84             pObj->Sel--;
00006a  1e40              SUBS     r0,r0,#1
00006c  6560              STR      r0,[r4,#0x54]
                  |L1.110|
;;;85           }
;;;86           if (LISTVIEW__UpdateScrollParas(hObj, pObj)) {
00006e  4621              MOV      r1,r4
000070  4640              MOV      r0,r8
000072  f7fffffe          BL       LISTVIEW__UpdateScrollParas
000076  b128              CBZ      r0,|L1.132|
;;;87             LISTVIEW__InvalidateInsideArea(hObj, pObj);
000078  4621              MOV      r1,r4
00007a  4640              MOV      r0,r8
00007c  e8bd47fc          POP      {r2-r10,lr}
000080  f7ffbffe          B.W      LISTVIEW__InvalidateInsideArea
                  |L1.132|
000084  2e00              CMP      r6,#0
000086  db19              BLT      |L1.188|
000088  f9b40028          LDRSH    r0,[r4,#0x28]
00008c  f7fffffe          BL       HEADER_GetHeight
000090  4605              MOV      r5,r0
000092  4620              MOV      r0,r4
000094  f7fffffe          BL       LISTVIEW__GetRowDistY
000098  4607              MOV      r7,r0
00009a  4669              MOV      r1,sp
00009c  4640              MOV      r0,r8
00009e  f7fffffe          BL       WM_GetInsideRectExScrollbar
0000a2  6ee1              LDR      r1,[r4,#0x6c]
0000a4  f9bd0002          LDRSH    r0,[sp,#2]
0000a8  1a71              SUBS     r1,r6,r1
0000aa  fb010107          MLA      r1,r1,r7,r0
0000ae  1948              ADDS     r0,r1,r5
0000b0  f8ad0002          STRH     r0,[sp,#2]
0000b4  4669              MOV      r1,sp
0000b6  4640              MOV      r0,r8
0000b8  f7fffffe          BL       WM_InvalidateRect
                  |L1.188|
;;;88           } else {
;;;89             _InvalidateRowAndBelow(hObj, pObj, Index);
;;;90           }
;;;91         }
;;;92         WM_UNLOCK();
;;;93       }
;;;94     }
0000bc  e8bd87fc          POP      {r2-r10,pc}
;;;95     
                          ENDP

⌨️ 快捷键说明

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