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

📄 widget_multiedit.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 TXT
📖 第 1 页 / 共 4 页
字号:
;;;222    static void _SetButtonState(WM_HWIN hButton, int State) {
000000  b570              PUSH     {r4-r6,lr}
000002  4605              MOV      r5,r0
;;;223      if (State) {
000004  b141              CBZ      r1,|L6.24|
;;;224        BUTTON_SetTextColor(hButton, 0, 0x0040F0);
000006  f244f244          MOV      r4,#0x40f0
00000a  4622              MOV      r2,r4
00000c  2100              MOVS     r1,#0
00000e  4628              MOV      r0,r5
000010  f7fff7ff          BL       BUTTON_SetTextColor
;;;225        BUTTON_SetTextColor(hButton, 1, 0x0040F0);
000014  4622              MOV      r2,r4
000016  e005              B        |L6.36|
                  |L6.24|
;;;226      } else {
;;;227        BUTTON_SetTextColor(hButton, 0, GUI_BLACK);
000018  2200              MOVS     r2,#0
00001a  4611              MOV      r1,r2
00001c  4628              MOV      r0,r5
00001e  f7fff7ff          BL       BUTTON_SetTextColor
;;;228        BUTTON_SetTextColor(hButton, 1, GUI_BLACK);
000022  2200              MOVS     r2,#0
                  |L6.36|
000024  4628              MOV      r0,r5
000026  e8bde8bd          POP      {r4-r6,lr}
00002a  2101              MOVS     r1,#1
00002c  f7fff7ff          B.W      BUTTON_SetTextColor
;;;229      }
;;;230    }
;;;231    
                          ENDP


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

                  _cbBkWin PROC
;;;241    */
;;;242    static void _cbBkWin(WM_MESSAGE* pMsg) {
000000  b510              PUSH     {r4,lr}
;;;243      switch(pMsg->MsgId) {
000002  6801              LDR      r1,[r0,#0]
000004  290f              CMP      r1,#0xf
000006  d11b              BNE      |L7.64|
;;;244      case WM_PAINT:
;;;245        GUI_SetBkColor(0x00A000);
000008  f44ff44f          MOV      r0,#0xa000
00000c  f7fff7ff          BL       GUI_SetBkColor
;;;246        GUI_SetColor(GUI_WHITE);
000010  f06ff06f          MVN      r0,#0xff000000
000014  f7fff7ff          BL       GUI_SetColor
;;;247        GUI_Clear();
000018  f7fff7ff          BL       GUI_Clear
;;;248        GUI_SetFont(&GUI_Font24_ASCII);
00001c  480a              LDR      r0,|L7.72|
00001e  f7fff7ff          BL       GUI_SetFont
;;;249        GUI_DispStringHCenterAt("MULTIEDIT - Sample", 160, 5);
000022  2205              MOVS     r2,#5
000024  21a0              MOVS     r1,#0xa0
000026  a009              ADR      r0,|L7.76|
000028  f7fff7ff          BL       GUI_DispStringHCenterAt
;;;250        GUI_SetFont(&GUI_Font8x16);
00002c  480c              LDR      r0,|L7.96|
00002e  f7fff7ff          BL       GUI_SetFont
;;;251        GUI_DispStringAt(_acInfoText, 0, 30);
000032  221e              MOVS     r2,#0x1e
000034  e8bde8bd          POP      {r4,lr}
000038  2100              MOVS     r1,#0
00003a  480a              LDR      r0,|L7.100|
00003c  f7fff7ff          B.W      GUI_DispStringAt
                  |L7.64|
;;;252        break;
;;;253      default:
;;;254        WM_DefaultProc(pMsg);
000040  e8bde8bd          POP      {r4,lr}
000044  f7fff7ff          B.W      WM_DefaultProc
;;;255      }
;;;256    }
;;;257    
                          ENDP

                  |L7.72|
000048  00000000          DCD      GUI_Font24_ASCII
                  |L7.76|
00004c  4d554c54          DCB      "MULT"
000050  49454449          DCB      "IEDI"
000054  54202d20          DCB      "T - "
000058  53616d70          DCB      "Samp"
00005c  6c650000          DCB      "le\0\0"
                  |L7.96|
000060  00000000          DCD      GUI_Font8x16
                  |L7.100|
000064  00000000          DCD      ||.bss||

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

                  _cbMultiEdit PROC
;;;261    */
;;;262    static void _cbMultiEdit(WM_MESSAGE* pMsg) {
000000  b570              PUSH     {r4-r6,lr}
000002  4604              MOV      r4,r0
;;;263      if (pMsg->MsgId == WM_KEY) {
000004  6800              LDR      r0,[r0,#0]
000006  4d10              LDR      r5,|L8.72|
000008  280e              CMP      r0,#0xe
00000a  d114              BNE      |L8.54|
;;;264        if (((WM_KEY_INFO*)(pMsg->Data.p))->PressedCnt > 0) {
00000c  68a0              LDR      r0,[r4,#8]
00000e  6841              LDR      r1,[r0,#4]
000010  2900              CMP      r1,#0
000012  dd10              BLE      |L8.54|
;;;265          int Key = ((WM_KEY_INFO*)(pMsg->Data.p))->Key;
000014  6800              LDR      r0,[r0,#0]
;;;266          if (Key == GUI_KEY_INSERT) {
000016  281d              CMP      r0,#0x1d
000018  d10d              BNE      |L8.54|
;;;267            WM_HWIN hWin;
;;;268            hWin = WM_GetDialogItem(WM_GetParent(pMsg->hWin), ID_OVERWRITE);
00001a  f9b4f9b4          LDRSH    r0,[r4,#4]
00001e  f7fff7ff          BL       WM_GetParent
000022  f640f640          MOV      r1,#0x803
000026  f7fff7ff          BL       WM_GetDialogItem
;;;269            _Overwrite ^= 1;
00002a  6a69              LDR      r1,[r5,#0x24]  ; _Overwrite
00002c  f081f081          EOR      r1,r1,#1
;;;270            _SetButtonState(hWin, _Overwrite);
000030  6269              STR      r1,[r5,#0x24]  ; _Overwrite
000032  f7fff7ff          BL       _SetButtonState
                  |L8.54|
;;;271          }
;;;272        }
;;;273      }
;;;274      if (_pcbMultiEdit) {
000036  6929              LDR      r1,[r5,#0x10]  ; _pcbMultiEdit
000038  2900              CMP      r1,#0
00003a  d003              BEQ      |L8.68|
;;;275        (*_pcbMultiEdit)(pMsg);
00003c  4620              MOV      r0,r4
00003e  e8bde8bd          POP      {r4-r6,lr}
000042  4708              BX       r1
                  |L8.68|
;;;276      }
;;;277    }
000044  bd70              POP      {r4-r6,pc}
;;;278    
                          ENDP

000046  0000              DCW      0x0000
                  |L8.72|
000048  00000000          DCD      ||.data||

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

                  _cbFrameWin PROC
;;;282    */
;;;283    static void _cbFrameWin(WM_MESSAGE* pMsg) {
000000  b570              PUSH     {r4-r6,lr}
000002  4604              MOV      r4,r0
;;;284      switch(pMsg->MsgId) {
000004  6800              LDR      r0,[r0,#0]
000006  4d0f              LDR      r5,|L9.68|
000008  280b              CMP      r0,#0xb
00000a  d00e              BEQ      |L9.42|
00000c  280c              CMP      r0,#0xc
00000e  d111              BNE      |L9.52|
;;;285      case WM_TOUCH:
;;;286        if (FRAMEWIN_IsMinimized(pMsg->hWin) == 0) {
000010  f9b4f9b4          LDRSH    r0,[r4,#4]
000014  f7fff7ff          BL       FRAMEWIN_IsMinimized
000018  b960              CBNZ     r0,|L9.52|
;;;287          if (_OnTouch(pMsg->hWin, pMsg)) {
00001a  f9b4f9b4          LDRSH    r0,[r4,#4]
00001e  4621              MOV      r1,r4
000020  f7fff7ff          BL       _OnTouch
000024  2800              CMP      r0,#0
000026  d10c              BNE      |L9.66|
000028  e004              B        |L9.52|
                  |L9.42|
;;;288            return;
;;;289          }
;;;290        }
;;;291        break;
;;;292      case WM_DELETE:
;;;293        _hFrame  = 0;
00002a  2000              MOVS     r0,#0
00002c  8068              STRH     r0,[r5,#2]  ; _hFrame
;;;294        _hClient = 0;
00002e  80a8              STRH     r0,[r5,#4]  ; _hClient
;;;295        _hMEdit  = 0;
000030  8028              STRH     r0,[r5,#0]  ; _hMEdit
;;;296        _hWrapButton = 0;
000032  80e8              STRH     r0,[r5,#6]  ; _hWrapButton
                  |L9.52|
;;;297        break;
;;;298      }
;;;299      if (_pcbFrameWin) {
000034  68a9              LDR      r1,[r5,#8]  ; _pcbFrameWin
000036  2900              CMP      r1,#0
000038  d003              BEQ      |L9.66|
;;;300        (*_pcbFrameWin)(pMsg);
00003a  4620              MOV      r0,r4
00003c  e8bde8bd          POP      {r4-r6,lr}
000040  4708              BX       r1
                  |L9.66|
;;;301      }
;;;302    }
000042  bd70              POP      {r4-r6,pc}
;;;303    
                          ENDP

                  |L9.68|
000044  00000000          DCD      ||.data||

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

                  _cbFrameWinClient PROC
;;;307    */
;;;308    static void _cbFrameWinClient(WM_MESSAGE* pMsg) {
000000  b570              PUSH     {r4-r6,lr}
000002  4605              MOV      r5,r0
;;;309      switch(pMsg->MsgId) {
000004  6800              LDR      r0,[r0,#0]
000006  4e37              LDR      r6,|L10.228|
000008  2826              CMP      r0,#0x26
00000a  d163              BNE      |L10.212|
;;;310      case WM_NOTIFY_PARENT:
;;;311        if (pMsg->Data.v == WM_NOTIFICATION_RELEASED) {
00000c  68a8              LDR      r0,[r5,#8]
00000e  2802              CMP      r0,#2
000010  d167              BNE      |L10.226|
;;;312          int Id = WM_GetId(pMsg->hWinSrc);
000012  f9b5f9b5          LDRSH    r0,[r5,#6]
000016  f7fff7ff          BL       WM_GetId
00001a  4604              MOV      r4,r0
;;;313          if ((Id >= ID_NONEWRAP) && (Id <= ID_CHARWRAP)) {
00001c  f5a0f5a0          SUB      r0,r0,#0x800
000020  2802              CMP      r0,#2
000022  d822              BHI      |L10.106|
;;;314            _SetButtonState(_hWrapButton, 0);
000024  2100              MOVS     r1,#0
000026  f9b6f9b6          LDRSH    r0,[r6,#6]  ; _hWrapButton
00002a  f7fff7ff          BL       _SetButtonState
;;;315            if (Id == ID_NONEWRAP) {
00002e  f5b4f5b4          CMP      r4,#0x800
000032  d104              BNE      |L10.62|
;;;316              MULTIEDIT_SetWrapNone(_hMEdit);
000034  f9b6f9b6          LDRSH    r0,[r6,#0]  ; _hMEdit
000038  f7fff7ff          BL       MULTIEDIT_SetWrapNone
00003c  e010              B        |L10.96|
                  |L10.62|
;;;317            } else if (Id == ID_WORDWRAP) {
00003e  f5a4f5a4          SUB      r0,r4,#0x800
000042  3801              SUBS     r0,#1
000044  d104              BNE      |L10.80|
;;;318              MULTIEDIT_SetWrapWord(_hMEdit);
000046  f9b6f9b6          LDRSH    r0,[r6,#0]  ; _hMEdit
00004a  f7fff7ff          BL       MULTIEDIT_SetWrapWord
00004e  e007              B        |L10.96|
                  |L10.80|
;;;319            } else if (Id == ID_CHARWRAP) {
000050  f5a4f5a4          SUB      r0,r4,#0x800
000054  3802              SUBS     r0,#2
000056  d103              BNE      |L10.96|
;;;320              MULTIEDIT_SetWrapChar(_hMEdit);
000058  f9b6f9b6          LDRSH    r0,[r6,#0]  ; _hMEdit
00005c  f7fff7ff          BL       MULTIEDIT_SetWrapChar
                  |L10.96|
;;;321            }
;;;322            _hWrapButton = pMsg->hWinSrc;
000060  f9b5f9b5          LDRSH    r0,[r5,#6]
000064  80f0              STRH     r0,[r6,#6]  ; _hWrapButton
;;;323            _SetButtonState(_hWrapButton, 1);
000066  2101              MOVS     r1,#1
000068  e030              B        |L10.204|
                  |L10.106|
;;;324          } else if (Id == ID_OVERWRITE) {
00006a  f5a4f5a4          SUB      r0,r4,#0x800
00006e  3803              SUBS     r0,#3
000070  d10d              BNE      |L10.142|
;;;325            _Overwrite ^= 1;
000072  6a70              LDR      r0,[r6,#0x24]  ; _Overwrite
000074  f080f080          EOR      r0,r0,#1
;;;326            MULTIEDIT_SetInsertMode(_hMEdit, 1 - _Overwrite);
000078  f1c0f1c0          RSB      r1,r0,#1
00007c  6270              STR      r0,[r6,#0x24]  ; _Overwrite
00007e  f9b6f9b6          LDRSH    r0,[r6,#0]  ; _hMEdit
000082  f7fff7ff          BL       MULTIEDIT_SetInsertMode
;;;327            _SetButtonState(pMsg->hWinSrc, _Overwrite);
000086  f9b5f9b5          LDRSH    r0,[r5,#6]
00008a  6a71              LDR      r1,[r6,#0x24]  ; _Overwrite
00008c  e01e              B        |L10.204|
                  |L10.142|
;;;328          } else if (Id == ID_READONLY) {
00008e  f5a4f5a4          SUB      r0,r4,#0x800
000092  3804              SUBS     r0,#4
000094  d10b              BNE      |L10.174|
;;;329            _ReadOnly ^= 1;
000096  6a30              LDR      r0,[r6,#0x20]  ; _ReadOnly
000098  f080f080          EOR      r1,r0,#1
;;;330            MULTIEDIT_SetReadOnly(_hMEdit, _ReadOnly);
00009c  6231              STR      r1,[r6,#0x20]  ; _ReadOnly
00009e  f9b6f9b6          LDRSH    r0,[r6,#0]  ; _hMEdit
0000a2  f7fff7ff          BL       MULTIEDIT_SetReadOnly
;;;331            _SetButtonState(pMsg->hWinSrc, _ReadOnly);
0000a6  f9b5f9b5          LDRSH    r0,[r5,#6]
0000aa  6a31              LDR      r1,[r6,#0x20]  ; _ReadOnly
0000ac  e00e              B        |L10.204|
                  |L10.174|
;;;332          } else if (Id == ID_PASSWORD) {
0000ae  f5a4f5a4          SUB      r0,r4,#0x800
0000b2  3805              SUBS     r0,#5
0000b4  d115              BNE      |L10.226|
;;;333            _Password ^= 1;
0000b6  6ab0              LDR      r0,[r6,#0x28]  ; _Password
0000b8  f080f080          EOR      r1,r0,#1
;;;334            MULTIEDIT_SetPasswordMode(_hMEdit, _Password);
0000bc  62b1              STR      r1,[r6,#0x28]  ; _Password
0000be  f9b6f9b6          LDRSH    r0,[r6,#0]  ; _hMEdit
0000c2  f7fff7ff          BL       MULTIEDIT_SetPasswordMode
;;;335            _SetButtonState(pMsg->hWinSrc, _Password);
0000c6  f9b5f9b5          LDRSH    r0,[r5,#6]

⌨️ 快捷键说明

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