📄 framewin_minmaxrest.txt
字号:
;;;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 + -