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

📄 listview.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 TXT
📖 第 1 页 / 共 5 页
字号:
; generated by ARM C/C++ Compiler with , RVCT4.0 [Build 524] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\listview.o --depend=.\Obj\listview.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\LISTVIEW.c]
                          THUMB

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

                  LISTVIEW_AddColumn PROC
;;;653    */
;;;654    void LISTVIEW_AddColumn(LISTVIEW_Handle hObj, int Width, const char * s, int Align) {
000000  e92d41ff          PUSH     {r0-r8,lr}
000004  ea5f0800          MOVS     r8,r0
000008  460c              MOV      r4,r1
00000a  4615              MOV      r5,r2
;;;655      if (hObj) {
00000c  d02c              BEQ      |L1.104|
;;;656        LISTVIEW_Obj* pObj;
;;;657        unsigned NumRows;
;;;658        WM_LOCK();
;;;659        pObj = LISTVIEW_H2P(hObj);
00000e  4640              MOV      r0,r8
000010  f7fffffe          BL       GUI_ALLOC_h2p
000014  4606              MOV      r6,r0
;;;660        HEADER_AddItem(pObj->hHeader, Width, s, Align);   /* Modify header */
000016  f9b00028          LDRSH    r0,[r0,#0x28]
00001a  462a              MOV      r2,r5
00001c  4621              MOV      r1,r4
00001e  9b03              LDR      r3,[sp,#0xc]
000020  f7fffffe          BL       HEADER_AddItem
;;;661        GUI_ARRAY_AddItem(&pObj->AlignArray, &Align, sizeof(int));
000024  2204              MOVS     r2,#4
000026  a903              ADD      r1,sp,#0xc
000028  f106002e          ADD      r0,r6,#0x2e
00002c  f7fffffe          BL       GUI_ARRAY_AddItem
;;;662        NumRows = LISTVIEW_GetNumRows(hObj);
000030  4640              MOV      r0,r8
000032  f7fffffe          BL       LISTVIEW_GetNumRows
000036  0005              MOVS     r5,r0
;;;663        if (NumRows) {
000038  d00e              BEQ      |L1.88|
;;;664          GUI_ARRAY* pRow;
;;;665          unsigned i;
;;;666          for (i = 0; i < NumRows; i++) {
00003a  2400              MOVS     r4,#0
;;;667            pRow = (GUI_ARRAY*) GUI_ARRAY_GetpItem(&pObj->RowArray, i);
00003c  f106072a          ADD      r7,r6,#0x2a
000040  e008              B        |L1.84|
                  |L1.66|
000042  4621              MOV      r1,r4
000044  4638              MOV      r0,r7
000046  f7fffffe          BL       GUI_ARRAY_GetpItem
;;;668            GUI_ARRAY_AddItem(pRow, NULL, sizeof(LISTVIEW_ITEM) + 1);
00004a  2205              MOVS     r2,#5
00004c  2100              MOVS     r1,#0
00004e  f7fffffe          BL       GUI_ARRAY_AddItem
000052  1c64              ADDS     r4,r4,#1              ;666
                  |L1.84|
000054  42ac              CMP      r4,r5                 ;666
000056  d3f4              BCC      |L1.66|
                  |L1.88|
;;;669          }
;;;670        }
;;;671        LISTVIEW__UpdateScrollParas(hObj, pObj);
000058  4631              MOV      r1,r6
00005a  4640              MOV      r0,r8
00005c  f7fffffe          BL       LISTVIEW__UpdateScrollParas
;;;672        LISTVIEW__InvalidateInsideArea(hObj, pObj);
000060  4631              MOV      r1,r6
000062  4640              MOV      r0,r8
000064  f7fffffe          BL       LISTVIEW__InvalidateInsideArea
                  |L1.104|
;;;673        WM_UNLOCK();
;;;674      }
;;;675    }
000068  e8bd81ff          POP      {r0-r8,pc}
;;;676    
                          ENDP


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

                  LISTVIEW_AddRow PROC
;;;680    */
;;;681    void LISTVIEW_AddRow(LISTVIEW_Handle hObj, const GUI_ConstString* ppText) {
000000  e92d5ffc          PUSH     {r2-r12,lr}
000004  ea5f0b00          MOVS     r11,r0
000008  460c              MOV      r4,r1
;;;682      if (hObj) {
00000a  d046              BEQ      |L2.154|
;;;683        LISTVIEW_Obj* pObj;
;;;684        int NumRows;
;;;685        WM_LOCK();
;;;686        pObj = LISTVIEW_H2P(hObj);
00000c  4658              MOV      r0,r11
00000e  f7fffffe          BL       GUI_ALLOC_h2p
000012  4682              MOV      r10,r0
;;;687        NumRows = GUI_ARRAY_GetNumItems(&pObj->RowArray);
000014  302a              ADDS     r0,r0,#0x2a
000016  4605              MOV      r5,r0
000018  9001              STR      r0,[sp,#4]
00001a  f7fffffe          BL       GUI_ARRAY_GetNumItems
;;;688    
;;;689        /* Create GUI_ARRAY for the new row */
;;;690        if (GUI_ARRAY_AddItem(&pObj->RowArray, NULL, sizeof(GUI_ARRAY)) == 0) {
00001e  9000              STR      r0,[sp,#0]
000020  2204              MOVS     r2,#4
000022  2100              MOVS     r1,#0
000024  4628              MOV      r0,r5
000026  f7fffffe          BL       GUI_ARRAY_AddItem
00002a  2800              CMP      r0,#0
00002c  d135              BNE      |L2.154|
;;;691          int i, NumColumns, NumBytes;
;;;692          GUI_ARRAY* pRow;
;;;693          const char* s;
;;;694          GUI_ARRAY_CREATE((GUI_ARRAY *)GUI_ARRAY_GetpItem(&pObj->RowArray, NumRows));  /* For higher debug levels only */
;;;695          /* Add columns for the new row */
;;;696          NumColumns = HEADER_GetNumItems(pObj->hHeader);
00002e  f9ba0028          LDRSH    r0,[r10,#0x28]
000032  f7fffffe          BL       HEADER_GetNumItems
000036  4681              MOV      r9,r0
;;;697          for (i = 0; i < NumColumns; i++) {
000038  2500              MOVS     r5,#0
00003a  e020              B        |L2.126|
                  |L2.60|
;;;698            LISTVIEW_ITEM * pItem;
;;;699            pRow = (GUI_ARRAY *)GUI_ARRAY_GetpItem(&pObj->RowArray, NumRows);
00003c  e9dd1000          LDRD     r1,r0,[sp,#0]
000040  f7fffffe          BL       GUI_ARRAY_GetpItem
000044  4607              MOV      r7,r0
;;;700            s = (ppText) ? *ppText++ : 0;
000046  b10c              CBZ      r4,|L2.76|
000048  cc01              LDM      r4!,{r0}
00004a  e000              B        |L2.78|
                  |L2.76|
00004c  2000              MOVS     r0,#0
                  |L2.78|
00004e  ea5f0800          MOVS     r8,r0
;;;701            if (s == 0) {
000052  d100              BNE      |L2.86|
;;;702              ppText = 0;
000054  2400              MOVS     r4,#0
                  |L2.86|
;;;703            }
;;;704            NumBytes = GUI__strlen(s) + 1;     /* 0 if no string is specified (s == NULL) */
000056  4640              MOV      r0,r8
000058  f7fffffe          BL       GUI__strlen
00005c  1c46              ADDS     r6,r0,#1
;;;705            GUI_ARRAY_AddItem(pRow, NULL, sizeof(LISTVIEW_ITEM) + NumBytes);
00005e  1d42              ADDS     r2,r0,#5
000060  2100              MOVS     r1,#0
000062  4638              MOV      r0,r7
000064  f7fffffe          BL       GUI_ARRAY_AddItem
;;;706            pItem = (LISTVIEW_ITEM *)GUI_ARRAY_GetpItem(pRow, i);
000068  4629              MOV      r1,r5
00006a  4638              MOV      r0,r7
00006c  f7fffffe          BL       GUI_ARRAY_GetpItem
;;;707            if (NumBytes > 1) {
000070  2e01              CMP      r6,#1
000072  dd03              BLE      |L2.124|
;;;708              strcpy(pItem->acText, s);
000074  4641              MOV      r1,r8
000076  1c80              ADDS     r0,r0,#2
000078  f7fffffe          BL       strcpy
                  |L2.124|
00007c  1c6d              ADDS     r5,r5,#1              ;697
                  |L2.126|
00007e  454d              CMP      r5,r9                 ;697
000080  dbdc              BLT      |L2.60|
;;;709            }
;;;710          }
;;;711          LISTVIEW__UpdateScrollParas(hObj, pObj);
000082  4651              MOV      r1,r10
000084  4658              MOV      r0,r11
000086  f7fffffe          BL       LISTVIEW__UpdateScrollParas
;;;712          LISTVIEW__InvalidateRow(hObj, pObj, NumRows);
00008a  9a00              LDR      r2,[sp,#0]
00008c  4651              MOV      r1,r10
00008e  4658              MOV      r0,r11
000090  b002              ADD      sp,sp,#8
000092  e8bd5ff0          POP      {r4-r12,lr}
000096  f7ffbffe          B.W      LISTVIEW__InvalidateRow
                  |L2.154|
;;;713        }
;;;714        WM_UNLOCK();
;;;715      }
;;;716    }
00009a  e8bd9ffc          POP      {r2-r12,pc}
;;;717    
                          ENDP


                          AREA ||i.LISTVIEW_CreateEx||, CODE, READONLY, ALIGN=2

                  LISTVIEW_CreateEx PROC
;;;583    */
;;;584    LISTVIEW_Handle LISTVIEW_CreateEx(int x0, int y0, int xsize, int ysize, WM_HWIN hParent,
000000  e92d47ff          PUSH     {r0-r10,lr}
;;;585                                      int WinFlags, int ExFlags, int Id)
;;;586    {
000004  4606              MOV      r6,r0
;;;587      LISTVIEW_Handle hObj;
;;;588      GUI_USE_PARA(ExFlags);
;;;589      /* Create the window */
;;;590      if ((xsize == 0) && (ysize == 0) && (x0 == 0) && (y0 == 0)) {
000006  ea420003          ORR      r0,r2,r3
00000a  e9dd980c          LDRD     r9,r8,[sp,#0x30]
00000e  4330              ORRS     r0,r0,r6
000010  f8dda03c          LDR      r10,[sp,#0x3c]
000014  460f              MOV      r7,r1                 ;586
000016  4614              MOV      r4,r2                 ;586
000018  461d              MOV      r5,r3                 ;586
00001a  4308              ORRS     r0,r0,r1
00001c  d10f              BNE      |L3.62|
;;;591        GUI_RECT Rect;
;;;592        WM_GetClientRectEx(hParent, &Rect);
00001e  a902              ADD      r1,sp,#8
000020  4648              MOV      r0,r9
000022  f7fffffe          BL       WM_GetClientRectEx
;;;593        xsize = Rect.x1 - Rect.x0 + 1;
000026  f9bd000c          LDRSH    r0,[sp,#0xc]
00002a  f9bd1008          LDRSH    r1,[sp,#8]
00002e  1a44              SUBS     r4,r0,r1
;;;594        ysize = Rect.y1 - Rect.y0 + 1;
000030  f9bd000e          LDRSH    r0,[sp,#0xe]
000034  f9bd100a          LDRSH    r1,[sp,#0xa]
000038  1c64              ADDS     r4,r4,#1              ;593
00003a  1a45              SUBS     r5,r0,r1
00003c  1c6d              ADDS     r5,r5,#1
                  |L3.62|
;;;595      }
;;;596      hObj = WM_CreateWindowAsChild(x0, y0, xsize, ysize, hParent, WinFlags, &_LISTVIEW_Callback,
00003e  fa1ff188          UXTH     r1,r8
000042  2364              MOVS     r3,#0x64
000044  4a1b              LDR      r2,|L3.180|
000046  e9cd9100          STRD     r9,r1,[sp,#0]
00004a  e9cd2302          STRD     r2,r3,[sp,#8]
00004e  462b              MOV      r3,r5
000050  4622              MOV      r2,r4
000052  4639              MOV      r1,r7
000054  4630              MOV      r0,r6
000056  f7fffffe          BL       WM_CreateWindowAsChild
00005a  0005              MOVS     r5,r0
;;;597                                    sizeof(LISTVIEW_Obj) - sizeof(WM_Obj));
;;;598      if (hObj) {
00005c  d025              BEQ      |L3.170|
;;;599        LISTVIEW_Obj* pObj;
;;;600        WM_LOCK();
;;;601        pObj = LISTVIEW_H2P(hObj);
00005e  4628              MOV      r0,r5
000060  f7fffffe          BL       GUI_ALLOC_h2p
000064  4604              MOV      r4,r0
;;;602        /* Init sub-classes */
;;;603        GUI_ARRAY_CREATE(&pObj->RowArray);
;;;604        GUI_ARRAY_CREATE(&pObj->AlignArray);
;;;605        /* Init widget specific variables */
;;;606        WIDGET__Init(&pObj->Widget, Id, WIDGET_STATE_FOCUSSABLE);
000066  2210              MOVS     r2,#0x10
000068  4651              MOV      r1,r10
00006a  f7fffffe          BL       WIDGET__Init
;;;607        /* Init member variables */
;;;608        LISTVIEW_INIT_ID(pObj);
;;;609        pObj->Props = LISTVIEW_DefaultProps;
00006e  2220              MOVS     r2,#0x20
000070  4911              LDR      r1,|L3.184|
000072  f1040034          ADD      r0,r4,#0x34
000076  f7fffffe          BL       __aeabi_memcpy4
;;;610        pObj->ShowGrid  = 0;
00007a  2100              MOVS     r1,#0
;;;611        pObj->RowDistY  = 0;
00007c  65a1              STR      r1,[r4,#0x58]
;;;612        pObj->Sel       = -1;
00007e  65e1              STR      r1,[r4,#0x5c]
000080  1e49              SUBS     r1,r1,#1
;;;613        pObj->LBorder   = 1;
000082  6561              STR      r1,[r4,#0x54]
000084  2101              MOVS     r1,#1
;;;614        pObj->RBorder   = 1;
000086  6621              STR      r1,[r4,#0x60]
;;;615        pObj->hHeader   = HEADER_CreateEx(0, 0, 0, 0, hObj, WM_CF_SHOW, 0, 0);
000088  2300              MOVS     r3,#0
00008a  6661              STR      r1,[r4,#0x64]
00008c  2102              MOVS     r1,#2
00008e  e9cd1301          STRD     r1,r3,[sp,#4]
000092  461a              MOV      r2,r3
000094  4619              MOV      r1,r3

⌨️ 快捷键说明

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