📄 listview_setsel.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_setsel.o --depend=.\Obj\listview_setsel.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_SetSel.c]
THUMB
AREA ||i.LISTVIEW_SetSel||, CODE, READONLY, ALIGN=1
LISTVIEW_SetSel PROC
;;;33 */
;;;34 void LISTVIEW_SetSel(LISTVIEW_Handle hObj, int NewSel) {
000000 e92d41f0 PUSH {r4-r8,lr}
000004 0006 MOVS r6,r0
000006 460c MOV r4,r1
;;;35 if (hObj) {
000008 d02c BEQ |L1.100|
;;;36 LISTVIEW_Obj* pObj;
;;;37 int MaxSel;
;;;38 WM_LOCK();
;;;39 pObj = LISTVIEW_H2P(hObj);
00000a 4630 MOV r0,r6
00000c f7fffffe BL GUI_ALLOC_h2p
000010 4605 MOV r5,r0
;;;40 MaxSel = GUI_ARRAY_GetNumItems(&pObj->RowArray) - 1;
000012 302a ADDS r0,r0,#0x2a
000014 f7fffffe BL GUI_ARRAY_GetNumItems
000018 1e40 SUBS r0,r0,#1
;;;41 if (NewSel > MaxSel) {
00001a 4284 CMP r4,r0
00001c dd00 BLE |L1.32|
;;;42 NewSel = MaxSel;
00001e 4604 MOV r4,r0
|L1.32|
;;;43 }
;;;44 if (NewSel < 0) {
000020 2c00 CMP r4,#0
000022 da01 BGE |L1.40|
;;;45 NewSel = -1;
000024 f04f34ff MOV r4,#0xffffffff
|L1.40|
;;;46 }
;;;47 if (NewSel != pObj->Sel) {
000028 6d6f LDR r7,[r5,#0x54]
00002a 42a7 CMP r7,r4
00002c d01a BEQ |L1.100|
;;;48 int OldSel;
;;;49 OldSel = pObj->Sel;
;;;50 pObj->Sel = NewSel;
;;;51 if (LISTVIEW__UpdateScrollPos(hObj, pObj)) {
00002e 4629 MOV r1,r5
000030 4630 MOV r0,r6
000032 656c STR r4,[r5,#0x54]
000034 f7fffffe BL LISTVIEW__UpdateScrollPos
000038 b120 CBZ r0,|L1.68|
;;;52 LISTVIEW__InvalidateInsideArea(hObj, pObj);
00003a 4629 MOV r1,r5
00003c 4630 MOV r0,r6
00003e f7fffffe BL LISTVIEW__InvalidateInsideArea
000042 e009 B |L1.88|
|L1.68|
;;;53 } else {
;;;54 LISTVIEW__InvalidateRow(hObj, pObj, OldSel);
000044 463a MOV r2,r7
000046 4629 MOV r1,r5
000048 4630 MOV r0,r6
00004a f7fffffe BL LISTVIEW__InvalidateRow
;;;55 LISTVIEW__InvalidateRow(hObj, pObj, NewSel);
00004e 4622 MOV r2,r4
000050 4629 MOV r1,r5
000052 4630 MOV r0,r6
000054 f7fffffe BL LISTVIEW__InvalidateRow
|L1.88|
;;;56 }
;;;57 WM_NotifyParent(hObj, WM_NOTIFICATION_SEL_CHANGED);
000058 4630 MOV r0,r6
00005a e8bd41f0 POP {r4-r8,lr}
00005e 2104 MOVS r1,#4
000060 f7ffbffe B.W WM_NotifyParent
|L1.100|
;;;58 }
;;;59 WM_UNLOCK();
;;;60 }
;;;61 }
000064 e8bd81f0 POP {r4-r8,pc}
;;;62
ENDP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -