📄 framewin_buttonclose.txt
字号:
; generated by ARM C/C++ Compiler with , RVCT4.0 [Build 524] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\framewin_buttonclose.o --depend=.\Obj\framewin_buttonclose.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\FRAMEWIN_ButtonClose.c]
THUMB
AREA ||i.FRAMEWIN_AddCloseButton||, CODE, READONLY, ALIGN=2
FRAMEWIN_AddCloseButton PROC
;;;85 */
;;;86 WM_HWIN FRAMEWIN_AddCloseButton(FRAMEWIN_Handle hObj, int Flags, int Off) {
000000 b510 PUSH {r4,lr}
;;;87 WM_HWIN hButton;
;;;88 hButton = FRAMEWIN_AddButton(hObj, Flags, Off, GUI_ID_CLOSE);
000002 2305 MOVS r3,#5
000004 f7fffffe BL FRAMEWIN_AddButton
000008 4604 MOV r4,r0
;;;89 BUTTON_SetSelfDraw(hButton, 0, &_Draw);
00000a 4a05 LDR r2,|L1.32|
00000c 2100 MOVS r1,#0
00000e f7fffffe BL BUTTON_SetSelfDraw
;;;90 WM_SetCallback(hButton, _cbClose);
000012 4904 LDR r1,|L1.36|
000014 4620 MOV r0,r4
000016 f7fffffe BL WM_SetCallback
;;;91 return hButton;
00001a 4620 MOV r0,r4
;;;92 }
00001c bd10 POP {r4,pc}
;;;93
ENDP
00001e 0000 DCW 0x0000
|L1.32|
DCD _Draw
|L1.36|
DCD _cbClose
AREA ||i._Draw||, CODE, READONLY, ALIGN=2
_Draw PROC
;;;59 */
;;;60 static void _Draw(void) {
000000 b57c PUSH {r2-r6,lr}
;;;61 GUI_RECT r;
;;;62 int i, Size;
;;;63 WM_GetInsideRect(&r);
000002 4668 MOV r0,sp
000004 f7fffffe BL WM_GetInsideRect
;;;64 WM_ADDORG(r.x0, r.y0);
000008 481e LDR r0,|L2.132|
00000a f8bd1000 LDRH r1,[sp,#0]
00000e 6c02 LDR r2,[r0,#0x40] ; GUI_Context
000010 4411 ADD r1,r1,r2
000012 b209 SXTH r1,r1
000014 f8ad1000 STRH r1,[sp,#0]
000018 f8bd3002 LDRH r3,[sp,#2]
00001c 6c40 LDR r0,[r0,#0x44] ; GUI_Context
00001e 4403 ADD r3,r3,r0
000020 f8ad3002 STRH r3,[sp,#2]
;;;65 WM_ADDORG(r.x1, r.y1);
000024 f8bd3004 LDRH r3,[sp,#4]
000028 441a ADD r2,r2,r3
00002a b212 SXTH r2,r2
00002c f8ad2004 STRH r2,[sp,#4]
000030 f8bd3006 LDRH r3,[sp,#6]
;;;66 Size = r.x1 - r.x0 - 2;
000034 1a55 SUBS r5,r2,r1
000036 4418 ADD r0,r0,r3 ;65
000038 f8ad0006 STRH r0,[sp,#6] ;65
00003c 1ead SUBS r5,r5,#2
;;;67 WM_ITERATE_START(&r); {
00003e 4668 MOV r0,sp
000040 f7fffffe BL WM__InitIVRSearch
000044 e01a B |L2.124|
|L2.70|
;;;68 for (i = 2; i < Size; i++) {
000046 2402 MOVS r4,#2
000048 e014 B |L2.116|
;;;69 LCD_DrawHLine(r.x0 + i, r.y0 + i, r.x0 + i + 1);
00004a bf00 NOP
|L2.76|
00004c f9bd0000 LDRSH r0,[sp,#0]
000050 1c61 ADDS r1,r4,#1
000052 1842 ADDS r2,r0,r1
000054 f9bd1002 LDRSH r1,[sp,#2]
000058 4420 ADD r0,r0,r4
00005a 4421 ADD r1,r1,r4
00005c f7fffffe BL LCD_DrawHLine
;;;70 LCD_DrawHLine(r.x1 - i - 1, r.y0 + i, r.x1 - i);
000060 f9bd0004 LDRSH r0,[sp,#4]
000064 1b02 SUBS r2,r0,r4
000066 f9bd0002 LDRSH r0,[sp,#2]
00006a 1901 ADDS r1,r0,r4
00006c 1e50 SUBS r0,r2,#1
00006e f7fffffe BL LCD_DrawHLine
000072 1c64 ADDS r4,r4,#1 ;68
|L2.116|
000074 42ac CMP r4,r5 ;68
000076 dbe9 BLT |L2.76|
;;;71 }
;;;72 } WM_ITERATE_END();
000078 f7fffffe BL WM__GetNextIVR
|L2.124|
00007c 2800 CMP r0,#0
00007e d1e2 BNE |L2.70|
;;;73 }
000080 bd7c POP {r2-r6,pc}
;;;74
ENDP
000082 0000 DCW 0x0000
|L2.132|
DCD GUI_Context
AREA ||i._cbClose||, CODE, READONLY, ALIGN=1
_cbClose PROC
;;;47 */
;;;48 static void _cbClose(WM_MESSAGE* pMsg) {
000000 6801 LDR r1,[r0,#0]
;;;49 if (pMsg->MsgId == WM_NOTIFY_PARENT_REFLECTION) {
000002 2927 CMP r1,#0x27
000004 d103 BNE |L3.14|
;;;50 WM_DeleteWindow(pMsg->hWinSrc);
000006 f9b00006 LDRSH r0,[r0,#6]
00000a f7ffbffe B.W WM_DeleteWindow
|L3.14|
;;;51 return; /* We are done ! */
;;;52 }
;;;53 BUTTON_Callback(pMsg);
00000e f7ffbffe B.W BUTTON_Callback
;;;54 }
;;;55
ENDP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -