mirror of
https://github.com/HeidiSQL/HeidiSQL.git
synced 2025-08-26 11:17:57 +08:00
836 lines
28 KiB
ObjectPascal
836 lines
28 KiB
ObjectPascal
|
|
{*****************************************************************************}
|
|
{ }
|
|
{ Tnt Delphi Unicode Controls }
|
|
{ http://www.tntware.com/delphicontrols/unicode/ }
|
|
{ Version: 2.3.0 }
|
|
{ }
|
|
{ Copyright (c) 2002-2007, Troy Wolbrink (troy.wolbrink@tntware.com) }
|
|
{ }
|
|
{*****************************************************************************}
|
|
|
|
unit TntActnList;
|
|
|
|
{$INCLUDE compilers.inc}
|
|
|
|
interface
|
|
|
|
uses
|
|
Classes, Controls, ActnList, Buttons, ExtCtrls, ComCtrls, StdCtrls, Menus;
|
|
|
|
type
|
|
{TNT-WARN TActionList}
|
|
TTntActionList = class(TActionList{TNT-ALLOW TActionList})
|
|
private
|
|
FCheckActionsTimer: TTimer;
|
|
procedure CheckActions(Sender: TObject);
|
|
public
|
|
constructor Create(AOwner: TComponent); override;
|
|
end;
|
|
|
|
ITntAction = interface
|
|
['{59D0AE37-8161-4AD6-9102-14B28E5761EB}']
|
|
end;
|
|
|
|
//---------------------------------------------------------------------------------------------
|
|
// ACTIONS
|
|
//---------------------------------------------------------------------------------------------
|
|
|
|
{TNT-WARN TCustomAction}
|
|
TTntCustomAction = class(TCustomAction{TNT-ALLOW TCustomAction}, ITntAction)
|
|
private
|
|
function GetCaption: WideString;
|
|
procedure SetCaption(const Value: WideString);
|
|
function GetHint: WideString;
|
|
procedure SetHint(const Value: WideString);
|
|
protected
|
|
procedure DefineProperties(Filer: TFiler); override;
|
|
public
|
|
procedure Assign(Source: TPersistent); override;
|
|
public
|
|
property Caption: WideString read GetCaption write SetCaption;
|
|
property Hint: WideString read GetHint write SetHint;
|
|
end;
|
|
|
|
{TNT-WARN TAction}
|
|
TTntAction = class(TAction{TNT-ALLOW TAction}, ITntAction)
|
|
private
|
|
function GetCaption: WideString;
|
|
procedure SetCaption(const Value: WideString);
|
|
function GetHint: WideString;
|
|
procedure SetHint(const Value: WideString);
|
|
protected
|
|
procedure DefineProperties(Filer: TFiler); override;
|
|
public
|
|
procedure Assign(Source: TPersistent); override;
|
|
published
|
|
property Caption: WideString read GetCaption write SetCaption;
|
|
property Hint: WideString read GetHint write SetHint;
|
|
end;
|
|
|
|
//---------------------------------------------------------------------------------------------
|
|
|
|
// MENU ACTION LINK
|
|
//---------------------------------------------------------------------------------------------
|
|
|
|
{TNT-WARN TMenuActionLink}
|
|
TTntMenuActionLink = class(TMenuActionLink{TNT-ALLOW TMenuActionLink})
|
|
protected
|
|
function IsCaptionLinked: Boolean; override;
|
|
function IsHintLinked: Boolean; override;
|
|
procedure SetCaption(const Value: string{TNT-ALLOW string}); override;
|
|
procedure SetHint(const Value: string{TNT-ALLOW string}); override;
|
|
end;
|
|
|
|
//---------------------------------------------------------------------------------------------
|
|
// CONTROL ACTION LINKS
|
|
//---------------------------------------------------------------------------------------------
|
|
|
|
{TNT-WARN TListViewActionLink}
|
|
TTntListViewActionLink = class(TListViewActionLink{TNT-ALLOW TListViewActionLink})
|
|
protected
|
|
function IsCaptionLinked: Boolean; override;
|
|
function IsHintLinked: Boolean; override;
|
|
procedure SetCaption(const Value: string{TNT-ALLOW string}); override;
|
|
procedure SetHint(const Value: string{TNT-ALLOW string}); override;
|
|
end;
|
|
|
|
{TNT-WARN TComboBoxExActionLink}
|
|
TTntComboBoxExActionLink = class(TComboBoxExActionLink{TNT-ALLOW TComboBoxExActionLink})
|
|
protected
|
|
function IsCaptionLinked: Boolean; override;
|
|
function IsHintLinked: Boolean; override;
|
|
procedure SetCaption(const Value: string{TNT-ALLOW string}); override;
|
|
procedure SetHint(const Value: string{TNT-ALLOW string}); override;
|
|
end;
|
|
|
|
{TNT-WARN TSpeedButtonActionLink}
|
|
TTntSpeedButtonActionLink = class(TSpeedButtonActionLink{TNT-ALLOW TSpeedButtonActionLink})
|
|
protected
|
|
function IsCaptionLinked: Boolean; override;
|
|
function IsHintLinked: Boolean; override;
|
|
procedure SetCaption(const Value: string{TNT-ALLOW string}); override;
|
|
procedure SetHint(const Value: string{TNT-ALLOW string}); override;
|
|
{$IFDEF COMPILER_10_UP}
|
|
function IsImageIndexLinked: Boolean; override;
|
|
procedure SetImageIndex(Value: Integer); override;
|
|
{$ENDIF}
|
|
end;
|
|
|
|
{$IFDEF COMPILER_10_UP}
|
|
{TNT-WARN TBitBtnActionLink}
|
|
TTntBitBtnActionLink = class(TBitBtnActionLink{TNT-ALLOW TBitBtnActionLink})
|
|
protected
|
|
function IsCaptionLinked: Boolean; override;
|
|
function IsHintLinked: Boolean; override;
|
|
procedure SetCaption(const Value: string{TNT-ALLOW string}); override;
|
|
procedure SetHint(const Value: string{TNT-ALLOW string}); override;
|
|
{$IFDEF COMPILER_10_UP}
|
|
function IsImageIndexLinked: Boolean; override;
|
|
procedure SetImageIndex(Value: Integer); override;
|
|
{$ENDIF}
|
|
end;
|
|
{$ENDIF}
|
|
|
|
{TNT-WARN TToolButtonActionLink}
|
|
TTntToolButtonActionLink = class(TToolButtonActionLink{TNT-ALLOW TToolButtonActionLink})
|
|
protected
|
|
function IsCaptionLinked: Boolean; override;
|
|
function IsHintLinked: Boolean; override;
|
|
procedure SetCaption(const Value: string{TNT-ALLOW string}); override;
|
|
procedure SetHint(const Value: string{TNT-ALLOW string}); override;
|
|
end;
|
|
|
|
{TNT-WARN TButtonActionLink}
|
|
TTntButtonActionLink = class(TButtonActionLink{TNT-ALLOW TButtonActionLink})
|
|
protected
|
|
function IsCaptionLinked: Boolean; override;
|
|
function IsHintLinked: Boolean; override;
|
|
procedure SetCaption(const Value: string{TNT-ALLOW string}); override;
|
|
procedure SetHint(const Value: string{TNT-ALLOW string}); override;
|
|
end;
|
|
|
|
{TNT-WARN TWinControlActionLink}
|
|
TTntWinControlActionLink = class(TWinControlActionLink{TNT-ALLOW TWinControlActionLink})
|
|
protected
|
|
function IsCaptionLinked: Boolean; override;
|
|
function IsHintLinked: Boolean; override;
|
|
procedure SetCaption(const Value: string{TNT-ALLOW string}); override;
|
|
procedure SetHint(const Value: string{TNT-ALLOW string}); override;
|
|
end;
|
|
|
|
{TNT-WARN TControlActionLink}
|
|
TTntControlActionLink = class(TControlActionLink{TNT-ALLOW TControlActionLink})
|
|
protected
|
|
function IsCaptionLinked: Boolean; override;
|
|
function IsHintLinked: Boolean; override;
|
|
procedure SetCaption(const Value: string{TNT-ALLOW string}); override;
|
|
procedure SetHint(const Value: string{TNT-ALLOW string}); override;
|
|
end;
|
|
|
|
//---------------------------------------------------------------------------------------------
|
|
// helper procs
|
|
//---------------------------------------------------------------------------------------------
|
|
|
|
//-- TCustomAction helper routines
|
|
procedure TntAction_SetCaption(Action: TCustomAction{TNT-ALLOW TCustomAction}; const Value: WideString);
|
|
function TntAction_GetCaption(Action: TCustomAction{TNT-ALLOW TCustomAction}): WideString;
|
|
function TntAction_GetNewCaption(Action: TCustomAction{TNT-ALLOW TCustomAction}; const Default: WideString): WideString;
|
|
procedure TntAction_SetHint(Action: TCustomAction{TNT-ALLOW TCustomAction}; const Value: WideString);
|
|
function TntAction_GetHint(Action: TCustomAction{TNT-ALLOW TCustomAction}): WideString;
|
|
function TntAction_GetNewHint(Action: TCustomAction{TNT-ALLOW TCustomAction}; const Default: WideString): WideString;
|
|
procedure TntAction_AfterInherited_Assign(Action: TCustomAction{TNT-ALLOW TCustomAction}; Source: TPersistent);
|
|
|
|
// -- TControl helper routines
|
|
function TntControl_GetActionLinkClass(Control: TControl; InheritedLinkClass: TControlActionLinkClass): TControlActionLinkClass;
|
|
procedure TntControl_BeforeInherited_ActionChange(Control: TControl; Sender: TObject; CheckDefaults: Boolean);
|
|
|
|
// -- TControlActionLink helper routines
|
|
function TntActionLink_IsCaptionLinked(InheritedIsCaptionLinked: Boolean; Action: TBasicAction; FClient: TControl): Boolean;
|
|
function TntActionLink_IsHintLinked(InheritedIsHintLinked: Boolean; Action: TBasicAction; FClient: TControl): Boolean;
|
|
procedure TntActionLink_SetCaption(IsCaptionLinked: Boolean; Action: TBasicAction; FClient: TControl; const Value: string{TNT-ALLOW string});
|
|
procedure TntActionLink_SetHint(IsHintLinked: Boolean; Action: TBasicAction; FClient: TControl; const Value: string{TNT-ALLOW string});
|
|
|
|
type
|
|
TUpgradeActionListItemsProc = procedure (ActionList: TTntActionList);
|
|
|
|
var
|
|
UpgradeActionListItemsProc: TUpgradeActionListItemsProc;
|
|
|
|
implementation
|
|
|
|
uses
|
|
SysUtils, TntMenus, TntClasses, TntControls;
|
|
|
|
{ TActionListList }
|
|
|
|
type
|
|
TActionListList = class(TList)
|
|
private
|
|
FActionList: TTntActionList;
|
|
protected
|
|
procedure Notify(Ptr: Pointer; Action: TListNotification); override;
|
|
end;
|
|
|
|
procedure TActionListList.Notify(Ptr: Pointer; Action: TListNotification);
|
|
begin
|
|
inherited;
|
|
if (Action = lnAdded) and (FActionList <> nil) and (Ptr <> nil)
|
|
and (not Supports(TObject(Ptr), ITntAction)) then
|
|
begin
|
|
FActionList.FCheckActionsTimer.Enabled := False;
|
|
FActionList.FCheckActionsTimer.Enabled := True;
|
|
end;
|
|
end;
|
|
|
|
{ THackActionList }
|
|
|
|
type
|
|
{$IFDEF COMPILER_6} // verified against VCL source in Delphi 6 and BCB 6
|
|
THackCustomActionList = class(TComponent)
|
|
private
|
|
FActions: TList;
|
|
end;
|
|
{$ENDIF}
|
|
{$IFDEF DELPHI_7} // verified against VCL source in Delphi 7
|
|
THackCustomActionList = class(TComponent)
|
|
private
|
|
FActions: TList;
|
|
end;
|
|
{$ENDIF}
|
|
{$IFDEF DELPHI_9} // verified against VCL source in Delphi 9
|
|
THackCustomActionList = class(TComponent)
|
|
private
|
|
FActions: TList;
|
|
end;
|
|
{$ENDIF}
|
|
{$IFDEF DELPHI_10} // verified against VCL source in Delphi 10
|
|
THackCustomActionList = class(TComponent)
|
|
private
|
|
FActions: TList;
|
|
end;
|
|
{$ENDIF}
|
|
|
|
{ TTntActionList }
|
|
|
|
constructor TTntActionList.Create(AOwner: TComponent);
|
|
begin
|
|
inherited;
|
|
if (csDesigning in ComponentState) then begin
|
|
FCheckActionsTimer := TTimer.Create(Self);
|
|
FCheckActionsTimer.Enabled := False;
|
|
FCheckActionsTimer.Interval := 50;
|
|
FCheckActionsTimer.OnTimer := CheckActions;
|
|
//
|
|
THackCustomActionList(Self).FActions.Free;
|
|
THackCustomActionList(Self).FActions := TActionListList.Create;
|
|
TActionListList(THackCustomActionList(Self).FActions).FActionList := Self;
|
|
end;
|
|
end;
|
|
|
|
procedure TTntActionList.CheckActions(Sender: TObject);
|
|
begin
|
|
if FCheckActionsTimer <> nil then begin
|
|
FCheckActionsTimer.Enabled := False;
|
|
end;
|
|
Assert(csDesigning in ComponentState);
|
|
Assert(Assigned(UpgradeActionListItemsProc));
|
|
UpgradeActionListItemsProc(Self);
|
|
end;
|
|
|
|
{ TCustomActionHelper }
|
|
|
|
type
|
|
TCustomActionHelper = class(TComponent)
|
|
private
|
|
FAction: TCustomAction{TNT-ALLOW TCustomAction};
|
|
private
|
|
FCaption: WideString;
|
|
FSettingNewCaption: Boolean;
|
|
FOldWideCaption: WideString;
|
|
FNewAnsiCaption: AnsiString;
|
|
procedure SetAnsiCaption(const Value: AnsiString);
|
|
function SettingNewCaption: Boolean;
|
|
procedure SetCaption(const Value: WideString);
|
|
function GetCaption: WideString;
|
|
private
|
|
FHint: WideString;
|
|
FSettingNewHint: Boolean;
|
|
FOldWideHint: WideString;
|
|
FNewAnsiHint: AnsiString;
|
|
procedure SetAnsiHint(const Value: AnsiString);
|
|
function SettingNewHint: Boolean;
|
|
procedure SetHint(const Value: WideString);
|
|
function GetHint: WideString;
|
|
end;
|
|
|
|
procedure TCustomActionHelper.SetAnsiCaption(const Value: AnsiString);
|
|
begin
|
|
FAction.Caption := Value;
|
|
if (Value = '') and (FNewAnsiCaption <> '') then
|
|
FOldWideCaption := '';
|
|
end;
|
|
|
|
function TCustomActionHelper.SettingNewCaption: Boolean;
|
|
begin
|
|
Result := FSettingNewCaption and (FAction.Caption <> FNewAnsiCaption);
|
|
end;
|
|
|
|
function TCustomActionHelper.GetCaption: WideString;
|
|
begin
|
|
if SettingNewCaption then
|
|
Result := FOldWideCaption
|
|
else
|
|
Result := GetSyncedWideString(FCaption, FAction.Caption)
|
|
end;
|
|
|
|
procedure TCustomActionHelper.SetCaption(const Value: WideString);
|
|
begin
|
|
FOldWideCaption := GetCaption;
|
|
FNewAnsiCaption := Value;
|
|
FSettingNewCaption := True;
|
|
try
|
|
SetSyncedWideString(Value, FCaption, FAction.Caption, SetAnsiCaption)
|
|
finally
|
|
FSettingNewCaption := False;
|
|
end;
|
|
end;
|
|
|
|
procedure TCustomActionHelper.SetAnsiHint(const Value: AnsiString);
|
|
begin
|
|
FAction.Hint := Value;
|
|
if (Value = '') and (FNewAnsiHint <> '') then
|
|
FOldWideHint := '';
|
|
end;
|
|
|
|
function TCustomActionHelper.SettingNewHint: Boolean;
|
|
begin
|
|
Result := FSettingNewHint and (FAction.Hint <> FNewAnsiHint);
|
|
end;
|
|
|
|
function TCustomActionHelper.GetHint: WideString;
|
|
begin
|
|
if SettingNewHint then
|
|
Result := FOldWideHint
|
|
else
|
|
Result := GetSyncedWideString(FHint, FAction.Hint)
|
|
end;
|
|
|
|
procedure TCustomActionHelper.SetHint(const Value: WideString);
|
|
begin
|
|
FOldWideHint := GetHint;
|
|
FNewAnsiHint := Value;
|
|
FSettingNewHint := True;
|
|
try
|
|
SetSyncedWideString(Value, FHint, FAction.Hint, SetAnsiHint)
|
|
finally
|
|
FSettingNewHint := False;
|
|
end;
|
|
end;
|
|
|
|
function FindActionHelper(Action: TCustomAction{TNT-ALLOW TCustomAction}): TCustomActionHelper;
|
|
var
|
|
i: integer;
|
|
begin
|
|
Assert(Action <> nil);
|
|
Result := nil;
|
|
if Supports(Action, ITntAction) then begin
|
|
for i := 0 to Action.ComponentCount - 1 do begin
|
|
if Action.Components[i] is TCustomActionHelper then begin
|
|
Result := TCustomActionHelper(Action.Components[i]);
|
|
break;
|
|
end;
|
|
end;
|
|
if Result = nil then begin
|
|
Result := TCustomActionHelper.Create(Action);
|
|
Result.FAction := Action;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
//-- TCustomAction helper routines
|
|
|
|
procedure TntAction_SetCaption(Action: TCustomAction{TNT-ALLOW TCustomAction}; const Value: WideString);
|
|
begin
|
|
if Supports(Action, ITntAction) then
|
|
with FindActionHelper(Action) do
|
|
SetCaption(Value)
|
|
else
|
|
Action.Caption := Value;
|
|
end;
|
|
|
|
function TntAction_GetCaption(Action: TCustomAction{TNT-ALLOW TCustomAction}): WideString;
|
|
begin
|
|
if Supports(Action, ITntAction) then
|
|
with FindActionHelper(Action) do
|
|
Result := GetCaption
|
|
else
|
|
Result := Action.Caption;
|
|
end;
|
|
|
|
function TntAction_GetNewCaption(Action: TCustomAction{TNT-ALLOW TCustomAction}; const Default: WideString): WideString;
|
|
begin
|
|
Result := Default;
|
|
if Supports(Action, ITntAction) then
|
|
with FindActionHelper(Action) do
|
|
if SettingNewCaption then
|
|
Result := FCaption;
|
|
end;
|
|
|
|
procedure TntAction_SetHint(Action: TCustomAction{TNT-ALLOW TCustomAction}; const Value: WideString);
|
|
begin
|
|
if Supports(Action, ITntAction) then
|
|
with FindActionHelper(Action) do
|
|
SetHint(Value)
|
|
else
|
|
Action.Hint := Value;
|
|
end;
|
|
|
|
function TntAction_GetHint(Action: TCustomAction{TNT-ALLOW TCustomAction}): WideString;
|
|
begin
|
|
if Supports(Action, ITntAction) then
|
|
with FindActionHelper(Action) do
|
|
Result := GetHint
|
|
else
|
|
Result := Action.Hint;
|
|
end;
|
|
|
|
function TntAction_GetNewHint(Action: TCustomAction{TNT-ALLOW TCustomAction}; const Default: WideString): WideString;
|
|
begin
|
|
Result := Default;
|
|
if Supports(Action, ITntAction) then
|
|
with FindActionHelper(Action) do
|
|
if SettingNewHint then
|
|
Result := FHint;
|
|
end;
|
|
|
|
procedure TntAction_AfterInherited_Assign(Action: TCustomAction{TNT-ALLOW TCustomAction}; Source: TPersistent);
|
|
begin
|
|
with Action do begin
|
|
if (Source is TCustomAction{TNT-ALLOW TCustomAction}) then begin
|
|
Caption := TntAction_GetCaption(Source as TCustomAction{TNT-ALLOW TCustomAction});
|
|
Hint := TntAction_GetHint(Source as TCustomAction{TNT-ALLOW TCustomAction});
|
|
end else if (Source is TControl) then begin
|
|
Caption := TntControl_GetText(Source as TControl);
|
|
Hint := TntControl_GetHint(Source as TControl);
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
// -- TControl helper routines
|
|
|
|
function TntControl_GetActionLinkClass(Control: TControl; InheritedLinkClass: TControlActionLinkClass): TControlActionLinkClass;
|
|
begin
|
|
if Control is TCustomListView{TNT-ALLOW TCustomListView} then
|
|
Result := TTntListViewActionLink
|
|
else if Control is TComboBoxEx then
|
|
Result := TTntComboBoxExActionLink
|
|
else if Control is TSpeedButton{TNT-ALLOW TSpeedButton} then
|
|
Result := TTntSpeedButtonActionLink
|
|
{$IFDEF COMPILER_10_UP}
|
|
else if Control is TBitBtn{TNT-ALLOW TBitBtn} then
|
|
Result := TTntBitBtnActionLink
|
|
{$ENDIF}
|
|
else if Control is TToolButton{TNT-ALLOW TToolButton} then
|
|
Result := TTntToolButtonActionLink
|
|
else if Control is TButtonControl then
|
|
Result := TTntButtonActionLink
|
|
else if Control is TWinControl then
|
|
Result := TTntWinControlActionLink
|
|
else
|
|
Result := TTntControlActionLink;
|
|
|
|
Assert(Result.ClassParent = InheritedLinkClass);
|
|
end;
|
|
|
|
procedure TntControl_BeforeInherited_ActionChange(Control: TControl; Sender: TObject; CheckDefaults: Boolean);
|
|
begin
|
|
if (Sender is TCustomAction{TNT-ALLOW TCustomAction}) and Supports(Sender, ITntAction) then begin
|
|
if not CheckDefaults or (TntControl_GetText(Control) = '') or (TntControl_GetText(Control) = Control.Name) then
|
|
TntControl_SetText(Control, TntAction_GetCaption(TCustomAction{TNT-ALLOW TCustomAction}(Sender)));
|
|
if not CheckDefaults or (TntControl_GetHint(Control) = '') then
|
|
TntControl_SetHint(Control, TntAction_GetHint(TCustomAction{TNT-ALLOW TCustomAction}(Sender)));
|
|
end;
|
|
end;
|
|
|
|
// -- TControlActionLink helper routines
|
|
|
|
function TntActionLink_IsCaptionLinked(InheritedIsCaptionLinked: Boolean; Action: TBasicAction; FClient: TControl): Boolean;
|
|
begin
|
|
Result := InheritedIsCaptionLinked
|
|
and (TntAction_GetCaption(Action as TCustomAction{TNT-ALLOW TCustomAction}) = TntControl_GetText(FClient));
|
|
end;
|
|
|
|
function TntActionLink_IsHintLinked(InheritedIsHintLinked: Boolean; Action: TBasicAction; FClient: TControl): Boolean;
|
|
begin
|
|
Result := InheritedIsHintLinked
|
|
and (TntAction_GetHint(Action as TCustomAction{TNT-ALLOW TCustomAction}) = TntControl_GetHint(FClient));
|
|
end;
|
|
|
|
procedure TntActionLink_SetCaption(IsCaptionLinked: Boolean; Action: TBasicAction; FClient: TControl; const Value: string{TNT-ALLOW string});
|
|
begin
|
|
if IsCaptionLinked then
|
|
TntControl_SetText(FClient, TntAction_GetNewCaption(Action as TCustomAction{TNT-ALLOW TCustomAction}, Value));
|
|
end;
|
|
|
|
procedure TntActionLink_SetHint(IsHintLinked: Boolean; Action: TBasicAction; FClient: TControl; const Value: string{TNT-ALLOW string});
|
|
begin
|
|
if IsHintLinked then
|
|
TntControl_SetHint(FClient, TntAction_GetNewHint(Action as TCustomAction{TNT-ALLOW TCustomAction}, Value));
|
|
end;
|
|
|
|
//---------------------------------------------------------------------------------------------
|
|
// ACTIONS
|
|
//---------------------------------------------------------------------------------------------
|
|
|
|
{ TTntCustomAction }
|
|
|
|
procedure TTntCustomAction.Assign(Source: TPersistent);
|
|
begin
|
|
inherited;
|
|
TntAction_AfterInherited_Assign(Self, Source);
|
|
end;
|
|
|
|
procedure TTntCustomAction.DefineProperties(Filer: TFiler);
|
|
begin
|
|
inherited;
|
|
TntPersistent_AfterInherited_DefineProperties(Filer, Self);
|
|
end;
|
|
|
|
function TTntCustomAction.GetCaption: WideString;
|
|
begin
|
|
Result := TntAction_GetCaption(Self);
|
|
end;
|
|
|
|
procedure TTntCustomAction.SetCaption(const Value: WideString);
|
|
begin
|
|
TntAction_SetCaption(Self, Value);
|
|
end;
|
|
|
|
function TTntCustomAction.GetHint: WideString;
|
|
begin
|
|
Result := TntAction_GetHint(Self);
|
|
end;
|
|
|
|
procedure TTntCustomAction.SetHint(const Value: WideString);
|
|
begin
|
|
TntAction_SetHint(Self, Value);
|
|
end;
|
|
|
|
{ TTntAction }
|
|
|
|
procedure TTntAction.Assign(Source: TPersistent);
|
|
begin
|
|
inherited;
|
|
TntAction_AfterInherited_Assign(Self, Source);
|
|
end;
|
|
|
|
procedure TTntAction.DefineProperties(Filer: TFiler);
|
|
begin
|
|
inherited;
|
|
TntPersistent_AfterInherited_DefineProperties(Filer, Self);
|
|
end;
|
|
|
|
function TTntAction.GetCaption: WideString;
|
|
begin
|
|
Result := TntAction_GetCaption(Self);
|
|
end;
|
|
|
|
procedure TTntAction.SetCaption(const Value: WideString);
|
|
begin
|
|
TntAction_SetCaption(Self, Value);
|
|
end;
|
|
|
|
function TTntAction.GetHint: WideString;
|
|
begin
|
|
Result := TntAction_GetHint(Self);
|
|
end;
|
|
|
|
procedure TTntAction.SetHint(const Value: WideString);
|
|
begin
|
|
TntAction_SetHint(Self, Value);
|
|
end;
|
|
|
|
//---------------------------------------------------------------------------------------------
|
|
// MENU ACTION LINK
|
|
//---------------------------------------------------------------------------------------------
|
|
|
|
{ TTntMenuActionLink }
|
|
|
|
function TTntMenuActionLink.IsCaptionLinked: Boolean;
|
|
begin
|
|
Result := inherited IsCaptionLinked
|
|
and WideSameCaption(TntAction_GetCaption(Action as TCustomAction{TNT-ALLOW TCustomAction}), (FClient as TTntMenuItem).Caption);
|
|
end;
|
|
|
|
function TTntMenuActionLink.IsHintLinked: Boolean;
|
|
begin
|
|
Result := inherited IsHintLinked
|
|
and (TntAction_GetHint(Action as TCustomAction{TNT-ALLOW TCustomAction}) = (FClient as TTntMenuItem).Hint);
|
|
end;
|
|
|
|
procedure TTntMenuActionLink.SetCaption(const Value: string{TNT-ALLOW string});
|
|
begin
|
|
if IsCaptionLinked then
|
|
(FClient as TTntMenuItem).Caption := TntAction_GetNewCaption(Action as TCustomAction{TNT-ALLOW TCustomAction}, Value);
|
|
end;
|
|
|
|
procedure TTntMenuActionLink.SetHint(const Value: string{TNT-ALLOW string});
|
|
begin
|
|
if IsHintLinked then
|
|
(FClient as TTntMenuItem).Hint := TntAction_GetNewHint(Action as TCustomAction{TNT-ALLOW TCustomAction}, Value);
|
|
end;
|
|
|
|
//---------------------------------------------------------------------------------------------
|
|
// CONTROL ACTION LINKS
|
|
//---------------------------------------------------------------------------------------------
|
|
|
|
{ TTntListViewActionLink }
|
|
|
|
function TTntListViewActionLink.IsCaptionLinked: Boolean;
|
|
begin
|
|
Result := TntActionLink_IsCaptionLinked(inherited IsCaptionLinked, Action, FClient);
|
|
end;
|
|
|
|
function TTntListViewActionLink.IsHintLinked: Boolean;
|
|
begin
|
|
Result := TntActionLink_IsHintLinked(inherited IsHintLinked, Action, FClient);
|
|
end;
|
|
|
|
procedure TTntListViewActionLink.SetCaption(const Value: string{TNT-ALLOW string});
|
|
begin
|
|
TntActionLink_SetCaption(IsCaptionLinked, Action, FClient, Value);
|
|
end;
|
|
|
|
procedure TTntListViewActionLink.SetHint(const Value: string{TNT-ALLOW string});
|
|
begin
|
|
TntActionLink_SetHint(IsHintLinked, Action, FClient, Value);
|
|
end;
|
|
|
|
{ TTntComboBoxExActionLink }
|
|
|
|
function TTntComboBoxExActionLink.IsCaptionLinked: Boolean;
|
|
begin
|
|
Result := TntActionLink_IsCaptionLinked(inherited IsCaptionLinked, Action, FClient);
|
|
end;
|
|
|
|
function TTntComboBoxExActionLink.IsHintLinked: Boolean;
|
|
begin
|
|
Result := TntActionLink_IsHintLinked(inherited IsHintLinked, Action, FClient);
|
|
end;
|
|
|
|
procedure TTntComboBoxExActionLink.SetCaption(const Value: string{TNT-ALLOW string});
|
|
begin
|
|
TntActionLink_SetCaption(IsCaptionLinked, Action, FClient, Value);
|
|
end;
|
|
|
|
procedure TTntComboBoxExActionLink.SetHint(const Value: string{TNT-ALLOW string});
|
|
begin
|
|
TntActionLink_SetHint(IsHintLinked, Action, FClient, Value);
|
|
end;
|
|
|
|
{ TTntSpeedButtonActionLink }
|
|
|
|
function TTntSpeedButtonActionLink.IsCaptionLinked: Boolean;
|
|
begin
|
|
Result := TntActionLink_IsCaptionLinked(inherited IsCaptionLinked, Action, FClient);
|
|
end;
|
|
|
|
function TTntSpeedButtonActionLink.IsHintLinked: Boolean;
|
|
begin
|
|
Result := TntActionLink_IsHintLinked(inherited IsHintLinked, Action, FClient);
|
|
end;
|
|
|
|
procedure TTntSpeedButtonActionLink.SetCaption(const Value: string{TNT-ALLOW string});
|
|
begin
|
|
TntActionLink_SetCaption(IsCaptionLinked, Action, FClient, Value);
|
|
end;
|
|
|
|
procedure TTntSpeedButtonActionLink.SetHint(const Value: string{TNT-ALLOW string});
|
|
begin
|
|
TntActionLink_SetHint(IsHintLinked, Action, FClient, Value);
|
|
end;
|
|
|
|
{$IFDEF COMPILER_10_UP}
|
|
// bug fix for VCL where ImageIndex on Action ALWAYS overrides the Glyph.
|
|
|
|
function TTntSpeedButtonActionLink.IsImageIndexLinked: Boolean;
|
|
begin
|
|
Result := Action is TCustomAction{TNT-ALLOW TCustomAction}; // taken from TActionLink.IsImageIndexLinked
|
|
end;
|
|
|
|
procedure TTntSpeedButtonActionLink.SetImageIndex(Value: Integer);
|
|
begin
|
|
; // taken from TActionLink.IsImageIndexLinked
|
|
end;
|
|
{$ENDIF}
|
|
|
|
{$IFDEF COMPILER_10_UP}
|
|
{ TTntBitBtnActionLink }
|
|
|
|
function TTntBitBtnActionLink.IsCaptionLinked: Boolean;
|
|
begin
|
|
Result := TntActionLink_IsCaptionLinked(inherited IsCaptionLinked, Action, FClient);
|
|
end;
|
|
|
|
function TTntBitBtnActionLink.IsHintLinked: Boolean;
|
|
begin
|
|
Result := TntActionLink_IsHintLinked(inherited IsHintLinked, Action, FClient);
|
|
end;
|
|
|
|
procedure TTntBitBtnActionLink.SetCaption(const Value: string{TNT-ALLOW string});
|
|
begin
|
|
TntActionLink_SetCaption(IsCaptionLinked, Action, FClient, Value);
|
|
end;
|
|
|
|
procedure TTntBitBtnActionLink.SetHint(const Value: string{TNT-ALLOW string});
|
|
begin
|
|
TntActionLink_SetHint(IsHintLinked, Action, FClient, Value);
|
|
end;
|
|
|
|
{$IFDEF COMPILER_10_UP}
|
|
// bug fix for VCL where ImageIndex on Action ALWAYS overrides the Glyph.
|
|
|
|
function TTntBitBtnActionLink.IsImageIndexLinked: Boolean;
|
|
begin
|
|
Result := Action is TCustomAction{TNT-ALLOW TCustomAction}; // taken from TActionLink.IsImageIndexLinked
|
|
end;
|
|
|
|
procedure TTntBitBtnActionLink.SetImageIndex(Value: Integer);
|
|
begin
|
|
; // taken from TActionLink.IsImageIndexLinked
|
|
end;
|
|
{$ENDIF}
|
|
|
|
{$ENDIF}
|
|
|
|
{ TTntToolButtonActionLink }
|
|
|
|
function TTntToolButtonActionLink.IsCaptionLinked: Boolean;
|
|
begin
|
|
Result := TntActionLink_IsCaptionLinked(inherited IsCaptionLinked, Action, FClient);
|
|
end;
|
|
|
|
function TTntToolButtonActionLink.IsHintLinked: Boolean;
|
|
begin
|
|
Result := TntActionLink_IsHintLinked(inherited IsHintLinked, Action, FClient);
|
|
end;
|
|
|
|
procedure TTntToolButtonActionLink.SetCaption(const Value: string{TNT-ALLOW string});
|
|
begin
|
|
TntActionLink_SetCaption(IsCaptionLinked, Action, FClient, Value);
|
|
end;
|
|
|
|
procedure TTntToolButtonActionLink.SetHint(const Value: string{TNT-ALLOW string});
|
|
begin
|
|
TntActionLink_SetHint(IsHintLinked, Action, FClient, Value);
|
|
end;
|
|
|
|
{ TTntButtonActionLink }
|
|
|
|
function TTntButtonActionLink.IsCaptionLinked: Boolean;
|
|
begin
|
|
Result := TntActionLink_IsCaptionLinked(inherited IsCaptionLinked, Action, FClient);
|
|
end;
|
|
|
|
function TTntButtonActionLink.IsHintLinked: Boolean;
|
|
begin
|
|
Result := TntActionLink_IsHintLinked(inherited IsHintLinked, Action, FClient);
|
|
end;
|
|
|
|
procedure TTntButtonActionLink.SetCaption(const Value: string{TNT-ALLOW string});
|
|
begin
|
|
TntActionLink_SetCaption(IsCaptionLinked, Action, FClient, Value);
|
|
end;
|
|
|
|
procedure TTntButtonActionLink.SetHint(const Value: string{TNT-ALLOW string});
|
|
begin
|
|
TntActionLink_SetHint(IsHintLinked, Action, FClient, Value);
|
|
end;
|
|
|
|
{ TTntWinControlActionLink }
|
|
|
|
function TTntWinControlActionLink.IsCaptionLinked: Boolean;
|
|
begin
|
|
Result := TntActionLink_IsCaptionLinked(inherited IsCaptionLinked, Action, FClient);
|
|
end;
|
|
|
|
function TTntWinControlActionLink.IsHintLinked: Boolean;
|
|
begin
|
|
Result := TntActionLink_IsHintLinked(inherited IsHintLinked, Action, FClient);
|
|
end;
|
|
|
|
procedure TTntWinControlActionLink.SetCaption(const Value: string{TNT-ALLOW string});
|
|
begin
|
|
TntActionLink_SetCaption(IsCaptionLinked, Action, FClient, Value);
|
|
end;
|
|
|
|
procedure TTntWinControlActionLink.SetHint(const Value: string{TNT-ALLOW string});
|
|
begin
|
|
TntActionLink_SetHint(IsHintLinked, Action, FClient, Value);
|
|
end;
|
|
|
|
{ TTntControlActionLink }
|
|
|
|
function TTntControlActionLink.IsCaptionLinked: Boolean;
|
|
begin
|
|
Result := TntActionLink_IsCaptionLinked(inherited IsCaptionLinked, Action, FClient);
|
|
end;
|
|
|
|
function TTntControlActionLink.IsHintLinked: Boolean;
|
|
begin
|
|
Result := TntActionLink_IsHintLinked(inherited IsHintLinked, Action, FClient);
|
|
end;
|
|
|
|
procedure TTntControlActionLink.SetCaption(const Value: string{TNT-ALLOW string});
|
|
begin
|
|
TntActionLink_SetCaption(IsCaptionLinked, Action, FClient, Value);
|
|
end;
|
|
|
|
procedure TTntControlActionLink.SetHint(const Value: string{TNT-ALLOW string});
|
|
begin
|
|
TntActionLink_SetHint(IsHintLinked, Action, FClient, Value);
|
|
end;
|
|
|
|
end.
|