⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 multiedit.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 TXT
📖 第 1 页 / 共 5 页
字号:
000028  d018              BEQ      |L14.92|
;;;1779         char* pText;
;;;1780         int Offset;
;;;1781         pText = (char*) GUI_ALLOC_h2p(pObj->hText);
00002a  f7fffffe          BL       GUI_ALLOC_h2p
00002e  4605              MOV      r5,r0
;;;1782         Offset = GUI_UC__NumChars2NumBytes(pText, MaxNumChars);
000030  4639              MOV      r1,r7
000032  f7fffffe          BL       GUI_UC__NumChars2NumBytes
;;;1783         if (Offset < pObj->BufferSize) {
000036  f8b41044          LDRH     r1,[r4,#0x44]
00003a  4281              CMP      r1,r0
00003c  dd0e              BLE      |L14.92|
;;;1784           pText += Offset;
;;;1785           *pText = 0;
00003e  2200              MOVS     r2,#0
000040  542a              STRB     r2,[r5,r0]
;;;1786           _SetCursorPos(hObj, pObj, Offset);
000042  4602              MOV      r2,r0
000044  4621              MOV      r1,r4
000046  4630              MOV      r0,r6
000048  f7fffffe          BL       _SetCursorPos
;;;1787           _InvalidateTextArea(hObj);
00004c  4630              MOV      r0,r6
00004e  f7fffffe          BL       _InvalidateTextArea
000052  f8140f75          LDRB     r0,[r4,#0x75]!
000056  f0400001          ORR      r0,r0,#1
00005a  7020              STRB     r0,[r4,#0]
                  |L14.92|
;;;1788           _InvalidateNumChars(pObj);
;;;1789         }
;;;1790       }
;;;1791       WM_UNLOCK();
;;;1792     }
;;;1793   }
00005c  e8bd81f0          POP      {r4-r8,pc}
;;;1794   
                          ENDP


                          AREA ||i.MULTIEDIT_SetPasswordMode||, CODE, READONLY, ALIGN=1

                  MULTIEDIT_SetPasswordMode PROC
;;;1585   */
;;;1586   void MULTIEDIT_SetPasswordMode(MULTIEDIT_HANDLE hObj, int OnOff) {
000000  b570              PUSH     {r4-r6,lr}
000002  0005              MOVS     r5,r0
000004  460e              MOV      r6,r1
;;;1587     if (hObj) {
000006  d014              BEQ      |L15.50|
;;;1588       MULTIEDIT_OBJ* pObj;
;;;1589       WM_LOCK();
;;;1590       pObj = MULTIEDIT_H2P(hObj);
000008  4628              MOV      r0,r5
00000a  f7fffffe          BL       GUI_ALLOC_h2p
00000e  4604              MOV      r4,r0
;;;1591       _SetFlag(hObj, OnOff, MULTIEDIT_SF_PASSWORD);
000010  2220              MOVS     r2,#0x20
000012  4631              MOV      r1,r6
000014  4628              MOV      r0,r5
000016  f7fffffe          BL       _SetFlag
00001a  f8940075          LDRB     r0,[r4,#0x75]
00001e  f0400108          ORR      r1,r0,#8
000022  b2c8              UXTB     r0,r1
000024  f0400102          ORR      r1,r0,#2
000028  b2c8              UXTB     r0,r1
00002a  f0400104          ORR      r1,r0,#4
00002e  f8841075          STRB     r1,[r4,#0x75]
                  |L15.50|
;;;1592       _InvalidateCursorXY(pObj);
;;;1593       _InvalidateNumLines(pObj);
;;;1594       _InvalidateTextSizeX(pObj);
;;;1595       WM_UNLOCK();
;;;1596     }
;;;1597   }
000032  bd70              POP      {r4-r6,pc}
;;;1598   
                          ENDP


                          AREA ||i.MULTIEDIT_SetPrompt||, CODE, READONLY, ALIGN=1

                  MULTIEDIT_SetPrompt PROC
;;;1700   */
;;;1701   void MULTIEDIT_SetPrompt(MULTIEDIT_HANDLE hObj, const char* pPrompt) {
000000  e92d47f0          PUSH     {r4-r10,lr}
000004  ea5f0a00          MOVS     r10,r0
000008  4689              MOV      r9,r1
;;;1702     if (hObj) {
00000a  d054              BEQ      |L16.182|
;;;1703       MULTIEDIT_OBJ* pObj;
;;;1704       int NumCharsNew = 0, NumCharsOld = 0;
00000c  2500              MOVS     r5,#0
00000e  462e              MOV      r6,r5
;;;1705       int NumBytesNew = 0, NumBytesOld = 0;
000010  462f              MOV      r7,r5
000012  46a8              MOV      r8,r5
;;;1706       char* pText;
;;;1707       WM_LOCK();
;;;1708       pObj = MULTIEDIT_H2P(hObj);
000014  4650              MOV      r0,r10
000016  f7fffffe          BL       GUI_ALLOC_h2p
00001a  4604              MOV      r4,r0
;;;1709       if (pObj->hText) {
00001c  f9b00038          LDRSH    r0,[r0,#0x38]
000020  b130              CBZ      r0,|L16.48|
;;;1710         pText = (char*) GUI_ALLOC_h2p(pObj->hText);
000022  f7fffffe          BL       GUI_ALLOC_h2p
;;;1711         NumCharsOld = pObj->NumCharsPrompt;
000026  8fe6              LDRH     r6,[r4,#0x3e]
;;;1712         NumBytesOld = GUI_UC__NumChars2NumBytes(pText, NumCharsOld);
000028  4631              MOV      r1,r6
00002a  f7fffffe          BL       GUI_UC__NumChars2NumBytes
00002e  4680              MOV      r8,r0
                  |L16.48|
;;;1713       }
;;;1714       if (pPrompt) {
000030  f1b90f00          CMP      r9,#0
000034  d008              BEQ      |L16.72|
;;;1715         NumCharsNew = GUI__GetNumChars(pPrompt);
000036  4648              MOV      r0,r9
000038  f7fffffe          BL       GUI__GetNumChars
00003c  4605              MOV      r5,r0
;;;1716         NumBytesNew = GUI_UC__NumChars2NumBytes(pPrompt, NumCharsNew);
00003e  4601              MOV      r1,r0
000040  4648              MOV      r0,r9
000042  f7fffffe          BL       GUI_UC__NumChars2NumBytes
000046  4607              MOV      r7,r0
                  |L16.72|
;;;1717       }
;;;1718       if (_IsCharsAvailable(pObj, NumCharsNew - NumCharsOld)) {
000048  1ba9              SUBS     r1,r5,r6
00004a  4620              MOV      r0,r4
00004c  f7fffffe          BL       _IsCharsAvailable
000050  2800              CMP      r0,#0
000052  d030              BEQ      |L16.182|
;;;1719         if (_IsSpaceInBuffer(pObj, NumBytesNew - NumBytesOld)) {
000054  eba70108          SUB      r1,r7,r8
000058  4620              MOV      r0,r4
00005a  f7fffffe          BL       _IsSpaceInBuffer
00005e  2800              CMP      r0,#0
000060  d029              BEQ      |L16.182|
;;;1720           pText = (char*) GUI_ALLOC_h2p(pObj->hText);
000062  f9b40038          LDRSH    r0,[r4,#0x38]
000066  f7fffffe          BL       GUI_ALLOC_h2p
00006a  4606              MOV      r6,r0
;;;1721           memmove(pText + NumBytesNew, pText + NumBytesOld, strlen(pText + NumBytesOld) + 1);
00006c  4480              ADD      r8,r8,r0
00006e  4640              MOV      r0,r8
000070  f7fffffe          BL       strlen
000074  1c42              ADDS     r2,r0,#1
000076  19f0              ADDS     r0,r6,r7
000078  4641              MOV      r1,r8
00007a  f7fffffe          BL       __aeabi_memmove
;;;1722           if (pPrompt) {
00007e  f1b90f00          CMP      r9,#0
000082  d004              BEQ      |L16.142|
;;;1723             memcpy(pText, pPrompt, NumBytesNew);
000084  463a              MOV      r2,r7
000086  4649              MOV      r1,r9
000088  4630              MOV      r0,r6
00008a  f7fffffe          BL       __aeabi_memcpy
                  |L16.142|
;;;1724           }
;;;1725           pObj->NumCharsPrompt = NumCharsNew;
00008e  87e5              STRH     r5,[r4,#0x3e]
;;;1726           _SetCursorPos(hObj, pObj, NumCharsNew);
000090  462a              MOV      r2,r5
000092  4621              MOV      r1,r4
000094  4650              MOV      r0,r10
000096  f7fffffe          BL       _SetCursorPos
;;;1727           _InvalidateTextArea(hObj);
00009a  4650              MOV      r0,r10
00009c  f7fffffe          BL       _InvalidateTextArea
0000a0  f8140f75          LDRB     r0,[r4,#0x75]!
0000a4  f0400001          ORR      r0,r0,#1
0000a8  b2c0              UXTB     r0,r0
0000aa  f0400002          ORR      r0,r0,#2
0000ae  b2c0              UXTB     r0,r0
0000b0  f0400004          ORR      r0,r0,#4
0000b4  7020              STRB     r0,[r4,#0]
                  |L16.182|
;;;1728           _InvalidateNumChars(pObj);
;;;1729           _InvalidateNumLines(pObj);
;;;1730           _InvalidateTextSizeX(pObj);
;;;1731         }
;;;1732       }
;;;1733       WM_UNLOCK();
;;;1734     }
;;;1735   }
0000b6  e8bd87f0          POP      {r4-r10,pc}
;;;1736   
                          ENDP


                          AREA ||i.MULTIEDIT_SetReadOnly||, CODE, READONLY, ALIGN=1

                  MULTIEDIT_SetReadOnly PROC
;;;1577   */
;;;1578   void MULTIEDIT_SetReadOnly(MULTIEDIT_HANDLE hObj, int OnOff) {
000000  2201              MOVS     r2,#1
;;;1579     _SetFlag(hObj, OnOff, MULTIEDIT_SF_READONLY);
000002  f7ffbffe          B.W      _SetFlag
;;;1580   }
;;;1581   
                          ENDP


                          AREA ||i.MULTIEDIT_SetText||, CODE, READONLY, ALIGN=1

                  MULTIEDIT_SetText PROC
;;;1456   */
;;;1457   void MULTIEDIT_SetText(MULTIEDIT_HANDLE hObj, const char* pNew) {
000000  e92d47f0          PUSH     {r4-r10,lr}
000004  ea5f0a00          MOVS     r10,r0
000008  4688              MOV      r8,r1
;;;1458     if (hObj) {
00000a  d058              BEQ      |L18.190|
;;;1459       MULTIEDIT_OBJ* pObj;
;;;1460       int NumCharsNew = 0, NumCharsOld = 0;
00000c  2500              MOVS     r5,#0
00000e  462e              MOV      r6,r5
;;;1461       int NumBytesNew = 0, NumBytesOld = 0;
000010  46a9              MOV      r9,r5
000012  462f              MOV      r7,r5
;;;1462       char* pText;
;;;1463       WM_LOCK();
;;;1464       pObj = MULTIEDIT_H2P(hObj);
000014  4650              MOV      r0,r10
000016  f7fffffe          BL       GUI_ALLOC_h2p
00001a  4604              MOV      r4,r0
;;;1465       if (pObj->hText) {
00001c  f9b00038          LDRSH    r0,[r0,#0x38]
000020  b178              CBZ      r0,|L18.66|
;;;1466         pText  = (char*) GUI_ALLOC_h2p(pObj->hText);
000022  f7fffffe          BL       GUI_ALLOC_h2p
000026  4606              MOV      r6,r0
;;;1467         pText += GUI_UC__NumChars2NumBytes(pText, pObj->NumCharsPrompt);
000028  8fe1              LDRH     r1,[r4,#0x3e]
00002a  f7fffffe          BL       GUI_UC__NumChars2NumBytes
00002e  1987              ADDS     r7,r0,r6
;;;1468         NumCharsOld = GUI__GetNumChars(pText);
000030  4638              MOV      r0,r7
000032  f7fffffe          BL       GUI__GetNumChars
000036  4606              MOV      r6,r0
;;;1469         NumBytesOld = GUI_UC__NumChars2NumBytes(pText, NumCharsOld);
000038  4601              MOV      r1,r0
00003a  4638              MOV      r0,r7
00003c  f7fffffe          BL       GUI_UC__NumChars2NumBytes
000040  4607              MOV      r7,r0
                  |L18.66|
;;;1470       }
;;;1471       if (pNew) {
000042  f1b80f00          CMP      r8,#0
000046  d008              BEQ      |L18.90|
;;;1472         NumCharsNew = GUI__GetNumChars(pNew);
000048  4640              MOV      r0,r8
00004a  f7fffffe          BL       GUI__GetNumChars
00004e  4605              MOV      r5,r0
;;;1473         NumBytesNew = GUI_UC__NumChars2NumBytes(pNew, NumCharsNew);
000050  4601              MOV      r1,r0
000052  4640              MOV      r0,r8
000054  f7fffffe          BL       GUI_UC__NumChars2NumBytes
000058  4681              MOV      r9,r0
                  |L18.90|
;;;1474       }
;;;1475       if (_IsCharsAvailable(pObj, NumCharsNew - NumCharsOld)) {
00005a  1ba9              SUBS     r1,r5,r6
00005c  4620              MOV      r0,r4
00005e  f7fffffe          BL       _IsCharsAvailable
000062  2800              CMP      r0,#0
000064  d02b              BEQ      |L18.190|
;;;1476         if (_IsSpaceInBuffer(pObj, NumBytesNew - NumBytesOld)) {
000066  eba90107          SUB      r1,r9,r7
00006a  4620              MOV      r0,r4
00006c  f7fffffe          BL       _IsSpaceInBuffer
000070  2800              CMP      r0,#0
000072  d024              BEQ      |L18.190|
;;;1477           pText  = (char*) GUI_ALLOC_h2p(pObj->hText);
000074  f9b40038          LDRSH    r0,[r4,#0x38]
000078  f7fffffe          BL       GUI_ALLOC_h2p
00007c  4605              MOV      r5,r0
;;;1478           pText += GUI_UC__NumChars2NumBytes(pText, pObj->NumCharsPrompt);
00007e  8fe1              LDRH     r1,[r4,#0x3e]
000080  f7fffffe          BL       GUI_UC__NumChars2NumBytes
000084  4428              ADD      r0,r0,r5
;;;1479           if (pNew) {
000086  f1b80f00          CMP      r8,#0
00008a  d003              BEQ      |L18.148|
;;;1480             strcpy(pText, pNew);
00008c  4641              MOV      r1,r8
00008e  f7fffffe          BL       strcpy
000092  e001              B        |L18.152|
                  |L18.148|
;;;1481           } else {
;;;1482             *pText = 0;
000094  2100              MOVS     r1,#0
000096  7001              STRB     r1,[r0,#0]
                  |L18.152|
;;;1483           }
;;;1484           _SetCursorPos(hObj, pObj, pObj->NumCharsPrompt);
000098  8fe2              LDRH     r2,[r4,#0x3e]
00009a  4621              MOV      r1,r4
00009c  4650              MOV      r0,r10
00009e  f7fffffe          BL       _SetCursorPos
;;;1485           _InvalidateTextArea(hObj);
0000a2  4650              MOV      r0,r10
0000a4  f7fffffe          BL       _InvalidateTextArea
0000a8  f8140f75          LDRB     r0,[r4,#0x75]!
0000ac  f0400001          ORR      r0,r0,#1

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -