Browse Source

* various fixes for win32 api mode

pierre 24 years ago
parent
commit
7bda3f6f86
9 changed files with 269 additions and 60 deletions
  1. 11 3
      fv/dialogs.pas
  2. 23 1
      fv/drivers.pas
  3. 7 2
      fv/menus.pas
  4. 51 15
      fv/views.pas
  5. 11 3
      fvision/dialogs.pas
  6. 23 1
      fvision/drivers.pas
  7. 7 2
      fvision/menus.pas
  8. 85 18
      fvision/testapp.pas
  9. 51 15
      fvision/views.pas

+ 11 - 3
fv/dialogs.pas

@@ -718,6 +718,7 @@ CONST
 {                          PRIVATE INTERNAL ROUTINES                        }
 {                          PRIVATE INTERNAL ROUTINES                        }
 {***************************************************************************}
 {***************************************************************************}
 
 
+{$IFNDEF NO_WINDOW}
 {$IFDEF OS_WINDOWS}                                   { WIN/NT CODE }
 {$IFDEF OS_WINDOWS}                                   { WIN/NT CODE }
 {---------------------------------------------------------------------------}
 {---------------------------------------------------------------------------}
 {  TvClusterMsgHandler -> Platforms WIN/NT - Checked 08Jun98 LdB            }
 {  TvClusterMsgHandler -> Platforms WIN/NT - Checked 08Jun98 LdB            }
@@ -786,6 +787,7 @@ BEGIN
     iMessage, wParam, lParam);                        { Call TV view handler }
     iMessage, wParam, lParam);                        { Call TV view handler }
 END;
 END;
 {$ENDIF}
 {$ENDIF}
+{$ENDIF not NO_WINDOW}
 
 
 {---------------------------------------------------------------------------}
 {---------------------------------------------------------------------------}
 {  IsBlank -> Platforms DOS/DPMI/WIN/NT/OS2 - Updated 08Jun98 LdB           }
 {  IsBlank -> Platforms DOS/DPMI/WIN/NT/OS2 - Updated 08Jun98 LdB           }
@@ -1064,12 +1066,14 @@ END;
 {---------------------------------------------------------------------------}
 {---------------------------------------------------------------------------}
 PROCEDURE TInputLine.DrawBackGround;
 PROCEDURE TInputLine.DrawBackGround;
 BEGIN
 BEGIN
+   {$IFNDEF NO_WINDOW}
    {$IFDEF OS_WINDOWS}                                { WIN/NT CODE }
    {$IFDEF OS_WINDOWS}                                { WIN/NT CODE }
    If (HWindow <> 0) Then DestroyCaret;               { Destroy any caret }
    If (HWindow <> 0) Then DestroyCaret;               { Destroy any caret }
    {$ENDIF}
    {$ENDIF}
    {$IFDEF OS_OS2}                                    { OS2 CODE }
    {$IFDEF OS_OS2}                                    { OS2 CODE }
    If (HWindow <> 0) Then WinDestroyCursor(HWindow);  { Destroy any caret }
    If (HWindow <> 0) Then WinDestroyCursor(HWindow);  { Destroy any caret }
    {$ENDIF}
    {$ENDIF}
+   {$ENDIF not NO_WINDOW}
    Inherited DrawBackGround;                          { Call ancestor }
    Inherited DrawBackGround;                          { Call ancestor }
 END;
 END;
 
 
@@ -1090,13 +1094,13 @@ BEGIN
            I := TextWidth(Data^[CurPos+1])            { Insert caret width }
            I := TextWidth(Data^[CurPos+1])            { Insert caret width }
            Else I := FontWidth;                       { At end use fontwidth }
            Else I := FontWidth;                       { At end use fontwidth }
      End;
      End;
-     {$IFDEF OS_DOS}
+     {$IFDEF NO_WINDOW}
      If (State AND sfCursorIns <> 0) Then Begin       { Insert mode }
      If (State AND sfCursorIns <> 0) Then Begin       { Insert mode }
        If ((CurPos+1) <= Length(Data^)) Then          { Not beyond end }
        If ((CurPos+1) <= Length(Data^)) Then          { Not beyond end }
          WriteStr(-X, 0, Data^[CurPos+1], 5)          { Create block cursor }
          WriteStr(-X, 0, Data^[CurPos+1], 5)          { Create block cursor }
          Else ClearArea(X, 0, X+I, FontHeight, Green);{ Line cursor }
          Else ClearArea(X, 0, X+I, FontHeight, Green);{ Line cursor }
      End Else ClearArea(X, 0, X+I, FontHeight, Green);{ Line cursor }
      End Else ClearArea(X, 0, X+I, FontHeight, Green);{ Line cursor }
-     {$ENDIF}
+     {$ELSE not NO_WINDOW}
      {$IFDEF OS_WINDOWS}                              { WIN/NT CODE }
      {$IFDEF OS_WINDOWS}                              { WIN/NT CODE }
      If (HWindow <> 0) Then Begin
      If (HWindow <> 0) Then Begin
        CreateCaret(HWindow, 0, I, FontHeight);        { Create a craet }
        CreateCaret(HWindow, 0, I, FontHeight);        { Create a craet }
@@ -1113,6 +1117,7 @@ BEGIN
          WinShowCursor(HWindow, True);                { Show the caret }
          WinShowCursor(HWindow, True);                { Show the caret }
      End;
      End;
      {$ENDIF}
      {$ENDIF}
+     {$ENDIF not NO_WINDOW}
    End;
    End;
 END;
 END;
 
 
@@ -3219,7 +3224,10 @@ END;
 END.
 END.
 {
 {
  $Log$
  $Log$
- Revision 1.5  2001-05-04 08:42:54  pierre
+ Revision 1.6  2001-05-04 10:46:01  pierre
+  * various fixes  for win32 api mode
+
+ Revision 1.5  2001/05/04 08:42:54  pierre
   * some corrections for linux
   * some corrections for linux
 
 
  Revision 1.4  2001/05/03 22:32:52  pierre
  Revision 1.4  2001/05/03 22:32:52  pierre

+ 23 - 1
fv/drivers.pas

@@ -597,7 +597,9 @@ CONST
    HideMouseProc: DrawProc = Nil;                     { Hide mouse procedure }
    HideMouseProc: DrawProc = Nil;                     { Hide mouse procedure }
    ShowMouseProc: DrawProc = Nil;                     { Show mouse procedure }
    ShowMouseProc: DrawProc = Nil;                     { Show mouse procedure }
    MouseMoveProc: DrawProc = Nil;                     { Mouse moved procedure }
    MouseMoveProc: DrawProc = Nil;                     { Mouse moved procedure }
+{$ENDIF}
 
 
+{$IFDEF NO_WINDOW}
 PROCEDURE HideMouseCursor;
 PROCEDURE HideMouseCursor;
 PROCEDURE ShowMouseCursor;
 PROCEDURE ShowMouseCursor;
 {$ENDIF}
 {$ENDIF}
@@ -1245,6 +1247,7 @@ ASM
 END;
 END;
 {$ENDIF}
 {$ENDIF}
 
 
+
 {$ifndef Use_API}
 {$ifndef Use_API}
 {---------------------------------------------------------------------------}
 {---------------------------------------------------------------------------}
 {  HookMouse -> Platforms DOS/DPMI - Updated 27Aug98 LdB                    }
 {  HookMouse -> Platforms DOS/DPMI - Updated 27Aug98 LdB                    }
@@ -1330,6 +1333,21 @@ END;
 
 
 {$ENDIF}
 {$ENDIF}
 
 
+{$IFDEF USE_API}
+{$IFNDEF OS_DOS}
+PROCEDURE ShowMouseCursor;
+BEGIN
+  ShowMouse;
+END;
+
+PROCEDURE HideMouseCursor;
+BEGIN
+  HideMouse;
+END;
+
+{$ENDIF not OS_DOS}
+{$ENDIF USE_API}
+
 {+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
 {+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
 {               DOS/DPMI/WIN/NT/OS2 PRIVATE INTERNAL ROUTINES               }
 {               DOS/DPMI/WIN/NT/OS2 PRIVATE INTERNAL ROUTINES               }
 {+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
 {+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
@@ -1352,6 +1370,7 @@ END;
 {  DetectVideo -> Platforms DOS/DPMI/WIN/NT/OS2 - Updated 19May98 LdB       }
 {  DetectVideo -> Platforms DOS/DPMI/WIN/NT/OS2 - Updated 19May98 LdB       }
 {---------------------------------------------------------------------------}
 {---------------------------------------------------------------------------}
 {$ifdef Use_API}
 {$ifdef Use_API}
+
 procedure DetectVideo;
 procedure DetectVideo;
 VAR
 VAR
   CurrMode : TVideoMode;
   CurrMode : TVideoMode;
@@ -3019,7 +3038,10 @@ BEGIN
 END.
 END.
 {
 {
  $Log$
  $Log$
- Revision 1.6  2001-05-04 08:42:55  pierre
+ Revision 1.7  2001-05-04 10:46:02  pierre
+  * various fixes  for win32 api mode
+
+ Revision 1.6  2001/05/04 08:42:55  pierre
   * some corrections for linux
   * some corrections for linux
 
 
  Revision 1.5  2001/05/03 22:32:52  pierre
  Revision 1.5  2001/05/03 22:32:52  pierre

+ 7 - 2
fv/menus.pas

@@ -1022,6 +1022,7 @@ BEGIN
          If (P^.Command <> 0) AND (P^.Param <> Nil)
          If (P^.Command <> 0) AND (P^.Param <> Nil)
            Then S := S + ' - ' + P^.Param^;           { Add any parameter }
            Then S := S + ' - ' + P^.Param^;           { Add any parameter }
        End;
        End;
+       {$IFNDEF NO_WINDOW}
        {$IFDEF OS_WINDOWS}                            { WIN/NT CODE }
        {$IFDEF OS_WINDOWS}                            { WIN/NT CODE }
        HWindow := 0;                                  { Must zero handle }
        HWindow := 0;                                  { Must zero handle }
        Dc := 0;                                       { Must zero context }
        Dc := 0;                                       { Must zero context }
@@ -1030,6 +1031,7 @@ BEGIN
        HWindow := 0;                                  { Must zero handle }
        HWindow := 0;                                  { Must zero handle }
        Ps := 0;                                       { Must zero pres space }
        Ps := 0;                                       { Must zero pres space }
        {$ENDIF}
        {$ENDIF}
+      {$ENDIF not NO_WINDOW}
        L := TextWidth(S);                             { Width of string }
        L := TextWidth(S);                             { Width of string }
        If (L > W) Then W := L;                        { Hold maximum }
        If (L > W) Then W := L;                        { Hold maximum }
        Inc(H);                                        { Inc count of items }
        Inc(H);                                        { Inc count of items }
@@ -1674,8 +1676,11 @@ END;
 END.
 END.
 {
 {
  $Log$
  $Log$
- Revision 1.4  2001-04-10 21:57:55  pierre
+ Revision 1.5  2001-05-04 10:46:02  pierre
+  * various fixes  for win32 api mode
+
+ Revision 1.4  2001/04/10 21:57:55  pierre
   + first adds for Use_API define
   + first adds for Use_API define
 
 
 
 
-}
+}

+ 51 - 15
fv/views.pas

@@ -791,6 +791,7 @@ FUNCTION CreateIdScrollBar (X, Y, Size, Id: Integer; Horz: Boolean): PScrollBar;
 {             NEW WIN/NT/OS2 VERSION SPECIFIC INTERFACE ROUTINES            }
 {             NEW WIN/NT/OS2 VERSION SPECIFIC INTERFACE ROUTINES            }
 {+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
 {+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
 
 
+{$IFNDEF NO_WINDOW}
 {$IFDEF OS_WINDOWS}                                   { WIN/NT CODE }
 {$IFDEF OS_WINDOWS}                                   { WIN/NT CODE }
 {-TvViewMsgHandler---------------------------------------------------
 {-TvViewMsgHandler---------------------------------------------------
 This is the default WIN/NT handler for TView objects. Descendant
 This is the default WIN/NT handler for TView objects. Descendant
@@ -815,6 +816,7 @@ interface.
 FUNCTION TvViewMsgHandler(Wnd: HWnd; Msg: ULong; Mp1, Mp2: MParam): MResult;
 FUNCTION TvViewMsgHandler(Wnd: HWnd; Msg: ULong; Mp1, Mp2: MParam): MResult;
 CDECL; EXPORT;
 CDECL; EXPORT;
 {$ENDIF}
 {$ENDIF}
+{$ENDIF not NO_WINDOW}
 
 
 {***************************************************************************}
 {***************************************************************************}
 {                        INITIALIZED PUBLIC VARIABLES                       }
 {                        INITIALIZED PUBLIC VARIABLES                       }
@@ -1038,6 +1040,7 @@ CONST
 {                          PRIVATE INTERNAL ROUTINES                        }
 {                          PRIVATE INTERNAL ROUTINES                        }
 {***************************************************************************}
 {***************************************************************************}
 
 
+{$IFNDEF NO_WINDOW}
 {$IFDEF OS_WINDOWS}                                   { WIN/NT CODE }
 {$IFDEF OS_WINDOWS}                                   { WIN/NT CODE }
 {---------------------------------------------------------------------------}
 {---------------------------------------------------------------------------}
 {  TvViewMsgHandler -> Platforms WIN/NT - Updated 09Aug99 LdB               }
 {  TvViewMsgHandler -> Platforms WIN/NT - Updated 09Aug99 LdB               }
@@ -1492,6 +1495,7 @@ BEGIN
      Msg, Mp1, Mp2);                                  { Call default handler }
      Msg, Mp1, Mp2);                                  { Call default handler }
 END;
 END;
 {$ENDIF}
 {$ENDIF}
+{$ENDIF not NO_WINDOW}
 
 
 {***************************************************************************}
 {***************************************************************************}
 {                              OBJECT METHODS                               }
 {                              OBJECT METHODS                               }
@@ -1778,9 +1782,9 @@ BEGIN
      I := Pos('~', S);                                { Check for tilde }
      I := Pos('~', S);                                { Check for tilde }
       If (I <> 0) Then System.Delete(S, I, 1);        { Remove the tilde }
       If (I <> 0) Then System.Delete(S, I, 1);        { Remove the tilde }
    Until (I = 0);                                     { Remove all tildes }
    Until (I = 0);                                     { Remove all tildes }
-   {$IFDEF OS_DOS}                                    { DOS/DPMI CODE }
+   {$IFDEF NO_WINDOW}                                 { DOS/DPMI CODE }
      TextWidth := Length(S) * SysFontWidth;           { Calc text length }
      TextWidth := Length(S) * SysFontWidth;           { Calc text length }
-   {$ENDIF}
+   {$ELSE not NO_WINDOW}
    {$IFDEF OS_WINDOWS}                                { WIN/NT CODE }
    {$IFDEF OS_WINDOWS}                                { WIN/NT CODE }
      ODc := Dc;                                       { Hold device context }
      ODc := Dc;                                       { Hold device context }
      If (Dc = 0) Then Begin                           { No context set }
      If (Dc = 0) Then Begin                           { No context set }
@@ -1832,6 +1836,7 @@ BEGIN
      If (OPs = 0) Then WinReleasePS(Ps);              { Release pres space }
      If (OPs = 0) Then WinReleasePS(Ps);              { Release pres space }
      Ps := OPs;                                       { Original pres space }
      Ps := OPs;                                       { Original pres space }
    {$ENDIF}
    {$ENDIF}
+   {$ENDIF not NO_WINDOW}
 END;
 END;
 
 
 {--TView--------------------------------------------------------------------}
 {--TView--------------------------------------------------------------------}
@@ -1938,9 +1943,9 @@ BEGIN
      GetViewSettings(ViewPort, TextModeGFV);          { Get set viewport }
      GetViewSettings(ViewPort, TextModeGFV);          { Get set viewport }
      If OverlapsArea(ViewPort.X1, ViewPort.Y1,
      If OverlapsArea(ViewPort.X1, ViewPort.Y1,
      ViewPort.X2, ViewPort.Y2) Then Begin             { Must be in area }
      ViewPort.X2, ViewPort.Y2) Then Begin             { Must be in area }
-       {$IFDEF OS_DOS}                                { DOS/DPMI CODE }
+       {$IFDEF NO_WINDOW}                                { DOS/DPMI CODE }
          HideMouseCursor;                             { Hide mouse cursor }
          HideMouseCursor;                             { Hide mouse cursor }
-       {$ENDIF}
+       {$ELSE not NO_WINDOW}
        {$IFDEF OS_WINDOWS}                            { WIN/NT CODE }
        {$IFDEF OS_WINDOWS}                            { WIN/NT CODE }
        If (HWindow <> 0) Then Begin                   { Valid window }
        If (HWindow <> 0) Then Begin                   { Valid window }
          ODc := Dc;                                   { Hold device context }
          ODc := Dc;                                   { Hold device context }
@@ -1951,6 +1956,7 @@ BEGIN
          OPs := Ps;                                   { Hold paint struct }
          OPs := Ps;                                   { Hold paint struct }
          If (Ps = 0) Then Ps := WinGetPS(Client);     { Create paint struct }
          If (Ps = 0) Then Ps := WinGetPS(Client);     { Create paint struct }
        {$ENDIF}
        {$ENDIF}
+       {$ENDIF not NO_WINDOW}
          If (DrawMask = 0) OR (DrawMask = vdNoChild)  { No special masks set }
          If (DrawMask = 0) OR (DrawMask = vdNoChild)  { No special masks set }
          Then Begin                                   { Treat as a full redraw }
          Then Begin                                   { Treat as a full redraw }
            DrawBackGround;                            { Draw background }
            DrawBackGround;                            { Draw background }
@@ -1975,9 +1981,9 @@ BEGIN
            If (DrawMask AND vdBorder <> 0) Then       { Check border mask }
            If (DrawMask AND vdBorder <> 0) Then       { Check border mask }
              DrawBorder;                              { Draw border }
              DrawBorder;                              { Draw border }
          End;
          End;
-       {$IFDEF OS_DOS}                                { DOS/DPMI CODE }
+       {$IFDEF NO_WINDOW}                                { DOS/DPMI CODE }
          ShowMouseCursor;                             { Show mouse cursor }
          ShowMouseCursor;                             { Show mouse cursor }
-       {$ENDIF}
+       {$ELSE not NO_WINDOW}
        {$IFDEF OS_WINDOWS}                            { WIN/NT CODE }
        {$IFDEF OS_WINDOWS}                            { WIN/NT CODE }
          If (ODc = 0) Then ReleaseDc(HWindow, Dc);    { Release context }
          If (ODc = 0) Then ReleaseDc(HWindow, Dc);    { Release context }
          Dc := ODc;                                   { Reset held context }
          Dc := ODc;                                   { Reset held context }
@@ -1988,6 +1994,7 @@ BEGIN
          Ps := OPs;                                   { Reset held struct }
          Ps := OPs;                                   { Reset held struct }
        End;
        End;
        {$ENDIF}
        {$ENDIF}
+       {$ENDIF not NO_WINDOW}
      End;
      End;
      ReleaseViewLimits;                               { Release the limits }
      ReleaseViewLimits;                               { Release the limits }
    End;
    End;
@@ -2001,6 +2008,7 @@ PROCEDURE TView.MakeFirst;
 BEGIN
 BEGIN
    If (Owner <> Nil) Then Begin                       { Must have owner }
    If (Owner <> Nil) Then Begin                       { Must have owner }
      PutInFrontOf(Owner^.First);                      { Float to the top }
      PutInFrontOf(Owner^.First);                      { Float to the top }
+    {$IFNDEF NO_WINDOW}
      {$IFDEF OS_WINDOWS}                              { WIN/NT CODE }
      {$IFDEF OS_WINDOWS}                              { WIN/NT CODE }
      If (HWindow <> 0) Then                           { Valid window }
      If (HWindow <> 0) Then                           { Valid window }
        SetWindowPos(HWindow, HWND_TOP, 0, 0, 0, 0,
        SetWindowPos(HWindow, HWND_TOP, 0, 0, 0, 0,
@@ -2011,6 +2019,7 @@ BEGIN
        WinSetWindowPos(HWindow, HWND_TOP, 0, 0, 0, 0,
        WinSetWindowPos(HWindow, HWND_TOP, 0, 0, 0, 0,
          swp_ZOrder);                                 { Bring window to top }
          swp_ZOrder);                                 { Bring window to top }
      {$ENDIF}
      {$ENDIF}
+     {$ENDIF not NO_WINDOW}
    End;
    End;
 END;
 END;
 
 
@@ -2403,12 +2412,12 @@ BEGIN
      If (Owner <> Nil) AND                            { valid owner }
      If (Owner <> Nil) AND                            { valid owner }
      (Owner^.State AND sfExposed <> 0)                { If owner exposed }
      (Owner^.State AND sfExposed <> 0)                { If owner exposed }
        Then SetState(sfExposed, Enable);              { Expose this view }
        Then SetState(sfExposed, Enable);              { Expose this view }
-     {$IFDEF OS_DOS}                                  { DOS/DPMI CODE }
+     {$IFDEF NO_WINDOW}                                  { DOS/DPMI CODE }
      If Enable Then DrawView Else                     { Draw the view }
      If Enable Then DrawView Else                     { Draw the view }
        If (Owner <> Nil) Then Owner^.ReDrawArea(      { Owner valid }
        If (Owner <> Nil) Then Owner^.ReDrawArea(      { Owner valid }
          RawOrigin.X, RawOrigin.Y, RawOrigin.X +
          RawOrigin.X, RawOrigin.Y, RawOrigin.X +
          RawSize.X, RawOrigin.Y + RawSize.Y);         { Owner redraws area }
          RawSize.X, RawOrigin.Y + RawSize.Y);         { Owner redraws area }
-     {$ENDIF}
+     {$ELSE not NO_WINDOW}
      {$IFDEF OS_WINDOWS}                              { WIN/NT CODE }
      {$IFDEF OS_WINDOWS}                              { WIN/NT CODE }
      If (HWindow <> 0) Then Begin                     { Window handle valid }
      If (HWindow <> 0) Then Begin                     { Window handle valid }
        If Enable Then ShowWindow(HWindow, sw_Show)    { Show the window }
        If Enable Then ShowWindow(HWindow, sw_Show)    { Show the window }
@@ -2423,6 +2432,7 @@ BEGIN
          swp_Hide);                                   { Hide the window }
          swp_Hide);                                   { Hide the window }
      End;
      End;
      {$ENDIF}
      {$ENDIF}
+     {$ENDIF not NO_WINDOW}
      If (Options AND ofSelectable <> 0) Then          { View is selectable }
      If (Options AND ofSelectable <> 0) Then          { View is selectable }
        If (Owner <> Nil) Then Owner^.ResetCurrent;    { Reset selected }
        If (Owner <> Nil) Then Owner^.ResetCurrent;    { Reset selected }
    End;
    End;
@@ -2432,6 +2442,7 @@ BEGIN
          Else Command := cmReleasedFocus;             { View losing focus }
          Else Command := cmReleasedFocus;             { View losing focus }
        Message(Owner, evBroadcast, Command, @Self);   { Send out message }
        Message(Owner, evBroadcast, Command, @Self);   { Send out message }
      End;
      End;
+     {$IFNDEF NO_WINDOW}
      {$IFDEF OS_WINDOWS}                              { WIN/NT CODE }
      {$IFDEF OS_WINDOWS}                              { WIN/NT CODE }
      If (HWindow <> 0) Then                           { Window handle valid }
      If (HWindow <> 0) Then                           { Window handle valid }
        If Enable Then SetFocus(HWindow);              { Focus the window }
        If Enable Then SetFocus(HWindow);              { Focus the window }
@@ -2441,6 +2452,7 @@ BEGIN
        If Enable Then WinSetFocus(HWND_DESKTOP,
        If Enable Then WinSetFocus(HWND_DESKTOP,
          HWindow);                                    { Focus the window }
          HWindow);                                    { Focus the window }
      {$ENDIF}
      {$ENDIF}
+     {$ENDIF not NO_WINDOW}
      If (GOptions AND goDrawFocus <> 0) Then Begin    { Draw focus view }
      If (GOptions AND goDrawFocus <> 0) Then Begin    { Draw focus view }
        SetDrawMask(vdFocus);                          { Set focus draw mask }
        SetDrawMask(vdFocus);                          { Set focus draw mask }
        DrawView;                                      { Redraw focus change }
        DrawView;                                      { Redraw focus change }
@@ -2452,6 +2464,7 @@ BEGIN
      DrawView;                                        { Redraw the cursor }
      DrawView;                                        { Redraw the cursor }
    End;
    End;
    If (AState AND sfDisabled <> 0) Then Begin         { Disbale change }
    If (AState AND sfDisabled <> 0) Then Begin         { Disbale change }
+     {$IFNDEF NO_WINDOW}
      {$IFDEF OS_WINDOWS}                              { WIN/NT CODE }
      {$IFDEF OS_WINDOWS}                              { WIN/NT CODE }
      If (HWindow <> 0) Then                           { Window handle valid }
      If (HWindow <> 0) Then                           { Window handle valid }
        If Enable Then EnableWindow(HWindow, False)    { Disable the window }
        If Enable Then EnableWindow(HWindow, False)    { Disable the window }
@@ -2462,6 +2475,7 @@ BEGIN
        If Enable Then WinEnableWindow(HWindow,False)  { Disable the window }
        If Enable Then WinEnableWindow(HWindow,False)  { Disable the window }
          Else WinEnableWindow(HWindow, True);         { Enable the window }
          Else WinEnableWindow(HWindow, True);         { Enable the window }
      {$ENDIF}
      {$ENDIF}
+     {$ENDIF not NO_WINDOW}
    End;
    End;
    If (AState AND sfShadow <> 0) Then Begin End;      { Change shadow state }
    If (AState AND sfShadow <> 0) Then Begin End;      { Change shadow state }
 END;
 END;
@@ -2530,7 +2544,7 @@ END;
 {  Locate -> Platforms DOS/DPMI/WIN/NT/OS2 - Updated 24Sep99 LdB            }
 {  Locate -> Platforms DOS/DPMI/WIN/NT/OS2 - Updated 24Sep99 LdB            }
 {---------------------------------------------------------------------------}
 {---------------------------------------------------------------------------}
 PROCEDURE TView.Locate (Var Bounds: TRect);
 PROCEDURE TView.Locate (Var Bounds: TRect);
-VAR {$IFDEF OS_DOS} X1, Y1, X2, Y2: Integer; {$ENDIF}
+VAR {$IFDEF NO_WINDOW} X1, Y1, X2, Y2: Integer; {$ENDIF}
     Min, Max: TPoint; R: TRect;
     Min, Max: TPoint; R: TRect;
 
 
    FUNCTION Range(Val, Min, Max: Integer): Integer;
    FUNCTION Range(Val, Min, Max: Integer): Integer;
@@ -2541,7 +2555,7 @@ VAR {$IFDEF OS_DOS} X1, Y1, X2, Y2: Integer; {$ENDIF}
    END;
    END;
 
 
 BEGIN
 BEGIN
-   {$IFDEF OS_DOS}                                    { DOS/DPMI CODE }
+   {$IFDEF NO_WINDOW}                                 { DOS/DPMI CODE }
    X1 := RawOrigin.X;                                 { Current x origin }
    X1 := RawOrigin.X;                                 { Current x origin }
    Y1 := RawOrigin.Y;                                 { Current y origin }
    Y1 := RawOrigin.Y;                                 { Current y origin }
    X2 := RawOrigin.X + RawSize.X;                     { Current x size }
    X2 := RawOrigin.X + RawSize.X;                     { Current x size }
@@ -2555,12 +2569,12 @@ BEGIN
    GetBounds(R);                                      { Current bounds }
    GetBounds(R);                                      { Current bounds }
    If NOT Bounds.Equals(R) Then Begin                 { Size has changed }
    If NOT Bounds.Equals(R) Then Begin                 { Size has changed }
      ChangeBounds(Bounds);                            { Change bounds }
      ChangeBounds(Bounds);                            { Change bounds }
-     {$IFDEF OS_DOS}                                  { DOS/DPMI CODE }
+     {$IFDEF NO_WINDOW}                               { DOS/DPMI CODE }
      If (State AND sfVisible <> 0) AND                { View is visible }
      If (State AND sfVisible <> 0) AND                { View is visible }
      (State AND sfExposed <> 0) AND (Owner <> Nil)    { Check view exposed }
      (State AND sfExposed <> 0) AND (Owner <> Nil)    { Check view exposed }
        Then Owner^.ReDrawArea(X1, Y1, X2, Y2);        { Owner redraw }
        Then Owner^.ReDrawArea(X1, Y1, X2, Y2);        { Owner redraw }
      DrawView;                                        { Redraw the view }
      DrawView;                                        { Redraw the view }
-     {$ENDIF}
+     {$ELSE not NO_WINDOW}
      {$IFDEF OS_WINDOWS}                              { WIN/NT CODE }
      {$IFDEF OS_WINDOWS}                              { WIN/NT CODE }
      If (HWindow <> 0) Then Begin                     { Valid window handle }
      If (HWindow <> 0) Then Begin                     { Valid window handle }
        If (Owner <> Nil) AND (Owner^.HWindow <> 0)    { Valid owner }
        If (Owner <> Nil) AND (Owner^.HWindow <> 0)    { Valid owner }
@@ -2584,6 +2598,7 @@ BEGIN
          RawSize.X, RawSize.Y, swp_Size OR swp_Move); { Move window raw }
          RawSize.X, RawSize.Y, swp_Size OR swp_Move); { Move window raw }
      End;
      End;
      {$ENDIF}
      {$ENDIF}
+     {$ENDIF not NO_WINDOW}
    End;
    End;
 END;
 END;
 
 
@@ -4078,6 +4093,7 @@ BEGIN
          ClearPos(GetPos);                            { Clear old position }
          ClearPos(GetPos);                            { Clear old position }
        Min := AMin;                                   { Set new minimum }
        Min := AMin;                                   { Set new minimum }
        Max := AMax;                                   { Set new maximum }
        Max := AMax;                                   { Set new maximum }
+       {$IFNDEF NO_WINDOW}
        {$IFDEF OS_WINDOWS}                            { WIN/NT CODE }
        {$IFDEF OS_WINDOWS}                            { WIN/NT CODE }
        If (GOptions AND goNativeClass <> 0) AND       { In native class mode }
        If (GOptions AND goNativeClass <> 0) AND       { In native class mode }
        (HWindow <> 0) Then
        (HWindow <> 0) Then
@@ -4092,6 +4108,7 @@ BEGIN
            (LongInt(Max-1) SHL 16) OR Min);           { Post the message }
            (LongInt(Max-1) SHL 16) OR Min);           { Post the message }
        End;
        End;
        {$ENDIF}
        {$ENDIF}
+       {$ENDIF not NO_WINDOW}
        { This was removed as found not needed but if you
        { This was removed as found not needed but if you
        change limits but value unchanged scrollbar is not redrawm..LdB }
        change limits but value unchanged scrollbar is not redrawm..LdB }
        {If (Value = AValue) AND (State and sfVisible <> 0)
        {If (Value = AValue) AND (State and sfVisible <> 0)
@@ -4106,6 +4123,7 @@ BEGIN
          SetDrawMask(vdInner);                        { Set draw masks }
          SetDrawMask(vdInner);                        { Set draw masks }
          DrawView;                                    { Redraw changed }
          DrawView;                                    { Redraw changed }
        End;
        End;
+       {$IFNDEF NO_WINDOW}
        {$IFDEF OS_WINDOWS}                            { WIN/NT CODE }
        {$IFDEF OS_WINDOWS}                            { WIN/NT CODE }
        If (GOptions AND goNativeClass <> 0) AND       { In native class mode }
        If (GOptions AND goNativeClass <> 0) AND       { In native class mode }
        (HWindow <> 0) Then                            { Valid handle }
        (HWindow <> 0) Then                            { Valid handle }
@@ -4117,6 +4135,7 @@ BEGIN
          WinSendMsg(HWindow, sbm_SetPos, Value, 0);   { Dispatch the message }
          WinSendMsg(HWindow, sbm_SetPos, Value, 0);   { Dispatch the message }
        End;
        End;
        {$ENDIF}
        {$ENDIF}
+       {$ENDIF not USE_API}
        If (State AND sfVisible <> 0) Then ScrollDraw; { Send update message }
        If (State AND sfVisible <> 0) Then ScrollDraw; { Send update message }
      End;
      End;
    End;
    End;
@@ -4643,6 +4662,7 @@ BEGIN
    ColWidth := Size.X DIV NumCols + 1;                { Calc column width }
    ColWidth := Size.X DIV NumCols + 1;                { Calc column width }
    If (HScrollBar = Nil) Then Indent := 0 Else        { Set indent to zero }
    If (HScrollBar = Nil) Then Indent := 0 Else        { Set indent to zero }
      Indent := HScrollBar^.Value;                     { Fetch any indent }
      Indent := HScrollBar^.Value;                     { Fetch any indent }
+   {$IFNDEF USE_API}
    {$IFDEF OS_WINDOWS}                                { WIN/NT CODE }
    {$IFDEF OS_WINDOWS}                                { WIN/NT CODE }
    If (GOptions AND goNativeClass <> 0) Then Begin    { Native class mode }
    If (GOptions AND goNativeClass <> 0) Then Begin    { Native class mode }
      If (Range <> SendMessage(HWindow, lb_GetCount,
      If (Range <> SendMessage(HWindow, lb_GetCount,
@@ -4675,6 +4695,7 @@ BEGIN
      Exit;                                            { Native mode is done }
      Exit;                                            { Native mode is done }
     End;
     End;
    {$ENDIF}
    {$ENDIF}
+   {$ENDIF not USE_API}
    Inherited DrawBackGround;                          { Call ancestor }
    Inherited DrawBackGround;                          { Call ancestor }
    Color := GetColor(2);                              { Normal colour }
    Color := GetColor(2);                              { Normal colour }
    For I := 0 To Size.Y - 1 Do Begin                  { For each line }
    For I := 0 To Size.Y - 1 Do Begin                  { For each line }
@@ -4766,6 +4787,7 @@ BEGIN
    Focused := Item;                                   { Set focus to item }
    Focused := Item;                                   { Set focus to item }
    If (VScrollBar <> Nil) Then
    If (VScrollBar <> Nil) Then
      VScrollBar^.SetValue(Item);                      { Scrollbar to value }
      VScrollBar^.SetValue(Item);                      { Scrollbar to value }
+   {$IFNDEF NO_WINDOW}
    {$IFDEF OS_WINDOWS}                                { WIN/NT CODE }
    {$IFDEF OS_WINDOWS}                                { WIN/NT CODE }
    If (GOptions AND goNativeClass <> 0) Then Begin    { Native class mode }
    If (GOptions AND goNativeClass <> 0) Then Begin    { Native class mode }
      If (HWindow <> 0) Then Begin                     { Check window valid }
      If (HWindow <> 0) Then Begin                     { Check window valid }
@@ -4777,6 +4799,7 @@ BEGIN
      Exit;                                            { Native mode done }
      Exit;                                            { Native mode done }
    End;
    End;
    {$ENDIF}
    {$ENDIF}
+   {$ENDIF not NO_WINDOW}
    If (Item < TopItem) Then                           { Item above top item }
    If (Item < TopItem) Then                           { Item above top item }
      If (NumCols = 1) Then TopItem := Item            { Set top item }
      If (NumCols = 1) Then TopItem := Item            { Set top item }
        Else TopItem := Item - Item MOD Size.Y         { Set top item }
        Else TopItem := Item - Item MOD Size.Y         { Set top item }
@@ -4792,11 +4815,13 @@ END;
 PROCEDURE TListViewer.SetTopItem (Item: Integer);
 PROCEDURE TListViewer.SetTopItem (Item: Integer);
 BEGIN
 BEGIN
    TopItem := Item;                                   { Set the top item }
    TopItem := Item;                                   { Set the top item }
+   {$IFNDEF NO_WINDOW}
    {$IFDEF OS_WINDOWS}                                { WIN/NT CODE }
    {$IFDEF OS_WINDOWS}                                { WIN/NT CODE }
    If (GOptions AND goNativeClass <> 0) AND           { Native class mode }
    If (GOptions AND goNativeClass <> 0) AND           { Native class mode }
    (HWindow <> 0) Then                                { Window valid }
    (HWindow <> 0) Then                                { Window valid }
      SendMessage(HWindow, lb_SetTopIndex, Item, 0);   { Synchronize }
      SendMessage(HWindow, lb_SetTopIndex, Item, 0);   { Synchronize }
    {$ENDIF}
    {$ENDIF}
+   {$ENDIF not NO_WINDOW}
 END;
 END;
 
 
 {--TListViewer--------------------------------------------------------------}
 {--TListViewer--------------------------------------------------------------}
@@ -5449,11 +5474,11 @@ END;
 {  GraphLine -> Platforms DOS/DPMI/WIN/NT/OS2 - Updated 22Sep99 LdB         }
 {  GraphLine -> Platforms DOS/DPMI/WIN/NT/OS2 - Updated 22Sep99 LdB         }
 {---------------------------------------------------------------------------}
 {---------------------------------------------------------------------------}
 PROCEDURE TView.GraphLine (X1, Y1, X2, Y2: Integer; Colour: Byte);
 PROCEDURE TView.GraphLine (X1, Y1, X2, Y2: Integer; Colour: Byte);
-{$IFDEF OS_DOS} VAR ViewPort: ViewPortType; {$ENDIF}  { DOS/DPMI VARIABLES }
+{$IFDEF NO_WINDOW} VAR ViewPort: ViewPortType; {$ENDIF}  { DOS/DPMI VARIABLES }
     {$IFDEF OS_WINDOWS}VAR I: Word; ODc: hDc; {$ENDIF}   { WIN/NT VARIABLES }
     {$IFDEF OS_WINDOWS}VAR I: Word; ODc: hDc; {$ENDIF}   { WIN/NT VARIABLES }
     {$IFDEF OS_OS2}VAR I: LongInt; Lp: PointL; OPs: HPs; {$ENDIF}{ OS2 VARIABLES }
     {$IFDEF OS_OS2}VAR I: LongInt; Lp: PointL; OPs: HPs; {$ENDIF}{ OS2 VARIABLES }
 BEGIN
 BEGIN
-   {$IFDEF OS_DOS}                                    { DOS/DPMI CODE }
+   {$IFDEF OS_DOS}                                 { DOS/DPMI CODE }
    GetViewSettings(ViewPort, TextModeGFV);            { Get viewport settings }
    GetViewSettings(ViewPort, TextModeGFV);            { Get viewport settings }
    If (TextModeGFV <> TRUE) Then Begin
    If (TextModeGFV <> TRUE) Then Begin
      SetColor(Colour);                                { Set line colour }
      SetColor(Colour);                                { Set line colour }
@@ -5463,6 +5488,7 @@ BEGIN
    End Else Begin                                     { LEON???? }
    End Else Begin                                     { LEON???? }
    End;
    End;
    {$ENDIF}
    {$ENDIF}
+   {$IFNDEF NO_WINDOW}
    {$IFDEF OS_WINDOWS}                                { WIN/NT CODE }
    {$IFDEF OS_WINDOWS}                                { WIN/NT CODE }
    If (HWindow <> 0) Then Begin                       { Valid window }
    If (HWindow <> 0) Then Begin                       { Valid window }
      X1 := X1 - FrameSize;                            { Adjust X1 for frame }
      X1 := X1 - FrameSize;                            { Adjust X1 for frame }
@@ -5519,6 +5545,7 @@ BEGIN
      Ps := OPs;                                       { Reset held struct }
      Ps := OPs;                                       { Reset held struct }
    End;
    End;
    {$ENDIF}
    {$ENDIF}
+   {$ENDIF not NO_WINDOW}
 END;
 END;
 
 
 PROCEDURE TView.GraphRectangle (X1, Y1, X2, Y2: Integer; Colour: Byte);
 PROCEDURE TView.GraphRectangle (X1, Y1, X2, Y2: Integer; Colour: Byte);
@@ -5536,6 +5563,7 @@ BEGIN
    End Else Begin                                     { LEON???? }
    End Else Begin                                     { LEON???? }
    End;
    End;
    {$ENDIF}
    {$ENDIF}
+   {$IFNDEF NO_WINDOW}
    {$IFDEF OS_WINDOWS}                                { WIN/NT CODE }
    {$IFDEF OS_WINDOWS}                                { WIN/NT CODE }
    If (HWindow <> 0) Then Begin                       { Valid window }
    If (HWindow <> 0) Then Begin                       { Valid window }
      X1 := X1 - FrameSize;
      X1 := X1 - FrameSize;
@@ -5594,6 +5622,7 @@ BEGIN
      Ps := OPs;                                       { Reset held struct }
      Ps := OPs;                                       { Reset held struct }
    End;
    End;
    {$ENDIF}
    {$ENDIF}
+   {$ENDIF not NO_WINDOW}
 END;
 END;
 
 
 {--TView--------------------------------------------------------------------}
 {--TView--------------------------------------------------------------------}
@@ -5686,6 +5715,7 @@ Colour: Byte);
 CONST RadConv  = 57.2957795130823229;                 { Degrees per radian }
 CONST RadConv  = 57.2957795130823229;                 { Degrees per radian }
 VAR X1, Y1, X2, Y2, X3, Y3: Integer; {$IFDEF OS_WINDOWS} ODc: hDc; {$ENDIF}
 VAR X1, Y1, X2, Y2, X3, Y3: Integer; {$IFDEF OS_WINDOWS} ODc: hDc; {$ENDIF}
 BEGIN
 BEGIN
+   {$IFNDEF NO_WINDOW}
    {$IFDEF OS_WINDOWS}
    {$IFDEF OS_WINDOWS}
    Xc := Xc - FrameSize;
    Xc := Xc - FrameSize;
    Yc := Yc - CaptSize;
    Yc := Yc - CaptSize;
@@ -5721,6 +5751,7 @@ BEGIN
      Dc := ODc;                                       { Reset held context }
      Dc := ODc;                                       { Reset held context }
    End;
    End;
    {$ENDIF}
    {$ENDIF}
+   {$ENDIF not NO_WINDOW}
 END;
 END;
 
 
 PROCEDURE TView.FilletArc (Xc, Yc: Integer; Sa, Ea: Real; XRad, YRad, Ht: Integer;
 PROCEDURE TView.FilletArc (Xc, Yc: Integer; Sa, Ea: Real; XRad, YRad, Ht: Integer;
@@ -5728,6 +5759,7 @@ Colour: Byte);
 CONST RadConv  = 57.2957795130823229;                 { Degrees per radian }
 CONST RadConv  = 57.2957795130823229;                 { Degrees per radian }
 {$IFDEF OS_WINDOWS} VAR X1, Y1, X2, Y2, X3, Y3, X4, Y4: Integer; ODc: hDc; {$ENDIF}
 {$IFDEF OS_WINDOWS} VAR X1, Y1, X2, Y2, X3, Y3, X4, Y4: Integer; ODc: hDc; {$ENDIF}
 BEGIN
 BEGIN
+   {$IFNDEF NO_WINDOW}
    {$IFDEF OS_WINDOWS}
    {$IFDEF OS_WINDOWS}
    If (HWindow <> 0) Then Begin                       { Valid window }
    If (HWindow <> 0) Then Begin                       { Valid window }
      Xc := Xc - FrameSize;
      Xc := Xc - FrameSize;
@@ -5772,6 +5804,7 @@ BEGIN
      Dc := ODc;                                       { Reset held context }
      Dc := ODc;                                       { Reset held context }
    End;
    End;
    {$ENDIF}
    {$ENDIF}
+   {$ENDIF not NO_WINDOW}
 END;
 END;
 
 
 {--TView--------------------------------------------------------------------}
 {--TView--------------------------------------------------------------------}
@@ -6798,7 +6831,10 @@ END.
 
 
 {
 {
  $Log$
  $Log$
- Revision 1.6  2001-05-04 08:42:56  pierre
+ Revision 1.7  2001-05-04 10:46:03  pierre
+  * various fixes  for win32 api mode
+
+ Revision 1.6  2001/05/04 08:42:56  pierre
   * some corrections for linux
   * some corrections for linux
 
 
  Revision 1.5  2001/05/03 22:32:52  pierre
  Revision 1.5  2001/05/03 22:32:52  pierre

+ 11 - 3
fvision/dialogs.pas

@@ -718,6 +718,7 @@ CONST
 {                          PRIVATE INTERNAL ROUTINES                        }
 {                          PRIVATE INTERNAL ROUTINES                        }
 {***************************************************************************}
 {***************************************************************************}
 
 
+{$IFNDEF NO_WINDOW}
 {$IFDEF OS_WINDOWS}                                   { WIN/NT CODE }
 {$IFDEF OS_WINDOWS}                                   { WIN/NT CODE }
 {---------------------------------------------------------------------------}
 {---------------------------------------------------------------------------}
 {  TvClusterMsgHandler -> Platforms WIN/NT - Checked 08Jun98 LdB            }
 {  TvClusterMsgHandler -> Platforms WIN/NT - Checked 08Jun98 LdB            }
@@ -786,6 +787,7 @@ BEGIN
     iMessage, wParam, lParam);                        { Call TV view handler }
     iMessage, wParam, lParam);                        { Call TV view handler }
 END;
 END;
 {$ENDIF}
 {$ENDIF}
+{$ENDIF not NO_WINDOW}
 
 
 {---------------------------------------------------------------------------}
 {---------------------------------------------------------------------------}
 {  IsBlank -> Platforms DOS/DPMI/WIN/NT/OS2 - Updated 08Jun98 LdB           }
 {  IsBlank -> Platforms DOS/DPMI/WIN/NT/OS2 - Updated 08Jun98 LdB           }
@@ -1064,12 +1066,14 @@ END;
 {---------------------------------------------------------------------------}
 {---------------------------------------------------------------------------}
 PROCEDURE TInputLine.DrawBackGround;
 PROCEDURE TInputLine.DrawBackGround;
 BEGIN
 BEGIN
+   {$IFNDEF NO_WINDOW}
    {$IFDEF OS_WINDOWS}                                { WIN/NT CODE }
    {$IFDEF OS_WINDOWS}                                { WIN/NT CODE }
    If (HWindow <> 0) Then DestroyCaret;               { Destroy any caret }
    If (HWindow <> 0) Then DestroyCaret;               { Destroy any caret }
    {$ENDIF}
    {$ENDIF}
    {$IFDEF OS_OS2}                                    { OS2 CODE }
    {$IFDEF OS_OS2}                                    { OS2 CODE }
    If (HWindow <> 0) Then WinDestroyCursor(HWindow);  { Destroy any caret }
    If (HWindow <> 0) Then WinDestroyCursor(HWindow);  { Destroy any caret }
    {$ENDIF}
    {$ENDIF}
+   {$ENDIF not NO_WINDOW}
    Inherited DrawBackGround;                          { Call ancestor }
    Inherited DrawBackGround;                          { Call ancestor }
 END;
 END;
 
 
@@ -1090,13 +1094,13 @@ BEGIN
            I := TextWidth(Data^[CurPos+1])            { Insert caret width }
            I := TextWidth(Data^[CurPos+1])            { Insert caret width }
            Else I := FontWidth;                       { At end use fontwidth }
            Else I := FontWidth;                       { At end use fontwidth }
      End;
      End;
-     {$IFDEF OS_DOS}
+     {$IFDEF NO_WINDOW}
      If (State AND sfCursorIns <> 0) Then Begin       { Insert mode }
      If (State AND sfCursorIns <> 0) Then Begin       { Insert mode }
        If ((CurPos+1) <= Length(Data^)) Then          { Not beyond end }
        If ((CurPos+1) <= Length(Data^)) Then          { Not beyond end }
          WriteStr(-X, 0, Data^[CurPos+1], 5)          { Create block cursor }
          WriteStr(-X, 0, Data^[CurPos+1], 5)          { Create block cursor }
          Else ClearArea(X, 0, X+I, FontHeight, Green);{ Line cursor }
          Else ClearArea(X, 0, X+I, FontHeight, Green);{ Line cursor }
      End Else ClearArea(X, 0, X+I, FontHeight, Green);{ Line cursor }
      End Else ClearArea(X, 0, X+I, FontHeight, Green);{ Line cursor }
-     {$ENDIF}
+     {$ELSE not NO_WINDOW}
      {$IFDEF OS_WINDOWS}                              { WIN/NT CODE }
      {$IFDEF OS_WINDOWS}                              { WIN/NT CODE }
      If (HWindow <> 0) Then Begin
      If (HWindow <> 0) Then Begin
        CreateCaret(HWindow, 0, I, FontHeight);        { Create a craet }
        CreateCaret(HWindow, 0, I, FontHeight);        { Create a craet }
@@ -1113,6 +1117,7 @@ BEGIN
          WinShowCursor(HWindow, True);                { Show the caret }
          WinShowCursor(HWindow, True);                { Show the caret }
      End;
      End;
      {$ENDIF}
      {$ENDIF}
+     {$ENDIF not NO_WINDOW}
    End;
    End;
 END;
 END;
 
 
@@ -3219,7 +3224,10 @@ END;
 END.
 END.
 {
 {
  $Log$
  $Log$
- Revision 1.5  2001-05-04 08:42:54  pierre
+ Revision 1.6  2001-05-04 10:46:01  pierre
+  * various fixes  for win32 api mode
+
+ Revision 1.5  2001/05/04 08:42:54  pierre
   * some corrections for linux
   * some corrections for linux
 
 
  Revision 1.4  2001/05/03 22:32:52  pierre
  Revision 1.4  2001/05/03 22:32:52  pierre

+ 23 - 1
fvision/drivers.pas

@@ -597,7 +597,9 @@ CONST
    HideMouseProc: DrawProc = Nil;                     { Hide mouse procedure }
    HideMouseProc: DrawProc = Nil;                     { Hide mouse procedure }
    ShowMouseProc: DrawProc = Nil;                     { Show mouse procedure }
    ShowMouseProc: DrawProc = Nil;                     { Show mouse procedure }
    MouseMoveProc: DrawProc = Nil;                     { Mouse moved procedure }
    MouseMoveProc: DrawProc = Nil;                     { Mouse moved procedure }
+{$ENDIF}
 
 
+{$IFDEF NO_WINDOW}
 PROCEDURE HideMouseCursor;
 PROCEDURE HideMouseCursor;
 PROCEDURE ShowMouseCursor;
 PROCEDURE ShowMouseCursor;
 {$ENDIF}
 {$ENDIF}
@@ -1245,6 +1247,7 @@ ASM
 END;
 END;
 {$ENDIF}
 {$ENDIF}
 
 
+
 {$ifndef Use_API}
 {$ifndef Use_API}
 {---------------------------------------------------------------------------}
 {---------------------------------------------------------------------------}
 {  HookMouse -> Platforms DOS/DPMI - Updated 27Aug98 LdB                    }
 {  HookMouse -> Platforms DOS/DPMI - Updated 27Aug98 LdB                    }
@@ -1330,6 +1333,21 @@ END;
 
 
 {$ENDIF}
 {$ENDIF}
 
 
+{$IFDEF USE_API}
+{$IFNDEF OS_DOS}
+PROCEDURE ShowMouseCursor;
+BEGIN
+  ShowMouse;
+END;
+
+PROCEDURE HideMouseCursor;
+BEGIN
+  HideMouse;
+END;
+
+{$ENDIF not OS_DOS}
+{$ENDIF USE_API}
+
 {+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
 {+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
 {               DOS/DPMI/WIN/NT/OS2 PRIVATE INTERNAL ROUTINES               }
 {               DOS/DPMI/WIN/NT/OS2 PRIVATE INTERNAL ROUTINES               }
 {+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
 {+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
@@ -1352,6 +1370,7 @@ END;
 {  DetectVideo -> Platforms DOS/DPMI/WIN/NT/OS2 - Updated 19May98 LdB       }
 {  DetectVideo -> Platforms DOS/DPMI/WIN/NT/OS2 - Updated 19May98 LdB       }
 {---------------------------------------------------------------------------}
 {---------------------------------------------------------------------------}
 {$ifdef Use_API}
 {$ifdef Use_API}
+
 procedure DetectVideo;
 procedure DetectVideo;
 VAR
 VAR
   CurrMode : TVideoMode;
   CurrMode : TVideoMode;
@@ -3019,7 +3038,10 @@ BEGIN
 END.
 END.
 {
 {
  $Log$
  $Log$
- Revision 1.6  2001-05-04 08:42:55  pierre
+ Revision 1.7  2001-05-04 10:46:02  pierre
+  * various fixes  for win32 api mode
+
+ Revision 1.6  2001/05/04 08:42:55  pierre
   * some corrections for linux
   * some corrections for linux
 
 
  Revision 1.5  2001/05/03 22:32:52  pierre
  Revision 1.5  2001/05/03 22:32:52  pierre

+ 7 - 2
fvision/menus.pas

@@ -1022,6 +1022,7 @@ BEGIN
          If (P^.Command <> 0) AND (P^.Param <> Nil)
          If (P^.Command <> 0) AND (P^.Param <> Nil)
            Then S := S + ' - ' + P^.Param^;           { Add any parameter }
            Then S := S + ' - ' + P^.Param^;           { Add any parameter }
        End;
        End;
+       {$IFNDEF NO_WINDOW}
        {$IFDEF OS_WINDOWS}                            { WIN/NT CODE }
        {$IFDEF OS_WINDOWS}                            { WIN/NT CODE }
        HWindow := 0;                                  { Must zero handle }
        HWindow := 0;                                  { Must zero handle }
        Dc := 0;                                       { Must zero context }
        Dc := 0;                                       { Must zero context }
@@ -1030,6 +1031,7 @@ BEGIN
        HWindow := 0;                                  { Must zero handle }
        HWindow := 0;                                  { Must zero handle }
        Ps := 0;                                       { Must zero pres space }
        Ps := 0;                                       { Must zero pres space }
        {$ENDIF}
        {$ENDIF}
+      {$ENDIF not NO_WINDOW}
        L := TextWidth(S);                             { Width of string }
        L := TextWidth(S);                             { Width of string }
        If (L > W) Then W := L;                        { Hold maximum }
        If (L > W) Then W := L;                        { Hold maximum }
        Inc(H);                                        { Inc count of items }
        Inc(H);                                        { Inc count of items }
@@ -1674,8 +1676,11 @@ END;
 END.
 END.
 {
 {
  $Log$
  $Log$
- Revision 1.4  2001-04-10 21:57:55  pierre
+ Revision 1.5  2001-05-04 10:46:02  pierre
+  * various fixes  for win32 api mode
+
+ Revision 1.4  2001/04/10 21:57:55  pierre
   + first adds for Use_API define
   + first adds for Use_API define
 
 
 
 
-}
+}

+ 85 - 18
fvision/testapp.pas

@@ -34,12 +34,18 @@ PROGRAM TestApp;
 
 
 {$I Platform.inc}
 {$I Platform.inc}
   USES
   USES
-     {$IFDEF OS_OS2} Os2Def, os2PmApi, Drivers, {$ENDIF}
-     Objects, Views, Menus, Dialogs, App,             { Standard GFV units }
+     {$IFDEF OS_OS2} Os2Def, os2PmApi,  {$ENDIF}
+     Objects, Drivers, Views, Menus, Dialogs, App,             { Standard GFV units }
      Gadgets;
      Gadgets;
 
 
 
 
 CONST cmAppToolbar = 1000;
 CONST cmAppToolbar = 1000;
+      cmWindow1    = 1001;
+      cmWindow2    = 1002;
+      cmWindow3    = 1003;
+      cmCloseWindow1    = 1101;
+      cmCloseWindow2    = 1102;
+      cmCloseWindow3    = 1103;
 
 
 {---------------------------------------------------------------------------}
 {---------------------------------------------------------------------------}
 {          TTestAppp OBJECT - STANDARD APPLICATION WITH MENU                }
 {          TTestAppp OBJECT - STANDARD APPLICATION WITH MENU                }
@@ -49,10 +55,16 @@ TYPE
    TTVDemo = OBJECT (TApplication)
    TTVDemo = OBJECT (TApplication)
         Clock: PClockView;
         Clock: PClockView;
         Heap: PHeapView;
         Heap: PHeapView;
+        P1,P2,P3 : PGroup;
       CONSTRUCTOR Init;
       CONSTRUCTOR Init;
       PROCEDURE Idle; Virtual;
       PROCEDURE Idle; Virtual;
+      PROCEDURE HandleEvent(var Event : TEvent);virtual;
       PROCEDURE InitMenuBar; Virtual;
       PROCEDURE InitMenuBar; Virtual;
       PROCEDURE InitDeskTop; Virtual;
       PROCEDURE InitDeskTop; Virtual;
+      PROCEDURE Window1;
+      PROCEDURE Window2;
+      PROCEDURE Window3;
+      PROCEDURE CloseWindow(var P : PGroup);
     End;
     End;
 
 
 {+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
 {+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
@@ -95,6 +107,23 @@ begin
     DisableCommands([cmTile, cmCascade]);
     DisableCommands([cmTile, cmCascade]);
 end;
 end;
 
 
+PROCEDURE TTVDemo.HandleEvent(var Event : TEvent);
+BEGIN
+   Inherited HandleEvent(Event);                      { Call ancestor }
+   If (Event.What = evCommand) Then Begin
+     Case Event.Command Of
+       cmWindow1 : Window1;
+       cmWindow2 : Window2;
+       cmWindow3 : Window3;
+       cmCloseWindow1 : CloseWindow(P1);
+       cmCloseWindow2 : CloseWindow(P2);
+       cmCloseWindow3 : CloseWindow(P3);
+       Else Exit;                                     { Unhandled exit }
+     End;
+   End;
+   ClearEvent(Event);
+END;
+
 {--TTvDemo------------------------------------------------------------------}
 {--TTvDemo------------------------------------------------------------------}
 {  InitMenuBar -> Platforms DOS/DPMI/WIN/NT/OS2 - Updated 05Nov99 LdB       }
 {  InitMenuBar -> Platforms DOS/DPMI/WIN/NT/OS2 - Updated 05Nov99 LdB       }
 {---------------------------------------------------------------------------}
 {---------------------------------------------------------------------------}
@@ -108,8 +137,16 @@ BEGIN
       StdFileMenuItems(Nil)),                         { Standard file menu }
       StdFileMenuItems(Nil)),                         { Standard file menu }
     NewSubMenu('~E~dit', 0, NewMenu(
     NewSubMenu('~E~dit', 0, NewMenu(
       StdEditMenuItems(Nil)),                         { Standard edit menu }
       StdEditMenuItems(Nil)),                         { Standard edit menu }
+    NewSubMenu('~T~est', 0, NewMenu(
+      NewItem('Window 1','',kbNoKey,cmWindow1,hcNoContext,
+      NewItem('Window 2','',kbNoKey,cmWindow2,hcNoContext,
+      NewItem('Window 3','',kbNoKey,cmWindow3,hcNoContext,
+      NewItem('Close Window 1','',kbNoKey,cmCloseWindow1,hcNoContext,
+      NewItem('Close Window 2','',kbNoKey,cmCloseWindow2,hcNoContext,
+      NewItem('Close Window 3','',kbNoKey,cmCloseWindow3,hcNoContext,
+      Nil))))))),                         { Standard edit menu }
     NewSubMenu('~W~indow', 0, NewMenu(
     NewSubMenu('~W~indow', 0, NewMenu(
-      StdWindowMenuItems(Nil)), Nil))))));            { Standard window  menu }
+      StdWindowMenuItems(Nil)), Nil)))))));            { Standard window  menu }
 END;
 END;
 
 
 {--TTvDemo------------------------------------------------------------------}
 {--TTvDemo------------------------------------------------------------------}
@@ -140,21 +177,9 @@ BEGIN
    Desktop := New(PDeskTop, Init(R));
    Desktop := New(PDeskTop, Init(R));
 END;
 END;
 
 
-{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
-{                             MAIN PROGRAM START                            }
-{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
-VAR I: Integer; R: TRect; P: PGroup; B: PScrollBar;
-    List: PStrCollection; Lb: PListBox; MyApp: TTvDemo;
-    {$IFDEF OS_OS2} Message: QMSg; Event: TEvent; {$ENDIF}
+PROCEDURE TTvDemo.Window1;
+VAR R: TRect; P: PGroup;
 BEGIN
 BEGIN
-   (*SystemPalette := CreateRGBPalette(256);            { Create palette }
-   For I := 0 To 15 Do Begin
-     GetSystemRGBEntry(I, RGB);                       { Get palette entry }
-     AddToRGBPalette(RGB, SystemPalette);             { Add entry to palette }
-   End;*)
-
-   MyApp.Init;                                        { Initialize app }
-
    { Create a basic window with static text and radio }
    { Create a basic window with static text and radio }
    { buttons. The buttons should be orange and white  }
    { buttons. The buttons should be orange and white  }
    R.Assign(5, 1, 35, 16);                            { Assign area }
    R.Assign(5, 1, 35, 16);                            { Assign area }
@@ -162,6 +187,7 @@ BEGIN
    If (P <> Nil) Then Begin                           { Window valid }
    If (P <> Nil) Then Begin                           { Window valid }
      R.Assign(5, 5, 20, 7);                           { Assign area }
      R.Assign(5, 5, 20, 7);                           { Assign area }
      P^.Insert(New(PInputLine, Init(R, 30)));
      P^.Insert(New(PInputLine, Init(R, 30)));
+     R.Assign(5, 8, 20, 9);                           { Assign area }
      P^.Insert(New(PRadioButtons, Init(R,
      P^.Insert(New(PRadioButtons, Init(R,
        NewSItem('Test',
        NewSItem('Test',
        NewSITem('Item 2', Nil)))));                   { Red radio button }
        NewSITem('Item 2', Nil)))));                   { Red radio button }
@@ -170,7 +196,21 @@ BEGIN
        'SOME STATIC TEXT')));                         { Insert static text }
        'SOME STATIC TEXT')));                         { Insert static text }
    End;
    End;
    Desktop^.Insert(P);                                { Insert into desktop }
    Desktop^.Insert(P);                                { Insert into desktop }
+   P1:=P;
+END;
 
 
+PROCEDURE TTvDemo.CloseWindow(var P : PGroup);
+BEGIN
+  If Assigned(P) then
+    BEGIN
+      Desktop^.Delete(P);
+      Dispose(P,Done);
+      P:=Nil;
+    END;
+END;
+PROCEDURE TTvDemo.Window2;
+VAR R: TRect; P: PGroup;
+BEGIN
    { Create a basic window with check boxes. The  }
    { Create a basic window with check boxes. The  }
    { check boxes should be orange and white       }
    { check boxes should be orange and white       }
    R.Assign(15, 3, 45, 18);                           { Assign area }
    R.Assign(15, 3, 45, 18);                           { Assign area }
@@ -182,7 +222,13 @@ BEGIN
        NewSITem('Item 2', Nil)))));                   { Create check box }
        NewSITem('Item 2', Nil)))));                   { Create check box }
    End;
    End;
    Desktop^.Insert(P);                                { Insert into desktop }
    Desktop^.Insert(P);                                { Insert into desktop }
+   P2:=P;
+END;
 
 
+PROCEDURE TTvDemo.Window3;
+VAR R: TRect; P: PGroup; B: PScrollBar;
+    List: PStrCollection; Lb: PListBox;
+BEGIN
    { Create a basic dialog box. In it are buttons,  }
    { Create a basic dialog box. In it are buttons,  }
    { list boxes, scrollbars, inputlines, checkboxes }
    { list boxes, scrollbars, inputlines, checkboxes }
    R.Assign(32, 2, 77, 18);                           { Assign screen area }
    R.Assign(32, 2, 77, 18);                           { Assign screen area }
@@ -225,7 +271,25 @@ BEGIN
      P^.Insert(New(PButton, Init(R, '~O~k', 100, bfGrabFocus)));{ Create okay button }
      P^.Insert(New(PButton, Init(R, '~O~k', 100, bfGrabFocus)));{ Create okay button }
      R.Assign(30, 15, 40, 17);                        { Assign area }
      R.Assign(30, 15, 40, 17);                        { Assign area }
      Desktop^.Insert(P);                              { Insert dialog }
      Desktop^.Insert(P);                              { Insert dialog }
+     P3:=P;
    End;
    End;
+END;
+
+{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
+{                             MAIN PROGRAM START                            }
+{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
+VAR I: Integer; R: TRect; P: PGroup; MyApp: TTvDemo;
+    {$IFDEF OS_OS2} Message: QMSg; Event: TEvent; {$ENDIF}
+BEGIN
+   (*SystemPalette := CreateRGBPalette(256);            { Create palette }
+   For I := 0 To 15 Do Begin
+     GetSystemRGBEntry(I, RGB);                       { Get palette entry }
+     AddToRGBPalette(RGB, SystemPalette);             { Add entry to palette }
+   End;*)
+
+   MyApp.Init;                                        { Initialize app }
+
+
    MyApp.Run;                                         { Run the app }
    MyApp.Run;                                         { Run the app }
    {$IFDEF OS_OS2}
    {$IFDEF OS_OS2}
    while (MyApp.EndState = 0)
    while (MyApp.EndState = 0)
@@ -244,7 +308,10 @@ END.
 
 
 {
 {
  $Log$
  $Log$
- Revision 1.3  2001-05-04 08:42:55  pierre
+ Revision 1.4  2001-05-04 10:46:02  pierre
+  * various fixes  for win32 api mode
+
+ Revision 1.3  2001/05/04 08:42:55  pierre
   * some corrections for linux
   * some corrections for linux
 
 
  Revision 1.2  2000/08/24 12:00:22  marco
  Revision 1.2  2000/08/24 12:00:22  marco

+ 51 - 15
fvision/views.pas

@@ -791,6 +791,7 @@ FUNCTION CreateIdScrollBar (X, Y, Size, Id: Integer; Horz: Boolean): PScrollBar;
 {             NEW WIN/NT/OS2 VERSION SPECIFIC INTERFACE ROUTINES            }
 {             NEW WIN/NT/OS2 VERSION SPECIFIC INTERFACE ROUTINES            }
 {+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
 {+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
 
 
+{$IFNDEF NO_WINDOW}
 {$IFDEF OS_WINDOWS}                                   { WIN/NT CODE }
 {$IFDEF OS_WINDOWS}                                   { WIN/NT CODE }
 {-TvViewMsgHandler---------------------------------------------------
 {-TvViewMsgHandler---------------------------------------------------
 This is the default WIN/NT handler for TView objects. Descendant
 This is the default WIN/NT handler for TView objects. Descendant
@@ -815,6 +816,7 @@ interface.
 FUNCTION TvViewMsgHandler(Wnd: HWnd; Msg: ULong; Mp1, Mp2: MParam): MResult;
 FUNCTION TvViewMsgHandler(Wnd: HWnd; Msg: ULong; Mp1, Mp2: MParam): MResult;
 CDECL; EXPORT;
 CDECL; EXPORT;
 {$ENDIF}
 {$ENDIF}
+{$ENDIF not NO_WINDOW}
 
 
 {***************************************************************************}
 {***************************************************************************}
 {                        INITIALIZED PUBLIC VARIABLES                       }
 {                        INITIALIZED PUBLIC VARIABLES                       }
@@ -1038,6 +1040,7 @@ CONST
 {                          PRIVATE INTERNAL ROUTINES                        }
 {                          PRIVATE INTERNAL ROUTINES                        }
 {***************************************************************************}
 {***************************************************************************}
 
 
+{$IFNDEF NO_WINDOW}
 {$IFDEF OS_WINDOWS}                                   { WIN/NT CODE }
 {$IFDEF OS_WINDOWS}                                   { WIN/NT CODE }
 {---------------------------------------------------------------------------}
 {---------------------------------------------------------------------------}
 {  TvViewMsgHandler -> Platforms WIN/NT - Updated 09Aug99 LdB               }
 {  TvViewMsgHandler -> Platforms WIN/NT - Updated 09Aug99 LdB               }
@@ -1492,6 +1495,7 @@ BEGIN
      Msg, Mp1, Mp2);                                  { Call default handler }
      Msg, Mp1, Mp2);                                  { Call default handler }
 END;
 END;
 {$ENDIF}
 {$ENDIF}
+{$ENDIF not NO_WINDOW}
 
 
 {***************************************************************************}
 {***************************************************************************}
 {                              OBJECT METHODS                               }
 {                              OBJECT METHODS                               }
@@ -1778,9 +1782,9 @@ BEGIN
      I := Pos('~', S);                                { Check for tilde }
      I := Pos('~', S);                                { Check for tilde }
       If (I <> 0) Then System.Delete(S, I, 1);        { Remove the tilde }
       If (I <> 0) Then System.Delete(S, I, 1);        { Remove the tilde }
    Until (I = 0);                                     { Remove all tildes }
    Until (I = 0);                                     { Remove all tildes }
-   {$IFDEF OS_DOS}                                    { DOS/DPMI CODE }
+   {$IFDEF NO_WINDOW}                                 { DOS/DPMI CODE }
      TextWidth := Length(S) * SysFontWidth;           { Calc text length }
      TextWidth := Length(S) * SysFontWidth;           { Calc text length }
-   {$ENDIF}
+   {$ELSE not NO_WINDOW}
    {$IFDEF OS_WINDOWS}                                { WIN/NT CODE }
    {$IFDEF OS_WINDOWS}                                { WIN/NT CODE }
      ODc := Dc;                                       { Hold device context }
      ODc := Dc;                                       { Hold device context }
      If (Dc = 0) Then Begin                           { No context set }
      If (Dc = 0) Then Begin                           { No context set }
@@ -1832,6 +1836,7 @@ BEGIN
      If (OPs = 0) Then WinReleasePS(Ps);              { Release pres space }
      If (OPs = 0) Then WinReleasePS(Ps);              { Release pres space }
      Ps := OPs;                                       { Original pres space }
      Ps := OPs;                                       { Original pres space }
    {$ENDIF}
    {$ENDIF}
+   {$ENDIF not NO_WINDOW}
 END;
 END;
 
 
 {--TView--------------------------------------------------------------------}
 {--TView--------------------------------------------------------------------}
@@ -1938,9 +1943,9 @@ BEGIN
      GetViewSettings(ViewPort, TextModeGFV);          { Get set viewport }
      GetViewSettings(ViewPort, TextModeGFV);          { Get set viewport }
      If OverlapsArea(ViewPort.X1, ViewPort.Y1,
      If OverlapsArea(ViewPort.X1, ViewPort.Y1,
      ViewPort.X2, ViewPort.Y2) Then Begin             { Must be in area }
      ViewPort.X2, ViewPort.Y2) Then Begin             { Must be in area }
-       {$IFDEF OS_DOS}                                { DOS/DPMI CODE }
+       {$IFDEF NO_WINDOW}                                { DOS/DPMI CODE }
          HideMouseCursor;                             { Hide mouse cursor }
          HideMouseCursor;                             { Hide mouse cursor }
-       {$ENDIF}
+       {$ELSE not NO_WINDOW}
        {$IFDEF OS_WINDOWS}                            { WIN/NT CODE }
        {$IFDEF OS_WINDOWS}                            { WIN/NT CODE }
        If (HWindow <> 0) Then Begin                   { Valid window }
        If (HWindow <> 0) Then Begin                   { Valid window }
          ODc := Dc;                                   { Hold device context }
          ODc := Dc;                                   { Hold device context }
@@ -1951,6 +1956,7 @@ BEGIN
          OPs := Ps;                                   { Hold paint struct }
          OPs := Ps;                                   { Hold paint struct }
          If (Ps = 0) Then Ps := WinGetPS(Client);     { Create paint struct }
          If (Ps = 0) Then Ps := WinGetPS(Client);     { Create paint struct }
        {$ENDIF}
        {$ENDIF}
+       {$ENDIF not NO_WINDOW}
          If (DrawMask = 0) OR (DrawMask = vdNoChild)  { No special masks set }
          If (DrawMask = 0) OR (DrawMask = vdNoChild)  { No special masks set }
          Then Begin                                   { Treat as a full redraw }
          Then Begin                                   { Treat as a full redraw }
            DrawBackGround;                            { Draw background }
            DrawBackGround;                            { Draw background }
@@ -1975,9 +1981,9 @@ BEGIN
            If (DrawMask AND vdBorder <> 0) Then       { Check border mask }
            If (DrawMask AND vdBorder <> 0) Then       { Check border mask }
              DrawBorder;                              { Draw border }
              DrawBorder;                              { Draw border }
          End;
          End;
-       {$IFDEF OS_DOS}                                { DOS/DPMI CODE }
+       {$IFDEF NO_WINDOW}                                { DOS/DPMI CODE }
          ShowMouseCursor;                             { Show mouse cursor }
          ShowMouseCursor;                             { Show mouse cursor }
-       {$ENDIF}
+       {$ELSE not NO_WINDOW}
        {$IFDEF OS_WINDOWS}                            { WIN/NT CODE }
        {$IFDEF OS_WINDOWS}                            { WIN/NT CODE }
          If (ODc = 0) Then ReleaseDc(HWindow, Dc);    { Release context }
          If (ODc = 0) Then ReleaseDc(HWindow, Dc);    { Release context }
          Dc := ODc;                                   { Reset held context }
          Dc := ODc;                                   { Reset held context }
@@ -1988,6 +1994,7 @@ BEGIN
          Ps := OPs;                                   { Reset held struct }
          Ps := OPs;                                   { Reset held struct }
        End;
        End;
        {$ENDIF}
        {$ENDIF}
+       {$ENDIF not NO_WINDOW}
      End;
      End;
      ReleaseViewLimits;                               { Release the limits }
      ReleaseViewLimits;                               { Release the limits }
    End;
    End;
@@ -2001,6 +2008,7 @@ PROCEDURE TView.MakeFirst;
 BEGIN
 BEGIN
    If (Owner <> Nil) Then Begin                       { Must have owner }
    If (Owner <> Nil) Then Begin                       { Must have owner }
      PutInFrontOf(Owner^.First);                      { Float to the top }
      PutInFrontOf(Owner^.First);                      { Float to the top }
+    {$IFNDEF NO_WINDOW}
      {$IFDEF OS_WINDOWS}                              { WIN/NT CODE }
      {$IFDEF OS_WINDOWS}                              { WIN/NT CODE }
      If (HWindow <> 0) Then                           { Valid window }
      If (HWindow <> 0) Then                           { Valid window }
        SetWindowPos(HWindow, HWND_TOP, 0, 0, 0, 0,
        SetWindowPos(HWindow, HWND_TOP, 0, 0, 0, 0,
@@ -2011,6 +2019,7 @@ BEGIN
        WinSetWindowPos(HWindow, HWND_TOP, 0, 0, 0, 0,
        WinSetWindowPos(HWindow, HWND_TOP, 0, 0, 0, 0,
          swp_ZOrder);                                 { Bring window to top }
          swp_ZOrder);                                 { Bring window to top }
      {$ENDIF}
      {$ENDIF}
+     {$ENDIF not NO_WINDOW}
    End;
    End;
 END;
 END;
 
 
@@ -2403,12 +2412,12 @@ BEGIN
      If (Owner <> Nil) AND                            { valid owner }
      If (Owner <> Nil) AND                            { valid owner }
      (Owner^.State AND sfExposed <> 0)                { If owner exposed }
      (Owner^.State AND sfExposed <> 0)                { If owner exposed }
        Then SetState(sfExposed, Enable);              { Expose this view }
        Then SetState(sfExposed, Enable);              { Expose this view }
-     {$IFDEF OS_DOS}                                  { DOS/DPMI CODE }
+     {$IFDEF NO_WINDOW}                                  { DOS/DPMI CODE }
      If Enable Then DrawView Else                     { Draw the view }
      If Enable Then DrawView Else                     { Draw the view }
        If (Owner <> Nil) Then Owner^.ReDrawArea(      { Owner valid }
        If (Owner <> Nil) Then Owner^.ReDrawArea(      { Owner valid }
          RawOrigin.X, RawOrigin.Y, RawOrigin.X +
          RawOrigin.X, RawOrigin.Y, RawOrigin.X +
          RawSize.X, RawOrigin.Y + RawSize.Y);         { Owner redraws area }
          RawSize.X, RawOrigin.Y + RawSize.Y);         { Owner redraws area }
-     {$ENDIF}
+     {$ELSE not NO_WINDOW}
      {$IFDEF OS_WINDOWS}                              { WIN/NT CODE }
      {$IFDEF OS_WINDOWS}                              { WIN/NT CODE }
      If (HWindow <> 0) Then Begin                     { Window handle valid }
      If (HWindow <> 0) Then Begin                     { Window handle valid }
        If Enable Then ShowWindow(HWindow, sw_Show)    { Show the window }
        If Enable Then ShowWindow(HWindow, sw_Show)    { Show the window }
@@ -2423,6 +2432,7 @@ BEGIN
          swp_Hide);                                   { Hide the window }
          swp_Hide);                                   { Hide the window }
      End;
      End;
      {$ENDIF}
      {$ENDIF}
+     {$ENDIF not NO_WINDOW}
      If (Options AND ofSelectable <> 0) Then          { View is selectable }
      If (Options AND ofSelectable <> 0) Then          { View is selectable }
        If (Owner <> Nil) Then Owner^.ResetCurrent;    { Reset selected }
        If (Owner <> Nil) Then Owner^.ResetCurrent;    { Reset selected }
    End;
    End;
@@ -2432,6 +2442,7 @@ BEGIN
          Else Command := cmReleasedFocus;             { View losing focus }
          Else Command := cmReleasedFocus;             { View losing focus }
        Message(Owner, evBroadcast, Command, @Self);   { Send out message }
        Message(Owner, evBroadcast, Command, @Self);   { Send out message }
      End;
      End;
+     {$IFNDEF NO_WINDOW}
      {$IFDEF OS_WINDOWS}                              { WIN/NT CODE }
      {$IFDEF OS_WINDOWS}                              { WIN/NT CODE }
      If (HWindow <> 0) Then                           { Window handle valid }
      If (HWindow <> 0) Then                           { Window handle valid }
        If Enable Then SetFocus(HWindow);              { Focus the window }
        If Enable Then SetFocus(HWindow);              { Focus the window }
@@ -2441,6 +2452,7 @@ BEGIN
        If Enable Then WinSetFocus(HWND_DESKTOP,
        If Enable Then WinSetFocus(HWND_DESKTOP,
          HWindow);                                    { Focus the window }
          HWindow);                                    { Focus the window }
      {$ENDIF}
      {$ENDIF}
+     {$ENDIF not NO_WINDOW}
      If (GOptions AND goDrawFocus <> 0) Then Begin    { Draw focus view }
      If (GOptions AND goDrawFocus <> 0) Then Begin    { Draw focus view }
        SetDrawMask(vdFocus);                          { Set focus draw mask }
        SetDrawMask(vdFocus);                          { Set focus draw mask }
        DrawView;                                      { Redraw focus change }
        DrawView;                                      { Redraw focus change }
@@ -2452,6 +2464,7 @@ BEGIN
      DrawView;                                        { Redraw the cursor }
      DrawView;                                        { Redraw the cursor }
    End;
    End;
    If (AState AND sfDisabled <> 0) Then Begin         { Disbale change }
    If (AState AND sfDisabled <> 0) Then Begin         { Disbale change }
+     {$IFNDEF NO_WINDOW}
      {$IFDEF OS_WINDOWS}                              { WIN/NT CODE }
      {$IFDEF OS_WINDOWS}                              { WIN/NT CODE }
      If (HWindow <> 0) Then                           { Window handle valid }
      If (HWindow <> 0) Then                           { Window handle valid }
        If Enable Then EnableWindow(HWindow, False)    { Disable the window }
        If Enable Then EnableWindow(HWindow, False)    { Disable the window }
@@ -2462,6 +2475,7 @@ BEGIN
        If Enable Then WinEnableWindow(HWindow,False)  { Disable the window }
        If Enable Then WinEnableWindow(HWindow,False)  { Disable the window }
          Else WinEnableWindow(HWindow, True);         { Enable the window }
          Else WinEnableWindow(HWindow, True);         { Enable the window }
      {$ENDIF}
      {$ENDIF}
+     {$ENDIF not NO_WINDOW}
    End;
    End;
    If (AState AND sfShadow <> 0) Then Begin End;      { Change shadow state }
    If (AState AND sfShadow <> 0) Then Begin End;      { Change shadow state }
 END;
 END;
@@ -2530,7 +2544,7 @@ END;
 {  Locate -> Platforms DOS/DPMI/WIN/NT/OS2 - Updated 24Sep99 LdB            }
 {  Locate -> Platforms DOS/DPMI/WIN/NT/OS2 - Updated 24Sep99 LdB            }
 {---------------------------------------------------------------------------}
 {---------------------------------------------------------------------------}
 PROCEDURE TView.Locate (Var Bounds: TRect);
 PROCEDURE TView.Locate (Var Bounds: TRect);
-VAR {$IFDEF OS_DOS} X1, Y1, X2, Y2: Integer; {$ENDIF}
+VAR {$IFDEF NO_WINDOW} X1, Y1, X2, Y2: Integer; {$ENDIF}
     Min, Max: TPoint; R: TRect;
     Min, Max: TPoint; R: TRect;
 
 
    FUNCTION Range(Val, Min, Max: Integer): Integer;
    FUNCTION Range(Val, Min, Max: Integer): Integer;
@@ -2541,7 +2555,7 @@ VAR {$IFDEF OS_DOS} X1, Y1, X2, Y2: Integer; {$ENDIF}
    END;
    END;
 
 
 BEGIN
 BEGIN
-   {$IFDEF OS_DOS}                                    { DOS/DPMI CODE }
+   {$IFDEF NO_WINDOW}                                 { DOS/DPMI CODE }
    X1 := RawOrigin.X;                                 { Current x origin }
    X1 := RawOrigin.X;                                 { Current x origin }
    Y1 := RawOrigin.Y;                                 { Current y origin }
    Y1 := RawOrigin.Y;                                 { Current y origin }
    X2 := RawOrigin.X + RawSize.X;                     { Current x size }
    X2 := RawOrigin.X + RawSize.X;                     { Current x size }
@@ -2555,12 +2569,12 @@ BEGIN
    GetBounds(R);                                      { Current bounds }
    GetBounds(R);                                      { Current bounds }
    If NOT Bounds.Equals(R) Then Begin                 { Size has changed }
    If NOT Bounds.Equals(R) Then Begin                 { Size has changed }
      ChangeBounds(Bounds);                            { Change bounds }
      ChangeBounds(Bounds);                            { Change bounds }
-     {$IFDEF OS_DOS}                                  { DOS/DPMI CODE }
+     {$IFDEF NO_WINDOW}                               { DOS/DPMI CODE }
      If (State AND sfVisible <> 0) AND                { View is visible }
      If (State AND sfVisible <> 0) AND                { View is visible }
      (State AND sfExposed <> 0) AND (Owner <> Nil)    { Check view exposed }
      (State AND sfExposed <> 0) AND (Owner <> Nil)    { Check view exposed }
        Then Owner^.ReDrawArea(X1, Y1, X2, Y2);        { Owner redraw }
        Then Owner^.ReDrawArea(X1, Y1, X2, Y2);        { Owner redraw }
      DrawView;                                        { Redraw the view }
      DrawView;                                        { Redraw the view }
-     {$ENDIF}
+     {$ELSE not NO_WINDOW}
      {$IFDEF OS_WINDOWS}                              { WIN/NT CODE }
      {$IFDEF OS_WINDOWS}                              { WIN/NT CODE }
      If (HWindow <> 0) Then Begin                     { Valid window handle }
      If (HWindow <> 0) Then Begin                     { Valid window handle }
        If (Owner <> Nil) AND (Owner^.HWindow <> 0)    { Valid owner }
        If (Owner <> Nil) AND (Owner^.HWindow <> 0)    { Valid owner }
@@ -2584,6 +2598,7 @@ BEGIN
          RawSize.X, RawSize.Y, swp_Size OR swp_Move); { Move window raw }
          RawSize.X, RawSize.Y, swp_Size OR swp_Move); { Move window raw }
      End;
      End;
      {$ENDIF}
      {$ENDIF}
+     {$ENDIF not NO_WINDOW}
    End;
    End;
 END;
 END;
 
 
@@ -4078,6 +4093,7 @@ BEGIN
          ClearPos(GetPos);                            { Clear old position }
          ClearPos(GetPos);                            { Clear old position }
        Min := AMin;                                   { Set new minimum }
        Min := AMin;                                   { Set new minimum }
        Max := AMax;                                   { Set new maximum }
        Max := AMax;                                   { Set new maximum }
+       {$IFNDEF NO_WINDOW}
        {$IFDEF OS_WINDOWS}                            { WIN/NT CODE }
        {$IFDEF OS_WINDOWS}                            { WIN/NT CODE }
        If (GOptions AND goNativeClass <> 0) AND       { In native class mode }
        If (GOptions AND goNativeClass <> 0) AND       { In native class mode }
        (HWindow <> 0) Then
        (HWindow <> 0) Then
@@ -4092,6 +4108,7 @@ BEGIN
            (LongInt(Max-1) SHL 16) OR Min);           { Post the message }
            (LongInt(Max-1) SHL 16) OR Min);           { Post the message }
        End;
        End;
        {$ENDIF}
        {$ENDIF}
+       {$ENDIF not NO_WINDOW}
        { This was removed as found not needed but if you
        { This was removed as found not needed but if you
        change limits but value unchanged scrollbar is not redrawm..LdB }
        change limits but value unchanged scrollbar is not redrawm..LdB }
        {If (Value = AValue) AND (State and sfVisible <> 0)
        {If (Value = AValue) AND (State and sfVisible <> 0)
@@ -4106,6 +4123,7 @@ BEGIN
          SetDrawMask(vdInner);                        { Set draw masks }
          SetDrawMask(vdInner);                        { Set draw masks }
          DrawView;                                    { Redraw changed }
          DrawView;                                    { Redraw changed }
        End;
        End;
+       {$IFNDEF NO_WINDOW}
        {$IFDEF OS_WINDOWS}                            { WIN/NT CODE }
        {$IFDEF OS_WINDOWS}                            { WIN/NT CODE }
        If (GOptions AND goNativeClass <> 0) AND       { In native class mode }
        If (GOptions AND goNativeClass <> 0) AND       { In native class mode }
        (HWindow <> 0) Then                            { Valid handle }
        (HWindow <> 0) Then                            { Valid handle }
@@ -4117,6 +4135,7 @@ BEGIN
          WinSendMsg(HWindow, sbm_SetPos, Value, 0);   { Dispatch the message }
          WinSendMsg(HWindow, sbm_SetPos, Value, 0);   { Dispatch the message }
        End;
        End;
        {$ENDIF}
        {$ENDIF}
+       {$ENDIF not USE_API}
        If (State AND sfVisible <> 0) Then ScrollDraw; { Send update message }
        If (State AND sfVisible <> 0) Then ScrollDraw; { Send update message }
      End;
      End;
    End;
    End;
@@ -4643,6 +4662,7 @@ BEGIN
    ColWidth := Size.X DIV NumCols + 1;                { Calc column width }
    ColWidth := Size.X DIV NumCols + 1;                { Calc column width }
    If (HScrollBar = Nil) Then Indent := 0 Else        { Set indent to zero }
    If (HScrollBar = Nil) Then Indent := 0 Else        { Set indent to zero }
      Indent := HScrollBar^.Value;                     { Fetch any indent }
      Indent := HScrollBar^.Value;                     { Fetch any indent }
+   {$IFNDEF USE_API}
    {$IFDEF OS_WINDOWS}                                { WIN/NT CODE }
    {$IFDEF OS_WINDOWS}                                { WIN/NT CODE }
    If (GOptions AND goNativeClass <> 0) Then Begin    { Native class mode }
    If (GOptions AND goNativeClass <> 0) Then Begin    { Native class mode }
      If (Range <> SendMessage(HWindow, lb_GetCount,
      If (Range <> SendMessage(HWindow, lb_GetCount,
@@ -4675,6 +4695,7 @@ BEGIN
      Exit;                                            { Native mode is done }
      Exit;                                            { Native mode is done }
     End;
     End;
    {$ENDIF}
    {$ENDIF}
+   {$ENDIF not USE_API}
    Inherited DrawBackGround;                          { Call ancestor }
    Inherited DrawBackGround;                          { Call ancestor }
    Color := GetColor(2);                              { Normal colour }
    Color := GetColor(2);                              { Normal colour }
    For I := 0 To Size.Y - 1 Do Begin                  { For each line }
    For I := 0 To Size.Y - 1 Do Begin                  { For each line }
@@ -4766,6 +4787,7 @@ BEGIN
    Focused := Item;                                   { Set focus to item }
    Focused := Item;                                   { Set focus to item }
    If (VScrollBar <> Nil) Then
    If (VScrollBar <> Nil) Then
      VScrollBar^.SetValue(Item);                      { Scrollbar to value }
      VScrollBar^.SetValue(Item);                      { Scrollbar to value }
+   {$IFNDEF NO_WINDOW}
    {$IFDEF OS_WINDOWS}                                { WIN/NT CODE }
    {$IFDEF OS_WINDOWS}                                { WIN/NT CODE }
    If (GOptions AND goNativeClass <> 0) Then Begin    { Native class mode }
    If (GOptions AND goNativeClass <> 0) Then Begin    { Native class mode }
      If (HWindow <> 0) Then Begin                     { Check window valid }
      If (HWindow <> 0) Then Begin                     { Check window valid }
@@ -4777,6 +4799,7 @@ BEGIN
      Exit;                                            { Native mode done }
      Exit;                                            { Native mode done }
    End;
    End;
    {$ENDIF}
    {$ENDIF}
+   {$ENDIF not NO_WINDOW}
    If (Item < TopItem) Then                           { Item above top item }
    If (Item < TopItem) Then                           { Item above top item }
      If (NumCols = 1) Then TopItem := Item            { Set top item }
      If (NumCols = 1) Then TopItem := Item            { Set top item }
        Else TopItem := Item - Item MOD Size.Y         { Set top item }
        Else TopItem := Item - Item MOD Size.Y         { Set top item }
@@ -4792,11 +4815,13 @@ END;
 PROCEDURE TListViewer.SetTopItem (Item: Integer);
 PROCEDURE TListViewer.SetTopItem (Item: Integer);
 BEGIN
 BEGIN
    TopItem := Item;                                   { Set the top item }
    TopItem := Item;                                   { Set the top item }
+   {$IFNDEF NO_WINDOW}
    {$IFDEF OS_WINDOWS}                                { WIN/NT CODE }
    {$IFDEF OS_WINDOWS}                                { WIN/NT CODE }
    If (GOptions AND goNativeClass <> 0) AND           { Native class mode }
    If (GOptions AND goNativeClass <> 0) AND           { Native class mode }
    (HWindow <> 0) Then                                { Window valid }
    (HWindow <> 0) Then                                { Window valid }
      SendMessage(HWindow, lb_SetTopIndex, Item, 0);   { Synchronize }
      SendMessage(HWindow, lb_SetTopIndex, Item, 0);   { Synchronize }
    {$ENDIF}
    {$ENDIF}
+   {$ENDIF not NO_WINDOW}
 END;
 END;
 
 
 {--TListViewer--------------------------------------------------------------}
 {--TListViewer--------------------------------------------------------------}
@@ -5449,11 +5474,11 @@ END;
 {  GraphLine -> Platforms DOS/DPMI/WIN/NT/OS2 - Updated 22Sep99 LdB         }
 {  GraphLine -> Platforms DOS/DPMI/WIN/NT/OS2 - Updated 22Sep99 LdB         }
 {---------------------------------------------------------------------------}
 {---------------------------------------------------------------------------}
 PROCEDURE TView.GraphLine (X1, Y1, X2, Y2: Integer; Colour: Byte);
 PROCEDURE TView.GraphLine (X1, Y1, X2, Y2: Integer; Colour: Byte);
-{$IFDEF OS_DOS} VAR ViewPort: ViewPortType; {$ENDIF}  { DOS/DPMI VARIABLES }
+{$IFDEF NO_WINDOW} VAR ViewPort: ViewPortType; {$ENDIF}  { DOS/DPMI VARIABLES }
     {$IFDEF OS_WINDOWS}VAR I: Word; ODc: hDc; {$ENDIF}   { WIN/NT VARIABLES }
     {$IFDEF OS_WINDOWS}VAR I: Word; ODc: hDc; {$ENDIF}   { WIN/NT VARIABLES }
     {$IFDEF OS_OS2}VAR I: LongInt; Lp: PointL; OPs: HPs; {$ENDIF}{ OS2 VARIABLES }
     {$IFDEF OS_OS2}VAR I: LongInt; Lp: PointL; OPs: HPs; {$ENDIF}{ OS2 VARIABLES }
 BEGIN
 BEGIN
-   {$IFDEF OS_DOS}                                    { DOS/DPMI CODE }
+   {$IFDEF OS_DOS}                                 { DOS/DPMI CODE }
    GetViewSettings(ViewPort, TextModeGFV);            { Get viewport settings }
    GetViewSettings(ViewPort, TextModeGFV);            { Get viewport settings }
    If (TextModeGFV <> TRUE) Then Begin
    If (TextModeGFV <> TRUE) Then Begin
      SetColor(Colour);                                { Set line colour }
      SetColor(Colour);                                { Set line colour }
@@ -5463,6 +5488,7 @@ BEGIN
    End Else Begin                                     { LEON???? }
    End Else Begin                                     { LEON???? }
    End;
    End;
    {$ENDIF}
    {$ENDIF}
+   {$IFNDEF NO_WINDOW}
    {$IFDEF OS_WINDOWS}                                { WIN/NT CODE }
    {$IFDEF OS_WINDOWS}                                { WIN/NT CODE }
    If (HWindow <> 0) Then Begin                       { Valid window }
    If (HWindow <> 0) Then Begin                       { Valid window }
      X1 := X1 - FrameSize;                            { Adjust X1 for frame }
      X1 := X1 - FrameSize;                            { Adjust X1 for frame }
@@ -5519,6 +5545,7 @@ BEGIN
      Ps := OPs;                                       { Reset held struct }
      Ps := OPs;                                       { Reset held struct }
    End;
    End;
    {$ENDIF}
    {$ENDIF}
+   {$ENDIF not NO_WINDOW}
 END;
 END;
 
 
 PROCEDURE TView.GraphRectangle (X1, Y1, X2, Y2: Integer; Colour: Byte);
 PROCEDURE TView.GraphRectangle (X1, Y1, X2, Y2: Integer; Colour: Byte);
@@ -5536,6 +5563,7 @@ BEGIN
    End Else Begin                                     { LEON???? }
    End Else Begin                                     { LEON???? }
    End;
    End;
    {$ENDIF}
    {$ENDIF}
+   {$IFNDEF NO_WINDOW}
    {$IFDEF OS_WINDOWS}                                { WIN/NT CODE }
    {$IFDEF OS_WINDOWS}                                { WIN/NT CODE }
    If (HWindow <> 0) Then Begin                       { Valid window }
    If (HWindow <> 0) Then Begin                       { Valid window }
      X1 := X1 - FrameSize;
      X1 := X1 - FrameSize;
@@ -5594,6 +5622,7 @@ BEGIN
      Ps := OPs;                                       { Reset held struct }
      Ps := OPs;                                       { Reset held struct }
    End;
    End;
    {$ENDIF}
    {$ENDIF}
+   {$ENDIF not NO_WINDOW}
 END;
 END;
 
 
 {--TView--------------------------------------------------------------------}
 {--TView--------------------------------------------------------------------}
@@ -5686,6 +5715,7 @@ Colour: Byte);
 CONST RadConv  = 57.2957795130823229;                 { Degrees per radian }
 CONST RadConv  = 57.2957795130823229;                 { Degrees per radian }
 VAR X1, Y1, X2, Y2, X3, Y3: Integer; {$IFDEF OS_WINDOWS} ODc: hDc; {$ENDIF}
 VAR X1, Y1, X2, Y2, X3, Y3: Integer; {$IFDEF OS_WINDOWS} ODc: hDc; {$ENDIF}
 BEGIN
 BEGIN
+   {$IFNDEF NO_WINDOW}
    {$IFDEF OS_WINDOWS}
    {$IFDEF OS_WINDOWS}
    Xc := Xc - FrameSize;
    Xc := Xc - FrameSize;
    Yc := Yc - CaptSize;
    Yc := Yc - CaptSize;
@@ -5721,6 +5751,7 @@ BEGIN
      Dc := ODc;                                       { Reset held context }
      Dc := ODc;                                       { Reset held context }
    End;
    End;
    {$ENDIF}
    {$ENDIF}
+   {$ENDIF not NO_WINDOW}
 END;
 END;
 
 
 PROCEDURE TView.FilletArc (Xc, Yc: Integer; Sa, Ea: Real; XRad, YRad, Ht: Integer;
 PROCEDURE TView.FilletArc (Xc, Yc: Integer; Sa, Ea: Real; XRad, YRad, Ht: Integer;
@@ -5728,6 +5759,7 @@ Colour: Byte);
 CONST RadConv  = 57.2957795130823229;                 { Degrees per radian }
 CONST RadConv  = 57.2957795130823229;                 { Degrees per radian }
 {$IFDEF OS_WINDOWS} VAR X1, Y1, X2, Y2, X3, Y3, X4, Y4: Integer; ODc: hDc; {$ENDIF}
 {$IFDEF OS_WINDOWS} VAR X1, Y1, X2, Y2, X3, Y3, X4, Y4: Integer; ODc: hDc; {$ENDIF}
 BEGIN
 BEGIN
+   {$IFNDEF NO_WINDOW}
    {$IFDEF OS_WINDOWS}
    {$IFDEF OS_WINDOWS}
    If (HWindow <> 0) Then Begin                       { Valid window }
    If (HWindow <> 0) Then Begin                       { Valid window }
      Xc := Xc - FrameSize;
      Xc := Xc - FrameSize;
@@ -5772,6 +5804,7 @@ BEGIN
      Dc := ODc;                                       { Reset held context }
      Dc := ODc;                                       { Reset held context }
    End;
    End;
    {$ENDIF}
    {$ENDIF}
+   {$ENDIF not NO_WINDOW}
 END;
 END;
 
 
 {--TView--------------------------------------------------------------------}
 {--TView--------------------------------------------------------------------}
@@ -6798,7 +6831,10 @@ END.
 
 
 {
 {
  $Log$
  $Log$
- Revision 1.6  2001-05-04 08:42:56  pierre
+ Revision 1.7  2001-05-04 10:46:03  pierre
+  * various fixes  for win32 api mode
+
+ Revision 1.6  2001/05/04 08:42:56  pierre
   * some corrections for linux
   * some corrections for linux
 
 
  Revision 1.5  2001/05/03 22:32:52  pierre
  Revision 1.5  2001/05/03 22:32:52  pierre