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

📄 framewin_minmaxrest.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 TXT
📖 第 1 页 / 共 2 页
字号:
;;;123        pObj->Flags |= FRAMEWIN_SF_MAXIMIZED;
000066  f8b4005c          LDRH     r0,[r4,#0x5c]
;;;124        _InvalidateButton(pObj, GUI_ID_MAXIMIZE);
00006a  2107              MOVS     r1,#7
00006c  f0400080          ORR      r0,r0,#0x80           ;123
000070  f8a4005c          STRH     r0,[r4,#0x5c]         ;123
000074  4620              MOV      r0,r4
000076  e8bd41f0          POP      {r4-r8,lr}
00007a  f7ffbffe          B.W      _InvalidateButton
                  |L5.126|
;;;125      }
;;;126    }
00007e  e8bd81f0          POP      {r4-r8,pc}
;;;127    
                          ENDP


                          AREA ||i._MinimizeFramewin||, CODE, READONLY, ALIGN=1

                  _MinimizeFramewin PROC
;;;87     */
;;;88     static void _MinimizeFramewin(FRAMEWIN_Handle hObj, FRAMEWIN_Obj* pObj) {
000000  e92d41f0          PUSH     {r4-r8,lr}
000004  4607              MOV      r7,r0
000006  460c              MOV      r4,r1
;;;89       _RestoreMaximized(hObj, pObj);
000008  f7fffffe          BL       _RestoreMaximized
;;;90       /* When window is not minimized, minimize it */
;;;91       if ((pObj->Flags & FRAMEWIN_SF_MINIMIZED) == 0) {
00000c  f8b4005c          LDRH     r0,[r4,#0x5c]
000010  0640              LSLS     r0,r0,#25
000012  d42f              BMI      |L6.116|
;;;92         int OldHeight = pObj->Widget.Win.Rect.y1 - pObj->Widget.Win.Rect.y0 + 1;
000014  f9b40006          LDRSH    r0,[r4,#6]
000018  f9b41002          LDRSH    r1,[r4,#2]
00001c  1a45              SUBS     r5,r0,r1
00001e  1c6d              ADDS     r5,r5,#1
;;;93         int NewHeight = FRAMEWIN__CalcTitleHeight(pObj) + pObj->Widget.pEffect->EffectSize * 2 + 2;    
000020  4620              MOV      r0,r4
000022  f7fffffe          BL       FRAMEWIN__CalcTitleHeight
000026  6a21              LDR      r1,[r4,#0x20]
;;;94         pObj->rRestore = pObj->Widget.Win.Rect;
000028  2208              MOVS     r2,#8
00002a  6949              LDR      r1,[r1,#0x14]         ;93
00002c  eb000641          ADD      r6,r0,r1,LSL #1       ;93
000030  1cb6              ADDS     r6,r6,#2              ;93
000032  4621              MOV      r1,r4
000034  f1040052          ADD      r0,r4,#0x52
000038  f7fffffe          BL       __aeabi_memcpy
;;;95         WM_HideWindow(pObj->hClient);
00003c  f9b4004c          LDRSH    r0,[r4,#0x4c]
000040  f7fffffe          BL       WM_HideWindow
;;;96         WM_HideWindow(pObj->hMenu);
000044  f9b4004e          LDRSH    r0,[r4,#0x4e]
000048  f7fffffe          BL       WM_HideWindow
;;;97         WM_ResizeWindow(hObj, 0, NewHeight - OldHeight);
00004c  1b72              SUBS     r2,r6,r5
00004e  2100              MOVS     r1,#0
000050  4638              MOV      r0,r7
000052  f7fffffe          BL       WM_ResizeWindow
;;;98         FRAMEWIN__UpdatePositions(pObj);
000056  4620              MOV      r0,r4
000058  f7fffffe          BL       FRAMEWIN__UpdatePositions
;;;99         pObj->Flags |= FRAMEWIN_SF_MINIMIZED;
00005c  f8b4005c          LDRH     r0,[r4,#0x5c]
;;;100        _InvalidateButton(pObj, GUI_ID_MINIMIZE);
000060  2108              MOVS     r1,#8
000062  f0400040          ORR      r0,r0,#0x40           ;99
000066  f8a4005c          STRH     r0,[r4,#0x5c]         ;99
00006a  4620              MOV      r0,r4
00006c  e8bd41f0          POP      {r4-r8,lr}
000070  f7ffbffe          B.W      _InvalidateButton
                  |L6.116|
;;;101      }
;;;102    }
000074  e8bd81f0          POP      {r4-r8,pc}
;;;103    
                          ENDP


                          AREA ||i._RestoreMaximized||, CODE, READONLY, ALIGN=1

                  _RestoreMaximized PROC
;;;71     */
;;;72     static void _RestoreMaximized(FRAMEWIN_Handle hObj, FRAMEWIN_Obj* pObj) {
000000  b57c              PUSH     {r2-r6,lr}
000002  4605              MOV      r5,r0
;;;73       /* When window was maximized, restore it */
;;;74       if (pObj->Flags & FRAMEWIN_SF_MAXIMIZED) {
000004  f8b1005c          LDRH     r0,[r1,#0x5c]
000008  460c              MOV      r4,r1                 ;72
00000a  0600              LSLS     r0,r0,#24
00000c  d528              BPL      |L7.96|
;;;75         GUI_RECT r = pObj->rRestore;
00000e  2208              MOVS     r2,#8
000010  f1040152          ADD      r1,r4,#0x52
000014  4668              MOV      r0,sp
000016  f7fffffe          BL       __aeabi_memcpy
;;;76         WM_MoveTo(hObj, r.x0, r.y0);
00001a  f9bd2002          LDRSH    r2,[sp,#2]
00001e  f9bd1000          LDRSH    r1,[sp,#0]
000022  4628              MOV      r0,r5
000024  f7fffffe          BL       WM_MoveTo
;;;77         WM_SetSize(hObj, r.x1 - r.x0 + 1, r.y1 - r.y0 + 1);
000028  f9bd0006          LDRSH    r0,[sp,#6]
00002c  f9bd1002          LDRSH    r1,[sp,#2]
000030  1a42              SUBS     r2,r0,r1
000032  f9bd0004          LDRSH    r0,[sp,#4]
000036  f9bd1000          LDRSH    r1,[sp,#0]
00003a  1c52              ADDS     r2,r2,#1
00003c  1a41              SUBS     r1,r0,r1
00003e  1c49              ADDS     r1,r1,#1
000040  4628              MOV      r0,r5
000042  f7fffffe          BL       WM_SetSize
;;;78         FRAMEWIN__UpdatePositions(pObj);
000046  4620              MOV      r0,r4
000048  f7fffffe          BL       FRAMEWIN__UpdatePositions
;;;79         pObj->Flags &= ~FRAMEWIN_SF_MAXIMIZED;
00004c  f8b4005c          LDRH     r0,[r4,#0x5c]
;;;80         _InvalidateButton(pObj, GUI_ID_MAXIMIZE);
000050  2107              MOVS     r1,#7
000052  f0200080          BIC      r0,r0,#0x80           ;79
000056  f8a4005c          STRH     r0,[r4,#0x5c]         ;79
00005a  4620              MOV      r0,r4
00005c  f7fffffe          BL       _InvalidateButton
                  |L7.96|
;;;81       }
;;;82     }
000060  bd7c              POP      {r2-r6,pc}
;;;83     
                          ENDP


                          AREA ||i._RestoreMinimized||, CODE, READONLY, ALIGN=1

                  _RestoreMinimized PROC
;;;53     */
;;;54     static void _RestoreMinimized(FRAMEWIN_Handle hObj, FRAMEWIN_Obj* pObj) {
000000  b510              PUSH     {r4,lr}
000002  460c              MOV      r4,r1
;;;55       /* When window was minimized, restore it */
;;;56       if (pObj->Flags & FRAMEWIN_SF_MINIMIZED) {
000004  f8b1105c          LDRH     r1,[r1,#0x5c]
000008  0649              LSLS     r1,r1,#25
00000a  d526              BPL      |L8.90|
;;;57         int OldHeight = 1 + pObj->Widget.Win.Rect.y1 - pObj->Widget.Win.Rect.y0;
00000c  f9b41006          LDRSH    r1,[r4,#6]
000010  f9b42002          LDRSH    r2,[r4,#2]
;;;58         int NewHeight = 1 + pObj->rRestore.y1 - pObj->rRestore.y0;
000014  f9b43054          LDRSH    r3,[r4,#0x54]
000018  1a8a              SUBS     r2,r1,r2              ;57
00001a  f9b41058          LDRSH    r1,[r4,#0x58]
00001e  1c52              ADDS     r2,r2,#1              ;57
000020  1ac9              SUBS     r1,r1,r3
000022  1c49              ADDS     r1,r1,#1
;;;59         WM_ResizeWindow(hObj, 0, NewHeight - OldHeight);
000024  1a8a              SUBS     r2,r1,r2
000026  2100              MOVS     r1,#0
000028  f7fffffe          BL       WM_ResizeWindow
;;;60         WM_ShowWindow(pObj->hClient);
00002c  f9b4004c          LDRSH    r0,[r4,#0x4c]
000030  f7fffffe          BL       WM_ShowWindow
;;;61         WM_ShowWindow(pObj->hMenu);
000034  f9b4004e          LDRSH    r0,[r4,#0x4e]
000038  f7fffffe          BL       WM_ShowWindow
;;;62         FRAMEWIN__UpdatePositions(pObj);
00003c  4620              MOV      r0,r4
00003e  f7fffffe          BL       FRAMEWIN__UpdatePositions
;;;63         pObj->Flags &= ~FRAMEWIN_SF_MINIMIZED;
000042  f8b4005c          LDRH     r0,[r4,#0x5c]
;;;64         _InvalidateButton(pObj, GUI_ID_MINIMIZE);
000046  2108              MOVS     r1,#8
000048  f0200040          BIC      r0,r0,#0x40           ;63
00004c  f8a4005c          STRH     r0,[r4,#0x5c]         ;63
000050  4620              MOV      r0,r4
000052  e8bd4010          POP      {r4,lr}
000056  f7ffbffe          B.W      _InvalidateButton
                  |L8.90|
;;;65       }
;;;66     }
00005a  bd10              POP      {r4,pc}
;;;67     
                          ENDP

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -