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

📄 listview.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 TXT
📖 第 1 页 / 共 5 页
字号:
;;;427      }
;;;428      WM_CheckScrollBounds(&pObj->ScrollStateH);
000026  f1040074          ADD      r0,r4,#0x74
00002a  4607              MOV      r7,r0
00002c  f7fffffe          BL       WM_CheckScrollBounds
000030  463a              MOV      r2,r7
000032  4631              MOV      r1,r6
;;;429      WIDGET__SetScrollState(hObj, &pObj->ScrollStateV, &pObj->ScrollStateH);
000034  4640              MOV      r0,r8
000036  f7fffffe          BL       WIDGET__SetScrollState
;;;430      return pObj->ScrollStateV.v - PrevScrollStateV;
00003a  6ee0              LDR      r0,[r4,#0x6c]
00003c  1b40              SUBS     r0,r0,r5
;;;431    }
00003e  e8bd81f0          POP      {r4-r8,pc}
;;;432    
                          ENDP


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

                  _GetNumVisibleRows PROC
;;;130    */
;;;131    static unsigned _GetNumVisibleRows(LISTVIEW_Handle hObj, const LISTVIEW_Obj* pObj) {
000000  b57c              PUSH     {r2-r6,lr}
000002  460d              MOV      r5,r1
;;;132      unsigned RowDistY, ySize, r = 1;
000004  2401              MOVS     r4,#1
;;;133      GUI_RECT Rect;
;;;134      WM_GetInsideRectExScrollbar(hObj, &Rect);
000006  4669              MOV      r1,sp
000008  f7fffffe          BL       WM_GetInsideRectExScrollbar
;;;135      ySize    = Rect.y1 - Rect.y0 + 1 - HEADER_GetHeight(pObj->hHeader);
00000c  f9b50028          LDRSH    r0,[r5,#0x28]
000010  f7fffffe          BL       HEADER_GetHeight
000014  f9bd1006          LDRSH    r1,[sp,#6]
000018  f9bd2002          LDRSH    r2,[sp,#2]
00001c  1a89              SUBS     r1,r1,r2
00001e  1a0e              SUBS     r6,r1,r0
000020  1c76              ADDS     r6,r6,#1
;;;136      RowDistY = LISTVIEW__GetRowDistY(pObj);
000022  4628              MOV      r0,r5
000024  f7fffffe          BL       LISTVIEW__GetRowDistY
;;;137      if (RowDistY) {
000028  b118              CBZ      r0,|L11.50|
;;;138        r = ySize / RowDistY;
00002a  fbb6f0f0          UDIV     r0,r6,r0
;;;139        r = (r == 0) ? 1 : r;
00002e  b100              CBZ      r0,|L11.50|
000030  4604              MOV      r4,r0
                  |L11.50|
;;;140      }
;;;141      return r;
000032  4620              MOV      r0,r4
;;;142    }
000034  bd7c              POP      {r2-r6,pc}
;;;143    
                          ENDP


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

                  _LISTVIEW_Callback PROC
;;;505    */
;;;506    static void _LISTVIEW_Callback (WM_MESSAGE *pMsg) {
000000  e92d4ffe          PUSH     {r1-r11,lr}
;;;507      LISTVIEW_Handle hObj;
;;;508      LISTVIEW_Obj* pObj;
;;;509      WM_SCROLL_STATE ScrollState;
;;;510      hObj = pMsg->hWin;
000004  f9b06004          LDRSH    r6,[r0,#4]
000008  4605              MOV      r5,r0                 ;506
;;;511      /* Let widget handle the standard messages */
;;;512      if (WIDGET_HandleActive(hObj, pMsg) == 0) {
00000a  4601              MOV      r1,r0
00000c  4630              MOV      r0,r6
00000e  f7fffffe          BL       WIDGET_HandleActive
000012  2800              CMP      r0,#0
000014  d031              BEQ      |L12.122|
;;;513        return;
;;;514      }
;;;515      pObj = LISTVIEW_H2P(hObj);
000016  4630              MOV      r0,r6
000018  f7fffffe          BL       GUI_ALLOC_h2p
00001c  4604              MOV      r4,r0
;;;516      switch (pMsg->MsgId) {
00001e  6828              LDR      r0,[r5,#0]
000020  280e              CMP      r0,#0xe
000022  d069              BEQ      |L12.248|
000024  dc14              BGT      |L12.80|
000026  2805              CMP      r0,#5
000028  d056              BEQ      |L12.216|
00002a  280b              CMP      r0,#0xb
00002c  d077              BEQ      |L12.286|
00002e  280c              CMP      r0,#0xc
                  |L12.48|
000030  d170              BNE      |L12.276|
000032  68aa              LDR      r2,[r5,#8]
;;;517      case WM_NOTIFY_CLIENTCHANGE:
;;;518      case WM_SIZE:
;;;519        LISTVIEW__UpdateScrollParas(hObj, pObj);
;;;520        return;
;;;521      case WM_NOTIFY_PARENT:
;;;522        switch (pMsg->Data.v) {
;;;523        case WM_NOTIFICATION_CHILD_DELETED:
;;;524          /* make sure we do not send any messages to the header child once it has been deleted */
;;;525          if (pMsg->hWinSrc == pObj->hHeader) {
;;;526            pObj->hHeader = 0;
;;;527          }
;;;528          break;
;;;529        case WM_NOTIFICATION_VALUE_CHANGED:
;;;530          if (pMsg->hWinSrc == WM_GetScrollbarV(hObj)) {
;;;531            WM_GetScrollState(pMsg->hWinSrc, &ScrollState);
;;;532            pObj->ScrollStateV.v = ScrollState.v;
;;;533            LISTVIEW__InvalidateInsideArea(hObj, pObj);
;;;534            _NotifyOwner(hObj, WM_NOTIFICATION_SCROLL_CHANGED);
;;;535          } else if (pMsg->hWinSrc == WM_GetScrollbarH(hObj)) {
;;;536            WM_GetScrollState(pMsg->hWinSrc, &ScrollState);
;;;537            pObj->ScrollStateH.v = ScrollState.v;
;;;538            LISTVIEW__UpdateScrollParas(hObj, pObj);
;;;539            HEADER_SetScrollPos(pObj->hHeader, pObj->ScrollStateH.v);
;;;540            _NotifyOwner(hObj, WM_NOTIFICATION_SCROLL_CHANGED);
;;;541          }
;;;542          break;
;;;543        case WM_NOTIFICATION_SCROLLBAR_ADDED:
;;;544          LISTVIEW__UpdateScrollParas(hObj, pObj);
;;;545          break;
;;;546        }
;;;547        return;
;;;548      case WM_PAINT:
;;;549        _Paint(hObj, pObj, pMsg);
;;;550        return;
;;;551      case WM_TOUCH:
;;;552        _OnTouch(hObj, pObj, pMsg);
000034  4621              MOV      r1,r4
000036  2a00              CMP      r2,#0
000038  d05b              BEQ      |L12.242|
00003a  7a10              LDRB     r0,[r2,#8]
00003c  2800              CMP      r0,#0
00003e  d056              BEQ      |L12.238|
000040  4630              MOV      r0,r6
000042  f7fffffe          BL       _SetSelFromPos
000046  2401              MOVS     r4,#1
000048  4630              MOV      r0,r6
00004a  f7fffffe          BL       WM_SetFocus
00004e  e051              B        |L12.244|
                  |L12.80|
000050  280f              CMP      r0,#0xf               ;516
000052  d046              BEQ      |L12.226|
000054  2825              CMP      r0,#0x25              ;516
000056  d03f              BEQ      |L12.216|
000058  2826              CMP      r0,#0x26              ;516
00005a  d1e9              BNE      |L12.48|
00005c  68a8              LDR      r0,[r5,#8]            ;522
00005e  2805              CMP      r0,#5                 ;522
000060  d00d              BEQ      |L12.126|
000062  2806              CMP      r0,#6                 ;522
000064  d038              BEQ      |L12.216|
000066  2807              CMP      r0,#7                 ;522
000068  d107              BNE      |L12.122|
00006a  f9b50006          LDRSH    r0,[r5,#6]            ;525
00006e  f9b41028          LDRSH    r1,[r4,#0x28]         ;525
000072  4288              CMP      r0,r1                 ;525
000074  d101              BNE      |L12.122|
000076  2000              MOVS     r0,#0                 ;526
000078  8520              STRH     r0,[r4,#0x28]         ;526
                  |L12.122|
;;;553        return;        /* Important: message handled ! */
;;;554      case WM_KEY:
;;;555        if (((const WM_KEY_INFO*)(pMsg->Data.p))->PressedCnt > 0) {
;;;556          int Key;
;;;557          Key = ((const WM_KEY_INFO*)(pMsg->Data.p))->Key;
;;;558          if (_AddKey(hObj, Key)) {
;;;559            return;
;;;560          }
;;;561        }
;;;562        break;  /* No return here ... WM_DefaultProc needs to be called */
;;;563      case WM_DELETE:
;;;564        _FreeAttached(pObj);
;;;565        break;  /* No return here ... WM_DefaultProc needs to be called */
;;;566      }
;;;567      WM_DefaultProc(pMsg);
;;;568    }
00007a  e8bd8ffe          POP      {r1-r11,pc}
                  |L12.126|
00007e  4630              MOV      r0,r6                 ;530
000080  f7fffffe          BL       WM_GetScrollbarV
000084  4601              MOV      r1,r0                 ;530
000086  f9b50006          LDRSH    r0,[r5,#6]            ;530
00008a  4281              CMP      r1,r0                 ;530
00008c  d109              BNE      |L12.162|
00008e  4669              MOV      r1,sp                 ;531
000090  f7fffffe          BL       WM_GetScrollState
000094  9801              LDR      r0,[sp,#4]            ;532
000096  66e0              STR      r0,[r4,#0x6c]         ;533
000098  4621              MOV      r1,r4                 ;533
00009a  4630              MOV      r0,r6                 ;533
00009c  f7fffffe          BL       LISTVIEW__InvalidateInsideArea
0000a0  e015              B        |L12.206|
                  |L12.162|
0000a2  4630              MOV      r0,r6                 ;535
0000a4  f7fffffe          BL       WM_GetScrollbarH
0000a8  4601              MOV      r1,r0                 ;535
0000aa  f9b50006          LDRSH    r0,[r5,#6]            ;535
0000ae  4281              CMP      r1,r0                 ;535
0000b0  d1e3              BNE      |L12.122|
0000b2  4669              MOV      r1,sp                 ;536
0000b4  f7fffffe          BL       WM_GetScrollState
0000b8  9801              LDR      r0,[sp,#4]            ;537
0000ba  67a0              STR      r0,[r4,#0x78]         ;538
0000bc  4621              MOV      r1,r4                 ;538
0000be  4630              MOV      r0,r6                 ;538
0000c0  f7fffffe          BL       LISTVIEW__UpdateScrollParas
0000c4  f9b40028          LDRSH    r0,[r4,#0x28]         ;539
0000c8  6fa1              LDR      r1,[r4,#0x78]         ;539
0000ca  f7fffffe          BL       HEADER_SetScrollPos
                  |L12.206|
0000ce  210a              MOVS     r1,#0xa               ;534
                  |L12.208|
0000d0  4630              MOV      r0,r6                 ;534
0000d2  f7fffffe          BL       _NotifyOwner
0000d6  e7d0              B        |L12.122|
                  |L12.216|
0000d8  4621              MOV      r1,r4                 ;544
0000da  4630              MOV      r0,r6                 ;544
0000dc  f7fffffe          BL       LISTVIEW__UpdateScrollParas
0000e0  e7cb              B        |L12.122|
                  |L12.226|
0000e2  462a              MOV      r2,r5                 ;549
0000e4  4621              MOV      r1,r4                 ;549
0000e6  4630              MOV      r0,r6                 ;549
0000e8  f7fffffe          BL       _Paint
0000ec  e7c5              B        |L12.122|
                  |L12.238|
0000ee  2402              MOVS     r4,#2
0000f0  e000              B        |L12.244|
                  |L12.242|
0000f2  2403              MOVS     r4,#3
                  |L12.244|
0000f4  4621              MOV      r1,r4
0000f6  e7eb              B        |L12.208|
                  |L12.248|
0000f8  68a8              LDR      r0,[r5,#8]            ;555
0000fa  6841              LDR      r1,[r0,#4]            ;555
0000fc  2900              CMP      r1,#0                 ;555
0000fe  dd3b              BLE      |L12.376|
000100  6800              LDR      r0,[r0,#0]            ;557
000102  2811              CMP      r0,#0x11              ;557
000104  d007              BEQ      |L12.278|
000106  2813              CMP      r0,#0x13              ;557
000108  d136              BNE      |L12.376|
00010a  4630              MOV      r0,r6                 ;557
00010c  f7fffffe          BL       LISTVIEW_IncSel
000110  e7b3              B        |L12.122|
000112  e004              B        |L12.286|
                  |L12.276|
000114  e030              B        |L12.376|
                  |L12.278|
000116  4630              MOV      r0,r6
000118  f7fffffe          BL       LISTVIEW_DecSel
00011c  e7ad              B        |L12.122|
                  |L12.286|
00011e  f104002a          ADD      r0,r4,#0x2a
000122  4683              MOV      r11,r0
000124  f7fffffe          BL       GUI_ARRAY_GetNumItems
000128  4680              MOV      r8,r0
00012a  f104002e          ADD      r0,r4,#0x2e
00012e  4682              MOV      r10,r0
000130  f7fffffe          BL       GUI_ARRAY_GetNumItems
000134  4607              MOV      r7,r0
000136  2600              MOVS     r6,#0
000138  e016              B        |L12.360|
                  |L12.314|
00013a  4631              MOV      r1,r6
00013c  4658              MOV      r0,r11
00013e  f7fffffe          BL       GUI_ARRAY_GetpItem
000142  4681              MOV      r9,r0
000144  2400              MOVS     r4,#0
000146  e009              B        |L12.348|
                  |L12.328|
000148  4621              MOV      r1,r4
00014a  4648              MOV      r0,r9
00014c  f7fffffe          BL       GUI_ARRAY_GetpItem
000150  f9b00000          LDRSH    r0,[r0,#0]

⌨️ 快捷键说明

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