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

📄 wm_move.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_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 + -