88 lines
1.7 KiB
C++
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
|
|
|