📄 wm_setcapturemove.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_setcapturemove.o --depend=.\Obj\wm_setcapturemove.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_SetCaptureMove.c]
THUMB
AREA ||i.WM_SetCaptureMove||, CODE, READONLY, ALIGN=2
WM_SetCaptureMove PROC
;;;41 */
;;;42 void WM_SetCaptureMove(WM_HWIN hWin, const GUI_PID_STATE* pState, int MinVisibility) {
000000 e92d41ff PUSH {r0-r8,lr}
000004 4607 MOV r7,r0
000006 460c MOV r4,r1
000008 4616 MOV r6,r2
;;;43 if (!WM_HasCaptured(hWin)) {
00000a f7fffffe BL WM_HasCaptured
;;;44 WM_SetCapture(hWin, 1); /* Set capture with auto release */
;;;45 WM__CapturePoint.x = pState->x;
00000e 4d1e LDR r5,|L1.136|
000010 b948 CBNZ r0,|L1.38|
000012 2101 MOVS r1,#1 ;44
000014 4638 MOV r0,r7 ;44
000016 f7fffffe BL WM_SetCapture
00001a 6820 LDR r0,[r4,#0]
00001c 8028 STRH r0,[r5,#0]
;;;46 WM__CapturePoint.y = pState->y;
00001e 6860 LDR r0,[r4,#4]
000020 8068 STRH r0,[r5,#2]
|L1.34|
;;;47 } else { /* Moving ... let the window move ! */
;;;48 int dx, dy;
;;;49 dx = pState->x - WM__CapturePoint.x;
;;;50 dy = pState->y - WM__CapturePoint.y;
;;;51 /* make sure at least a part of the windows stays inside of its parent */
;;;52 if (MinVisibility == 0) {
;;;53 WM_MoveWindow(hWin, dx, dy);
;;;54 } else {
;;;55 GUI_RECT Rect, RectParent;
;;;56 /* make sure at least a part of the windows stays inside of its parent */
;;;57 WM_GetWindowRectEx(hWin, &Rect);
;;;58 WM_GetWindowRectEx(WM_GetParent(hWin), &RectParent);
;;;59 GUI_MoveRect(&Rect, dx, dy);
;;;60 GUI__ReduceRect(&RectParent, &RectParent, MinVisibility);
;;;61 if (GUI_RectsIntersect(&Rect, &RectParent)) {
;;;62 WM_MoveWindow(hWin, dx, dy);
;;;63 }
;;;64 }
;;;65 }
;;;66 }
000022 e8bd81ff POP {r0-r8,pc}
|L1.38|
000026 f9b51000 LDRSH r1,[r5,#0] ;49 ; WM__CapturePoint
00002a cc05 LDM r4!,{r0,r2} ;49
00002c 1a44 SUBS r4,r0,r1 ;49
00002e f9b50002 LDRSH r0,[r5,#2] ;50 ; WM__CapturePoint
000032 1a15 SUBS r5,r2,r0 ;50
000034 b93e CBNZ r6,|L1.70|
000036 462a MOV r2,r5 ;53
000038 4621 MOV r1,r4 ;53
00003a 4638 MOV r0,r7 ;53
00003c b004 ADD sp,sp,#0x10 ;53
00003e e8bd41f0 POP {r4-r8,lr} ;53
000042 f7ffbffe B.W WM_MoveWindow
|L1.70|
000046 a902 ADD r1,sp,#8 ;57
000048 4638 MOV r0,r7 ;57
00004a f7fffffe BL WM_GetWindowRectEx
00004e 4638 MOV r0,r7 ;58
000050 f7fffffe BL WM_GetParent
000054 4669 MOV r1,sp ;58
000056 f7fffffe BL WM_GetWindowRectEx
00005a 462a MOV r2,r5 ;59
00005c 4621 MOV r1,r4 ;59
00005e a802 ADD r0,sp,#8 ;59
000060 f7fffffe BL GUI_MoveRect
000064 4632 MOV r2,r6 ;60
000066 4669 MOV r1,sp ;60
000068 4668 MOV r0,sp ;60
00006a f7fffffe BL GUI__ReduceRect
00006e 4669 MOV r1,sp ;61
000070 a802 ADD r0,sp,#8 ;61
000072 f7fffffe BL GUI_RectsIntersect
000076 2800 CMP r0,#0 ;61
000078 d0d3 BEQ |L1.34|
00007a 462a MOV r2,r5 ;62
00007c 4621 MOV r1,r4 ;62
00007e 4638 MOV r0,r7 ;62
000080 f7fffffe BL WM_MoveWindow
000084 e7cd B |L1.34|
;;;67
ENDP
000086 0000 DCW 0x0000
|L1.136|
DCD ||.data||
AREA ||.data||, DATA, ALIGN=1
WM__CapturePoint
DCDU 0x00000000
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -