📄 framewin_setbordersize.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_setbordersize.o --depend=.\Obj\framewin_setbordersize.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_SetBorderSize.c]
THUMB
AREA ||i.FRAMEWIN_SetBorderSize||, CODE, READONLY, ALIGN=1
FRAMEWIN_SetBorderSize PROC
;;;35 */
;;;36 void FRAMEWIN_SetBorderSize(FRAMEWIN_Handle hObj, unsigned Size) {
000000 e92d47fc PUSH {r2-r10,lr}
000004 ea5f0a00 MOVS r10,r0
000008 4689 MOV r9,r1
;;;37 GUI_LOCK();
;;;38 if (hObj) {
00000a d040 BEQ |L1.142|
;;;39 GUI_RECT r;
;;;40 WM_Obj * pChild;
;;;41 int Diff, OldSize, OldHeight;
;;;42 WM_HWIN hChild;
;;;43 FRAMEWIN_Obj* pObj = FRAMEWIN_H2P(hObj);
00000c 4650 MOV r0,r10
00000e f7fffffe BL GUI_ALLOC_h2p
000012 4604 MOV r4,r0
;;;44 OldHeight = FRAMEWIN__CalcTitleHeight(pObj);
000014 f7fffffe BL FRAMEWIN__CalcTitleHeight
000018 4680 MOV r8,r0
;;;45 OldSize = pObj->Props.BorderSize;
00001a f9b40042 LDRSH r0,[r4,#0x42]
;;;46 Diff = Size - OldSize;
;;;47 for (hChild = pObj->Widget.Win.hFirstChild; hChild; hChild = pChild->hNext) {
00001e f9b46018 LDRSH r6,[r4,#0x18]
000022 eba90700 SUB r7,r9,r0 ;46
000026 e028 B |L1.122|
|L1.40|
;;;48 pChild = WM_H2P(hChild);
000028 4630 MOV r0,r6
00002a f7fffffe BL GUI_ALLOC_h2p
00002e 4605 MOV r5,r0
;;;49 r = pChild->Rect;
000030 6869 LDR r1,[r5,#4]
000032 6800 LDR r0,[r0,#0]
;;;50 GUI_MoveRect(&r, -pObj->Widget.Win.Rect.x0, -pObj->Widget.Win.Rect.y0);
000034 e9cd0100 STRD r0,r1,[sp,#0]
000038 f9b40002 LDRSH r0,[r4,#2]
00003c 4242 RSBS r2,r0,#0
00003e f9b40000 LDRSH r0,[r4,#0]
000042 4241 RSBS r1,r0,#0
000044 4668 MOV r0,sp
000046 f7fffffe BL GUI_MoveRect
;;;51 if ((r.y0 == pObj->Props.BorderSize) && ((r.y1 - r.y0 + 1) == OldHeight)) {
00004a f9bd0002 LDRSH r0,[sp,#2]
00004e f9b41042 LDRSH r1,[r4,#0x42]
000052 4288 CMP r0,r1
000054 d10f BNE |L1.118|
000056 f9bd1006 LDRSH r1,[sp,#6]
00005a 1a08 SUBS r0,r1,r0
00005c 1c40 ADDS r0,r0,#1
00005e 4540 CMP r0,r8
000060 d109 BNE |L1.118|
;;;52 if (pChild->Status & WM_SF_ANCHOR_RIGHT) {
000062 8ba8 LDRH r0,[r5,#0x1c]
;;;53 WM_MoveWindow(hChild, -Diff, Diff);
000064 463a MOV r2,r7
000066 0600 LSLS r0,r0,#24 ;52
000068 d501 BPL |L1.110|
00006a 4251 RSBS r1,r2,#0
00006c e000 B |L1.112|
|L1.110|
;;;54 } else {
;;;55 WM_MoveWindow(hChild, Diff, Diff);
00006e 4639 MOV r1,r7
|L1.112|
000070 4630 MOV r0,r6 ;53
000072 f7fffffe BL WM_MoveWindow
|L1.118|
000076 f9b5601a LDRSH r6,[r5,#0x1a] ;47
|L1.122|
00007a 2e00 CMP r6,#0 ;47
00007c d1d4 BNE |L1.40|
;;;56 }
;;;57 }
;;;58 }
;;;59 pObj->Props.BorderSize = Size;
00007e f8a49042 STRH r9,[r4,#0x42]
;;;60 FRAMEWIN__UpdatePositions(pObj);
000082 4620 MOV r0,r4
000084 f7fffffe BL FRAMEWIN__UpdatePositions
;;;61 FRAMEWIN_Invalidate(hObj);
000088 4650 MOV r0,r10
00008a f7fffffe BL WM_InvalidateWindow
|L1.142|
;;;62 }
;;;63 GUI_UNLOCK();
;;;64 }
00008e e8bd87fc POP {r2-r10,pc}
;;;65
ENDP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -