📄 wm_move.txt
字号:
; generated by ARM C/C++ Compiler with , RVCT4.0 [Build 524] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\wm_move.o --depend=.\Obj\wm_move.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\WM\WM_Move.c]
THUMB
AREA ||i.WM_MoveTo||, CODE, READONLY, ALIGN=1
WM_MoveTo PROC
;;;116 */
;;;117 void WM_MoveTo(WM_HWIN hWin, int x, int y) {
000000 f7ffbffe B.W WM__MoveTo
;;;118 WM_LOCK(); {
;;;119 WM__MoveTo(hWin, x, y);
;;;120 } WM_UNLOCK();
;;;121 }
;;;122
ENDP
AREA ||i.WM_MoveWindow||, CODE, READONLY, ALIGN=1
WM_MoveWindow PROC
;;;106 */
;;;107 void WM_MoveWindow(WM_HWIN hWin, int dx, int dy) {
000000 f7ffbffe B.W WM__MoveWindow
;;;108 WM_LOCK(); {
;;;109 WM__MoveWindow(hWin, dx, dy);
;;;110 } WM_UNLOCK();
;;;111 }
;;;112
ENDP
AREA ||i.WM__MoveTo||, CODE, READONLY, ALIGN=1
WM__MoveTo PROC
;;;87 */
;;;88 void WM__MoveTo(WM_HWIN hWin, int x, int y) {
000000 b570 PUSH {r4-r6,lr}
000002 0004 MOVS r4,r0
000004 460e MOV r6,r1
000006 4615 MOV r5,r2
;;;89 if (hWin) {
000008 d00d BEQ |L3.38|
;;;90 WM_Obj* pWin = WM_HANDLE2PTR(hWin);
00000a 4620 MOV r0,r4
00000c f7fffffe BL GUI_ALLOC_h2p
;;;91 x -= pWin->Rect.x0;
000010 f9b01000 LDRSH r1,[r0,#0]
;;;92 y -= pWin->Rect.y0;
000014 f9b00002 LDRSH r0,[r0,#2]
000018 1a71 SUBS r1,r6,r1 ;91
00001a 1a2a SUBS r2,r5,r0
;;;93 WM__MoveWindow(hWin, x, y);
00001c 4620 MOV r0,r4
00001e e8bd4070 POP {r4-r6,lr}
000022 f7ffbffe B.W WM__MoveWindow
|L3.38|
;;;94 }
;;;95 }
000026 bd70 POP {r4-r6,pc}
;;;96
ENDP
AREA ||i.WM__MoveWindow||, CODE, READONLY, ALIGN=1
WM__MoveWindow PROC
;;;65 */
;;;66 void WM__MoveWindow(WM_HWIN hWin, int dx, int dy) {
000000 e92d41fc PUSH {r2-r8,lr}
000004 0005 MOVS r5,r0
000006 460e MOV r6,r1
000008 4617 MOV r7,r2
;;;67 GUI_RECT r;
;;;68 WM_Obj* pWin;
;;;69 if (hWin) {
00000a d024 BEQ |L4.86|
;;;70 pWin = WM_HANDLE2PTR(hWin);
00000c 4628 MOV r0,r5
00000e f7fffffe BL GUI_ALLOC_h2p
000012 4604 MOV r4,r0
;;;71 r = pWin->Rect;
000014 c803 LDM r0,{r0,r1}
;;;72 GUI_MoveRect(&pWin->Rect, dx, dy);
000016 463a MOV r2,r7
000018 e9cd0100 STRD r0,r1,[sp,#0]
00001c 4631 MOV r1,r6
00001e 4620 MOV r0,r4
000020 f7fffffe BL GUI_MoveRect
;;;73 GUI_MoveRect(&pWin->InvalidRect, dx, dy);
000024 463a MOV r2,r7
000026 4631 MOV r1,r6
000028 f1040008 ADD r0,r4,#8
00002c f7fffffe BL GUI_MoveRect
;;;74 _MoveDescendents(pWin->hFirstChild, dx, dy); /* Children need to be moved along ...*/
000030 f9b40018 LDRSH r0,[r4,#0x18]
000034 463a MOV r2,r7
000036 4631 MOV r1,r6
000038 f7fffffe BL _MoveDescendents
;;;75 /* Invalidate old and new area ... */
;;;76 if (pWin->Status & WM_SF_ISVIS) {
00003c 8ba0 LDRH r0,[r4,#0x1c]
00003e 0780 LSLS r0,r0,#30
000040 d505 BPL |L4.78|
;;;77 WM_InvalidateArea(&pWin->Rect); /* Invalidate new area */
000042 4620 MOV r0,r4
000044 f7fffffe BL WM_InvalidateArea
;;;78 WM_InvalidateArea(&r) ; /* Invalidate old area */
000048 4668 MOV r0,sp
00004a f7fffffe BL WM_InvalidateArea
|L4.78|
;;;79 }
;;;80 WM__SendMsgNoData(hWin, WM_MOVE); /* Notify window it has been moved */
00004e 2103 MOVS r1,#3
000050 4628 MOV r0,r5
000052 f7fffffe BL WM__SendMsgNoData
|L4.86|
;;;81 }
;;;82 }
000056 e8bd81fc POP {r2-r8,pc}
;;;83
ENDP
AREA ||i._MoveDescendents||, CODE, READONLY, ALIGN=1
_MoveDescendents PROC
;;;43 */
;;;44 static void _MoveDescendents(WM_HWIN hWin, int dx, int dy) {
000000 e92d41f0 PUSH {r4-r8,lr}
000004 4605 MOV r5,r0
000006 460e MOV r6,r1
000008 4617 MOV r7,r2
;;;45 WM_Obj* pWin;
;;;46
;;;47 for (;hWin; hWin = pWin->hNext) {
00000a e019 B |L5.64|
|L5.12|
;;;48 pWin = WM_HANDLE2PTR(hWin);
00000c 4628 MOV r0,r5
00000e f7fffffe BL GUI_ALLOC_h2p
000012 4604 MOV r4,r0
;;;49 GUI_MoveRect(&pWin->Rect, dx, dy);
000014 463a MOV r2,r7
000016 4631 MOV r1,r6
000018 f7fffffe BL GUI_MoveRect
;;;50 GUI_MoveRect(&pWin->InvalidRect, dx, dy);
00001c 463a MOV r2,r7
00001e 4631 MOV r1,r6
000020 f1040008 ADD r0,r4,#8
000024 f7fffffe BL GUI_MoveRect
;;;51 _MoveDescendents(pWin->hFirstChild, dx, dy); /* Children need to be moved along ...*/
000028 f9b40018 LDRSH r0,[r4,#0x18]
00002c 463a MOV r2,r7
00002e 4631 MOV r1,r6
000030 f7fffffe BL _MoveDescendents
;;;52 WM__SendMsgNoData(hWin, WM_MOVE);
000034 2103 MOVS r1,#3
000036 4628 MOV r0,r5
000038 f7fffffe BL WM__SendMsgNoData
00003c f9b4501a LDRSH r5,[r4,#0x1a] ;47
|L5.64|
000040 2d00 CMP r5,#0 ;47
000042 d1e3 BNE |L5.12|
;;;53 }
;;;54 }
000044 e8bd81f0 POP {r4-r8,pc}
;;;55
ENDP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -