📄 multiedit.txt
字号:
00000c f9b00038 LDRSH r0,[r0,#0x38]
000010 b148 CBZ r0,|L5.38|
;;;1811 const char* s;
;;;1812 s = (const char*)GUI_ALLOC_h2p(pObj->hText);
000012 f7fffffe BL GUI_ALLOC_h2p
000016 4605 MOV r5,r0
;;;1813 s += GUI_UC__NumChars2NumBytes(s, pObj->NumCharsPrompt);
000018 8fe1 LDRH r1,[r4,#0x3e]
00001a f7fffffe BL GUI_UC__NumChars2NumBytes
00001e 4428 ADD r0,r0,r5
;;;1814 r = 1 + strlen(s);
000020 f7fffffe BL strlen
000024 1c45 ADDS r5,r0,#1
|L5.38|
;;;1815 }
;;;1816 WM_UNLOCK();
;;;1817 }
;;;1818 return r;
000026 4628 MOV r0,r5
;;;1819 }
000028 bd70 POP {r4-r6,pc}
;;;1820
ENDP
AREA ||i.MULTIEDIT_SetAutoScrollH||, CODE, READONLY, ALIGN=1
MULTIEDIT_SetAutoScrollH PROC
;;;1610 */
;;;1611 void MULTIEDIT_SetAutoScrollH(MULTIEDIT_HANDLE hObj, int OnOff) {
000000 2210 MOVS r2,#0x10
;;;1612 _SetFlag(hObj, OnOff, MULTIEDIT_SF_AUTOSCROLLBAR_H);
000002 f7ffbffe B.W _SetFlag
;;;1613 }
;;;1614
ENDP
AREA ||i.MULTIEDIT_SetAutoScrollV||, CODE, READONLY, ALIGN=1
MULTIEDIT_SetAutoScrollV PROC
;;;1602 */
;;;1603 void MULTIEDIT_SetAutoScrollV(MULTIEDIT_HANDLE hObj, int OnOff) {
000000 2208 MOVS r2,#8
;;;1604 _SetFlag(hObj, OnOff, MULTIEDIT_SF_AUTOSCROLLBAR_V);
000002 f7ffbffe B.W _SetFlag
;;;1605 }
;;;1606
ENDP
AREA ||i.MULTIEDIT_SetBkColor||, CODE, READONLY, ALIGN=1
MULTIEDIT_SetBkColor PROC
;;;1655 */
;;;1656 void MULTIEDIT_SetBkColor(MULTIEDIT_HANDLE hObj, unsigned Index, GUI_COLOR color) {
000000 b570 PUSH {r4-r6,lr}
000002 0004 MOVS r4,r0
000004 460d MOV r5,r1
000006 4616 MOV r6,r2
;;;1657 if (hObj && (Index < NUM_DISP_MODES)) {
000008 d00c BEQ |L8.36|
00000a 2d02 CMP r5,#2
00000c d20a BCS |L8.36|
;;;1658 MULTIEDIT_OBJ* pObj;
;;;1659 WM_LOCK();
;;;1660 pObj = MULTIEDIT_H2P(hObj);
00000e 4620 MOV r0,r4
000010 f7fffffe BL GUI_ALLOC_h2p
;;;1661 pObj->aBkColor[Index] = color;
000014 eb000085 ADD r0,r0,r5,LSL #2
;;;1662 _InvalidateTextArea(hObj);
000018 6286 STR r6,[r0,#0x28]
00001a 4620 MOV r0,r4
00001c e8bd4070 POP {r4-r6,lr}
000020 f7ffbffe B.W _InvalidateTextArea
|L8.36|
;;;1663 WM_UNLOCK();
;;;1664 }
;;;1665 }
000024 bd70 POP {r4-r6,pc}
;;;1666
ENDP
AREA ||i.MULTIEDIT_SetBufferSize||, CODE, READONLY, ALIGN=1
MULTIEDIT_SetBufferSize PROC
;;;1740 */
;;;1741 void MULTIEDIT_SetBufferSize(MULTIEDIT_HANDLE hObj, int BufferSize) {
000000 e92d41f0 PUSH {r4-r8,lr}
000004 0006 MOVS r6,r0
000006 460d MOV r5,r1
;;;1742 if (hObj) {
000008 d029 BEQ |L9.94|
;;;1743 MULTIEDIT_OBJ* pObj;
;;;1744 WM_HMEM hText;
;;;1745 WM_LOCK();
;;;1746 pObj = MULTIEDIT_H2P(hObj);
00000a 4630 MOV r0,r6
00000c f7fffffe BL GUI_ALLOC_h2p
000010 4604 MOV r4,r0
;;;1747 if ((hText = GUI_ALLOC_AllocZero(BufferSize)) == 0) {
000012 b228 SXTH r0,r5
000014 f7fffffe BL GUI_ALLOC_AllocZero
000018 0007 MOVS r7,r0
00001a d01b BEQ |L9.84|
;;;1748 GUI_DEBUG_ERROROUT("MULTIEDIT_SetBufferSize failed to alloc buffer");
;;;1749 } else {
;;;1750 GUI_ALLOC_FreePtr(&pObj->hText);
00001c f1040038 ADD r0,r4,#0x38
000020 f7fffffe BL GUI_ALLOC_FreePtr
;;;1751 pObj->hText = hText;
000024 8727 STRH r7,[r4,#0x38]
;;;1752 pObj->BufferSize = BufferSize;
;;;1753 pObj->NumCharsPrompt = 0;
000026 2000 MOVS r0,#0
000028 f8a45044 STRH r5,[r4,#0x44] ;1752
00002c 87e0 STRH r0,[r4,#0x3e]
;;;1754 _SetCursorPos(hObj, pObj, 0);
00002e 4602 MOV r2,r0
000030 4621 MOV r1,r4
000032 4630 MOV r0,r6
000034 f7fffffe BL _SetCursorPos
000038 f8140f75 LDRB r0,[r4,#0x75]!
00003c f0400001 ORR r0,r0,#1
000040 b2c0 UXTB r0,r0
000042 f0400008 ORR r0,r0,#8
000046 b2c0 UXTB r0,r0
000048 f0400002 ORR r0,r0,#2
00004c b2c0 UXTB r0,r0
00004e f0400004 ORR r0,r0,#4
000052 7020 STRB r0,[r4,#0]
|L9.84|
;;;1755 _InvalidateNumChars(pObj);
;;;1756 _InvalidateCursorXY(pObj);
;;;1757 _InvalidateNumLines(pObj);
;;;1758 _InvalidateTextSizeX(pObj);
;;;1759 }
;;;1760 _InvalidateTextArea(hObj);
000054 4630 MOV r0,r6
000056 e8bd41f0 POP {r4-r8,lr}
00005a f7ffbffe B.W _InvalidateTextArea
|L9.94|
;;;1761 WM_UNLOCK();
;;;1762 }
;;;1763 }
00005e e8bd81f0 POP {r4-r8,pc}
;;;1764
ENDP
AREA ||i.MULTIEDIT_SetCursorOffset||, CODE, READONLY, ALIGN=1
MULTIEDIT_SetCursorOffset PROC
;;;1670 */
;;;1671 void MULTIEDIT_SetCursorOffset(MULTIEDIT_HANDLE hObj, int Offset) {
000000 b570 PUSH {r4-r6,lr}
000002 0004 MOVS r4,r0
000004 460d MOV r5,r1
;;;1672 if (hObj) {
000006 d00c BEQ |L10.34|
;;;1673 MULTIEDIT_OBJ* pObj;
;;;1674 WM_LOCK();
;;;1675 pObj = MULTIEDIT_H2P(hObj);
000008 4620 MOV r0,r4
00000a f7fffffe BL GUI_ALLOC_h2p
;;;1676 _SetCursorPos(hObj, pObj, Offset);
00000e 4601 MOV r1,r0
000010 462a MOV r2,r5
000012 4620 MOV r0,r4
000014 f7fffffe BL _SetCursorPos
;;;1677 WM_Invalidate(hObj);
000018 4620 MOV r0,r4
00001a e8bd4070 POP {r4-r6,lr}
00001e f7ffbffe B.W WM_InvalidateWindow
|L10.34|
;;;1678 WM_UNLOCK();
;;;1679 }
;;;1680 }
000022 bd70 POP {r4-r6,pc}
;;;1681
ENDP
AREA ||i.MULTIEDIT_SetFont||, CODE, READONLY, ALIGN=1
MULTIEDIT_SetFont PROC
;;;1635 */
;;;1636 void MULTIEDIT_SetFont(MULTIEDIT_HANDLE hObj, const GUI_FONT GUI_UNI_PTR * pFont) {
000000 b570 PUSH {r4-r6,lr}
000002 0006 MOVS r6,r0
000004 460d MOV r5,r1
;;;1637 if (hObj) {
000006 d015 BEQ |L11.52|
;;;1638 MULTIEDIT_OBJ* pObj;
;;;1639 WM_LOCK();
;;;1640 pObj = MULTIEDIT_H2P(hObj);
000008 4630 MOV r0,r6
00000a f7fffffe BL GUI_ALLOC_h2p
00000e 4604 MOV r4,r0
;;;1641 if (pObj->pFont != pFont) {
000010 6f00 LDR r0,[r0,#0x70]
000012 42a8 CMP r0,r5
000014 d00e BEQ |L11.52|
;;;1642 pObj->pFont = pFont;
000016 f8445f70 STR r5,[r4,#0x70]!
;;;1643 _InvalidateTextArea(hObj);
00001a 4630 MOV r0,r6
00001c f7fffffe BL _InvalidateTextArea
000020 7960 LDRB r0,[r4,#5]
000022 f0400008 ORR r0,r0,#8
000026 b2c0 UXTB r0,r0
000028 f0400002 ORR r0,r0,#2
00002c b2c0 UXTB r0,r0
00002e f0400004 ORR r0,r0,#4
000032 7160 STRB r0,[r4,#5]
|L11.52|
;;;1644 _InvalidateCursorXY(pObj);
;;;1645 _InvalidateNumLines(pObj);
;;;1646 _InvalidateTextSizeX(pObj);
;;;1647 }
;;;1648 WM_UNLOCK();
;;;1649 }
;;;1650 }
000034 bd70 POP {r4-r6,pc}
;;;1651
ENDP
AREA ||i.MULTIEDIT_SetHBorder||, CODE, READONLY, ALIGN=1
MULTIEDIT_SetHBorder PROC
;;;1618 */
;;;1619 void MULTIEDIT_SetHBorder(MULTIEDIT_HANDLE hObj, unsigned HBorder) {
000000 b570 PUSH {r4-r6,lr}
000002 0005 MOVS r5,r0
000004 460c MOV r4,r1
;;;1620 if (hObj) {
000006 d00d BEQ |L12.36|
;;;1621 MULTIEDIT_OBJ* pObj;
;;;1622 WM_LOCK();
;;;1623 pObj = MULTIEDIT_H2P(hObj);
000008 4628 MOV r0,r5
00000a f7fffffe BL GUI_ALLOC_h2p
;;;1624 if ((unsigned)pObj->HBorder != HBorder) {
00000e f8901077 LDRB r1,[r0,#0x77]
000012 42a1 CMP r1,r4
000014 d006 BEQ |L12.36|
;;;1625 pObj->HBorder = HBorder;
000016 f8804077 STRB r4,[r0,#0x77]
;;;1626 _Invalidate(hObj);
00001a 4628 MOV r0,r5
00001c e8bd4070 POP {r4-r6,lr}
000020 f7ffbffe B.W _Invalidate
|L12.36|
;;;1627 }
;;;1628 WM_UNLOCK();
;;;1629 }
;;;1630 }
000024 bd70 POP {r4-r6,pc}
;;;1631
ENDP
AREA ||i.MULTIEDIT_SetInsertMode||, CODE, READONLY, ALIGN=1
MULTIEDIT_SetInsertMode PROC
;;;1569 */
;;;1570 void MULTIEDIT_SetInsertMode(MULTIEDIT_HANDLE hObj, int OnOff) {
000000 2204 MOVS r2,#4
;;;1571 _SetFlag(hObj, OnOff, MULTIEDIT_SF_INSERT);
000002 f7ffbffe B.W _SetFlag
;;;1572 }
;;;1573
ENDP
AREA ||i.MULTIEDIT_SetMaxNumChars||, CODE, READONLY, ALIGN=1
MULTIEDIT_SetMaxNumChars PROC
;;;1768 */
;;;1769 void MULTIEDIT_SetMaxNumChars(MULTIEDIT_HANDLE hObj, unsigned MaxNumChars) {
000000 e92d41f0 PUSH {r4-r8,lr}
000004 0006 MOVS r6,r0
000006 460f MOV r7,r1
;;;1770 if (hObj) {
000008 d028 BEQ |L14.92|
;;;1771 MULTIEDIT_OBJ* pObj;
;;;1772 WM_LOCK();
;;;1773 pObj = MULTIEDIT_H2P(hObj);
00000a 4630 MOV r0,r6
00000c f7fffffe BL GUI_ALLOC_h2p
;;;1774 pObj->MaxNumChars = MaxNumChars;
000010 b2b9 UXTH r1,r7
000012 4604 MOV r4,r0 ;1773
000014 8741 STRH r1,[r0,#0x3a]
;;;1775 if (MaxNumChars < (unsigned)pObj->NumCharsPrompt) {
000016 8fc0 LDRH r0,[r0,#0x3e]
000018 42b8 CMP r0,r7
00001a d900 BLS |L14.30|
;;;1776 pObj->NumCharsPrompt = MaxNumChars;
00001c 87e1 STRH r1,[r4,#0x3e]
|L14.30|
;;;1777 }
;;;1778 if (pObj->hText && MaxNumChars) {
00001e f9b40038 LDRSH r0,[r4,#0x38]
000022 2800 CMP r0,#0
000024 d01a BEQ |L14.92|
000026 2f00 CMP r7,#0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -