📄 text.txt
字号:
; generated by ARM C/C++ Compiler with , RVCT4.0 [Build 524] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\text.o --depend=.\Obj\text.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\TEXT.c]
THUMB
AREA ||i.TEXT_CreateEx||, CODE, READONLY, ALIGN=2
TEXT_CreateEx PROC
;;;149 */
;;;150 TEXT_Handle TEXT_CreateEx(int x0, int y0, int xsize, int ysize, WM_HWIN hParent,
000000 e92d47ff PUSH {r0-r10,lr}
;;;151 int WinFlags, int ExFlags, int Id, const char* pText)
;;;152 {
000004 4604 MOV r4,r0
000006 460d MOV r5,r1
;;;153 TEXT_Handle hObj;
;;;154 /* Create the window */
;;;155 #if TEXT_SUPPORT_TRANSPARENCY
;;;156 WinFlags |= WM_CF_HASTRANS;
000008 a80c ADD r0,sp,#0x30
00000a e8900603 LDM r0,{r0,r1,r9,r10}
00000e 4616 MOV r6,r2 ;152
000010 461f MOV r7,r3 ;152
000012 b289 UXTH r1,r1
;;;157 #endif
;;;158 hObj = WM_CreateWindowAsChild(x0, y0, xsize, ysize, hParent, WinFlags, _TEXT_Callback,
000014 231c MOVS r3,#0x1c
000016 4a1c LDR r2,|L1.136|
000018 f0410101 ORR r1,r1,#1
00001c f8dd8040 LDR r8,[sp,#0x40]
000020 e88d000f STM sp,{r0-r3}
000024 463b MOV r3,r7
000026 4632 MOV r2,r6
000028 4629 MOV r1,r5
00002a 4620 MOV r0,r4
00002c f7fffffe BL WM_CreateWindowAsChild
000030 0006 MOVS r6,r0
;;;159 sizeof(TEXT_Obj) - sizeof(WM_Obj));
;;;160 if (hObj) {
000032 d025 BEQ |L1.128|
;;;161 TEXT_Obj* pObj;
;;;162 WM_HMEM hMem = 0;
000034 2500 MOVS r5,#0
;;;163 WM_LOCK();
;;;164 pObj = TEXT_H2P(hObj);
000036 4630 MOV r0,r6
000038 f7fffffe BL GUI_ALLOC_h2p
00003c 4604 MOV r4,r0
;;;165 /* init widget specific variables */
;;;166 WIDGET__Init(&pObj->Widget, Id, 0);
00003e 2200 MOVS r2,#0
000040 4651 MOV r1,r10
000042 f7fffffe BL WIDGET__Init
;;;167 /* init member variables */
;;;168 TEXT_INIT_ID(pObj);
;;;169 if (pText) {
000046 f1b80f00 CMP r8,#0
00004a d00e BEQ |L1.106|
;;;170 hMem = GUI_ALLOC_AllocZero(strlen(pText) + 1);
00004c 4640 MOV r0,r8
00004e f7fffffe BL strlen
000052 1c40 ADDS r0,r0,#1
000054 b200 SXTH r0,r0
000056 f7fffffe BL GUI_ALLOC_AllocZero
00005a 0005 MOVS r5,r0
;;;171 if (hMem) {
00005c d005 BEQ |L1.106|
;;;172 strcpy((char*) GUI_ALLOC_h2p(hMem), pText);
00005e 4628 MOV r0,r5
000060 f7fffffe BL GUI_ALLOC_h2p
000064 4641 MOV r1,r8
000066 f7fffffe BL strcpy
|L1.106|
;;;173 }
;;;174 }
;;;175 pObj->hpText = hMem;
00006a 8525 STRH r5,[r4,#0x28]
;;;176 pObj->Align = ExFlags;
;;;177 pObj->pFont = _pDefaultFont;
00006c 4807 LDR r0,|L1.140|
00006e f8a49030 STRH r9,[r4,#0x30] ;176
;;;178 pObj->BkColor = GUI_INVALID_COLOR;
000072 f06f4270 MVN r2,#0xf0000000
000076 6801 LDR r1,[r0,#0] ;177 ; _pDefaultFont
;;;179 pObj->TextColor = _DefaultTextColor;
000078 63a2 STR r2,[r4,#0x38]
00007a 62e1 STR r1,[r4,#0x2c]
00007c 6840 LDR r0,[r0,#4] ; _DefaultTextColor
00007e 6360 STR r0,[r4,#0x34]
|L1.128|
;;;180 WM_UNLOCK();
;;;181 } else {
;;;182 GUI_DEBUG_ERROROUT_IF(hObj==0, "TEXT_Create failed")
;;;183 }
;;;184 return hObj;
000080 4630 MOV r0,r6
;;;185 }
000082 b004 ADD sp,sp,#0x10
000084 e8bd87f0 POP {r4-r10,pc}
;;;186
ENDP
|L1.136|
DCD _TEXT_Callback
|L1.140|
DCD ||.data||
AREA ||i.TEXT_GetDefaultFont||, CODE, READONLY, ALIGN=2
TEXT_GetDefaultFont PROC
;;;212 */
;;;213 const GUI_FONT GUI_UNI_PTR * TEXT_GetDefaultFont(void) {
000000 4801 LDR r0,|L2.8|
;;;214 return _pDefaultFont;
000002 6800 LDR r0,[r0,#0] ; _pDefaultFont
;;;215 }
000004 4770 BX lr
;;;216
ENDP
000006 0000 DCW 0x0000
|L2.8|
DCD ||.data||
AREA ||i.TEXT_SetDefaultFont||, CODE, READONLY, ALIGN=2
TEXT_SetDefaultFont PROC
;;;196 */
;;;197 void TEXT_SetDefaultFont(const GUI_FONT GUI_UNI_PTR * pFont) {
000000 4901 LDR r1,|L3.8|
;;;198 _pDefaultFont = pFont;
;;;199 }
000002 6008 STR r0,[r1,#0] ; _pDefaultFont
000004 4770 BX lr
;;;200
ENDP
000006 0000 DCW 0x0000
|L3.8|
DCD ||.data||
AREA ||i.TEXT_SetDefaultTextColor||, CODE, READONLY, ALIGN=2
TEXT_SetDefaultTextColor PROC
;;;204 */
;;;205 void TEXT_SetDefaultTextColor(GUI_COLOR Color) {
000000 4901 LDR r1,|L4.8|
;;;206 _DefaultTextColor = Color;
;;;207 }
000002 6048 STR r0,[r1,#4] ; _DefaultTextColor
000004 4770 BX lr
;;;208
ENDP
000006 0000 DCW 0x0000
|L4.8|
DCD ||.data||
AREA ||i._TEXT_Callback||, CODE, READONLY, ALIGN=1
_TEXT_Callback PROC
;;;115 */
;;;116 static void _TEXT_Callback (WM_MESSAGE*pMsg) {
000000 b57c PUSH {r2-r6,lr}
;;;117 TEXT_Handle hObj = pMsg->hWin;
000002 f9b05004 LDRSH r5,[r0,#4]
000006 4606 MOV r6,r0 ;116
;;;118 TEXT_Obj* pObj = TEXT_H2P(hObj);
000008 4628 MOV r0,r5
00000a f7fffffe BL GUI_ALLOC_h2p
00000e 4604 MOV r4,r0
;;;119 /* Let widget handle the standard messages */
;;;120 if (WIDGET_HandleActive(hObj, pMsg) == 0) {
000010 4631 MOV r1,r6
000012 4628 MOV r0,r5
000014 f7fffffe BL WIDGET_HandleActive
000018 2800 CMP r0,#0
00001a d026 BEQ |L5.106|
;;;121 return;
;;;122 }
;;;123 switch (pMsg->MsgId) {
00001c 6830 LDR r0,[r6,#0]
00001e 280b CMP r0,#0xb
000020 d024 BEQ |L5.108|
000022 280f CMP r0,#0xf
000024 d126 BNE |L5.116|
000026 6b60 LDR r0,[r4,#0x34]
000028 f7fffffe BL LCD_SetColor
00002c 6ae0 LDR r0,[r4,#0x2c]
00002e f7fffffe BL GUI_SetFont
000032 4628 MOV r0,r5
000034 f7fffffe BL WM_GetHasTrans
000038 b920 CBNZ r0,|L5.68|
00003a 6ba0 LDR r0,[r4,#0x38]
00003c f7fffffe BL LCD_SetBkColor
000040 f7fffffe BL GUI_Clear
|L5.68|
000044 f9b40028 LDRSH r0,[r4,#0x28]
000048 2800 CMP r0,#0
00004a d00e BEQ |L5.106|
00004c f7fffffe BL GUI_ALLOC_h2p
000050 4605 MOV r5,r0
000052 2002 MOVS r0,#2
000054 f7fffffe BL GUI_SetTextMode
000058 4668 MOV r0,sp
00005a f7fffffe BL WM_GetClientRect
00005e f9b42030 LDRSH r2,[r4,#0x30]
000062 4669 MOV r1,sp
000064 4628 MOV r0,r5
000066 f7fffffe BL GUI_DispStringInRect
|L5.106|
;;;124 case WM_PAINT:
;;;125 GUI_DEBUG_LOG("TEXT: _Callback(WM_PAINT)\n");
;;;126 _Paint(hObj, pObj);
;;;127 return;
;;;128 case WM_DELETE:
;;;129 GUI_DEBUG_LOG("TEXT: _Callback(WM_DELETE)\n");
;;;130 _Delete(pObj);
;;;131 break; /* No return here ... WM_DefaultProc needs to be called */
;;;132 }
;;;133 WM_DefaultProc(pMsg);
;;;134 }
00006a bd7c POP {r2-r6,pc}
|L5.108|
00006c f1040028 ADD r0,r4,#0x28
000070 f7fffffe BL GUI_ALLOC_FreePtr
|L5.116|
000074 4630 MOV r0,r6 ;133
000076 e8bd407c POP {r2-r6,lr} ;133
00007a f7ffbffe B.W WM_DefaultProc
;;;135
ENDP
AREA ||.data||, DATA, ALIGN=2
_pDefaultFont
DCD GUI_Font13_1
_DefaultTextColor
DCD 0x00000000
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -