📄 listview.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.o --depend=.\Obj\listview.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.c]
THUMB
AREA ||i.LISTVIEW_AddColumn||, CODE, READONLY, ALIGN=1
LISTVIEW_AddColumn PROC
;;;653 */
;;;654 void LISTVIEW_AddColumn(LISTVIEW_Handle hObj, int Width, const char * s, int Align) {
000000 e92d41ff PUSH {r0-r8,lr}
000004 ea5f0800 MOVS r8,r0
000008 460c MOV r4,r1
00000a 4615 MOV r5,r2
;;;655 if (hObj) {
00000c d02c BEQ |L1.104|
;;;656 LISTVIEW_Obj* pObj;
;;;657 unsigned NumRows;
;;;658 WM_LOCK();
;;;659 pObj = LISTVIEW_H2P(hObj);
00000e 4640 MOV r0,r8
000010 f7fffffe BL GUI_ALLOC_h2p
000014 4606 MOV r6,r0
;;;660 HEADER_AddItem(pObj->hHeader, Width, s, Align); /* Modify header */
000016 f9b00028 LDRSH r0,[r0,#0x28]
00001a 462a MOV r2,r5
00001c 4621 MOV r1,r4
00001e 9b03 LDR r3,[sp,#0xc]
000020 f7fffffe BL HEADER_AddItem
;;;661 GUI_ARRAY_AddItem(&pObj->AlignArray, &Align, sizeof(int));
000024 2204 MOVS r2,#4
000026 a903 ADD r1,sp,#0xc
000028 f106002e ADD r0,r6,#0x2e
00002c f7fffffe BL GUI_ARRAY_AddItem
;;;662 NumRows = LISTVIEW_GetNumRows(hObj);
000030 4640 MOV r0,r8
000032 f7fffffe BL LISTVIEW_GetNumRows
000036 0005 MOVS r5,r0
;;;663 if (NumRows) {
000038 d00e BEQ |L1.88|
;;;664 GUI_ARRAY* pRow;
;;;665 unsigned i;
;;;666 for (i = 0; i < NumRows; i++) {
00003a 2400 MOVS r4,#0
;;;667 pRow = (GUI_ARRAY*) GUI_ARRAY_GetpItem(&pObj->RowArray, i);
00003c f106072a ADD r7,r6,#0x2a
000040 e008 B |L1.84|
|L1.66|
000042 4621 MOV r1,r4
000044 4638 MOV r0,r7
000046 f7fffffe BL GUI_ARRAY_GetpItem
;;;668 GUI_ARRAY_AddItem(pRow, NULL, sizeof(LISTVIEW_ITEM) + 1);
00004a 2205 MOVS r2,#5
00004c 2100 MOVS r1,#0
00004e f7fffffe BL GUI_ARRAY_AddItem
000052 1c64 ADDS r4,r4,#1 ;666
|L1.84|
000054 42ac CMP r4,r5 ;666
000056 d3f4 BCC |L1.66|
|L1.88|
;;;669 }
;;;670 }
;;;671 LISTVIEW__UpdateScrollParas(hObj, pObj);
000058 4631 MOV r1,r6
00005a 4640 MOV r0,r8
00005c f7fffffe BL LISTVIEW__UpdateScrollParas
;;;672 LISTVIEW__InvalidateInsideArea(hObj, pObj);
000060 4631 MOV r1,r6
000062 4640 MOV r0,r8
000064 f7fffffe BL LISTVIEW__InvalidateInsideArea
|L1.104|
;;;673 WM_UNLOCK();
;;;674 }
;;;675 }
000068 e8bd81ff POP {r0-r8,pc}
;;;676
ENDP
AREA ||i.LISTVIEW_AddRow||, CODE, READONLY, ALIGN=1
LISTVIEW_AddRow PROC
;;;680 */
;;;681 void LISTVIEW_AddRow(LISTVIEW_Handle hObj, const GUI_ConstString* ppText) {
000000 e92d5ffc PUSH {r2-r12,lr}
000004 ea5f0b00 MOVS r11,r0
000008 460c MOV r4,r1
;;;682 if (hObj) {
00000a d046 BEQ |L2.154|
;;;683 LISTVIEW_Obj* pObj;
;;;684 int NumRows;
;;;685 WM_LOCK();
;;;686 pObj = LISTVIEW_H2P(hObj);
00000c 4658 MOV r0,r11
00000e f7fffffe BL GUI_ALLOC_h2p
000012 4682 MOV r10,r0
;;;687 NumRows = GUI_ARRAY_GetNumItems(&pObj->RowArray);
000014 302a ADDS r0,r0,#0x2a
000016 4605 MOV r5,r0
000018 9001 STR r0,[sp,#4]
00001a f7fffffe BL GUI_ARRAY_GetNumItems
;;;688
;;;689 /* Create GUI_ARRAY for the new row */
;;;690 if (GUI_ARRAY_AddItem(&pObj->RowArray, NULL, sizeof(GUI_ARRAY)) == 0) {
00001e 9000 STR r0,[sp,#0]
000020 2204 MOVS r2,#4
000022 2100 MOVS r1,#0
000024 4628 MOV r0,r5
000026 f7fffffe BL GUI_ARRAY_AddItem
00002a 2800 CMP r0,#0
00002c d135 BNE |L2.154|
;;;691 int i, NumColumns, NumBytes;
;;;692 GUI_ARRAY* pRow;
;;;693 const char* s;
;;;694 GUI_ARRAY_CREATE((GUI_ARRAY *)GUI_ARRAY_GetpItem(&pObj->RowArray, NumRows)); /* For higher debug levels only */
;;;695 /* Add columns for the new row */
;;;696 NumColumns = HEADER_GetNumItems(pObj->hHeader);
00002e f9ba0028 LDRSH r0,[r10,#0x28]
000032 f7fffffe BL HEADER_GetNumItems
000036 4681 MOV r9,r0
;;;697 for (i = 0; i < NumColumns; i++) {
000038 2500 MOVS r5,#0
00003a e020 B |L2.126|
|L2.60|
;;;698 LISTVIEW_ITEM * pItem;
;;;699 pRow = (GUI_ARRAY *)GUI_ARRAY_GetpItem(&pObj->RowArray, NumRows);
00003c e9dd1000 LDRD r1,r0,[sp,#0]
000040 f7fffffe BL GUI_ARRAY_GetpItem
000044 4607 MOV r7,r0
;;;700 s = (ppText) ? *ppText++ : 0;
000046 b10c CBZ r4,|L2.76|
000048 cc01 LDM r4!,{r0}
00004a e000 B |L2.78|
|L2.76|
00004c 2000 MOVS r0,#0
|L2.78|
00004e ea5f0800 MOVS r8,r0
;;;701 if (s == 0) {
000052 d100 BNE |L2.86|
;;;702 ppText = 0;
000054 2400 MOVS r4,#0
|L2.86|
;;;703 }
;;;704 NumBytes = GUI__strlen(s) + 1; /* 0 if no string is specified (s == NULL) */
000056 4640 MOV r0,r8
000058 f7fffffe BL GUI__strlen
00005c 1c46 ADDS r6,r0,#1
;;;705 GUI_ARRAY_AddItem(pRow, NULL, sizeof(LISTVIEW_ITEM) + NumBytes);
00005e 1d42 ADDS r2,r0,#5
000060 2100 MOVS r1,#0
000062 4638 MOV r0,r7
000064 f7fffffe BL GUI_ARRAY_AddItem
;;;706 pItem = (LISTVIEW_ITEM *)GUI_ARRAY_GetpItem(pRow, i);
000068 4629 MOV r1,r5
00006a 4638 MOV r0,r7
00006c f7fffffe BL GUI_ARRAY_GetpItem
;;;707 if (NumBytes > 1) {
000070 2e01 CMP r6,#1
000072 dd03 BLE |L2.124|
;;;708 strcpy(pItem->acText, s);
000074 4641 MOV r1,r8
000076 1c80 ADDS r0,r0,#2
000078 f7fffffe BL strcpy
|L2.124|
00007c 1c6d ADDS r5,r5,#1 ;697
|L2.126|
00007e 454d CMP r5,r9 ;697
000080 dbdc BLT |L2.60|
;;;709 }
;;;710 }
;;;711 LISTVIEW__UpdateScrollParas(hObj, pObj);
000082 4651 MOV r1,r10
000084 4658 MOV r0,r11
000086 f7fffffe BL LISTVIEW__UpdateScrollParas
;;;712 LISTVIEW__InvalidateRow(hObj, pObj, NumRows);
00008a 9a00 LDR r2,[sp,#0]
00008c 4651 MOV r1,r10
00008e 4658 MOV r0,r11
000090 b002 ADD sp,sp,#8
000092 e8bd5ff0 POP {r4-r12,lr}
000096 f7ffbffe B.W LISTVIEW__InvalidateRow
|L2.154|
;;;713 }
;;;714 WM_UNLOCK();
;;;715 }
;;;716 }
00009a e8bd9ffc POP {r2-r12,pc}
;;;717
ENDP
AREA ||i.LISTVIEW_CreateEx||, CODE, READONLY, ALIGN=2
LISTVIEW_CreateEx PROC
;;;583 */
;;;584 LISTVIEW_Handle LISTVIEW_CreateEx(int x0, int y0, int xsize, int ysize, WM_HWIN hParent,
000000 e92d47ff PUSH {r0-r10,lr}
;;;585 int WinFlags, int ExFlags, int Id)
;;;586 {
000004 4606 MOV r6,r0
;;;587 LISTVIEW_Handle hObj;
;;;588 GUI_USE_PARA(ExFlags);
;;;589 /* Create the window */
;;;590 if ((xsize == 0) && (ysize == 0) && (x0 == 0) && (y0 == 0)) {
000006 ea420003 ORR r0,r2,r3
00000a e9dd980c LDRD r9,r8,[sp,#0x30]
00000e 4330 ORRS r0,r0,r6
000010 f8dda03c LDR r10,[sp,#0x3c]
000014 460f MOV r7,r1 ;586
000016 4614 MOV r4,r2 ;586
000018 461d MOV r5,r3 ;586
00001a 4308 ORRS r0,r0,r1
00001c d10f BNE |L3.62|
;;;591 GUI_RECT Rect;
;;;592 WM_GetClientRectEx(hParent, &Rect);
00001e a902 ADD r1,sp,#8
000020 4648 MOV r0,r9
000022 f7fffffe BL WM_GetClientRectEx
;;;593 xsize = Rect.x1 - Rect.x0 + 1;
000026 f9bd000c LDRSH r0,[sp,#0xc]
00002a f9bd1008 LDRSH r1,[sp,#8]
00002e 1a44 SUBS r4,r0,r1
;;;594 ysize = Rect.y1 - Rect.y0 + 1;
000030 f9bd000e LDRSH r0,[sp,#0xe]
000034 f9bd100a LDRSH r1,[sp,#0xa]
000038 1c64 ADDS r4,r4,#1 ;593
00003a 1a45 SUBS r5,r0,r1
00003c 1c6d ADDS r5,r5,#1
|L3.62|
;;;595 }
;;;596 hObj = WM_CreateWindowAsChild(x0, y0, xsize, ysize, hParent, WinFlags, &_LISTVIEW_Callback,
00003e fa1ff188 UXTH r1,r8
000042 2364 MOVS r3,#0x64
000044 4a1b LDR r2,|L3.180|
000046 e9cd9100 STRD r9,r1,[sp,#0]
00004a e9cd2302 STRD r2,r3,[sp,#8]
00004e 462b MOV r3,r5
000050 4622 MOV r2,r4
000052 4639 MOV r1,r7
000054 4630 MOV r0,r6
000056 f7fffffe BL WM_CreateWindowAsChild
00005a 0005 MOVS r5,r0
;;;597 sizeof(LISTVIEW_Obj) - sizeof(WM_Obj));
;;;598 if (hObj) {
00005c d025 BEQ |L3.170|
;;;599 LISTVIEW_Obj* pObj;
;;;600 WM_LOCK();
;;;601 pObj = LISTVIEW_H2P(hObj);
00005e 4628 MOV r0,r5
000060 f7fffffe BL GUI_ALLOC_h2p
000064 4604 MOV r4,r0
;;;602 /* Init sub-classes */
;;;603 GUI_ARRAY_CREATE(&pObj->RowArray);
;;;604 GUI_ARRAY_CREATE(&pObj->AlignArray);
;;;605 /* Init widget specific variables */
;;;606 WIDGET__Init(&pObj->Widget, Id, WIDGET_STATE_FOCUSSABLE);
000066 2210 MOVS r2,#0x10
000068 4651 MOV r1,r10
00006a f7fffffe BL WIDGET__Init
;;;607 /* Init member variables */
;;;608 LISTVIEW_INIT_ID(pObj);
;;;609 pObj->Props = LISTVIEW_DefaultProps;
00006e 2220 MOVS r2,#0x20
000070 4911 LDR r1,|L3.184|
000072 f1040034 ADD r0,r4,#0x34
000076 f7fffffe BL __aeabi_memcpy4
;;;610 pObj->ShowGrid = 0;
00007a 2100 MOVS r1,#0
;;;611 pObj->RowDistY = 0;
00007c 65a1 STR r1,[r4,#0x58]
;;;612 pObj->Sel = -1;
00007e 65e1 STR r1,[r4,#0x5c]
000080 1e49 SUBS r1,r1,#1
;;;613 pObj->LBorder = 1;
000082 6561 STR r1,[r4,#0x54]
000084 2101 MOVS r1,#1
;;;614 pObj->RBorder = 1;
000086 6621 STR r1,[r4,#0x60]
;;;615 pObj->hHeader = HEADER_CreateEx(0, 0, 0, 0, hObj, WM_CF_SHOW, 0, 0);
000088 2300 MOVS r3,#0
00008a 6661 STR r1,[r4,#0x64]
00008c 2102 MOVS r1,#2
00008e e9cd1301 STRD r1,r3,[sp,#4]
000092 461a MOV r2,r3
000094 4619 MOV r1,r3
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -