📄 listview_deleterow.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 + -