⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wm_setcapturemove.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 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 + -