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

📄 multiedit.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 TXT
📖 第 1 页 / 共 5 页
字号:
; generated by ARM C/C++ Compiler with , RVCT4.0 [Build 524] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\multiedit.o --depend=.\Obj\multiedit.d --device=DARMSTM --apcs=interwork -O3 -I..\..\include -I..\..\..\FWLib\library\inc -I..\..\..\USBLib\library\inc -I..\..\Config -I..\..\GUI\Core -I..\..\GUI\Font -I..\..\GUI\ConvertColor -I..\..\GUI\AntiAlias -I..\..\GUI\ConvertMono -I..\..\GUI\JPEG -I..\..\GUI\MemDev -I..\..\GUI\MultiLayer -I..\..\GUI\Widget -I..\..\GUI\WM -IC:\Keil\ARM\INC\ST\STM32F10x ..\..\GUI\Widget\MULTIEDIT.c]
                          THUMB

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

                  MULTIEDIT_AddKey PROC
;;;1442   */
;;;1443   int MULTIEDIT_AddKey(MULTIEDIT_HANDLE hObj, U16 Key) {
000000  0002              MOVS     r2,r0
;;;1444     int r = 0;
000002  f04f0000          MOV      r0,#0
;;;1445     if (hObj) {
000006  d002              BEQ      |L1.14|
;;;1446       WM_LOCK();
;;;1447       r = _AddKey(hObj, Key);
000008  4610              MOV      r0,r2
00000a  f7ffbffe          B.W      _AddKey
                  |L1.14|
;;;1448       WM_UNLOCK();
;;;1449     }
;;;1450     return r;
;;;1451   }
00000e  4770              BX       lr
;;;1452   
                          ENDP


                          AREA ||i.MULTIEDIT_CreateEx||, CODE, READONLY, ALIGN=2

                  MULTIEDIT_CreateEx PROC
;;;1378   */
;;;1379   MULTIEDIT_HANDLE MULTIEDIT_CreateEx(int x0, int y0, int xsize, int ysize, WM_HWIN hParent, int WinFlags, int ExFlags,
000000  e92d5fff          PUSH     {r0-r12,lr}
;;;1380                                       int Id, int BufferSize, const char* pText)
;;;1381   {
000004  4681              MOV      r9,r0
;;;1382     MULTIEDIT_HANDLE hObj;
;;;1383     /* Create the window */
;;;1384     WM_LOCK();
;;;1385     if ((xsize == 0) && (ysize == 0) && (x0 == 0) && (y0 == 0)) {
000006  ea420003          ORR      r0,r2,r3
00000a  e9ddb70e          LDRD     r11,r7,[sp,#0x38]
00000e  ea400009          ORR      r0,r0,r9
000012  f8dd8040          LDR      r8,[sp,#0x40]
000016  9e12              LDR      r6,[sp,#0x48]
000018  468a              MOV      r10,r1                ;1381
00001a  4614              MOV      r4,r2                 ;1381
00001c  461d              MOV      r5,r3                 ;1381
00001e  4308              ORRS     r0,r0,r1
000020  d10f              BNE      |L2.66|
;;;1386       GUI_RECT Rect;
;;;1387       WM_GetClientRectEx(hParent, &Rect);
000022  a902              ADD      r1,sp,#8
000024  4658              MOV      r0,r11
000026  f7fffffe          BL       WM_GetClientRectEx
;;;1388       xsize = Rect.x1 - Rect.x0 + 1;
00002a  f9bd000c          LDRSH    r0,[sp,#0xc]
00002e  f9bd1008          LDRSH    r1,[sp,#8]
000032  1a44              SUBS     r4,r0,r1
;;;1389       ysize = Rect.y1 - Rect.y0 + 1;
000034  f9bd000e          LDRSH    r0,[sp,#0xe]
000038  f9bd100a          LDRSH    r1,[sp,#0xa]
00003c  1c64              ADDS     r4,r4,#1              ;1388
00003e  1a45              SUBS     r5,r0,r1
000040  1c6d              ADDS     r5,r5,#1
                  |L2.66|
;;;1390     }
;;;1391     hObj = WM_CreateWindowAsChild(x0, y0, xsize, ysize, hParent, WinFlags, &_MULTIEDIT_Callback,
000042  b2b9              UXTH     r1,r7
000044  235c              MOVS     r3,#0x5c
000046  4a27              LDR      r2,|L2.228|
000048  e9cdb100          STRD     r11,r1,[sp,#0]
00004c  e9cd2302          STRD     r2,r3,[sp,#8]
000050  462b              MOV      r3,r5
000052  4622              MOV      r2,r4
000054  4651              MOV      r1,r10
000056  4648              MOV      r0,r9
000058  f7fffffe          BL       WM_CreateWindowAsChild
00005c  0005              MOVS     r5,r0
;;;1392                                   sizeof(MULTIEDIT_OBJ) - sizeof(WM_Obj));
;;;1393     if (hObj) {
00005e  d03d              BEQ      |L2.220|
;;;1394       int i;
;;;1395       MULTIEDIT_OBJ* pObj = MULTIEDIT_H2P(hObj);
000060  4628              MOV      r0,r5
000062  f7fffffe          BL       GUI_ALLOC_h2p
000066  4604              MOV      r4,r0
;;;1396       /* init widget specific variables */
;;;1397       WIDGET__Init(&pObj->Widget, Id, WIDGET_STATE_FOCUSSABLE);
000068  2210              MOVS     r2,#0x10
00006a  9911              LDR      r1,[sp,#0x44]
00006c  f7fffffe          BL       WIDGET__Init
;;;1398       /* init member variables */
;;;1399       MULTIEDIT_INIT_ID(pObj);
;;;1400       for (i = 0; i < NUM_DISP_MODES; i++) {
;;;1401         pObj->aBkColor[i]  = _aDefaultBkColor[i];
000070  4b1d              LDR      r3,|L2.232|
000072  2000              MOVS     r0,#0                 ;1400
;;;1402         pObj->aColor[i]    = _aDefaultColor[i];
000074  f1030708          ADD      r7,r3,#8
                  |L2.120|
000078  f8532020          LDR      r2,[r3,r0,LSL #2]     ;1401
00007c  eb040180          ADD      r1,r4,r0,LSL #2       ;1401
000080  628a              STR      r2,[r1,#0x28]
000082  f8572020          LDR      r2,[r7,r0,LSL #2]
000086  1c40              ADDS     r0,r0,#1              ;1400
000088  630a              STR      r2,[r1,#0x30]         ;1400
00008a  2802              CMP      r0,#2                 ;1400
00008c  dbf4              BLT      |L2.120|
;;;1403       }
;;;1404       pObj->pFont          = _pDefaultFont;
00008e  4816              LDR      r0,|L2.232|
;;;1405       pObj->Flags          = ExFlags;
;;;1406       pObj->CursorPosChar  = 0;
000090  3438              ADDS     r4,r4,#0x38
000092  1f00              SUBS     r0,r0,#4              ;1404
000094  6802              LDR      r2,[r0,#0]  ; _pDefaultFont
000096  2000              MOVS     r0,#0
000098  63a2              STR      r2,[r4,#0x38]         ;1405
00009a  f884803c          STRB     r8,[r4,#0x3c]         ;1405
00009e  8220              STRH     r0,[r4,#0x10]
;;;1407       pObj->CursorPosByte  = 0;
;;;1408       pObj->HBorder        = 1;
0000a0  2101              MOVS     r1,#1
0000a2  8260              STRH     r0,[r4,#0x12]         ;1407
0000a4  f884103f          STRB     r1,[r4,#0x3f]
;;;1409       pObj->MaxNumChars    = 0;
0000a8  8060              STRH     r0,[r4,#2]
;;;1410       pObj->NumCharsPrompt = 0;
0000aa  80e0              STRH     r0,[r4,#6]
;;;1411       pObj->BufferSize     = 0;
0000ac  81a0              STRH     r0,[r4,#0xc]
;;;1412       pObj->hText          = 0;
0000ae  f8240938          STRH     r0,[r4],#-0x38
;;;1413       if (BufferSize > 0) {
0000b2  2e00              CMP      r6,#0
0000b4  dd0b              BLE      |L2.206|
;;;1414         WM_HWIN hText;
;;;1415         if ((hText = GUI_ALLOC_AllocZero(BufferSize)) != 0) {
0000b6  b230              SXTH     r0,r6
0000b8  f7fffffe          BL       GUI_ALLOC_AllocZero
0000bc  b118              CBZ      r0,|L2.198|
;;;1416           pObj->BufferSize = BufferSize;
0000be  f8a46044          STRH     r6,[r4,#0x44]
;;;1417           pObj->hText      = hText;
0000c2  8720              STRH     r0,[r4,#0x38]
0000c4  e003              B        |L2.206|
                  |L2.198|
;;;1418         } else {
;;;1419           GUI_DEBUG_ERROROUT("MULTIEDIT_CreateEx failed to alloc buffer");
;;;1420           WM_DeleteWindow(hObj);
0000c6  4628              MOV      r0,r5
0000c8  f7fffffe          BL       WM_DeleteWindow
;;;1421           hObj = 0;
0000cc  2500              MOVS     r5,#0
                  |L2.206|
;;;1422         }
;;;1423       }
;;;1424       MULTIEDIT_SetText(hObj, pText);
0000ce  4628              MOV      r0,r5
0000d0  9913              LDR      r1,[sp,#0x4c]
0000d2  f7fffffe          BL       MULTIEDIT_SetText
;;;1425       _ManageScrollers(hObj);
0000d6  4628              MOV      r0,r5
0000d8  f7fffffe          BL       _ManageScrollers
                  |L2.220|
;;;1426     } else {
;;;1427       GUI_DEBUG_ERROROUT_IF(hObj==0, "MULTIEDIT_CreateEx failed")
;;;1428     }
;;;1429     WM_UNLOCK();
;;;1430     return hObj;
0000dc  4628              MOV      r0,r5
;;;1431   }
0000de  b004              ADD      sp,sp,#0x10
0000e0  e8bd9ff0          POP      {r4-r12,pc}
;;;1432   
                          ENDP

                  |L2.228|
                          DCD      _MULTIEDIT_Callback
                  |L2.232|
                          DCD      ||.data||+0x4

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

                  MULTIEDIT_GetPrompt PROC
;;;1523   */
;;;1524   void MULTIEDIT_GetPrompt(MULTIEDIT_HANDLE hObj, char * sDest, int MaxLen) {
000000  e92d41f0          PUSH     {r4-r8,lr}
000004  460e              MOV      r6,r1
000006  4615              MOV      r5,r2
;;;1525     if (hObj) {
000008  2800              CMP      r0,#0
00000a  d017              BEQ      |L3.60|
;;;1526       MULTIEDIT_OBJ * pObj;
;;;1527       WM_LOCK();
;;;1528       pObj = MULTIEDIT_H2P(hObj);
00000c  f7fffffe          BL       GUI_ALLOC_h2p
000010  0004              MOVS     r4,r0
;;;1529       if (pObj) {
000012  d013              BEQ      |L3.60|
;;;1530         char* sSource = (char*)GUI_ALLOC_h2p(pObj->hText);
000014  f9b40038          LDRSH    r0,[r4,#0x38]
000018  f7fffffe          BL       GUI_ALLOC_h2p
00001c  4607              MOV      r7,r0
;;;1531         int Len = GUI_UC__NumChars2NumBytes(sSource, pObj->NumCharsPrompt);
00001e  8fe1              LDRH     r1,[r4,#0x3e]
000020  f7fffffe          BL       GUI_UC__NumChars2NumBytes
;;;1532         if (Len > (MaxLen - 1)) {
000024  1e69              SUBS     r1,r5,#1
000026  4604              MOV      r4,r0                 ;1531
000028  4288              CMP      r0,r1
00002a  dd00              BLE      |L3.46|
;;;1533           Len = MaxLen - 1;
00002c  1e6c              SUBS     r4,r5,#1
                  |L3.46|
;;;1534         }
;;;1535         memcpy(sDest, sSource, Len);
00002e  4622              MOV      r2,r4
000030  4639              MOV      r1,r7
000032  4630              MOV      r0,r6
000034  f7fffffe          BL       __aeabi_memcpy
;;;1536         *(sDest + Len) = 0;
000038  2000              MOVS     r0,#0
00003a  5530              STRB     r0,[r6,r4]
                  |L3.60|
;;;1537       }
;;;1538       WM_UNLOCK();
;;;1539     }
;;;1540   }
00003c  e8bd81f0          POP      {r4-r8,pc}
;;;1541   
                          ENDP


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

                  MULTIEDIT_GetText PROC
;;;1498   */
;;;1499   void MULTIEDIT_GetText(MULTIEDIT_HANDLE hObj, char* sDest, int MaxLen) {
000000  e92d41f0          PUSH     {r4-r8,lr}
000004  460f              MOV      r7,r1
000006  4616              MOV      r6,r2
;;;1500     if (hObj) {
000008  2800              CMP      r0,#0
00000a  d01b              BEQ      |L4.68|
;;;1501       MULTIEDIT_OBJ* pObj;
;;;1502       WM_LOCK();
;;;1503       pObj = MULTIEDIT_H2P(hObj);
00000c  f7fffffe          BL       GUI_ALLOC_h2p
000010  0004              MOVS     r4,r0
;;;1504       if (pObj) {
000012  d017              BEQ      |L4.68|
;;;1505         char* pText;
;;;1506         int Len;
;;;1507         pText  = (char*) GUI_ALLOC_h2p(pObj->hText);
000014  f9b40038          LDRSH    r0,[r4,#0x38]
000018  f7fffffe          BL       GUI_ALLOC_h2p
00001c  4605              MOV      r5,r0
;;;1508         pText += GUI_UC__NumChars2NumBytes(pText, pObj->NumCharsPrompt);
00001e  8fe1              LDRH     r1,[r4,#0x3e]
000020  f7fffffe          BL       GUI_UC__NumChars2NumBytes
000024  1944              ADDS     r4,r0,r5
;;;1509         Len    = strlen(pText);
000026  4620              MOV      r0,r4
000028  f7fffffe          BL       strlen
;;;1510         if (Len > (MaxLen - 1)) {
00002c  1e71              SUBS     r1,r6,#1
00002e  4605              MOV      r5,r0                 ;1509
000030  4288              CMP      r0,r1
000032  dd00              BLE      |L4.54|
;;;1511           Len = MaxLen - 1;
000034  1e75              SUBS     r5,r6,#1
                  |L4.54|
;;;1512         }
;;;1513         memcpy(sDest, pText, Len);
000036  462a              MOV      r2,r5
000038  4621              MOV      r1,r4
00003a  4638              MOV      r0,r7
00003c  f7fffffe          BL       __aeabi_memcpy
;;;1514         *(sDest + Len) = 0;
000040  2000              MOVS     r0,#0
000042  5578              STRB     r0,[r7,r5]
                  |L4.68|
;;;1515       }
;;;1516       WM_UNLOCK();
;;;1517     }
;;;1518   }
000044  e8bd81f0          POP      {r4-r8,pc}
;;;1519   
                          ENDP


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

                  MULTIEDIT_GetTextSize PROC
;;;1803   */
;;;1804   int MULTIEDIT_GetTextSize(MULTIEDIT_HANDLE hObj) {
000000  b570              PUSH     {r4-r6,lr}
;;;1805     int r = 0;
000002  2500              MOVS     r5,#0
;;;1806     if (hObj) {
000004  b178              CBZ      r0,|L5.38|
;;;1807       MULTIEDIT_OBJ* pObj;
;;;1808       WM_LOCK();
;;;1809       pObj = MULTIEDIT_H2P(hObj);
000006  f7fffffe          BL       GUI_ALLOC_h2p
00000a  4604              MOV      r4,r0
;;;1810       if (pObj->hText) {

⌨️ 快捷键说明

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