📄 header.txt
字号:
;;;619 void HEADER_SetItemText(HEADER_Handle hObj, unsigned int Index, const char* s) {
000000 b570 PUSH {r4-r6,lr}
000002 460d MOV r5,r1
000004 4614 MOV r4,r2
;;;620 if (hObj) {
000006 2800 CMP r0,#0
000008 d018 BEQ |L23.60|
;;;621 HEADER_Obj* pObj;
;;;622 WM_LOCK();
;;;623 pObj = HEADER_H2P(hObj);
00000a f7fffffe BL GUI_ALLOC_h2p
;;;624 if (Index < GUI_ARRAY_GetNumItems(&pObj->Columns)) {
00000e 3030 ADDS r0,r0,#0x30
000010 4606 MOV r6,r0
000012 f7fffffe BL GUI_ARRAY_GetNumItems
000016 42a8 CMP r0,r5
000018 d910 BLS |L23.60|
;;;625 HEADER_COLUMN* pColumn;
;;;626 pColumn = (HEADER_COLUMN*)GUI_ARRAY_ResizeItem(&pObj->Columns, Index, sizeof(HEADER_COLUMN) + strlen(s));
00001a 4620 MOV r0,r4
00001c f7fffffe BL strlen
000020 f100020c ADD r2,r0,#0xc
000024 4629 MOV r1,r5
000026 4630 MOV r0,r6
000028 f7fffffe BL GUI_ARRAY_ResizeItem
;;;627 if (pColumn) {
00002c 2800 CMP r0,#0
00002e d005 BEQ |L23.60|
;;;628 strcpy(pColumn->acText, s);
000030 4621 MOV r1,r4
000032 e8bd4070 POP {r4-r6,lr}
000036 3008 ADDS r0,r0,#8
000038 f7ffbffe B.W strcpy
|L23.60|
;;;629 }
;;;630 }
;;;631 WM_UNLOCK();
;;;632 }
;;;633 }
00003c bd70 POP {r4-r6,pc}
;;;634
ENDP
AREA ||i.HEADER_SetItemWidth||, CODE, READONLY, ALIGN=1
HEADER_SetItemWidth PROC
;;;638 */
;;;639 void HEADER_SetItemWidth(HEADER_Handle hObj, unsigned int Index, int Width) {
000000 e92d41f0 PUSH {r4-r8,lr}
000004 0004 MOVS r4,r0
000006 460e MOV r6,r1
000008 4615 MOV r5,r2
;;;640 if (hObj && (Width >= 0)) {
00000a d021 BEQ |L24.80|
00000c 2d00 CMP r5,#0
00000e db1f BLT |L24.80|
;;;641 HEADER_Obj * pObj;
;;;642 WM_LOCK();
;;;643 pObj = HEADER_H2P(hObj);
000010 4620 MOV r0,r4
000012 f7fffffe BL GUI_ALLOC_h2p
;;;644 if (Index <= GUI_ARRAY_GetNumItems(&pObj->Columns)) {
000016 3030 ADDS r0,r0,#0x30
000018 4607 MOV r7,r0
00001a f7fffffe BL GUI_ARRAY_GetNumItems
00001e 42b0 CMP r0,r6
000020 d316 BCC |L24.80|
;;;645 HEADER_COLUMN * pColumn;
;;;646 pColumn = (HEADER_COLUMN *)GUI_ARRAY_GetpItem(&pObj->Columns, Index);
000022 4631 MOV r1,r6
000024 4638 MOV r0,r7
000026 f7fffffe BL GUI_ARRAY_GetpItem
;;;647 if (pColumn) {
00002a 2800 CMP r0,#0
00002c d010 BEQ |L24.80|
;;;648 pColumn->Width = Width;
;;;649 WM_InvalidateWindow(hObj);
00002e 6005 STR r5,[r0,#0]
000030 4620 MOV r0,r4
000032 f7fffffe BL WM_InvalidateWindow
;;;650 WM__SendMsgNoData(WM_GetParent(hObj), WM_NOTIFY_CLIENTCHANGE);
000036 4620 MOV r0,r4
000038 f7fffffe BL WM_GetParent
00003c 2125 MOVS r1,#0x25
00003e f7fffffe BL WM__SendMsgNoData
;;;651 WM_InvalidateWindow(WM_GetParent(hObj));
000042 4620 MOV r0,r4
000044 f7fffffe BL WM_GetParent
000048 e8bd41f0 POP {r4-r8,lr}
00004c f7ffbffe B.W WM_InvalidateWindow
|L24.80|
;;;652 }
;;;653 }
;;;654 WM_UNLOCK();
;;;655 }
;;;656 }
000050 e8bd81f0 POP {r4-r8,pc}
;;;657
ENDP
AREA ||i.HEADER_SetScrollPos||, CODE, READONLY, ALIGN=1
HEADER_SetScrollPos PROC
;;;550 */
;;;551 void HEADER_SetScrollPos(HEADER_Handle hObj, int ScrollPos) {
000000 b570 PUSH {r4-r6,lr}
000002 0005 MOVS r5,r0
000004 460c MOV r4,r1
;;;552 if (hObj && (ScrollPos >= 0)) {
000006 d012 BEQ |L25.46|
000008 2c00 CMP r4,#0
00000a db10 BLT |L25.46|
;;;553 HEADER_Obj* pObj;
;;;554 WM_LOCK();
;;;555 pObj = HEADER_H2P(hObj);
00000c 4628 MOV r0,r5
00000e f7fffffe BL GUI_ALLOC_h2p
;;;556 if (ScrollPos != pObj->ScrollPos) {
000012 6bc1 LDR r1,[r0,#0x3c]
000014 42a1 CMP r1,r4
000016 d00a BEQ |L25.46|
;;;557 pObj->ScrollPos = ScrollPos;
;;;558 WM_Invalidate(hObj);
000018 63c4 STR r4,[r0,#0x3c]
00001a 4628 MOV r0,r5
00001c f7fffffe BL WM_InvalidateWindow
;;;559 WM_InvalidateWindow(WM_GetParent(hObj));
000020 4628 MOV r0,r5
000022 f7fffffe BL WM_GetParent
000026 e8bd4070 POP {r4-r6,lr}
00002a f7ffbffe B.W WM_InvalidateWindow
|L25.46|
;;;560 }
;;;561 WM_UNLOCK();
;;;562 }
;;;563 }
00002e bd70 POP {r4-r6,pc}
;;;564
ENDP
AREA ||i.HEADER_SetTextAlign||, CODE, READONLY, ALIGN=1
HEADER_SetTextAlign PROC
;;;531 */
;;;532 void HEADER_SetTextAlign(HEADER_Handle hObj, unsigned int Index, int Align) {
000000 e92d41f0 PUSH {r4-r8,lr}
000004 0004 MOVS r4,r0
000006 460e MOV r6,r1
000008 4615 MOV r5,r2
;;;533 if (hObj) {
00000a d012 BEQ |L26.50|
;;;534 HEADER_Obj * pObj;
;;;535 WM_LOCK();
;;;536 pObj = HEADER_H2P(hObj);
00000c 4620 MOV r0,r4
00000e f7fffffe BL GUI_ALLOC_h2p
;;;537 if (Index <= GUI_ARRAY_GetNumItems(&pObj->Columns)) {
000012 3030 ADDS r0,r0,#0x30
000014 4607 MOV r7,r0
000016 f7fffffe BL GUI_ARRAY_GetNumItems
00001a 42b0 CMP r0,r6
00001c d309 BCC |L26.50|
;;;538 HEADER_COLUMN * pColumn;
;;;539 pColumn = (HEADER_COLUMN *)GUI_ARRAY_GetpItem(&pObj->Columns, Index);
00001e 4631 MOV r1,r6
000020 4638 MOV r0,r7
000022 f7fffffe BL GUI_ARRAY_GetpItem
;;;540 pColumn->Align = Align;
000026 8085 STRH r5,[r0,#4]
;;;541 WM_InvalidateWindow(hObj);
000028 4620 MOV r0,r4
00002a e8bd41f0 POP {r4-r8,lr}
00002e f7ffbffe B.W WM_InvalidateWindow
|L26.50|
;;;542 }
;;;543 WM_UNLOCK();
;;;544 }
;;;545 }
000032 e8bd81f0 POP {r4-r8,pc}
;;;546
ENDP
AREA ||i.HEADER_SetTextColor||, CODE, READONLY, ALIGN=1
HEADER_SetTextColor PROC
;;;501 */
;;;502 void HEADER_SetTextColor(HEADER_Handle hObj, GUI_COLOR Color) {
000000 b570 PUSH {r4-r6,lr}
000002 0004 MOVS r4,r0
000004 460d MOV r5,r1
;;;503 if (hObj) {
000006 d008 BEQ |L27.26|
;;;504 HEADER_Obj * pObj;
;;;505 WM_LOCK();
;;;506 pObj = HEADER_H2P(hObj);
000008 4620 MOV r0,r4
00000a f7fffffe BL GUI_ALLOC_h2p
;;;507 pObj->TextColor = Color;
;;;508 WM_InvalidateWindow(hObj);
00000e 62c5 STR r5,[r0,#0x2c]
000010 4620 MOV r0,r4
000012 e8bd4070 POP {r4-r6,lr}
000016 f7ffbffe B.W WM_InvalidateWindow
|L27.26|
;;;509 WM_UNLOCK();
;;;510 }
;;;511 }
00001a bd70 POP {r4-r6,pc}
;;;512
ENDP
AREA ||i._HEADER_Callback||, CODE, READONLY, ALIGN=1
_HEADER_Callback PROC
;;;292 */
;;;293 static void _HEADER_Callback (WM_MESSAGE *pMsg) {
000000 b5f8 PUSH {r3-r7,lr}
;;;294 HEADER_Handle hObj;
;;;295 HEADER_Obj * pObj;
;;;296 hObj = pMsg->hWin;
000002 f9b06004 LDRSH r6,[r0,#4]
000006 4605 MOV r5,r0 ;293
;;;297 /* Let widget handle the standard messages */
;;;298 if (WIDGET_HandleActive(hObj, pMsg) == 0) {
000008 4601 MOV r1,r0
00000a 4630 MOV r0,r6
00000c f7fffffe BL WIDGET_HandleActive
000010 2800 CMP r0,#0
000012 d044 BEQ |L28.158|
;;;299 return;
;;;300 }
;;;301 WM_LOCK();
;;;302 pObj = HEADER_H2P(hObj);
000014 4630 MOV r0,r6
000016 f7fffffe BL GUI_ALLOC_h2p
;;;303 switch (pMsg->MsgId) {
00001a 6829 LDR r1,[r5,#0]
00001c 290b CMP r1,#0xb
00001e d021 BEQ |L28.100|
000020 290c CMP r1,#0xc
000022 d005 BEQ |L28.48|
000024 290f CMP r1,#0xf
000026 d135 BNE |L28.148|
;;;304 case WM_PAINT:
;;;305 _Paint(/*hObj, */pObj);
000028 e8bd40f8 POP {r3-r7,lr}
00002c f7ffbffe B.W _Paint
|L28.48|
000030 68ac LDR r4,[r5,#8]
000032 b18c CBZ r4,|L28.88|
000034 7a23 LDRB r3,[r4,#8]
000036 9300 STR r3,[sp,#0]
000038 6821 LDR r1,[r4,#0]
00003a 6bc2 LDR r2,[r0,#0x3c]
00003c 6863 LDR r3,[r4,#4]
00003e 440a ADD r2,r2,r1
000040 4601 MOV r1,r0
000042 4630 MOV r0,r6
000044 f7fffffe BL _HandlePID
000048 68a8 LDR r0,[r5,#8]
00004a b128 CBZ r0,|L28.88|
00004c 7a20 LDRB r0,[r4,#8]
00004e b108 CBZ r0,|L28.84|
000050 2101 MOVS r1,#1
000052 e002 B |L28.90|
|L28.84|
000054 2102 MOVS r1,#2
000056 e000 B |L28.90|
|L28.88|
000058 2103 MOVS r1,#3
|L28.90|
00005a 4630 MOV r0,r6
00005c e8bd40f8 POP {r3-r7,lr}
000060 f7ffbffe B.W WM_NotifyParent
|L28.100|
000064 3030 ADDS r0,r0,#0x30
000066 4607 MOV r7,r0
000068 f7fffffe BL GUI_ARRAY_GetNumItems
00006c 4606 MOV r6,r0
00006e 2400 MOVS r4,#0
000070 e009 B |L28.134|
|L28.114|
000072 4621 MOV r1,r4
000074 4638 MOV r0,r7
000076 f7fffffe BL GUI_ARRAY_GetpItem
00007a f9b00006 LDRSH r0,[r0,#6]
00007e b108 CBZ r0,|L28.132|
000080 f7fffffe BL GUI_ALLOC_Free
|L28.132|
000084 1c64 ADDS r4,r4,#1
|L28.134|
000086 42b4 CMP r4,r6
000088 dbf3 BLT |L28.114|
00008a 4638 MOV r0,r7
00008c f7fffffe BL GUI_ARRAY_Delete
000090 f7fffffe BL _RestoreOldCursor
|L28.148|
;;;306 break;
;;;307 #if (HEADER_SUPPORT_DRAG)
;;;308 case WM_TOUCH:
;;;309 _OnTouch(hObj, pObj, pMsg);
;;;310 break;
;;;311 #endif
;;;312 #if (HEADER_SUPPORT_DRAG & GUI_SUPPORT_MOUSE)
;;;313 case WM_MOUSEOVER:
;;;314 _OnMouseOver(hObj, pObj, pMsg);
;;;315 break;
;;;316 #endif
;;;317 case WM_DELETE:
;;;318 _FreeAttached(pObj); /* No return here ... WM_DefaultProc needs to be called */
;;;319 default:
;;;320 WM_DefaultProc(pMsg);
000094 4628 MOV r0,r5
000096 e8bd40f8 POP {r3-r7,lr}
00009a f7ffbffe B.W WM_DefaultProc
|L28.158|
;;;321 }
;;;322 WM_UNLOCK();
;;;323 }
00009e bdf8 POP {r3-r7,pc}
;;;324
ENDP
AREA ||i._HandlePID||, CODE, READONLY, ALIGN=1
_HandlePID PROC
;;;213 #if (HEADER_SUPPORT_DRAG)
;;;214 static void _HandlePID(HEADER_Handle hObj, HEADER_Obj * pObj, int x, int y, int Pressed) {
000000 e92d4fff PUSH {r0-r11,lr}
000004 b083 SUB sp,sp,#0xc
000006 460e MOV r6,r1
000008 4617 MOV r7,r2
00000a 1e1c SUBS r4,r3,#0
00000c f04f38ff MOV r8,#0xffffffff
000010 db2e BLT |L29.112|
000012 9803 LDR r0,[sp,#0xc]
000014 f7fffffe BL WM_GetWindowSizeY
000018 42a0 CMP r0,r4
00001a dd29 BLE |L29.112|
00001c 9803 LDR r0,[sp,#0xc]
00001e b338 CBZ r0,|L29.112|
000020 f1060030 ADD r0,r6,#0x30
000024 2500 MOVS r5,#0
000026 9002 STR r0,[sp,#8]
000028 f7fffffe BL GUI_ARRAY_GetNumItems
00002c 4681 MOV r9,r0
00002e 2400 MOVS r4,#0
000030 1f38 SUBS r0,r7,#4
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -