📄 widget_multiedit.txt
字号:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.1 [Build 934] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\widget_multiedit.o --depend=.\Obj\widget_multiedit.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 -D__MICROLIB ..\..\source\WIDGET_Multiedit.c]
THUMB
AREA ||i._ChangeInfoText||, CODE, READONLY, ALIGN=2
_ChangeInfoText PROC
;;;79 */
;;;80 static int _ChangeInfoText(const char* pString, int Delay) {
000000 b570 PUSH {r4-r6,lr}
;;;81 if (_hFrame) {
000002 4c10 LDR r4,|L1.68|
000004 4606 MOV r6,r0 ;80
000006 8860 LDRH r0,[r4,#2] ; _hFrame
000008 460d MOV r5,r1 ;80
00000a b1c8 CBZ r0,|L1.64|
;;;82 GUI_Delay(Delay * 0.75);
00000c 4628 MOV r0,r5
00000e f7fff7ff BL __aeabi_i2d
000012 a20d ADR r2,|L1.72|
000014 ca0c LDM r2,{r2,r3}
000016 f7fff7ff BL __aeabi_dmul
00001a f7fff7ff BL __aeabi_d2iz
00001e f7fff7ff BL GUI_Delay
;;;83 strcpy(_acInfoText, pString);
000022 4631 MOV r1,r6
000024 480a LDR r0,|L1.80|
000026 f7fff7ff BL strcpy
;;;84 WM_InvalidateWindow(WM_HBKWIN);
00002a f7fff7ff BL WM_GetDesktopWindow
00002e f7fff7ff BL WM_InvalidateWindow
;;;85 }
;;;86 if (_hFrame) {
000032 8860 LDRH r0,[r4,#2] ; _hFrame
000034 b120 CBZ r0,|L1.64|
;;;87 GUI_Delay(Delay);
000036 4628 MOV r0,r5
000038 f7fff7ff BL GUI_Delay
;;;88 return 0;
00003c 2000 MOVS r0,#0
;;;89 }
;;;90 return 1;
;;;91 }
00003e bd70 POP {r4-r6,pc}
|L1.64|
000040 2001 MOVS r0,#1 ;90
000042 bd70 POP {r4-r6,pc}
;;;92
ENDP
|L1.68|
000044 00000000 DCD ||.data||
|L1.72|
000048 00000000
00004c 3fe80000 DCFD 0x3fe8000000000000 ; 0.75
|L1.80|
000050 00000000 DCD ||.bss||
AREA ||i._SetCapture||, CODE, READONLY, ALIGN=2
_SetCapture PROC
;;;96 */
;;;97 static void _SetCapture(FRAMEWIN_Handle hWin, int x, int y, int Mode) {
000000 b570 PUSH {r4-r6,lr}
;;;98 if ((_HasCaptured & REPOS_X) == 0) {
000002 4c08 LDR r4,|L2.36|
000004 461d MOV r5,r3 ;97
000006 69e3 LDR r3,[r4,#0x1c] ; _HasCaptured
000008 075e LSLS r6,r3,#29
00000a d400 BMI |L2.14|
;;;99 _CaptureX = x;
00000c 6161 STR r1,[r4,#0x14] ; _CaptureX
|L2.14|
;;;100 }
;;;101 if ((_HasCaptured & REPOS_Y) == 0) {
00000e 0719 LSLS r1,r3,#28
000010 d400 BMI |L2.20|
;;;102 _CaptureY = y;
000012 61a2 STR r2,[r4,#0x18] ; _CaptureY
|L2.20|
;;;103 }
;;;104 if (!_HasCaptured) {
000014 2b00 CMP r3,#0
000016 d103 BNE |L2.32|
;;;105 WM_SetCapture(hWin, 1);
000018 2101 MOVS r1,#1
00001a f7fff7ff BL WM_SetCapture
;;;106 _HasCaptured = Mode;
00001e 61e5 STR r5,[r4,#0x1c] ; _HasCaptured
|L2.32|
;;;107 }
;;;108 }
000020 bd70 POP {r4-r6,pc}
;;;109
ENDP
000022 0000 DCW 0x0000
|L2.36|
000024 00000000 DCD ||.data||
AREA ||i._ChangeWindowPosSize||, CODE, READONLY, ALIGN=2
_ChangeWindowPosSize PROC
;;;113 */
;;;114 static void _ChangeWindowPosSize(FRAMEWIN_Handle hWin, int* px, int* py) {
000000 e92de92d PUSH {r2-r10,lr}
000004 460e MOV r6,r1
;;;115 int dx = 0, dy = 0;
000006 2400 MOVS r4,#0
000008 4681 MOV r9,r0 ;114
00000a 4617 MOV r7,r2 ;114
00000c 4625 MOV r5,r4
;;;116 GUI_RECT Rect;
;;;117 WM_GetClientRectEx(hWin, &Rect);
00000e 4669 MOV r1,sp
000010 f7fff7ff BL WM_GetClientRectEx
;;;118 /* Calculate new size of window */
;;;119 if (_HasCaptured & RESIZE_X) {
000014 f8dff8df LDR r8,|L3.164|
000018 f8d8f8d8 LDR r0,[r8,#0x1c] ; _HasCaptured
00001c 07c1 LSLS r1,r0,#31
00001e d008 BEQ |L3.50|
;;;120 dx = (_HasCaptured & REPOS_X) ? (_CaptureX - *px) : (*px - _CaptureX);
000020 0741 LSLS r1,r0,#29
000022 2900 CMP r1,#0
000024 6831 LDR r1,[r6,#0]
000026 f8d8f8d8 LDR r2,[r8,#0x14] ; _CaptureX
00002a da01 BGE |L3.48|
00002c 1a54 SUBS r4,r2,r1
00002e e000 B |L3.50|
|L3.48|
000030 1a8c SUBS r4,r1,r2
|L3.50|
;;;121 }
;;;122 if (_HasCaptured & RESIZE_Y) {
000032 0781 LSLS r1,r0,#30
000034 d508 BPL |L3.72|
;;;123 dy = (_HasCaptured & REPOS_Y) ? (_CaptureY - *py) : (*py - _CaptureY);
000036 0701 LSLS r1,r0,#28
000038 2900 CMP r1,#0
00003a 6839 LDR r1,[r7,#0]
00003c f8d8f8d8 LDR r2,[r8,#0x18] ; _CaptureY
000040 da01 BGE |L3.70|
000042 1a55 SUBS r5,r2,r1
000044 e000 B |L3.72|
|L3.70|
000046 1a8d SUBS r5,r1,r2
|L3.72|
;;;124 }
;;;125 /* Check the minimal size of window */
;;;126 if ((Rect.x1 + dx + 1) < MIN_SIZE_X) {
000048 f9bdf9bd LDRSH r1,[sp,#4]
00004c 1c62 ADDS r2,r4,#1
00004e 440a ADD r2,r2,r1
000050 2ac8 CMP r2,#0xc8
000052 da04 BGE |L3.94|
;;;127 dx = MIN_SIZE_X - (Rect.x1 + 1);
000054 f1c1f1c1 RSB r4,r1,#0xc7
;;;128 *px = _CaptureX;
000058 f8d8f8d8 LDR r1,[r8,#0x14] ; _CaptureX
00005c 6031 STR r1,[r6,#0]
|L3.94|
;;;129 }
;;;130 if ((Rect.y1 + dy + 1) < MIN_SIZE_Y) {
00005e f9bdf9bd LDRSH r1,[sp,#6]
000062 1c6a ADDS r2,r5,#1
000064 440a ADD r2,r2,r1
000066 2a50 CMP r2,#0x50
000068 da04 BGE |L3.116|
;;;131 dy = MIN_SIZE_Y - (Rect.y1 + 1);
00006a f1c1f1c1 RSB r5,r1,#0x4f
;;;132 *py = _CaptureY;
00006e f8d8f8d8 LDR r1,[r8,#0x18] ; _CaptureY
000072 6039 STR r1,[r7,#0]
|L3.116|
;;;133 }
;;;134 /* Set new window position */
;;;135 if (_HasCaptured & REPOS_X) {
000074 0740 LSLS r0,r0,#29
000076 d504 BPL |L3.130|
;;;136 WM_MoveWindow(hWin, -dx, 0);
000078 2200 MOVS r2,#0
00007a 4261 RSBS r1,r4,#0
00007c 4648 MOV r0,r9
00007e f7fff7ff BL WM_MoveWindow
|L3.130|
;;;137 }
;;;138 if (_HasCaptured & REPOS_Y) {
000082 f8d8f8d8 LDR r0,[r8,#0x1c] ; _HasCaptured
000086 0700 LSLS r0,r0,#28
000088 d504 BPL |L3.148|
;;;139 WM_MoveWindow(hWin, 0, -dy);
00008a 426a RSBS r2,r5,#0
00008c 2100 MOVS r1,#0
00008e 4648 MOV r0,r9
000090 f7fff7ff BL WM_MoveWindow
|L3.148|
;;;140 }
;;;141 /* Set new window size */
;;;142 WM_ResizeWindow(hWin, dx, dy);
000094 462a MOV r2,r5
000096 4621 MOV r1,r4
000098 4648 MOV r0,r9
00009a f7fff7ff BL WM_ResizeWindow
;;;143 }
00009e e8bde8bd POP {r2-r10,pc}
;;;144
ENDP
0000a2 0000 DCW 0x0000
|L3.164|
0000a4 00000000 DCD ||.data||
AREA ||i._CreateLButton||, CODE, READONLY, ALIGN=2
_CreateLButton PROC
;;;192 */
;;;193 static WM_HWIN _CreateLButton(const char* pText, int x, int w, int h, WM_HWIN hParent, int Id) {
000000 e92de92d PUSH {r4-r9,lr}
000004 b087 SUB sp,sp,#0x1c
;;;194 WM_HWIN hButton;
;;;195 GUI_RECT Rect;
;;;196 WM_GetClientRectEx(hParent, &Rect);
000006 e9dde9dd LDRD r8,r9,[sp,#0x38]
00000a 4605 MOV r5,r0 ;193
00000c 460e MOV r6,r1 ;193
00000e 4617 MOV r7,r2 ;193
000010 461c MOV r4,r3 ;193
000012 a905 ADD r1,sp,#0x14
000014 4640 MOV r0,r8
000016 f7fff7ff BL WM_GetClientRectEx
;;;197 hButton = BUTTON_CreateEx(x, Rect.y1 - h + 1, w, h, hParent, WM_CF_SHOW | WM_CF_ANCHOR_BOTTOM, 0, Id);
00001a f44ff44f MOV r1,#0x102
00001e e9cde9cd STRD r8,r1,[sp,#0]
000022 2200 MOVS r2,#0
000024 f9bdf9bd LDRSH r0,[sp,#0x1a]
000028 e9cde9cd STRD r2,r9,[sp,#8]
00002c 1b01 SUBS r1,r0,r4
00002e 1c49 ADDS r1,r1,#1
000030 4623 MOV r3,r4
000032 463a MOV r2,r7
000034 4630 MOV r0,r6
000036 f7fff7ff BL BUTTON_CreateEx
00003a 4604 MOV r4,r0
;;;198 BUTTON_SetText(hButton, pText);
00003c 4629 MOV r1,r5
00003e f7fff7ff BL BUTTON_SetText
;;;199 BUTTON_SetFont(hButton, &GUI_Font8_ASCII);
000042 4904 LDR r1,|L4.84|
000044 4620 MOV r0,r4
000046 f7fff7ff BL BUTTON_SetFont
;;;200 return hButton;
00004a 4620 MOV r0,r4
;;;201 }
00004c b007 ADD sp,sp,#0x1c
00004e e8bde8bd POP {r4-r9,pc}
;;;202
ENDP
000052 0000 DCW 0x0000
|L4.84|
000054 00000000 DCD GUI_Font8_ASCII
AREA ||i._CreateRButton||, CODE, READONLY, ALIGN=2
_CreateRButton PROC
;;;206 */
;;;207 static WM_HWIN _CreateRButton(const char* pText, int x, int w, int h, WM_HWIN hParent, int Id) {
000000 e92de92d PUSH {r4-r9,lr}
000004 b087 SUB sp,sp,#0x1c
;;;208 WM_HWIN hButton;
;;;209 GUI_RECT Rect;
;;;210 WM_GetClientRectEx(hParent, &Rect);
000006 e9dde9dd LDRD r8,r9,[sp,#0x38]
00000a 4606 MOV r6,r0 ;207
00000c 460f MOV r7,r1 ;207
00000e 4614 MOV r4,r2 ;207
000010 461d MOV r5,r3 ;207
000012 a905 ADD r1,sp,#0x14
000014 4640 MOV r0,r8
000016 f7fff7ff BL WM_GetClientRectEx
;;;211 hButton = BUTTON_CreateEx(Rect.x1 - x - w + 1, Rect.y1 - h + 1, w, h, hParent,
00001a f44ff44f MOV r1,#0x182
00001e e9cde9cd STRD r8,r1,[sp,#0]
000022 f9bdf9bd LDRSH r0,[sp,#0x1a]
000026 2200 MOVS r2,#0
000028 1b41 SUBS r1,r0,r5
00002a f9bdf9bd LDRSH r0,[sp,#0x18]
00002e e9cde9cd STRD r2,r9,[sp,#8]
000032 1bc0 SUBS r0,r0,r7
000034 1b00 SUBS r0,r0,r4
000036 1c49 ADDS r1,r1,#1
000038 1c40 ADDS r0,r0,#1
00003a 462b MOV r3,r5
00003c 4622 MOV r2,r4
00003e f7fff7ff BL BUTTON_CreateEx
000042 4604 MOV r4,r0
;;;212 WM_CF_SHOW | WM_CF_ANCHOR_BOTTOM | WM_CF_ANCHOR_RIGHT, 0, Id);
;;;213 BUTTON_SetText(hButton, pText);
000044 4631 MOV r1,r6
000046 f7fff7ff BL BUTTON_SetText
;;;214 BUTTON_SetFont(hButton, &GUI_Font8_ASCII);
00004a 4904 LDR r1,|L5.92|
00004c 4620 MOV r0,r4
00004e f7fff7ff BL BUTTON_SetFont
;;;215 return hButton;
000052 4620 MOV r0,r4
;;;216 }
000054 b007 ADD sp,sp,#0x1c
000056 e8bde8bd POP {r4-r9,pc}
;;;217
ENDP
00005a 0000 DCW 0x0000
|L5.92|
00005c 00000000 DCD GUI_Font8_ASCII
AREA ||i._SetButtonState||, CODE, READONLY, ALIGN=1
_SetButtonState PROC
;;;221 */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -