Files
FireAlarmCtrlCn/MyCode/Gui/ListBox.h
2026-04-06 19:02:09 +08:00

88 lines
1.7 KiB
C++

#ifndef LISTBOX_H_
#define LISTBOX_H_
#include "GraphBase.h"
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#define ListBoxMaxLineCount 36
#define ListBoxMaxLineWidth 100
class TListBoxForm{
private:
int FontSize;
int FontHeight;
struct{
u16 Width;
unsigned int Color;
}Border;
struct {
u32 Color;
u32 RibbonColor;
}VScrollBar;
unsigned char *TextMount[ListBoxMaxLineCount];
public:
struct{
int Count;
int TopIndex;
int SelectedIndex;
}Items;
int Visible;
int LineHeight;
u32 BoderColor;
u32 Color;
u32 TextColor;
u32 SelectedColor;
u32 SelectedTextColor;
int TabOrder;
TPoint OwnerLeftTop; //ParrentLeftTop;
TRect Bound;
TRect VScrollBarBox;
TRect Content;
unsigned char Caption[64];
private:
public:
TListBoxForm(){};
TListBoxForm(int aX, int aY, int aW, int aH, int OwnerX, int OwnerY, u16 aBorderWidth, u32 aBorderColor){
Init(aX, aY, aW, aH, OwnerX, OwnerY, aBorderWidth, aBorderColor);
}
void Init(int aX, int aY, int aW, int aH, int OwnerX, int OwnerY, u16 aBorderWidth, u32 aBorderColor);
void SetFontSize(int size);
void SetOwnerLeftTop(int OwnerX, int OwnerY);
void DrawSelf(void);
void DrawVertScrollBar(void);
void DrawList(void);
void Show(void);
void KeyIn(int step);
int GetTopIndex(void); //return ListBox First Line Pointer to (StringList or Data)'s ItemIndex;
int GetSelectedItemIndex(void); //return ListBox Selected Line Pointer to (StringList or Data)'s ItemIndex;
void SetTextMount(unsigned char *pTextMount, u32 Ind); //set ListBox Line Text Pointer
void FullRePaint(void);
void RePaint(void);
int ExtRequst(unsigned char Prm){return 0;}
};
#endif