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

📄 window.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 TXT
字号:
; generated by ARM C/C++ Compiler with , RVCT4.0 [Build 524] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\window.o --depend=.\Obj\window.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\WINDOW.c]
                          THUMB

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

                  WINDOW_CreateIndirect PROC
;;;154    */
;;;155    WM_HWIN WINDOW_CreateIndirect(const GUI_WIDGET_CREATE_INFO* pCreateInfo, WM_HWIN hWinParent, int x0, int y0, WM_CALLBACK* cb) {
000000  e92d41ff          PUSH     {r0-r8,lr}
000004  4604              MOV      r4,r0
000006  4608              MOV      r0,r1
000008  4615              MOV      r5,r2
00000a  461f              MOV      r7,r3
;;;156      WM_HWIN hObj;
;;;157      hObj = WM_CreateWindowAsChild(
00000c  2314              MOVS     r3,#0x14
00000e  4a11              LDR      r2,|L1.84|
000010  8a61              LDRH     r1,[r4,#0x12]
000012  9e0a              LDR      r6,[sp,#0x28]
000014  e88d000f          STM      sp,{r0-r3}
000018  f9b4000c          LDRSH    r0,[r4,#0xc]
00001c  f9b43010          LDRSH    r3,[r4,#0x10]
000020  19c1              ADDS     r1,r0,r7
000022  f9b4000a          LDRSH    r0,[r4,#0xa]
000026  f9b4200e          LDRSH    r2,[r4,#0xe]
00002a  4428              ADD      r0,r0,r5
00002c  f7fffffe          BL       WM_CreateWindowAsChild
000030  0005              MOVS     r5,r0
;;;158        pCreateInfo->x0 + x0, pCreateInfo->y0 + y0, pCreateInfo->xSize, pCreateInfo->ySize, hWinParent,
;;;159        pCreateInfo->Flags, _cb, sizeof(WINDOW_OBJ) - sizeof(WM_Obj));
;;;160      if (hObj) {
000032  d00b              BEQ      |L1.76|
;;;161        WINDOW_OBJ* pObj;
;;;162        WM_LOCK();
;;;163        pObj = WINDOW_H2P(hObj);
000034  4628              MOV      r0,r5
000036  f7fffffe          BL       GUI_ALLOC_h2p
00003a  4607              MOV      r7,r0
;;;164        WIDGET__Init(&pObj->Widget, pCreateInfo->Id, WIDGET_STATE_FOCUSSABLE);
00003c  f9b41008          LDRSH    r1,[r4,#8]
000040  2210              MOVS     r2,#0x10
000042  f7fffffe          BL       WIDGET__Init
;;;165        pObj->cb             = cb;
;;;166        pObj->hFocussedChild = 0;
000046  2100              MOVS     r1,#0
000048  62be              STR      r6,[r7,#0x28]
00004a  85b9              STRH     r1,[r7,#0x2c]
                  |L1.76|
;;;167        WM_UNLOCK();
;;;168      }
;;;169      return hObj;
00004c  4628              MOV      r0,r5
;;;170    }
00004e  b004              ADD      sp,sp,#0x10
000050  e8bd81f0          POP      {r4-r8,pc}
;;;171    
                          ENDP

                  |L1.84|
                          DCD      _cb

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

                  _cb PROC
;;;88     */
;;;89     static void _cb(WM_MESSAGE* pMsg) {
000000  e92d41f0          PUSH     {r4-r8,lr}
;;;90       WM_HWIN hObj;
;;;91       WINDOW_OBJ* pObj;
;;;92       WM_CALLBACK* cb;
;;;93       hObj = pMsg->hWin;
000004  f9b07004          LDRSH    r7,[r0,#4]
000008  4604              MOV      r4,r0                 ;89
;;;94       pObj = WINDOW_H2P(hObj);
00000a  4638              MOV      r0,r7
00000c  f7fffffe          BL       GUI_ALLOC_h2p
000010  4605              MOV      r5,r0
;;;95       cb   = pObj->cb;
;;;96       switch (pMsg->MsgId) {
000012  6a86              LDR      r6,[r0,#0x28]
000014  6820              LDR      r0,[r4,#0]
;;;97       case WM_HANDLE_DIALOG_STATUS:
;;;98         if (pMsg->Data.p) {                           /* set pointer to Dialog status */
;;;99           pObj->pDialogStatus = (WM_DIALOG_STATUS*)pMsg->Data.p;
;;;100        } else {                                      /* return pointer to Dialog status */
;;;101          pMsg->Data.p = pObj->pDialogStatus;      
;;;102        }
;;;103        return;
;;;104      case WM_SET_FOCUS:
;;;105        if (pMsg->Data.v) {   /* Focus received */
;;;106          if (pObj->hFocussedChild && (pObj->hFocussedChild != hObj)) {
;;;107            WM_SetFocus(pObj->hFocussedChild);
;;;108          } else {
;;;109            pObj->hFocussedChild = WM_SetFocusOnNextChild(hObj);
;;;110          }
;;;111          pMsg->Data.v = 0;   /* Focus change accepted */
;;;112        }
;;;113        return;
;;;114      case WM_GET_ACCEPT_FOCUS:
;;;115        WIDGET_HandleActive(hObj, pMsg);
;;;116        return;
;;;117      case WM_NOTIFY_CHILD_HAS_FOCUS:
;;;118        _OnChildHasFocus(hObj, pObj, pMsg);
;;;119        return;
;;;120      case WM_KEY:
;;;121        if (((const WM_KEY_INFO*)(pMsg->Data.p))->PressedCnt > 0) {
;;;122          int Key = ((const WM_KEY_INFO*)(pMsg->Data.p))->Key;
;;;123          switch (Key) {
;;;124          case GUI_KEY_TAB:
;;;125            pObj->hFocussedChild = WM_SetFocusOnNextChild(hObj);
;;;126            break;                    /* Send to parent by not doing anything */
;;;127          }
;;;128        }
;;;129        break;
;;;130      case WM_PAINT:
;;;131        LCD_SetBkColor(WINDOW__DefaultBkColor);
000016  4930              LDR      r1,|L2.216|
000018  2820              CMP      r0,#0x20              ;96
00001a  d025              BEQ      |L2.104|
00001c  dc10              BGT      |L2.64|
00001e  280e              CMP      r0,#0xe               ;96
000020  d03c              BEQ      |L2.156|
000022  280f              CMP      r0,#0xf               ;96
000024  d046              BEQ      |L2.180|
000026  281f              CMP      r0,#0x1f              ;96
000028  d149              BNE      |L2.190|
00002a  68a0              LDR      r0,[r4,#8]            ;105
00002c  2800              CMP      r0,#0                 ;105
00002e  d010              BEQ      |L2.82|
000030  f9b5002c          LDRSH    r0,[r5,#0x2c]         ;106
000034  b188              CBZ      r0,|L2.90|
000036  42b8              CMP      r0,r7                 ;106
000038  d00f              BEQ      |L2.90|
00003a  f7fffffe          BL       WM_SetFocus
00003e  e010              B        |L2.98|
                  |L2.64|
000040  2821              CMP      r0,#0x21              ;96
000042  d017              BEQ      |L2.116|
000044  2822              CMP      r0,#0x22              ;96
000046  d040              BEQ      |L2.202|
000048  282a              CMP      r0,#0x2a              ;96
00004a  d138              BNE      |L2.190|
00004c  68a0              LDR      r0,[r4,#8]            ;98
00004e  b110              CBZ      r0,|L2.86|
000050  6328              STR      r0,[r5,#0x30]         ;99
                  |L2.82|
;;;132        GUI_Clear();
;;;133        break;
;;;134      case WM_GET_BKCOLOR:
;;;135        pMsg->Data.Color = WINDOW__DefaultBkColor;
;;;136        return;                       /* Message handled */
;;;137      }  
;;;138      if (cb) {
;;;139        (*cb)(pMsg);
;;;140      } else {
;;;141        WM_DefaultProc(pMsg);
;;;142      }
;;;143    }
000052  e8bd81f0          POP      {r4-r8,pc}
                  |L2.86|
000056  6b28              LDR      r0,[r5,#0x30]         ;101
000058  e004              B        |L2.100|
                  |L2.90|
00005a  4638              MOV      r0,r7                 ;109
00005c  f7fffffe          BL       WM_SetFocusOnNextChild
000060  85a8              STRH     r0,[r5,#0x2c]         ;109
                  |L2.98|
000062  2000              MOVS     r0,#0                 ;111
                  |L2.100|
000064  60a0              STR      r0,[r4,#8]            ;111
000066  e7f4              B        |L2.82|
                  |L2.104|
000068  4621              MOV      r1,r4                 ;115
00006a  4638              MOV      r0,r7                 ;115
00006c  e8bd41f0          POP      {r4-r8,lr}            ;115
000070  f7ffbffe          B.W      WIDGET_HandleActive
                  |L2.116|
000074  68a4              LDR      r4,[r4,#8]            ;115
000076  2c00              CMP      r4,#0                 ;115
000078  d0eb              BEQ      |L2.82|
00007a  f9b40002          LDRSH    r0,[r4,#2]            ;115
00007e  4639              MOV      r1,r7                 ;115
000080  f7fffffe          BL       WM__IsAncestorOrSelf
000084  2800              CMP      r0,#0                 ;115
000086  d1e4              BNE      |L2.82|
000088  f9b40000          LDRSH    r0,[r4,#0]            ;115
00008c  4639              MOV      r1,r7                 ;115
00008e  f7fffffe          BL       WM__IsAncestor
000092  2800              CMP      r0,#0                 ;115
000094  d0dd              BEQ      |L2.82|
000096  8820              LDRH     r0,[r4,#0]            ;115
000098  85a8              STRH     r0,[r5,#0x2c]         ;115
00009a  e7da              B        |L2.82|
                  |L2.156|
00009c  68a0              LDR      r0,[r4,#8]            ;121
00009e  6841              LDR      r1,[r0,#4]            ;121
0000a0  2900              CMP      r1,#0                 ;121
0000a2  dd0c              BLE      |L2.190|
0000a4  6800              LDR      r0,[r0,#0]            ;122
0000a6  2809              CMP      r0,#9                 ;123
0000a8  d109              BNE      |L2.190|
0000aa  4638              MOV      r0,r7                 ;125
0000ac  f7fffffe          BL       WM_SetFocusOnNextChild
0000b0  85a8              STRH     r0,[r5,#0x2c]         ;125
0000b2  e004              B        |L2.190|
                  |L2.180|
0000b4  6808              LDR      r0,[r1,#0]            ;131  ; WINDOW__DefaultBkColor
0000b6  f7fffffe          BL       LCD_SetBkColor
0000ba  f7fffffe          BL       GUI_Clear
                  |L2.190|
0000be  4620              MOV      r0,r4                 ;139
0000c0  b12e              CBZ      r6,|L2.206|
0000c2  46b4              MOV      r12,r6                ;139
0000c4  e8bd41f0          POP      {r4-r8,lr}            ;139
0000c8  4760              BX       r12                   ;139
                  |L2.202|
0000ca  6808              LDR      r0,[r1,#0]            ;136  ; WINDOW__DefaultBkColor
0000cc  e7ca              B        |L2.100|
                  |L2.206|
0000ce  e8bd41f0          POP      {r4-r8,lr}            ;141
0000d2  f7ffbffe          B.W      WM_DefaultProc
;;;144    
                          ENDP

0000d6  0000              DCW      0x0000
                  |L2.216|
                          DCD      ||.data||

                          AREA ||.data||, DATA, ALIGN=2

                  WINDOW__DefaultBkColor
                          DCD      0x00c0c0c0

⌨️ 快捷键说明

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