109 lines
2.5 KiB
ObjectPascal
109 lines
2.5 KiB
ObjectPascal
unit NewNotebookReg;
|
|
|
|
{
|
|
Inno Setup
|
|
Copyright (C) 1997-2024 Jordan Russell
|
|
Portions by Martijn Laan
|
|
For conditions of distribution and use, see LICENSE.TXT.
|
|
|
|
TNewNotebook design-time registration
|
|
}
|
|
|
|
interface
|
|
|
|
uses
|
|
Classes;
|
|
|
|
procedure Register;
|
|
|
|
implementation
|
|
|
|
uses
|
|
NewNotebook, DesignIntf, DesignEditors;
|
|
|
|
{ TNewNotebookEditor }
|
|
|
|
type
|
|
TNewNotebookEditor = class(TComponentEditor)
|
|
public
|
|
procedure Edit; override;
|
|
procedure ExecuteVerb(Index: Integer); override;
|
|
function GetVerb(Index: Integer): String; override;
|
|
function GetVerbCount: Integer; override;
|
|
end;
|
|
|
|
procedure TNewNotebookEditor.Edit;
|
|
var
|
|
Notebook: TNewNotebook;
|
|
begin
|
|
{ When a page is double-clicked, select the parent notebook }
|
|
if Component is TNewNotebookPage then begin
|
|
Notebook := TNewNotebookPage(Component).Notebook;
|
|
if Assigned(Notebook) then
|
|
Designer.SelectComponent(Notebook);
|
|
end
|
|
end;
|
|
|
|
procedure TNewNotebookEditor.ExecuteVerb(Index: Integer);
|
|
var
|
|
Notebook: TNewNotebook;
|
|
Page: TNewNotebookPage;
|
|
begin
|
|
{ Find the notebook component to operate on. Note that this same editor class
|
|
is used for both TNewNotebook and TNewNotebookPage. }
|
|
if Component is TNewNotebookPage then begin
|
|
Notebook := TNewNotebookPage(Component).Notebook;
|
|
if Notebook = nil then
|
|
Exit; { just in case }
|
|
end
|
|
else
|
|
Notebook := Component as TNewNotebook;
|
|
|
|
case Index of
|
|
0, 1:
|
|
begin
|
|
Page := Notebook.FindNextPage(Notebook.ActivePage, Index = 0);
|
|
Notebook.ActivePage := Page;
|
|
Designer.Modified;
|
|
Designer.SelectComponent(Page);
|
|
end;
|
|
3:
|
|
begin
|
|
Page := TNewNotebookPage.Create(Notebook.Owner);
|
|
Page.Name := Designer.UniqueName(Page.ClassName);
|
|
Page.Notebook := Notebook;
|
|
Notebook.ActivePage := Page;
|
|
Designer.Modified;
|
|
Designer.SelectComponent(Page);
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
function TNewNotebookEditor.GetVerbCount: Integer;
|
|
begin
|
|
Result := 4;
|
|
end;
|
|
|
|
function TNewNotebookEditor.GetVerb(Index: Integer): String;
|
|
begin
|
|
case Index of
|
|
0: Result := 'Next Page';
|
|
1: Result := 'Previous Page';
|
|
2: Result := '-';
|
|
3: Result := 'New Page';
|
|
else
|
|
Result := '';
|
|
end;
|
|
end;
|
|
|
|
procedure Register;
|
|
begin
|
|
RegisterComponents('JR', [TNewNotebook]);
|
|
RegisterClass(TNewNotebookPage);
|
|
|
|
RegisterComponentEditor(TNewNotebook, TNewNotebookEditor);
|
|
RegisterComponentEditor(TNewNotebookPage, TNewNotebookEditor);
|
|
end;
|
|
|
|
end.
|