📄 edit.txt
字号:
000006 4615 MOV r5,r2
;;;719 if (sDest) {
000008 d01c BEQ |L3.68|
;;;720 *sDest = 0;
00000a 2600 MOVS r6,#0
00000c 7026 STRB r6,[r4,#0]
;;;721 if (hObj) {
00000e 2800 CMP r0,#0
000010 d018 BEQ |L3.68|
;;;722 EDIT_Obj* pObj;
;;;723 WM_LOCK();
;;;724 pObj = EDIT_H2P(hObj);
000012 f7fffffe BL GUI_ALLOC_h2p
;;;725 if (pObj->hpText) {
000016 f9b00028 LDRSH r0,[r0,#0x28]
00001a 2800 CMP r0,#0
00001c d012 BEQ |L3.68|
;;;726 char* pText;
;;;727 int NumChars, NumBytes;
;;;728 pText = (char*) GUI_ALLOC_h2p(pObj->hpText);
00001e f7fffffe BL GUI_ALLOC_h2p
000022 4607 MOV r7,r0
;;;729 NumChars = GUI__GetNumChars(pText);
000024 f7fffffe BL GUI__GetNumChars
;;;730 if (NumChars > MaxLen) {
000028 42a8 CMP r0,r5
00002a dd00 BLE |L3.46|
;;;731 NumChars = MaxLen;
00002c 4628 MOV r0,r5
|L3.46|
;;;732 }
;;;733 NumBytes = GUI_UC__NumChars2NumBytes(pText, NumChars);
00002e 4601 MOV r1,r0
000030 4638 MOV r0,r7
000032 f7fffffe BL GUI_UC__NumChars2NumBytes
000036 4605 MOV r5,r0
;;;734 memcpy(sDest, pText, NumBytes);
000038 4602 MOV r2,r0
00003a 4639 MOV r1,r7
00003c 4620 MOV r0,r4
00003e f7fffffe BL __aeabi_memcpy
;;;735 *(sDest + NumBytes) = 0;
000042 5566 STRB r6,[r4,r5]
|L3.68|
;;;736 }
;;;737 WM_UNLOCK();
;;;738 }
;;;739 }
;;;740 }
000044 e8bd81f0 POP {r4-r8,pc}
;;;741
ENDP
AREA ||i.EDIT_GetValue||, CODE, READONLY, ALIGN=1
EDIT_GetValue PROC
;;;745 */
;;;746 I32 EDIT_GetValue(EDIT_Handle hObj) {
000000 b510 PUSH {r4,lr}
000002 0001 MOVS r1,r0
;;;747 EDIT_Obj* pObj;
;;;748 I32 r = 0;
000004 f04f0000 MOV r0,#0
;;;749 if (hObj) {
000008 d003 BEQ |L4.18|
;;;750 WM_LOCK();
;;;751 pObj = EDIT_H2P(hObj);
00000a 4608 MOV r0,r1
00000c f7fffffe BL GUI_ALLOC_h2p
;;;752 r = pObj->CurrentValue;
000010 6bc0 LDR r0,[r0,#0x3c]
|L4.18|
;;;753 WM_UNLOCK();
;;;754 }
;;;755 return r;
;;;756 }
000012 bd10 POP {r4,pc}
;;;757
ENDP
AREA ||i.EDIT_SetBkColor||, CODE, READONLY, ALIGN=1
EDIT_SetBkColor PROC
;;;636 */
;;;637 void EDIT_SetBkColor(EDIT_Handle hObj, unsigned int Index, GUI_COLOR color) {
000000 b570 PUSH {r4-r6,lr}
000002 0005 MOVS r5,r0
000004 460c MOV r4,r1
000006 4616 MOV r6,r2
;;;638 EDIT_Obj* pObj;
;;;639 if (hObj == 0)
000008 d00e BEQ |L5.40|
;;;640 return;
;;;641 WM_LOCK();
;;;642 pObj = EDIT_H2P(hObj);
00000a 4628 MOV r0,r5
00000c f7fffffe BL GUI_ALLOC_h2p
;;;643 if (pObj) {
000010 2800 CMP r0,#0
000012 d009 BEQ |L5.40|
;;;644 if (Index < GUI_COUNTOF(pObj->Props.aBkColor)) {
000014 2c02 CMP r4,#2
000016 d207 BCS |L5.40|
;;;645 pObj->Props.aBkColor[Index] = color;
000018 eb000084 ADD r0,r0,r4,LSL #2
;;;646 EDIT_Invalidate(hObj);
00001c 6686 STR r6,[r0,#0x68]
00001e 4628 MOV r0,r5
000020 e8bd4070 POP {r4-r6,lr}
000024 f7ffbffe B.W WM_InvalidateWindow
|L5.40|
;;;647 }
;;;648 }
;;;649 WM_UNLOCK();
;;;650 }
000028 bd70 POP {r4-r6,pc}
;;;651
ENDP
AREA ||i.EDIT_SetCursorAtPixel||, CODE, READONLY, ALIGN=1
EDIT_SetCursorAtPixel PROC
;;;213 */
;;;214 void EDIT_SetCursorAtPixel(EDIT_Handle hObj, int xPos) {
000000 e92d4ff8 PUSH {r3-r11,lr}
000004 ea5f0900 MOVS r9,r0
000008 460c MOV r4,r1
;;;215 if (hObj) {
00000a d056 BEQ |L6.186|
;;;216 EDIT_Obj* pObj;
;;;217 WM_LOCK();
;;;218 pObj = EDIT_H2P(hObj);
00000c 4648 MOV r0,r9
00000e f7fffffe BL GUI_ALLOC_h2p
000012 4605 MOV r5,r0
;;;219 if (pObj->hpText) {
000014 f9b00028 LDRSH r0,[r0,#0x28]
000018 2800 CMP r0,#0
00001a d04e BEQ |L6.186|
;;;220 const GUI_FONT GUI_UNI_PTR *pOldFont;
;;;221 int xSize, TextWidth, NumChars;
;;;222 const char GUI_UNI_PTR * pText;
;;;223 pText = (char*) GUI_ALLOC_h2p(pObj->hpText);
00001c f7fffffe BL GUI_ALLOC_h2p
;;;224 pOldFont = GUI_SetFont(pObj->Props.pFont);
000020 9000 STR r0,[sp,#0]
000022 6de8 LDR r0,[r5,#0x5c]
000024 f7fffffe BL GUI_SetFont
000028 4682 MOV r10,r0
;;;225 xSize = WM_GetWindowSizeX(hObj);
00002a 4648 MOV r0,r9
00002c f7fffffe BL WM_GetWindowSizeX
000030 4607 MOV r7,r0
;;;226 TextWidth = GUI_GetStringDistX(pText);
000032 9800 LDR r0,[sp,#0]
000034 f7fffffe BL GUI_GetStringDistX
000038 4606 MOV r6,r0
;;;227 switch (pObj->Props.Align & GUI_TA_HORIZONTAL) {
00003a 6d68 LDR r0,[r5,#0x54]
00003c f0000003 AND r0,r0,#3
000040 2801 CMP r0,#1
000042 d008 BEQ |L6.86|
000044 2802 CMP r0,#2
000046 d10c BNE |L6.98|
;;;228 case GUI_TA_HCENTER:
;;;229 xPos -= (xSize - TextWidth + 1) / 2;
000048 1bb8 SUBS r0,r7,r6
00004a 1c40 ADDS r0,r0,#1
00004c eb0070d0 ADD r0,r0,r0,LSR #31
000050 eba40460 SUB r4,r4,r0,ASR #1
;;;230 break;
000054 e00b B |L6.110|
|L6.86|
;;;231 case GUI_TA_RIGHT:
;;;232 xPos -= xSize - TextWidth - (pObj->Props.Border + EDIT_XOFF);
000056 6da9 LDR r1,[r5,#0x58]
000058 1bb8 SUBS r0,r7,r6
00005a 1a40 SUBS r0,r0,r1
00005c 1a24 SUBS r4,r4,r0
00005e 1c64 ADDS r4,r4,#1
;;;233 break;
000060 e005 B |L6.110|
|L6.98|
;;;234 default:
;;;235 xPos -= (pObj->Props.Border + EDIT_XOFF) + pObj->Widget.pEffect->EffectSize;
000062 6a29 LDR r1,[r5,#0x20]
000064 6da8 LDR r0,[r5,#0x58]
000066 6949 LDR r1,[r1,#0x14]
000068 4408 ADD r0,r0,r1
00006a 1a24 SUBS r4,r4,r0
00006c 1e64 SUBS r4,r4,#1
|L6.110|
;;;236 }
;;;237 NumChars = GUI__GetNumChars(pText);
00006e 9800 LDR r0,[sp,#0]
000070 f7fffffe BL GUI__GetNumChars
000074 4680 MOV r8,r0
;;;238 if (xPos < 0) {
000076 2c00 CMP r4,#0
000078 da01 BGE |L6.126|
;;;239 EDIT__SetCursorPos(pObj, 0);
00007a 2100 MOVS r1,#0
00007c e014 B |L6.168|
|L6.126|
;;;240 } else if (xPos > TextWidth) {
00007e 42b4 CMP r4,r6
000080 dd01 BLE |L6.134|
;;;241 EDIT__SetCursorPos(pObj, NumChars);
000082 4641 MOV r1,r8
000084 e010 B |L6.168|
|L6.134|
;;;242 } else {
;;;243 int i, x, xLenChar;
;;;244 U16 Char;
;;;245 for (i = 0, x = 0; (i < NumChars) && (x < xPos); i++) {
000086 2600 MOVS r6,#0
000088 4637 MOV r7,r6
00008a e008 B |L6.158|
|L6.140|
;;;246 Char = GUI_UC__GetCharCodeInc(&pText);
00008c 4668 MOV r0,sp
00008e f7fffffe BL GUI_UC__GetCharCodeInc
;;;247 xLenChar = GUI_GetCharDistX(Char);
000092 f7fffffe BL GUI_GetCharDistX
;;;248 if (xPos < (x + xLenChar))
000096 4407 ADD r7,r7,r0
000098 42a7 CMP r7,r4
00009a dc04 BGT |L6.166|
00009c 1c76 ADDS r6,r6,#1 ;245
|L6.158|
00009e 4546 CMP r6,r8 ;245
0000a0 da01 BGE |L6.166|
0000a2 42a7 CMP r7,r4 ;245
0000a4 dbf2 BLT |L6.140|
|L6.166|
;;;249 break;
;;;250 x += xLenChar;
;;;251 }
;;;252 EDIT__SetCursorPos(pObj, i);
0000a6 4631 MOV r1,r6
|L6.168|
0000a8 4628 MOV r0,r5 ;241
0000aa f7fffffe BL EDIT__SetCursorPos
;;;253 }
;;;254 GUI_SetFont(pOldFont);
0000ae 4650 MOV r0,r10
0000b0 f7fffffe BL GUI_SetFont
;;;255 EDIT_Invalidate(hObj);
0000b4 4648 MOV r0,r9
0000b6 f7fffffe BL WM_InvalidateWindow
|L6.186|
;;;256 }
;;;257 WM_UNLOCK();
;;;258 }
;;;259 }
0000ba e8bd8ff8 POP {r3-r11,pc}
;;;260
ENDP
AREA ||i.EDIT_SetFont||, CODE, READONLY, ALIGN=1
EDIT_SetFont PROC
;;;619 */
;;;620 void EDIT_SetFont(EDIT_Handle hObj, const GUI_FONT GUI_UNI_PTR * pfont) {
000000 b570 PUSH {r4-r6,lr}
000002 0004 MOVS r4,r0
000004 460d MOV r5,r1
;;;621 EDIT_Obj* pObj;
;;;622 if (hObj == 0)
000006 d00a BEQ |L7.30|
;;;623 return;
;;;624 WM_LOCK();
;;;625 pObj = EDIT_H2P(hObj);
000008 4620 MOV r0,r4
00000a f7fffffe BL GUI_ALLOC_h2p
;;;626 if (pObj) {
00000e 2800 CMP r0,#0
000010 d005 BEQ |L7.30|
;;;627 pObj->Props.pFont = pfont;
;;;628 EDIT_Invalidate(hObj);
000012 65c5 STR r5,[r0,#0x5c]
000014 4620 MOV r0,r4
000016 e8bd4070 POP {r4-r6,lr}
00001a f7ffbffe B.W WM_InvalidateWindow
|L7.30|
;;;629 }
;;;630 WM_UNLOCK();
;;;631 }
00001e bd70 POP {r4-r6,pc}
;;;632
ENDP
AREA ||i.EDIT_SetMaxLen||, CODE, READONLY, ALIGN=1
EDIT_SetMaxLen PROC
;;;789 */
;;;790 void EDIT_SetMaxLen(EDIT_Handle hObj, int MaxLen) {
000000 e92d41f0 PUSH {r4-r8,lr}
000004 0006 MOVS r6,r0
000006 460d MOV r5,r1
;;;791 if (hObj) {
000008 d024 BEQ |L8.84|
;;;792 EDIT_Obj* pObj;
;;;793 WM_LOCK();
;;;794 pObj = EDIT_H2P(hObj);
00000a 4630 MOV r0,r6
00000c f7fffffe BL GUI_ALLOC_h2p
000010 4604 MOV r4,r0
;;;795 if (MaxLen != pObj->MaxLen) {
000012 f9b0002a LDRSH r0,[r0,#0x2a]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -