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

📄 framewin.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 TXT
📖 第 1 页 / 共 4 页
字号:
                  |L10.274|
000112  60a8              STR      r0,[r5,#8]            ;298
000114  e7b0              B        |L10.120|
                  |L10.278|
000116  2100              MOVS     r1,#0                 ;300
000118  4630              MOV      r0,r6                 ;300
00011a  f7fffffe          BL       FRAMEWIN_SetActive
00011e  e7ab              B        |L10.120|
000120  e000              B        |L10.292|
                  |L10.290|
000122  e027              B        |L10.372|
                  |L10.292|
000124  f8b4005c          LDRH     r0,[r4,#0x5c]         ;307
000128  0700              LSLS     r0,r0,#28             ;307
00012a  d427              BMI      |L10.380|
00012c  68a8              LDR      r0,[r5,#8]            ;311
00012e  6880              LDR      r0,[r0,#8]            ;311
000130  b1f8              CBZ      r0,|L10.370|
000132  7a00              LDRB     r0,[r0,#8]            ;313
000134  b1e8              CBZ      r0,|L10.370|
000136  4630              MOV      r0,r6                 ;314
000138  f7fffffe          BL       WM_SetFocus
00013c  e01e              B        |L10.380|
                  |L10.318|
00013e  68af              LDR      r7,[r5,#8]            ;314
000140  b1bf              CBZ      r7,|L10.370|
000142  f9b70002          LDRSH    r0,[r7,#2]            ;314
000146  4631              MOV      r1,r6                 ;314
000148  f7fffffe          BL       WM__IsAncestorOrSelf
00014c  b120              CBZ      r0,|L10.344|
00014e  2101              MOVS     r1,#1                 ;314
000150  4630              MOV      r0,r6                 ;314
000152  f7fffffe          BL       _SetActive
000156  e011              B        |L10.380|
                  |L10.344|
000158  2100              MOVS     r1,#0                 ;314
00015a  4630              MOV      r0,r6                 ;314
00015c  f7fffffe          BL       _SetActive
000160  f9b70000          LDRSH    r0,[r7,#0]            ;314
000164  4631              MOV      r1,r6                 ;314
000166  f7fffffe          BL       WM__IsAncestor
00016a  b110              CBZ      r0,|L10.370|
00016c  8838              LDRH     r0,[r7,#0]            ;314
00016e  f8a4005e          STRH     r0,[r4,#0x5e]         ;314
                  |L10.370|
000172  e003              B        |L10.380|
                  |L10.372|
000174  f1040050          ADD      r0,r4,#0x50           ;324
000178  f7fffffe          BL       GUI_ALLOC_FreePtr
                  |L10.380|
00017c  4629              MOV      r1,r5                 ;328
00017e  4630              MOV      r0,r6                 ;328
000180  f7fffffe          BL       WIDGET_HandleActive
000184  2800              CMP      r0,#0                 ;328
000186  d087              BEQ      |L10.152|
000188  4628              MOV      r0,r5                 ;331
00018a  f7fffffe          BL       WM_DefaultProc
00018e  e773              B        |L10.120|
;;;333    
                          ENDP

                  |L10.400|
                          DCD      ||.data||

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

                  _Paint PROC
;;;160    */
;;;161    static void _Paint(FRAMEWIN_Obj* pObj) {
000000  e92d4ff0          PUSH     {r4-r11,lr}
000004  b08b              SUB      sp,sp,#0x2c
000006  4604              MOV      r4,r0
;;;162      WM_HWIN hWin = WM_GetActiveWindow();
000008  f7fffffe          BL       WM_GetActiveWindow
00000c  4606              MOV      r6,r0
;;;163      const char* pText = NULL;
00000e  f04f0b00          MOV      r11,#0
;;;164      int xsize = WM_GetWindowSizeX(hWin);
000012  f7fffffe          BL       WM_GetWindowSizeX
000016  4605              MOV      r5,r0
;;;165      int ysize = WM_GetWindowSizeY(hWin);
000018  4630              MOV      r0,r6
00001a  f7fffffe          BL       WM_GetWindowSizeY
00001e  4606              MOV      r6,r0
;;;166      int BorderSize = pObj->Props.BorderSize;
000020  f9b48042          LDRSH    r8,[r4,#0x42]
;;;167      int y0, Index;
;;;168      POSITIONS Pos;
;;;169      GUI_RECT r, rText;
;;;170    
;;;171      /* Perform computations */
;;;172      FRAMEWIN__CalcPositions(pObj, &Pos);
000024  a905              ADD      r1,sp,#0x14
000026  4620              MOV      r0,r4
000028  f7fffffe          BL       FRAMEWIN__CalcPositions
;;;173      Index = (pObj->Flags & FRAMEWIN_SF_ACTIVE) ? 1 : 0;
00002c  f8b4005c          LDRH     r0,[r4,#0x5c]
000030  f3c007c0          UBFX     r7,r0,#3,#1
;;;174    
;;;175      if (pObj->hText) {
000034  f9b40050          LDRSH    r0,[r4,#0x50]
000038  b110              CBZ      r0,|L11.64|
;;;176        pText = (const char*) GUI_ALLOC_h2p(pObj->hText);
00003a  f7fffffe          BL       GUI_ALLOC_h2p
00003e  4683              MOV      r11,r0
                  |L11.64|
;;;177      }
;;;178      r.x0 = Pos.rClient.x0;
000040  f8bd0018          LDRH     r0,[sp,#0x18]
000044  f8ad000c          STRH     r0,[sp,#0xc]
;;;179      r.x1 = Pos.rClient.x1;
000048  f8bd001c          LDRH     r0,[sp,#0x1c]
00004c  f8ad0010          STRH     r0,[sp,#0x10]
;;;180      r.y0 = Pos.rTitleText.y0;
000050  f8bd0022          LDRH     r0,[sp,#0x22]
000054  f8ad000e          STRH     r0,[sp,#0xe]
;;;181      r.y1 = Pos.rTitleText.y1;
;;;182      Pos.rTitleText.y0++;
000058  1c40              ADDS     r0,r0,#1
00005a  f8ad0022          STRH     r0,[sp,#0x22]
;;;183      Pos.rTitleText.x0++;
00005e  f8bd0020          LDRH     r0,[sp,#0x20]
000062  f8bd1026          LDRH     r1,[sp,#0x26]         ;181
000066  1c40              ADDS     r0,r0,#1
000068  f8ad1012          STRH     r1,[sp,#0x12]         ;181
00006c  f8ad0020          STRH     r0,[sp,#0x20]
;;;184      Pos.rTitleText.x1--;
000070  f8bd0024          LDRH     r0,[sp,#0x24]
000074  1e40              SUBS     r0,r0,#1
000076  f8ad0024          STRH     r0,[sp,#0x24]
;;;185      GUI_SetFont(pObj->Props.pFont);
00007a  6aa0              LDR      r0,[r4,#0x28]
00007c  f7fffffe          BL       GUI_SetFont
;;;186      GUI__CalcTextRect(pText, &Pos.rTitleText, &rText, pObj->TextAlign);
000080  f9b4305a          LDRSH    r3,[r4,#0x5a]
000084  a908              ADD      r1,sp,#0x20
000086  aa01              ADD      r2,sp,#4
000088  4658              MOV      r0,r11
00008a  910a              STR      r1,[sp,#0x28]
00008c  f7fffffe          BL       GUI__CalcTextRect
;;;187      y0 = Pos.TitleHeight + BorderSize;
000090  f9bd0014          LDRSH    r0,[sp,#0x14]
000094  eb000a08          ADD      r10,r0,r8
;;;188    
;;;189      /* Perform drawing operations */
;;;190      WM_ITERATE_START(NULL) {
000098  2000              MOVS     r0,#0
00009a  f7fffffe          BL       WM__InitIVRSearch
00009e  2800              CMP      r0,#0
0000a0  d044              BEQ      |L11.300|
;;;191        /* Draw Title */
;;;192        LCD_SetBkColor(pObj->Props.aBarColor[Index]);
;;;193        LCD_SetColor(pObj->Props.aTextColor[Index]);
;;;194        WIDGET__FillStringInRect(pText, &r, &Pos.rTitleText, &rText);
;;;195        /* Draw Frame */
;;;196        LCD_SetColor(FRAMEWIN_FRAMECOLOR_DEFAULT);
;;;197        GUI_FillRect(0, 0, xsize-1, BorderSize-1);
;;;198    	  GUI_FillRect(0, 0, Pos.rClient.x0-1, ysize-1);
;;;199    	  GUI_FillRect(Pos.rClient.x1+1, 0, xsize-1, ysize-1);
;;;200        GUI_FillRect(0, Pos.rClient.y1+1, xsize-1, ysize-1);
;;;201        GUI_FillRect(0, y0, xsize - 1, y0 + pObj->Props.IBorderSize - 1);
0000a2  f1aa0901          SUB      r9,r10,#1
0000a6  eb040787          ADD      r7,r4,r7,LSL #2       ;192
                  |L11.170|
0000aa  6af8              LDR      r0,[r7,#0x2c]         ;192
0000ac  f7fffffe          BL       LCD_SetBkColor
0000b0  6b78              LDR      r0,[r7,#0x34]         ;193
0000b2  f7fffffe          BL       LCD_SetColor
0000b6  ab01              ADD      r3,sp,#4              ;194
0000b8  a903              ADD      r1,sp,#0xc            ;194
0000ba  4658              MOV      r0,r11                ;194
0000bc  9a0a              LDR      r2,[sp,#0x28]         ;194
0000be  f7fffffe          BL       WIDGET__FillStringInRect
0000c2  481c              LDR      r0,|L11.308|
0000c4  f7fffffe          BL       LCD_SetColor
0000c8  2100              MOVS     r1,#0                 ;197
0000ca  f1a80301          SUB      r3,r8,#1              ;197
0000ce  1e6a              SUBS     r2,r5,#1              ;197
0000d0  4608              MOV      r0,r1                 ;197
0000d2  f7fffffe          BL       GUI_FillRect
0000d6  f9bd2018          LDRSH    r2,[sp,#0x18]         ;198
0000da  2100              MOVS     r1,#0                 ;198
0000dc  1e52              SUBS     r2,r2,#1              ;198
0000de  1e73              SUBS     r3,r6,#1              ;198
0000e0  4608              MOV      r0,r1                 ;198
0000e2  f7fffffe          BL       GUI_FillRect
0000e6  f9bd001c          LDRSH    r0,[sp,#0x1c]         ;199
0000ea  1e73              SUBS     r3,r6,#1              ;199
0000ec  1c40              ADDS     r0,r0,#1              ;199
0000ee  1e6a              SUBS     r2,r5,#1              ;199
0000f0  2100              MOVS     r1,#0                 ;199
0000f2  f7fffffe          BL       GUI_FillRect
0000f6  f9bd101e          LDRSH    r1,[sp,#0x1e]         ;200
0000fa  1e73              SUBS     r3,r6,#1              ;200
0000fc  1c49              ADDS     r1,r1,#1              ;200
0000fe  1e6a              SUBS     r2,r5,#1              ;200
000100  2000              MOVS     r0,#0                 ;200
000102  f7fffffe          BL       GUI_FillRect
000106  f9b40044          LDRSH    r0,[r4,#0x44]
00010a  1e6a              SUBS     r2,r5,#1
00010c  eb000309          ADD      r3,r0,r9
000110  4651              MOV      r1,r10
000112  2000              MOVS     r0,#0
000114  f7fffffe          BL       GUI_FillRect
;;;202        /* Draw the 3D effect (if configured) */
;;;203        if (pObj->Props.BorderSize >= 2) {
000118  f9b40042          LDRSH    r0,[r4,#0x42]
00011c  2802              CMP      r0,#2
00011e  db01              BLT      |L11.292|
;;;204          WIDGET_EFFECT_3D_DrawUp();  /* pObj->Widget.pEffect->pfDrawUp(); */
000120  f7fffffe          BL       WIDGET_EFFECT_3D_DrawUp
                  |L11.292|
;;;205        }
;;;206    
;;;207      } WM_ITERATE_END();
000124  f7fffffe          BL       WM__GetNextIVR
000128  2800              CMP      r0,#0
00012a  d1be              BNE      |L11.170|
                  |L11.300|
;;;208    
;;;209    
;;;210    }
00012c  b00b              ADD      sp,sp,#0x2c
00012e  e8bd8ff0          POP      {r4-r11,pc}
;;;211    
                          ENDP

000132  0000              DCW      0x0000
                  |L11.308|
                          DCD      0x00aaaaaa

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

                  _SetActive PROC
;;;123    */
;;;124    static void _SetActive(FRAMEWIN_Handle hObj, int State) {
000000  b570              PUSH     {r4-r6,lr}
000002  4604              MOV      r4,r0
000004  460d              MOV      r5,r1
;;;125      FRAMEWIN_Obj* pObj;
;;;126      pObj = FRAMEWIN_H2P(hObj);
000006  f7fffffe          BL       GUI_ALLOC_h2p
;;;127      if        (State && !(pObj->Flags & FRAMEWIN_SF_ACTIVE)) {
00000a  f8b0105c          LDRH     r1,[r0,#0x5c]
00000e  070a              LSLS     r2,r1,#28
000010  b125              CBZ      r5,|L12.28|
000012  2a00              CMP      r2,#0
000014  db0d              BLT      |L12.50|
;;;128        pObj->Flags |= FRAMEWIN_CF_ACTIVE;
000016  f0410108          ORR      r1,r1,#8
;;;129        FRAMEWIN_Invalidate(hObj);
00001a  e003              B        |L12.36|
                  |L12.28|
;;;130      } else if (!State && (pObj->Flags & FRAMEWIN_SF_ACTIVE)) {
00001c  2a00              CMP      r2,#0
00001e  da08              BGE      |L12.50|
;;;131        pObj->Flags &= ~FRAMEWIN_CF_ACTIVE;
000020  f0210108          BIC      r1,r1,#8
                  |L12.36|
000024  f8a0105c          STRH     r1,[r0,#0x5c]
;;;132        FRAMEWIN_Invalidate(hObj);
000028  4620              MOV      r0,r4
00002a  e8bd4070          POP      {r4-r6,lr}
00002e  f7ffbffe          B.W      WM_InvalidateWindow
                  |L12.50|
;;;133      }
;;;134    }
000032  bd70              POP      {r4-r6,pc}
;;;135    
                          ENDP


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

                  FRAMEWIN__MinVisibility
000000  0005              DCW      0x0005
000002  0000              DCB      0x00,0x00
                  FRAMEWIN__DefaultProps
                          DCD      GUI_Font8_1
                          DCD      0x00404040
                          DCD      0x00ff0000
                          DCD      0x00ffffff
                          DCD      0x00ffffff
                          DCD      0x00c0c0c0
00001c  00000003          DCW      0x0000,0x0003
000020  0001              DCW      0x0001
000022  0000              DCB      0x00,0x00

⌨️ 快捷键说明

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