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

📄 edit.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 TXT
📖 第 1 页 / 共 5 页
字号:
000016  42a8              CMP      r0,r5
000018  d01c              BEQ      |L8.84|
;;;796          if (MaxLen < pObj->MaxLen) {
00001a  dd0f              BLE      |L8.60|
;;;797            if (pObj->hpText) {
00001c  f9b40028          LDRSH    r0,[r4,#0x28]
000020  b160              CBZ      r0,|L8.60|
;;;798              char* pText;
;;;799              int   NumChars;
;;;800              pText    = (char*) GUI_ALLOC_h2p(pObj->hpText);
000022  f7fffffe          BL       GUI_ALLOC_h2p
000026  4607              MOV      r7,r0
;;;801              NumChars = GUI__GetNumChars(pText);
000028  f7fffffe          BL       GUI__GetNumChars
;;;802              if (NumChars > MaxLen) {
00002c  42a8              CMP      r0,r5
00002e  dd05              BLE      |L8.60|
;;;803                int NumBytes;
;;;804                NumBytes = GUI_UC__NumChars2NumBytes(pText, MaxLen);
000030  4629              MOV      r1,r5
000032  4638              MOV      r0,r7
000034  f7fffffe          BL       GUI_UC__NumChars2NumBytes
;;;805                *(pText + NumBytes) = 0;
000038  2100              MOVS     r1,#0
00003a  5439              STRB     r1,[r7,r0]
                  |L8.60|
;;;806              }
;;;807            }
;;;808          }
;;;809          _IncrementBuffer(pObj, MaxLen - pObj->BufferSize + 1);
00003c  8da0              LDRH     r0,[r4,#0x2c]
00003e  1a29              SUBS     r1,r5,r0
000040  1c49              ADDS     r1,r1,#1
000042  4620              MOV      r0,r4
000044  f7fffffe          BL       _IncrementBuffer
;;;810          pObj->MaxLen = MaxLen;
000048  8565              STRH     r5,[r4,#0x2a]
;;;811          EDIT_Invalidate(hObj);
00004a  4630              MOV      r0,r6
00004c  e8bd41f0          POP      {r4-r8,lr}
000050  f7ffbffe          B.W      WM_InvalidateWindow
                  |L8.84|
;;;812        }
;;;813        WM_UNLOCK();
;;;814      }
;;;815    }
000054  e8bd81f0          POP      {r4-r8,pc}
;;;816    
                          ENDP


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

                  EDIT_SetText PROC
;;;674    */
;;;675    void EDIT_SetText(EDIT_Handle hObj, const char* s) {
000000  e92d41f0          PUSH     {r4-r8,lr}
000004  ea5f0800          MOVS     r8,r0
000008  460e              MOV      r6,r1
;;;676      if (hObj) {
00000a  d041              BEQ      |L9.144|
;;;677        EDIT_Obj* pObj;
;;;678        WM_LOCK();
;;;679        pObj = EDIT_H2P(hObj);
00000c  4640              MOV      r0,r8
00000e  f7fffffe          BL       GUI_ALLOC_h2p
000012  4604              MOV      r4,r0
;;;680        if (s) {
000014  b37e              CBZ      r6,|L9.118|
;;;681          int NumBytesNew, NumBytesOld = 0;
;;;682          int NumCharsNew;
;;;683          if (pObj->hpText) {
000016  f9b40028          LDRSH    r0,[r4,#0x28]
00001a  2500              MOVS     r5,#0                 ;681
00001c  b120              CBZ      r0,|L9.40|
;;;684            char* pText;
;;;685            pText       = (char*) GUI_ALLOC_h2p(pObj->hpText);
00001e  f7fffffe          BL       GUI_ALLOC_h2p
;;;686            NumBytesOld = strlen(pText) + 1;
000022  f7fffffe          BL       strlen
000026  1c45              ADDS     r5,r0,#1
                  |L9.40|
;;;687          }
;;;688          NumCharsNew = GUI__GetNumChars(s);
000028  4630              MOV      r0,r6
00002a  f7fffffe          BL       GUI__GetNumChars
;;;689          if (NumCharsNew > pObj->MaxLen) {
00002e  f9b4102a          LDRSH    r1,[r4,#0x2a]
000032  4281              CMP      r1,r0
000034  da00              BGE      |L9.56|
000036  4608              MOV      r0,r1
                  |L9.56|
;;;690            NumCharsNew = pObj->MaxLen;
;;;691          }
;;;692          NumBytesNew = GUI_UC__NumChars2NumBytes(s, NumCharsNew) + 1;
000038  4601              MOV      r1,r0
00003a  4630              MOV      r0,r6
00003c  f7fffffe          BL       GUI_UC__NumChars2NumBytes
000040  1c47              ADDS     r7,r0,#1
;;;693          if (_IsSpaceInBuffer(pObj, NumBytesNew - NumBytesOld)) {
000042  1b79              SUBS     r1,r7,r5
000044  4620              MOV      r0,r4
000046  f7fffffe          BL       _IsSpaceInBuffer
00004a  b1e0              CBZ      r0,|L9.134|
;;;694            char* pText;
;;;695            pText = (char*) GUI_ALLOC_h2p(pObj->hpText);
00004c  f9b40028          LDRSH    r0,[r4,#0x28]
000050  f7fffffe          BL       GUI_ALLOC_h2p
;;;696            memcpy(pText, s, NumBytesNew);
000054  463a              MOV      r2,r7
000056  4631              MOV      r1,r6
000058  f7fffffe          BL       __aeabi_memcpy
;;;697            pObj->CursorPos = NumBytesNew - 1;
00005c  1e7f              SUBS     r7,r7,#1
;;;698            if (pObj->CursorPos == pObj->MaxLen) {
00005e  6427              STR      r7,[r4,#0x40]
000060  f9b4002a          LDRSH    r0,[r4,#0x2a]
000064  4287              CMP      r7,r0
000066  d10e              BNE      |L9.134|
;;;699              if (pObj->EditMode == GUI_EDIT_MODE_OVERWRITE) {
000068  f8940048          LDRB     r0,[r4,#0x48]
00006c  2801              CMP      r0,#1
00006e  d10a              BNE      |L9.134|
;;;700                pObj->CursorPos--;
000070  1e7f              SUBS     r7,r7,#1
000072  6427              STR      r7,[r4,#0x40]
000074  e007              B        |L9.134|
                  |L9.118|
000076  e7ff              B        |L9.120|
                  |L9.120|
;;;701              }
;;;702            }
;;;703          }
;;;704        } else {
;;;705          GUI_ALLOC_FreePtr(&pObj->hpText);
000078  f1040028          ADD      r0,r4,#0x28
00007c  f7fffffe          BL       GUI_ALLOC_FreePtr
;;;706          pObj->BufferSize = 0;
000080  2000              MOVS     r0,#0
000082  85a0              STRH     r0,[r4,#0x2c]
;;;707          pObj->CursorPos  = 0;
000084  6420              STR      r0,[r4,#0x40]
                  |L9.134|
;;;708        }
;;;709        EDIT_Invalidate(hObj);
000086  4640              MOV      r0,r8
000088  e8bd41f0          POP      {r4-r8,lr}
00008c  f7ffbffe          B.W      WM_InvalidateWindow
                  |L9.144|
;;;710        WM_UNLOCK();
;;;711      }
;;;712    }
000090  e8bd81f0          POP      {r4-r8,pc}
;;;713    
                          ENDP


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

                  EDIT_SetTextAlign PROC
;;;820    */
;;;821    void EDIT_SetTextAlign(EDIT_Handle hObj, int Align) {
000000  b570              PUSH     {r4-r6,lr}
000002  0004              MOVS     r4,r0
000004  460d              MOV      r5,r1
;;;822      EDIT_Obj* pObj;
;;;823      if (hObj == 0)
000006  d00a              BEQ      |L10.30|
;;;824        return;
;;;825      WM_LOCK();
;;;826      pObj = EDIT_H2P(hObj);
000008  4620              MOV      r0,r4
00000a  f7fffffe          BL       GUI_ALLOC_h2p
;;;827      if (pObj) {
00000e  2800              CMP      r0,#0
000010  d005              BEQ      |L10.30|
;;;828        pObj->Props.Align = Align;
;;;829        EDIT_Invalidate(hObj);
000012  6545              STR      r5,[r0,#0x54]
000014  4620              MOV      r0,r4
000016  e8bd4070          POP      {r4-r6,lr}
00001a  f7ffbffe          B.W      WM_InvalidateWindow
                  |L10.30|
;;;830      }
;;;831      WM_UNLOCK();
;;;832    }
00001e  bd70              POP      {r4-r6,pc}
;;;833    
                          ENDP


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

                  EDIT_SetTextColor PROC
;;;655    */
;;;656    void EDIT_SetTextColor(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
;;;657      EDIT_Obj* pObj;
;;;658      if (hObj == 0)
000008  d00e              BEQ      |L11.40|
;;;659        return;
;;;660      WM_LOCK();
;;;661      pObj = EDIT_H2P(hObj);
00000a  4628              MOV      r0,r5
00000c  f7fffffe          BL       GUI_ALLOC_h2p
;;;662      if (pObj) {
000010  2800              CMP      r0,#0
000012  d009              BEQ      |L11.40|
;;;663        if (Index < GUI_COUNTOF(pObj->Props.aTextColor)) {
000014  2c02              CMP      r4,#2
000016  d207              BCS      |L11.40|
;;;664          pObj->Props.aTextColor[Index] = color;
000018  eb000084          ADD      r0,r0,r4,LSL #2
;;;665          EDIT_Invalidate(hObj);
00001c  6606              STR      r6,[r0,#0x60]
00001e  4628              MOV      r0,r5
000020  e8bd4070          POP      {r4-r6,lr}
000024  f7ffbffe          B.W      WM_InvalidateWindow
                  |L11.40|
;;;666        }
;;;667      }
;;;668      WM_UNLOCK();
;;;669    }
000028  bd70              POP      {r4-r6,pc}
;;;670    
                          ENDP


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

                  EDIT_SetValue PROC
;;;761    */
;;;762    void EDIT_SetValue(EDIT_Handle hObj, I32 Value) {
000000  b570              PUSH     {r4-r6,lr}
000002  0005              MOVS     r5,r0
000004  460c              MOV      r4,r1
;;;763      EDIT_Obj* pObj;
;;;764      if (hObj) {
000006  d01b              BEQ      |L12.64|
;;;765        WM_LOCK();
;;;766        pObj = EDIT_H2P(hObj);
000008  4628              MOV      r0,r5
00000a  f7fffffe          BL       GUI_ALLOC_h2p
;;;767        /* Put in min/max range */
;;;768        if (Value < pObj->Min) {
00000e  6b01              LDR      r1,[r0,#0x30]
000010  42a1              CMP      r1,r4
000012  dd00              BLE      |L12.22|
;;;769          Value = pObj->Min;
000014  460c              MOV      r4,r1
                  |L12.22|
;;;770        }
;;;771        if (Value > pObj->Max) {
000016  6b41              LDR      r1,[r0,#0x34]
000018  42a1              CMP      r1,r4
00001a  da00              BGE      |L12.30|
;;;772          Value = pObj->Max;
00001c  460c              MOV      r4,r1
                  |L12.30|
;;;773        }
;;;774        if (pObj->CurrentValue != (U32)Value) {
00001e  6bc1              LDR      r1,[r0,#0x3c]
000020  42a1              CMP      r1,r4
000022  d00d              BEQ      |L12.64|
;;;775          pObj->CurrentValue = Value;
;;;776          if (pObj->pfUpdateBuffer) {
000024  63c4              STR      r4,[r0,#0x3c]
000026  6d01              LDR      r1,[r0,#0x50]
000028  b109              CBZ      r1,|L12.46|
;;;777            pObj->pfUpdateBuffer(hObj);
00002a  4628              MOV      r0,r5
00002c  4788              BLX      r1
                  |L12.46|
;;;778          }
;;;779          WM_InvalidateWindow(hObj);
00002e  4628              MOV      r0,r5
000030  f7fffffe          BL       WM_InvalidateWindow
;;;780          WM_NotifyParent(hObj, WM_NOTIFICATION_VALUE_CHANGED);
000034  4628              MOV      r0,r5
000036  e8bd4070          POP      {r4-r6,lr}
00003a  2105              MOVS     r1,#5
00003c  f7ffbffe          B.W      WM_NotifyParent
                  |L12.64|
;;;781        }
;;;782        WM_UNLOCK();
;;;783      }
;;;784    }
000040  bd70              POP      {r4-r6,pc}
;;;785    
                          ENDP


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

                  EDIT__Callback PROC
;;;447    */
;;;448    static void EDIT__Callback (WM_MESSAGE * pMsg) {
000000  e92d41f0          PUSH     {r4-r8,lr}
;;;449      int IsEnabled;
;;;450      EDIT_Handle hObj = (EDIT_Handle) pMsg->hWin;
000004  f9b07004          LDRSH    r7,[r0,#4]
000008  4604              MOV      r4,r0                 ;448
;;;451      EDIT_Obj*   pObj = (EDIT_Obj*) GUI_ALLOC_h2p(hObj);
00000a  4638              MOV      r0,r7
00000c  f7fffffe          BL       GUI_ALLOC_h2p
000010  4605              MOV      r5,r0
;;;452      IsEnabled = WM__IsEnabled(hObj);
000012  4638              MOV      r0,r7
000014  f7fffffe          BL       WM__IsEnabled
000018  4606              MOV      r6,r0
;;;453      /* Let widget handle the standard messages */
;;;454      if (WIDGET_HandleActive(hObj, pMsg) == 0) {

⌨️ 快捷键说明

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