RxFPC:default editor for RxToolPanel

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@6756 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
alexs75 2018-12-14 11:41:03 +00:00
parent 48e5ae174f
commit 246fee7828
10 changed files with 72 additions and 147 deletions

View File

@ -80,27 +80,48 @@ type
procedure ExecuteVerb(Index:integer);override;
end;
(*
{ TRxAppIcon }
{ TToolPanelEditor }
TRxAppIconEditor = class(TComponentEditor)
TToolPanelEditor = class(TComponentEditor)
public
DefaultEditor: TBaseComponentEditor;
constructor Create(AComponent: TComponent; ADesigner: TComponentEditorDesigner); override;
destructor Destroy; override;
function GetVerbCount:integer;override;
function GetVerb(Index:integer):string;override;
procedure ExecuteVerb(Index:integer);override;
end;
*)
procedure Register;
implementation
uses RxLogin, Dialogs, rxconst, RxHistoryNavigator, rxpopupunit,
uses RxLogin, Dialogs, rxconst, RxHistoryNavigator, rxpopupunit, rxtoolbar,
rxceEditLookupFields, rxdbgrid, rxdconst, rxduallist, rxstrutils, Forms;
resourcestring
sTestTRxLoginDialog = 'Test TRxLoginDialog';
// sLoadIcon = 'Load icon';
{ TToolPanelEditor }
function TToolPanelEditor.GetVerbCount: integer;
begin
Result:=1;
end;
function TToolPanelEditor.GetVerb(Index: integer): string;
begin
if Index = 0 then Result:=sRxToolPanelEditor
else Result:='';
end;
procedure TToolPanelEditor.ExecuteVerb(Index: integer);
var
ToolPanel: TToolPanel;
begin
if Index = 0 then
begin
ToolPanel:=GetComponent as TToolPanel;
TCollectionPropertyEditor.ShowCollectionEditor(ToolPanel.Items, ToolPanel, 'Items');
end
else
inherited ExecuteVerb(Index);
end;
{ TRxLoginDialogEditor }
@ -154,74 +175,7 @@ begin
end;
end;
end;
(*
{ TRxAppIcon }
type
PClass = ^TClass;
constructor TRxAppIconEditor.Create(AComponent: TComponent;
ADesigner: TComponentEditorDesigner);
var
CompClass: TClass;
begin
inherited Create(AComponent, ADesigner);
CompClass := PClass(Acomponent)^;
try
PClass(AComponent)^ := TComponent;
DefaultEditor := GetComponentEditor(AComponent, ADesigner);
finally
PClass(AComponent)^ := CompClass;
end;
end;
destructor TRxAppIconEditor.Destroy;
begin
DefaultEditor.Free;
inherited Destroy;
end;
function TRxAppIconEditor.GetVerbCount: integer;
begin
Result:=DefaultEditor.GetVerbCount + 1;
end;
function TRxAppIconEditor.GetVerb(Index: integer): string;
begin
if Index < DefaultEditor.GetVerbCount then
Result := DefaultEditor.GetVerb(Index)
else
begin
case Index - DefaultEditor.GetVerbCount of
0:Result:=sLoadIcon;
end;
end;
end;
procedure TRxAppIconEditor.ExecuteVerb(Index: integer);
var
OpenDialog1: TOpenDialog;
begin
if Index < DefaultEditor.GetVerbCount then
DefaultEditor.ExecuteVerb(Index)
else
begin
case Index - DefaultEditor.GetVerbCount of
0:begin
OpenDialog1:=TOpenDialog.Create(nil);
OpenDialog1.Filter:=sWindowsIcoFiles;
try
if OpenDialog1.Execute then
(Component as TRxAppIcon).LoadFromFile(OpenDialog1.FileName);
finally
OpenDialog1.Free;
end;
Modified;
end;
end;
end;
end;
*)
{ THistoryButtonProperty }
function THistoryButtonProperty.GetAttributes: TPropertyAttributes;
@ -354,7 +308,8 @@ procedure Register;
begin
//
RegisterComponentEditor(TRxLoginDialog, TRxLoginDialogEditor);
//RegisterComponentEditor(TRxAppIcon, TRxAppIconEditor);
RegisterComponentEditor(TToolPanel, TToolPanelEditor);
//
RegisterPropertyEditor(TypeInfo(string), TPopUpColumn, 'FieldName', TPopUpColumnFieldProperty);
RegisterPropertyEditor(TypeInfo(string), TRxHistoryNavigator, 'BackBtn', THistoryButtonProperty);

View File

@ -254,6 +254,10 @@ msgstr ""
msgid "Rx text holder editor"
msgstr ""
#: rxconst.srxtoolpaneleditor
msgid "Rx toolpanel editor"
msgstr ""
#: rxconst.ssecondhalfofyear
msgid "Second half of year"
msgstr ""

View File

@ -261,6 +261,10 @@ msgstr ""
msgid "Rx text holder editor"
msgstr ""
#: rxconst.srxtoolpaneleditor
msgid "Rx toolpanel editor"
msgstr ""
#: rxconst.ssecondhalfofyear
msgid "Second half of year"
msgstr "Druga połowa roku"

View File

@ -251,6 +251,10 @@ msgstr ""
msgid "Rx text holder editor"
msgstr ""
#: rxconst.srxtoolpaneleditor
msgid "Rx toolpanel editor"
msgstr ""
#: rxconst.ssecondhalfofyear
msgid "Second half of year"
msgstr ""

View File

@ -261,6 +261,10 @@ msgstr "Название"
msgid "Rx text holder editor"
msgstr "Редактор RxTextHolder"
#: rxconst.srxtoolpaneleditor
msgid "Rx toolpanel editor"
msgstr "Редактор RxToolPanel"
#: rxconst.ssecondhalfofyear
msgid "Second half of year"
msgstr "Вторая половина года"

View File

@ -267,6 +267,10 @@ msgstr ""
msgid "Rx text holder editor"
msgstr ""
#: rxconst.srxtoolpaneleditor
msgid "Rx toolpanel editor"
msgstr ""
#: rxconst.ssecondhalfofyear
msgid "Second half of year"
msgstr ""

View File

@ -54,8 +54,8 @@ type
TRXHistory = class(TComponent)
private
FButtonNext: string;
FButtonPrior: string;
//FButtonNext: string;
//FButtonPrior: string;
FButtonStyle: TToolbarButtonStyleCntrl;
FNextButton: TToolbarItem;
FNextButtonName: string;
@ -138,8 +138,6 @@ begin
end;
function TRXHistory.SetBtn(const ABtnName: string;var Button:TToolbarItem):boolean;
var
i:integer;
begin
Result:=false;
if not Assigned(FToolPanel) then exit;

View File

@ -83,7 +83,6 @@ type
procedure FillItems(List:TStrings; AVisible:boolean);
procedure UpdateStates;
procedure Localize;
procedure UpdateToolbarOrder;
public
FToolPanel:TToolPanel;
constructor CreateSetupForm(AToolPanel:TToolPanel);
@ -206,13 +205,11 @@ begin
if Act is TCustomAction then
begin
A:=TCustomAction(Act).ShortCut;
// Hide;
if RxSelectShortCut(A) then
begin
TCustomAction(Act).ShortCut:=A;
TListBox(Sender).Invalidate;
end;
// Show;
end;
end;
end;
@ -281,29 +278,6 @@ begin
RadioGroup1.Items.Add(sButtonAlign3);
end;
procedure TToolPanelSetupForm.UpdateToolbarOrder;
var
P, P1: TToolbarItem;
i, j: Integer;
begin
FToolPanel.DisableAlign;
FToolPanel.Items.BeginUpdate;
for i:=0 to ListBtnVisible.Count-1 do
begin
P:=ListBtnVisible.Items.Objects[i] as TToolbarItem;
P1:=FToolPanel.Items[i];
if P <> P1 then
begin
j:=FToolPanel.Items.IndexOf(P);
if j>-1 then
FToolPanel.Items.Exchange(i, j);
end;
end;
FToolPanel.Items.EndUpdate;
FToolPanel.ReAlign;
FToolPanel.EnableAlign;
end;
procedure TToolPanelSetupForm.FormClose(Sender: TObject;
var CloseAction: TCloseAction);
begin
@ -338,59 +312,49 @@ procedure TToolPanelSetupForm.btnLeftClick(Sender: TObject);
begin
BoxMoveSelectedItems(ListBtnAvaliable, ListBtnVisible);
UpdateStates;
UpdateToolbarOrder;
FToolPanel.ReAlign;
end;
procedure TToolPanelSetupForm.btnLeft2Click(Sender: TObject);
begin
BoxMoveAllItems(ListBtnAvaliable, ListBtnVisible);
UpdateStates;
UpdateToolbarOrder;
FToolPanel.ReAlign;
end;
procedure TToolPanelSetupForm.btnRightClick(Sender: TObject);
begin
BoxMoveSelectedItems(ListBtnVisible, ListBtnAvaliable);
UpdateStates;
UpdateToolbarOrder;
FToolPanel.ReAlign;
end;
procedure TToolPanelSetupForm.btnRight2Click(Sender: TObject);
begin
BoxMoveAllItems(ListBtnVisible, ListBtnAvaliable);
UpdateStates;
UpdateToolbarOrder;
FToolPanel.ReAlign;
end;
procedure TToolPanelSetupForm.btnUpClick(Sender: TObject);
var
I, J: Integer;
S: String;
P: TObject;
P: TToolbarItem;
begin
ListBtnVisible.Items.BeginUpdate;
I:=ListBtnVisible.ItemIndex;
J:=I + TComponent(Sender).Tag;
ListBtnVisible.Items.Move(I, J);
S:=ListBtnVisible.Items[I];
P:=ListBtnVisible.Items.Objects[I];
ListBtnVisible.Items[I]:=ListBtnVisible.Items[J];
ListBtnVisible.Items.Objects[I]:=ListBtnVisible.Items.Objects[J];
ListBtnVisible.Items[J]:=S;
ListBtnVisible.Items.Objects[J]:=P;
P:=FToolPanel.Items[i];
P.Index:=J;
ListBtnVisible.ItemIndex:=J;
ListBtnVisible.Items.EndUpdate;
UpdateStates;
UpdateToolbarOrder;
FToolPanel.ReAlign;
end;
constructor TToolPanelSetupForm.CreateSetupForm(AToolPanel: TToolPanel);
var
C: TCustomBitmap;
begin
inherited Create(AToolPanel);
Localize;

View File

@ -96,7 +96,6 @@ type
X, Y: Integer); override;
procedure MouseLeave; override;
procedure Paint; override;
procedure Click; override;
procedure UpdateState(InvalidateOnChange: boolean); override;
procedure SetDesign(AValue:boolean; AToolbarItem:TToolbarItem);
procedure SetEnabled(NewEnabled: boolean); override;
@ -105,6 +104,7 @@ type
procedure CalculatePreferredSize( var PreferredWidth, PreferredHeight: integer; WithThemeSpace: Boolean); override;
public
destructor Destroy; override;
procedure Click; override;
end;
{ TToolbarItem }
@ -235,11 +235,11 @@ type
procedure Loaded; override;
procedure CalculatePreferredSize( var PreferredWidth, PreferredHeight: integer; WithThemeSpace: Boolean); override;
function DoAlignChildControls(TheAlign: TAlign; AControl: TControl; AControlList: TFPList; var ARect: TRect): Boolean; override;
procedure GetPreferredSize(var PreferredWidth, PreferredHeight: integer; Raw: boolean = false; WithThemeSpace: boolean = true); override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Customize(HelpCtx: Longint);
procedure GetPreferredSize(var PreferredWidth, PreferredHeight: integer; Raw: boolean = false; WithThemeSpace: boolean = true); override;
procedure SetBounds(aLeft, aTop, aWidth, aHeight: integer); override;
property DefImgWidth:integer read FDefImgWidth;
property DefImgHeight:integer read FDefImgHeight;
@ -301,7 +301,7 @@ type
implementation
uses Math, RxTBRSetup, LCLProc, rxlclutils, Dialogs, typinfo, rxdconst, GraphType,
LResources, LazVersion, LCLVersion;
LResources, LCLVersion;
{ TToolbarItemsEnumerator }
@ -409,11 +409,8 @@ var
GlyphWidth, GlyphHeight: Integer;
Offset, OffsetCap: TPoint;
ClientSize, TotalSize, TextSize: TSize;
M, S , FExternalImageWidth: integer;
M, S : integer;
TXTStyle : TTextStyle;
SIndex : Longint;
TMP : String;
AImageResolution: TScaledImageListResolution;
FImgN, FImgS: TImageList;
begin
if FToolbarButtonStyle in [tbrSeparator, tbrDivider] then
@ -799,7 +796,9 @@ begin
FToolPanel.DisableAlign;
inherited Notify(Item, Action);
if Action = cnDeleting then
FToolPanel.EnableAlign;
FToolPanel.EnableAlign
else
FToolPanel.ReAlignToolBtn;
end;
constructor TToolbarItems.Create(ToolPanel: TToolPanel);
@ -866,9 +865,6 @@ begin
end;
procedure TToolPanel.SetButtonAllign(const AValue: TToolButtonAllign);
var
i:integer;
ARect: TRect;
begin
if FButtonAllign=AValue then exit;
FButtonAllign:=AValue;
@ -877,8 +873,6 @@ begin
end;
procedure TToolPanel.SetImageList(const AValue: TImageList);
var
i:integer;
begin
if FImageList=AValue then exit;
FImageList:=AValue;
@ -887,8 +881,6 @@ begin
end;
procedure TToolPanel.SetImageListSelected(const AValue: TImageList);
var
i:integer;
begin
if FImageListSelected=AValue then exit;
FImageListSelected:=AValue;
@ -1092,9 +1084,7 @@ begin
end;
var
i, ACount:integer;
S1, AActionName, S2:string;
AItem:TToolbarItem;
ACount:integer;
tpo:TToolPanelOptions;
tpo1:integer absolute tpo;
S: TComponentName;
@ -1292,7 +1282,6 @@ end;
function TToolPanel.DoAlignChildControls(TheAlign: TAlign; AControl: TControl;
AControlList: TFPList; var ARect: TRect): Boolean;
var
R: TRect;
TI: TToolbarItem;
I, L: Integer;
begin
@ -1611,9 +1600,7 @@ end;
constructor TToolbarItem.Create(ACollection: TCollection);
var
i, W:integer;
TB:TToolPanel;
TI: TToolbarItem;
begin
inherited Create(ACollection);
TB:=TToolbarItems(ACollection).FToolPanel;

View File

@ -89,6 +89,7 @@ resourcestring
sLicense = 'License';
SOutOfRange = 'Out of range %d %d %d %d';
sSeparator = 'Separator';
sRxToolPanelEditor = 'Rx toolpanel editor';
{ TRxHistoryNavigator }
sHistoryDesc = 'History - "%s"';