Ver código fonte

* Dotted filenames for package fv

Michaël Van Canneyt 2 anos atrás
pai
commit
935467ae23
68 arquivos alterados com 828 adições e 181 exclusões
  1. 3 0
      packages/fv/namespaced/FreeVision.App.pas
  2. 3 0
      packages/fv/namespaced/FreeVision.Asciitab.pas
  3. 3 0
      packages/fv/namespaced/FreeVision.Buildfv.pas
  4. 3 0
      packages/fv/namespaced/FreeVision.Colorsel.pas
  5. 3 0
      packages/fv/namespaced/FreeVision.Colortxt.pas
  6. 3 0
      packages/fv/namespaced/FreeVision.Dialogs.pas
  7. 3 0
      packages/fv/namespaced/FreeVision.Drivers.pas
  8. 3 0
      packages/fv/namespaced/FreeVision.Editors.pas
  9. 3 0
      packages/fv/namespaced/FreeVision.Fvcommon.pas
  10. 3 0
      packages/fv/namespaced/FreeVision.Fvconsts.pas
  11. 3 0
      packages/fv/namespaced/FreeVision.Gadgets.pas
  12. 3 0
      packages/fv/namespaced/FreeVision.Histlist.pas
  13. 3 0
      packages/fv/namespaced/FreeVision.Inplong.pas
  14. 3 0
      packages/fv/namespaced/FreeVision.Memory.pas
  15. 3 0
      packages/fv/namespaced/FreeVision.Menus.pas
  16. 3 0
      packages/fv/namespaced/FreeVision.Msgbox.pas
  17. 3 0
      packages/fv/namespaced/FreeVision.Outline.pas
  18. 3 0
      packages/fv/namespaced/FreeVision.Resource.pas
  19. 3 0
      packages/fv/namespaced/FreeVision.Statuses.pas
  20. 3 0
      packages/fv/namespaced/FreeVision.Stddlg.pas
  21. 3 0
      packages/fv/namespaced/FreeVision.Sysmsg.pas
  22. 3 0
      packages/fv/namespaced/FreeVision.Tabs.pas
  23. 3 0
      packages/fv/namespaced/FreeVision.Time.pas
  24. 3 0
      packages/fv/namespaced/FreeVision.Timeddlg.pas
  25. 3 0
      packages/fv/namespaced/FreeVision.Uapp.pas
  26. 3 0
      packages/fv/namespaced/FreeVision.Udialogs.pas
  27. 3 0
      packages/fv/namespaced/FreeVision.Udrivers.pas
  28. 3 0
      packages/fv/namespaced/FreeVision.Ufvcommon.pas
  29. 3 0
      packages/fv/namespaced/FreeVision.Uhistlist.pas
  30. 3 0
      packages/fv/namespaced/FreeVision.Uinplong.pas
  31. 3 0
      packages/fv/namespaced/FreeVision.Umenus.pas
  32. 3 0
      packages/fv/namespaced/FreeVision.Umsgbox.pas
  33. 3 0
      packages/fv/namespaced/FreeVision.Uoutline.pas
  34. 3 0
      packages/fv/namespaced/FreeVision.Utabs.pas
  35. 3 0
      packages/fv/namespaced/FreeVision.Utimeddlg.pas
  36. 3 0
      packages/fv/namespaced/FreeVision.Uvalidate.pas
  37. 3 0
      packages/fv/namespaced/FreeVision.Uviews.pas
  38. 3 0
      packages/fv/namespaced/FreeVision.Validate.pas
  39. 3 0
      packages/fv/namespaced/FreeVision.Views.pas
  40. 40 0
      packages/fv/namespaces.lst
  41. 5 0
      packages/fv/src/amismsg.inc
  42. 78 43
      packages/fv/src/app.inc
  43. 6 0
      packages/fv/src/asciitab.pas
  44. 33 0
      packages/fv/src/buildfv.pas
  45. 7 0
      packages/fv/src/colortxt.pas
  46. 33 0
      packages/fv/src/dialogs.inc
  47. 100 38
      packages/fv/src/drivers.inc
  48. 102 89
      packages/fv/src/editors.pas
  49. 9 0
      packages/fv/src/fvcommon.inc
  50. 4 0
      packages/fv/src/fvconsts.pas
  51. 6 0
      packages/fv/src/gadgets.pas
  52. 12 0
      packages/fv/src/histlist.inc
  53. 13 0
      packages/fv/src/inplong.inc
  54. 25 0
      packages/fv/src/memory.pas
  55. 28 0
      packages/fv/src/menus.inc
  56. 20 0
      packages/fv/src/msgbox.inc
  57. 11 0
      packages/fv/src/outline.inc
  58. 13 0
      packages/fv/src/resource.pas
  59. 13 1
      packages/fv/src/statuses.pas
  60. 13 0
      packages/fv/src/stddlg.pas
  61. 3 0
      packages/fv/src/sysmsg.pas
  62. 26 0
      packages/fv/src/tabs.inc
  63. 29 5
      packages/fv/src/time.pas
  64. 22 0
      packages/fv/src/timeddlg.inc
  65. 5 0
      packages/fv/src/unixsmsg.inc
  66. 20 0
      packages/fv/src/validate.inc
  67. 30 5
      packages/fv/src/views.inc
  68. 5 0
      packages/fv/src/w32smsg.inc

+ 3 - 0
packages/fv/namespaced/FreeVision.App.pas

@@ -0,0 +1,3 @@
+unit FreeVision.App;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i app.pas}

+ 3 - 0
packages/fv/namespaced/FreeVision.Asciitab.pas

@@ -0,0 +1,3 @@
+unit FreeVision.Asciitab;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i asciitab.pas}

+ 3 - 0
packages/fv/namespaced/FreeVision.Buildfv.pas

@@ -0,0 +1,3 @@
+unit FreeVision.Buildfv;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i buildfv.pas}

+ 3 - 0
packages/fv/namespaced/FreeVision.Colorsel.pas

@@ -0,0 +1,3 @@
+unit FreeVision.Colorsel;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i colorsel.pas}

+ 3 - 0
packages/fv/namespaced/FreeVision.Colortxt.pas

@@ -0,0 +1,3 @@
+unit FreeVision.Colortxt;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i colortxt.pas}

+ 3 - 0
packages/fv/namespaced/FreeVision.Dialogs.pas

@@ -0,0 +1,3 @@
+unit FreeVision.Dialogs;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i dialogs.pas}

+ 3 - 0
packages/fv/namespaced/FreeVision.Drivers.pas

@@ -0,0 +1,3 @@
+unit FreeVision.Drivers;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i drivers.pas}

+ 3 - 0
packages/fv/namespaced/FreeVision.Editors.pas

@@ -0,0 +1,3 @@
+unit FreeVision.Editors;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i editors.pas}

+ 3 - 0
packages/fv/namespaced/FreeVision.Fvcommon.pas

@@ -0,0 +1,3 @@
+unit FreeVision.Fvcommon;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i fvcommon.pas}

+ 3 - 0
packages/fv/namespaced/FreeVision.Fvconsts.pas

@@ -0,0 +1,3 @@
+unit FreeVision.Fvconsts;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i fvconsts.pas}

+ 3 - 0
packages/fv/namespaced/FreeVision.Gadgets.pas

@@ -0,0 +1,3 @@
+unit FreeVision.Gadgets;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i gadgets.pas}

+ 3 - 0
packages/fv/namespaced/FreeVision.Histlist.pas

@@ -0,0 +1,3 @@
+unit FreeVision.Histlist;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i histlist.pas}

+ 3 - 0
packages/fv/namespaced/FreeVision.Inplong.pas

@@ -0,0 +1,3 @@
+unit FreeVision.Inplong;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i inplong.pas}

+ 3 - 0
packages/fv/namespaced/FreeVision.Memory.pas

@@ -0,0 +1,3 @@
+unit FreeVision.Memory;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i memory.pas}

+ 3 - 0
packages/fv/namespaced/FreeVision.Menus.pas

@@ -0,0 +1,3 @@
+unit FreeVision.Menus;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i menus.pas}

+ 3 - 0
packages/fv/namespaced/FreeVision.Msgbox.pas

@@ -0,0 +1,3 @@
+unit FreeVision.Msgbox;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i msgbox.pas}

+ 3 - 0
packages/fv/namespaced/FreeVision.Outline.pas

@@ -0,0 +1,3 @@
+unit FreeVision.Outline;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i outline.pas}

+ 3 - 0
packages/fv/namespaced/FreeVision.Resource.pas

@@ -0,0 +1,3 @@
+unit FreeVision.Resource;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i resource.pas}

+ 3 - 0
packages/fv/namespaced/FreeVision.Statuses.pas

@@ -0,0 +1,3 @@
+unit FreeVision.Statuses;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i statuses.pas}

+ 3 - 0
packages/fv/namespaced/FreeVision.Stddlg.pas

@@ -0,0 +1,3 @@
+unit FreeVision.Stddlg;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i stddlg.pas}

+ 3 - 0
packages/fv/namespaced/FreeVision.Sysmsg.pas

@@ -0,0 +1,3 @@
+unit FreeVision.Sysmsg;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i sysmsg.pas}

+ 3 - 0
packages/fv/namespaced/FreeVision.Tabs.pas

@@ -0,0 +1,3 @@
+unit FreeVision.Tabs;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i tabs.pas}

+ 3 - 0
packages/fv/namespaced/FreeVision.Time.pas

@@ -0,0 +1,3 @@
+unit FreeVision.Time;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i time.pas}

+ 3 - 0
packages/fv/namespaced/FreeVision.Timeddlg.pas

@@ -0,0 +1,3 @@
+unit FreeVision.Timeddlg;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i timeddlg.pas}

+ 3 - 0
packages/fv/namespaced/FreeVision.Uapp.pas

@@ -0,0 +1,3 @@
+unit FreeVision.Uapp;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i uapp.pas}

+ 3 - 0
packages/fv/namespaced/FreeVision.Udialogs.pas

@@ -0,0 +1,3 @@
+unit FreeVision.Udialogs;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i udialogs.pas}

+ 3 - 0
packages/fv/namespaced/FreeVision.Udrivers.pas

@@ -0,0 +1,3 @@
+unit FreeVision.Udrivers;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i udrivers.pas}

+ 3 - 0
packages/fv/namespaced/FreeVision.Ufvcommon.pas

@@ -0,0 +1,3 @@
+unit FreeVision.Ufvcommon;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i ufvcommon.pas}

+ 3 - 0
packages/fv/namespaced/FreeVision.Uhistlist.pas

@@ -0,0 +1,3 @@
+unit FreeVision.Uhistlist;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i uhistlist.pas}

+ 3 - 0
packages/fv/namespaced/FreeVision.Uinplong.pas

@@ -0,0 +1,3 @@
+unit FreeVision.Uinplong;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i uinplong.pas}

+ 3 - 0
packages/fv/namespaced/FreeVision.Umenus.pas

@@ -0,0 +1,3 @@
+unit FreeVision.Umenus;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i umenus.pas}

+ 3 - 0
packages/fv/namespaced/FreeVision.Umsgbox.pas

@@ -0,0 +1,3 @@
+unit FreeVision.Umsgbox;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i umsgbox.pas}

+ 3 - 0
packages/fv/namespaced/FreeVision.Uoutline.pas

@@ -0,0 +1,3 @@
+unit FreeVision.Uoutline;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i uoutline.pas}

+ 3 - 0
packages/fv/namespaced/FreeVision.Utabs.pas

@@ -0,0 +1,3 @@
+unit FreeVision.Utabs;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i utabs.pas}

+ 3 - 0
packages/fv/namespaced/FreeVision.Utimeddlg.pas

@@ -0,0 +1,3 @@
+unit FreeVision.Utimeddlg;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i utimeddlg.pas}

+ 3 - 0
packages/fv/namespaced/FreeVision.Uvalidate.pas

@@ -0,0 +1,3 @@
+unit FreeVision.Uvalidate;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i uvalidate.pas}

+ 3 - 0
packages/fv/namespaced/FreeVision.Uviews.pas

@@ -0,0 +1,3 @@
+unit FreeVision.Uviews;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i uviews.pas}

+ 3 - 0
packages/fv/namespaced/FreeVision.Validate.pas

@@ -0,0 +1,3 @@
+unit FreeVision.Validate;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i validate.pas}

+ 3 - 0
packages/fv/namespaced/FreeVision.Views.pas

@@ -0,0 +1,3 @@
+unit FreeVision.Views;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i views.pas}

+ 40 - 0
packages/fv/namespaces.lst

@@ -0,0 +1,40 @@
+src/msgbox.pas=namespaced/FreeVision.Msgbox.pas
+{s*:src/}=namespaced/
+{i+:src/}
+src/timeddlg.pas=namespaced/FreeVision.Timeddlg.pas
+src/colorsel.pas=namespaced/FreeVision.Colorsel.pas
+src/uhistlist.pas=namespaced/FreeVision.Uhistlist.pas
+src/fvconsts.pas=namespaced/FreeVision.Fvconsts.pas
+src/utabs.pas=namespaced/FreeVision.Utabs.pas
+src/uinplong.pas=namespaced/FreeVision.Uinplong.pas
+src/outline.pas=namespaced/FreeVision.Outline.pas
+src/uvalidate.pas=namespaced/FreeVision.Uvalidate.pas
+src/histlist.pas=namespaced/FreeVision.Histlist.pas
+src/tabs.pas=namespaced/FreeVision.Tabs.pas
+src/utimeddlg.pas=namespaced/FreeVision.Utimeddlg.pas
+src/umenus.pas=namespaced/FreeVision.Umenus.pas
+src/ufvcommon.pas=namespaced/FreeVision.Ufvcommon.pas
+src/udialogs.pas=namespaced/FreeVision.Udialogs.pas
+src/drivers.pas=namespaced/FreeVision.Drivers.pas
+src/uviews.pas=namespaced/FreeVision.Uviews.pas
+src/views.pas=namespaced/FreeVision.Views.pas
+src/fvcommon.pas=namespaced/FreeVision.Fvcommon.pas
+src/app.pas=namespaced/FreeVision.App.pas
+src/inplong.pas=namespaced/FreeVision.Inplong.pas
+src/validate.pas=namespaced/FreeVision.Validate.pas
+src/umsgbox.pas=namespaced/FreeVision.Umsgbox.pas
+src/buildfv.pas=namespaced/FreeVision.Buildfv.pas
+src/uoutline.pas=namespaced/FreeVision.Uoutline.pas
+src/dialogs.pas=namespaced/FreeVision.Dialogs.pas
+src/udrivers.pas=namespaced/FreeVision.Udrivers.pas
+src/uapp.pas=namespaced/FreeVision.Uapp.pas
+src/menus.pas=namespaced/FreeVision.Menus.pas
+src/sysmsg.pas=namespaced/FreeVision.Sysmsg.pas
+src/asciitab.pas=namespaced/FreeVision.Asciitab.pas
+src/stddlg.pas=namespaced/FreeVision.Stddlg.pas
+src/memory.pas=namespaced/FreeVision.Memory.pas
+src/colortxt.pas=namespaced/FreeVision.Colortxt.pas
+src/statuses.pas=namespaced/FreeVision.Statuses.pas
+src/editors.pas=namespaced/FreeVision.Editors.pas
+src/time.pas=namespaced/FreeVision.Time.pas
+src/gadgets.pas=namespaced/FreeVision.Gadgets.pas

+ 5 - 0
packages/fv/src/amismsg.inc

@@ -20,8 +20,13 @@
 
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  MacOsApi.Video;
+{$ELSE FPC_DOTTEDUNITS}
 uses
   video;
+{$ENDIF FPC_DOTTEDUNITS}
 
 Const
   SystemEventActive : Boolean = false;

+ 78 - 43
packages/fv/src/app.inc

@@ -25,11 +25,13 @@
 {                                                          }
 {**********************************************************}
 
+{$IFNDEF FPC_DOTTEDUNITS}
 {$ifdef FV_UNICODE}
 UNIT UApp;
 {$else FV_UNICODE}
 UNIT App;
 {$endif FV_UNICODE}
+{$ENDIF FPC_DOTTEDUNITS}
 
 {2.0 compatibility}
 {$ifdef VER2_0}
@@ -55,6 +57,34 @@ UNIT App;
 {$V-} { Turn off strict VAR strings }
 {====================================================================}
 
+{$IFDEF FPC_DOTTEDUNITS}
+USES
+   {$IFDEF OS_WINDOWS}                                { WIN/NT CODE }
+       WinApi.Windows,                                       { Standard units }
+   {$ENDIF}
+
+   {$IFDEF OS_OS2}                                    { OS2 CODE }
+     {$IFDEF PPC_FPC}
+     OS2Api.os2def, OS2Api.doscalls, OS2Api.pmwin,                       { Standard units }
+     {$ELSE}
+      OS2Api.os2def, Os2Base, OS2PmApi,                       { Standard units }
+     {$ENDIF}
+   {$ENDIF}
+   TP.DOS,
+   System.Console.Video,
+{$ifdef FV_UNICODE}
+   FreeVision.Ufvcommon, {FreeVision.Memory,}                                { GFV standard units }
+{$else FV_UNICODE}
+   FreeVision.Fvcommon, {FreeVision.Memory,}                                { GFV standard units }
+{$endif FV_UNICODE}
+   System.Objects,
+{$ifdef FV_UNICODE}
+   FreeVision.Udrivers, FreeVision.Uviews, FreeVision.Umenus, FreeVision.Uhistlist, FreeVision.Udialogs, FreeVision.Umsgbox,
+{$else FV_UNICODE}
+   FreeVision.Drivers, FreeVision.Views, FreeVision.Menus, FreeVision.Histlist, FreeVision.Dialogs, FreeVision.Msgbox,
+{$endif FV_UNICODE}
+   FreeVision.Fvconsts;
+{$ELSE FPC_DOTTEDUNITS}
 USES
    {$IFDEF OS_WINDOWS}                                { WIN/NT CODE }
        Windows,                                       { Standard units }
@@ -81,6 +111,7 @@ USES
    Drivers, Views, Menus, HistList, Dialogs, msgbox,
 {$endif FV_UNICODE}
    fvconsts;
+{$ENDIF FPC_DOTTEDUNITS}
 
 {***************************************************************************}
 {                              PUBLIC CONSTANTS                             }
@@ -370,7 +401,11 @@ CONST
                                 IMPLEMENTATION
 {<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>}
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses    System.Console.Mouse{,System.Resources.Resource};
+{$ELSE FPC_DOTTEDUNITS}
 uses    Mouse{,Resource};
+{$ENDIF FPC_DOTTEDUNITS}
 
 resourcestring  sVideoFailed='Video initialization failed.';
                 sTypeExitOnReturn='Type EXIT to return...';
@@ -381,7 +416,7 @@ resourcestring  sVideoFailed='Video initialization failed.';
 {***************************************************************************}
 
 {***************************************************************************}
-{                      PRIVATE INITIALIZED VARIABLES                        }
+ {                      PRIVATE INITIALIZED VARIABLES                        }
 {***************************************************************************}
 
 {---------------------------------------------------------------------------}
@@ -496,7 +531,7 @@ END;
 {--TDesktop-----------------------------------------------------------------}
 {  Init -> Platforms DOS/DPMI/WIN/NT/OS2 - Updated 12Sep97 LdB              }
 {---------------------------------------------------------------------------}
-CONSTRUCTOR TDesktop.Init (Var Bounds: Objects.TRect);
+CONSTRUCTOR TDesktop.Init (Var Bounds: {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}Objects.TRect);
 BEGIN
    Inherited Init(Bounds);                            { Call ancestor }
    GrowMode := gfGrowHiX + gfGrowHiY;                 { Set growmode }
@@ -714,10 +749,10 @@ DESTRUCTOR TProgram.Done;
 BEGIN
    { Do not free the Buffer of Video Unit }
 {$ifdef FV_UNICODE}
-   If Buffer = UViews.PVideoBuf(EnhancedVideoBuf) then
+   If Buffer = {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}UViews.PVideoBuf(EnhancedVideoBuf) then
      Buffer:=nil;
 {$else FV_UNICODE}
-   If Buffer = Views.PVideoBuf(VideoBuf) then
+   If Buffer = {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Views.PVideoBuf(VideoBuf) then
      Buffer:=nil;
 {$endif FV_UNICODE}
    If (Desktop <> Nil) Then Dispose(Desktop, Done);   { Destroy desktop }
@@ -837,9 +872,9 @@ BEGIN
     video unit capabilities, the mono modus can't be handled
   }
 {$ifdef FV_UNICODE}
-  UDrivers.DetectVideo;
+  {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Udrivers.DetectVideo;
 {$else FV_UNICODE}
-  Drivers.DetectVideo;
+  {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Drivers.DetectVideo;
 {$endif FV_UNICODE}
 { ScreenMode.Row may be 0 if there's no console on startup }
   if ScreenMode.Row = 0 then
@@ -861,16 +896,16 @@ BEGIN
   ShadowSize.Y := 1;
   ShowMarkers := False;
 {$ifdef FV_UNICODE}
-  Buffer := UViews.PVideoBuf(EnhancedVideoBuf);
+  Buffer := {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}UViews.PVideoBuf(EnhancedVideoBuf);
 {$else FV_UNICODE}
-  Buffer := Views.PVideoBuf(VideoBuf);
+  Buffer := {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Views.PVideoBuf(VideoBuf);
 {$endif FV_UNICODE}
 END;
 
 
 {procedure TProgram.DoneScreen;
 begin
-  Drivers.DoneVideo;
+  {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Drivers.DoneVideo;
   Buffer:=nil;
 end;}
 
@@ -931,9 +966,9 @@ begin
 {  InitMemory;}
   InitScreen;
 {$ifdef FV_UNICODE}
-  Buffer := UViews.PVideoBuf(EnhancedVideoBuf);
+  Buffer := {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}UViews.PVideoBuf(EnhancedVideoBuf);
 {$else FV_UNICODE}
-  Buffer := Views.PVideoBuf(VideoBuf);
+  Buffer := {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Views.PVideoBuf(VideoBuf);
 {$endif FV_UNICODE}
   R.Assign(0, 0, ScreenWidth, ScreenHeight);
   ChangeBounds(R);
@@ -954,16 +989,16 @@ begin
    Warning: InitScreen calls DetectVideo which
     resets ScreenMode to old value, call it after
     video mode was changed instead of before }
-  Video.SetVideoMode(Mode);
+  {$IFDEF FPC_DOTTEDUNITS}System.Console.{$ENDIF}Video.SetVideoMode(Mode);
 
   { Update ScreenMode to new value }
   InitScreen;
-  ScreenWidth:=Video.ScreenWidth;
-  ScreenHeight:=Video.ScreenHeight;
+  ScreenWidth:={$IFDEF FPC_DOTTEDUNITS}System.Console.{$ENDIF}Video.ScreenWidth;
+  ScreenHeight:={$IFDEF FPC_DOTTEDUNITS}System.Console.{$ENDIF}Video.ScreenHeight;
 {$ifdef FV_UNICODE}
-  Buffer := UViews.PVideoBuf(EnhancedVideoBuf);
+  Buffer := {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}UViews.PVideoBuf(EnhancedVideoBuf);
 {$else FV_UNICODE}
-  Buffer := Views.PVideoBuf(VideoBuf);
+  Buffer := {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Views.PVideoBuf(VideoBuf);
 {$endif FV_UNICODE}
   R.Assign(0, 0, ScreenWidth, ScreenHeight);
   ChangeBounds(R);
@@ -999,9 +1034,9 @@ BEGIN
            End;
          If (Event.What = evNothing) Then Begin       { No mouse event }
 {$ifdef FV_UNICODE}
-           UDrivers.GetMouseEvent(Event);              { Load mouse event }
+           {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Udrivers.GetMouseEvent(Event);              { Load mouse event }
 {$else FV_UNICODE}
-           Drivers.GetMouseEvent(Event);              { Load mouse event }
+           {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Drivers.GetMouseEvent(Event);              { Load mouse event }
 {$endif FV_UNICODE}
            If (Event.What = evNothing) Then
              begin
@@ -1011,9 +1046,9 @@ BEGIN
                  directly on Amiga-like systems. The FV itself cannot
                  handle the System Events anyway. (KB) }
 {$ifdef FV_UNICODE}
-               UDrivers.GetSystemEvent(Event);         { Load system event }
+               {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Udrivers.GetSystemEvent(Event);         { Load system event }
 {$else FV_UNICODE}
-               Drivers.GetSystemEvent(Event);         { Load system event }
+               {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Drivers.GetSystemEvent(Event);         { Load system event }
 {$endif FV_UNICODE}
                If (Event.What = evNothing) Then
 {$ENDIF}
@@ -1064,9 +1099,9 @@ BEGIN
      end;}
    initkeyboard;
 {$ifdef FV_UNICODE}
-   if not UDrivers.InitVideo then                              { Start video up }
+   if not {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}UDrivers.InitVideo then                              { Start video up }
 {$else FV_UNICODE}
-   if not Drivers.InitVideo then                              { Start video up }
+   if not {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Drivers.InitVideo then                              { Start video up }
 {$endif FV_UNICODE}
      begin
        donekeyboard;
@@ -1074,18 +1109,18 @@ BEGIN
        halt(1);
      end;
 {$ifdef FV_UNICODE}
-   UDrivers.InitEvents;                                        { Start event drive }
-   UDrivers.InitSysError;                                      { Start system error }
+   {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}UDrivers.InitEvents;                                        { Start event drive }
+   {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}UDrivers.InitSysError;                                      { Start system error }
 {$else FV_UNICODE}
-   Drivers.InitEvents;                                        { Start event drive }
-   Drivers.InitSysError;                                      { Start system error }
+   {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Drivers.InitEvents;                                        { Start event drive }
+   {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Drivers.InitSysError;                                      { Start system error }
 {$endif FV_UNICODE}
    InitHistory;                                               { Start history up }
    Inherited Init;                                            { Call ancestor }
    InitMsgBox;
    { init mouse and cursor }
-   Video.SetCursorType(crHidden);
-   Mouse.SetMouseXY(1,1);
+   {$IFDEF FPC_DOTTEDUNITS}System.Console.{$ENDIF}Video.SetCursorType(crHidden);
+   {$IFDEF FPC_DOTTEDUNITS}System.Console.{$ENDIF}Mouse.SetMouseXY(1,1);
 END;
 
 {--TApplication-------------------------------------------------------------}
@@ -1096,13 +1131,13 @@ BEGIN
    Inherited Done;                                    { Call ancestor }
    DoneHistory;                                       { Close history }
 {$ifdef FV_UNICODE}
-   UDrivers.DoneSysError;                                      { Close system error }
-   UDrivers.DoneEvents;                                        { Close event drive }
-   Udrivers.donevideo;
+   {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}UDrivers.DoneSysError;                                      { Close system error }
+   {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}UDrivers.DoneEvents;                                        { Close event drive }
+   {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Udrivers.donevideo;
 {$else FV_UNICODE}
-   Drivers.DoneSysError;                                      { Close system error }
-   Drivers.DoneEvents;                                        { Close event drive }
-   drivers.donevideo;
+   {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Drivers.DoneSysError;                                      { Close system error }
+   {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Drivers.DoneEvents;                                        { Close event drive }
+   {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}drivers.donevideo;
 {$endif FV_UNICODE}
 {   DoneMemory;}                                       { Close memory }
    donekeyboard;
@@ -1142,11 +1177,11 @@ BEGIN                                                 { Compatability only }
   DoneSysError;
   DoneEvents;
 {$ifdef FV_UNICODE}
-  udrivers.donevideo;
-  udrivers.donekeyboard;
+  {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}udrivers.donevideo;
+  {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}udrivers.donekeyboard;
 {$else FV_UNICODE}
-  drivers.donevideo;
-  drivers.donekeyboard;
+  {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}drivers.donevideo;
+  {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}drivers.donekeyboard;
 {$endif FV_UNICODE}
 {  DoneDosMem;}
   WriteShellMsg;
@@ -1162,13 +1197,13 @@ BEGIN                                                 { Compatability only }
 {$endif}
 {  InitDosMem;}
 {$ifdef FV_UNICODE}
-  udrivers.initkeyboard;
-  udrivers.initvideo;
+  {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}udrivers.initkeyboard;
+  {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}udrivers.initvideo;
 {$else FV_UNICODE}
-  drivers.initkeyboard;
-  drivers.initvideo;
+  {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}drivers.initkeyboard;
+  {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}drivers.initvideo;
 {$endif FV_UNICODE}
-  Video.SetCursorType(crHidden);
+  {$IFDEF FPC_DOTTEDUNITS}System.Console.{$ENDIF}Video.SetCursorType(crHidden);
   InitScreen;
   InitEvents;
   InitSysError;

+ 6 - 0
packages/fv/src/asciitab.pas

@@ -23,7 +23,9 @@
 {        WIN95/NT - FPC 0.9912+             (32 Bit)       }
 {                                                          }
 
+{$IFNDEF FPC_DOTTEDUNITS}
 UNIT AsciiTab;
+{$ENDIF FPC_DOTTEDUNITS}
 
 {<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>}
                                   INTERFACE
@@ -44,7 +46,11 @@ UNIT AsciiTab;
 
 {====================================================================}
 
+{$IFDEF FPC_DOTTEDUNITS}
+USES FreeVision.Fvconsts, System.Objects, FreeVision.Drivers, FreeVision.Views, FreeVision.App;      { Standard GFV units }
+{$ELSE FPC_DOTTEDUNITS}
 USES FVConsts, Objects, Drivers, Views, App;      { Standard GFV units }
+{$ENDIF FPC_DOTTEDUNITS}
 
 {***************************************************************************}
 {                        PUBLIC OBJECT DEFINITIONS                          }

+ 33 - 0
packages/fv/src/buildfv.pas

@@ -2,8 +2,40 @@
 
   Unit to build all units of Free Vision
 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit buildfv;
+{$ENDIF FPC_DOTTEDUNITS}
+
 interface
+
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  FreeVision.Fvcommon,
+  System.Objects,
+  FreeVision.Drivers,
+{  FreeVision.Memory,}
+  FreeVision.Fvconsts,
+{  System.Resources.Resource,}
+  FreeVision.Views,
+  FreeVision.Validate,
+  FreeVision.Msgbox,
+  FreeVision.Dialogs,
+  FreeVision.Menus,
+  FreeVision.App,
+  FreeVision.Stddlg,
+  FreeVision.Asciitab,
+  FreeVision.Tabs,
+  FreeVision.Outline,
+  FreeVision.Memory,
+  FreeVision.Colortxt,
+  FreeVision.Statuses,
+  FreeVision.Histlist,
+  FreeVision.Inplong,
+  FreeVision.Editors,
+  FreeVision.Gadgets,
+  FreeVision.Timeddlg,
+  FreeVision.Time;
+{$ELSE FPC_DOTTEDUNITS}
 uses
   fvcommon,
   objects,
@@ -30,6 +62,7 @@ uses
   gadgets,
   timeddlg,
   time;
+{$ENDIF FPC_DOTTEDUNITS}
 
 implementation
 

+ 7 - 0
packages/fv/src/colortxt.pas

@@ -1,4 +1,6 @@
+{$IFNDEF FPC_DOTTEDUNITS}
 unit ColorTxt;
+{$ENDIF FPC_DOTTEDUNITS}
 {
     This file is part of the Free Vision package
 
@@ -37,8 +39,13 @@ unit ColorTxt;
 
 interface
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  System.Objects, FreeVision.Drivers, FreeVision.Views, FreeVision.Dialogs, FreeVision.App, FreeVision.Fvconsts;
+{$ELSE FPC_DOTTEDUNITS}
 uses
   objects, drivers, views, dialogs, app, fvconsts;
+{$ENDIF FPC_DOTTEDUNITS}
 
 type
   PColoredText = ^TColoredText;

+ 33 - 0
packages/fv/src/dialogs.inc

@@ -25,11 +25,13 @@
 {                                                          }
 {**********************************************************}
 
+{$IFNDEF FPC_DOTTEDUNITS}
 {$ifdef FV_UNICODE}
 UNIT UDialogs;
 {$else FV_UNICODE}
 UNIT Dialogs;
 {$endif FV_UNICODE}
+{$ENDIF FPC_DOTTEDUNITS}
 
 {$CODEPAGE cp437}
 
@@ -58,6 +60,28 @@ UNIT Dialogs;
 {$V-} { Turn off strict VAR strings }
 {====================================================================}
 
+{$IFDEF FPC_DOTTEDUNITS}
+USES
+   {$IFDEF OS_WINDOWS}                                { WIN/NT CODE }
+       WinApi.Windows,                                       { Standard units }
+   {$ENDIF}
+
+   {$IFDEF OS_OS2}                                    { OS2 CODE }
+     OS2Api.os2def, OS2Api.doscalls, OS2Api.pmwin,                         { Standard units }
+   {$ENDIF}
+
+{$ifdef FV_UNICODE}
+   FreeVision.Ufvcommon,
+{$else FV_UNICODE}
+   FreeVision.Fvcommon,
+{$endif FV_UNICODE}
+   FreeVision.Fvconsts, System.Objects,                       { Standard GFV units }
+{$ifdef FV_UNICODE}
+   FreeVision.Udrivers, FreeVision.Uviews, FreeVision.Uvalidate, System.Unicode.Graphemebreakproperty;
+{$else FV_UNICODE}
+   FreeVision.Drivers, FreeVision.Views, FreeVision.Validate;
+{$endif FV_UNICODE}
+{$ELSE FPC_DOTTEDUNITS}
 USES
    {$IFDEF OS_WINDOWS}                                { WIN/NT CODE }
        Windows,                                       { Standard units }
@@ -78,6 +102,7 @@ USES
 {$else FV_UNICODE}
    Drivers, Views, Validate;
 {$endif FV_UNICODE}
+{$ENDIF FPC_DOTTEDUNITS}
 
 {***************************************************************************}
 {                              PUBLIC CONSTANTS                             }
@@ -1055,11 +1080,19 @@ resourcestring  slCancel='Cancel';
                                 IMPLEMENTATION
 {<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>}
 
+{$IFDEF FPC_DOTTEDUNITS}
+{$ifdef FV_UNICODE}
+USES FreeVision.Uapp,FreeVision.Uhistlist;                             { Standard GFV unit }
+{$else FV_UNICODE}
+USES FreeVision.App,FreeVision.Histlist;                               { Standard GFV unit }
+{$endif FV_UNICODE}
+{$ELSE FPC_DOTTEDUNITS}
 {$ifdef FV_UNICODE}
 USES UApp,UHistList;                             { Standard GFV unit }
 {$else FV_UNICODE}
 USES App,HistList;                               { Standard GFV unit }
 {$endif FV_UNICODE}
+{$ENDIF FPC_DOTTEDUNITS}
 
 {***************************************************************************}
 {                         PRIVATE DEFINED CONSTANTS                         }

+ 100 - 38
packages/fv/src/drivers.inc

@@ -31,11 +31,13 @@
 {                                                          }
 {**********************************************************}
 
+{$IFNDEF FPC_DOTTEDUNITS}
 {$ifdef FV_UNICODE}
 UNIT UDrivers;
 {$else FV_UNICODE}
 UNIT Drivers;
 {$endif FV_UNICODE}
+{$ENDIF FPC_DOTTEDUNITS}
 
 {<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>}
                                   INTERFACE
@@ -65,6 +67,58 @@ UNIT Drivers;
   {$INLINE ON}
 {$endif}
 
+{$IFDEF FPC_DOTTEDUNITS}
+USES
+   {$IFDEF OS_WINDOWS}                                { WIN/NT CODE }
+         WinApi.Windows,                                     { Standard unit }
+   {$ENDIF}
+
+   {$IFDEF OS_WIN16}                                  { WIN16 CODE }
+         WinApi.WinProcs, WinApi.WinTypes,                          { Standard units }
+         System.Console.Crt,                                         { used for Delay() }
+   {$ENDIF}
+
+   {$ifdef OS_DOS}
+     TP.DOS,
+   {$endif OS_DOS}
+
+   {$IFDEF OS_OS2}                                    { OS2 CODE }
+     {$IFDEF PPC_Virtual}                             { VIRTUAL PASCAL UNITS }
+       OS2Api.os2def, OS2Base, OS2PMAPI,                     { Standard units }
+     {$ENDIF}
+     {$IFDEF PPC_Speed}                               { SPEED PASCAL UNITS }
+       BseDos, Os2Def,                                { Standard units }
+     {$ENDIF}
+     {$IFDEF PPC_FPC}                                 { FPC UNITS }
+       OS2Api.doscalls, Os2Def,                              { Standard units }
+     {$ENDIF}
+   {$ENDIF}
+
+   {$IFDEF OS_UNIX}
+       UnixApi.Types,UnixApi.Base,UnixApi.Unix,
+   {$ENDIF}
+
+   {$IFDEF OS_NETWARE_LIBC}
+      Api.Libc,
+   {$ENDIF}
+   {$IFDEF OS_NETWARE_CLIB}
+      NetWareApi.nwserv,
+   {$ENDIF}
+
+   {$IFDEF OS_AMIGA}
+      dos, Amiga.Core.Amigados,
+   {$ENDIF}
+
+   System.Console.Video,
+   FreeVision.Sysmsg,
+{$ifdef FV_UNICODE}
+   FreeVision.UfvCommon,
+   System.Unicode.Graphemebreakproperty,
+{$else FV_UNICODE}
+   FreeVision.Fvcommon,
+{$endif FV_UNICODE}
+   System.Objects;                                 { GFV standard units }
+{$ELSE FPC_DOTTEDUNITS}
 USES
    {$IFDEF OS_WINDOWS}                                { WIN/NT CODE }
          Windows,                                     { Standard unit }
@@ -115,6 +169,7 @@ USES
    FVCommon,
 {$endif FV_UNICODE}
    Objects;                                 { GFV standard units }
+{$ENDIF FPC_DOTTEDUNITS}
 
 {***************************************************************************}
 {                              PUBLIC CONSTANTS                             }
@@ -312,7 +367,7 @@ TYPE
    END;
    PEvent = ^TEvent;
 
-   TVideoMode = Video.TVideoMode;                     { Screen mode }
+   TVideoMode = {$IFDEF FPC_DOTTEDUNITS}System.Console.{$ENDIF}Video.TVideoMode;                     { Screen mode }
 
 {---------------------------------------------------------------------------}
 {                    ERROR HANDLER FUNCTION DEFINITION                      }
@@ -667,10 +722,17 @@ VAR
 {<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>}
                                IMPLEMENTATION
 {<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>}
+{$IFDEF FPC_DOTTEDUNITS}
+{ API Units }
+  USES
+  FreeVision.Fvconsts,
+  System.Console.Keyboard,System.Console.Mouse;
+{$ELSE FPC_DOTTEDUNITS}
 { API Units }
   USES
   FVConsts,
   Keyboard,Mouse;
+{$ENDIF FPC_DOTTEDUNITS}
 
 {***************************************************************************}
 {                        PRIVATE INTERNAL CONSTANTS                         }
@@ -927,7 +989,7 @@ procedure DetectVideo;
 VAR
   CurrMode : TVideoMode;
 begin
-  { Video.InitVideo; Incompatible with BP
+  { {$IFDEF FPC_DOTTEDUNITS}System.Console.{$ENDIF}Video.InitVideo; Incompatible with BP
     and forces a screen clear which is often a bad thing PM }
   GetVideoMode(CurrMode);
   ScreenMode:=CurrMode;
@@ -937,7 +999,7 @@ end;
 {  DetectMouse -> Platforms DOS/DPMI/WIN/NT/OS2 - Updated 19May98 LdB       }
 FUNCTION DetectMouse: Byte;inline;
 begin
-  DetectMouse:=Mouse.DetectMouse;
+  DetectMouse:={$IFDEF FPC_DOTTEDUNITS}System.Console.{$ENDIF}Mouse.DetectMouse;
 end;
 
 {***************************************************************************}
@@ -951,14 +1013,14 @@ end;
 {$ifdef FV_UNICODE}
 FUNCTION EgcWidth(Const EGC: Sw_String): Sw_Integer;
 BEGIN
-   Result := Video.ExtendedGraphemeClusterDisplayWidth(EGC);
+   Result := {$IFDEF FPC_DOTTEDUNITS}System.Console.{$ENDIF}Video.ExtendedGraphemeClusterDisplayWidth(EGC);
 END;
 {$endif FV_UNICODE}
 
 {$ifdef FV_UNICODE}
 FUNCTION StrWidth(Const S: Sw_String): Sw_Integer;
 BEGIN
-   Result := Video.StringDisplayWidth(S);
+   Result := {$IFDEF FPC_DOTTEDUNITS}System.Console.{$ENDIF}Video.StringDisplayWidth(S);
 END;
 {$else FV_UNICODE}
 FUNCTION StrWidth(Const S: Sw_String): Sw_Integer;
@@ -978,7 +1040,7 @@ BEGIN
    Result := 0;
    for EGC in TUnicodeStringExtendedGraphemeClustersEnumerator.Create(S) do
      if EGC <> '~' then
-       Inc(Result, Video.ExtendedGraphemeClusterDisplayWidth(EGC));
+       Inc(Result, {$IFDEF FPC_DOTTEDUNITS}System.Console.{$ENDIF}Video.ExtendedGraphemeClusterDisplayWidth(EGC));
 END;
 {$else FV_UNICODE}
 FUNCTION CStrLen (Const S: String): Sw_Integer;
@@ -1004,7 +1066,7 @@ BEGIN
      begin
        If (Attr <> 0) Then P^.Attribute := Attr;        { Copy attribute }
        P^.ExtendedGraphemeCluster := EGC;               { Copy string AnsiChar }
-       Inc(P, Video.ExtendedGraphemeClusterDisplayWidth(EGC));
+       Inc(P, {$IFDEF FPC_DOTTEDUNITS}System.Console.{$ENDIF}Video.ExtendedGraphemeClusterDisplayWidth(EGC));
      end;
 END;
 {$else FV_UNICODE}
@@ -1035,7 +1097,7 @@ BEGIN
            If (Lo(Attrs) <> 0) Then
              P^.Attribute := Lo(Attrs);                   { Copy attribute }
            P^.ExtendedGraphemeCluster:=EGC;               { Copy string AnsiChar }
-           Inc(P, Video.ExtendedGraphemeClusterDisplayWidth(EGC));  { Next position }
+           Inc(P, {$IFDEF FPC_DOTTEDUNITS}System.Console.{$ENDIF}Video.ExtendedGraphemeClusterDisplayWidth(EGC));  { Next position }
          end
        else
          begin
@@ -1093,7 +1155,7 @@ BEGIN
     begin
       if DestWidth <= 0 then
         exit;
-      Dec(DestWidth, Video.ExtendedGraphemeClusterDisplayWidth(EGC));
+      Dec(DestWidth, {$IFDEF FPC_DOTTEDUNITS}System.Console.{$ENDIF}Video.ExtendedGraphemeClusterDisplayWidth(EGC));
       if DestWidth < 0 then
         begin
           If (Attr <> 0) Then P^.Attribute := Attr;
@@ -1102,7 +1164,7 @@ BEGIN
         end;
       If (Attr <> 0) Then P^.Attribute := Attr;        { Copy attribute }
       P^.ExtendedGraphemeCluster := EGC;               { Copy string AnsiChar }
-      Inc(P, Video.ExtendedGraphemeClusterDisplayWidth(EGC));
+      Inc(P, {$IFDEF FPC_DOTTEDUNITS}System.Console.{$ENDIF}Video.ExtendedGraphemeClusterDisplayWidth(EGC));
     end;
 END;
 {$else FV_UNICODE}
@@ -1231,7 +1293,7 @@ END;
 {---------------------------------------------------------------------------}
 FUNCTION GetShiftState: Byte;
 begin
-  GetShiftState:=Keyboard.GetKeyEventShiftState(Keyboard.PollShiftStateEvent);
+  GetShiftState:={$IFDEF FPC_DOTTEDUNITS}System.Console.{$ENDIF}Keyboard.GetKeyEventShiftState({$IFDEF FPC_DOTTEDUNITS}System.Console.{$ENDIF}Keyboard.PollShiftStateEvent);
 end;
 
 {---------------------------------------------------------------------------}
@@ -1242,9 +1304,9 @@ var
   key      : TEnhancedKeyEvent;
   keycode  : Word;
 begin
-  if Keyboard.PollEnhancedKeyEvent<>NilEnhancedKeyEvent then
+  if {$IFDEF FPC_DOTTEDUNITS}System.Console.{$ENDIF}Keyboard.PollEnhancedKeyEvent<>NilEnhancedKeyEvent then
    begin
-     key:=Keyboard.GetEnhancedKeyEvent;
+     key:={$IFDEF FPC_DOTTEDUNITS}System.Console.{$ENDIF}Keyboard.GetEnhancedKeyEvent;
      keycode:=key.VirtualScanCode;
      // some kbds still honour old XT E0 prefix. (org IBM ps/2, win98?) bug #8978
      if (keycode and $FF = $E0) and
@@ -1310,7 +1372,7 @@ procedure HideMouse;
 begin
 { Is mouse hidden yet?
   If (HideCount = 0) Then}
-    Mouse.HideMouse;
+    {$IFDEF FPC_DOTTEDUNITS}System.Console.{$ENDIF}Mouse.HideMouse;
 {  Inc(HideCount);}
 end;
 
@@ -1322,7 +1384,7 @@ begin
 {  if HideCount>0 then
     dec(HideCount);
   if (HideCount=0) then}
-   Mouse.ShowMouse;
+   {$IFDEF FPC_DOTTEDUNITS}System.Console.{$ENDIF}Mouse.ShowMouse;
 end;
 
 {---------------------------------------------------------------------------}
@@ -1330,11 +1392,11 @@ end;
 {---------------------------------------------------------------------------}
 procedure GetMouseEvent (Var Event: TEvent);
 var
-  e : Mouse.TMouseEvent;
+  e : {$IFDEF FPC_DOTTEDUNITS}System.Console.{$ENDIF}Mouse.TMouseEvent;
 begin
-  if Mouse.PollMouseEvent(e) then
+  if {$IFDEF FPC_DOTTEDUNITS}System.Console.{$ENDIF}Mouse.PollMouseEvent(e) then
    begin
-     Mouse.GetMouseEvent(e);
+     {$IFDEF FPC_DOTTEDUNITS}System.Console.{$ENDIF}Mouse.GetMouseEvent(e);
      MouseWhere.X:=e.x;
      MouseWhere.Y:=e.y;
      Event.Double:=false;
@@ -1394,7 +1456,7 @@ var
 begin
   if PollSystemEvent(SysEvent) then
     begin
-      SysMsg.GetSystemEvent(SysEvent);
+      {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Sysmsg.GetSystemEvent(SysEvent);
       case SysEvent.typ of
       SysNothing :
         Event.What:=evNothing;
@@ -1440,14 +1502,14 @@ PROCEDURE InitEvents;
 BEGIN
   If (ButtonCount <> 0) Then
     begin                   { Mouse is available }
-     Mouse.InitMouse;                                 { Hook the mouse }
+     {$IFDEF FPC_DOTTEDUNITS}System.Console.{$ENDIF}Mouse.InitMouse;                                 { Hook the mouse }
      { this is required by the use of HideCount variable }
-     Mouse.ShowMouse;                                 { visible by default }
+     {$IFDEF FPC_DOTTEDUNITS}System.Console.{$ENDIF}Mouse.ShowMouse;                                 { visible by default }
      { HideCount:=0;  }
      LastButtons := 0;                                { Clear last buttons }
      DownButtons := 0;                                { Clear down buttons }
-     MouseWhere.X:=Mouse.GetMouseX;
-     MouseWhere.Y:=Mouse.GetMouseY;                   { Get mouse position }
+     MouseWhere.X:={$IFDEF FPC_DOTTEDUNITS}System.Console.{$ENDIF}Mouse.GetMouseX;
+     MouseWhere.Y:={$IFDEF FPC_DOTTEDUNITS}System.Console.{$ENDIF}Mouse.GetMouseY;                   { Get mouse position }
      LastWhere.x:=MouseWhere.x;
      LastWhereX:=MouseWhere.x;
      LastWhere.y:=MouseWhere.y;
@@ -1463,7 +1525,7 @@ END;
 PROCEDURE DoneEvents;
 BEGIN
   DoneSystemMsg;
-  Mouse.DoneMouse;
+  {$IFDEF FPC_DOTTEDUNITS}System.Console.{$ENDIF}Mouse.DoneMouse;
   MouseEvents:=false;
 END;
 
@@ -1481,7 +1543,7 @@ const
 procedure initkeyboard;inline;
 
 begin
-  keyboard.initkeyboard;
+  {$IFDEF FPC_DOTTEDUNITS}System.Console.{$ENDIF}Keyboard.initkeyboard;
 end;
 
 {---------------------------------------------------------------------------}
@@ -1491,7 +1553,7 @@ end;
 procedure donekeyboard;inline;
 
 begin
-  keyboard.donekeyboard;
+  {$IFDEF FPC_DOTTEDUNITS}System.Console.{$ENDIF}Keyboard.donekeyboard;
 end;
 
 {---------------------------------------------------------------------------}
@@ -1512,17 +1574,17 @@ begin
     StoreScreenMode.Col:=0;
 
 {$ifdef FV_UNICODE}
-  Video.InitEnhancedVideo;
+  {$IFDEF FPC_DOTTEDUNITS}System.Console.{$ENDIF}Video.InitEnhancedVideo;
 {$else FV_UNICODE}
-  Video.InitVideo;
+  {$IFDEF FPC_DOTTEDUNITS}System.Console.{$ENDIF}Video.InitVideo;
 {$endif FV_UNICODE}
-  if video.errorcode<>viook then
+  if {$IFDEF FPC_DOTTEDUNITS}System.Console.{$ENDIF}Video.errorcode<>viook then
     exit;
   GetVideoMode(StartupScreenMode);
   GetVideoMode(ScreenMode);
 {$ifdef OS_WINDOWS}
   { Force the console to the current screen mode }
-  Video.SetVideoMode(ScreenMode);
+  {$IFDEF FPC_DOTTEDUNITS}System.Console.{$ENDIF}Video.SetVideoMode(ScreenMode);
 {$endif OS_WINDOWS}
 
   If (StoreScreenMode.Col<>0) and
@@ -1530,14 +1592,14 @@ begin
      (StoreScreenMode.row<>ScreenMode.row) or
      (StoreScreenMode.col<>ScreenMode.col)) then
     begin
-      Video.SetVideoMode(StoreScreenMode);
+      {$IFDEF FPC_DOTTEDUNITS}System.Console.{$ENDIF}Video.SetVideoMode(StoreScreenMode);
       GetVideoMode(ScreenMode);
     end;
 
   if ScreenWidth > MaxViewWidth then
     ScreenWidth := MaxViewWidth;
-  ScreenWidth:=Video.ScreenWidth;
-  ScreenHeight:=Video.ScreenHeight;
+  ScreenWidth:={$IFDEF FPC_DOTTEDUNITS}System.Console.{$ENDIF}Video.ScreenWidth;
+  ScreenHeight:={$IFDEF FPC_DOTTEDUNITS}System.Console.{$ENDIF}Video.ScreenHeight;
   VideoInitialized:=true;
   initvideo:=true;
 end;
@@ -1549,10 +1611,10 @@ PROCEDURE DoneVideo;
 BEGIN
   if not VideoInitialized then
     exit;
-  Video.SetVideoMode(StartupScreenMode);
-  Video.ClearScreen;
-  Video.SetCursorPos(0,0);
-  Video.DoneVideo;
+  {$IFDEF FPC_DOTTEDUNITS}System.Console.{$ENDIF}Video.SetVideoMode(StartupScreenMode);
+  {$IFDEF FPC_DOTTEDUNITS}System.Console.{$ENDIF}Video.ClearScreen;
+  {$IFDEF FPC_DOTTEDUNITS}System.Console.{$ENDIF}Video.SetCursorPos(0,0);
+  {$IFDEF FPC_DOTTEDUNITS}System.Console.{$ENDIF}Video.DoneVideo;
   VideoInitialized:=false;
 END;
 
@@ -1561,7 +1623,7 @@ END;
 {---------------------------------------------------------------------------}
 PROCEDURE ClearScreen;
 BEGIN
-  Video.ClearScreen;
+  {$IFDEF FPC_DOTTEDUNITS}System.Console.{$ENDIF}Video.ClearScreen;
 END;
 
 {---------------------------------------------------------------------------}

+ 102 - 89
packages/fv/src/editors.pas

@@ -1,4 +1,6 @@
+{$IFNDEF FPC_DOTTEDUNITS}
 unit Editors;
+{$ENDIF FPC_DOTTEDUNITS}
 {
     This file is part of the Free Vision package
    
@@ -38,8 +40,14 @@ unit Editors;
 
 interface
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  System.Objects, FreeVision.Drivers, FreeVision.Views, FreeVision.Dialogs,
+  FreeVision.Fvcommon, FreeVision.Fvconsts;
+{$ELSE FPC_DOTTEDUNITS}
 uses
   Objects, Drivers,Views,Dialogs,FVCommon,FVConsts;
+{$ENDIF FPC_DOTTEDUNITS}
 
 const
   { Length constants. }
@@ -103,7 +111,7 @@ type
 
   PIndicator = ^TIndicator;
   TIndicator = object (TView)
-    Location   : Objects.TPoint;
+    Location   : {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}Objects.TPoint;
     Modified   : Boolean;
     AutoIndent : Boolean;          { Added boolean for AutoIndent mode. }
     WordWrap   : Boolean;          { Added boolean for WordWrap mode.   }
@@ -111,7 +119,7 @@ type
     procedure   Draw; virtual;
     function    GetPalette : PPalette; virtual;
     procedure   SetState (AState : Word; Enable : Boolean); virtual;
-    procedure   SetValue (ALocation : Objects.TPoint; IsAutoIndent : Boolean;
+    procedure   SetValue (ALocation : {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}Objects.TPoint; IsAutoIndent : Boolean;
                                                       IsModified   : Boolean;
                                                       IsWordWrap   : Boolean);
   end;
@@ -151,9 +159,9 @@ type
     SelStart           : Sw_Word;
     SelEnd             : Sw_Word;
     CurPtr             : Sw_Word;
-    CurPos             : Objects.TPoint;
-    Delta              : Objects.TPoint;
-    Limit              : Objects.TPoint;
+    CurPos             : {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}Objects.TPoint;
+    Delta              : {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}Objects.TPoint;
+    Limit              : {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}Objects.TPoint;
     DrawLine           : Sw_Integer;
     DrawPtr            : Sw_Word;
     DelCount           : Sw_Word;
@@ -176,19 +184,19 @@ type
 
     constructor Init (var Bounds : TRect; AHScrollBar, AVScrollBar : PScrollBar;
                           AIndicator : PIndicator; ABufSize : Sw_Word);
-    constructor Load (var S : Objects.TStream);
+    constructor Load (var S : {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}Objects.TStream);
     destructor Done; virtual;
     function   BufChar (P : Sw_Word) : AnsiChar;
     function   BufPtr (P : Sw_Word) : Sw_Word;
     procedure  ChangeBounds (var Bounds : TRect); virtual;
-    procedure  ConvertEvent (var Event : Drivers.TEvent); virtual;
+    procedure  ConvertEvent (var Event : {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Drivers.TEvent); virtual;
     function   CursorVisible : Boolean;
     procedure  DeleteSelect;
     procedure  DoneBuffer; virtual;
     procedure  Draw; virtual;
     procedure  FormatLine (var DrawBuf; LinePtr : Sw_Word; Width : Sw_Integer; Colors : Word);virtual;
     function   GetPalette : PPalette; virtual;
-    procedure  HandleEvent (var Event : Drivers.TEvent); virtual;
+    procedure  HandleEvent (var Event : {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Drivers.TEvent); virtual;
     procedure  InitBuffer; virtual;
     function   InsertBuffer (var P : PEditBuffer; Offset, Length : Sw_Word;AllowUndo, SelectText : Boolean) : Boolean;
     function   InsertFrom (Editor : PEditor) : Boolean; virtual;
@@ -200,7 +208,7 @@ type
     procedure  SetSelect (NewStart, NewEnd : Sw_Word; CurStart : Boolean);
     procedure  SetCurPtr (P : Sw_Word; SelectMode : Byte);
     procedure  SetState (AState : Word; Enable : Boolean); virtual;
-    procedure  Store (var S : Objects.TStream);
+    procedure  Store (var S : {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}Objects.TStream);
     procedure  TrackCursor (Center : Boolean);
     procedure  Undo;
     procedure  UpdateCommands; virtual;
@@ -226,7 +234,7 @@ type
     function   Do_Word_Wrap (Select_Mode : Byte; Center_Cursor : Boolean) : Boolean;
     procedure  DrawLines (Y, Count : Sw_Integer; LinePtr : Sw_Word);
     procedure  Find;
-    function   GetMousePtr (Mouse : Objects.TPoint) : Sw_Word;
+    function   GetMousePtr (Mouse : {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}Objects.TPoint) : Sw_Word;
     function   HasSelection : Boolean;
     procedure  HideSelect;
     procedure  Insert_Line (Select_Mode : Byte);
@@ -271,13 +279,13 @@ type
 
   PMemo = ^TMemo;
   TMemo = object (TEditor)
-    constructor Load (var S : Objects.TStream);
+    constructor Load (var S : {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}Objects.TStream);
     function    DataSize : Sw_Word; virtual;
     procedure   GetData (var Rec); virtual;
     function    GetPalette : PPalette; virtual;
-    procedure   HandleEvent (var Event : Drivers.TEvent); virtual;
+    procedure   HandleEvent (var Event : {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Drivers.TEvent); virtual;
     procedure   SetData (var Rec); virtual;
-    procedure   Store (var S : Objects.TStream);
+    procedure   Store (var S : {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}Objects.TStream);
   end;
 
   PFileEditor = ^TFileEditor;
@@ -285,16 +293,16 @@ type
     FileName : FNameStr;
     constructor Init (var Bounds : TRect; AHScrollBar, AVScrollBar : PScrollBar;
                           AIndicator : PIndicator; AFileName : FNameStr);
-    constructor Load (var S : Objects.TStream);
+    constructor Load (var S : {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}Objects.TStream);
     procedure   DoneBuffer; virtual;
-    procedure   HandleEvent (var Event : Drivers.TEvent); virtual;
+    procedure   HandleEvent (var Event : {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Drivers.TEvent); virtual;
     procedure   InitBuffer; virtual;
     function    LoadFile : Boolean;
     function    Save : Boolean;
     function    SaveAs : Boolean;
     function    SaveFile : Boolean;
     function    SetBufSize (NewSize : Sw_Word) : Boolean; virtual;
-    procedure   Store (var S : Objects.TStream);
+    procedure   Store (var S : {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}Objects.TStream);
     procedure   UpdateCommands; virtual;
     function    Valid (Command : Word) : Boolean; virtual;
   end;
@@ -303,12 +311,12 @@ type
   TEditWindow = object (TWindow)
     Editor : PFileEditor;
     constructor Init (var Bounds : TRect; FileName : FNameStr; ANumber : SmallInt);
-    constructor Load (var S : Objects.TStream);
+    constructor Load (var S : {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}Objects.TStream);
     procedure   Close; virtual;
     function    GetTitle (MaxSize : Sw_Integer) : TTitleStr; virtual;
-    procedure   HandleEvent (var Event : Drivers.TEvent); virtual;
+    procedure   HandleEvent (var Event : {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Drivers.TEvent); virtual;
     procedure   SizeLimits(var Min, Max: TPoint); virtual;
-    procedure   Store (var S : Objects.TStream);
+    procedure   Store (var S : {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}Objects.TStream);
   end;
 
 
@@ -318,7 +326,7 @@ function CreateReplaceDialog: PDialog;
 function JumpLineDialog : PDialog;
 function ReformDocDialog : PDialog;
 function RightMarginDialog : PDialog;
-function TabStopDialog : Dialogs.PDialog;
+function TabStopDialog : {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Dialogs.PDialog;
 function StdEditorDialog(Dialog: SmallInt; Info: Pointer): Word;
 
 const
@@ -423,8 +431,13 @@ procedure RegisterEditors;
 
 implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  TP.DOS, FreeVision.App, FreeVision.Stddlg, FreeVision.Msgbox{, System.Resources.Resource};
+{$ELSE FPC_DOTTEDUNITS}
 uses
   Dos, App, StdDlg, MsgBox{, Resource};
+{$ENDIF FPC_DOTTEDUNITS}
 
 type
   pword = ^word;
@@ -701,7 +714,7 @@ begin
     Insert(New(PHistory, Init(R, PInputLine(Control), 11)));
 
     R.Assign(3, 8, 37, 12);
-    Control := New (Dialogs.PCheckBoxes, Init (R,
+    Control := New ({$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Dialogs.PCheckBoxes, Init (R,
       NewSItem (slCasesensitive,
       NewSItem (slWholewordsonly,
       NewSItem (slPromptonreplace,
@@ -738,24 +751,24 @@ Begin
       Options := Options or ofCentered;
 
       R.Assign (3, 2, 15, 3);
-      Control := New (Dialogs.PStaticText, Init (R,slLineNumber));
+      Control := New ({$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Dialogs.PStaticText, Init (R,slLineNumber));
       Insert (Control);
 
       R.Assign (15, 2, 21, 3);
-      Control := New (Dialogs.PInputLine, Init (R, 4));
+      Control := New ({$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Dialogs.PInputLine, Init (R, 4));
       Control^.HelpCtx := hcDLineNumber;
       Insert (Control);
 
       R.Assign (21, 2, 24, 3);
-      Insert (New (Dialogs.PHistory, Init (R, Dialogs.PInputLine (Control), 12)));
+      Insert (New ({$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Dialogs.PHistory, Init (R, {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Dialogs.PInputLine (Control), 12)));
 
       R.Assign (2, 5, 12, 7);
-      Control := New (Dialogs.PButton, Init (R, slOK, cmOK, Dialogs.bfDefault));
+      Control := New ({$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Dialogs.PButton, Init (R, slOK, cmOK, {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Dialogs.bfDefault));
       Control^.HelpCtx := hcDOk;
       Insert (Control);
 
       R.Assign (14, 5, 24, 7);
-      Control := New (Dialogs.PButton, Init (R, slCancel, cmCancel, Dialogs.bfNormal));
+      Control := New ({$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Dialogs.PButton, Init (R, slCancel, cmCancel, {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Dialogs.bfNormal));
       Control^.HelpCtx := hcDCancel;
       Insert (Control);
 
@@ -765,46 +778,46 @@ Begin
 end; { JumpLineDialog }
 
 
-function ReformDocDialog : Dialogs.PDialog;
+function ReformDocDialog : {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Dialogs.PDialog;
   { This is a local function that brings up a dialog box  }
   { that asks where to start reformatting the document.   }
 VAR
   R            : TRect;
-  D            : Dialogs.PDialog;
+  D            : {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Dialogs.PDialog;
   Control      : PView;
 Begin
   R.Assign (0, 0, 32, 11);
-  D := New (Dialogs.PDialog, Init (R, sReformatDocument));
+  D := New ({$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Dialogs.PDialog, Init (R, sReformatDocument));
   with D^ do
     begin
       Options := Options or ofCentered;
 
       R.Assign (2, 2, 30, 3);
-      Control := New (Dialogs.PStaticText, Init (R, sSelectWhereToBegin));
+      Control := New ({$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Dialogs.PStaticText, Init (R, sSelectWhereToBegin));
       Insert (Control);
 
       R.Assign (3, 3, 29, 4);
-      Control := New (Dialogs.PStaticText, Init (R, sReformattingTheDocument));
+      Control := New ({$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Dialogs.PStaticText, Init (R, sReformattingTheDocument));
       Insert (Control);
 
       R.Assign (50, 5, 68, 6);
-      Control := New (Dialogs.PLabel, Init (R, sReformatDocument, Control));
+      Control := New ({$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Dialogs.PLabel, Init (R, sReformatDocument, Control));
       Insert (Control);
 
       R.Assign (5, 5, 26, 7);
-      Control := New (Dialogs.PRadioButtons, Init (R,
+      Control := New ({$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Dialogs.PRadioButtons, Init (R,
         NewSItem (slCurrentLine,
         NewSItem (slEntireDocument, Nil))));
       Control^.HelpCtx := hcDReformDoc;
       Insert (Control);
 
       R.Assign (4, 8, 14, 10);
-      Control := New (Dialogs.PButton, Init (R, slOK, cmOK, Dialogs.bfDefault));
+      Control := New ({$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Dialogs.PButton, Init (R, slOK, cmOK, {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Dialogs.bfDefault));
       Control^.HelpCtx := hcDOk;
       Insert (Control);
 
       R.Assign (17, 8, 27, 10);
-      Control := New (Dialogs.PButton, Init (R, slCancel, cmCancel, Dialogs.bfNormal));
+      Control := New ({$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Dialogs.PButton, Init (R, slCancel, cmCancel, {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Dialogs.bfNormal));
       Control^.HelpCtx := hcDCancel;
       Insert (Control);
 
@@ -814,7 +827,7 @@ Begin
 end; { ReformDocDialog }
 
 
-function RightMarginDialog : Dialogs.PDialog;
+function RightMarginDialog : {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Dialogs.PDialog;
   { This is a local function that brings up a dialog box }
   { that allows the user to change the Right_Margin.     }
 VAR
@@ -823,30 +836,30 @@ VAR
   Control  : PView;
 Begin
   R.Assign (0, 0, 26, 8);
-  D := New (Dialogs.PDialog, Init (R, sRightMargin));
+  D := New ({$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Dialogs.PDialog, Init (R, sRightMargin));
   with D^ do
     begin
       Options := Options or ofCentered;
 
       R.Assign (5, 2, 13, 3);
-      Control := New (Dialogs.PStaticText, Init (R, sSetting));
+      Control := New ({$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Dialogs.PStaticText, Init (R, sSetting));
       Insert (Control);
 
       R.Assign (13, 2, 18, 3);
-      Control := New (Dialogs.PInputLine, Init (R, 3));
+      Control := New ({$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Dialogs.PInputLine, Init (R, 3));
       Control^.HelpCtx := hcDRightMargin;
       Insert (Control);
 
       R.Assign (18, 2, 21, 3);
-      Insert (New (Dialogs.PHistory, Init (R, Dialogs.PInputLine (Control), 13)));
+      Insert (New ({$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Dialogs.PHistory, Init (R, {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Dialogs.PInputLine (Control), 13)));
 
       R.Assign (2, 5, 12, 7);
-      Control := New (Dialogs.PButton, Init (R, slOK, cmOK, Dialogs.bfDefault));
+      Control := New ({$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Dialogs.PButton, Init (R, slOK, cmOK, {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Dialogs.bfDefault));
       Control^.HelpCtx := hcDOk;
       Insert (Control);
 
       R.Assign (14, 5, 24, 7);
-      Control := New (Dialogs.PButton, Init (R, slCancel, cmCancel, Dialogs.bfNormal));
+      Control := New ({$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Dialogs.PButton, Init (R, slCancel, cmCancel, {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Dialogs.bfNormal));
       Control^.HelpCtx := hcDCancel;
       Insert (Control);
 
@@ -856,7 +869,7 @@ Begin
 end; { RightMarginDialog; }
 
 
-function TabStopDialog : Dialogs.PDialog;
+function TabStopDialog : {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Dialogs.PDialog;
   { This is a local function that brings up a dialog box }
   { that allows the user to set their own tab stops.     }
 VAR
@@ -867,13 +880,13 @@ VAR
   Tab_Stop   : String[2];        { Local string to print tab column number. }
 Begin
   R.Assign (0, 0, 80, 8);
-  D := New (Dialogs.PDialog, Init (R, sTabSettings));
+  D := New ({$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Dialogs.PDialog, Init (R, sTabSettings));
   with D^ do
     begin
       Options := Options or ofCentered;
 
       R.Assign (2, 2, 77, 3);
-      Control := New (Dialogs.PStaticText, Init (R,
+      Control := New ({$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Dialogs.PStaticText, Init (R,
                   ' ....|....|....|....|....|....|....|....|....|....|....|....|....|....|....'));
       Insert (Control);
 
@@ -881,25 +894,25 @@ Begin
         begin
           R.Assign (Index * 10 + 1, 1, Index * 10 + 3, 2);
           Str (Index * 10, Tab_Stop);
-          Control := New (Dialogs.PStaticText, Init (R, Tab_Stop));
+          Control := New ({$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Dialogs.PStaticText, Init (R, Tab_Stop));
           Insert (Control);
         end;
 
       R.Assign (2, 3, 78, 4);
-      Control := New (Dialogs.PInputLine, Init (R, 74));
+      Control := New ({$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Dialogs.PInputLine, Init (R, 74));
       Control^.HelpCtx := hcDTabStops;
       Insert (Control);
 
       R.Assign (38, 5, 41, 6);
-      Insert (New (Dialogs.PHistory, Init (R, Dialogs.PInputLine (Control), 14)));
+      Insert (New ({$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Dialogs.PHistory, Init (R, {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Dialogs.PInputLine (Control), 14)));
 
       R.Assign (27, 5, 37, 7);
-      Control := New (Dialogs.PButton, Init (R, slOK, cmOK, Dialogs.bfDefault));
+      Control := New ({$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Dialogs.PButton, Init (R, slOK, cmOK, {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Dialogs.bfDefault));
       Control^.HelpCtx := hcDOk;
       Insert (Control);
 
       R.Assign (42, 5, 52, 7);
-      Control := New (Dialogs.PButton, Init (R, slCancel, cmCancel, Dialogs.bfNormal));
+      Control := New ({$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Dialogs.PButton, Init (R, slCancel, cmCancel, {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Dialogs.bfNormal));
       Control^.HelpCtx := hcDCancel;
       Insert (Control);
       SelectNext (False);
@@ -1002,7 +1015,7 @@ begin
 end;
 
 
-procedure GetLimits(var Buf; Count: sw_Word;var lim:objects.TPoint);
+procedure GetLimits(var Buf; Count: sw_Word;var lim:{$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}Objects.TPoint);
 { Get the limits needed for Buf, its an extended version of countlines (lim.y),
   which also gets the maximum line length in lim.x }
 var
@@ -1247,7 +1260,7 @@ begin
 end; { TIndicator.SetState }
 
 
-procedure TIndicator.SetValue (ALocation : Objects.TPoint; IsAutoIndent : Boolean;
+procedure TIndicator.SetValue (ALocation : {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}Objects.TPoint; IsAutoIndent : Boolean;
                                                            IsModified   : Boolean;
                                                            IsWordWrap   : Boolean);
 begin
@@ -1380,7 +1393,7 @@ begin
 end; { TEditor.Init }
 
 
-constructor TEditor.Load (var S : Objects.TStream);
+constructor TEditor.Load (var S : {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}Objects.TStream);
 begin
   Inherited Load (S);
   GetPeerViewPtr (S, HScrollBar);
@@ -1589,7 +1602,7 @@ begin
 end; { TEditor.ClipPaste }
 
 
-procedure TEditor.ConvertEvent (var Event : Drivers.TEvent);
+procedure TEditor.ConvertEvent (var Event : {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Drivers.TEvent);
 VAR
   ShiftState : Byte;
   Key        : Word;
@@ -1664,7 +1677,7 @@ end; { TEditor.DoneBuffer }
 procedure TEditor.DoSearchReplace;
 VAR
   I : Sw_Word;
-  C : Objects.TPoint;
+  C : {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}Objects.TPoint;
 begin
   repeat
     I := cmCancel;
@@ -1986,7 +1999,7 @@ begin
 end; {TEditor.FormatLine}
 
 
-function TEditor.GetMousePtr (Mouse : Objects.TPoint) : Sw_Word;
+function TEditor.GetMousePtr (Mouse : {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}Objects.TPoint) : Sw_Word;
 begin
   MakeLocal (Mouse, Mouse);
   Mouse.X := Max (0, Min (Mouse.X, Size.X - 1));
@@ -2004,13 +2017,13 @@ begin
 end; { TEditor.GetPalette }
 
 
-procedure TEditor.HandleEvent (var Event : Drivers.TEvent);
+procedure TEditor.HandleEvent (var Event : {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Drivers.TEvent);
 VAR
   ShiftState   : Byte;
   CenterCursor : Boolean;
   SelectMode   : Byte;
-  D            : Objects.TPoint;
-  Mouse        : Objects.TPoint;
+  D            : {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}Objects.TPoint;
+  Mouse        : {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}Objects.TPoint;
 
   function CheckScrollBar (P : PScrollBar; var D : Sw_Integer) : Boolean;
   begin
@@ -2032,7 +2045,7 @@ begin
   if Selecting or (ShiftState and $03 <> 0) then
     SelectMode := smExtend;
   case Event.What of
-    Drivers.evMouseDown:
+    {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Drivers.evMouseDown:
       begin
         if Event.Double then
           SelectMode := SelectMode or smDouble;
@@ -2056,9 +2069,9 @@ begin
           SelectMode := SelectMode or smExtend;
           Unlock;
         until not MouseEvent (Event, evMouseMove + evMouseAuto);
-      end; { Drivers.evMouseDown }
+      end; { {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Drivers.evMouseDown }
 
-    Drivers.evKeyDown:
+    {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Drivers.evKeyDown:
       case Event.CharCode of
         #32..#255:
           begin
@@ -2075,9 +2088,9 @@ begin
 
       else
         Exit;
-      end; { Drivers.evKeyDown }
+      end; { {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Drivers.evKeyDown }
 
-    Drivers.evCommand:
+    {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Drivers.evCommand:
       case Event.Command of
         cmFind        : Find;
         cmReplace     : Replace;
@@ -2174,9 +2187,9 @@ begin
             Remove_EOL_Spaces (SelectMode);
           Unlock;
         end; { Event.Command (Outer) }
-      end; { Drivers.evCommand }
+      end; { {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Drivers.evCommand }
 
-    Drivers.evBroadcast:
+    {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Drivers.evBroadcast:
       case Event.Command of
         cmScrollBarChanged:
           if (Event.InfoPtr = HScrollBar) or
@@ -2189,7 +2202,7 @@ begin
             exit;
       else
         Exit;
-      end; { Drivers.evBroadcast }
+      end; { {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Drivers.evBroadcast }
 
   end;
   ClearEvent (Event);
@@ -2845,7 +2858,7 @@ procedure TEditor.Scroll_Down;
 VAR
   C : Sw_Word;           { Position of CurPtr when we enter procedure. }
   P : Sw_Word;           { Position of CurPtr at any given time.       }
-  W : Objects.TPoint; { CurPos.Y of CurPtr and P ('.X and '.Y).     }
+  W : {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}Objects.TPoint; { CurPos.Y of CurPtr and P ('.X and '.Y).     }
 begin
   { Remember current cursor position.  Remember current CurPos.Y position. }
   { Now issue the equivalent of a [Ctrl]-[End] command so the cursor will  }
@@ -2882,7 +2895,7 @@ procedure TEditor.Scroll_Up;
 VAR
   C : Sw_Word;           { Position of CurPtr when we enter procedure. }
   P : Sw_Word;           { Position of CurPtr at any given time.       }
-  W : Objects.TPoint; { CurPos.Y of CurPtr and P ('.X and '.Y).     }
+  W : {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}Objects.TPoint; { CurPos.Y of CurPtr and P ('.X and '.Y).     }
 begin
   { Remember current cursor position.  Remember current CurPos.Y position. }
   { Now issue the equivalent of a [Ctrl]-[Home] command so the cursor will }
@@ -3190,7 +3203,7 @@ begin
 end; { TEditor.StartSelect }
 
 
-procedure TEditor.Store (var S : Objects.TStream);
+procedure TEditor.Store (var S : {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}Objects.TStream);
 begin
   Inherited Store (S);
   PutPeerViewPtr (S, HScrollBar);
@@ -3389,7 +3402,7 @@ end; { TEditor.Valid }
                                    TMEMO
 ****************************************************************************}
 
-constructor TMemo.Load (var S : Objects.TStream);
+constructor TMemo.Load (var S : {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}Objects.TStream);
 VAR
   Length : Sw_Word;
 begin
@@ -3430,9 +3443,9 @@ begin
 end; { TMemo.GetPalette }
 
 
-procedure TMemo.HandleEvent (var Event : Drivers.TEvent);
+procedure TMemo.HandleEvent (var Event : {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Drivers.TEvent);
 begin
-  if (Event.What <> Drivers.evKeyDown) or (Event.KeyCode <> Drivers.kbTab) then
+  if (Event.What <> {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Drivers.evKeyDown) or (Event.KeyCode <> {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Drivers.kbTab) then
     Inherited HandleEvent (Event);
 end; { TMemo.HandleEvent }
 
@@ -3446,7 +3459,7 @@ begin
 end; { TMemo.SetData }
 
 
-procedure TMemo.Store (var S : Objects.TStream);
+procedure TMemo.Store (var S : {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}Objects.TStream);
 begin
   Inherited Store (S);
   S.Write (BufLen, SizeOf (BufLen));
@@ -3475,7 +3488,7 @@ begin
 end; { TFileEditor.Init }
 
 
-constructor TFileEditor.Load (var S : Objects.TStream);
+constructor TFileEditor.Load (var S : {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}Objects.TStream);
 VAR
   SStart,SEnd,Curs : Sw_Word;
 begin
@@ -3502,16 +3515,16 @@ begin
 end; { TFileEditor.DoneBuffer }
 
 
-procedure TFileEditor.HandleEvent (var Event : Drivers.TEvent);
+procedure TFileEditor.HandleEvent (var Event : {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Drivers.TEvent);
 begin
   Inherited HandleEvent (Event);
   case Event.What of
-    Drivers.evCommand:
+    {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Drivers.evCommand:
       case Event.Command of
         cmSave   : Save;
         cmSaveAs : SaveAs;
         cmSaveDone : if Save then
-                       Message (Owner, Drivers.evCommand, cmClose, nil);
+                       Message (Owner, {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Drivers.evCommand, cmClose, nil);
       else
         Exit;
       end;
@@ -3580,7 +3593,7 @@ begin
   if EditorDialog (edSaveAs, @FileName) <> cmCancel then
   begin
     FileName := FExpand (FileName);
-    Message (Owner, Drivers.evBroadcast, cmUpdateTitle, nil);
+    Message (Owner, {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Drivers.evBroadcast, cmUpdateTitle, nil);
     SaveAs := SaveFile;
     if IsClipboard then
       FileName := '';
@@ -3591,10 +3604,10 @@ end; { TFileEditor.SaveAs }
 function TFileEditor.SaveFile : Boolean;
 VAR
   F          : File;
-  BackupName : Objects.FNameStr;
-  D          : DOS.DirStr;
-  N          : DOS.NameStr;
-  E          : DOS.ExtStr;
+  BackupName : {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}Objects.FNameStr;
+  D          : {$IFDEF FPC_DOTTEDUNITS}TP.{$ENDIF}DOS.DirStr;
+  N          : {$IFDEF FPC_DOTTEDUNITS}TP.{$ENDIF}DOS.NameStr;
+  E          : {$IFDEF FPC_DOTTEDUNITS}TP.{$ENDIF}DOS.ExtStr;
 begin
   SaveFile := False;
   if Flags and efBackupFiles <> 0 then
@@ -3653,7 +3666,7 @@ begin
 end; { TFileEditor.SetBufSize }
 
 
-procedure TFileEditor.Store (var S : Objects.TStream);
+procedure TFileEditor.Store (var S : {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}Objects.TStream);
 begin
   Inherited Store (S);
   S.Write (FileName, Length (FileName) + 1);
@@ -3702,7 +3715,7 @@ end; { TFileEditor.Valid }
 ****************************************************************************}
 
 constructor TEditWindow.Init (var Bounds   : TRect;
-                                  FileName : Objects.FNameStr;
+                                  FileName : {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}Objects.FNameStr;
                                   ANumber  : SmallInt);
 var
   HScrollBar : PScrollBar;
@@ -3735,7 +3748,7 @@ begin
 end; { TEditWindow.Init }
 
 
-constructor TEditWindow.Load (var S : Objects.TStream);
+constructor TEditWindow.Load (var S : {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}Objects.TStream);
 begin
   Inherited Load (S);
   GetSubViewPtr (S, Editor);
@@ -3763,10 +3776,10 @@ begin
 end; { TEditWindow.GetTile }
 
 
-procedure TEditWindow.HandleEvent (var Event : Drivers.TEvent);
+procedure TEditWindow.HandleEvent (var Event : {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Drivers.TEvent);
 begin
   Inherited HandleEvent (Event);
-  if (Event.What = Drivers.evBroadcast) then
+  if (Event.What = {$IFDEF FPC_DOTTEDUNITS}FreeVision.{$ENDIF}Drivers.evBroadcast) then
     { and (Event.Command = cmUpdateTitle) then }
     { Changed if statement above so I could test for cmBlugeonStats.       }
     { Stats would not show up when loading a file until a key was pressed. }
@@ -3792,7 +3805,7 @@ begin
 end;
 
 
-procedure TEditWindow.Store (var S : Objects.TStream);
+procedure TEditWindow.Store (var S : {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}Objects.TStream);
 begin
   Inherited Store (S);
   PutSubViewPtr (S, Editor);

+ 9 - 0
packages/fv/src/fvcommon.inc

@@ -51,11 +51,13 @@
 {  0.4.0   14 Nov 00  LdB    Revamp of whole unit          }
 {**********************************************************}
 
+{$IFNDEF FPC_DOTTEDUNITS}
 {$ifdef FV_UNICODE}
 UNIT UFVCommon;
 {$else FV_UNICODE}
 UNIT FVCommon;
 {$endif FV_UNICODE}
+{$ENDIF FPC_DOTTEDUNITS}
 
 {<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>}
                                   INTERFACE
@@ -65,10 +67,17 @@ UNIT FVCommon;
 {$I platform.inc}
 {====================================================================}
 
+{$IFDEF FPC_DOTTEDUNITS}
+{$ifdef OS_WINDOWS}
+  uses
+    WinApi.Windows;
+{$endif}
+{$ELSE FPC_DOTTEDUNITS}
 {$ifdef OS_WINDOWS}
   uses
     Windows;
 {$endif}
+{$ENDIF FPC_DOTTEDUNITS}
 
 {***************************************************************************}
 {                              PUBLIC CONSTANTS                             }

+ 4 - 0
packages/fv/src/fvconsts.pas

@@ -24,7 +24,11 @@
 { Only Free Pascal Compiler supported                      }
 {                                                          }
 {**********************************************************}
+{$IFNDEF FPC_DOTTEDUNITS}
+{$IFNDEF FPC_DOTTEDUNITS}
 unit FVConsts;
+{$ENDIF FPC_DOTTEDUNITS}
+{$ENDIF FPC_DOTTEDUNITS}
 interface
 
 {

+ 6 - 0
packages/fv/src/gadgets.pas

@@ -63,7 +63,9 @@
 {  1.00     12 Nov 99   First multi platform release       }
 {**********************************************************}
 
+{$IFNDEF FPC_DOTTEDUNITS}
 UNIT Gadgets;
+{$ENDIF FPC_DOTTEDUNITS}
 
 {<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>}
                                   INTERFACE
@@ -96,7 +98,11 @@ UNIT Gadgets;
 {$V-} { Turn off strict VAR strings }
 {====================================================================}
 
+{$IFDEF FPC_DOTTEDUNITS}
+USES FreeVision.Fvconsts, FreeVision.Time, System.Objects,FreeVision.Drivers, FreeVision.Views, FreeVision.App;      { Standard GFV units }
+{$ELSE FPC_DOTTEDUNITS}
 USES FVConsts, Time, Objects, Drivers, Views, App;      { Standard GFV units }
+{$ENDIF FPC_DOTTEDUNITS}
 
 {***************************************************************************}
 {                        PUBLIC OBJECT DEFINITIONS                          }

+ 12 - 0
packages/fv/src/histlist.inc

@@ -44,11 +44,13 @@
 {  1.51     03 Nov 99   FPC windows support added          }
 {**********************************************************}
 
+{$IFNDEF FPC_DOTTEDUNITS}
 {$ifdef FV_UNICODE}
 UNIT UHistList;
 {$else FV_UNICODE}
 UNIT HistList;
 {$endif FV_UNICODE}
+{$ENDIF FPC_DOTTEDUNITS}
 
 {<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>}
                                   INTERFACE
@@ -79,6 +81,15 @@ UNIT HistList;
 {$V-} { Turn off strict VAR strings }
 {====================================================================}
 
+{$IFDEF FPC_DOTTEDUNITS}
+USES
+{$ifdef FV_UNICODE}
+  FreeVision.Ufvcommon,
+{$else FV_UNICODE}
+  FreeVision.Fvcommon,
+{$endif FV_UNICODE}
+  System.Objects;                                 { Standard GFV units }
+{$ELSE FPC_DOTTEDUNITS}
 USES
 {$ifdef FV_UNICODE}
   UFVCommon,
@@ -86,6 +97,7 @@ USES
   FVCommon,
 {$endif FV_UNICODE}
   Objects;                                 { Standard GFV units }
+{$ENDIF FPC_DOTTEDUNITS}
 
 {***************************************************************************}
 {                            INTERFACE ROUTINES                             }

+ 13 - 0
packages/fv/src/inplong.inc

@@ -14,11 +14,13 @@
 
  **********************************************************************}
 
+{$IFNDEF FPC_DOTTEDUNITS}
 {$ifdef FV_UNICODE}
 Unit UInpLong;
 {$else FV_UNICODE}
 Unit InpLong;
 {$endif FV_UNICODE}
+{$ENDIF FPC_DOTTEDUNITS}
 
 (*--
 TInputLong is a derivitave of TInputline designed to accept LongInt
@@ -96,6 +98,16 @@ Valid returns False.
 {$endif}
 
 Interface
+
+{$IFDEF FPC_DOTTEDUNITS}
+uses System.Objects,
+{$ifdef FV_UNICODE}
+  FreeVision.Udrivers, FreeVision.Uviews, FreeVision.Udialogs, FreeVision.Umsgbox, FreeVision.Ufvcommon,
+{$else FV_UNICODE}
+  FreeVision.Drivers, FreeVision.Views, FreeVision.Dialogs, FreeVision.Msgbox, FreeVision.Fvcommon,
+{$endif FV_UNICODE}
+  FreeVision.Fvconsts;
+{$ELSE FPC_DOTTEDUNITS}
 uses objects,
 {$ifdef FV_UNICODE}
   udrivers, uviews, udialogs, umsgbox, ufvcommon,
@@ -103,6 +115,7 @@ uses objects,
   drivers, views, dialogs, msgbox, fvcommon,
 {$endif FV_UNICODE}
   fvconsts;
+{$ENDIF FPC_DOTTEDUNITS}
 
 {flags for TInputLong constructor}
 const

+ 25 - 0
packages/fv/src/memory.pas

@@ -43,7 +43,9 @@
 {  1.41     03 Nov 99   FPC Windows support added          }
 {**********************************************************}
 
+{$IFNDEF FPC_DOTTEDUNITS}
 UNIT Memory;
+{$ENDIF FPC_DOTTEDUNITS}
 
 {====Include file to sort compiler platform out =====================}
 {$I platform.inc}
@@ -74,7 +76,11 @@ UNIT Memory;
 {$V-} { Turn off strict VAR strings }
 {====================================================================}
 
+{$IFDEF FPC_DOTTEDUNITS}
+USES FreeVision.Fvcommon;
+{$ELSE FPC_DOTTEDUNITS}
 USES FVCommon;
+{$ENDIF FPC_DOTTEDUNITS}
 
 {***************************************************************************}
 {                            INTERFACE ROUTINES                             }
@@ -191,6 +197,24 @@ CONST
 {<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>}
                                 IMPLEMENTATION
 {<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>}
+
+{$IFDEF FPC_DOTTEDUNITS}
+{$IFDEF OS_WINDOWS}                                   { WIN/NT CODE }
+   {$IFDEF PPC_FPC}                                   { FPC WinApi.Windows COMPILER }
+   USES WinApi.Windows;                                      { Standard unit }
+   {$ELSE}                                            { OTHER COMPILERS }
+   USES WinApi.WinProcs, WinApi.WinTypes;                           { Standard units }
+   {$ENDIF}
+{$ENDIF}
+
+{$IFDEF OS_OS2}                                       { OS2 CODE }
+  {$IFDEF PPC_FPC}
+     USES OS2Api.doscalls;                                        { Standard unit }
+  {$ELSE}
+     USES Os2Base;                                         { Standard unit }
+  {$ENDIF}
+{$ENDIF}
+{$ELSE FPC_DOTTEDUNITS}
 {$IFDEF OS_WINDOWS}                                   { WIN/NT CODE }
    {$IFDEF PPC_FPC}                                   { FPC WINDOWS COMPILER }
    USES Windows;                                      { Standard unit }
@@ -206,6 +230,7 @@ CONST
      USES Os2Base;                                         { Standard unit }
   {$ENDIF}
 {$ENDIF}
+{$ENDIF FPC_DOTTEDUNITS}
 
 {***************************************************************************}
 {                      PRIVATE RECORD TYPE DEFINITIONS                      }

+ 28 - 0
packages/fv/src/menus.inc

@@ -25,11 +25,13 @@
 {                                                          }
 {**********************************************************}
 
+{$IFNDEF FPC_DOTTEDUNITS}
 {$ifdef FV_UNICODE}
 UNIT UMenus;
 {$else FV_UNICODE}
 UNIT Menus;
 {$endif FV_UNICODE}
+{$ENDIF FPC_DOTTEDUNITS}
 
 {$CODEPAGE cp437}
 
@@ -62,6 +64,26 @@ UNIT Menus;
 {$V-} { Turn off strict VAR strings }
 {====================================================================}
 
+{$IFDEF FPC_DOTTEDUNITS}
+USES
+   {$IFDEF OS_WINDOWS}                                { WIN/NT CODE }
+     {$IFNDEF PPC_SPEED}                              { NON SPEED COMPILER }
+       {$IFDEF PPC_FPC}                               { FPC WinApi.Windows COMPILER }
+       WinApi.Windows,                                { Standard unit }
+       {$ELSE}                                        { OTHER COMPILERS }
+       WinApi.WinTypes,WinApi.WinProcs,                             { Standard units }
+       {$ENDIF}
+     {$ELSE}                                          { SPEEDSOFT COMPILER }
+       WinBase, WinDef,                               { Standard units }
+     {$ENDIF}
+   {$ENDIF}
+
+{$ifdef FV_UNICODE}
+   System.Objects, FreeVision.Udrivers, FreeVision.Uviews, FreeVision.Ufvcommon, FreeVision.Fvconsts;               { GFV standard units }
+{$else FV_UNICODE}
+   System.Objects, FreeVision.Drivers, FreeVision.Views, FreeVision.Fvcommon, FreeVision.Fvconsts;                 { GFV standard units }
+{$endif FV_UNICODE}
+{$ELSE FPC_DOTTEDUNITS}
 USES
    {$IFDEF OS_WINDOWS}                                { WIN/NT CODE }
      {$IFNDEF PPC_SPEED}                              { NON SPEED COMPILER }
@@ -80,6 +102,7 @@ USES
 {$else FV_UNICODE}
    objects, drivers, views, fvcommon, fvconsts;                 { GFV standard units }
 {$endif FV_UNICODE}
+{$ENDIF FPC_DOTTEDUNITS}
 
 {***************************************************************************}
 {                              PUBLIC CONSTANTS                             }
@@ -419,8 +442,13 @@ CONST
 {<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>}
                                 IMPLEMENTATION
 {<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>}
+{$IFDEF FPC_DOTTEDUNITS}
+USES
+  System.Console.Video;
+{$ELSE FPC_DOTTEDUNITS}
 USES
   Video;
+{$ENDIF FPC_DOTTEDUNITS}
 
 CONST
 {$ifdef FV_UNICODE}

+ 20 - 0
packages/fv/src/msgbox.inc

@@ -44,11 +44,14 @@
 {  1.60     30 Sep 99   Complete recheck preformed         }
 {**********************************************************}
 
+
+{$IFNDEF FPC_DOTTEDUNITS}
 {$ifdef FV_UNICODE}
 UNIT UMsgBox;
 {$else FV_UNICODE}
 UNIT MsgBox;
 {$endif FV_UNICODE}
+{$ENDIF FPC_DOTTEDUNITS}
 
 {2.0 compatibility}
 {$ifdef VER2_0}
@@ -85,12 +88,21 @@ UNIT MsgBox;
 {$V-} { Turn off strict VAR strings }
 {====================================================================}
 
+{$IFDEF FPC_DOTTEDUNITS}
+USES System.Objects,                                 { Standard GFV units }
+{$ifdef FV_UNICODE}
+     FreeVision.Ufvcommon,FreeVision.Udialogs;
+{$else FV_UNICODE}
+     FreeVision.Fvcommon,FreeVision.Dialogs;
+{$endif FV_UNICODE}
+{$ELSE FPC_DOTTEDUNITS}
 USES objects,                                 { Standard GFV units }
 {$ifdef FV_UNICODE}
      ufvcommon,udialogs;
 {$else FV_UNICODE}
      fvcommon,dialogs;
 {$endif FV_UNICODE}
+{$ENDIF FPC_DOTTEDUNITS}
 
 {***************************************************************************}
 {                              PUBLIC CONSTANTS                             }
@@ -181,11 +193,19 @@ FUNCTION InputBoxRect (Var Bounds: TRect; Const Title, ALabel: Sw_String;
                                 IMPLEMENTATION
 {<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>}
 
+{$IFDEF FPC_DOTTEDUNITS}
+{$ifdef FV_UNICODE}
+USES FreeVision.Udrivers, FreeVision.Uviews, FreeVision.Uapp{, System.Resources.Resource};                 { Standard GFV units }
+{$else FV_UNICODE}
+USES FreeVision.Drivers, FreeVision.Views, FreeVision.App{, System.Resources.Resource};                    { Standard GFV units }
+{$endif FV_UNICODE}
+{$ELSE FPC_DOTTEDUNITS}
 {$ifdef FV_UNICODE}
 USES UDrivers, UViews, UApp{, Resource};                 { Standard GFV units }
 {$else FV_UNICODE}
 USES Drivers, Views, App{, Resource};                    { Standard GFV units }
 {$endif FV_UNICODE}
+{$ENDIF FPC_DOTTEDUNITS}
 
 {***************************************************************************}
 {                            INTERFACE ROUTINES                             }

+ 11 - 0
packages/fv/src/outline.inc

@@ -14,11 +14,14 @@
 
  **********************************************************************}
 {$H-}
+
+{$IFNDEF FPC_DOTTEDUNITS}
 {$ifdef FV_UNICODE}
 unit uoutline;
 {$else FV_UNICODE}
 unit outline;
 {$endif FV_UNICODE}
+{$ENDIF FPC_DOTTEDUNITS}
 
 {$CODEPAGE cp437}
 
@@ -26,11 +29,19 @@ unit outline;
                                   interface
 {***************************************************************************}
 
+{$IFDEF FPC_DOTTEDUNITS}
+{$ifdef FV_UNICODE}
+uses  FreeVision.Udrivers,System.Objects,FreeVision.Uviews;
+{$else FV_UNICODE}
+uses  FreeVision.Drivers,System.Objects,FreeVision.Views;
+{$endif FV_UNICODE}
+{$ELSE FPC_DOTTEDUNITS}
 {$ifdef FV_UNICODE}
 uses  udrivers,objects,uviews;
 {$else FV_UNICODE}
 uses  drivers,objects,views;
 {$endif FV_UNICODE}
+{$ENDIF FPC_DOTTEDUNITS}
 
 type  Pnode=^Tnode;
       Tnode=record

+ 13 - 0
packages/fv/src/resource.pas

@@ -14,7 +14,9 @@ Revision History
 1.0
   - original implementation }
 
+{$IFNDEF FPC_DOTTEDUNITS}
 unit Resource;
+{$ENDIF FPC_DOTTEDUNITS}
 
 interface
 
@@ -37,9 +39,15 @@ interface
   {$S-}
 {$endif}
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+
+  FreeVision.Fvconsts, System.Objects, TP.DOS;
+{$ELSE FPC_DOTTEDUNITS}
 uses
 
   FVConsts, Objects, Dos;
+{$ENDIF FPC_DOTTEDUNITS}
 
 const
 
@@ -278,8 +286,13 @@ implementation
 {                           Private Declarations                             }
 {****************************************************************************}
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  {FreeVision.Memory, }Drivers;
+{$ELSE FPC_DOTTEDUNITS}
 uses
   {Memory, }Drivers;
+{$ENDIF FPC_DOTTEDUNITS}
 
 {****************************************************************************}
 { TConstant object                                                           }

+ 13 - 1
packages/fv/src/statuses.pas

@@ -1,5 +1,7 @@
 {$V-}
+{$IFNDEF FPC_DOTTEDUNITS}
 unit Statuses;
+{$ENDIF FPC_DOTTEDUNITS}
 
 {$CODEPAGE cp437}
 
@@ -64,9 +66,14 @@ interface
   {$S-}
 {$endif}
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  FreeVision.Fvcommon, FreeVision.Fvconsts, System.Objects, FreeVision.Drivers, 
+  FreeVision.Views, FreeVision.Dialogs;
+{$ELSE FPC_DOTTEDUNITS}
 uses
-
   FVCommon, FVConsts, Objects, Drivers, Views, Dialogs;
+{$ENDIF FPC_DOTTEDUNITS}
 {  Resource;}
 
 const
@@ -680,8 +687,13 @@ procedure RegisterStatuses;
 
 implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  FreeVision.Msgbox, FreeVision.App;
+{$ELSE FPC_DOTTEDUNITS}
 uses
   MsgBox, App;
+{$ENDIF FPC_DOTTEDUNITS}
 
 {****************************************************************************}
 {                    Local procedures and functions                          }

+ 13 - 0
packages/fv/src/stddlg.pas

@@ -29,7 +29,9 @@
 1.0   (1992)
   - original implementation }
 
+{$IFNDEF FPC_DOTTEDUNITS}
 unit StdDlg;
+{$ENDIF FPC_DOTTEDUNITS}
 
 {
   This unit has been modified to make some functions global, apply patches
@@ -66,8 +68,14 @@ unit StdDlg;
 
 interface
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  FreeVision.Fvconsts, System.Objects, FreeVision.Drivers, FreeVision.Views, 
+  FreeVision.Dialogs, FreeVision.Validate, TP.DOS;
+{$ELSE FPC_DOTTEDUNITS}
 uses
   FVConsts, Objects, Drivers, Views, Dialogs, Validate, Dos;
+{$ENDIF FPC_DOTTEDUNITS}
 
 const
   MaxDir   = 255;   { Maximum length of a DirStr. }
@@ -569,8 +577,13 @@ implementation
 {            Local Declarations              }
 {****************************************************************************}
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  FreeVision.App, {FreeVision.Memory,} FreeVision.HistList, FreeVision.MsgBox{, System.Resources.Resource};
+{$ELSE FPC_DOTTEDUNITS}
 uses
   App, {Memory,} HistList, MsgBox{, Resource};
+{$ENDIF FPC_DOTTEDUNITS}
 
 type
 

+ 3 - 0
packages/fv/src/sysmsg.pas

@@ -19,9 +19,12 @@
    MA 02110-1301, USA.
 
  ****************************************************************************}
+{$IFNDEF FPC_DOTTEDUNITS}
 Unit SysMsg;
+{$ENDIF FPC_DOTTEDUNITS}
 
 interface
+
 {$i platform.inc}
 
 type

+ 26 - 0
packages/fv/src/tabs.inc

@@ -18,17 +18,33 @@
    MA 02110-1301, USA.
 
  ****************************************************************************}
+{$IFNDEF FPC_DOTTEDUNITS}
 {$ifdef FV_UNICODE}
 unit utabs;
 {$else FV_UNICODE}
 unit tabs;
 {$endif FV_UNICODE}
+{$ENDIF FPC_DOTTEDUNITS}
 
 {$I platform.inc}    (* Multi-platform support defines *)
 {$CODEPAGE cp437}
 
 interface
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  System.Objects,
+{$ifdef FV_UNICODE}
+  FreeVision.Ufvcommon,
+  FreeVision.Udrivers,
+  FreeVision.Uviews,
+{$else FV_UNICODE}
+  FreeVision.Fvcommon,
+  FreeVision.Drivers,
+  FreeVision.Views,
+{$endif FV_UNICODE}
+  FreeVision.Fvconsts;
+{$ELSE FPC_DOTTEDUNITS}
 uses
   objects,
 {$ifdef FV_UNICODE}
@@ -41,6 +57,7 @@ uses
   views,
 {$endif FV_UNICODE}
   fvconsts;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 type
@@ -109,12 +126,21 @@ const
 
 implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+{$ifdef FV_UNICODE}
+  FreeVision.Udialogs;
+{$else FV_UNICODE}
+  FreeVision.Dialogs;
+{$endif FV_UNICODE}
+{$ELSE FPC_DOTTEDUNITS}
 uses
 {$ifdef FV_UNICODE}
   Udialogs;
 {$else FV_UNICODE}
   dialogs;
 {$endif FV_UNICODE}
+{$ENDIF FPC_DOTTEDUNITS}
 
 constructor TTab.Init(var Bounds: TRect; ATabDef: PTabDef);
 begin

+ 29 - 5
packages/fv/src/time.pas

@@ -45,7 +45,9 @@
 {  1.61     07 Jul 99   Speedsoft SYBIL 2.0 code added.    }
 {**********************************************************}
 
+{$IFNDEF FPC_DOTTEDUNITS}
 UNIT Time;
+{$ENDIF FPC_DOTTEDUNITS}
 
 {<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>}
                                   INTERFACE
@@ -141,7 +143,11 @@ PROCEDURE SecondsToTime (Sd: LongInt; Var Hour24, Minute, Second: Word);
 
   {$IFNDEF PPC_SPEED}                                 { NON SPEED COMPILER }
     {$IFDEF PPC_FPC}                                  { FPC WINDOWS COMPILER }
-    USEs Windows;                                     { Standard unit }
+    {$IFDEF FPC_DOTTEDUNITS}
+    USES WinApi.Windows;                                     { Standard unit }
+    {$ELSE}
+    USES Windows;
+    {$ENDIF}
     {$ELSE}                                           { OTHER COMPILERS }
     USES WinTypes, WinProcs;                          { Standard units }
     {$ENDIF}
@@ -176,6 +182,23 @@ PROCEDURE SecondsToTime (Sd: LongInt; Var Hour24, Minute, Second: Word);
 
 {$ENDIF}
 
+{$IFDEF FPC_DOTTEDUNITS}
+{$ifdef OS_UNIX}
+  USES TP.DOS;
+{$endif OS_UNIX}
+
+{$ifdef OS_GO32}
+  USES TP.DOS;
+{$endif OS_GO32}
+
+{$ifdef OS_NETWARE}
+  USES TP.DOS;
+{$endif OS_NETWARE}
+
+{$ifdef OS_AMIGA}
+  USES TP.DOS;
+{$endif OS_AMIGA}
+{$ELSE FPC_DOTTEDUNITS}
 {$ifdef OS_UNIX}
   USES Dos;
 {$endif OS_UNIX}
@@ -191,6 +214,7 @@ PROCEDURE SecondsToTime (Sd: LongInt; Var Hour24, Minute, Second: Word);
 {$ifdef OS_AMIGA}
   USES Dos;
 {$endif OS_AMIGA}
+{$ENDIF FPC_DOTTEDUNITS}
 
 {***************************************************************************}
 {                            INTERFACE ROUTINES                             }
@@ -465,7 +489,7 @@ PROCEDURE GetTime (Var Hour, Minute, Second, Sec100: Word);
        unstable on Win2000 because some registers are not properly
        restored if a mouse interrupt is generated while the Dos
        interrupt is called... PM }
-       Dos.GetTime(Hour,Minute,Second,Sec100);
+       {$IFDEF FPC_DOTTEDUNITS}TP.{$ENDIF}DOS.GetTime(Hour,Minute,Second,Sec100);
      END;
      {$ENDIF}
    {$ENDIF}
@@ -570,17 +594,17 @@ END;
 {$ENDIF}
 {$ifdef OS_UNIX}
 BEGIN
-  Dos.GetTime(Hour,Minute,Second,Sec100);
+  {$IFDEF FPC_DOTTEDUNITS}TP.{$ENDIF}DOS.GetTime(Hour,Minute,Second,Sec100);
 END;
 {$endif OS_UNIX}
 {$IFDEF OS_NETWARE}
 BEGIN
-  Dos.GetTime(Hour,Minute,Second,Sec100);
+  {$IFDEF FPC_DOTTEDUNITS}TP.{$ENDIF}DOS.GetTime(Hour,Minute,Second,Sec100);
 END;
 {$ENDIF OS_NETWARE}
 {$IFDEF OS_AMIGA}
 BEGIN
-  Dos.GetTime(Hour,Minute,Second,Sec100);
+  {$IFDEF FPC_DOTTEDUNITS}TP.{$ENDIF}DOS.GetTime(Hour,Minute,Second,Sec100);
 END;
 {$ENDIF OS_AMIGA}
 

+ 22 - 0
packages/fv/src/timeddlg.inc

@@ -18,11 +18,13 @@
    MA 02110-1301, USA.
 
  ****************************************************************************}
+{$IFNDEF FPC_DOTTEDUNITS}
 {$ifdef FV_UNICODE}
 UNIT utimeddlg;
 {$else FV_UNICODE}
 UNIT timeddlg;
 {$endif FV_UNICODE}
+{$ENDIF FPC_DOTTEDUNITS}
 
 {<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>}
                                   INTERFACE
@@ -53,6 +55,15 @@ UNIT timeddlg;
 {$V-} { Turn off strict VAR strings }
 {====================================================================}
 
+{$IFDEF FPC_DOTTEDUNITS}
+USES System.Objects,
+  FreeVision.Fvconsts,
+{$ifdef FV_UNICODE}
+  FreeVision.Ufvcommon, FreeVision.Udialogs, FreeVision.Udrivers, FreeVision.Uviews; { Standard GFV unit }
+{$else FV_UNICODE}
+  FreeVision.Fvcommon, FreeVision.Dialogs, FreeVision.Drivers, FreeVision.Views; { Standard GFV unit }
+{$endif FV_UNICODE}
+{$ELSE FPC_DOTTEDUNITS}
 USES objects,
   fvconsts,
 {$ifdef FV_UNICODE}
@@ -60,6 +71,7 @@ USES objects,
 {$else FV_UNICODE}
   fvcommon, dialogs, drivers, views; { Standard GFV unit }
 {$endif FV_UNICODE}
+{$ENDIF FPC_DOTTEDUNITS}
 
 type
   TTimedDialog = object (TDialog)
@@ -122,6 +134,15 @@ FUNCTION TimedMessageBoxRect (Var R: TRect; Const Msg: Sw_String; Params: Pointe
                                 IMPLEMENTATION
 {<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>}
 
+{$IFDEF FPC_DOTTEDUNITS}
+USES
+  TP.DOS,
+{$ifdef FV_UNICODE}
+  FreeVision.Uapp, {System.Resources.Resource,} FreeVision.Umsgbox;   { Standard GFV units }
+{$else FV_UNICODE}
+  FreeVision.App, {System.Resources.Resource,} FreeVision.Msgbox;   { Standard GFV units }
+{$endif FV_UNICODE}
+{$ELSE FPC_DOTTEDUNITS}
 USES
   dos,
 {$ifdef FV_UNICODE}
@@ -129,6 +150,7 @@ USES
 {$else FV_UNICODE}
   app, {resource,} msgbox;   { Standard GFV units }
 {$endif FV_UNICODE}
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 {***************************************************************************}

+ 5 - 0
packages/fv/src/unixsmsg.inc

@@ -22,8 +22,13 @@
 { This file is still a dummy,
   it should use ioctl to get information about resizing of windows }
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  UnixApi.Base,UnixApi.TermIO;
+{$ELSE FPC_DOTTEDUNITS}
 uses
   BaseUnix,termio;
+{$ENDIF FPC_DOTTEDUNITS}
 
 Const
   SystemEventActive : Boolean = false;

+ 20 - 0
packages/fv/src/validate.inc

@@ -42,11 +42,13 @@
 {  1.41     03 Nov 99   FPC windows code added             }
 {**********************************************************}
 
+{$IFNDEF FPC_DOTTEDUNITS}
 {$ifdef FV_UNICODE}
 UNIT UValidate;
 {$else FV_UNICODE}
 UNIT Validate;
 {$endif FV_UNICODE}
+{$ENDIF FPC_DOTTEDUNITS}
 
 {<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>}
                                   INTERFACE
@@ -77,6 +79,15 @@ UNIT Validate;
 {$V-} { Turn off strict VAR strings }
 {====================================================================}
 
+{$IFDEF FPC_DOTTEDUNITS}
+USES
+{$ifdef FV_UNICODE}
+  FreeVision.Ufvcommon,
+{$else FV_UNICODE}
+  FreeVision.Fvcommon,
+{$endif FV_UNICODE}
+  System.Objects, FreeVision.Fvconsts;                      { GFV standard units }
+{$ELSE FPC_DOTTEDUNITS}
 USES
 {$ifdef FV_UNICODE}
   UFVCommon,
@@ -84,6 +95,7 @@ USES
   FVCommon,
 {$endif FV_UNICODE}
   Objects, fvconsts;                      { GFV standard units }
+{$ENDIF FPC_DOTTEDUNITS}
 
 {***************************************************************************}
 {                              PUBLIC CONSTANTS                             }
@@ -306,11 +318,19 @@ CONST
                                 IMPLEMENTATION
 {<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>}
 
+{$IFDEF FPC_DOTTEDUNITS}
+{$ifdef FV_UNICODE}
+USES FreeVision.Umsgbox;                                         { GFV standard unit }
+{$else FV_UNICODE}
+USES FreeVision.Msgbox;                                          { GFV standard unit }
+{$endif FV_UNICODE}
+{$ELSE FPC_DOTTEDUNITS}
 {$ifdef FV_UNICODE}
 USES UMsgBox;                                         { GFV standard unit }
 {$else FV_UNICODE}
 USES MsgBox;                                          { GFV standard unit }
 {$endif FV_UNICODE}
+{$ENDIF FPC_DOTTEDUNITS}
 
 {***************************************************************************}
 {                              PRIVATE ROUTINES                             }

+ 30 - 5
packages/fv/src/views.inc

@@ -25,11 +25,13 @@
 {                                                          }
 {**********************************************************}
 
+{$IFNDEF FPC_DOTTEDUNITS}
 {$ifdef FV_UNICODE}
 UNIT UViews;
 {$else FV_UNICODE}
 UNIT Views;
 {$endif FV_UNICODE}
+{$ENDIF FPC_DOTTEDUNITS}
 
 {$CODEPAGE cp437}
 
@@ -51,6 +53,28 @@ UNIT Views;
 {$V-} { Turn off strict VAR strings }
 {====================================================================}
 
+{$IFDEF FPC_DOTTEDUNITS}
+USES
+   {$IFDEF OS_WINDOWS}                                { WIN/NT CODE }
+         WinApi.Windows,                                     { Standard unit }
+   {$ENDIF}
+
+   {$IFDEF OS_OS2}                                    { OS2 CODE }
+     OS2Api.os2def, OS2Api.doscalls, OS2Api.pmwin,
+   {$ENDIF}
+
+   System.Objects, 
+   {$ifdef FV_UNICODE}
+   FreeVision.Ufvcommon,FreeVision.Udrivers,
+   System.Unicode.Graphemebreakproperty,
+   {$else}
+   FreeVision.Fvcommon,
+   FreeVision.Drivers,
+   {$endif}
+   FreeVision.Fvconsts, 
+   { GFV standard units }
+   System.Console.Video;
+{$ELSE FPC_DOTTEDUNITS}
 USES
    {$IFDEF OS_WINDOWS}                                { WIN/NT CODE }
          Windows,                                     { Standard unit }
@@ -62,6 +86,7 @@ USES
 
    Objects, {$ifdef FV_UNICODE}UFVCommon,UDrivers,GraphemeBreakProperty{$else}FVCommon,Drivers{$endif}, fvconsts, { GFV standard units }
    Video;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 {***************************************************************************}
@@ -1344,11 +1369,11 @@ begin
         G:=p^.owner;
         if G=Nil then { top view }
          begin
-           Video.SetCursorPos(cur.x,cur.y);
+           {$IFDEF FPC_DOTTEDUNITS}System.Console.{$ENDIF}Video.SetCursorPos(cur.x,cur.y);
            if (state and sfCursorIns)<>0 then
-             Video.SetCursorType(crBlock)
+             {$IFDEF FPC_DOTTEDUNITS}System.Console.{$ENDIF}Video.SetCursorType(crBlock)
            else
-             Video.SetCursorType(crUnderline);
+             {$IFDEF FPC_DOTTEDUNITS}System.Console.{$ENDIF}Video.SetCursorType(crUnderline);
            exit;
          end;
         if (G^.state and sfVisible)=0 then
@@ -1358,7 +1383,7 @@ begin
          break;
       end; { while }
    end; { if }
-  Video.SetCursorType(crHidden);
+  {$IFDEF FPC_DOTTEDUNITS}System.Console.{$ENDIF}Video.SetCursorType(crHidden);
 end;
 
 
@@ -1899,7 +1924,7 @@ END;
 {--TView--------------------------------------------------------------------}
 {  CalcBounds -> Platforms DOS/DPMI/WIN/NT/OS2 - Updated 12Sep97 LdB        }
 {---------------------------------------------------------------------------}
-PROCEDURE TView.CalcBounds (Var Bounds: Objects.TRect; Delta: TPoint);
+PROCEDURE TView.CalcBounds (Var Bounds: {$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}Objects.TRect; Delta: TPoint);
 VAR S, D: Sw_Integer; Min, Max: TPoint;
 
    FUNCTION Range (Val, Min, Max: Sw_Integer): Sw_Integer;

+ 5 - 0
packages/fv/src/w32smsg.inc

@@ -17,8 +17,13 @@
    MA 02110-1301, USA.
 }
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+   WinApi.Windows,TP.DOS,System.Console.Winevent;
+{$ELSE FPC_DOTTEDUNITS}
 uses
    windows,dos,winevent;
+{$ENDIF FPC_DOTTEDUNITS}
 
 var
    ChangeSystemEvents : TCriticalSection;