📄 visual.c
字号:
#include "visual.h"
//=====================================================================================
// Custom list
/*-------------------------------------------------------------------------------------
The simpliest list with selected item highlighting. Without scroll-bars.
Uses xTStringList as base.
*/
void wvisCustomListInit (visTCustomList *pxList)
{
pxList->xLineRect.x1 = pxList->xWorkRect.x1;
pxList->xLineRect.x2 = pxList->xWorkRect.x2;
pxList->xLineRect.y1 = pxList->xWorkRect.y1;
pxList->xLineRect.y2 = pxList->xWorkRect.y1 + pxList->pxFont->uiSizeY;
u16 uiFontSize = pxList->pxFont->uiSizeY;
uiFontSize += uiFontSize>>2;
pxList->ulWindowSize = pxList->pxBitmap->uiSizeY / uiFontSize - 1;
pxList->ulWindowStart = 0;
}
//---------------------------------------------------------
void wvisCustomListRefresh (visTCustomList *pxList)
{
i32 lItemIndex = pxList->lItemIndex;
u32 ulWindowSize = pxList->ulWindowSize;
u32 ulWindowStart = pxList->ulWindowStart;
u32 ulBufferSize = pxList->ulWindowBuffer;
u32 ulLength = pxList->pxItems->ulLength;
if (lItemIndex < 0) lItemIndex = 0;
if (lItemIndex >= ulLength) lItemIndex = ulLength - 1;
{
if (ulLength<ulWindowSize) {ulWindowStart = 0; ulWindowSize = ulLength;}
else if (lItemIndex < ulBufferSize) ulWindowStart = 0;
else if (lItemIndex > ulLength - ulBufferSize) ulWindowStart = ulLength - ulWindowSize;
else
{
if (lItemIndex < ulWindowStart + ulBufferSize)
ulWindowStart = lItemIndex - ulBufferSize;
if (lItemIndex > ulWindowStart + ulWindowSize - ulBufferSize)
ulWindowStart = lItemIndex - ulWindowSize + ulBufferSize;
}
}
wFloodFill (pxList->pxBitmap, &(pxList->xWorkRect), 0, pxList->uiColorBackground);
u32 i;
u32 ulShift = 0x00000000;
u32 ulShiftAdd = pxList->pxFont->uiSizeY;
ulShiftAdd+= ulShiftAdd >> 2;
ulShiftAdd<<= 16;
for (i = ulWindowStart; i< lItemIndex;i++)
{
wDrawString (pxList->pxBitmap,
pxList->pxFont,
(u08*)(*((u32*)pxList->pxItems->pxItems + i)),
&(pxList->xLineRect),
ulShift, pxList->uiColorFont);
ulShift+=ulShiftAdd;
}
wFloodFill (pxList->pxBitmap,
&(pxList->xLineRect),
ulShift,
pxList->uiColorHlBackground);
wDrawString (pxList->pxBitmap,
pxList->pxFont,
(u08*)(*((u32*)pxList->pxItems->pxItems + i)),
&(pxList->xLineRect),
ulShift, pxList->uiColorHlFont);
i++;
ulShift+=ulShiftAdd;
for (; i< ulWindowStart + ulWindowSize;i++)
{
wDrawString (pxList->pxBitmap,
pxList->pxFont,
(u08*)(*((u32*)pxList->pxItems->pxItems + i)),
&(pxList->xLineRect),
ulShift, pxList->uiColorFont);
ulShift+=ulShiftAdd;
}
pxList->lItemIndex = lItemIndex;
pxList->ulWindowStart = ulWindowStart;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -