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

📄 edit.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 TXT
📖 第 1 页 / 共 5 页
字号:
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 + -