|
@@ -40,7 +40,7 @@ PROGRAM testapp;
|
|
{$IFDEF OS2PM}
|
|
{$IFDEF OS2PM}
|
|
{$IFDEF OS_OS2} Os2Def, os2PmApi, {$ENDIF}
|
|
{$IFDEF OS_OS2} Os2Def, os2PmApi, {$ENDIF}
|
|
{$ENDIF OS2PM}
|
|
{$ENDIF OS2PM}
|
|
- Objects, Drivers, Views, Menus, Dialogs, App, { Standard GFV units }
|
|
|
|
|
|
+ Objects, Drivers, Views, Editors, Menus, Dialogs, App, { Standard GFV units }
|
|
FVConsts,
|
|
FVConsts,
|
|
{$ifdef TEST}
|
|
{$ifdef TEST}
|
|
AsciiTab,
|
|
AsciiTab,
|
|
@@ -48,7 +48,7 @@ PROGRAM testapp;
|
|
{$ifdef DEBUG}
|
|
{$ifdef DEBUG}
|
|
Gfvgraph,
|
|
Gfvgraph,
|
|
{$endif DEBUG}
|
|
{$endif DEBUG}
|
|
- Gadgets, TimedDlg, MsgBox;
|
|
|
|
|
|
+ Gadgets, TimedDlg, MsgBox, StdDlg;
|
|
|
|
|
|
|
|
|
|
CONST cmAppToolbar = 1000;
|
|
CONST cmAppToolbar = 1000;
|
|
@@ -61,12 +61,17 @@ CONST cmAppToolbar = 1000;
|
|
cmCloseWindow2 = 1102;
|
|
cmCloseWindow2 = 1102;
|
|
cmCloseWindow3 = 1103;
|
|
cmCloseWindow3 = 1103;
|
|
|
|
|
|
|
|
+
|
|
{---------------------------------------------------------------------------}
|
|
{---------------------------------------------------------------------------}
|
|
{ TTestAppp OBJECT - STANDARD APPLICATION WITH MENU }
|
|
{ TTestAppp OBJECT - STANDARD APPLICATION WITH MENU }
|
|
{---------------------------------------------------------------------------}
|
|
{---------------------------------------------------------------------------}
|
|
TYPE
|
|
TYPE
|
|
PTVDemo = ^TTVDemo;
|
|
PTVDemo = ^TTVDemo;
|
|
|
|
+
|
|
|
|
+ { TTVDemo }
|
|
|
|
+
|
|
TTVDemo = OBJECT (TApplication)
|
|
TTVDemo = OBJECT (TApplication)
|
|
|
|
+ ClipboardWindow: PEditWindow;
|
|
Clock: PClockView;
|
|
Clock: PClockView;
|
|
Heap: PHeapView;
|
|
Heap: PHeapView;
|
|
P1,P2,P3 : PGroup;
|
|
P1,P2,P3 : PGroup;
|
|
@@ -78,11 +83,15 @@ TYPE
|
|
PROCEDURE HandleEvent(var Event : TEvent);virtual;
|
|
PROCEDURE HandleEvent(var Event : TEvent);virtual;
|
|
PROCEDURE InitMenuBar; Virtual;
|
|
PROCEDURE InitMenuBar; Virtual;
|
|
PROCEDURE InitDeskTop; Virtual;
|
|
PROCEDURE InitDeskTop; Virtual;
|
|
|
|
+ PROCEDURE InitStatusLine; Virtual;
|
|
PROCEDURE Window1;
|
|
PROCEDURE Window1;
|
|
PROCEDURE Window2;
|
|
PROCEDURE Window2;
|
|
PROCEDURE Window3;
|
|
PROCEDURE Window3;
|
|
PROCEDURE TimedBox;
|
|
PROCEDURE TimedBox;
|
|
PROCEDURE AsciiWindow;
|
|
PROCEDURE AsciiWindow;
|
|
|
|
+ PROCEDURE ShowAboutBox;
|
|
|
|
+ PROCEDURE NewEditWindow;
|
|
|
|
+ PROCEDURE OpenFile;
|
|
PROCEDURE CloseWindow(var P : PGroup);
|
|
PROCEDURE CloseWindow(var P : PGroup);
|
|
End;
|
|
End;
|
|
|
|
|
|
@@ -93,6 +102,7 @@ TYPE
|
|
CONSTRUCTOR TTvDemo.Init;
|
|
CONSTRUCTOR TTvDemo.Init;
|
|
VAR R: TRect;
|
|
VAR R: TRect;
|
|
BEGIN
|
|
BEGIN
|
|
|
|
+ EditorDialog := @StdEditorDialog;
|
|
Inherited Init;
|
|
Inherited Init;
|
|
{ Initialize demo gadgets }
|
|
{ Initialize demo gadgets }
|
|
|
|
|
|
@@ -102,10 +112,14 @@ BEGIN
|
|
Insert(Clock);
|
|
Insert(Clock);
|
|
|
|
|
|
GetExtent(R);
|
|
GetExtent(R);
|
|
- Dec(R.B.X);
|
|
|
|
- R.A.X := R.B.X - 12; R.A.Y := R.B.Y - 1;
|
|
|
|
- Heap := New(PHeapView, Init(R));
|
|
|
|
- Insert(Heap);
|
|
|
|
|
|
+ ClipboardWindow := New(PEditWindow, Init(R, '', wnNoNumber));
|
|
|
|
+ if ValidView(ClipboardWindow) <> nil then
|
|
|
|
+ begin
|
|
|
|
+ ClipboardWindow^.Hide;
|
|
|
|
+ ClipboardWindow^.Editor^.CanUndo := False;
|
|
|
|
+ InsertWindow(ClipboardWindow);
|
|
|
|
+ Clipboard := ClipboardWindow^.Editor;
|
|
|
|
+ end;
|
|
END;
|
|
END;
|
|
|
|
|
|
procedure TTVDemo.Idle;
|
|
procedure TTVDemo.Idle;
|
|
@@ -149,6 +163,13 @@ BEGIN
|
|
Inherited HandleEvent(Event); { Call ancestor }
|
|
Inherited HandleEvent(Event); { Call ancestor }
|
|
If (Event.What = evCommand) Then Begin
|
|
If (Event.What = evCommand) Then Begin
|
|
Case Event.Command Of
|
|
Case Event.Command Of
|
|
|
|
+ cmClipBoard:
|
|
|
|
+ begin
|
|
|
|
+ ClipboardWindow^.Select;
|
|
|
|
+ ClipboardWindow^.Show;
|
|
|
|
+ end;
|
|
|
|
+ cmNew : NewEditWindow;
|
|
|
|
+ cmOpen : OpenFile;
|
|
cmWindow1 : Window1;
|
|
cmWindow1 : Window1;
|
|
cmWindow2 : Window2;
|
|
cmWindow2 : Window2;
|
|
cmWindow3 : Window3;
|
|
cmWindow3 : Window3;
|
|
@@ -157,6 +178,7 @@ BEGIN
|
|
cmCloseWindow1 : CloseWindow(P1);
|
|
cmCloseWindow1 : CloseWindow(P1);
|
|
cmCloseWindow2 : CloseWindow(P2);
|
|
cmCloseWindow2 : CloseWindow(P2);
|
|
cmCloseWindow3 : CloseWindow(P3);
|
|
cmCloseWindow3 : CloseWindow(P3);
|
|
|
|
+ cmAbout: ShowAboutBox;
|
|
Else Exit; { Unhandled exit }
|
|
Else Exit; { Unhandled exit }
|
|
End;
|
|
End;
|
|
End;
|
|
End;
|
|
@@ -175,7 +197,10 @@ BEGIN
|
|
NewSubMenu('~F~ile', 0, NewMenu(
|
|
NewSubMenu('~F~ile', 0, NewMenu(
|
|
StdFileMenuItems(Nil)), { Standard file menu }
|
|
StdFileMenuItems(Nil)), { Standard file menu }
|
|
NewSubMenu('~E~dit', 0, NewMenu(
|
|
NewSubMenu('~E~dit', 0, NewMenu(
|
|
- StdEditMenuItems(Nil)), { Standard edit menu }
|
|
|
|
|
|
+ StdEditMenuItems(
|
|
|
|
+ NewLine(
|
|
|
|
+ NewItem('~V~iew Clipboard', '', kbNoKey, cmClipboard, hcNoContext,
|
|
|
|
+ nil)))), { Standard edit menu plus view clipboard}
|
|
NewSubMenu('~T~est', 0, NewMenu(
|
|
NewSubMenu('~T~est', 0, NewMenu(
|
|
NewItem('Ascii Chart','',kbNoKey,cmAscii,hcNoContext,
|
|
NewItem('Ascii Chart','',kbNoKey,cmAscii,hcNoContext,
|
|
NewItem('Window 1','',kbNoKey,cmWindow1,hcNoContext,
|
|
NewItem('Window 1','',kbNoKey,cmWindow1,hcNoContext,
|
|
@@ -187,7 +212,12 @@ BEGIN
|
|
NewItem('Close Window 3','',kbNoKey,cmCloseWindow3,hcNoContext,
|
|
NewItem('Close Window 3','',kbNoKey,cmCloseWindow3,hcNoContext,
|
|
Nil))))))))),
|
|
Nil))))))))),
|
|
NewSubMenu('~W~indow', 0, NewMenu(
|
|
NewSubMenu('~W~indow', 0, NewMenu(
|
|
- StdWindowMenuItems(Nil)), Nil))))))); { Standard window menu }
|
|
|
|
|
|
+ StdWindowMenuItems(Nil)), { Standard window menu }
|
|
|
|
+ NewSubMenu('~H~elp', hcNoContext, NewMenu(
|
|
|
|
+ NewItem('~A~bout...','',kbNoKey,cmAbout,hcNoContext,
|
|
|
|
+ nil)),
|
|
|
|
+ nil))))) //end NewSubMenus
|
|
|
|
+ ))); //end MenuBar
|
|
END;
|
|
END;
|
|
|
|
|
|
{--TTvDemo------------------------------------------------------------------}
|
|
{--TTvDemo------------------------------------------------------------------}
|
|
@@ -218,6 +248,31 @@ BEGIN
|
|
Desktop := New(PDeskTop, Init(R));
|
|
Desktop := New(PDeskTop, Init(R));
|
|
END;
|
|
END;
|
|
|
|
|
|
|
|
+procedure TTVDemo.InitStatusLine;
|
|
|
|
+var
|
|
|
|
+ R: TRect;
|
|
|
|
+begin
|
|
|
|
+ GetExtent(R);
|
|
|
|
+ R.A.Y := R.B.Y - 1;
|
|
|
|
+ R.B.X := R.B.X - 12;
|
|
|
|
+ New(StatusLine,
|
|
|
|
+ Init(R,
|
|
|
|
+ NewStatusDef(0, $EFFF,
|
|
|
|
+ NewStatusKey('~F3~ Open', kbF3, cmOpen,
|
|
|
|
+ NewStatusKey('~F4~ New', kbF4, cmNew,
|
|
|
|
+ NewStatusKey('~Alt+F3~ Close', kbAltF3, cmClose,
|
|
|
|
+ StdStatusKeys(nil
|
|
|
|
+ )))),nil
|
|
|
|
+ )
|
|
|
|
+ )
|
|
|
|
+ );
|
|
|
|
+
|
|
|
|
+ GetExtent(R);
|
|
|
|
+ R.A.X := R.B.X - 12; R.A.Y := R.B.Y - 1;
|
|
|
|
+ Heap := New(PHeapView, Init(R));
|
|
|
|
+ Insert(Heap);
|
|
|
|
+end;
|
|
|
|
+
|
|
PROCEDURE TTvDemo.Window1;
|
|
PROCEDURE TTvDemo.Window1;
|
|
VAR R: TRect; P: PGroup;
|
|
VAR R: TRect; P: PGroup;
|
|
BEGIN
|
|
BEGIN
|
|
@@ -253,6 +308,38 @@ begin
|
|
{$endif TEST}
|
|
{$endif TEST}
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+PROCEDURE TTVDemo.ShowAboutBox;
|
|
|
|
+begin
|
|
|
|
+ MessageBox(#3'Free Vision TUI Framework'#13 +
|
|
|
|
+ #3'Test/Demo Application'#13+
|
|
|
|
+ #3'(www.freepascal.org)',
|
|
|
|
+ nil, mfInformation or mfOKButton);
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+PROCEDURE TTVDemo.NewEditWindow;
|
|
|
|
+var
|
|
|
|
+ R: TRect;
|
|
|
|
+begin
|
|
|
|
+ R.Assign(0, 0, 60, 20);
|
|
|
|
+ InsertWindow(New(PEditWindow, Init(R, '', wnNoNumber)));
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+PROCEDURE TTVDemo.OpenFile;
|
|
|
|
+var
|
|
|
|
+ R: TRect;
|
|
|
|
+ FileDialog: PFileDialog;
|
|
|
|
+ FileName: FNameStr;
|
|
|
|
+const
|
|
|
|
+ FDOptions: Word = fdOKButton or fdOpenButton;
|
|
|
|
+begin
|
|
|
|
+ FileName := '*.*';
|
|
|
|
+ New(FileDialog, Init(FileName, 'Open file', '~F~ile name', FDOptions, 1));
|
|
|
|
+ if ExecuteDialog(FileDialog, @FileName) <> cmCancel then
|
|
|
|
+ begin
|
|
|
|
+ R.Assign(0, 0, 75, 20);
|
|
|
|
+ InsertWindow(New(PEditWindow, Init(R, FileName, wnNoNumber)));
|
|
|
|
+ end;
|
|
|
|
+end;
|
|
|
|
|
|
PROCEDURE TTvDemo.TimedBox;
|
|
PROCEDURE TTvDemo.TimedBox;
|
|
var
|
|
var
|
|
@@ -280,6 +367,7 @@ BEGIN
|
|
P:=Nil;
|
|
P:=Nil;
|
|
END;
|
|
END;
|
|
END;
|
|
END;
|
|
|
|
+
|
|
PROCEDURE TTvDemo.Window2;
|
|
PROCEDURE TTvDemo.Window2;
|
|
VAR R: TRect; P: PGroup;
|
|
VAR R: TRect; P: PGroup;
|
|
BEGIN
|
|
BEGIN
|
|
@@ -362,8 +450,6 @@ BEGIN
|
|
End;*)
|
|
End;*)
|
|
|
|
|
|
MyApp.Init; { Initialize app }
|
|
MyApp.Init; { Initialize app }
|
|
-
|
|
|
|
-
|
|
|
|
MyApp.Run; { Run the app }
|
|
MyApp.Run; { Run the app }
|
|
{$IFDEF OS2PM}
|
|
{$IFDEF OS2PM}
|
|
{$IFDEF OS_OS2}
|
|
{$IFDEF OS_OS2}
|