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

📄 dropdown.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 TXT
📖 第 1 页 / 共 4 页
字号:
000040  6841              LDR      r1,[r0,#4]
000042  2900              CMP      r1,#0
000044  dd49              BLE      |L18.218|
;;;333          int Key = ((const WM_KEY_INFO*)(pMsg->Data.p))->Key;
;;;334          switch (Key) {
000046  6801              LDR      r1,[r0,#0]
000048  2909              CMP      r1,#9
00004a  d046              BEQ      |L18.218|
;;;335            case GUI_KEY_TAB:
;;;336              break;                    /* Send to parent by not doing anything */
;;;337            default:
;;;338              DROPDOWN_AddKey(hObj, Key);
00004c  4638              MOV      r0,r7
00004e  e8bd41f0          POP      {r4-r8,lr}
000052  f7ffbffe          B.W      DROPDOWN_AddKey
                  |L18.86|
000056  2811              CMP      r0,#0x11              ;297
000058  d01d              BEQ      |L18.150|
00005a  2826              CMP      r0,#0x26              ;297
00005c  d13d              BNE      |L18.218|
00005e  68a0              LDR      r0,[r4,#8]            ;299
000060  2801              CMP      r0,#1                 ;299
000062  d00c              BEQ      |L18.126|
000064  280a              CMP      r0,#0xa               ;299
000066  d005              BEQ      |L18.116|
000068  280b              CMP      r0,#0xb               ;299
00006a  d136              BNE      |L18.218|
00006c  4638              MOV      r0,r7                 ;308
00006e  f7fffffe          BL       DROPDOWN_Collapse
000072  e032              B        |L18.218|
                  |L18.116|
000074  210a              MOVS     r1,#0xa               ;301
000076  4638              MOV      r0,r7                 ;301
000078  f7fffffe          BL       WM_NotifyParent
00007c  e02d              B        |L18.218|
                  |L18.126|
00007e  f9b50060          LDRSH    r0,[r5,#0x60]         ;304
000082  f7fffffe          BL       LISTBOX_GetSel
000086  4601              MOV      r1,r0                 ;304
000088  4638              MOV      r0,r7                 ;304
00008a  f7fffffe          BL       DROPDOWN_SetSel
00008e  4638              MOV      r0,r7                 ;305
000090  f7fffffe          BL       WM_SetFocus
000094  e021              B        |L18.218|
                  |L18.150|
000096  bb06              CBNZ     r6,|L18.218|
000098  68a0              LDR      r0,[r4,#8]            ;315
00009a  7a00              LDRB     r0,[r0,#8]            ;315
00009c  b1e8              CBZ      r0,|L18.218|
00009e  4638              MOV      r0,r7                 ;316
0000a0  f7fffffe          BL       DROPDOWN_Expand
0000a4  e019              B        |L18.218|
                  |L18.166|
0000a6  68a0              LDR      r0,[r4,#8]            ;316
0000a8  b128              CBZ      r0,|L18.182|
0000aa  7a00              LDRB     r0,[r0,#8]            ;316
0000ac  b108              CBZ      r0,|L18.178|
0000ae  2101              MOVS     r1,#1                 ;316
0000b0  e002              B        |L18.184|
                  |L18.178|
0000b2  2102              MOVS     r1,#2                 ;316
0000b4  e000              B        |L18.184|
                  |L18.182|
0000b6  2103              MOVS     r1,#3                 ;316
                  |L18.184|
0000b8  4638              MOV      r0,r7                 ;316
0000ba  e8bd41f0          POP      {r4-r8,lr}            ;316
0000be  f7ffbffe          B.W      WM_NotifyParent
                  |L18.194|
0000c2  4638              MOV      r0,r7                 ;326
0000c4  f7fffffe          BL       _Paint
0000c8  e007              B        |L18.218|
                  |L18.202|
0000ca  f105002e          ADD      r0,r5,#0x2e           ;327
0000ce  f7fffffe          BL       GUI_ARRAY_Delete
0000d2  f9b50060          LDRSH    r0,[r5,#0x60]         ;327
0000d6  f7fffffe          BL       WM_DeleteWindow
                  |L18.218|
;;;339              return;
;;;340          }
;;;341        }
;;;342        break;
;;;343      }
;;;344      WM_DefaultProc(pMsg);
0000da  4620              MOV      r0,r4
0000dc  e8bd41f0          POP      {r4-r8,lr}
0000e0  f7ffbffe          B.W      WM_DefaultProc
                  |L18.228|
;;;345    }
0000e4  e8bd81f0          POP      {r4-r8,pc}
;;;346    
                          ENDP


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

                  _GetpItem PROC
;;;160    */
;;;161    static const char* _GetpItem(DROPDOWN_Obj* pObj, int Index) {
000000  b510              PUSH     {r4,lr}
;;;162      const char* s = NULL;
000002  2400              MOVS     r4,#0
000004  302e              ADDS     r0,r0,#0x2e
000006  f7fffffe          BL       GUI_ARRAY_GethItem
;;;163      WM_HMEM h = _GethItem(pObj, Index);
;;;164      if (h) {
00000a  b110              CBZ      r0,|L19.18|
;;;165        s = (const char*) GUI_ALLOC_h2p(h);
00000c  f7fffffe          BL       GUI_ALLOC_h2p
000010  4604              MOV      r4,r0
                  |L19.18|
;;;166      }
;;;167      return s;
000012  4620              MOV      r0,r4
;;;168    }
000014  bd10              POP      {r4,pc}
;;;169    
                          ENDP


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

                  _Paint PROC
;;;211    */
;;;212    static void _Paint(DROPDOWN_Handle hObj) {
000000  e92d47fc          PUSH     {r2-r10,lr}
;;;213      int Border;
;;;214      GUI_RECT r;
;;;215      const char* s;
;;;216      int InnerSize, ColorIndex;
;;;217      DROPDOWN_Obj* pObj;
;;;218      int TextBorderSize;
;;;219      /* Do some initial calculations */
;;;220      pObj = DROPDOWN_H2P(hObj);
000004  f7fffffe          BL       GUI_ALLOC_h2p
000008  4605              MOV      r5,r0
;;;221      Border = pObj->Widget.pEffect->EffectSize;
00000a  6a00              LDR      r0,[r0,#0x20]
;;;222      TextBorderSize = pObj->Props.TextBorderSize;
00000c  f9b5605c          LDRSH    r6,[r5,#0x5c]
;;;223      GUI_SetFont(pObj->Props.pFont);
000010  f8d09014          LDR      r9,[r0,#0x14]
000014  6c28              LDR      r0,[r5,#0x40]
000016  f7fffffe          BL       GUI_SetFont
;;;224      ColorIndex = (pObj->Widget.State & WIDGET_STATE_FOCUS) ? 2 : 1;
00001a  8ce8              LDRH     r0,[r5,#0x26]
00001c  2702              MOVS     r7,#2
00001e  07c0              LSLS     r0,r0,#31
000020  d100              BNE      |L20.36|
000022  2701              MOVS     r7,#1
                  |L20.36|
;;;225      s = _GetpItem(pObj, pObj->Sel);
000024  f9b51028          LDRSH    r1,[r5,#0x28]
000028  4628              MOV      r0,r5
00002a  f7fffffe          BL       _GetpItem
00002e  4680              MOV      r8,r0
;;;226      WM_GetClientRect(&r);
000030  4668              MOV      r0,sp
000032  f7fffffe          BL       WM_GetClientRect
;;;227      GUI__ReduceRect(&r, &r, Border);
000036  464a              MOV      r2,r9
000038  4669              MOV      r1,sp
00003a  4668              MOV      r0,sp
00003c  f7fffffe          BL       GUI__ReduceRect
;;;228      InnerSize = r.y1 - r.y0 + 1;
000040  f8bd0006          LDRH     r0,[sp,#6]
000044  f8bd1002          LDRH     r1,[sp,#2]
000048  1a44              SUBS     r4,r0,r1
00004a  1c64              ADDS     r4,r4,#1
;;;229      /* Draw the 3D effect (if configured) */
;;;230      WIDGET__EFFECT_DrawDown(&pObj->Widget);
00004c  4628              MOV      r0,r5
00004e  f7fffffe          BL       WIDGET__EFFECT_DrawDown
;;;231      /* Draw the outer text frames */
;;;232      r.x1 -= InnerSize;     /* Spare square area to the right */
000052  f8bd0004          LDRH     r0,[sp,#4]
;;;233      LCD_SetColor(pObj->Props.aBackColor[ColorIndex]);
000056  eb050787          ADD      r7,r5,r7,LSL #2
00005a  1b00              SUBS     r0,r0,r4              ;232
00005c  f8ad0004          STRH     r0,[sp,#4]            ;232
000060  6c78              LDR      r0,[r7,#0x44]
000062  f7fffffe          BL       LCD_SetColor
;;;234      /* Draw the text */
;;;235      LCD_SetBkColor(pObj->Props.aBackColor[ColorIndex]);
000066  6c78              LDR      r0,[r7,#0x44]
000068  f7fffffe          BL       LCD_SetBkColor
;;;236      GUI_FillRectEx(&r);
00006c  4668              MOV      r0,sp
00006e  f7fffffe          BL       GUI_FillRectEx
;;;237      r.x0 += TextBorderSize;
000072  f8bd0000          LDRH     r0,[sp,#0]
000076  4430              ADD      r0,r0,r6
000078  f8ad0000          STRH     r0,[sp,#0]
;;;238      r.x1 -= TextBorderSize;
00007c  f8bd0004          LDRH     r0,[sp,#4]
000080  1b80              SUBS     r0,r0,r6
000082  f8ad0004          STRH     r0,[sp,#4]
;;;239      LCD_SetColor  (pObj->Props.aTextColor[ColorIndex]);
000086  6d38              LDR      r0,[r7,#0x50]
000088  f7fffffe          BL       LCD_SetColor
;;;240      GUI_DispStringInRect(s, &r, pObj->Props.Align);/**/
00008c  f9b5205e          LDRSH    r2,[r5,#0x5e]
000090  4669              MOV      r1,sp
000092  4640              MOV      r0,r8
000094  f7fffffe          BL       GUI_DispStringInRect
;;;241      /* Draw arrow */
;;;242      WM_GetClientRect(&r);
000098  4668              MOV      r0,sp
00009a  f7fffffe          BL       WM_GetClientRect
;;;243      GUI__ReduceRect(&r, &r, Border);
00009e  464a              MOV      r2,r9
0000a0  4669              MOV      r1,sp
0000a2  4668              MOV      r0,sp
0000a4  f7fffffe          BL       GUI__ReduceRect
;;;244      r.x0 = r.x1 + 1 - InnerSize;
0000a8  f8bd0004          LDRH     r0,[sp,#4]
0000ac  1b00              SUBS     r0,r0,r4
0000ae  1c40              ADDS     r0,r0,#1
0000b0  f8ad0000          STRH     r0,[sp,#0]
;;;245      LCD_SetColor(0xc0c0c0);
0000b4  4815              LDR      r0,|L20.268|
0000b6  f7fffffe          BL       LCD_SetColor
;;;246      GUI_FillRectEx(&r);
0000ba  4668              MOV      r0,sp
0000bc  f7fffffe          BL       GUI_FillRectEx
;;;247      LCD_SetColor(GUI_BLACK);
0000c0  2000              MOVS     r0,#0
0000c2  f7fffffe          BL       LCD_SetColor
;;;248      _DrawTriangleDown((r.x1 + r.x0) / 2, r.y0 + 5, (r.y1 - r.y0 - 8) / 2);
0000c6  f9bd0004          LDRSH    r0,[sp,#4]
0000ca  f9bd1000          LDRSH    r1,[sp,#0]
0000ce  4408              ADD      r0,r0,r1
0000d0  eb0070d0          ADD      r0,r0,r0,LSR #31
0000d4  1046              ASRS     r6,r0,#1
0000d6  f9bd0002          LDRSH    r0,[sp,#2]
0000da  f9bd1006          LDRSH    r1,[sp,#6]
0000de  1d47              ADDS     r7,r0,#5
0000e0  1a08              SUBS     r0,r1,r0
0000e2  3808              SUBS     r0,r0,#8
0000e4  eb0070d0          ADD      r0,r0,r0,LSR #31
0000e8  1044              ASRS     r4,r0,#1
0000ea  e006              B        |L20.250|
                  |L20.236|
0000ec  1932              ADDS     r2,r6,r4
0000ee  1b31              SUBS     r1,r6,r4
0000f0  4638              MOV      r0,r7
0000f2  f7fffffe          BL       GUI_DrawHLine
0000f6  1e64              SUBS     r4,r4,#1
0000f8  1c7f              ADDS     r7,r7,#1
                  |L20.250|
0000fa  2c00              CMP      r4,#0
0000fc  daf6              BGE      |L20.236|
;;;249      WIDGET__EFFECT_DrawUpRect(&pObj->Widget, &r);
0000fe  4669              MOV      r1,sp
000100  4628              MOV      r0,r5
000102  f7fffffe          BL       WIDGET__EFFECT_DrawUpRect
;;;250    }
000106  e8bd87fc          POP      {r2-r10,pc}
;;;251    
                          ENDP

00010a  0000              DCW      0x0000
                  |L20.268|
                          DCD      0x00c0c0c0

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

                  _Tolower PROC
;;;173    */
;;;174    static int _Tolower(int Key) {
000000  f1a00141          SUB      r1,r0,#0x41
;;;175      if ((Key >= 0x41) && (Key <= 0x5a)) {
000004  2919              CMP      r1,#0x19
000006  d800              BHI      |L21.10|
;;;176        Key += 0x20;
000008  3020              ADDS     r0,r0,#0x20
                  |L21.10|
;;;177      }
;;;178      return Key;
;;;179    }
00000a  4770              BX       lr
;;;180    
                          ENDP


                          AREA ||.data||, DATA, ALIGN=2

                  DROPDOWN__DefaultProps
                          DCD      GUI_Font13_1
                          DCD      0x00ffffff
                          DCD      0x00808080
                          DCD      0x00ff0000
                          DCD      0x00000000
                          DCD      0x00ffffff
                          DCD      0x00ffffff
00001c  00020000          DCW      0x0002,0x0000

⌨️ 快捷键说明

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