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

📄 framewin_buttonclose.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\framewin_buttonclose.o --depend=.\Obj\framewin_buttonclose.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\FRAMEWIN_ButtonClose.c]
                          THUMB

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

                  FRAMEWIN_AddCloseButton PROC
;;;85     */
;;;86     WM_HWIN FRAMEWIN_AddCloseButton(FRAMEWIN_Handle hObj, int Flags, int Off) {
000000  b510              PUSH     {r4,lr}
;;;87       WM_HWIN hButton;
;;;88       hButton = FRAMEWIN_AddButton(hObj, Flags, Off, GUI_ID_CLOSE);
000002  2305              MOVS     r3,#5
000004  f7fffffe          BL       FRAMEWIN_AddButton
000008  4604              MOV      r4,r0
;;;89       BUTTON_SetSelfDraw(hButton, 0, &_Draw);
00000a  4a05              LDR      r2,|L1.32|
00000c  2100              MOVS     r1,#0
00000e  f7fffffe          BL       BUTTON_SetSelfDraw
;;;90       WM_SetCallback(hButton, _cbClose);
000012  4904              LDR      r1,|L1.36|
000014  4620              MOV      r0,r4
000016  f7fffffe          BL       WM_SetCallback
;;;91       return hButton;
00001a  4620              MOV      r0,r4
;;;92     }
00001c  bd10              POP      {r4,pc}
;;;93     
                          ENDP

00001e  0000              DCW      0x0000
                  |L1.32|
                          DCD      _Draw
                  |L1.36|
                          DCD      _cbClose

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

                  _Draw PROC
;;;59     */
;;;60     static void _Draw(void) {
000000  b57c              PUSH     {r2-r6,lr}
;;;61       GUI_RECT r;
;;;62       int i, Size;
;;;63       WM_GetInsideRect(&r);
000002  4668              MOV      r0,sp
000004  f7fffffe          BL       WM_GetInsideRect
;;;64       WM_ADDORG(r.x0, r.y0);
000008  481e              LDR      r0,|L2.132|
00000a  f8bd1000          LDRH     r1,[sp,#0]
00000e  6c02              LDR      r2,[r0,#0x40]  ; GUI_Context
000010  4411              ADD      r1,r1,r2
000012  b209              SXTH     r1,r1
000014  f8ad1000          STRH     r1,[sp,#0]
000018  f8bd3002          LDRH     r3,[sp,#2]
00001c  6c40              LDR      r0,[r0,#0x44]  ; GUI_Context
00001e  4403              ADD      r3,r3,r0
000020  f8ad3002          STRH     r3,[sp,#2]
;;;65       WM_ADDORG(r.x1, r.y1);
000024  f8bd3004          LDRH     r3,[sp,#4]
000028  441a              ADD      r2,r2,r3
00002a  b212              SXTH     r2,r2
00002c  f8ad2004          STRH     r2,[sp,#4]
000030  f8bd3006          LDRH     r3,[sp,#6]
;;;66       Size = r.x1 - r.x0 - 2;
000034  1a55              SUBS     r5,r2,r1
000036  4418              ADD      r0,r0,r3              ;65
000038  f8ad0006          STRH     r0,[sp,#6]            ;65
00003c  1ead              SUBS     r5,r5,#2
;;;67       WM_ITERATE_START(&r); {
00003e  4668              MOV      r0,sp
000040  f7fffffe          BL       WM__InitIVRSearch
000044  e01a              B        |L2.124|
                  |L2.70|
;;;68         for (i = 2; i < Size; i++) {
000046  2402              MOVS     r4,#2
000048  e014              B        |L2.116|
;;;69           LCD_DrawHLine(r.x0 + i,     r.y0 + i, r.x0 + i + 1);
00004a  bf00              NOP      
                  |L2.76|
00004c  f9bd0000          LDRSH    r0,[sp,#0]
000050  1c61              ADDS     r1,r4,#1
000052  1842              ADDS     r2,r0,r1
000054  f9bd1002          LDRSH    r1,[sp,#2]
000058  4420              ADD      r0,r0,r4
00005a  4421              ADD      r1,r1,r4
00005c  f7fffffe          BL       LCD_DrawHLine
;;;70           LCD_DrawHLine(r.x1 - i - 1, r.y0 + i, r.x1 - i);
000060  f9bd0004          LDRSH    r0,[sp,#4]
000064  1b02              SUBS     r2,r0,r4
000066  f9bd0002          LDRSH    r0,[sp,#2]
00006a  1901              ADDS     r1,r0,r4
00006c  1e50              SUBS     r0,r2,#1
00006e  f7fffffe          BL       LCD_DrawHLine
000072  1c64              ADDS     r4,r4,#1              ;68
                  |L2.116|
000074  42ac              CMP      r4,r5                 ;68
000076  dbe9              BLT      |L2.76|
;;;71         }
;;;72       } WM_ITERATE_END();
000078  f7fffffe          BL       WM__GetNextIVR
                  |L2.124|
00007c  2800              CMP      r0,#0
00007e  d1e2              BNE      |L2.70|
;;;73     }
000080  bd7c              POP      {r2-r6,pc}
;;;74     
                          ENDP

000082  0000              DCW      0x0000
                  |L2.132|
                          DCD      GUI_Context

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

                  _cbClose PROC
;;;47     */
;;;48     static void _cbClose(WM_MESSAGE* pMsg) {
000000  6801              LDR      r1,[r0,#0]
;;;49       if (pMsg->MsgId == WM_NOTIFY_PARENT_REFLECTION) {
000002  2927              CMP      r1,#0x27
000004  d103              BNE      |L3.14|
;;;50         WM_DeleteWindow(pMsg->hWinSrc);
000006  f9b00006          LDRSH    r0,[r0,#6]
00000a  f7ffbffe          B.W      WM_DeleteWindow
                  |L3.14|
;;;51         return;                                       /* We are done ! */
;;;52       }
;;;53       BUTTON_Callback(pMsg);
00000e  f7ffbffe          B.W      BUTTON_Callback
;;;54     }
;;;55     
                          ENDP

⌨️ 快捷键说明

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