📄 gui_settextstyle.txt
字号:
; generated by ARM C/C++ Compiler with , RVCT4.0 [Build 524] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\gui_settextstyle.o --depend=.\Obj\gui_settextstyle.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\Core\GUI_SetTextStyle.c]
THUMB
AREA ||i.GUI_SetTextStyle||, CODE, READONLY, ALIGN=2
GUI_SetTextStyle PROC
;;;70 */
;;;71 char GUI_SetTextStyle(char Style) {
000000 b510 PUSH {r4,lr}
;;;72 char OldStyle;
;;;73 GUI_LOCK();
;;;74 OldStyle = GUI_Context.TextStyle;
000002 4904 LDR r1,|L1.20|
000004 4602 MOV r2,r0 ;71
;;;75 GUI_pfDispCharStyle = GUI__cbDrawTextStyle; /* Init function pointer (function in this module) */
000006 4c05 LDR r4,|L1.28|
000008 7b88 LDRB r0,[r1,#0xe] ;74 ; GUI_Context
00000a 4b03 LDR r3,|L1.24|
;;;76 GUI_Context.TextStyle = Style;
00000c 6023 STR r3,[r4,#0] ; GUI_pfDispCharStyle
00000e 738a STRB r2,[r1,#0xe]
;;;77 GUI_UNLOCK();
;;;78 return OldStyle;
;;;79 }
000010 bd10 POP {r4,pc}
;;;80
ENDP
000012 0000 DCW 0x0000
|L1.20|
DCD GUI_Context
|L1.24|
DCD GUI__cbDrawTextStyle
|L1.28|
DCD GUI_pfDispCharStyle
AREA ||i.GUI__cbDrawTextStyle||, CODE, READONLY, ALIGN=2
GUI__cbDrawTextStyle PROC
;;;33 */
;;;34 static void GUI__cbDrawTextStyle(U16 Char) {
000000 b570 PUSH {r4-r6,lr}
;;;35 int x0, x1;
;;;36 x1 = GUI_Context.DispPosX - 1;
000002 4c1e LDR r4,|L2.124|
;;;37 x0 = x1 - GUI_Context.pAFont->pfGetCharDistX(Char) + 1;
000004 69a1 LDR r1,[r4,#0x18] ; GUI_Context
000006 f9b45022 LDRSH r5,[r4,#0x22] ;36 ; GUI_Context
00000a 6849 LDR r1,[r1,#4]
00000c 1e6d SUBS r5,r5,#1 ;36
00000e 4788 BLX r1
000010 1a2e SUBS r6,r5,r0
;;;38 /* Handle Underline */
;;;39 if (GUI_Context.TextStyle & GUI_TS_UNDERLINE) {
000012 7ba0 LDRB r0,[r4,#0xe] ; GUI_Context
000014 1c76 ADDS r6,r6,#1 ;37
000016 07c0 LSLS r0,r0,#31
000018 d00c BEQ |L2.52|
;;;40 int yOff = GUI_Context.pAFont->Baseline;
;;;41 if (yOff >= GUI_Context.pAFont->YSize) {
00001a 69a0 LDR r0,[r4,#0x18] ; GUI_Context
00001c 7d01 LDRB r1,[r0,#0x14]
00001e 7f00 LDRB r0,[r0,#0x1c] ;40
000020 4281 CMP r1,r0
000022 dc00 BGT |L2.38|
;;;42 yOff = GUI_Context.pAFont->YSize - 1;
000024 1e48 SUBS r0,r1,#1
|L2.38|
;;;43 }
;;;44 LCD_DrawHLine(x0, GUI_Context.DispPosY + yOff, x1);
000026 f9b41024 LDRSH r1,[r4,#0x24] ; GUI_Context
00002a 462a MOV r2,r5
00002c 4401 ADD r1,r1,r0
00002e 4630 MOV r0,r6
000030 f7fffffe BL LCD_DrawHLine
|L2.52|
;;;45 }
;;;46 /* Handle strike thru */
;;;47 if (GUI_Context.TextStyle & GUI_TS_STRIKETHRU) {
000034 7ba0 LDRB r0,[r4,#0xe] ; GUI_Context
000036 0780 LSLS r0,r0,#30
000038 d50c BPL |L2.84|
;;;48 int yOff = GUI_Context.pAFont->Baseline - ((GUI_Context.pAFont->CHeight + 1) / 2);
00003a 69a0 LDR r0,[r4,#0x18] ; GUI_Context
;;;49 LCD_DrawHLine(x0, GUI_Context.DispPosY + yOff, x1);
00003c 462a MOV r2,r5
00003e 7f01 LDRB r1,[r0,#0x1c] ;48
000040 7f80 LDRB r0,[r0,#0x1e] ;48
000042 1c40 ADDS r0,r0,#1 ;48
000044 eba10050 SUB r0,r1,r0,LSR #1 ;48
000048 f9b41024 LDRSH r1,[r4,#0x24] ; GUI_Context
00004c 4401 ADD r1,r1,r0
00004e 4630 MOV r0,r6
000050 f7fffffe BL LCD_DrawHLine
|L2.84|
;;;50 }
;;;51 /* Handle over line */
;;;52 if (GUI_Context.TextStyle & GUI_TS_OVERLINE) {
000054 7ba0 LDRB r0,[r4,#0xe] ; GUI_Context
000056 0740 LSLS r0,r0,#29
000058 d50f BPL |L2.122|
;;;53 int yOff = GUI_Context.pAFont->Baseline - GUI_Context.pAFont->CHeight - 1;
00005a 69a0 LDR r0,[r4,#0x18] ; GUI_Context
00005c 7f81 LDRB r1,[r0,#0x1e]
00005e 7f00 LDRB r0,[r0,#0x1c]
000060 1a40 SUBS r0,r0,r1
000062 1e40 SUBS r0,r0,#1
;;;54 if (yOff < 0) {
000064 d500 BPL |L2.104|
;;;55 yOff = 0;
000066 2000 MOVS r0,#0
|L2.104|
;;;56 }
;;;57 LCD_DrawHLine(x0, GUI_Context.DispPosY + yOff, x1);
000068 f9b41024 LDRSH r1,[r4,#0x24] ; GUI_Context
00006c 462a MOV r2,r5
00006e 4401 ADD r1,r1,r0
000070 4630 MOV r0,r6
000072 e8bd4070 POP {r4-r6,lr}
000076 f7ffbffe B.W LCD_DrawHLine
|L2.122|
;;;58 }
;;;59 }
00007a bd70 POP {r4-r6,pc}
;;;60
ENDP
|L2.124|
DCD GUI_Context
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -