mirror of
http://gitlab.expertsoft.com.ua/git/expertcad
synced 2026-01-11 17:25:39 +02:00
482 lines
22 KiB
ObjectPascal
482 lines
22 KiB
ObjectPascal
TToolBar = class;
|
|
TToolButton = class;
|
|
|
|
TToolButtonActionLink = class(ComCtrls.TToolButtonActionLink)
|
|
protected
|
|
end;
|
|
|
|
TToolButtonActionLinkClass = class of TToolButtonActionLink;
|
|
|
|
TToolButton = class(ComCtrls.TToolButton)
|
|
private
|
|
FAllowAllUp: Boolean;
|
|
FAutoSize: Boolean;
|
|
FDown: Boolean;
|
|
FGrouped: Boolean;
|
|
FImageIndex: TImageIndex;
|
|
FIndeterminate: Boolean;
|
|
FMarked: Boolean;
|
|
FMenuItem: TMenuItem;
|
|
FDropdownMenu: TPopupMenu;
|
|
FWrap: Boolean;
|
|
FStyle: TToolButtonStyle;
|
|
FUpdateCount: Integer;
|
|
function GetButtonState: Byte;
|
|
function GetIndex: Integer;
|
|
function IsCheckedStored: Boolean;
|
|
function IsImageIndexStored: Boolean;
|
|
function IsWidthStored: Boolean;
|
|
procedure SetButtonState(State: Byte);
|
|
procedure SetDown(Value: Boolean);
|
|
procedure SetDropdownMenu(Value: TPopupMenu);
|
|
procedure SetGrouped(Value: Boolean);
|
|
procedure SetImageIndex(Value: TImageIndex);
|
|
procedure SetIndeterminate(Value: Boolean);
|
|
procedure SetMarked(Value: Boolean);
|
|
procedure SetMenuItem(Value: TMenuItem);
|
|
procedure SetStyle(Value: TToolButtonStyle);
|
|
procedure SetWrap(Value: Boolean);
|
|
procedure CMEnabledChanged(var Message: TMessage); message CM_ENABLEDCHANGED;
|
|
procedure CMHitTest(var Message: TCMHitTest); message CM_HITTEST;
|
|
procedure CMTextChanged(var Message: TMessage); message CM_TEXTCHANGED;
|
|
procedure CMVisibleChanged(var Message: TMessage); message CM_VISIBLECHANGED;
|
|
protected
|
|
FToolBar: TToolBar;
|
|
procedure ActionChange(Sender: TObject; CheckDefaults: Boolean); override;
|
|
procedure AssignTo(Dest: TPersistent); override;
|
|
procedure BeginUpdate; virtual;
|
|
procedure EndUpdate; virtual;
|
|
function GetActionLinkClass: TControlActionLinkClass; override;
|
|
procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
|
|
procedure MouseMove(Shift: TShiftState; X, Y: Integer); override;
|
|
procedure MouseUp(Button: TMouseButton; Shift: TShiftState;
|
|
X, Y: Integer); override;
|
|
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
|
|
procedure Paint; override;
|
|
procedure RefreshControl; virtual;
|
|
procedure SetAutoSize(Value: Boolean); override;
|
|
procedure SetToolBar(AToolBar: TToolBar);
|
|
procedure UpdateControl; virtual;
|
|
procedure ValidateContainer(AComponent: TComponent); override;
|
|
public
|
|
constructor Create(AOwner: TComponent); override;
|
|
function CheckMenuDropdown: Boolean; dynamic;
|
|
procedure Click; override;
|
|
procedure SetBounds(ALeft, ATop, AWidth, AHeight: Integer); override;
|
|
property Index: Integer read GetIndex;
|
|
published
|
|
property Action;
|
|
property AllowAllUp: Boolean read FAllowAllUp write FAllowAllUp default False;
|
|
property AutoSize: Boolean read FAutoSize write SetAutoSize default False;
|
|
property Caption;
|
|
property Down: Boolean read FDown write SetDown stored IsCheckedStored default False;
|
|
property DragCursor;
|
|
property DragKind;
|
|
property DragMode;
|
|
property DropdownMenu: TPopupMenu read FDropdownMenu write SetDropdownMenu;
|
|
property Enabled;
|
|
property Grouped: Boolean read FGrouped write SetGrouped default False;
|
|
property Height stored False;
|
|
property ImageIndex: TImageIndex read FImageIndex write SetImageIndex stored IsImageIndexStored default -1;
|
|
property Indeterminate: Boolean read FIndeterminate write SetIndeterminate default False;
|
|
property Marked: Boolean read FMarked write SetMarked default False;
|
|
property MenuItem: TMenuItem read FMenuItem write SetMenuItem;
|
|
property ParentShowHint;
|
|
property PopupMenu;
|
|
property Wrap: Boolean read FWrap write SetWrap default False;
|
|
property ShowHint;
|
|
property Style: TToolButtonStyle read FStyle write SetStyle default tbsButton;
|
|
property Visible;
|
|
property Width stored IsWidthStored;
|
|
property OnClick;
|
|
property OnContextPopup;
|
|
property OnDragDrop;
|
|
property OnDragOver;
|
|
property OnEndDock;
|
|
property OnEndDrag;
|
|
property OnMouseDown;
|
|
property OnMouseMove;
|
|
property OnMouseUp;
|
|
property OnStartDock;
|
|
property OnStartDrag;
|
|
end;
|
|
|
|
|
|
TTBCustomDrawFlags = set of (tbNoEdges, tbHiliteHotTrack, tbNoOffset,
|
|
tbNoMark, tbNoEtchedEffect);
|
|
|
|
TTBCustomDrawEvent = procedure(Sender: TToolBar; const ARect: TRect;
|
|
var DefaultDraw: Boolean) of object;
|
|
TTBCustomDrawBtnEvent = procedure(Sender: TToolBar; Button: TToolButton;
|
|
State: TCustomDrawState; var DefaultDraw: Boolean) of object;
|
|
TTBAdvancedCustomDrawEvent = procedure(Sender: TToolBar; const ARect: TRect;
|
|
Stage: TCustomDrawStage; var DefaultDraw: Boolean) of object;
|
|
TTBAdvancedCustomDrawBtnEvent = procedure(Sender: TToolBar; Button: TToolButton;
|
|
State: TCustomDrawState; Stage: TCustomDrawStage;
|
|
var Flags: TTBCustomDrawFlags; var DefaultDraw: Boolean) of object;
|
|
TTBCustomizeQueryEvent = procedure(Sender: TToolbar; Index: Integer;
|
|
var Allow: Boolean) of object;
|
|
TTBNewButtonEvent = procedure(Sender: TToolbar; Index: Integer;
|
|
var Button: TToolButton) of object;
|
|
TTBButtonEvent = procedure(Sender: TToolbar; Button: TToolButton) of object;
|
|
|
|
TToolBar = class(TToolWindow)
|
|
private
|
|
FButtonWidth: Integer;
|
|
FButtonHeight: Integer;
|
|
FButtons: TList;
|
|
FCaption: string;
|
|
FCanvas: TCanvas;
|
|
FCanvasChanged: Boolean;
|
|
FCustomizable: Boolean;
|
|
FCustomizing: Boolean;
|
|
FShowCaptions: Boolean;
|
|
FList: Boolean;
|
|
FFlat: Boolean;
|
|
FTransparent: Boolean;
|
|
FWrapable: Boolean;
|
|
FImages: TCustomImageList;
|
|
FImageChangeLink: TChangeLink;
|
|
FDisabledImages: TCustomImageList;
|
|
FDisabledImageChangeLink: TChangeLink;
|
|
FHotImages: TCustomImageList;
|
|
FHotImageChangeLink: TChangeLink;
|
|
FIndent: Integer;
|
|
FNewStyle: Boolean;
|
|
FNullBitmap: TBitmap;
|
|
FOldHandle: HBitmap;
|
|
FRestoring: Boolean;
|
|
FUpdateCount: Integer;
|
|
FHeightMargin: Integer;
|
|
FSeparators: Integer;
|
|
FOnAdvancedCustomDraw: TTBAdvancedCustomDrawEvent;
|
|
FOnAdvancedCustomDrawButton: TTBAdvancedCustomDrawBtnEvent;
|
|
FOnCustomDraw: TTBCustomDrawEvent;
|
|
FOnCustomDrawButton: TTBCustomDrawBtnEvent;
|
|
FOnCustomizeCanDelete: TTBCustomizeQueryEvent;
|
|
FOnCustomizeCanInsert: TTBCustomizeQueryEvent;
|
|
FOnCustomizeNewButton: TTBNewButtonEvent;
|
|
FOnCustomized: TNotifyEvent;
|
|
FOnCustomizeDelete: TTBButtonEvent;
|
|
FOnCustomizeAdded: TTBButtonEvent;
|
|
FOnCustomizing: TNotifyEvent;
|
|
FOnCustomizeReset: TNotifyEvent;
|
|
{ Toolbar menu support }
|
|
FCaptureChangeCancels: Boolean;
|
|
FInMenuLoop: Boolean;
|
|
FTempMenu: TPopupMenu;
|
|
FButtonMenu: TMenuItem;
|
|
FMenuButton: TToolButton;
|
|
FMenuResult: Boolean;
|
|
FMenuDropped: Boolean;
|
|
FMenu: TMainMenu;
|
|
FCustomizeKeyName: string;
|
|
FCustomizeValueName: string;
|
|
FOurFont: Integer;
|
|
FStockFont: Integer;
|
|
function ButtonIndex(OldIndex, ALeft, ATop: Integer): Integer;
|
|
procedure CanvasChanged(Sender: TObject);
|
|
function DoGetButton(NMToolbar: PNMToolbar): Boolean;
|
|
procedure LoadImages(AImages: TCustomImageList);
|
|
function GetButton(Index: Integer): TToolButton;
|
|
function GetButtonCount: Integer;
|
|
procedure GetButtonSize(var AWidth, AHeight: Integer);
|
|
function GetRowCount: Integer;
|
|
procedure SetList(Value: Boolean);
|
|
procedure SetShowCaptions(Value: Boolean);
|
|
procedure SetFlat(Value: Boolean);
|
|
procedure SetTransparent(Value: Boolean);
|
|
procedure SetWrapable(Value: Boolean);
|
|
procedure InsertButton(Control: TControl);
|
|
procedure RemoveButton(Control: TControl);
|
|
function RefreshButton(Index: Integer): Boolean;
|
|
procedure UpdateButton(Index: Integer);
|
|
procedure UpdateButtons;
|
|
procedure UpdateButtonState(Index: Integer);
|
|
procedure UpdateButtonStates;
|
|
function UpdateItem(Message, FromIndex, ToIndex: Integer): Boolean;
|
|
function UpdateItem2(Message, FromIndex, ToIndex: Integer): Boolean;
|
|
procedure ClearTempMenu;
|
|
procedure CreateButtons(NewWidth, NewHeight: Integer);
|
|
procedure SetButtonWidth(Value: Integer);
|
|
procedure SetButtonHeight(Value: Integer);
|
|
procedure UpdateImages;
|
|
procedure ImageListChange(Sender: TObject);
|
|
procedure SetImageList(Value: HImageList);
|
|
procedure SetImages(Value: TCustomImageList);
|
|
procedure DisabledImageListChange(Sender: TObject);
|
|
procedure SetDisabledImageList(Value: HImageList);
|
|
procedure SetDisabledImages(Value: TCustomImageList);
|
|
procedure HotImageListChange(Sender: TObject);
|
|
procedure SetHotImageList(Value: HImageList);
|
|
procedure SetHotImages(Value: TCustomImageList);
|
|
procedure SetIndent(Value: Integer);
|
|
procedure SetMenu(const Value: TMainMenu);
|
|
procedure AdjustControl(Control: TControl);
|
|
procedure RecreateButtons;
|
|
procedure RecreateButtonsFromToolbar;
|
|
procedure BeginUpdate;
|
|
procedure EndUpdate;
|
|
procedure ResizeButtons;
|
|
procedure SaveButtons(Save: Boolean);
|
|
function InternalButtonCount: Integer;
|
|
function ReorderButton(OldIndex, ALeft, ATop: Integer): Integer;
|
|
procedure WMCaptureChanged(var Message: TMessage); message WM_CAPTURECHANGED;
|
|
procedure WMEraseBkgnd(var Message: TWMEraseBkgnd); message WM_ERASEBKGND;
|
|
procedure WMGetDlgCode(var Message: TMessage); message WM_GETDLGCODE;
|
|
procedure WMGetText(var Message: TWMGetText); message WM_GETTEXT;
|
|
procedure WMGetTextLength(var Message: TWMGetTextLength); message WM_GETTEXTLENGTH;
|
|
procedure WMKeyDown(var Message: TWMKeyDown); message WM_KEYDOWN;
|
|
procedure WMNotifyFormat(var Message: TMessage); message WM_NOTIFYFORMAT;
|
|
procedure WMSetText(var Message: TWMSetText); message WM_SETTEXT;
|
|
procedure WMSize(var Message: TWMSize); message WM_SIZE;
|
|
procedure WMSysChar(var Message: TWMSysChar); message WM_SYSCHAR;
|
|
procedure WMSysCommand(var Message: TWMSysCommand); message WM_SYSCOMMAND;
|
|
procedure WMWindowPosChanged(var Message: TWMWindowPosChanged); message WM_WINDOWPOSCHANGED;
|
|
procedure WMWindowPosChanging(var Message: TWMWindowPosChanging); message WM_WINDOWPOSCHANGING;
|
|
procedure CMColorChanged(var Message: TMessage); message CM_COLORCHANGED;
|
|
procedure CMControlChange(var Message: TCMControlChange); message CM_CONTROLCHANGE;
|
|
procedure CMDialogChar(var Message: TCMDialogChar); message CM_DIALOGCHAR;
|
|
procedure CMEnabledChanged(var Message: TMessage); message CM_ENABLEDCHANGED;
|
|
procedure CMFontChanged(var Message); message CM_FONTCHANGED;
|
|
procedure CMParentColorChanged(var Message: TMessage); message CM_PARENTCOLORCHANGED;
|
|
procedure CNChar(var Message: TWMChar); message CN_CHAR;
|
|
procedure CNSysKeyDown(var Message: TWMSysKeyDown); message CN_SYSKEYDOWN;
|
|
procedure CMSysFontChanged(var Message: TMessage); message CM_SYSFONTCHANGED;
|
|
procedure CNDropDownClosed(var Message: TMessage); message CN_DROPDOWNCLOSED;
|
|
procedure CNNotify(var Message: TWMNotify); message CN_NOTIFY;
|
|
procedure SetCustomizable(const Value: Boolean);
|
|
protected
|
|
procedure AlignControls(AControl: TControl; var Rect: TRect); override;
|
|
function CanAutoSize(var NewWidth, NewHeight: Integer): Boolean; override;
|
|
procedure CancelMenu; dynamic;
|
|
procedure ChangeScale(M, D: Integer); override;
|
|
function CheckMenuDropdown(Button: TToolButton): Boolean; dynamic;
|
|
procedure ClickButton(Button: TToolButton); dynamic;
|
|
procedure CreateParams(var Params: TCreateParams); override;
|
|
procedure CreateWnd; override;
|
|
function CustomDraw(const ARect: TRect; Stage: TCustomDrawStage): Boolean; virtual;
|
|
function CustomDrawButton(Button: TToolButton; State: TCustomDrawState;
|
|
Stage: TCustomDrawStage; var Flags: TTBCustomDrawFlags): Boolean; virtual;
|
|
function DoQueryInsert(Index: Integer): Boolean; virtual;
|
|
function DoQueryDelete(Index: Integer): Boolean; virtual;
|
|
function FindButtonFromAccel(Accel: Word): TToolButton;
|
|
procedure GetChildren(Proc: TGetChildProc; Root: TComponent); override;
|
|
procedure InitMenu(Button: TToolButton); dynamic;
|
|
function IsCustomDrawn(Target: TCustomDrawTarget; Stage: TCustomDrawStage): Boolean; virtual;
|
|
procedure Loaded; override;
|
|
procedure Notification(AComponent: TComponent;
|
|
Operation: TOperation); override;
|
|
procedure RepositionButton(Index: Integer);
|
|
procedure RepositionButtons(Index: Integer);
|
|
procedure WndProc(var Message: TMessage); override;
|
|
function WrapButtons(var NewWidth, NewHeight: Integer): Boolean;
|
|
public
|
|
constructor Create(AOwner: TComponent); override;
|
|
destructor Destroy; override;
|
|
procedure FlipChildren(AllLevels: Boolean); override;
|
|
function TrackMenu(Button: TToolButton): Boolean; dynamic;
|
|
property ButtonCount: Integer read GetButtonCount;
|
|
property Buttons[Index: Integer]: TToolButton read GetButton;
|
|
property Canvas: TCanvas read FCanvas;
|
|
property CustomizeKeyName: string read FCustomizeKeyName write FCustomizeKeyName;
|
|
property CustomizeValueName: string read FCustomizeValueName write FCustomizeValueName;
|
|
property RowCount: Integer read GetRowCount;
|
|
published
|
|
property Align default alTop;
|
|
property Anchors;
|
|
property AutoSize;
|
|
property BorderWidth;
|
|
property ButtonHeight: Integer read FButtonHeight write SetButtonHeight default 22;
|
|
property ButtonWidth: Integer read FButtonWidth write SetButtonWidth default 23;
|
|
property Caption;
|
|
property Color;
|
|
property Constraints;
|
|
property Ctl3D;
|
|
property Customizable: Boolean read FCustomizable write SetCustomizable default False;
|
|
property DisabledImages: TCustomImageList read FDisabledImages write SetDisabledImages;
|
|
property DockSite;
|
|
property DragCursor;
|
|
property DragKind;
|
|
property DragMode;
|
|
property EdgeBorders default [ebTop];
|
|
property EdgeInner;
|
|
property EdgeOuter;
|
|
property Enabled;
|
|
property Flat: Boolean read FFlat write SetFlat default False;
|
|
property Font;
|
|
property Height default 32;
|
|
property HotImages: TCustomImageList read FHotImages write SetHotImages;
|
|
property Images: TCustomImageList read FImages write SetImages;
|
|
property Indent: Integer read FIndent write SetIndent default 0;
|
|
property List: Boolean read FList write SetList default False;
|
|
property Menu: TMainMenu read FMenu write SetMenu;
|
|
property ParentColor;
|
|
property ParentFont;
|
|
property ParentShowHint;
|
|
property PopupMenu;
|
|
property ShowCaptions: Boolean read FShowCaptions write SetShowCaptions default False;
|
|
property ShowHint;
|
|
property TabOrder;
|
|
property TabStop;
|
|
property Transparent: Boolean read FTransparent write SetTransparent default False;
|
|
property Visible;
|
|
property Wrapable: Boolean read FWrapable write SetWrapable default True;
|
|
property OnAdvancedCustomDraw: TTBAdvancedCustomDrawEvent
|
|
read FOnAdvancedCustomDraw write FOnAdvancedCustomDraw;
|
|
property OnAdvancedCustomDrawButton: TTBAdvancedCustomDrawBtnEvent
|
|
read FOnAdvancedCustomDrawButton write FOnAdvancedCustomDrawButton;
|
|
property OnClick;
|
|
property OnContextPopup;
|
|
property OnCustomDraw: TTBCustomDrawEvent read FOnCustomDraw write FOnCustomDraw;
|
|
property OnCustomDrawButton: TTBCustomDrawBtnEvent read FOnCustomDrawButton
|
|
write FOnCustomDrawButton;
|
|
property OnCustomizeAdded: TTBButtonEvent read FOnCustomizeAdded write FOnCustomizeAdded;
|
|
property OnCustomizeCanInsert: TTBCustomizeQueryEvent read FOnCustomizeCanInsert
|
|
write FOnCustomizeCanInsert;
|
|
property OnCustomizeCanDelete: TTBCustomizeQueryEvent read FOnCustomizeCanDelete
|
|
write FOnCustomizeCanDelete;
|
|
property OnCustomized: TNotifyEvent read FOnCustomized write FOnCustomized;
|
|
property OnCustomizeDelete: TTBButtonEvent read FOnCustomizeDelete write FOnCustomizeDelete;
|
|
property OnCustomizing: TNotifyEvent read FOnCustomizing write FOnCustomizing;
|
|
property OnCustomizeNewButton: TTBNewButtonEvent read FOnCustomizeNewButton
|
|
write FOnCustomizeNewButton;
|
|
property OnCustomizeReset: TNotifyEvent read FOnCustomizeReset write FOnCustomizeReset;
|
|
property OnDblClick;
|
|
property OnDockDrop;
|
|
property OnDockOver;
|
|
property OnDragDrop;
|
|
property OnDragOver;
|
|
property OnEndDock;
|
|
property OnEndDrag;
|
|
property OnEnter;
|
|
property OnExit;
|
|
property OnGetSiteInfo;
|
|
property OnMouseDown;
|
|
property OnMouseMove;
|
|
property OnMouseUp;
|
|
property OnResize;
|
|
property OnStartDock;
|
|
property OnStartDrag;
|
|
property OnUnDock;
|
|
end;
|
|
|
|
TXPMenu = class(XPMenu.TXPMenu)
|
|
private
|
|
FActive: boolean;
|
|
FForm: TForm;
|
|
FFont: TFont;
|
|
FColor: TColor;
|
|
FIconBackColor: TColor;
|
|
FMenuBarColor: TColor;
|
|
FCheckedColor: TColor;
|
|
FSeparatorColor: TColor;
|
|
FSelectBorderColor: TColor;
|
|
FSelectColor: TColor;
|
|
FDisabledColor: TColor;
|
|
FSelectFontColor: TColor;
|
|
FIconWidth: integer;
|
|
FDrawSelect: boolean;
|
|
FUseSystemColors: boolean;
|
|
|
|
FFColor, FFIconBackColor, FFSelectColor, FFSelectBorderColor,
|
|
FFSelectFontColor, FCheckedAreaColor, FCheckedAreaSelectColor,
|
|
FFCheckedColor, FFMenuBarColor, FFDisabledColor, FFSeparatorColor,
|
|
FMenuBorderColor, FMenuShadowColor: TColor;
|
|
|
|
Is16Bit: boolean;
|
|
FOverrideOwnerDraw: boolean;
|
|
{FRefreshOnChange: boolean;}
|
|
FGradient: boolean;
|
|
ImgLstHandle: HWND;
|
|
ImgLstIndex: integer;
|
|
FFlatMenu: boolean;
|
|
|
|
procedure SetActive(const Value: boolean);
|
|
procedure SetForm(const Value: TForm);
|
|
procedure SetFont(const Value: TFont);
|
|
procedure SetColor(const Value: TColor);
|
|
procedure SetIconBackColor(const Value: TColor);
|
|
procedure SetMenuBarColor(const Value: TColor);
|
|
procedure SetCheckedColor(const Value: TColor);
|
|
procedure SetDisabledColor(const Value: TColor);
|
|
procedure SetSelectColor(const Value: TColor);
|
|
procedure SetSelectBorderColor(const Value: TColor);
|
|
procedure SetSeparatorColor(const Value: TColor);
|
|
procedure SetSelectFontColor(const Value: TColor);
|
|
procedure SetIconWidth(const Value: integer);
|
|
procedure SetDrawSelect(const Value: boolean);
|
|
procedure SetUseSystemColors(const Value: boolean);
|
|
procedure SetOverrideOwnerDraw(const Value: boolean);
|
|
{procedure SetRefreshOnChange(const Value: boolean);}
|
|
procedure SetGradient(const Value: boolean);
|
|
procedure SetFlatMenu(const Value: boolean);
|
|
|
|
|
|
protected
|
|
procedure InitMenueItems(Enable: boolean);
|
|
procedure DrawItem(Sender: TObject; ACanvas: TCanvas; ARect: TRect;
|
|
Selected: Boolean);
|
|
procedure MenueDrawItem(Sender: TObject; ACanvas: TCanvas; ARect: TRect;
|
|
Selected: Boolean);
|
|
procedure ActivateMenuItem(MenuItem: TMenuItem);
|
|
procedure SetGlobalColor(ACanvas: TCanvas);
|
|
procedure DrawTopMenuItem(Sender: TObject; ACanvas: TCanvas; ARect: TRect;
|
|
IsRightToLeft: boolean);
|
|
procedure DrawCheckedItem(FMenuItem: TMenuItem; Selected,
|
|
HasImgLstBitmap: boolean; ACanvas: TCanvas; CheckedRect: TRect);
|
|
procedure DrawTheText(txt, ShortCuttext: string; ACanvas: TCanvas;
|
|
TextRect: TRect; Selected, Enabled, Default, TopMenu,
|
|
IsRightToLeft: boolean; TextFormat: integer);
|
|
procedure DrawIcon(Sender: TObject; ACanvas: TCanvas; B: TBitmap;
|
|
IconRect: Trect; Hot, Selected, Enabled, Checked, FTopMenu,
|
|
IsRightToLeft: boolean);
|
|
procedure DrawArrow(ACanvas: TCanvas; X, Y: integer);
|
|
procedure MeasureItem(Sender: TObject; ACanvas: TCanvas;
|
|
var Width, Height: Integer);
|
|
|
|
{procedure MenuChange(Sender: TObject; Source: TMenuItem; Rebuild: Boolean);}
|
|
function GetImageExtent(MenuItem: TMenuItem): TPoint;
|
|
procedure ToolBarDrawButton(Sender: TToolBar;
|
|
Button: TToolButton; State: TCustomDrawState; var DefaultDraw: Boolean);
|
|
|
|
function TopMenuFontColor(ACanvas: TCanvas; Color: TColor): TColor;
|
|
procedure DrawGradient(ACanvas: TCanvas; ARect: TRect;
|
|
IsRightToLeft: boolean);
|
|
|
|
procedure DrawWindowBorder(hWnd: HWND; IsRightToLeft: boolean);
|
|
procedure Notification(AComponent: TComponent;
|
|
Operation: TOperation); override;
|
|
|
|
|
|
public
|
|
constructor Create(AOwner: TComponent); override;
|
|
destructor Destroy; override;
|
|
property Form: TForm read FForm write SetForm;
|
|
published
|
|
property Font: TFont read FFont write SetFont;
|
|
property Color: TColor read FColor write SetColor;
|
|
property IconBackColor: TColor read FIconBackColor write SetIconBackColor;
|
|
property MenuBarColor: TColor read FMenuBarColor write SetMenuBarColor;
|
|
property SelectColor: TColor read FSelectColor write SetSelectColor;
|
|
property SelectBorderColor: TColor read FSelectBorderColor
|
|
write SetSelectBorderColor;
|
|
property SelectFontColor: TColor read FSelectFontColor
|
|
write SetSelectFontColor;
|
|
property DisabledColor: TColor read FDisabledColor write SetDisabledColor;
|
|
property SeparatorColor: TColor read FSeparatorColor
|
|
write SetSeparatorColor;
|
|
property CheckedColor: TColor read FCheckedColor write SetCheckedColor;
|
|
property IconWidth: integer read FIconWidth write SetIconWidth;
|
|
property DrawSelect: boolean read FDrawSelect write SetDrawSelect;
|
|
property UseSystemColors: boolean read FUseSystemColors
|
|
write SetUseSystemColors;
|
|
property OverrideOwnerDraw: boolean read FOverrideOwnerDraw
|
|
write SetOverrideOwnerDraw;
|
|
{property RefreshOnChange: boolean read FRefreshOnChange
|
|
write SetRefreshOnChange}
|
|
property Gradient: boolean read FGradient write SetGradient;
|
|
property FlatMenu: boolean read FFlatMenu write SetFlatMenu;
|
|
property Active: boolean read FActive write SetActive;
|
|
end;
|