📄 widget_multiedit.txt
字号:
0000ca 6ab1 LDR r1,[r6,#0x28] ; _Password
|L10.204|
0000cc e8bde8bd POP {r4-r6,lr}
0000d0 f7fff7ff B.W _SetButtonState
|L10.212|
;;;336 }
;;;337 }
;;;338 return;
;;;339 }
;;;340 if (_pcbFrameWinClient) {
0000d4 68f1 LDR r1,[r6,#0xc] ; _pcbFrameWinClient
0000d6 2900 CMP r1,#0
0000d8 d003 BEQ |L10.226|
;;;341 (*_pcbFrameWinClient)(pMsg);
0000da 4628 MOV r0,r5
0000dc e8bde8bd POP {r4-r6,lr}
0000e0 4708 BX r1
|L10.226|
;;;342 }
;;;343 }
0000e2 bd70 POP {r4-r6,pc}
;;;344
ENDP
|L10.228|
0000e4 00000000 DCD ||.data||
AREA ||i._DemoMultiedit||, CODE, READONLY, ALIGN=2
_DemoMultiedit PROC
;;;348 */
;;;349 static void _DemoMultiedit(void) {
000000 b5f0 PUSH {r4-r7,lr}
;;;350 GUI_RECT Rect;
;;;351 int WinFlags;
;;;352 _hFrame = 1;
000002 4caa LDR r4,|L11.684|
000004 b089 SUB sp,sp,#0x24 ;349
000006 2001 MOVS r0,#1
000008 8060 STRH r0,[r4,#2] ; _hFrame
;;;353 _Overwrite = 0;
00000a 2000 MOVS r0,#0
;;;354 _ReadOnly = 0;
00000c 6260 STR r0,[r4,#0x24] ; _Overwrite
;;;355 _Password = 0;
00000e 6220 STR r0,[r4,#0x20] ; _ReadOnly
;;;356 /* Create framewin */
;;;357 _ChangeInfoText("Create framewin", SPEED);
000010 f44ff44f MOV r5,#0x3e8
000014 62a0 STR r0,[r4,#0x28] ; _Password
000016 4629 MOV r1,r5
000018 a0a5 ADR r0,|L11.688|
00001a f7fff7ff BL _ChangeInfoText
;;;358 _hFrame = FRAMEWIN_CreateEx(60, 80, 200, 120, WM_HBKWIN, WM_CF_SHOW, 0, 0, "Notepad", 0);
00001e f7fff7ff BL WM_GetDesktopWindow
000022 2300 MOVS r3,#0
000024 a2a6 ADR r2,|L11.704|
000026 9302 STR r3,[sp,#8]
000028 e9cde9cd STRD r3,r2,[sp,#0xc]
00002c 9305 STR r3,[sp,#0x14]
00002e 2302 MOVS r3,#2
000030 e9cde9cd STRD r0,r3,[sp,#0]
000034 2378 MOVS r3,#0x78
000036 22c8 MOVS r2,#0xc8
000038 2150 MOVS r1,#0x50
00003a 203c MOVS r0,#0x3c
00003c f7fff7ff BL FRAMEWIN_CreateEx
000040 8060 STRH r0,[r4,#2] ; _hFrame
;;;359 _hClient = WM_GetClientWindow(_hFrame);
000042 f7fff7ff BL WM_GetClientWindow
000046 80a0 STRH r0,[r4,#4] ; _hClient
;;;360 _pcbFrameWin = WM_SetCallback(_hFrame, _cbFrameWin);
000048 499f LDR r1,|L11.712|
00004a f9b4f9b4 LDRSH r0,[r4,#2] ; _hFrame
00004e f7fff7ff BL WM_SetCallback
;;;361 _pcbFrameWinClient = WM_SetCallback(_hClient, _cbFrameWinClient);
000052 60a0 STR r0,[r4,#8] ; _pcbFrameWin
000054 499d LDR r1,|L11.716|
000056 f9b4f9b4 LDRSH r0,[r4,#4] ; _hClient
00005a f7fff7ff BL WM_SetCallback
;;;362 /* Set framewin properties */
;;;363 FRAMEWIN_SetMoveable(_hFrame, 1);
00005e 60e0 STR r0,[r4,#0xc] ; _pcbFrameWinClient
000060 2101 MOVS r1,#1
000062 f9b4f9b4 LDRSH r0,[r4,#2] ; _hFrame
000066 f7fff7ff BL FRAMEWIN_SetMoveable
;;;364 FRAMEWIN_SetActive(_hFrame, 1);
00006a 2101 MOVS r1,#1
00006c f9b4f9b4 LDRSH r0,[r4,#2] ; _hFrame
000070 f7fff7ff BL FRAMEWIN_SetActive
;;;365 FRAMEWIN_SetTextAlign(_hFrame, GUI_TA_HCENTER | GUI_TA_VCENTER);
000074 210e MOVS r1,#0xe
000076 f9b4f9b4 LDRSH r0,[r4,#2] ; _hFrame
00007a f7fff7ff BL FRAMEWIN_SetTextAlign
;;;366 FRAMEWIN_SetFont(_hFrame, &GUI_Font8x12_ASCII);
00007e 4994 LDR r1,|L11.720|
000080 f9b4f9b4 LDRSH r0,[r4,#2] ; _hFrame
000084 f7fff7ff BL FRAMEWIN_SetFont
;;;367 FRAMEWIN_SetTitleHeight(_hFrame, 16);
000088 2110 MOVS r1,#0x10
00008a f9b4f9b4 LDRSH r0,[r4,#2] ; _hFrame
00008e f7fff7ff BL FRAMEWIN_SetTitleHeight
;;;368 /* Add framewin buttons */
;;;369 if (_ChangeInfoText("Add framewin buttons", SPEED)) return;
000092 4629 MOV r1,r5
000094 a08f ADR r0,|L11.724|
000096 f7fff7ff BL _ChangeInfoText
00009a 2800 CMP r0,#0
00009c d17e BNE |L11.412|
;;;370 FRAMEWIN_AddCloseButton(_hFrame, FRAMEWIN_BUTTON_LEFT, 0);
00009e 2200 MOVS r2,#0
0000a0 2102 MOVS r1,#2
0000a2 f9b4f9b4 LDRSH r0,[r4,#2] ; _hFrame
0000a6 f7fff7ff BL FRAMEWIN_AddCloseButton
;;;371 FRAMEWIN_AddMaxButton(_hFrame, FRAMEWIN_BUTTON_RIGHT, 0);
0000aa 2200 MOVS r2,#0
0000ac 2101 MOVS r1,#1
0000ae f9b4f9b4 LDRSH r0,[r4,#2] ; _hFrame
0000b2 f7fff7ff BL FRAMEWIN_AddMaxButton
;;;372 FRAMEWIN_AddMinButton(_hFrame, FRAMEWIN_BUTTON_RIGHT, 1);
0000b6 2201 MOVS r2,#1
0000b8 4611 MOV r1,r2
0000ba f9b4f9b4 LDRSH r0,[r4,#2] ; _hFrame
0000be f7fff7ff BL FRAMEWIN_AddMinButton
;;;373 WM_InvalidateWindow(_hFrame);
0000c2 f9b4f9b4 LDRSH r0,[r4,#2] ; _hFrame
0000c6 f7fff7ff BL WM_InvalidateWindow
;;;374 /* Create buttons */
;;;375 if (_ChangeInfoText("Add option buttons", SPEED)) return;
0000ca 4629 MOV r1,r5
0000cc a087 ADR r0,|L11.748|
0000ce f7fff7ff BL _ChangeInfoText
0000d2 2800 CMP r0,#0
0000d4 d162 BNE |L11.412|
;;;376 _hWrapButton = _CreateLButton("None", 0, 36, 16, _hClient, ID_NONEWRAP);
0000d6 f44ff44f MOV r3,#0x800
0000da f9b4f9b4 LDRSH r2,[r4,#4] ; _hClient
0000de e9cde9cd STRD r2,r3,[sp,#0]
0000e2 2310 MOVS r3,#0x10
0000e4 2224 MOVS r2,#0x24
0000e6 2100 MOVS r1,#0
0000e8 a085 ADR r0,|L11.768|
0000ea f7fff7ff BL _CreateLButton
0000ee 80e0 STRH r0,[r4,#6] ; _hWrapButton
;;;377 _CreateLButton("Word", 37, 36, 16, _hClient, ID_WORDWRAP);
0000f0 f640f640 MOV r6,#0x801
0000f4 f9b4f9b4 LDRSH r2,[r4,#4] ; _hClient
0000f8 e9cde9cd STRD r2,r6,[sp,#0]
0000fc 2310 MOVS r3,#0x10
0000fe 2224 MOVS r2,#0x24
000100 2125 MOVS r1,#0x25
000102 a081 ADR r0,|L11.776|
000104 f7fff7ff BL _CreateLButton
;;;378 _CreateLButton("Char", 74, 36, 16, _hClient, ID_CHARWRAP);
000108 1c73 ADDS r3,r6,#1
00010a f9b4f9b4 LDRSH r2,[r4,#4] ; _hClient
00010e e9cde9cd STRD r2,r3,[sp,#0]
000112 2310 MOVS r3,#0x10
000114 2224 MOVS r2,#0x24
000116 214a MOVS r1,#0x4a
000118 a07d ADR r0,|L11.784|
00011a f7fff7ff BL _CreateLButton
;;;379 _CreateRButton("PSW", 52, 25, 16, _hClient, ID_PASSWORD);
00011e 1d33 ADDS r3,r6,#4
000120 f9b4f9b4 LDRSH r2,[r4,#4] ; _hClient
000124 e9cde9cd STRD r2,r3,[sp,#0]
000128 2310 MOVS r3,#0x10
00012a 2219 MOVS r2,#0x19
00012c 2134 MOVS r1,#0x34
00012e a07a ADR r0,|L11.792|
000130 f7fff7ff BL _CreateRButton
;;;380 _CreateRButton("OVR", 26, 25, 16, _hClient, ID_OVERWRITE);
000134 1cb3 ADDS r3,r6,#2
000136 f9b4f9b4 LDRSH r2,[r4,#4] ; _hClient
00013a e9cde9cd STRD r2,r3,[sp,#0]
00013e 2310 MOVS r3,#0x10
000140 2219 MOVS r2,#0x19
000142 211a MOVS r1,#0x1a
000144 a075 ADR r0,|L11.796|
000146 f7fff7ff BL _CreateRButton
;;;381 _CreateRButton("R/O", 0, 25, 16, _hClient, ID_READONLY);
00014a 1cf3 ADDS r3,r6,#3
00014c f9b4f9b4 LDRSH r2,[r4,#4] ; _hClient
000150 e9cde9cd STRD r2,r3,[sp,#0]
000154 2310 MOVS r3,#0x10
000156 2219 MOVS r2,#0x19
000158 2100 MOVS r1,#0
00015a a071 ADR r0,|L11.800|
00015c f7fff7ff BL _CreateRButton
;;;382 _SetButtonState(_hWrapButton, 1);
000160 2101 MOVS r1,#1
000162 f9b4f9b4 LDRSH r0,[r4,#6] ; _hWrapButton
000166 f7fff7ff BL _SetButtonState
;;;383 /* Create multiedit */
;;;384 if (_ChangeInfoText("using\nMULTIEDIT_CreateEx", SPEED)) return;
00016a 4629 MOV r1,r5
00016c a06d ADR r0,|L11.804|
00016e f7fff7ff BL _ChangeInfoText
000172 2800 CMP r0,#0
000174 d112 BNE |L11.412|
;;;385 WinFlags = WM_CF_SHOW | WM_CF_ANCHOR_RIGHT | WM_CF_ANCHOR_LEFT | WM_CF_ANCHOR_TOP | WM_CF_ANCHOR_BOTTOM;
000176 f240f240 MOV r7,#0x782
;;;386 WM_GetClientRectEx(_hClient, &Rect);
00017a a907 ADD r1,sp,#0x1c
00017c f9b4f9b4 LDRSH r0,[r4,#4] ; _hClient
000180 f7fff7ff BL WM_GetClientRectEx
;;;387 _hMEdit = MULTIEDIT_CreateEx(0, 0, 0, Rect.y1 - 16 + 1, _hClient, WinFlags, MULTIEDIT_CF_INSERT, 0, 0, "");
000184 2200 MOVS r2,#0
000186 2004 MOVS r0,#4
000188 e9cde9cd STRD r0,r2,[sp,#8]
00018c a356 ADR r3,|L11.744|
00018e e9cde9cd STRD r2,r3,[sp,#0x10]
000192 f9b4f9b4 LDRSH r2,[r4,#4] ; _hClient
000196 e9cde9cd STRD r2,r7,[sp,#0]
00019a e000 B |L11.414|
|L11.412|
00019c e084 B |L11.680|
|L11.414|
00019e f9bdf9bd LDRSH r3,[sp,#0x22]
0001a2 2200 MOVS r2,#0
0001a4 3b0f SUBS r3,r3,#0xf
0001a6 4611 MOV r1,r2
0001a8 4610 MOV r0,r2
0001aa f7fff7ff BL MULTIEDIT_CreateEx
0001ae 8020 STRH r0,[r4,#0] ; _hMEdit
;;;388 _pcbMultiEdit = WM_SetCallback(_hMEdit, _cbMultiEdit);
0001b0 4963 LDR r1,|L11.832|
0001b2 f7fff7ff BL WM_SetCallback
;;;389 MULTIEDIT_SetAutoScrollH(_hMEdit, 1);
0001b6 6120 STR r0,[r4,#0x10] ; _pcbMultiEdit
0001b8 2101 MOVS r1,#1
0001ba f9b4f9b4 LDRSH r0,[r4,#0] ; _hMEdit
0001be f7fff7ff BL MULTIEDIT_SetAutoScrollH
;;;390 MULTIEDIT_SetAutoScrollV(_hMEdit, 1);
0001c2 2101 MOVS r1,#1
0001c4 f9b4f9b4 LDRSH r0,[r4,#0] ; _hMEdit
0001c8 f7fff7ff BL MULTIEDIT_SetAutoScrollV
;;;391 WM_SetFocus(_hMEdit);
0001cc f9b4f9b4 LDRSH r0,[r4,#0] ; _hMEdit
0001d0 f7fff7ff BL WM_SetFocus
;;;392 if (_ChangeInfoText("using\nMULTIEDIT_SetText", SPEED)) return;
0001d4 4629 MOV r1,r5
0001d6 a05b ADR r0,|L11.836|
0001d8 f7fff7ff BL _ChangeInfoText
0001dc 2800 CMP r0,#0
0001de d163 BNE |L11.680|
;;;393 MULTIEDIT_SetText(_hMEdit, "This sample demonstrates the use of a multiedit widget!");
0001e0 a15e ADR r1,|L11.860|
0001e2 f9b4f9b4 LDRSH r0,[r4,#0] ; _hMEdit
0001e6 f7fff7ff BL MULTIEDIT_SetText
;;;394 if (_ChangeInfoText("using\nMULTIEDIT_SetFont", SPEED)) return;
0001ea 4629 MOV r1,r5
0001ec a069 ADR r0,|L11.916|
0001ee f7fff7ff BL _ChangeInfoText
0001f2 2800 CMP r0,#0
0001f4 d158 BNE |L11.680|
;;;395 MULTIEDIT_SetFont(_hMEdit, &GUI_Font16_1);
0001f6 496d LDR r1,|L11.940|
0001f8 f9b4f9b4 LDRSH r0,[r4,#0] ; _hMEdit
0001fc f7fff7ff BL MULTIEDIT_SetFont
;;;396 if (_ChangeInfoText("using\nMULTIEDIT_SetTextColor", SPEED)) return;
000200 4629 MOV r1,r5
000202 a06b ADR r0,|L11.944|
000204 f7fff7ff BL _ChangeInfoText
000208 2800 CMP r0,#0
00020a d14d BNE |L11.680|
;;;397 MULTIEDIT_SetTextColor(_hMEdit, 0, 0xE00000);
00020c f44ff44f MOV r2,#0xe00000
000210 2100 MOVS r1,#0
000212 f9b4f9b4 LDRSH r0,[r4,#0] ; _hMEdit
000216 f7fff7ff BL MULTIEDIT_SetTextColor
;;;398 if (_ChangeInfoText("using\nMULTIEDIT_SetBkColor", SPEED)) return;
00021a 4629 MOV r1,r5
00021c a06c ADR r0,|L11.976|
00021e f7fff7ff BL _ChangeInfoText
000222 2800 CMP r0,#0
000224 d140 BNE |L11.680|
;;;399 MULTIEDIT_SetBkColor(_hMEdit, 0, 0xD0FFFF);
000226 4a71 LDR r2,|L11.1004|
000228 2100 MOVS r1,#0
00022a f9b4f9b4 LDRSH r0,[r4,#0] ; _hMEdit
00022e f7fff7ff BL MULTIEDIT_SetBkColor
;;;400 if (_ChangeInfoText("using\nMULTIEDIT_SetWrapWord", SPEED)) return;
000232 4629 MOV r1,r5
000234 a06e ADR r0,|L11.1008|
000236 f7fff7ff BL _ChangeInfoText
00023a 2800 CMP r0,#0
00023c d134 BNE |L11.680|
;;;401 MULTIEDIT_SetWrapWord(_hMEdit);
00023e f9b4f9b4 LDRSH r0,[r4,#0] ; _hMEdit
000242 f7fff7ff BL MULTIEDIT_SetWrapWord
;;;402 _SetButtonState(_hWrapButton, 0);
000246 2100 MOVS r1,#0
000248 f9b4f9b4 LDRSH r0,[r4,#6] ; _hWrapButton
00024c f7fff7ff BL _SetButtonState
;;;403 _hWrapButton = WM_GetDialogItem(_hClient, ID_WORDWRAP);
000250 4631 MOV r1,r6
000252 f9b4f9b4 LDRSH r0,[r4,#4] ; _hClient
000256 f7fff7ff BL WM_GetDialogItem
00025a 80e0 STRH r0,[r4,#6] ; _hWrapButton
;;;404 _SetButtonState(_hWrapButton, 1);
00025c 2101 MOVS r1,#1
00025e f7fff7ff BL _SetButtonState
;;;405 if (_ChangeInfoText("using\nMULTIEDIT_SetHBorder", SPEED)) return;
000262 4629 MOV r1,r5
000264 a069 ADR r0,|L11.1036|
000266 f7fff7ff BL _ChangeInfoText
00026a 2800 CMP r0,#0
00026c d11c BNE |L11.680|
;;;406 MULTIEDIT_SetHBorder(_hMEdit, 3);
00026e 2103 MOVS r1,#3
000270 f9b4f9b4 LDRSH r0,[r4,#0] ; _hMEdit
000274 f7fff7ff BL MULTIEDIT_SetHBorder
;;;407 if (_ChangeInfoText("using\nMULTIEDIT_SetPrompt", SPEED)) return;
000278 4629 MOV r1,r5
00027a a06b ADR r0,|L11.1064|
00027c f7fff7ff BL _ChangeInfoText
000280 2800 CMP r0,#0
000282 d111 BNE |L11.680|
;;;408 MULTIEDIT_SetPrompt(_hMEdit, "Type: ");
000284 a16f ADR r1,|L11.1092|
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -