summaryrefslogtreecommitdiff
path: root/examples/apps/uidesigner/vfdwidgetclass.pas
diff options
context:
space:
mode:
Diffstat (limited to 'examples/apps/uidesigner/vfdwidgetclass.pas')
-rw-r--r--examples/apps/uidesigner/vfdwidgetclass.pas233
1 files changed, 0 insertions, 233 deletions
diff --git a/examples/apps/uidesigner/vfdwidgetclass.pas b/examples/apps/uidesigner/vfdwidgetclass.pas
deleted file mode 100644
index 9729691f..00000000
--- a/examples/apps/uidesigner/vfdwidgetclass.pas
+++ /dev/null
@@ -1,233 +0,0 @@
-{
- fpGUI - Free Pascal GUI Toolkit
-
- Copyright (C) 2006 - 2008 See the file AUTHORS.txt, included in this
- distribution, for details of the copyright.
-
- See the file COPYING.modifiedLGPL, included in this distribution,
- for details about redistributing fpGUI.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
- Description:
- Main window functionality and designer class.
-}
-
-unit vfdwidgetclass;
-
-{$mode objfpc}{$H+}
-
-interface
-
-uses
- Classes,
- SysUtils,
- gfxbase,
- fpgfx,
- gfx_widget;
-
-type
- TWidgetClass = class of TfpgWidget;
-
-
- TVFDWidgetProperty = class;
-
-
- TVFDPropertyEditor = class(TfpgWidget)
- private
- FProp: TVFDWidgetProperty;
- public
- OnUpdate: TNotifyEvent;
- procedure UpdateProperty(Sender: TObject);
- property Prop: TVFDWidgetProperty read FProp;
- constructor Create(AOwner: TComponent; aprop: TVFDWidgetProperty); reintroduce;
- procedure CreateLayout; virtual;
- procedure LoadValue(wg: TfpgWidget); virtual;
- procedure StoreValue(wg: TfpgWidget); virtual;
- end;
-
-
- TVFDWidgetProperty = class(TObject)
- public
- Name: string;
- Description: string;
- public
- constructor Create(aName: string); 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;
-
-
- TVFDPropertyClass = class of TVFDWidgetProperty;
-
-
- TVFDWidgetClass = class(TObject)
- private
- FProps: TList;
- public
- WidgetClass: TWidgetClass;
- Description: string;
- WidgetIconName: string;
- 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;
- end;
-
-
-implementation
-
-uses
- TypInfo;
-
-
-type
- // used to get to SetDesigning() in Form Designer
- TComponentFriendClass = class(TComponent);
-
-
-{ TVFDWidgetClass }
-
-function TVFDWidgetClass.AddProperty(apropname: string; apropclass: TVFDPropertyClass;
- desc: string): TVFDWidgetProperty;
-begin
- Result := apropclass.Create(apropname);
- Result.Description := desc;
- FProps.Add(Result);
-end;
-
-constructor TVFDWidgetClass.Create(aClass: TWidgetClass);
-begin
- WidgetClass := aClass;
- FProps := TList.Create;
- Description := '';
- NameBase := 'Widget';
- Container := False;
-end;
-
-function TVFDWidgetClass.CreateWidget(AOwner: TComponent): TfpgWidget;
-begin
- Result := WidgetClass.Create(AOwner);
- TComponentFriendClass(Result).SetDesigning(True);
-end;
-
-destructor TVFDWidgetClass.Destroy;
-var
- n: integer;
-begin
- for n := 0 to FProps.Count - 1 do
- TVFDWidgetProperty(FProps[n]).Free;
- FProps.Free;
- inherited;
-end;
-
-function TVFDWidgetClass.GetProperty(ind: integer): TVFDWidgetProperty;
-begin
- Result := TVFDWidgetProperty(FProps[ind]);
-end;
-
-function TVFDWidgetClass.PropertyCount: integer;
-begin
- Result := FProps.Count;
-end;
-
-{ TVFDWidgetProperty }
-
-constructor TVFDWidgetProperty.Create(aName: string);
-begin
- Name := aName;
- Description := '';
-end;
-
-function TVFDWidgetProperty.GetPropertySource(wg: TfpgWidget; const ident: string): string;
-begin
-
-end;
-
-function TVFDWidgetProperty.ParseSourceLine(wg: TfpgWidget; const line: string): boolean;
-begin
- Result := False;
-end;
-
-function TVFDWidgetProperty.CreateEditor(AOwner: TComponent): TVFDPropertyEditor;
-begin
- Result := nil;
-end;
-
-procedure TVFDWidgetProperty.DrawValue(wg: TfpgWidget; Canvas: TfpgCanvas; rect: TfpgRect; flags: integer);
-var
- x, y, fy: integer;
- s: string;
-begin
- x := rect.left;
- y := rect.top;
- fy := y + rect.Height div 2 - Canvas.Font.Height div 2;
-
- try
- s := GetValueText(wg);
- except
- on E: Exception do
- writeln('Detected a error: ', E.Message);
- end;
-
- Canvas.BeginDraw;
- Canvas.DrawString(x + 1, fy, s);
- Canvas.EndDraw;
-end;
-
-function TVFDWidgetProperty.GetValueText(wg: TfpgWidget): string;
-begin
- Result := '[' + Name + ']';
-end;
-
-procedure TVFDWidgetProperty.OnExternalEdit(wg: TfpgWidget);
-begin
- writeln('external edit');
-end;
-
-{ TVFDPropertyEditor }
-
-constructor TVFDPropertyEditor.Create(AOwner: TComponent; aprop: TVFDWidgetProperty);
-begin
- inherited Create(AOwner);
- OnUpdate := nil;
- FProp := aprop;
-end;
-
-procedure TVFDPropertyEditor.CreateLayout;
-begin
- //abstract
-end;
-
-procedure TVFDPropertyEditor.LoadValue(wg: TfpgWidget);
-begin
- Writeln('abstract: editor.LoadValue');
-end;
-
-procedure TVFDPropertyEditor.UpdateProperty(Sender: TObject);
-begin
- if Assigned(OnUpdate) then
- OnUpdate(self);
-end;
-
-procedure TVFDPropertyEditor.StoreValue(wg: TfpgWidget);
-begin
- Writeln('abstract: editor.StoreValue');
- // check property type
- // the property must be published !
- // PPropInfo := GetPropInfo(object, 'propname');
- // if PPropInfo^.PropType^.name =
-end;
-
-end.
-