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

📄 listbox.h

📁 XOSL 多操作系统管理工具 源代码 多系统引导工具
💻 H
字号:
/*
 * Extended Operating System Loader (XOSL)
 * Copyright (c) 1999 by Geurt Vos
 *
 * This code is distributed under GNU General Public License (GPL)
 *
 * The full text of the license can be found in the GPL.TXT file,
 * or at http://www.gnu.org
 */

#ifndef __listbox__
#define __listbox__

#include <AniCntrl.h>
#include <strlist.h>

typedef struct SStrListNode{
	CStringList *StringList;
	int Color;
	int FontStyle;
	struct SStrListNode *Next;
	struct SStrListNode *Prev;
} TStrListNode;

typedef void (*TListBoxSelect)(void *HandlerClass, int ItemIndex);

class CScrollBar;

class CListBox: public CAnimatedControl {
	public:
		CListBox(int Columns, int ShowHeader, int Left, int Top, int Width, int Height, int Visible, void *HandlerClass);
		~CListBox();

		void SetColumn(int Index, int Width, const char *HeaderName);
		void SetShowHeader(int ShowHeader);

		int AddRow();
		void InsertRow(int Index);
		void DeleteRow(int Index);
		void AddItem(int Row, int Column, const char *String);
		CString GetItem(int Row, int Column);
		void Clear();

		void SetItemIndex(int Index);
		int GetItemIndex();
		int GetCount();

		void SetDefault(int Index);
		void SetRowStyle(int Row, int Color, int FontStyle);
		void SetBackgroundColor(int Color);

		void SetDrawStart(int Index);
		int GetDrawCount();

		void KeyPress(unsigned short Key);
		int MouseDown(int MouseX, int MouseY);

		void SetScrollBar(CScrollBar *ScrollBar);
		void UpdateScrollBar();

		void OnSelect(TListBoxSelect ListBoxSelect);
		void OnDoubleClick(TListBoxSelect ListBoxDoubleClick);

      void FontChanged();
	private:
		TStrListNode *GetEntry(int Index);

		void Draw(long Left, long Top, long Width, long Height);
		void DrawBody();
		void DrawHeader();
		void DrawItems();

		CStringList *ColumnHeaders;
		TStrListNode *Items;
		int *ColumnWidth;
		int Count;
		int ItemIndex;
		int Columns;
		int ShowHeader;

		int DrawStart;
		int DrawCount;

		CScrollBar *ScrollBar;
		static void ScrollBarChange(CListBox *ListBox, int Value);

		TListBoxSelect ListBoxSelect;
		TListBoxSelect ListBoxDoubleClick;

		int BackgroundColor;
		int DefaultIndex;

		unsigned long TickLastClick;
};

#endif

⌨️ 快捷键说明

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