summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
Diffstat (limited to 'examples')
-rw-r--r--examples/apps/uidesigner/vfddesigner.pas102
-rw-r--r--examples/apps/uidesigner/vfdformparser.pas3
-rw-r--r--examples/apps/uidesigner/vfdmain.pas7
-rw-r--r--examples/apps/uidesigner/vfdresizer.pas4
-rw-r--r--examples/apps/uidesigner/vfdwidgetclass.pas36
-rw-r--r--examples/apps/uidesigner/vfdwidgets.pas10
6 files changed, 87 insertions, 75 deletions
diff --git a/examples/apps/uidesigner/vfddesigner.pas b/examples/apps/uidesigner/vfddesigner.pas
index 4640ac06..77743a71 100644
--- a/examples/apps/uidesigner/vfddesigner.pas
+++ b/examples/apps/uidesigner/vfddesigner.pas
@@ -68,7 +68,7 @@ type
TWidgetDesigner = class(TObject)
private
- procedure SetSelected(const AValue: boolean);
+ procedure SetSelected(const AValue: boolean);
public
FFormDesigner: TFormDesigner;
FWidget: TfpgWidget;
@@ -96,49 +96,48 @@ type
FWasDrag: boolean;
protected
// messages of the designed widgets
- procedure MsgMouseDown(var msg: TfpgMessageRec); message FPGM_MOUSEDOWN;
- procedure MsgMouseUp(var msg: TfpgMessageRec); message FPGM_MOUSEUP;
- procedure MsgMouseMove(var msg: TfpgMessageRec); message FPGM_MOUSEMOVE;
- procedure MsgKeyPress(var msg: TfpgMessageRec); message FPGM_KEYPRESS;
- procedure MsgMove(var msg: TfpgMessageRec); message FPGM_MOVE;
- procedure MsgResize(var msg: TfpgMessageRec); message FPGM_RESIZE;
- procedure MsgActivate(var msg: TfpgMessageRec); message FPGM_ACTIVATE;
+ procedure MsgMouseDown(var msg: TfpgMessageRec); message FPGM_MOUSEDOWN;
+ procedure MsgMouseUp(var msg: TfpgMessageRec); message FPGM_MOUSEUP;
+ procedure MsgMouseMove(var msg: TfpgMessageRec); message FPGM_MOUSEMOVE;
+ procedure MsgKeyPress(var msg: TfpgMessageRec); message FPGM_KEYPRESS;
+ procedure MsgMove(var msg: TfpgMessageRec); message FPGM_MOVE;
+ procedure MsgResize(var msg: TfpgMessageRec); message FPGM_RESIZE;
+ procedure MsgActivate(var msg: TfpgMessageRec); message FPGM_ACTIVATE;
public
OneClickMove: boolean; // the widgets can be selected and dragged within one click
constructor Create;
- destructor Destroy; override;
- procedure ClearForm;
- procedure DefaultHandler(var msg); override;
- procedure Show;
- procedure InitTest;
- function AddWidget(wg: TfpgWidget; wgc: TVFDWidgetClass): TWidgetDesigner;
- function WidgetDesigner(wg: TfpgWidget): TWidgetDesigner;
- function FindWidgetByName(const wgname: string): TfpgWidget;
- procedure DeSelectAll;
- procedure SelectAll;
- procedure SelectNextWidget(fw: boolean);
- procedure MoveResizeWidgets(dx, dy, dw, dh: integer);
- procedure DeleteWidgets;
- procedure EditWidgetOrder;
- procedure DesignerKeyPress(var keycode: word; var shiftstate: TShiftState; var consumed: boolean);
- procedure PutControlByName(x, y: integer; cname: string);
- procedure InsertWidget(pwg: TfpgWidget; x, y: integer; wgc: TVFDWidgetClass);
- procedure OnPaletteChange(Sender: TObject);
- procedure UpdatePropWin;
- procedure OnPropTextChange(Sender: TObject);
- procedure OnPropNameChange(Sender: TObject);
- procedure OnPropPosEdit(Sender: TObject);
- procedure OnOtherChange(Sender: TObject);
- procedure OnAnchorChange(Sender: TObject);
- procedure OnEditWidget(Sender: TObject);
- function GenerateNewName(namebase: string): string;
- procedure RunWidgetEditor(wgd: TWidgetDesigner; wg: TfpgWidget);
- public
- function GetFormSourceDecl: string;
- function GetFormSourceImpl: string;
- function GetWidgetSourceImpl(wd: TWidgetDesigner; ident: string): string;
- property Form: TDesignedForm read FForm;
- property FormOther: string read FFormOther write FFormOther;
+ destructor Destroy; override;
+ procedure ClearForm;
+ procedure DefaultHandler(var msg); override;
+ procedure Show;
+ procedure InitTest;
+ function AddWidget(wg: TfpgWidget; wgc: TVFDWidgetClass): TWidgetDesigner;
+ function WidgetDesigner(wg: TfpgWidget): TWidgetDesigner;
+ function FindWidgetByName(const wgname: string): TfpgWidget;
+ procedure DeSelectAll;
+ procedure SelectAll;
+ procedure SelectNextWidget(fw: boolean);
+ procedure MoveResizeWidgets(dx, dy, dw, dh: integer);
+ procedure DeleteWidgets;
+ procedure EditWidgetOrder;
+ procedure DesignerKeyPress(var keycode: word; var shiftstate: TShiftState; var consumed: boolean);
+// procedure PutControlByName(x, y: integer; cname: string);
+ procedure InsertWidget(pwg: TfpgWidget; x, y: integer; wgc: TVFDWidgetClass);
+ procedure OnPaletteChange(Sender: TObject);
+ procedure UpdatePropWin;
+ procedure OnPropTextChange(Sender: TObject);
+ procedure OnPropNameChange(Sender: TObject);
+ procedure OnPropPosEdit(Sender: TObject);
+ procedure OnOtherChange(Sender: TObject);
+ procedure OnAnchorChange(Sender: TObject);
+ procedure OnEditWidget(Sender: TObject);
+ function GenerateNewName(namebase: string): string;
+ procedure RunWidgetEditor(wgd: TWidgetDesigner; wg: TfpgWidget);
+ function GetFormSourceDecl: string;
+ function GetFormSourceImpl: string;
+ function GetWidgetSourceImpl(wd: TWidgetDesigner; ident: string): string;
+ property Form: TDesignedForm read FForm;
+ property FormOther: string read FFormOther write FFormOther;
end;
@@ -174,7 +173,7 @@ begin
UpdateResizerPositions;
- if FSelected and (Widget.Parent.WinHandle > 0) then
+ if FSelected and Widget.Parent.HasHandle then
for n := 1 to 8 do
resizer[n].Show;
end;
@@ -494,6 +493,7 @@ function TFormDesigner.AddWidget(wg: TfpgWidget; wgc: TVFDWidgetClass): TWidgetD
var
cd: TWidgetDesigner;
begin
+// writeln('TFormDesigner.AddWidget');
cd := TWidgetDesigner.Create(self, wg, wgc);
FWidgets.Add(cd);
//cd.Selected := true;
@@ -711,8 +711,13 @@ begin
keyDelete: DeleteWidgets;
- keyTab: SelectNextWidget(True);
-// KEY_STAB: SelectNextWidget(False);
+ keyTab:
+ begin
+ if ssShift in shiftstate then
+ SelectNextWidget(False) // tab backwards
+ else
+ SelectNextWidget(True); // tab forward
+ end;
keyF1: ShowMessage('ENTER, F11: switch to Properties' + LineEnding +
'TAB, SHIFT+TAB: select next widget' + LineEnding +
@@ -739,6 +744,7 @@ begin
MoveResizeWidgets(dx, dy, 0, 0);
end;
+(*
procedure TFormDesigner.PutControlByName(x, y: integer; cname: string);
var
wg: TfpgWidget;
@@ -821,6 +827,7 @@ begin
UpdatePropWin;
end;
end;
+*)
procedure TFormDesigner.OnPaletteChange(Sender: TObject);
begin
@@ -1491,6 +1498,7 @@ var
wg: TfpgWidget;
wgd: TWidgetDesigner;
begin
+// writeln('TFormDesigner.InsertWidget');
if wgc = nil then
Exit;
@@ -1515,8 +1523,9 @@ begin
wg := wgc.CreateWidget(pwg);
if wg <> nil then
begin
- wg.Left := x;
- wg.Top := y;
+ wg.FormDesigner := self;
+// wg.Left := x;
+// wg.Top := y;
if newname = '' then
newname := GenerateNewName(wgc.NameBase);
wg.Name := newname;
@@ -1524,6 +1533,7 @@ begin
TOtherWidget(wg).wgClassName := newclassname;
wgd := AddWidget(wg, wgc);
wg.Visible := True;
+ wg.SetPosition(x, y, wg.Width, wg.Height);
DeSelectAll;
wgd.Selected := True;
UpdatePropWin;
diff --git a/examples/apps/uidesigner/vfdformparser.pas b/examples/apps/uidesigner/vfdformparser.pas
index d57be188..e3900f4b 100644
--- a/examples/apps/uidesigner/vfdformparser.pas
+++ b/examples/apps/uidesigner/vfdformparser.pas
@@ -303,7 +303,8 @@ begin
end;
wg.Name := wgname;
-
+ wg.FormDesigner := ffd;
+
NextLine;
s := UpperCase(line);
ident := GetIdentifier(s);
diff --git a/examples/apps/uidesigner/vfdmain.pas b/examples/apps/uidesigner/vfdmain.pas
index 80dde07b..e59026d4 100644
--- a/examples/apps/uidesigner/vfdmain.pas
+++ b/examples/apps/uidesigner/vfdmain.pas
@@ -223,13 +223,10 @@ begin
CloseFile(ff);
end;
writeln('Form saved.');
-
- frmMain.WindowTitle := fname + ' - VFD v' + program_version;
-
+ frmMain.WindowTitle := 'fpGUI Designer v' + program_version + ' - ' + fname;
except
Writeln('Form save I/O failure.');
end;
-
end;
procedure TMainDesigner.OnAnchorChange(Sender: TObject);
@@ -291,7 +288,7 @@ procedure TMainDesigner.CreateWindows;
// fd : TFormDesigner;
begin
frmMain := TfrmMain.Create(nil);
- frmMain.WindowTitle := 'fpGUI Form Designer - v' + program_version;
+ frmMain.WindowTitle := 'fpGUI Designer v' + program_version;
frmMain.Show;
frmProperties := TfrmProperties.Create(nil);
diff --git a/examples/apps/uidesigner/vfdresizer.pas b/examples/apps/uidesigner/vfdresizer.pas
index f26e0e86..1298c6ab 100644
--- a/examples/apps/uidesigner/vfdresizer.pas
+++ b/examples/apps/uidesigner/vfdresizer.pas
@@ -120,9 +120,9 @@ begin
Height := 5;
direction := adirection;
case direction of
- 1: MouseCursor := mcSizeNWSE;
+ 1: MouseCursor := mcSizeSENW;
2: MouseCursor := mcSizeNS;
- 3: MouseCursor := mcSizeNESW;
+ 3: MouseCursor := mcSizeSWNE;
4: MouseCursor := mcSizeEW;
5: MouseCursor := mcSizeNWSE;
6: MouseCursor := mcSizeNS;
diff --git a/examples/apps/uidesigner/vfdwidgetclass.pas b/examples/apps/uidesigner/vfdwidgetclass.pas
index 39b5493b..e6f0add2 100644
--- a/examples/apps/uidesigner/vfdwidgetclass.pas
+++ b/examples/apps/uidesigner/vfdwidgetclass.pas
@@ -40,14 +40,12 @@ type
FProp: TVFDWidgetProperty;
public
OnUpdate: TNotifyEvent;
- procedure UpdateProperty(Sender: TObject);
- property Prop: TVFDWidgetProperty read FProp;
+ procedure UpdateProperty(Sender: TObject);
+ property Prop: TVFDWidgetProperty read FProp;
constructor Create(AOwner: TComponent; aprop: TVFDWidgetProperty); reintroduce;
- public
- // virtuals
- procedure CreateLayout; virtual;
- procedure LoadValue(wg: TfpgWidget); virtual;
- procedure StoreValue(wg: TfpgWidget); virtual;
+ procedure CreateLayout; virtual;
+ procedure LoadValue(wg: TfpgWidget); virtual;
+ procedure StoreValue(wg: TfpgWidget); virtual;
end;
@@ -56,15 +54,13 @@ type
Name: string;
Description: string;
public
- // Virtuals
constructor Create(aName: string); virtual;
- function ParseSourceLine(wg: TfpgWidget; const line: string): boolean; virtual;
- function GetPropertySource(wg: TfpgWidget; const ident: string): string; virtual;
- // Property editing
- function GetValueText(wg: TfpgWidget): string; virtual;
- procedure DrawValue(wg: TfpgWidget; Canvas: TfpgCanvas; rect: TfpgRect; flags: integer); virtual;
- function CreateEditor(AOwner: TComponent): TVFDPropertyEditor; virtual;
- procedure OnExternalEdit(wg: TfpgWidget); virtual;
+ function ParseSourceLine(wg: TfpgWidget; const line: string): boolean; virtual;
+ function GetPropertySource(wg: TfpgWidget; const ident: string): string; virtual;
+ function GetValueText(wg: TfpgWidget): string; virtual;
+ procedure DrawValue(wg: TfpgWidget; Canvas: TfpgCanvas; rect: TfpgRect; flags: integer); virtual;
+ function CreateEditor(AOwner: TComponent): TVFDPropertyEditor; virtual;
+ procedure OnExternalEdit(wg: TfpgWidget); virtual;
end;
@@ -81,11 +77,11 @@ type
NameBase: string;
Container: boolean;
constructor Create(aClass: TWidgetClass);
- destructor Destroy; override;
- function AddProperty(apropname: string; apropclass: TVFDPropertyClass; desc: string): TVFDWidgetProperty;
- function PropertyCount: integer;
- function GetProperty(ind: integer): TVFDWidgetProperty;
- function CreateWidget(AOwner: TComponent): TfpgWidget;
+ destructor Destroy; override;
+ function AddProperty(apropname: string; apropclass: TVFDPropertyClass; desc: string): TVFDWidgetProperty;
+ function PropertyCount: integer;
+ function GetProperty(ind: integer): TVFDWidgetProperty;
+ function CreateWidget(AOwner: TComponent): TfpgWidget;
end;
diff --git a/examples/apps/uidesigner/vfdwidgets.pas b/examples/apps/uidesigner/vfdwidgets.pas
index 8685c9cd..529a3085 100644
--- a/examples/apps/uidesigner/vfdwidgets.pas
+++ b/examples/apps/uidesigner/vfdwidgets.pas
@@ -253,6 +253,8 @@ begin
wc.NameBase := 'cbName';
wc.AddProperty('Text', TPropertyString, 'Initial text');
wc.AddProperty('FontDesc', TPropertyString, 'The font used for displaying the text');
+ wc.AddProperty('Checked', TPropertyInteger, 'Boolean value');
+// wc.AddProperty('BackgroundColor', TPropertyString, '');
wc.WidgetIconName := 'vfd.checkbox';
RegisterVFDWidget(wc);
@@ -261,6 +263,9 @@ begin
wc.NameBase := 'rbName';
wc.AddProperty('Text', TPropertyString, 'Initial text');
wc.AddProperty('FontDesc', TPropertyString, 'The font used for displaying the text');
+ wc.AddProperty('GroupIndex', TPropertyInteger, '');
+ wc.AddProperty('Checked', TPropertyInteger, 'Boolean value');
+// wc.AddProperty('BackgroundColor', TPropertyString, '');
wc.WidgetIconName := 'vfd.radiobutton';
RegisterVFDWidget(wc);
@@ -337,7 +342,10 @@ begin
wc.AddProperty('FontDesc',TPropertyString, '');
wc.AddProperty('ShowImages',TPropertyInteger, 'Boolean value');
wc.AddProperty('ShowColumns',TPropertyInteger, 'Boolean value');
- wc.AddProperty('DefaultColumnWidth',TPropertyInteger,'');
+ wc.AddProperty('DefaultColumnWidth',TPropertyInteger, '');
+ wc.AddProperty('TreeLineStyle', TPropertyEnum, '');
+// wc.AddProperty('TreeLineColor', TPropertyString, '');
+ wc.AddProperty('ScrollWheelDelta', TPropertyInteger, 'Scroll amount with mouse wheel');
wc.WidgetIconName := 'vfd.treeview';
RegisterVFDWidget(wc);