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

📄 framewin__updatebuttons.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__updatebuttons.o --depend=.\Obj\framewin__updatebuttons.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__UpdateButtons.c]
                          THUMB

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

                  FRAMEWIN__UpdateButtons PROC
;;;40     */
;;;41     void FRAMEWIN__UpdateButtons(FRAMEWIN_Obj* pObj, int OldHeight) {
000000  e92d4ff3          PUSH     {r0,r1,r4-r11,lr}
000004  b083              SUB      sp,sp,#0xc
000006  4605              MOV      r5,r0
;;;42       int TitleHeight = FRAMEWIN__CalcTitleHeight(pObj);
000008  f7fffffe          BL       FRAMEWIN__CalcTitleHeight
;;;43       int Diff = TitleHeight - OldHeight;
00000c  9904              LDR      r1,[sp,#0x10]
00000e  1a40              SUBS     r0,r0,r1
;;;44       if (Diff) {
000010  9002              STR      r0,[sp,#8]
000012  d05c              BEQ      |L1.206|
;;;45         WM_HWIN hLeft;
;;;46         WM_HWIN hRight;
;;;47         WM_HWIN hChild;
;;;48         WM_Obj* pChild;
;;;49         GUI_RECT r;
;;;50         int xLeft, xRight, n;
;;;51         n = 0;
000014  f04f0900          MOV      r9,#0
                  |L1.24|
;;;52         do {
;;;53           hLeft  = hRight = 0;
000018  2600              MOVS     r6,#0
;;;54           xLeft  = GUI_XMAX;
00001a  f6407aff          MOV      r10,#0xfff
00001e  4637              MOV      r7,r6                 ;53
;;;55           xRight = GUI_XMIN;
000020  f1ca0b00          RSB      r11,r10,#0
;;;56           for (hChild = pObj->Widget.Win.hFirstChild; hChild; hChild = pChild->hNext) {
000024  f9b54018          LDRSH    r4,[r5,#0x18]
000028  e030              B        |L1.140|
                  |L1.42|
;;;57             pChild = WM_H2P(hChild);
00002a  4620              MOV      r0,r4
00002c  f7fffffe          BL       GUI_ALLOC_h2p
000030  4680              MOV      r8,r0
;;;58             r = pChild->Rect;
000032  c803              LDM      r0,{r0,r1}
;;;59             GUI_MoveRect(&r, -pObj->Widget.Win.Rect.x0, -pObj->Widget.Win.Rect.y0);
000034  e9cd0100          STRD     r0,r1,[sp,#0]
000038  f9b50002          LDRSH    r0,[r5,#2]
00003c  4242              RSBS     r2,r0,#0
00003e  f9b50000          LDRSH    r0,[r5,#0]
000042  4241              RSBS     r1,r0,#0
000044  4668              MOV      r0,sp
000046  f7fffffe          BL       GUI_MoveRect
;;;60             if ((r.y0 == pObj->Props.BorderSize) && ((r.y1 - r.y0 + 1) == OldHeight)) {
00004a  f9bd0002          LDRSH    r0,[sp,#2]
00004e  f9b51042          LDRSH    r1,[r5,#0x42]
000052  4288              CMP      r0,r1
000054  d118              BNE      |L1.136|
000056  f9bd1006          LDRSH    r1,[sp,#6]
00005a  1a08              SUBS     r0,r1,r0
00005c  9904              LDR      r1,[sp,#0x10]
00005e  1c40              ADDS     r0,r0,#1
000060  4288              CMP      r0,r1
000062  d111              BNE      |L1.136|
;;;61               if (pChild->Status & WM_SF_ANCHOR_RIGHT) {
000064  f8b8001c          LDRH     r0,[r8,#0x1c]
000068  0600              LSLS     r0,r0,#24
00006a  d507              BPL      |L1.124|
;;;62                 if (r.x1 > xRight) {
00006c  f9bd0004          LDRSH    r0,[sp,#4]
000070  4558              CMP      r0,r11
000072  dd09              BLE      |L1.136|
;;;63                   hRight = hChild;
000074  4627              MOV      r7,r4
;;;64                   xRight = r.x0;
000076  f9bdb000          LDRSH    r11,[sp,#0]
00007a  e005              B        |L1.136|
                  |L1.124|
;;;65                 }
;;;66               } else {
;;;67                 if (r.x0 < xLeft) {
00007c  f9bd0000          LDRSH    r0,[sp,#0]
000080  4550              CMP      r0,r10
000082  da01              BGE      |L1.136|
;;;68                   hLeft = hChild;
000084  4626              MOV      r6,r4
;;;69                   xLeft = r.x0;
000086  4682              MOV      r10,r0
                  |L1.136|
000088  f9b8401a          LDRSH    r4,[r8,#0x1a]         ;56
                  |L1.140|
00008c  2c00              CMP      r4,#0                 ;56
00008e  d1cc              BNE      |L1.42|
;;;70                 }
;;;71               }
;;;72             }
;;;73           }
;;;74           if (hLeft) {
000090  b15e              CBZ      r6,|L1.170|
;;;75             WM_ResizeWindow(hLeft, Diff, Diff);
000092  9a02              LDR      r2,[sp,#8]
000094  4630              MOV      r0,r6
000096  4611              MOV      r1,r2
000098  f7fffffe          BL       WM_ResizeWindow
;;;76             WM_MoveWindow(hLeft, n * Diff, 0);
00009c  9802              LDR      r0,[sp,#8]
00009e  2200              MOVS     r2,#0
0000a0  fb09f100          MUL      r1,r9,r0
0000a4  4630              MOV      r0,r6
0000a6  f7fffffe          BL       WM_MoveWindow
                  |L1.170|
;;;77           }
;;;78           if (hRight) {
0000aa  b167              CBZ      r7,|L1.198|
;;;79             WM_ResizeWindow(hRight, Diff, Diff);
0000ac  9a02              LDR      r2,[sp,#8]
0000ae  4638              MOV      r0,r7
0000b0  4611              MOV      r1,r2
0000b2  f7fffffe          BL       WM_ResizeWindow
;;;80             WM_MoveWindow(hRight, -(n * Diff), 0);
0000b6  9902              LDR      r1,[sp,#8]
0000b8  2200              MOVS     r2,#0
0000ba  fb09f001          MUL      r0,r9,r1
0000be  4241              RSBS     r1,r0,#0
0000c0  4638              MOV      r0,r7
0000c2  f7fffffe          BL       WM_MoveWindow
                  |L1.198|
;;;81           }
;;;82           n++;
0000c6  f1090901          ADD      r9,r9,#1
;;;83         } while (hLeft || hRight);
0000ca  433e              ORRS     r6,r6,r7
0000cc  d1a4              BNE      |L1.24|
                  |L1.206|
;;;84       }
;;;85     }
0000ce  b005              ADD      sp,sp,#0x14
0000d0  e8bd8ff0          POP      {r4-r11,pc}
;;;86     
                          ENDP

⌨️ 快捷键说明

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