mirror of https://gitlab.com/basile.b/dexed.git
added option pageHistory to TCEPageCOntrol
This commit is contained in:
parent
201ea0a4da
commit
5ba68af663
|
@ -26,6 +26,15 @@ type
|
||||||
property index: integer read getIndex;
|
property index: integer read getIndex;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
TCEPagesOption = (poPageHistory);
|
||||||
|
TCEPagesOptions = set of TCEPagesOption;
|
||||||
|
|
||||||
|
const
|
||||||
|
|
||||||
|
defPagesOpt = [poPageHistory];
|
||||||
|
|
||||||
|
type
|
||||||
|
|
||||||
(**
|
(**
|
||||||
* Minimalist page-control dedicated to Coedit
|
* Minimalist page-control dedicated to Coedit
|
||||||
*
|
*
|
||||||
|
@ -45,6 +54,7 @@ type
|
||||||
fSplitBtn: TSpeedButton;
|
fSplitBtn: TSpeedButton;
|
||||||
fContent: TPanel;
|
fContent: TPanel;
|
||||||
fPages: TFPList;
|
fPages: TFPList;
|
||||||
|
fPagesHistory: TFPList;
|
||||||
fPageIndex: integer;
|
fPageIndex: integer;
|
||||||
fSplittedPageIndex: integer;
|
fSplittedPageIndex: integer;
|
||||||
fButtons: TCEPageControlButtons;
|
fButtons: TCEPageControlButtons;
|
||||||
|
@ -52,6 +62,7 @@ type
|
||||||
fOnChanging: TTabChangingEvent;
|
fOnChanging: TTabChangingEvent;
|
||||||
fSplitter: TSplitter;
|
fSplitter: TSplitter;
|
||||||
fOldSplitPos: integer;
|
fOldSplitPos: integer;
|
||||||
|
fOptions: TCEPagesOptions;
|
||||||
fOnDragDrop: TDragDropEvent;
|
fOnDragDrop: TDragDropEvent;
|
||||||
fOnDragOver: TDragOverEvent;
|
fOnDragOver: TDragOverEvent;
|
||||||
|
|
||||||
|
@ -78,6 +89,7 @@ type
|
||||||
|
|
||||||
procedure setOnDragOver(value: TDragOverEvent);
|
procedure setOnDragOver(value: TDragOverEvent);
|
||||||
procedure setOnDragDrop(value: TDragDropEvent);
|
procedure setOnDragDrop(value: TDragDropEvent);
|
||||||
|
procedure setPagesOptions(value: TCEPagesOptions);
|
||||||
|
|
||||||
public
|
public
|
||||||
constructor Create(aowner: TComponent); override;
|
constructor Create(aowner: TComponent); override;
|
||||||
|
@ -105,6 +117,8 @@ type
|
||||||
property onChanged: TNotifyEvent read fOnChanged write fOnChanged;
|
property onChanged: TNotifyEvent read fOnChanged write fOnChanged;
|
||||||
property onChanging: TTabChangingEvent read fOnChanging write fOnChanging;
|
property onChanging: TTabChangingEvent read fOnChanging write fOnChanging;
|
||||||
|
|
||||||
|
property options: TCEPagesOptions read fOptions write setPagesOptions default defPagesOpt;
|
||||||
|
|
||||||
property OnDragOver read fOnDragOver write setOnDragOver;
|
property OnDragOver read fOnDragOver write setOnDragOver;
|
||||||
property OnDragDrop read fOnDragDrop write setOnDragDrop;
|
property OnDragDrop read fOnDragDrop write setOnDragDrop;
|
||||||
end;
|
end;
|
||||||
|
@ -138,6 +152,8 @@ constructor TCEPageControl.Create(aowner: TComponent);
|
||||||
begin
|
begin
|
||||||
inherited;
|
inherited;
|
||||||
|
|
||||||
|
fOptions := defPagesOpt;
|
||||||
|
|
||||||
fHeader := TWinControl.Create(self);
|
fHeader := TWinControl.Create(self);
|
||||||
fHeader.Parent:= self;
|
fHeader.Parent:= self;
|
||||||
fHeader.Align := alTop;
|
fHeader.Align := alTop;
|
||||||
|
@ -212,6 +228,7 @@ begin
|
||||||
fSplitter.Width := 6;
|
fSplitter.Width := 6;
|
||||||
|
|
||||||
fPages := TFPList.Create;
|
fPages := TFPList.Create;
|
||||||
|
fPagesHistory := TFPList.Create;
|
||||||
fPageIndex := -1;
|
fPageIndex := -1;
|
||||||
|
|
||||||
fButtons:= CEPageControlDefaultButtons;
|
fButtons:= CEPageControlDefaultButtons;
|
||||||
|
@ -223,6 +240,7 @@ begin
|
||||||
while fPages.Count > 0 do
|
while fPages.Count > 0 do
|
||||||
deletePage(fPages.Count-1);
|
deletePage(fPages.Count-1);
|
||||||
fPages.Free;
|
fPages.Free;
|
||||||
|
fPagesHistory.Free;
|
||||||
inherited;
|
inherited;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -244,6 +262,14 @@ begin
|
||||||
fTabs.OnDragDrop:=value;
|
fTabs.OnDragDrop:=value;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TCEPageControl.setPagesOptions(value: TCEPagesOptions);
|
||||||
|
begin
|
||||||
|
if fOptions = value then
|
||||||
|
exit;
|
||||||
|
fOptions := value;
|
||||||
|
fPagesHistory.Clear;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TCEPageControl.changedNotify;
|
procedure TCEPageControl.changedNotify;
|
||||||
begin
|
begin
|
||||||
updateButtonsState;
|
updateButtonsState;
|
||||||
|
@ -338,6 +364,12 @@ function TCEPageControl.addPage: TCEPage;
|
||||||
var
|
var
|
||||||
pge: TCEPage;
|
pge: TCEPage;
|
||||||
begin
|
begin
|
||||||
|
|
||||||
|
if poPageHistory in fOptions then
|
||||||
|
{$PUSH}{$HINTS OFF}{$WARNINGS OFF}
|
||||||
|
fPagesHistory.Insert(0, Pointer(PtrUint(fPageIndex)));
|
||||||
|
{$POP}
|
||||||
|
|
||||||
pge := TCEPage.Create(self);
|
pge := TCEPage.Create(self);
|
||||||
pge.Parent := fContent;
|
pge.Parent := fContent;
|
||||||
pge.Align:= alClient;
|
pge.Align:= alClient;
|
||||||
|
@ -366,6 +398,14 @@ begin
|
||||||
fPages.Delete(index);
|
fPages.Delete(index);
|
||||||
fTabs.Tabs.Delete(index);
|
fTabs.Tabs.Delete(index);
|
||||||
|
|
||||||
|
if (poPageHistory in fOptions) and (fPagesHistory.Count > 0) then
|
||||||
|
begin
|
||||||
|
{$PUSH}{$HINTS OFF}{$WARNINGS OFF}
|
||||||
|
fPageIndex := Integer(fPagesHistory[0]);
|
||||||
|
fPagesHistory.Delete(0);
|
||||||
|
{$POP}
|
||||||
|
end;
|
||||||
|
|
||||||
if fPages.Count = 0 then
|
if fPages.Count = 0 then
|
||||||
fPageIndex:=-1;
|
fPageIndex:=-1;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue