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

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

#ifndef SMRulerHPP
#define SMRulerHPP

#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 <System.UITypes.hpp>
#include <Vcl.Menus.hpp>

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

namespace Smruler
{
//-- forward type declarations -----------------------------------------------
class DELPHICLASS TSMRuler;
//-- type declarations -------------------------------------------------------
enum DECLSPEC_DENUM TSMDirection : unsigned char { smdHorizontalDown, smdHorizontalUp, smdVerticalLeft, smdVerticalRight };

enum DECLSPEC_DENUM TSMMeasure : unsigned char { smmCentimetre, smmInch, smmPixels };

class PASCALIMPLEMENTATION TSMRuler : public Vcl::Controls::TCustomControl
{
	typedef Vcl::Controls::TCustomControl inherited;
	
private:
	System::Uitypes::TColor FPositionColor;
	TSMDirection FDirection;
	TSMMeasure FMeasure;
	int FMarginStart;
	int FMarginEnd;
	System::Uitypes::TColor FMarginColor;
	int FOffsetStart;
	int FOffsetEnd;
	int FPosition;
	int FPositionStep;
	void __fastcall SetDirection(TSMDirection Value);
	void __fastcall SetMeasure(TSMMeasure Value);
	void __fastcall SetMarginStart(int Value);
	void __fastcall SetMarginEnd(int Value);
	void __fastcall SetMarginColor(System::Uitypes::TColor Value);
	void __fastcall SetOffsetStart(int Value);
	void __fastcall SetOffsetEnd(int Value);
	void __fastcall SetPosition(int Value);
	void __fastcall SetPositionColor(System::Uitypes::TColor Value);
	void __fastcall UpdatePosition(int intPosition);
	void __fastcall DrawPosition(int intPosition);
	
protected:
	virtual void __fastcall Paint();
	
public:
	__fastcall virtual TSMRuler(System::Classes::TComponent* AOwner);
	
__published:
	__property TSMDirection Direction = {read=FDirection, write=SetDirection, nodefault};
	__property TSMMeasure Measure = {read=FMeasure, write=SetMeasure, nodefault};
	__property int MarginStart = {read=FMarginStart, write=SetMarginStart, nodefault};
	__property int MarginEnd = {read=FMarginEnd, write=SetMarginEnd, nodefault};
	__property System::Uitypes::TColor MarginColor = {read=FMarginColor, write=SetMarginColor, nodefault};
	__property int Position = {read=FPosition, write=SetPosition, nodefault};
	__property System::Uitypes::TColor PositionColor = {read=FPositionColor, write=SetPositionColor, nodefault};
	__property int PositionStep = {read=FPositionStep, write=FPositionStep, nodefault};
	__property int OffsetStart = {read=FOffsetStart, write=SetOffsetStart, nodefault};
	__property int OffsetEnd = {read=FOffsetEnd, write=SetOffsetEnd, nodefault};
	__property Align = {default=0};
	__property Color = {default=-16777211};
	__property DragCursor = {default=-12};
	__property DragMode = {default=0};
	__property Enabled = {default=1};
	__property Font;
	__property ParentColor = {default=1};
	__property ParentFont = {default=1};
	__property ParentShowHint = {default=1};
	__property PopupMenu;
	__property ShowHint;
	__property Visible = {default=1};
	__property OnClick;
	__property OnDblClick;
	__property OnDragDrop;
	__property OnDragOver;
	__property OnEndDrag;
	__property OnMouseDown;
	__property OnMouseMove;
	__property OnMouseUp;
	__property OnStartDrag;
public:
	/* TCustomControl.Destroy */ inline __fastcall virtual ~TSMRuler() { }
	
public:
	/* TWinControl.CreateParented */ inline __fastcall TSMRuler(HWND ParentWindow) : Vcl::Controls::TCustomControl(ParentWindow) { }
	
};


//-- var, const, procedure ---------------------------------------------------
extern DELPHI_PACKAGE void __fastcall Register(void);
}	/* namespace Smruler */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_SMRULER)
using namespace Smruler;
#endif
#pragma pack(pop)
#pragma option pop

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