📄 widget_multiedit.txt
字号:
;;;222 static void _SetButtonState(WM_HWIN hButton, int State) {
000000 b570 PUSH {r4-r6,lr}
000002 4605 MOV r5,r0
;;;223 if (State) {
000004 b141 CBZ r1,|L6.24|
;;;224 BUTTON_SetTextColor(hButton, 0, 0x0040F0);
000006 f244f244 MOV r4,#0x40f0
00000a 4622 MOV r2,r4
00000c 2100 MOVS r1,#0
00000e 4628 MOV r0,r5
000010 f7fff7ff BL BUTTON_SetTextColor
;;;225 BUTTON_SetTextColor(hButton, 1, 0x0040F0);
000014 4622 MOV r2,r4
000016 e005 B |L6.36|
|L6.24|
;;;226 } else {
;;;227 BUTTON_SetTextColor(hButton, 0, GUI_BLACK);
000018 2200 MOVS r2,#0
00001a 4611 MOV r1,r2
00001c 4628 MOV r0,r5
00001e f7fff7ff BL BUTTON_SetTextColor
;;;228 BUTTON_SetTextColor(hButton, 1, GUI_BLACK);
000022 2200 MOVS r2,#0
|L6.36|
000024 4628 MOV r0,r5
000026 e8bde8bd POP {r4-r6,lr}
00002a 2101 MOVS r1,#1
00002c f7fff7ff B.W BUTTON_SetTextColor
;;;229 }
;;;230 }
;;;231
ENDP
AREA ||i._cbBkWin||, CODE, READONLY, ALIGN=2
_cbBkWin PROC
;;;241 */
;;;242 static void _cbBkWin(WM_MESSAGE* pMsg) {
000000 b510 PUSH {r4,lr}
;;;243 switch(pMsg->MsgId) {
000002 6801 LDR r1,[r0,#0]
000004 290f CMP r1,#0xf
000006 d11b BNE |L7.64|
;;;244 case WM_PAINT:
;;;245 GUI_SetBkColor(0x00A000);
000008 f44ff44f MOV r0,#0xa000
00000c f7fff7ff BL GUI_SetBkColor
;;;246 GUI_SetColor(GUI_WHITE);
000010 f06ff06f MVN r0,#0xff000000
000014 f7fff7ff BL GUI_SetColor
;;;247 GUI_Clear();
000018 f7fff7ff BL GUI_Clear
;;;248 GUI_SetFont(&GUI_Font24_ASCII);
00001c 480a LDR r0,|L7.72|
00001e f7fff7ff BL GUI_SetFont
;;;249 GUI_DispStringHCenterAt("MULTIEDIT - Sample", 160, 5);
000022 2205 MOVS r2,#5
000024 21a0 MOVS r1,#0xa0
000026 a009 ADR r0,|L7.76|
000028 f7fff7ff BL GUI_DispStringHCenterAt
;;;250 GUI_SetFont(&GUI_Font8x16);
00002c 480c LDR r0,|L7.96|
00002e f7fff7ff BL GUI_SetFont
;;;251 GUI_DispStringAt(_acInfoText, 0, 30);
000032 221e MOVS r2,#0x1e
000034 e8bde8bd POP {r4,lr}
000038 2100 MOVS r1,#0
00003a 480a LDR r0,|L7.100|
00003c f7fff7ff B.W GUI_DispStringAt
|L7.64|
;;;252 break;
;;;253 default:
;;;254 WM_DefaultProc(pMsg);
000040 e8bde8bd POP {r4,lr}
000044 f7fff7ff B.W WM_DefaultProc
;;;255 }
;;;256 }
;;;257
ENDP
|L7.72|
000048 00000000 DCD GUI_Font24_ASCII
|L7.76|
00004c 4d554c54 DCB "MULT"
000050 49454449 DCB "IEDI"
000054 54202d20 DCB "T - "
000058 53616d70 DCB "Samp"
00005c 6c650000 DCB "le\0\0"
|L7.96|
000060 00000000 DCD GUI_Font8x16
|L7.100|
000064 00000000 DCD ||.bss||
AREA ||i._cbMultiEdit||, CODE, READONLY, ALIGN=2
_cbMultiEdit PROC
;;;261 */
;;;262 static void _cbMultiEdit(WM_MESSAGE* pMsg) {
000000 b570 PUSH {r4-r6,lr}
000002 4604 MOV r4,r0
;;;263 if (pMsg->MsgId == WM_KEY) {
000004 6800 LDR r0,[r0,#0]
000006 4d10 LDR r5,|L8.72|
000008 280e CMP r0,#0xe
00000a d114 BNE |L8.54|
;;;264 if (((WM_KEY_INFO*)(pMsg->Data.p))->PressedCnt > 0) {
00000c 68a0 LDR r0,[r4,#8]
00000e 6841 LDR r1,[r0,#4]
000010 2900 CMP r1,#0
000012 dd10 BLE |L8.54|
;;;265 int Key = ((WM_KEY_INFO*)(pMsg->Data.p))->Key;
000014 6800 LDR r0,[r0,#0]
;;;266 if (Key == GUI_KEY_INSERT) {
000016 281d CMP r0,#0x1d
000018 d10d BNE |L8.54|
;;;267 WM_HWIN hWin;
;;;268 hWin = WM_GetDialogItem(WM_GetParent(pMsg->hWin), ID_OVERWRITE);
00001a f9b4f9b4 LDRSH r0,[r4,#4]
00001e f7fff7ff BL WM_GetParent
000022 f640f640 MOV r1,#0x803
000026 f7fff7ff BL WM_GetDialogItem
;;;269 _Overwrite ^= 1;
00002a 6a69 LDR r1,[r5,#0x24] ; _Overwrite
00002c f081f081 EOR r1,r1,#1
;;;270 _SetButtonState(hWin, _Overwrite);
000030 6269 STR r1,[r5,#0x24] ; _Overwrite
000032 f7fff7ff BL _SetButtonState
|L8.54|
;;;271 }
;;;272 }
;;;273 }
;;;274 if (_pcbMultiEdit) {
000036 6929 LDR r1,[r5,#0x10] ; _pcbMultiEdit
000038 2900 CMP r1,#0
00003a d003 BEQ |L8.68|
;;;275 (*_pcbMultiEdit)(pMsg);
00003c 4620 MOV r0,r4
00003e e8bde8bd POP {r4-r6,lr}
000042 4708 BX r1
|L8.68|
;;;276 }
;;;277 }
000044 bd70 POP {r4-r6,pc}
;;;278
ENDP
000046 0000 DCW 0x0000
|L8.72|
000048 00000000 DCD ||.data||
AREA ||i._cbFrameWin||, CODE, READONLY, ALIGN=2
_cbFrameWin PROC
;;;282 */
;;;283 static void _cbFrameWin(WM_MESSAGE* pMsg) {
000000 b570 PUSH {r4-r6,lr}
000002 4604 MOV r4,r0
;;;284 switch(pMsg->MsgId) {
000004 6800 LDR r0,[r0,#0]
000006 4d0f LDR r5,|L9.68|
000008 280b CMP r0,#0xb
00000a d00e BEQ |L9.42|
00000c 280c CMP r0,#0xc
00000e d111 BNE |L9.52|
;;;285 case WM_TOUCH:
;;;286 if (FRAMEWIN_IsMinimized(pMsg->hWin) == 0) {
000010 f9b4f9b4 LDRSH r0,[r4,#4]
000014 f7fff7ff BL FRAMEWIN_IsMinimized
000018 b960 CBNZ r0,|L9.52|
;;;287 if (_OnTouch(pMsg->hWin, pMsg)) {
00001a f9b4f9b4 LDRSH r0,[r4,#4]
00001e 4621 MOV r1,r4
000020 f7fff7ff BL _OnTouch
000024 2800 CMP r0,#0
000026 d10c BNE |L9.66|
000028 e004 B |L9.52|
|L9.42|
;;;288 return;
;;;289 }
;;;290 }
;;;291 break;
;;;292 case WM_DELETE:
;;;293 _hFrame = 0;
00002a 2000 MOVS r0,#0
00002c 8068 STRH r0,[r5,#2] ; _hFrame
;;;294 _hClient = 0;
00002e 80a8 STRH r0,[r5,#4] ; _hClient
;;;295 _hMEdit = 0;
000030 8028 STRH r0,[r5,#0] ; _hMEdit
;;;296 _hWrapButton = 0;
000032 80e8 STRH r0,[r5,#6] ; _hWrapButton
|L9.52|
;;;297 break;
;;;298 }
;;;299 if (_pcbFrameWin) {
000034 68a9 LDR r1,[r5,#8] ; _pcbFrameWin
000036 2900 CMP r1,#0
000038 d003 BEQ |L9.66|
;;;300 (*_pcbFrameWin)(pMsg);
00003a 4620 MOV r0,r4
00003c e8bde8bd POP {r4-r6,lr}
000040 4708 BX r1
|L9.66|
;;;301 }
;;;302 }
000042 bd70 POP {r4-r6,pc}
;;;303
ENDP
|L9.68|
000044 00000000 DCD ||.data||
AREA ||i._cbFrameWinClient||, CODE, READONLY, ALIGN=2
_cbFrameWinClient PROC
;;;307 */
;;;308 static void _cbFrameWinClient(WM_MESSAGE* pMsg) {
000000 b570 PUSH {r4-r6,lr}
000002 4605 MOV r5,r0
;;;309 switch(pMsg->MsgId) {
000004 6800 LDR r0,[r0,#0]
000006 4e37 LDR r6,|L10.228|
000008 2826 CMP r0,#0x26
00000a d163 BNE |L10.212|
;;;310 case WM_NOTIFY_PARENT:
;;;311 if (pMsg->Data.v == WM_NOTIFICATION_RELEASED) {
00000c 68a8 LDR r0,[r5,#8]
00000e 2802 CMP r0,#2
000010 d167 BNE |L10.226|
;;;312 int Id = WM_GetId(pMsg->hWinSrc);
000012 f9b5f9b5 LDRSH r0,[r5,#6]
000016 f7fff7ff BL WM_GetId
00001a 4604 MOV r4,r0
;;;313 if ((Id >= ID_NONEWRAP) && (Id <= ID_CHARWRAP)) {
00001c f5a0f5a0 SUB r0,r0,#0x800
000020 2802 CMP r0,#2
000022 d822 BHI |L10.106|
;;;314 _SetButtonState(_hWrapButton, 0);
000024 2100 MOVS r1,#0
000026 f9b6f9b6 LDRSH r0,[r6,#6] ; _hWrapButton
00002a f7fff7ff BL _SetButtonState
;;;315 if (Id == ID_NONEWRAP) {
00002e f5b4f5b4 CMP r4,#0x800
000032 d104 BNE |L10.62|
;;;316 MULTIEDIT_SetWrapNone(_hMEdit);
000034 f9b6f9b6 LDRSH r0,[r6,#0] ; _hMEdit
000038 f7fff7ff BL MULTIEDIT_SetWrapNone
00003c e010 B |L10.96|
|L10.62|
;;;317 } else if (Id == ID_WORDWRAP) {
00003e f5a4f5a4 SUB r0,r4,#0x800
000042 3801 SUBS r0,#1
000044 d104 BNE |L10.80|
;;;318 MULTIEDIT_SetWrapWord(_hMEdit);
000046 f9b6f9b6 LDRSH r0,[r6,#0] ; _hMEdit
00004a f7fff7ff BL MULTIEDIT_SetWrapWord
00004e e007 B |L10.96|
|L10.80|
;;;319 } else if (Id == ID_CHARWRAP) {
000050 f5a4f5a4 SUB r0,r4,#0x800
000054 3802 SUBS r0,#2
000056 d103 BNE |L10.96|
;;;320 MULTIEDIT_SetWrapChar(_hMEdit);
000058 f9b6f9b6 LDRSH r0,[r6,#0] ; _hMEdit
00005c f7fff7ff BL MULTIEDIT_SetWrapChar
|L10.96|
;;;321 }
;;;322 _hWrapButton = pMsg->hWinSrc;
000060 f9b5f9b5 LDRSH r0,[r5,#6]
000064 80f0 STRH r0,[r6,#6] ; _hWrapButton
;;;323 _SetButtonState(_hWrapButton, 1);
000066 2101 MOVS r1,#1
000068 e030 B |L10.204|
|L10.106|
;;;324 } else if (Id == ID_OVERWRITE) {
00006a f5a4f5a4 SUB r0,r4,#0x800
00006e 3803 SUBS r0,#3
000070 d10d BNE |L10.142|
;;;325 _Overwrite ^= 1;
000072 6a70 LDR r0,[r6,#0x24] ; _Overwrite
000074 f080f080 EOR r0,r0,#1
;;;326 MULTIEDIT_SetInsertMode(_hMEdit, 1 - _Overwrite);
000078 f1c0f1c0 RSB r1,r0,#1
00007c 6270 STR r0,[r6,#0x24] ; _Overwrite
00007e f9b6f9b6 LDRSH r0,[r6,#0] ; _hMEdit
000082 f7fff7ff BL MULTIEDIT_SetInsertMode
;;;327 _SetButtonState(pMsg->hWinSrc, _Overwrite);
000086 f9b5f9b5 LDRSH r0,[r5,#6]
00008a 6a71 LDR r1,[r6,#0x24] ; _Overwrite
00008c e01e B |L10.204|
|L10.142|
;;;328 } else if (Id == ID_READONLY) {
00008e f5a4f5a4 SUB r0,r4,#0x800
000092 3804 SUBS r0,#4
000094 d10b BNE |L10.174|
;;;329 _ReadOnly ^= 1;
000096 6a30 LDR r0,[r6,#0x20] ; _ReadOnly
000098 f080f080 EOR r1,r0,#1
;;;330 MULTIEDIT_SetReadOnly(_hMEdit, _ReadOnly);
00009c 6231 STR r1,[r6,#0x20] ; _ReadOnly
00009e f9b6f9b6 LDRSH r0,[r6,#0] ; _hMEdit
0000a2 f7fff7ff BL MULTIEDIT_SetReadOnly
;;;331 _SetButtonState(pMsg->hWinSrc, _ReadOnly);
0000a6 f9b5f9b5 LDRSH r0,[r5,#6]
0000aa 6a31 LDR r1,[r6,#0x20] ; _ReadOnly
0000ac e00e B |L10.204|
|L10.174|
;;;332 } else if (Id == ID_PASSWORD) {
0000ae f5a4f5a4 SUB r0,r4,#0x800
0000b2 3805 SUBS r0,#5
0000b4 d115 BNE |L10.226|
;;;333 _Password ^= 1;
0000b6 6ab0 LDR r0,[r6,#0x28] ; _Password
0000b8 f080f080 EOR r1,r0,#1
;;;334 MULTIEDIT_SetPasswordMode(_hMEdit, _Password);
0000bc 62b1 STR r1,[r6,#0x28] ; _Password
0000be f9b6f9b6 LDRSH r0,[r6,#0] ; _hMEdit
0000c2 f7fff7ff BL MULTIEDIT_SetPasswordMode
;;;335 _SetButtonState(pMsg->hWinSrc, _Password);
0000c6 f9b5f9b5 LDRSH r0,[r5,#6]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -