// CodeGear C++Builder
// Copyright (c) 1995, 2025 by Embarcadero Technologies, Inc.
// All rights reserved

// (DO NOT EDIT: machine generated header) 'SMCombo.pas' rev: 37.00 (Windows)

#ifndef SMComboHPP
#define SMComboHPP

#pragma delphiheader begin
#pragma option push
#if defined(__BORLANDC__) && !defined(__clang__)
#pragma option -w-      // All warnings off
#pragma option -Vx      // Zero-length empty class member 
#endif
#pragma pack(push,8)
#include <System.hpp>
#include <SysInit.hpp>
#include <Winapi.Windows.hpp>
#include <Winapi.Messages.hpp>
#include <System.SysUtils.hpp>
#include <System.Classes.hpp>
#include <Vcl.Graphics.hpp>
#include <Vcl.Controls.hpp>
#include <Vcl.Forms.hpp>
#include <Vcl.Dialogs.hpp>
#include <Vcl.StdCtrls.hpp>
#include <System.Types.hpp>
#include <System.UITypes.hpp>
#include <Vcl.Menus.hpp>

//-- user supplied -----------------------------------------------------------

namespace Smcombo
{
//-- forward type declarations -----------------------------------------------
class DELPHICLASS TSMColorsCombo;
class DELPHICLASS TSMFontSizesCombo;
class DELPHICLASS TSMFontNamesCombo;
class DELPHICLASS TSMBrushPenStyleCombo;
//-- type declarations -------------------------------------------------------
enum DECLSPEC_DENUM Smcombo__1 : unsigned char { cmColor, cmName, cmStandardColors, cmSystemColors, cmCustomItem };

typedef System::Set<Smcombo__1, Smcombo__1::cmColor, Smcombo__1::cmCustomItem> TColorMode;

class PASCALIMPLEMENTATION TSMColorsCombo : public Vcl::Stdctrls::TCustomComboBox
{
	typedef Vcl::Stdctrls::TCustomComboBox inherited;
	
private:
	System::StaticArray<System::Uitypes::TColor, 42> ColorValues;
	System::Uitypes::TColor FColorValue;
	System::Classes::TStrings* FColorNames;
	TColorMode FColorMode;
	System::UnicodeString FCustomText;
	System::Classes::TNotifyEvent FOnChange;
	void __fastcall SetColorValue(System::Uitypes::TColor NewValue);
	void __fastcall SetColorNames(System::Classes::TStrings* Value);
	void __fastcall SetColorMode(TColorMode Value);
	void __fastcall ColorNamesChanged(System::TObject* Sender);
	void __fastcall ResetItemHeight();
	HIDESBASE MESSAGE void __fastcall CMFontChanged(Winapi::Messages::TMessage &Message);
	
protected:
	virtual void __fastcall CreateWnd();
	virtual void __fastcall DrawItem(int Index, const System::Types::TRect &Rect, Winapi::Windows::TOwnerDrawState State);
	DYNAMIC void __fastcall Click();
	DYNAMIC void __fastcall DblClick();
	virtual void __fastcall BuildList();
	DYNAMIC void __fastcall DoChange();
	void __fastcall DisplayColorDialog();
	
public:
	__fastcall virtual TSMColorsCombo(System::Classes::TComponent* AOwner);
	__fastcall virtual ~TSMColorsCombo();
	__property Text = {default=0};
	
__published:
	__property System::Uitypes::TColor ColorValue = {read=FColorValue, write=SetColorValue, default=0};
	__property TColorMode ColorMode = {read=FColorMode, write=SetColorMode, nodefault};
	__property System::Classes::TStrings* ColorNames = {read=FColorNames, write=SetColorNames};
	__property System::UnicodeString CustomText = {read=FCustomText, write=FCustomText};
	__property Color = {default=-16777211};
	__property Ctl3D;
	__property DragMode = {default=0};
	__property DragCursor = {default=-12};
	__property Enabled = {default=1};
	__property Font;
	__property ImeMode = {default=3};
	__property ImeName = {default=0};
	__property ParentColor = {default=0};
	__property ParentCtl3D = {default=1};
	__property ParentFont = {default=1};
	__property ParentShowHint = {default=1};
	__property PopupMenu;
	__property ShowHint;
	__property TabOrder = {default=-1};
	__property TabStop = {default=1};
	__property Visible = {default=1};
	__property System::Classes::TNotifyEvent OnChange = {read=FOnChange, write=FOnChange};
	__property OnClick;
	__property OnDblClick;
	__property OnDragDrop;
	__property OnDragOver;
	__property OnDropDown;
	__property OnEndDrag;
	__property OnEnter;
	__property OnExit;
	__property OnKeyDown;
	__property OnKeyPress;
	__property OnKeyUp;
	__property OnStartDrag;
public:
	/* TWinControl.CreateParented */ inline __fastcall TSMColorsCombo(HWND ParentWindow) : Vcl::Stdctrls::TCustomComboBox(ParentWindow) { }
	
};


class PASCALIMPLEMENTATION TSMFontSizesCombo : public Vcl::Stdctrls::TCustomComboBox
{
	typedef Vcl::Stdctrls::TCustomComboBox inherited;
	
private:
	System::Classes::TNotifyEvent FOnChange;
	bool FUpdate;
	System::UnicodeString FFontName;
	System::Uitypes::TFontName __fastcall GetFontName();
	void __fastcall SetFontName(System::Uitypes::TFontName NewFontName);
	
protected:
	virtual void __fastcall BuildList();
	DYNAMIC void __fastcall Click();
	DYNAMIC void __fastcall DoChange();
	
public:
	__fastcall virtual TSMFontSizesCombo(System::Classes::TComponent* AOwner);
	
__published:
	__property System::Uitypes::TFontName FontName = {read=GetFontName, write=SetFontName};
	__property Color = {default=-16777211};
	__property Ctl3D;
	__property DragMode = {default=0};
	__property DragCursor = {default=-12};
	__property DropDownCount = {default=8};
	__property Enabled = {default=1};
	__property Font;
	__property ImeMode = {default=3};
	__property ImeName = {default=0};
	__property ItemHeight;
	__property MaxLength = {default=0};
	__property ParentColor = {default=0};
	__property ParentCtl3D = {default=1};
	__property ParentFont = {default=1};
	__property ParentShowHint = {default=1};
	__property PopupMenu;
	__property ShowHint;
	__property Style = {default=0};
	__property TabOrder = {default=-1};
	__property TabStop = {default=1};
	__property Text = {default=0};
	__property Visible = {default=1};
	__property System::Classes::TNotifyEvent OnChange = {read=FOnChange, write=FOnChange};
	__property OnClick;
	__property OnDblClick;
	__property OnDragDrop;
	__property OnDragOver;
	__property OnDrawItem;
	__property OnDropDown;
	__property OnEndDrag;
	__property OnEnter;
	__property OnExit;
	__property OnKeyDown;
	__property OnKeyPress;
	__property OnKeyUp;
	__property OnMeasureItem;
	__property OnStartDrag;
public:
	/* TCustomComboBox.Destroy */ inline __fastcall virtual ~TSMFontSizesCombo() { }
	
public:
	/* TWinControl.CreateParented */ inline __fastcall TSMFontSizesCombo(HWND ParentWindow) : Vcl::Stdctrls::TCustomComboBox(ParentWindow) { }
	
};


enum DECLSPEC_DENUM TSMFontDevice : unsigned char { fdScreen, fdPrinter, fdBoth };

enum DECLSPEC_DENUM Smcombo__4 : unsigned char { foAnsiOnly, foTrueTypeOnly, foFixedPitchOnly, foNoOEMFonts, foOEMFontsOnly, foScalableOnly };

typedef System::Set<Smcombo__4, Smcombo__4::foAnsiOnly, Smcombo__4::foScalableOnly> TSMFontListOptions;

class PASCALIMPLEMENTATION TSMFontNamesCombo : public Vcl::Stdctrls::TCustomComboBox
{
	typedef Vcl::Stdctrls::TCustomComboBox inherited;
	
private:
	TSMFontSizesCombo* FFontSizesCombo;
	Vcl::Graphics::TBitmap* FTrueTypeBMP;
	Vcl::Graphics::TBitmap* FDeviceBMP;
	System::Classes::TNotifyEvent FOnChange;
	TSMFontDevice FDevice;
	bool FUpdate;
	TSMFontListOptions FOptions;
	void __fastcall SetFontName(const System::Uitypes::TFontName NewFontName);
	System::Uitypes::TFontName __fastcall GetFontName();
	void __fastcall SetDevice(TSMFontDevice Value);
	void __fastcall SetOptions(TSMFontListOptions Value);
	void __fastcall ResetItemHeight();
	void __fastcall Reset();
	HIDESBASE MESSAGE void __fastcall CMFontChanged(Winapi::Messages::TMessage &Message);
	HIDESBASE MESSAGE void __fastcall WMFontChange(Winapi::Messages::TMessage &Message);
	
protected:
	virtual void __fastcall BuildList();
	DYNAMIC void __fastcall Click();
	DYNAMIC void __fastcall DoChange();
	virtual void __fastcall CreateWnd();
	virtual void __fastcall DrawItem(int Index, const System::Types::TRect &Rect, Winapi::Windows::TOwnerDrawState State);
	
public:
	__fastcall virtual TSMFontNamesCombo(System::Classes::TComponent* AOwner);
	__fastcall virtual ~TSMFontNamesCombo();
	__property Text = {default=0};
	
__published:
	__property TSMFontSizesCombo* FontSizesCombo = {read=FFontSizesCombo, write=FFontSizesCombo};
	__property TSMFontDevice Device = {read=FDevice, write=SetDevice, default=0};
	__property System::Uitypes::TFontName FontName = {read=GetFontName, write=SetFontName};
	__property TSMFontListOptions Options = {read=FOptions, write=SetOptions, default=0};
	__property Color = {default=-16777211};
	__property Ctl3D;
	__property DragMode = {default=0};
	__property DragCursor = {default=-12};
	__property Enabled = {default=1};
	__property Font;
	__property ImeMode = {default=3};
	__property ImeName = {default=0};
	__property ParentColor = {default=0};
	__property ParentCtl3D = {default=1};
	__property ParentFont = {default=1};
	__property ParentShowHint = {default=1};
	__property PopupMenu;
	__property ShowHint;
	__property TabOrder = {default=-1};
	__property TabStop = {default=1};
	__property Visible = {default=1};
	__property System::Classes::TNotifyEvent OnChange = {read=FOnChange, write=FOnChange};
	__property OnClick;
	__property OnDblClick;
	__property OnDragDrop;
	__property OnDragOver;
	__property OnDropDown;
	__property OnEndDrag;
	__property OnEnter;
	__property OnExit;
	__property OnKeyDown;
	__property OnKeyPress;
	__property OnKeyUp;
	__property OnStartDrag;
public:
	/* TWinControl.CreateParented */ inline __fastcall TSMFontNamesCombo(HWND ParentWindow) : Vcl::Stdctrls::TCustomComboBox(ParentWindow) { }
	
};


enum DECLSPEC_DENUM TSMBrushPenMode : unsigned char { bpmBrush, bpmPen };

class PASCALIMPLEMENTATION TSMBrushPenStyleCombo : public Vcl::Stdctrls::TCustomComboBox
{
	typedef Vcl::Stdctrls::TCustomComboBox inherited;
	
private:
	TSMBrushPenMode FBrushPenMode;
	Vcl::Graphics::TBrushStyle FBrushStyle;
	Vcl::Graphics::TPenStyle FPenStyle;
	System::Classes::TStrings* FBrushNames;
	System::Classes::TStrings* FPenNames;
	bool FShowNames;
	System::Classes::TNotifyEvent FOnChange;
	void __fastcall SetBrushStyle(Vcl::Graphics::TBrushStyle Value);
	void __fastcall SetPenStyle(Vcl::Graphics::TPenStyle Value);
	void __fastcall SetBrushNames(System::Classes::TStrings* Value);
	void __fastcall SetPenNames(System::Classes::TStrings* Value);
	void __fastcall SetShowNames(bool Value);
	void __fastcall SetBrushPenMode(TSMBrushPenMode Value);
	void __fastcall DisplayNamesChanged(System::TObject* Sender);
	void __fastcall ResetItemHeight();
	HIDESBASE MESSAGE void __fastcall CMFontChanged(Winapi::Messages::TMessage &Message);
	
protected:
	virtual void __fastcall CreateWnd();
	virtual void __fastcall DrawItem(int Index, const System::Types::TRect &Rect, Winapi::Windows::TOwnerDrawState State);
	DYNAMIC void __fastcall Click();
	virtual void __fastcall BuildList();
	DYNAMIC void __fastcall DoChange();
	
public:
	__fastcall virtual TSMBrushPenStyleCombo(System::Classes::TComponent* AOwner);
	__fastcall virtual ~TSMBrushPenStyleCombo();
	__property Text = {default=0};
	
__published:
	__property Vcl::Graphics::TBrushStyle BrushStyle = {read=FBrushStyle, write=SetBrushStyle, nodefault};
	__property Vcl::Graphics::TPenStyle PenStyle = {read=FPenStyle, write=SetPenStyle, nodefault};
	__property System::Classes::TStrings* BrushNames = {read=FBrushNames, write=SetBrushNames};
	__property System::Classes::TStrings* PenNames = {read=FPenNames, write=SetPenNames};
	__property bool ShowNames = {read=FShowNames, write=SetShowNames, nodefault};
	__property TSMBrushPenMode BrushPenMode = {read=FBrushPenMode, write=SetBrushPenMode, nodefault};
	__property Items;
	__property Color = {default=-16777211};
	__property Ctl3D;
	__property DragMode = {default=0};
	__property DragCursor = {default=-12};
	__property Enabled = {default=1};
	__property Font;
	__property ImeMode = {default=3};
	__property ImeName = {default=0};
	__property ParentColor = {default=0};
	__property ParentCtl3D = {default=1};
	__property ParentFont = {default=1};
	__property ParentShowHint = {default=1};
	__property PopupMenu;
	__property ShowHint;
	__property TabOrder = {default=-1};
	__property TabStop = {default=1};
	__property Visible = {default=1};
	__property System::Classes::TNotifyEvent OnChange = {read=FOnChange, write=FOnChange};
	__property OnClick;
	__property OnDblClick;
	__property OnDragDrop;
	__property OnDragOver;
	__property OnDropDown;
	__property OnEndDrag;
	__property OnEnter;
	__property OnExit;
	__property OnKeyDown;
	__property OnKeyPress;
	__property OnKeyUp;
	__property OnStartDrag;
public:
	/* TWinControl.CreateParented */ inline __fastcall TSMBrushPenStyleCombo(HWND ParentWindow) : Vcl::Stdctrls::TCustomComboBox(ParentWindow) { }
	
};


//-- var, const, procedure ---------------------------------------------------
static _DELPHI_CONST int clSMCCustom = int(0);
static _DELPHI_CONST System::Int8 ColorsInList = System::Int8(0x2a);
extern DELPHI_PACKAGE void __fastcall Register(void);
}	/* namespace Smcombo */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_SMCOMBO)
using namespace Smcombo;
#endif
#pragma pack(pop)
#pragma option pop

#pragma delphiheader end.
//-- end unit ----------------------------------------------------------------
#endif	// SMComboHPP
