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

📄 widget.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 TXT
📖 第 1 页 / 共 3 页
字号:

                  WIDGET_SetDefaultEffect PROC
;;;452    */
;;;453    const WIDGET_EFFECT* WIDGET_SetDefaultEffect(const WIDGET_EFFECT* pEffect) {
000000  4902              LDR      r1,|L6.12|
000002  4602              MOV      r2,r0
;;;454      const WIDGET_EFFECT* r;
;;;455      r = _pEffectDefault;
;;;456      _pEffectDefault = pEffect;
000004  6808              LDR      r0,[r1,#0]  ; _pEffectDefault
;;;457      return r;
000006  600a              STR      r2,[r1,#0]  ; _pEffectDefault
;;;458    }
000008  4770              BX       lr
;;;459    
                          ENDP

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

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

                  WIDGET_SetState PROC
;;;200    */
;;;201    void WIDGET_SetState(WM_HWIN hObj, int State) {
000000  b570              PUSH     {r4-r6,lr}
000002  4605              MOV      r5,r0
000004  460c              MOV      r4,r1
;;;202      WIDGET* pWidget;
;;;203      WM_LOCK();
;;;204      pWidget = WIDGET_H2P(hObj);
000006  f7fffffe          BL       GUI_ALLOC_h2p
;;;205      if (State != pWidget->State) {
00000a  8cc1              LDRH     r1,[r0,#0x26]
00000c  42a1              CMP      r1,r4
00000e  d005              BEQ      |L7.28|
;;;206        pWidget->State = State;
000010  84c4              STRH     r4,[r0,#0x26]
;;;207        WM_Invalidate(hObj);
000012  4628              MOV      r0,r5
000014  e8bd4070          POP      {r4-r6,lr}
000018  f7ffbffe          B.W      WM_InvalidateWindow
                  |L7.28|
;;;208      }
;;;209      WM_UNLOCK();
;;;210    }
00001c  bd70              POP      {r4-r6,pc}
;;;211    
                          ENDP


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

                  WIDGET__DrawFocusRect PROC
;;;366    */
;;;367    void WIDGET__DrawFocusRect(WIDGET* pWidget, const GUI_RECT* pRect, int Dist) {
000000  b51c              PUSH     {r2-r4,lr}
000002  460b              MOV      r3,r1
;;;368      GUI_RECT Rect;
;;;369      if (pWidget->State & WIDGET_STATE_VERTICAL) {
000004  8cc1              LDRH     r1,[r0,#0x26]
000006  4614              MOV      r4,r2                 ;367
000008  0709              LSLS     r1,r1,#28
00000a  d504              BPL      |L8.22|
;;;370        WIDGET__RotateRect90(pWidget, &Rect, pRect);
00000c  461a              MOV      r2,r3
00000e  4669              MOV      r1,sp
000010  f7fffffe          BL       WIDGET__RotateRect90
;;;371        pRect = &Rect;
000014  466b              MOV      r3,sp
                  |L8.22|
;;;372      }
;;;373      GUI_DrawFocusRect(pRect, Dist);
000016  4621              MOV      r1,r4
000018  4618              MOV      r0,r3
00001a  f7fffffe          BL       GUI_DrawFocusRect
;;;374    }
00001e  bd1c              POP      {r2-r4,pc}
;;;375    
                          ENDP


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

                  WIDGET__DrawVLine PROC
;;;379    */
;;;380    void WIDGET__DrawVLine(WIDGET* pWidget, int x, int y0, int y1) {
000000  b51f              PUSH     {r0-r4,lr}
000002  4604              MOV      r4,r0
000004  4608              MOV      r0,r1
000006  4611              MOV      r1,r2
000008  461a              MOV      r2,r3
;;;381      if (pWidget->State & WIDGET_STATE_VERTICAL) {
00000a  8ce3              LDRH     r3,[r4,#0x26]
00000c  071b              LSLS     r3,r3,#28
00000e  d515              BPL      |L9.60|
;;;382        GUI_RECT r0, r1;
;;;383        r0.x0 = x;
000010  f8ad0008          STRH     r0,[sp,#8]
;;;384        r0.x1 = x;
000014  f8ad000c          STRH     r0,[sp,#0xc]
;;;385        r0.y0 = y0;
000018  f8ad100a          STRH     r1,[sp,#0xa]
;;;386        r0.y1 = y1;
00001c  f8ad200e          STRH     r2,[sp,#0xe]
;;;387        WIDGET__RotateRect90(pWidget, &r1, &r0);
000020  aa02              ADD      r2,sp,#8
000022  4669              MOV      r1,sp
000024  4620              MOV      r0,r4
000026  f7fffffe          BL       WIDGET__RotateRect90
;;;388        GUI_DrawHLine(r1.y0, r1.x0, r1.x1);
00002a  f9bd2004          LDRSH    r2,[sp,#4]
00002e  f9bd1000          LDRSH    r1,[sp,#0]
000032  f9bd0002          LDRSH    r0,[sp,#2]
000036  f7fffffe          BL       GUI_DrawHLine
;;;389      } else {
;;;390        GUI_DrawVLine(x, y0, y1);
;;;391      }
;;;392    }
00003a  bd1f              POP      {r0-r4,pc}
                  |L9.60|
00003c  b004              ADD      sp,sp,#0x10           ;390
00003e  e8bd4010          POP      {r4,lr}               ;390
000042  f7ffbffe          B.W      GUI_DrawVLine
;;;393    
                          ENDP


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

                  WIDGET__EFFECT_DrawDown PROC
;;;429    */
;;;430    void WIDGET__EFFECT_DrawDown(WIDGET* pWidget) {
000000  2100              MOVS     r1,#0
;;;431      WIDGET__EFFECT_DrawDownRect(pWidget, NULL);
000002  f7ffbffe          B.W      WIDGET__EFFECT_DrawDownRect
;;;432    }
;;;433    
                          ENDP


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

                  WIDGET__EFFECT_DrawDownRect PROC
;;;410    */
;;;411    void WIDGET__EFFECT_DrawDownRect(WIDGET* pWidget, GUI_RECT* pRect) {
000000  b57c              PUSH     {r2-r6,lr}
000002  4605              MOV      r5,r0
000004  000c              MOVS     r4,r1
;;;412      GUI_RECT Rect;
;;;413      if (pRect == NULL) {
000006  d103              BNE      |L11.16|
;;;414        WM_GetClientRect(&Rect);
000008  4668              MOV      r0,sp
00000a  f7fffffe          BL       WM_GetClientRect
;;;415        pRect = &Rect;
00000e  466c              MOV      r4,sp
                  |L11.16|
;;;416      }
;;;417      if (pWidget->State & WIDGET_STATE_VERTICAL) {
000010  8ce8              LDRH     r0,[r5,#0x26]
000012  0700              LSLS     r0,r0,#28
000014  d505              BPL      |L11.34|
;;;418        WIDGET__RotateRect90(pWidget, &Rect, pRect);
000016  4622              MOV      r2,r4
000018  4669              MOV      r1,sp
00001a  4628              MOV      r0,r5
00001c  f7fffffe          BL       WIDGET__RotateRect90
;;;419        pRect = &Rect;
000020  466c              MOV      r4,sp
                  |L11.34|
;;;420      }
;;;421      if (_EffectRequiresRedraw(pWidget, pRect)) {
000022  4621              MOV      r1,r4
000024  4628              MOV      r0,r5
000026  f7fffffe          BL       _EffectRequiresRedraw
00002a  2800              CMP      r0,#0
00002c  d003              BEQ      |L11.54|
;;;422        pWidget->pEffect->pfDrawDownRect(pRect);
00002e  6a28              LDR      r0,[r5,#0x20]
000030  68c1              LDR      r1,[r0,#0xc]
000032  4620              MOV      r0,r4
000034  4788              BLX      r1
                  |L11.54|
;;;423      }
;;;424    }
000036  bd7c              POP      {r2-r6,pc}
;;;425    
                          ENDP


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

                  WIDGET__EFFECT_DrawUpRect PROC
;;;437    */
;;;438    void WIDGET__EFFECT_DrawUpRect(WIDGET* pWidget, GUI_RECT* pRect) {
000000  b57c              PUSH     {r2-r6,lr}
000002  4605              MOV      r5,r0
;;;439      GUI_RECT Rect;
;;;440      if (pWidget->State & WIDGET_STATE_VERTICAL) {
000004  8cc0              LDRH     r0,[r0,#0x26]
000006  460c              MOV      r4,r1                 ;438
000008  0700              LSLS     r0,r0,#28
00000a  d505              BPL      |L12.24|
;;;441        WIDGET__RotateRect90(pWidget, &Rect, pRect);
00000c  4622              MOV      r2,r4
00000e  4669              MOV      r1,sp
000010  4628              MOV      r0,r5
000012  f7fffffe          BL       WIDGET__RotateRect90
;;;442        pRect = &Rect;
000016  466c              MOV      r4,sp
                  |L12.24|
;;;443      }
;;;444      if (_EffectRequiresRedraw(pWidget, pRect)) {
000018  4621              MOV      r1,r4
00001a  4628              MOV      r0,r5
00001c  f7fffffe          BL       _EffectRequiresRedraw
000020  2800              CMP      r0,#0
000022  d003              BEQ      |L12.44|
;;;445        pWidget->pEffect->pfDrawUpRect(pRect);
000024  6a28              LDR      r0,[r5,#0x20]
000026  6881              LDR      r1,[r0,#8]
000028  4620              MOV      r0,r4
00002a  4788              BLX      r1
                  |L12.44|
;;;446      }
;;;447    }
00002c  bd7c              POP      {r2-r6,pc}
;;;448    
                          ENDP


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

                  WIDGET__FillRectEx PROC
;;;397    */
;;;398    void WIDGET__FillRectEx(WIDGET* pWidget, const GUI_RECT* pRect) {
000000  b51c              PUSH     {r2-r4,lr}
000002  4603              MOV      r3,r0
000004  4608              MOV      r0,r1
;;;399      if (pWidget->State & WIDGET_STATE_VERTICAL) {
000006  8cd9              LDRH     r1,[r3,#0x26]
000008  0709              LSLS     r1,r1,#28
00000a  d505              BPL      |L13.24|
;;;400        GUI_RECT r;
;;;401        WIDGET__RotateRect90(pWidget, &r, pRect);
00000c  4602              MOV      r2,r0
00000e  4669              MOV      r1,sp
000010  4618              MOV      r0,r3
000012  f7fffffe          BL       WIDGET__RotateRect90
;;;402        pRect = &r;
000016  4668              MOV      r0,sp
                  |L13.24|
;;;403      }
;;;404      GUI_FillRectEx(pRect);
000018  e8bd401c          POP      {r2-r4,lr}
00001c  f7ffbffe          B.W      GUI_FillRectEx
;;;405    }
;;;406    
                          ENDP


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

                  WIDGET__GetBkColor PROC
;;;136    */
;;;137    GUI_COLOR WIDGET__GetBkColor(WM_HWIN hObj) {
000000  b510              PUSH     {r4,lr}
;;;138      GUI_COLOR BkColor = WM_GetBkColor(WM_GetParent(hObj));
000002  f7fffffe          BL       WM_GetParent
000006  f7fffffe          BL       WM_GetBkColor
;;;139      if (BkColor == GUI_INVALID_COLOR) {
00000a  f06f4170          MVN      r1,#0xf0000000
00000e  4288              CMP      r0,r1
000010  d103              BNE      |L14.26|
;;;140        BkColor = DIALOG_GetBkColor();
000012  e8bd4010          POP      {r4,lr}
000016  f7ffbffe          B.W      DIALOG_GetBkColor
                  |L14.26|
;;;141      }
;;;142      return BkColor;
;;;143    }
00001a  bd10              POP      {r4,pc}
;;;144    
                          ENDP


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

                  WIDGET__GetClientRect PROC
;;;119    */
;;;120    void WIDGET__GetClientRect(WIDGET* pWidget, GUI_RECT* pRect) {
000000  b51c              PUSH     {r2-r4,lr}
;;;121      if (pWidget->State & WIDGET_STATE_VERTICAL) {
000002  8cc0              LDRH     r0,[r0,#0x26]

⌨️ 快捷键说明

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