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

📄 widget_multiedit.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 TXT
📖 第 1 页 / 共 4 页
字号:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.1 [Build 934] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\widget_multiedit.o --depend=.\Obj\widget_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 -D__MICROLIB ..\..\source\WIDGET_Multiedit.c]
                          THUMB

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

                  _ChangeInfoText PROC
;;;79     */
;;;80     static int _ChangeInfoText(const char* pString, int Delay) {
000000  b570              PUSH     {r4-r6,lr}
;;;81       if (_hFrame) {
000002  4c10              LDR      r4,|L1.68|
000004  4606              MOV      r6,r0                 ;80
000006  8860              LDRH     r0,[r4,#2]  ; _hFrame
000008  460d              MOV      r5,r1                 ;80
00000a  b1c8              CBZ      r0,|L1.64|
;;;82         GUI_Delay(Delay * 0.75);
00000c  4628              MOV      r0,r5
00000e  f7fff7ff          BL       __aeabi_i2d
000012  a20d              ADR      r2,|L1.72|
000014  ca0c              LDM      r2,{r2,r3}
000016  f7fff7ff          BL       __aeabi_dmul
00001a  f7fff7ff          BL       __aeabi_d2iz
00001e  f7fff7ff          BL       GUI_Delay
;;;83         strcpy(_acInfoText, pString);
000022  4631              MOV      r1,r6
000024  480a              LDR      r0,|L1.80|
000026  f7fff7ff          BL       strcpy
;;;84         WM_InvalidateWindow(WM_HBKWIN);
00002a  f7fff7ff          BL       WM_GetDesktopWindow
00002e  f7fff7ff          BL       WM_InvalidateWindow
;;;85       }
;;;86       if (_hFrame) {
000032  8860              LDRH     r0,[r4,#2]  ; _hFrame
000034  b120              CBZ      r0,|L1.64|
;;;87         GUI_Delay(Delay);
000036  4628              MOV      r0,r5
000038  f7fff7ff          BL       GUI_Delay
;;;88         return 0;
00003c  2000              MOVS     r0,#0
;;;89       } 
;;;90       return 1;
;;;91     }
00003e  bd70              POP      {r4-r6,pc}
                  |L1.64|
000040  2001              MOVS     r0,#1                 ;90
000042  bd70              POP      {r4-r6,pc}
;;;92     
                          ENDP

                  |L1.68|
000044  00000000          DCD      ||.data||
                  |L1.72|
000048  00000000
00004c  3fe80000          DCFD     0x3fe8000000000000 ; 0.75
                  |L1.80|
000050  00000000          DCD      ||.bss||

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

                  _SetCapture PROC
;;;96     */
;;;97     static void _SetCapture(FRAMEWIN_Handle hWin, int x, int y, int Mode) {
000000  b570              PUSH     {r4-r6,lr}
;;;98       if ((_HasCaptured & REPOS_X) == 0) {
000002  4c08              LDR      r4,|L2.36|
000004  461d              MOV      r5,r3                 ;97
000006  69e3              LDR      r3,[r4,#0x1c]  ; _HasCaptured
000008  075e              LSLS     r6,r3,#29
00000a  d400              BMI      |L2.14|
;;;99         _CaptureX = x;
00000c  6161              STR      r1,[r4,#0x14]  ; _CaptureX
                  |L2.14|
;;;100      }
;;;101      if ((_HasCaptured & REPOS_Y) == 0) {
00000e  0719              LSLS     r1,r3,#28
000010  d400              BMI      |L2.20|
;;;102        _CaptureY = y;
000012  61a2              STR      r2,[r4,#0x18]  ; _CaptureY
                  |L2.20|
;;;103      }
;;;104      if (!_HasCaptured) {
000014  2b00              CMP      r3,#0
000016  d103              BNE      |L2.32|
;;;105        WM_SetCapture(hWin, 1);
000018  2101              MOVS     r1,#1
00001a  f7fff7ff          BL       WM_SetCapture
;;;106        _HasCaptured = Mode;
00001e  61e5              STR      r5,[r4,#0x1c]  ; _HasCaptured
                  |L2.32|
;;;107      }
;;;108    }
000020  bd70              POP      {r4-r6,pc}
;;;109    
                          ENDP

000022  0000              DCW      0x0000
                  |L2.36|
000024  00000000          DCD      ||.data||

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

                  _ChangeWindowPosSize PROC
;;;113    */
;;;114    static void _ChangeWindowPosSize(FRAMEWIN_Handle hWin, int* px, int* py) {
000000  e92de92d          PUSH     {r2-r10,lr}
000004  460e              MOV      r6,r1
;;;115      int dx = 0, dy = 0;
000006  2400              MOVS     r4,#0
000008  4681              MOV      r9,r0                 ;114
00000a  4617              MOV      r7,r2                 ;114
00000c  4625              MOV      r5,r4
;;;116      GUI_RECT Rect;
;;;117      WM_GetClientRectEx(hWin, &Rect);
00000e  4669              MOV      r1,sp
000010  f7fff7ff          BL       WM_GetClientRectEx
;;;118      /* Calculate new size of window */
;;;119      if (_HasCaptured & RESIZE_X) {
000014  f8dff8df          LDR      r8,|L3.164|
000018  f8d8f8d8          LDR      r0,[r8,#0x1c]  ; _HasCaptured
00001c  07c1              LSLS     r1,r0,#31
00001e  d008              BEQ      |L3.50|
;;;120        dx = (_HasCaptured & REPOS_X) ? (_CaptureX - *px) : (*px - _CaptureX);
000020  0741              LSLS     r1,r0,#29
000022  2900              CMP      r1,#0
000024  6831              LDR      r1,[r6,#0]
000026  f8d8f8d8          LDR      r2,[r8,#0x14]  ; _CaptureX
00002a  da01              BGE      |L3.48|
00002c  1a54              SUBS     r4,r2,r1
00002e  e000              B        |L3.50|
                  |L3.48|
000030  1a8c              SUBS     r4,r1,r2
                  |L3.50|
;;;121      }
;;;122      if (_HasCaptured & RESIZE_Y) {
000032  0781              LSLS     r1,r0,#30
000034  d508              BPL      |L3.72|
;;;123        dy = (_HasCaptured & REPOS_Y) ? (_CaptureY - *py) : (*py - _CaptureY);
000036  0701              LSLS     r1,r0,#28
000038  2900              CMP      r1,#0
00003a  6839              LDR      r1,[r7,#0]
00003c  f8d8f8d8          LDR      r2,[r8,#0x18]  ; _CaptureY
000040  da01              BGE      |L3.70|
000042  1a55              SUBS     r5,r2,r1
000044  e000              B        |L3.72|
                  |L3.70|
000046  1a8d              SUBS     r5,r1,r2
                  |L3.72|
;;;124      }
;;;125      /* Check the minimal size of window */
;;;126      if ((Rect.x1 + dx + 1) < MIN_SIZE_X) {
000048  f9bdf9bd          LDRSH    r1,[sp,#4]
00004c  1c62              ADDS     r2,r4,#1
00004e  440a              ADD      r2,r2,r1
000050  2ac8              CMP      r2,#0xc8
000052  da04              BGE      |L3.94|
;;;127        dx = MIN_SIZE_X - (Rect.x1 + 1);
000054  f1c1f1c1          RSB      r4,r1,#0xc7
;;;128        *px = _CaptureX;
000058  f8d8f8d8          LDR      r1,[r8,#0x14]  ; _CaptureX
00005c  6031              STR      r1,[r6,#0]
                  |L3.94|
;;;129      }
;;;130      if ((Rect.y1 + dy + 1) < MIN_SIZE_Y) {
00005e  f9bdf9bd          LDRSH    r1,[sp,#6]
000062  1c6a              ADDS     r2,r5,#1
000064  440a              ADD      r2,r2,r1
000066  2a50              CMP      r2,#0x50
000068  da04              BGE      |L3.116|
;;;131        dy = MIN_SIZE_Y - (Rect.y1 + 1);
00006a  f1c1f1c1          RSB      r5,r1,#0x4f
;;;132        *py = _CaptureY;
00006e  f8d8f8d8          LDR      r1,[r8,#0x18]  ; _CaptureY
000072  6039              STR      r1,[r7,#0]
                  |L3.116|
;;;133      }
;;;134      /* Set new window position */
;;;135      if (_HasCaptured & REPOS_X) {
000074  0740              LSLS     r0,r0,#29
000076  d504              BPL      |L3.130|
;;;136        WM_MoveWindow(hWin, -dx, 0);
000078  2200              MOVS     r2,#0
00007a  4261              RSBS     r1,r4,#0
00007c  4648              MOV      r0,r9
00007e  f7fff7ff          BL       WM_MoveWindow
                  |L3.130|
;;;137      }
;;;138      if (_HasCaptured & REPOS_Y) {
000082  f8d8f8d8          LDR      r0,[r8,#0x1c]  ; _HasCaptured
000086  0700              LSLS     r0,r0,#28
000088  d504              BPL      |L3.148|
;;;139        WM_MoveWindow(hWin, 0, -dy);
00008a  426a              RSBS     r2,r5,#0
00008c  2100              MOVS     r1,#0
00008e  4648              MOV      r0,r9
000090  f7fff7ff          BL       WM_MoveWindow
                  |L3.148|
;;;140      }
;;;141      /* Set new window size */
;;;142      WM_ResizeWindow(hWin, dx, dy);
000094  462a              MOV      r2,r5
000096  4621              MOV      r1,r4
000098  4648              MOV      r0,r9
00009a  f7fff7ff          BL       WM_ResizeWindow
;;;143    }
00009e  e8bde8bd          POP      {r2-r10,pc}
;;;144    
                          ENDP

0000a2  0000              DCW      0x0000
                  |L3.164|
0000a4  00000000          DCD      ||.data||

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

                  _CreateLButton PROC
;;;192    */
;;;193    static WM_HWIN _CreateLButton(const char* pText, int x, int w, int h, WM_HWIN hParent, int Id) {
000000  e92de92d          PUSH     {r4-r9,lr}
000004  b087              SUB      sp,sp,#0x1c
;;;194      WM_HWIN hButton;
;;;195      GUI_RECT Rect;
;;;196      WM_GetClientRectEx(hParent, &Rect);
000006  e9dde9dd          LDRD     r8,r9,[sp,#0x38]
00000a  4605              MOV      r5,r0                 ;193
00000c  460e              MOV      r6,r1                 ;193
00000e  4617              MOV      r7,r2                 ;193
000010  461c              MOV      r4,r3                 ;193
000012  a905              ADD      r1,sp,#0x14
000014  4640              MOV      r0,r8
000016  f7fff7ff          BL       WM_GetClientRectEx
;;;197      hButton = BUTTON_CreateEx(x, Rect.y1 - h + 1, w, h, hParent, WM_CF_SHOW | WM_CF_ANCHOR_BOTTOM, 0, Id);
00001a  f44ff44f          MOV      r1,#0x102
00001e  e9cde9cd          STRD     r8,r1,[sp,#0]
000022  2200              MOVS     r2,#0
000024  f9bdf9bd          LDRSH    r0,[sp,#0x1a]
000028  e9cde9cd          STRD     r2,r9,[sp,#8]
00002c  1b01              SUBS     r1,r0,r4
00002e  1c49              ADDS     r1,r1,#1
000030  4623              MOV      r3,r4
000032  463a              MOV      r2,r7
000034  4630              MOV      r0,r6
000036  f7fff7ff          BL       BUTTON_CreateEx
00003a  4604              MOV      r4,r0
;;;198      BUTTON_SetText(hButton, pText);
00003c  4629              MOV      r1,r5
00003e  f7fff7ff          BL       BUTTON_SetText
;;;199      BUTTON_SetFont(hButton, &GUI_Font8_ASCII);
000042  4904              LDR      r1,|L4.84|
000044  4620              MOV      r0,r4
000046  f7fff7ff          BL       BUTTON_SetFont
;;;200      return hButton;
00004a  4620              MOV      r0,r4
;;;201    }
00004c  b007              ADD      sp,sp,#0x1c
00004e  e8bde8bd          POP      {r4-r9,pc}
;;;202    
                          ENDP

000052  0000              DCW      0x0000
                  |L4.84|
000054  00000000          DCD      GUI_Font8_ASCII

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

                  _CreateRButton PROC
;;;206    */
;;;207    static WM_HWIN _CreateRButton(const char* pText, int x, int w, int h, WM_HWIN hParent, int Id) {
000000  e92de92d          PUSH     {r4-r9,lr}
000004  b087              SUB      sp,sp,#0x1c
;;;208      WM_HWIN hButton;
;;;209      GUI_RECT Rect;
;;;210      WM_GetClientRectEx(hParent, &Rect);
000006  e9dde9dd          LDRD     r8,r9,[sp,#0x38]
00000a  4606              MOV      r6,r0                 ;207
00000c  460f              MOV      r7,r1                 ;207
00000e  4614              MOV      r4,r2                 ;207
000010  461d              MOV      r5,r3                 ;207
000012  a905              ADD      r1,sp,#0x14
000014  4640              MOV      r0,r8
000016  f7fff7ff          BL       WM_GetClientRectEx
;;;211      hButton = BUTTON_CreateEx(Rect.x1 - x - w + 1, Rect.y1 - h + 1, w, h, hParent,
00001a  f44ff44f          MOV      r1,#0x182
00001e  e9cde9cd          STRD     r8,r1,[sp,#0]
000022  f9bdf9bd          LDRSH    r0,[sp,#0x1a]
000026  2200              MOVS     r2,#0
000028  1b41              SUBS     r1,r0,r5
00002a  f9bdf9bd          LDRSH    r0,[sp,#0x18]
00002e  e9cde9cd          STRD     r2,r9,[sp,#8]
000032  1bc0              SUBS     r0,r0,r7
000034  1b00              SUBS     r0,r0,r4
000036  1c49              ADDS     r1,r1,#1
000038  1c40              ADDS     r0,r0,#1
00003a  462b              MOV      r3,r5
00003c  4622              MOV      r2,r4
00003e  f7fff7ff          BL       BUTTON_CreateEx
000042  4604              MOV      r4,r0
;;;212                                WM_CF_SHOW | WM_CF_ANCHOR_BOTTOM | WM_CF_ANCHOR_RIGHT, 0, Id);
;;;213      BUTTON_SetText(hButton, pText);
000044  4631              MOV      r1,r6
000046  f7fff7ff          BL       BUTTON_SetText
;;;214      BUTTON_SetFont(hButton, &GUI_Font8_ASCII);
00004a  4904              LDR      r1,|L5.92|
00004c  4620              MOV      r0,r4
00004e  f7fff7ff          BL       BUTTON_SetFont
;;;215      return hButton;
000052  4620              MOV      r0,r4
;;;216    }
000054  b007              ADD      sp,sp,#0x1c
000056  e8bde8bd          POP      {r4-r9,pc}
;;;217    
                          ENDP

00005a  0000              DCW      0x0000
                  |L5.92|
00005c  00000000          DCD      GUI_Font8_ASCII

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

                  _SetButtonState PROC
;;;221    */

⌨️ 快捷键说明

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