dialog.txt

来自「STM32F103ZET6+UCOSII+UCGUI源码」· 文本 代码 · 共 256 行

TXT
256
字号
; generated by ARM C/C++ Compiler with , RVCT4.0 [Build 524] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\dialog.o --depend=.\Obj\dialog.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\DIALOG.c]
                          THUMB

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

                  DIALOG_GetBkColor PROC
;;;62     */
;;;63     LCD_COLOR DIALOG_GetBkColor(void) {
000000  4801              LDR      r0,|L1.8|
;;;64       return _BkColor;
000002  6800              LDR      r0,[r0,#0]  ; _BkColor
;;;65     }
000004  4770              BX       lr
;;;66     
                          ENDP

000006  0000              DCW      0x0000
                  |L1.8|
                          DCD      ||.data||

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

                  DIALOG_SetBkColor PROC
;;;70     */
;;;71     LCD_COLOR DIALOG_SetBkColor(LCD_COLOR BkColor) {
000000  4902              LDR      r1,|L2.12|
000002  4602              MOV      r2,r0
;;;72       LCD_COLOR r;
;;;73       r = _BkColor;
;;;74       _BkColor = BkColor;
000004  6808              LDR      r0,[r1,#0]  ; _BkColor
;;;75       return r;
000006  600a              STR      r2,[r1,#0]  ; _BkColor
;;;76     }
000008  4770              BX       lr
;;;77     /*********************************************************************
                          ENDP

00000a  0000              DCW      0x0000
                  |L2.12|
                          DCD      ||.data||

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

                  GUI_CreateDialogBox PROC
;;;101    */
;;;102    WM_HWIN GUI_CreateDialogBox(const GUI_WIDGET_CREATE_INFO* paWidget, int NumWidgets, WM_CALLBACK* cb, WM_HWIN hParent,
000000  e92d43f8          PUSH     {r3-r9,lr}
;;;103                                int x0, int y0)
;;;104    {
000004  460d              MOV      r5,r1
000006  4616              MOV      r6,r2
000008  4619              MOV      r1,r3
;;;105      WM_HWIN hDialog = paWidget->pfCreateIndirect(paWidget, hParent, x0, y0, cb);     /* Create parent window */
00000a  e9dd2308          LDRD     r2,r3,[sp,#0x20]
00000e  4604              MOV      r4,r0                 ;104
000010  9600              STR      r6,[sp,#0]
000012  6826              LDR      r6,[r4,#0]
000014  47b0              BLX      r6
000016  4606              MOV      r6,r0
;;;106      WM_HWIN hDialogClient = WM_GetClientWindow(hDialog);
000018  f7fffffe          BL       WM_GetClientWindow
00001c  4680              MOV      r8,r0
;;;107      WIDGET_OrState(hDialog, paWidget->Flags);
00001e  8a61              LDRH     r1,[r4,#0x12]
000020  4630              MOV      r0,r6
000022  f7fffffe          BL       WIDGET_OrState
;;;108      WM_ShowWindow(hDialog);
000026  4630              MOV      r0,r6
000028  f7fffffe          BL       WM_ShowWindow
;;;109      WM_ShowWindow(hDialogClient);
00002c  4640              MOV      r0,r8
;;;110      while (--NumWidgets > 0) {
00002e  e007              B        |L3.64|
                  |L3.48|
;;;111        WM_HWIN hChild;
;;;112        paWidget++;
;;;113        hChild = paWidget->pfCreateIndirect(paWidget, hDialogClient, 0, 0, 0);     /* Create child window */
000030  2300              MOVS     r3,#0
000032  9300              STR      r3,[sp,#0]
000034  f8547f18          LDR      r7,[r4,#0x18]!
000038  461a              MOV      r2,r3
00003a  4641              MOV      r1,r8
00003c  4620              MOV      r0,r4
00003e  47b8              BLX      r7
                  |L3.64|
000040  f7fffffe          BL       WM_ShowWindow
000044  1e6d              SUBS     r5,r5,#1              ;110
000046  2d00              CMP      r5,#0                 ;110
000048  dcf2              BGT      |L3.48|
;;;114        WM_ShowWindow(hChild);
;;;115      }
;;;116      WM_SetFocusOnNextChild(hDialog);     /* Set the focus to the first child */
00004a  4630              MOV      r0,r6
00004c  f7fffffe          BL       WM_SetFocusOnNextChild
;;;117      WM_SendMessageNoPara(hDialogClient, WM_INIT_DIALOG);
000050  211e              MOVS     r1,#0x1e
000052  4640              MOV      r0,r8
000054  f7fffffe          BL       WM_SendMessageNoPara
;;;118      return hDialog;
000058  4630              MOV      r0,r6
;;;119    }
00005a  e8bd83f8          POP      {r3-r9,pc}
;;;120    
                          ENDP


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

                  GUI_EndDialog PROC
;;;124    */
;;;125    void GUI_EndDialog(WM_HWIN hDialog, int r) {
000000  b570              PUSH     {r4-r6,lr}
000002  4605              MOV      r5,r0
000004  460c              MOV      r4,r1
;;;126      WM_DIALOG_STATUS* pStatus;
;;;127      pStatus = GUI_GetDialogStatusPtr(hDialog);
000006  f7fffffe          BL       GUI_GetDialogStatusPtr
;;;128      if (pStatus) {
00000a  b108              CBZ      r0,|L4.16|
;;;129        pStatus->ReturnValue = r;
;;;130        pStatus->Done = 1;
00000c  2101              MOVS     r1,#1
00000e  c012              STM      r0!,{r1,r4}
                  |L4.16|
;;;131      }
;;;132      WM_DeleteWindow(hDialog);
000010  4628              MOV      r0,r5
000012  e8bd4070          POP      {r4-r6,lr}
000016  f7ffbffe          B.W      WM_DeleteWindow
;;;133    }
;;;134    
                          ENDP


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

                  GUI_ExecCreatedDialog PROC
;;;139    */
;;;140    int     GUI_ExecCreatedDialog (WM_HWIN hDialog) {
000000  b51c              PUSH     {r2-r4,lr}
;;;141      WM_DIALOG_STATUS DialogStatus = {0};
000002  2200              MOVS     r2,#0
000004  4669              MOV      r1,sp
000006  4613              MOV      r3,r2
000008  c10c              STM      r1!,{r2,r3}
;;;142      /* Let window know how to send feedback (close info & return value) */
;;;143      GUI_SetDialogStatusPtr(hDialog, &DialogStatus);
00000a  4669              MOV      r1,sp
00000c  f7fffffe          BL       GUI_SetDialogStatusPtr
;;;144      while (!DialogStatus.Done) {
000010  e005              B        |L5.30|
;;;145        if (!GUI_Exec()) {
000012  bf00              NOP      
                  |L5.20|
000014  f7fffffe          BL       GUI_Exec
000018  b908              CBNZ     r0,|L5.30|
;;;146          GUI_X_WAIT_EVENT();      /* Wait for event (keyboard, mouse or whatever) */
00001a  f7fffffe          BL       GUI_X_ExecIdle
                  |L5.30|
00001e  9800              LDR      r0,[sp,#0]            ;144
000020  2800              CMP      r0,#0                 ;144
000022  d0f7              BEQ      |L5.20|
;;;147        }
;;;148      }
;;;149      return DialogStatus.ReturnValue;
000024  9801              LDR      r0,[sp,#4]
;;;150    }
000026  bd1c              POP      {r2-r4,pc}
;;;151    
                          ENDP


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

                  GUI_ExecDialogBox PROC
;;;161    */
;;;162    int GUI_ExecDialogBox(const GUI_WIDGET_CREATE_INFO* paWidget,
000000  b57c              PUSH     {r2-r6,lr}
;;;163                          int NumWidgets, WM_CALLBACK* cb, WM_HWIN hParent, int x0, int y0)
;;;164    {
000002  4614              MOV      r4,r2
000004  461d              MOV      r5,r3
;;;165      WM_HWIN hDialog;
;;;166      hDialog = GUI_CreateDialogBox(paWidget, NumWidgets, cb, hParent, x0, y0);
000006  e9dd2306          LDRD     r2,r3,[sp,#0x18]
00000a  e9cd2300          STRD     r2,r3,[sp,#0]
00000e  462b              MOV      r3,r5
000010  4622              MOV      r2,r4
000012  f7fffffe          BL       GUI_CreateDialogBox
;;;167      return GUI_ExecCreatedDialog(hDialog);
000016  e8bd407c          POP      {r2-r6,lr}
00001a  f7ffbffe          B.W      GUI_ExecCreatedDialog
;;;168    }
;;;169    
                          ENDP


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

                  GUI_GetDialogStatusPtr PROC
;;;91     */
;;;92     WM_DIALOG_STATUS*  GUI_GetDialogStatusPtr(WM_HWIN hDialog) {
000000  b50e              PUSH     {r1-r3,lr}
;;;93       WM_MESSAGE Msg = {0};
000002  2200              MOVS     r2,#0
000004  4669              MOV      r1,sp
000006  4613              MOV      r3,r2
000008  4694              MOV      r12,r2
00000a  e881100c          STM      r1,{r2,r3,r12}
;;;94       Msg.MsgId = WM_HANDLE_DIALOG_STATUS;
00000e  212a              MOVS     r1,#0x2a
;;;95       WM_SendMessage(hDialog, &Msg);
000010  9100              STR      r1,[sp,#0]
000012  4669              MOV      r1,sp
000014  f7fffffe          BL       WM_SendMessage
;;;96       return (WM_DIALOG_STATUS*)Msg.Data.p;
000018  9802              LDR      r0,[sp,#8]
;;;97     }
00001a  bd0e              POP      {r1-r3,pc}
;;;98     /*********************************************************************
                          ENDP


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

                  GUI_SetDialogStatusPtr PROC
;;;80     */
;;;81     void GUI_SetDialogStatusPtr(WM_HWIN hDialog, WM_DIALOG_STATUS* pDialogStatus) {
000000  b53e              PUSH     {r1-r5,lr}
;;;82       WM_MESSAGE Msg = {0};
000002  2200              MOVS     r2,#0
000004  466c              MOV      r4,sp
000006  4613              MOV      r3,r2
000008  4615              MOV      r5,r2
00000a  c42c              STM      r4!,{r2,r3,r5}
;;;83       Msg.MsgId = WM_HANDLE_DIALOG_STATUS;
00000c  222a              MOVS     r2,#0x2a
;;;84       Msg.Data.p = pDialogStatus;
;;;85       WM_SendMessage(hDialog, &Msg);
00000e  9102              STR      r1,[sp,#8]
000010  9200              STR      r2,[sp,#0]
000012  4669              MOV      r1,sp
000014  f7fffffe          BL       WM_SendMessage
;;;86     }
000018  bd3e              POP      {r1-r5,pc}
;;;87     
                          ENDP


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

                  _BkColor
                          DCD      0x00c0c0c0

⌨️ 快捷键说明

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