mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-13 05:40:20 +02:00
* removed NO_WINDOW cond, added GRAPH_API
This commit is contained in:
parent
44cca39f9f
commit
d372f873aa
113
fv/app.pas
113
fv/app.pas
@ -280,12 +280,6 @@ TYPE
|
|||||||
PROCEDURE PutEvent (Var Event: TEvent); Virtual;
|
PROCEDURE PutEvent (Var Event: TEvent); Virtual;
|
||||||
PROCEDURE GetEvent (Var Event: TEvent); Virtual;
|
PROCEDURE GetEvent (Var Event: TEvent); Virtual;
|
||||||
PROCEDURE HandleEvent (Var Event: TEvent); Virtual;
|
PROCEDURE HandleEvent (Var Event: TEvent); Virtual;
|
||||||
{$IFNDEF NO_WINDOW} { WIN/NT/OS2 CODE }
|
|
||||||
FUNCTION GetClassName: String; Virtual;
|
|
||||||
FUNCTION GetClassText: String; Virtual;
|
|
||||||
FUNCTION GetClassAttr: LongInt; Virtual;
|
|
||||||
FUNCTION GetMsgHandler: Pointer; Virtual;
|
|
||||||
{$ENDIF}
|
|
||||||
END;
|
END;
|
||||||
PProgram = ^TProgram;
|
PProgram = ^TProgram;
|
||||||
|
|
||||||
@ -628,15 +622,7 @@ END;
|
|||||||
{ InitBackGround -> Platforms DOS/DPMI/WIN/NT/OS2 - Updated 12Sep97 LdB }
|
{ InitBackGround -> Platforms DOS/DPMI/WIN/NT/OS2 - Updated 12Sep97 LdB }
|
||||||
{---------------------------------------------------------------------------}
|
{---------------------------------------------------------------------------}
|
||||||
PROCEDURE TDesktop.InitBackground;
|
PROCEDURE TDesktop.InitBackground;
|
||||||
{$IFNDEF OS_WINDOWS}
|
|
||||||
CONST Ch: Char = #176;
|
CONST Ch: Char = #176;
|
||||||
{$ELSE}
|
|
||||||
{$IFDEF NO_WINDOW}
|
|
||||||
CONST Ch: Char = #176;
|
|
||||||
{$ELSE not NO_WINDOW}
|
|
||||||
CONST Ch: Char = #167;
|
|
||||||
{$ENDIF}
|
|
||||||
{$ENDIF}
|
|
||||||
VAR R: TRect;
|
VAR R: TRect;
|
||||||
BEGIN
|
BEGIN
|
||||||
GetExtent(R); { Get desktop extents }
|
GetExtent(R); { Get desktop extents }
|
||||||
@ -796,7 +782,7 @@ CONST TvProgramClassName = 'TVPROGRAM'+#0; { TV program class }
|
|||||||
{ Init -> Platforms DOS/DPMI/WIN/NT/OS2 - Updated 22Oct99 LdB }
|
{ Init -> Platforms DOS/DPMI/WIN/NT/OS2 - Updated 22Oct99 LdB }
|
||||||
{---------------------------------------------------------------------------}
|
{---------------------------------------------------------------------------}
|
||||||
CONSTRUCTOR TProgram.Init;
|
CONSTRUCTOR TProgram.Init;
|
||||||
VAR I: Integer; R: TRect; {$IFDEF OS_WINDOWS} ODc: HDc; {$ENDIF}
|
VAR I: Integer; R: TRect;
|
||||||
BEGIN
|
BEGIN
|
||||||
Application := @Self; { Set application ptr }
|
Application := @Self; { Set application ptr }
|
||||||
InitScreen; { Initialize screen }
|
InitScreen; { Initialize screen }
|
||||||
@ -806,29 +792,10 @@ BEGIN
|
|||||||
State := sfVisible + sfSelected + sfFocused +
|
State := sfVisible + sfSelected + sfFocused +
|
||||||
sfModal + sfExposed; { Deafult states }
|
sfModal + sfExposed; { Deafult states }
|
||||||
Options := 0; { No options set }
|
Options := 0; { No options set }
|
||||||
{$IFNDEF NO_WINDOW}
|
|
||||||
{$IFDEF OS_WINDOWS} { WIN/NT CODE }
|
|
||||||
ODc := GetDc(GetDeskTopWindow); { Get desktop context }
|
|
||||||
For I := 0 To 15 Do Begin
|
|
||||||
ColBrush[I] := CreateSolidBrush(GetNearestColor(
|
|
||||||
ODc, ColRef[I])); { Create brushes }
|
|
||||||
ColPen[I] := CreatePen(ps_Solid, 1,
|
|
||||||
GetNearestColor(ODc, ColRef[I])); { Create pens }
|
|
||||||
End;
|
|
||||||
ReleaseDC(GetDeskTopWindow, ODc); { Release context }
|
|
||||||
CreateWindowNow(sw_ShowNormal); { Create app window }
|
|
||||||
{$ENDIF}
|
|
||||||
{$IFDEF OS_OS2}
|
|
||||||
CreateWindowNow(swp_Show); { Create app window }
|
|
||||||
{$ENDIF}
|
|
||||||
{$ENDIF}
|
|
||||||
{$IFNDEF NO_WINDOW} { WIN/NT/OS2 CODE }
|
|
||||||
AppWindow := HWindow; { Set app window handle }
|
|
||||||
Size.X := ScreenWidth; { Set x size value }
|
Size.X := ScreenWidth; { Set x size value }
|
||||||
Size.Y := ScreenHeight; { Set y size value }
|
Size.Y := ScreenHeight; { Set y size value }
|
||||||
RawSize.X := ScreenWidth * SysFontWidth; { Set rawsize x }
|
RawSize.X := ScreenWidth * SysFontWidth; { Set rawsize x }
|
||||||
RawSize.Y := ScreenHeight * SysFontHeight - 1; { Set rawsize y }
|
RawSize.Y := ScreenHeight * SysFontHeight - 1; { Set rawsize y }
|
||||||
{$ENDIF}
|
|
||||||
InitStatusLine; { Init status line }
|
InitStatusLine; { Init status line }
|
||||||
If (StatusLine <> Nil) Then Insert(StatusLine); { Insert status line }
|
If (StatusLine <> Nil) Then Insert(StatusLine); { Insert status line }
|
||||||
InitMenuBar; { Create a bar menu }
|
InitMenuBar; { Create a bar menu }
|
||||||
@ -849,13 +816,6 @@ BEGIN
|
|||||||
Dispose(StatusLine, Done); { Destroy status line }
|
Dispose(StatusLine, Done); { Destroy status line }
|
||||||
Application := Nil; { Clear application }
|
Application := Nil; { Clear application }
|
||||||
Inherited Done; { Call ancestor }
|
Inherited Done; { Call ancestor }
|
||||||
{$IFDEF OS_WINDOWS} { WIN/NT CODE }
|
|
||||||
For I := 0 To 15 Do DeleteObject(ColBrush[I]); { Delete brushes }
|
|
||||||
For I := 0 To 15 Do DeleteObject(ColPen[I]); { Delete pens }
|
|
||||||
{$ENDIF}
|
|
||||||
{$IFNDEF NO_WINDOW} { WIN/NT/OS2 CODE }
|
|
||||||
AppWindow := 0; { Zero app window handle }
|
|
||||||
{$ENDIF}
|
|
||||||
END;
|
END;
|
||||||
|
|
||||||
{--TProgram-----------------------------------------------------------------}
|
{--TProgram-----------------------------------------------------------------}
|
||||||
@ -1093,72 +1053,6 @@ BEGIN
|
|||||||
End;
|
End;
|
||||||
END;
|
END;
|
||||||
|
|
||||||
{$IFNDEF NO_WINDOW}
|
|
||||||
{***************************************************************************}
|
|
||||||
{ TProgram OBJECT WIN/NT/OS2 ONLY METHODS }
|
|
||||||
{***************************************************************************}
|
|
||||||
|
|
||||||
{--TProgram-----------------------------------------------------------------}
|
|
||||||
{ GetClassText -> Platforms WIN/NT/OS2 - Checked 18Mar98 LdB }
|
|
||||||
{---------------------------------------------------------------------------}
|
|
||||||
FUNCTION TProgram.GetClassText: String;
|
|
||||||
VAR S: String; {$IFDEF OS_OS2} I: Integer; {$ENDIF}
|
|
||||||
BEGIN
|
|
||||||
{$IFDEF OS_WINDOWS} { WIN/NT CODE }
|
|
||||||
{$IFDEF PPC_DELPHI3} { DELPHI3+ CODE }
|
|
||||||
SetLength(S, 255); { Make string not empty }
|
|
||||||
SetLength(S, GetModuleFilename( 0, PChar(S),
|
|
||||||
Length(S) ) ); { Fetch module name }
|
|
||||||
{$ELSE} { OTHER COMPILERS }
|
|
||||||
S[0] := Chr(GetModuleFileName(HInstance, @S[1],
|
|
||||||
255)); { Fetch module name }
|
|
||||||
{$ENDIF}
|
|
||||||
{$ENDIF}
|
|
||||||
{$IFDEF OS_OS2} { OS2 CODE }
|
|
||||||
WinQuerySessionTitle(Anchor, 0, @S[1], 255); { Fetch session name }
|
|
||||||
I := 1; { Start on first }
|
|
||||||
While (S[I] <> #0) AND (I<255) Do Inc(I); { Find pchar end }
|
|
||||||
S[0] := Chr(I); { Set string length }
|
|
||||||
{$ENDIF}
|
|
||||||
GetClassText := S; { Return the string }
|
|
||||||
END;
|
|
||||||
|
|
||||||
{--TProgram-----------------------------------------------------------------}
|
|
||||||
{ GetClassName -> Platforms WIN/NT/OS2 - Updated 13May98 LdB }
|
|
||||||
{---------------------------------------------------------------------------}
|
|
||||||
FUNCTION TProgram.GetClassName: String;
|
|
||||||
BEGIN
|
|
||||||
GetClassName := TvProgramClassName; { Program class name }
|
|
||||||
END;
|
|
||||||
|
|
||||||
{--TProgram-----------------------------------------------------------------}
|
|
||||||
{ GetClassAttr -> Platforms WIN/NT/OS2 - Checked 17Mar98 LdB }
|
|
||||||
{---------------------------------------------------------------------------}
|
|
||||||
FUNCTION TProgram.GetClassAttr: LongInt;
|
|
||||||
VAr Li: LongInt;
|
|
||||||
BEGIN
|
|
||||||
{$IFDEF OS_WINDOWS} { WIN/NT CODE }
|
|
||||||
Li := Inherited GetClassAttr; { Call ancestor }
|
|
||||||
Li := Li AND NOT ws_Child; { Not child view }
|
|
||||||
GetClassAttr := Li OR ws_OverlappedWindow; { Overlapping window }
|
|
||||||
{$ENDIF}
|
|
||||||
{$IFDEF OS_OS2} { OS2 CODE }
|
|
||||||
GetClassAttr := fcf_TitleBar OR fcf_SysMenu OR
|
|
||||||
fcf_SizeBorder OR fcf_MinMax OR fcf_TaskList OR
|
|
||||||
fcf_NoByteAlign; { Window defaults }
|
|
||||||
{$ENDIF}
|
|
||||||
END;
|
|
||||||
|
|
||||||
{--TProgram-----------------------------------------------------------------}
|
|
||||||
{ GetMsghandler -> Platforms WIN/NT/OS2 - Updated 13May98 LdB }
|
|
||||||
{---------------------------------------------------------------------------}
|
|
||||||
FUNCTION TProgram.GetMsgHandler: Pointer;
|
|
||||||
BEGIN
|
|
||||||
GetMsgHandler := @TvAppMsgHandler; { Application handler }
|
|
||||||
END;
|
|
||||||
|
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
|
{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
|
||||||
{ TApplication OBJECT METHODS }
|
{ TApplication OBJECT METHODS }
|
||||||
{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
|
{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
|
||||||
@ -1333,7 +1227,10 @@ END;
|
|||||||
END.
|
END.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.7 2001-05-04 15:43:45 pierre
|
Revision 1.8 2001-05-07 22:22:03 pierre
|
||||||
|
* removed NO_WINDOW cond, added GRAPH_API
|
||||||
|
|
||||||
|
Revision 1.7 2001/05/04 15:43:45 pierre
|
||||||
* several more fixes
|
* several more fixes
|
||||||
|
|
||||||
Revision 1.6 2001/05/04 08:42:54 pierre
|
Revision 1.6 2001/05/04 08:42:54 pierre
|
||||||
|
358
fv/dialogs.pas
358
fv/dialogs.pas
@ -262,20 +262,12 @@ TYPE
|
|||||||
{ TCluster OBJECT - CLUSTER ANCESTOR OBJECT }
|
{ TCluster OBJECT - CLUSTER ANCESTOR OBJECT }
|
||||||
{---------------------------------------------------------------------------}
|
{---------------------------------------------------------------------------}
|
||||||
TYPE
|
TYPE
|
||||||
{$IFNDEF NO_WINDOW} { WIN/NT/OS2 CODE }
|
|
||||||
TWndArray = Array [0..32000] Of HWnd; { Window handle array }
|
|
||||||
PWndArray = ^TWndArray; { Ptr to handle array }
|
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
TCluster = OBJECT (TView)
|
TCluster = OBJECT (TView)
|
||||||
Id : Integer; { New communicate id }
|
Id : Integer; { New communicate id }
|
||||||
Sel : Integer; { Selected item }
|
Sel : Integer; { Selected item }
|
||||||
Value : LongInt; { Bit value }
|
Value : LongInt; { Bit value }
|
||||||
EnableMask: LongInt; { Mask enable bits }
|
EnableMask: LongInt; { Mask enable bits }
|
||||||
Strings : TStringCollection; { String collection }
|
Strings : TStringCollection; { String collection }
|
||||||
{$IFNDEF NO_WINDOW} { WIN/NT/OS2 DATA }
|
|
||||||
WndHandles: PWndArray; { Window handle array }
|
|
||||||
{$ENDIF}
|
|
||||||
CONSTRUCTOR Init (Var Bounds: TRect; AStrings: PSItem);
|
CONSTRUCTOR Init (Var Bounds: TRect; AStrings: PSItem);
|
||||||
CONSTRUCTOR Load (Var S: TStream);
|
CONSTRUCTOR Load (Var S: TStream);
|
||||||
DESTRUCTOR Done; Virtual;
|
DESTRUCTOR Done; Virtual;
|
||||||
@ -296,12 +288,6 @@ TYPE
|
|||||||
PROCEDURE SetData (Var Rec); Virtual;
|
PROCEDURE SetData (Var Rec); Virtual;
|
||||||
PROCEDURE Store (Var S: TStream);
|
PROCEDURE Store (Var S: TStream);
|
||||||
PROCEDURE HandleEvent (Var Event: TEvent); Virtual;
|
PROCEDURE HandleEvent (Var Event: TEvent); Virtual;
|
||||||
{$IFNDEF NO_WINDOW} { WIN/NT/OS2 CODE }
|
|
||||||
FUNCTION GetClassName: String; Virtual;
|
|
||||||
FUNCTION SubClassAttr: LongInt; Virtual;
|
|
||||||
FUNCTION GetMsgHandler: Pointer; Virtual;
|
|
||||||
PROCEDURE CreateWindowNow (CmdShow: Integer); Virtual;
|
|
||||||
{$ENDIF}
|
|
||||||
PRIVATE
|
PRIVATE
|
||||||
FUNCTION FindSel (P: TPoint): Integer;
|
FUNCTION FindSel (P: TPoint): Integer;
|
||||||
FUNCTION Row (Item: Integer): Integer;
|
FUNCTION Row (Item: Integer): Integer;
|
||||||
@ -319,9 +305,6 @@ TYPE
|
|||||||
PROCEDURE Press (Item: Integer); Virtual;
|
PROCEDURE Press (Item: Integer); Virtual;
|
||||||
PROCEDURE MovedTo(Item: Integer); Virtual;
|
PROCEDURE MovedTo(Item: Integer); Virtual;
|
||||||
PROCEDURE SetData (Var Rec); Virtual;
|
PROCEDURE SetData (Var Rec); Virtual;
|
||||||
{$IFNDEF NO_WINDOW} { WIN/NT CODE }
|
|
||||||
FUNCTION SubClassAttr: LongInt; Virtual;
|
|
||||||
{$ENDIF}
|
|
||||||
END;
|
END;
|
||||||
PRadioButtons = ^TRadioButtons;
|
PRadioButtons = ^TRadioButtons;
|
||||||
|
|
||||||
@ -333,9 +316,6 @@ TYPE
|
|||||||
FUNCTION Mark (Item: Integer): Boolean; Virtual;
|
FUNCTION Mark (Item: Integer): Boolean; Virtual;
|
||||||
PROCEDURE DrawFocus; Virtual;
|
PROCEDURE DrawFocus; Virtual;
|
||||||
PROCEDURE Press (Item: Integer); Virtual;
|
PROCEDURE Press (Item: Integer); Virtual;
|
||||||
{$IFNDEF NO_WINDOW} { WIN/NT CODE }
|
|
||||||
FUNCTION SubClassAttr: LongInt; Virtual;
|
|
||||||
{$ENDIF}
|
|
||||||
END;
|
END;
|
||||||
PCheckBoxes = ^TCheckBoxes;
|
PCheckBoxes = ^TCheckBoxes;
|
||||||
|
|
||||||
@ -358,9 +338,6 @@ TYPE
|
|||||||
PROCEDURE GetData (Var Rec); Virtual;
|
PROCEDURE GetData (Var Rec); Virtual;
|
||||||
PROCEDURE SetData (Var Rec); Virtual;
|
PROCEDURE SetData (Var Rec); Virtual;
|
||||||
PROCEDURE Store (Var S: TStream);
|
PROCEDURE Store (Var S: TStream);
|
||||||
{$IFNDEF NO_WINDOW} { WIN/NT CODE }
|
|
||||||
FUNCTION SubClassAttr: LongInt; Virtual;
|
|
||||||
{$ENDIF}
|
|
||||||
END;
|
END;
|
||||||
PMultiCheckBoxes = ^TMultiCheckBoxes;
|
PMultiCheckBoxes = ^TMultiCheckBoxes;
|
||||||
|
|
||||||
@ -714,81 +691,6 @@ CONST
|
|||||||
cmGrabDefault = 61; { Grab default }
|
cmGrabDefault = 61; { Grab default }
|
||||||
cmReleaseDefault = 62; { Release default }
|
cmReleaseDefault = 62; { Release default }
|
||||||
|
|
||||||
{***************************************************************************}
|
|
||||||
{ PRIVATE INTERNAL ROUTINES }
|
|
||||||
{***************************************************************************}
|
|
||||||
|
|
||||||
{$IFNDEF NO_WINDOW}
|
|
||||||
{$IFDEF OS_WINDOWS} { WIN/NT CODE }
|
|
||||||
{---------------------------------------------------------------------------}
|
|
||||||
{ TvClusterMsgHandler -> Platforms WIN/NT - Checked 08Jun98 LdB }
|
|
||||||
{---------------------------------------------------------------------------}
|
|
||||||
FUNCTION TvClusterMsgHandler (Wnd: hWnd; iMessage, wParam: sw_Word;
|
|
||||||
lParam: LongInt): LongInt; {$IFDEF BIT_32} STDCALL; {$ELSE} EXPORT; {$ENDIF}
|
|
||||||
VAR Sel: Integer; W: sw_Word; P: PCluster;
|
|
||||||
BEGIN
|
|
||||||
TvClusterMsgHandler := 0; { Reset return of zero }
|
|
||||||
Case iMessage Of
|
|
||||||
WM_KeyDown:; { Ignore keypresses }
|
|
||||||
WM_Command: Begin
|
|
||||||
If (wParam AND $FFFF = cmTvClusterButton) { Command message }
|
|
||||||
Then Begin
|
|
||||||
{$IFDEF BIT_16} { 16 BIT CODE }
|
|
||||||
PtrRec(P).Seg := GetProp(Wnd, ViewSeg); { Fetch cluster seg }
|
|
||||||
PtrRec(P).Ofs := GetProp(Wnd, ViewOfs); { Fetch cluster ofs }
|
|
||||||
{$ENDIF}
|
|
||||||
{$IFDEF BIT_32} { 32 BIT CODE }
|
|
||||||
LongInt(P) := GetProp(Wnd, ViewPtr); { Fetch cluster ptr }
|
|
||||||
{$ENDIF}
|
|
||||||
{$ifndef NO_WINDOW}
|
|
||||||
If (P <> Nil) AND (P^.WndHandles <> Nil) { Cluster/handles valid }
|
|
||||||
Then Begin
|
|
||||||
If (P^.State AND sfFocused = 0) Then { We have not focus }
|
|
||||||
P^.FocusFromTop; { Focus up to us }
|
|
||||||
Sel := 0; { Start on first }
|
|
||||||
{$IFDEF BIT_16} { 16 BIT CODE }
|
|
||||||
W := LoWord(lParam); { Use only low part }
|
|
||||||
{$ENDIF}
|
|
||||||
{$IFDEF BIT_32} { 32 BIT CODE }
|
|
||||||
W := lParam; { Use full param }
|
|
||||||
{$ENDIF}
|
|
||||||
While (Sel < P^.Strings.Count) AND { Valid item }
|
|
||||||
(W <> P^.WndHandles^[Sel]) Do Inc(Sel); { Find handle }
|
|
||||||
If (Sel < P^.Strings.Count) Then Begin { Handle was found }
|
|
||||||
P^.Press(Sel); { Call press }
|
|
||||||
P^.Sel := Sel; { Set selection }
|
|
||||||
If (P^.GetState(sfSelected)=False) { Check not selected }
|
|
||||||
Then P^.Select Else Begin { Select us then }
|
|
||||||
P^.SetDrawMask(vdFocus OR vdInner); { Redraw inner }
|
|
||||||
P^.DrawView; { Redraw partial view }
|
|
||||||
End;
|
|
||||||
End;
|
|
||||||
{$endif NO_WINDOW}
|
|
||||||
End;
|
|
||||||
End Else
|
|
||||||
TvClusterMsgHandler := TvViewMsgHandler(Wnd,
|
|
||||||
iMessage, wParam, lParam); { Call TV view handler }
|
|
||||||
End;
|
|
||||||
Else TvClusterMsgHandler := TvViewMsgHandler(Wnd,
|
|
||||||
iMessage, wParam, lParam); { Call TV view handler }
|
|
||||||
End;
|
|
||||||
END;
|
|
||||||
{$ENDIF}
|
|
||||||
{$IFDEF OS_OS2} { OS2 CODE }
|
|
||||||
{---------------------------------------------------------------------------}
|
|
||||||
{ TvClusterMsgHandler -> Platforms OS2 - Checked ??Sep99 LdB }
|
|
||||||
{---------------------------------------------------------------------------}
|
|
||||||
FUNCTION TvClusterMsgHandler (Wnd: hWnd; iMessage, wParam: sw_Word;
|
|
||||||
lParam: LongInt): LongInt; STDCALL;
|
|
||||||
VAR Sel: Integer; W: sw_Word; P: PCluster;
|
|
||||||
BEGIN
|
|
||||||
TvClusterMsgHandler := 0; { Reset return of zero }
|
|
||||||
TvClusterMsgHandler := TvViewMsgHandler(Wnd,
|
|
||||||
iMessage, wParam, lParam); { Call TV view handler }
|
|
||||||
END;
|
|
||||||
{$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 }
|
||||||
{---------------------------------------------------------------------------}
|
{---------------------------------------------------------------------------}
|
||||||
@ -1066,14 +968,6 @@ END;
|
|||||||
{---------------------------------------------------------------------------}
|
{---------------------------------------------------------------------------}
|
||||||
PROCEDURE TInputLine.DrawBackGround;
|
PROCEDURE TInputLine.DrawBackGround;
|
||||||
BEGIN
|
BEGIN
|
||||||
{$IFNDEF NO_WINDOW}
|
|
||||||
{$IFDEF OS_WINDOWS} { WIN/NT CODE }
|
|
||||||
If (HWindow <> 0) Then DestroyCaret; { Destroy any caret }
|
|
||||||
{$ENDIF}
|
|
||||||
{$IFDEF OS_OS2} { OS2 CODE }
|
|
||||||
If (HWindow <> 0) Then WinDestroyCursor(HWindow); { Destroy any caret }
|
|
||||||
{$ENDIF}
|
|
||||||
{$ENDIF not NO_WINDOW}
|
|
||||||
Inherited DrawBackGround; { Call ancestor }
|
Inherited DrawBackGround; { Call ancestor }
|
||||||
END;
|
END;
|
||||||
|
|
||||||
@ -1094,30 +988,11 @@ 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 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 }
|
||||||
{$ELSE not NO_WINDOW}
|
|
||||||
{$IFDEF OS_WINDOWS} { WIN/NT CODE }
|
|
||||||
If (HWindow <> 0) Then Begin
|
|
||||||
CreateCaret(HWindow, 0, I, FontHeight); { Create a craet }
|
|
||||||
SetCaretPos(X, 0); { Set caret position }
|
|
||||||
If (State AND sfCursorVis <> 0) Then
|
|
||||||
ShowCaret(HWindow); { Show the caret }
|
|
||||||
End;
|
|
||||||
{$ENDIF}
|
|
||||||
{$IFDEF OS_OS2} { OS2 CODE }
|
|
||||||
If (HWindow <> 0) Then Begin
|
|
||||||
WinCreateCursor(HWindow, X, 0, 0, FontHeight,
|
|
||||||
CURSOR_FLASH, Nil); { Create a craet }
|
|
||||||
If (State AND sfCursorVis <> 0) Then
|
|
||||||
WinShowCursor(HWindow, True); { Show the caret }
|
|
||||||
End;
|
|
||||||
{$ENDIF}
|
|
||||||
{$ENDIF not NO_WINDOW}
|
|
||||||
End;
|
End;
|
||||||
END;
|
END;
|
||||||
|
|
||||||
@ -1580,10 +1455,15 @@ BEGIN
|
|||||||
I := (RawSize.X - I) DIV 2; { Centre in button }
|
I := (RawSize.X - I) DIV 2; { Centre in button }
|
||||||
End Else I := FontWidth; { Left edge of button }
|
End Else I := FontWidth; { Left edge of button }
|
||||||
MoveCStr(Db, Title^, Bc); { Move title to buffer }
|
MoveCStr(Db, Title^, Bc); { Move title to buffer }
|
||||||
|
{$ifndef USE_API}
|
||||||
GOptions := GOptions OR goGraphView; { Graphics co-ords mode }
|
GOptions := GOptions OR goGraphView; { Graphics co-ords mode }
|
||||||
WriteLine(I, FontHeight DIV 2, CStrLen(Title^),
|
WriteLine(I, FontHeight DIV 2, CStrLen(Title^),
|
||||||
1, Db); { Write the title }
|
1, Db); { Write the title }
|
||||||
GOptions := GOptions AND NOT goGraphView; { Return to normal mode }
|
GOptions := GOptions AND NOT goGraphView; { Return to normal mode }
|
||||||
|
{$else USE_API}
|
||||||
|
WriteLine(I div SysFontWidth, 0, CStrLen(Title^),
|
||||||
|
1, Db); { Write the title }
|
||||||
|
{$endif USE_API}
|
||||||
End;
|
End;
|
||||||
END;
|
END;
|
||||||
|
|
||||||
@ -1765,17 +1645,6 @@ END;
|
|||||||
DESTRUCTOR TCluster.Done;
|
DESTRUCTOR TCluster.Done;
|
||||||
VAR I: Integer;
|
VAR I: Integer;
|
||||||
BEGIN
|
BEGIN
|
||||||
{$IFNDEF NO_WINDOW} { WIN/NT/OS2 CODE }
|
|
||||||
If (WndHandles <> Nil) Then Begin { Handles valid }
|
|
||||||
For I := 1 To Strings.Count Do { For each entry }
|
|
||||||
{$IFDEF OS_WINDOWS} { WIN/NT CODE }
|
|
||||||
DestroyWindow(WndHandles^[I-1]); { Destroy button views }
|
|
||||||
{$ELSE} { OS2 CODE }
|
|
||||||
WinDestroyWindow(WndHandles^[I-1]); { Destroy button views }
|
|
||||||
{$ENDIF}
|
|
||||||
FreeMem(WndHandles, Strings.Count*SizeOf(HWnd)); { Release memory }
|
|
||||||
End;
|
|
||||||
{$ENDIF}
|
|
||||||
Strings.Done; { Dispose of strings }
|
Strings.Done; { Dispose of strings }
|
||||||
Inherited Done; { Call ancestor }
|
Inherited Done; { Call ancestor }
|
||||||
END;
|
END;
|
||||||
@ -1841,24 +1710,6 @@ END;
|
|||||||
{---------------------------------------------------------------------------}
|
{---------------------------------------------------------------------------}
|
||||||
PROCEDURE TCluster.DrawFocus;
|
PROCEDURE TCluster.DrawFocus;
|
||||||
BEGIN
|
BEGIN
|
||||||
{$IFNDEF NO_WINDOW} { WIN/NT/OS2 CODE }
|
|
||||||
If (WndHandles <> Nil) Then { Valid window handles }
|
|
||||||
If (State AND sfFocused <> 0) Then Begin { View is focused }
|
|
||||||
If (Sel >= 0) AND (Sel < Strings.Count) Then
|
|
||||||
{$IFDEF OS_WINDOWS} { WIN/NT CODE }
|
|
||||||
SetFocus(WndHandles^[Sel]) { Focus selected view }
|
|
||||||
Else SetFocus(AppWindow); { Focus owner }
|
|
||||||
{$ELSE} { OS2 CODE }
|
|
||||||
WinSetFocus(HWND_DESKTOP, WndHandles^[Sel]) { Focus selected view }
|
|
||||||
Else WinSetFocus(HWND_DESKTOP, HWindow); { Focus owner }
|
|
||||||
{$ENDIF}
|
|
||||||
End Else
|
|
||||||
{$IFDEF OS_WINDOWS} { WIN/NT CODE }
|
|
||||||
SetFocus(AppWindow); { Focus owner }
|
|
||||||
{$ELSE} { OS2 CODE }
|
|
||||||
WinSetFocus(HWND_DESKTOP, AppWindow); { Focus owner }
|
|
||||||
{$ENDIF}
|
|
||||||
{$ENDIF}
|
|
||||||
END;
|
END;
|
||||||
|
|
||||||
{--TCluster-----------------------------------------------------------------}
|
{--TCluster-----------------------------------------------------------------}
|
||||||
@ -1897,9 +1748,7 @@ END;
|
|||||||
PROCEDURE TCluster.DrawMultiBox (Const Icon, Marker: String);
|
PROCEDURE TCluster.DrawMultiBox (Const Icon, Marker: String);
|
||||||
VAR I, J, K, Cur, Col: Integer; CNorm, CSel, CDis, Color: Word; B: TDrawBuffer;
|
VAR I, J, K, Cur, Col: Integer; CNorm, CSel, CDis, Color: Word; B: TDrawBuffer;
|
||||||
Tb, SCOff: Byte;
|
Tb, SCOff: Byte;
|
||||||
{$IFNDEF OS_DOS} S: String; P: PString; Q: PChar; {$ENDIF}
|
|
||||||
BEGIN
|
BEGIN
|
||||||
{$IFDEF NO_WINDOW} { DOS/DPMI CODE }
|
|
||||||
CNorm := GetColor($0301); { Normal colour }
|
CNorm := GetColor($0301); { Normal colour }
|
||||||
CSel := GetColor($0402); { Selected colour }
|
CSel := GetColor($0402); { Selected colour }
|
||||||
CDis := GetColor($0505); { Disabled colour }
|
CDis := GetColor($0505); { Disabled colour }
|
||||||
@ -1939,45 +1788,6 @@ BEGIN
|
|||||||
End;
|
End;
|
||||||
WriteBuf(K, K+I, Size.X-K-K, 1, B); { Write buffer }
|
WriteBuf(K, K+I, Size.X-K-K, 1, B); { Write buffer }
|
||||||
End;
|
End;
|
||||||
{$ELSE} { WIN/NT/OS2 CODE }
|
|
||||||
If (WndHandles <> Nil) Then Begin { Valid window handles }
|
|
||||||
For I := 1 To Strings.Count Do Begin { For each window }
|
|
||||||
{$IFDEF OS_WINDOWS} { WIN/NT CODE }
|
|
||||||
Tb := GetWindowText(WndHandles^[I-1], @S[1],
|
|
||||||
255); { Get window text }
|
|
||||||
{$ELSE} { OS2 CODE }
|
|
||||||
Tb := WinQueryWindowText(WndHandles^[I-1], 255,
|
|
||||||
@S[1]); { Get window text }
|
|
||||||
{$ENDIF}
|
|
||||||
{$IFDEF PPC_DELPHI3} { DELPHI3+ COMPILER }
|
|
||||||
SetLength(S, Tb); { Set string length }
|
|
||||||
{$ELSE} { OTHER COMPILERS }
|
|
||||||
S[0] := Chr(Tb); { Set string length }
|
|
||||||
{$ENDIF}
|
|
||||||
P := Strings.At(I-1); { Cluster strings }
|
|
||||||
If (P <> Nil) AND (P^ <> S) Then Begin { Something changed }
|
|
||||||
S := P^ + #0; { Transfer string }
|
|
||||||
{$IFDEF OS_WINDOWS} { WIN/NT CODE }
|
|
||||||
SetWindowText(WndHandles^[I-1], @S[1]); { Set new window text }
|
|
||||||
{$ELSE} { OS2 CODE }
|
|
||||||
WinSetWindowText(WndHandles^[I-1], @S[1]); { Set new window text }
|
|
||||||
{$ENDIF}
|
|
||||||
End;
|
|
||||||
If Mark(I-1) Then { If item marked }
|
|
||||||
{$IFDEF OS_WINDOWS} { WIN/NT CODE }
|
|
||||||
SendMessage(WndHandles^[I-1], bm_SetCheck,
|
|
||||||
1, 0) Else { Check the box }
|
|
||||||
SendMessage(WndHandles^[I-1], bm_SetCheck,
|
|
||||||
0, 0); { Uncheck the box }
|
|
||||||
{$ELSE} { OS2 CODE }
|
|
||||||
WinSendMsg(WndHandles^[I-1], bm_SetCheck,
|
|
||||||
1, 0) Else { Check the box }
|
|
||||||
WinSendMsg(WndHandles^[I-1], bm_SetCheck,
|
|
||||||
0, 0); { Uncheck the box }
|
|
||||||
{$ENDIF}
|
|
||||||
End;
|
|
||||||
End;
|
|
||||||
{$ENDIF}
|
|
||||||
END;
|
END;
|
||||||
|
|
||||||
{--TCluster-----------------------------------------------------------------}
|
{--TCluster-----------------------------------------------------------------}
|
||||||
@ -2155,114 +1965,6 @@ BEGIN
|
|||||||
End;
|
End;
|
||||||
END;
|
END;
|
||||||
|
|
||||||
{$IFNDEF NO_WINDOW} { WIN/NT/OS2 CODE }
|
|
||||||
{***************************************************************************}
|
|
||||||
{ TCLuster OBJECT WIN/NT/OS2 ONLY METHODS }
|
|
||||||
{***************************************************************************}
|
|
||||||
|
|
||||||
{--TCluster-----------------------------------------------------------------}
|
|
||||||
{ GetClassName -> Platforms WIN/NT/OS2 - Updated 03Jun98 LdB }
|
|
||||||
{---------------------------------------------------------------------------}
|
|
||||||
FUNCTION TCluster.GetClassName: String;
|
|
||||||
BEGIN
|
|
||||||
GetClassName := TvClusterClassName; { Cluster class name }
|
|
||||||
END;
|
|
||||||
|
|
||||||
{--TCluster-----------------------------------------------------------------}
|
|
||||||
{ SubClassAttr -> Platforms WIN/NT/OS2 - Updated 02Jun98 LdB }
|
|
||||||
{---------------------------------------------------------------------------}
|
|
||||||
FUNCTION TCluster.SubClassAttr: LongInt;
|
|
||||||
VAR Li: LongInt;
|
|
||||||
BEGIN
|
|
||||||
If (State AND sfVisible = 0) Then Li := 0 { View not visible }
|
|
||||||
Else Li := ws_Visible; { View is visible }
|
|
||||||
If (State AND sfDisabled <> 0) Then { Check disabled flag }
|
|
||||||
Li := Li OR ws_Disabled; { Set disabled flag }
|
|
||||||
Li := Li OR ws_ClipChildren OR ws_ClipSiblings; { Must have these }
|
|
||||||
SubClassAttr := Li; { Return attributes }
|
|
||||||
END;
|
|
||||||
|
|
||||||
{--TCluster-----------------------------------------------------------------}
|
|
||||||
{ GetMsgHandler -> Platforms WIN/NT/OS2 - Updated 02Jun98 LdB }
|
|
||||||
{---------------------------------------------------------------------------}
|
|
||||||
FUNCTION TCluster.GetMsgHandler: Pointer;
|
|
||||||
BEGIN
|
|
||||||
GetMsgHandler := @TvClusterMsgHandler; { Cluster msg handler }
|
|
||||||
END;
|
|
||||||
|
|
||||||
{--TCluster-----------------------------------------------------------------}
|
|
||||||
{ CreateWindowNow -> Platforms WIN/NT - Updated 28May98 LdB }
|
|
||||||
{---------------------------------------------------------------------------}
|
|
||||||
PROCEDURE TCluster.CreateWindowNow (CmdShow: Integer);
|
|
||||||
VAR I, J, L: Integer; Li: LongInt; Ct: String; Ts: PString; P: PChar; Wnd: HWnd;
|
|
||||||
BEGIN
|
|
||||||
If (HWindow = 0) Then Begin { Window not created }
|
|
||||||
Inherited CreateWindowNow (CmdShow); { Call ancestor }
|
|
||||||
If (HWindow <> 0) Then Begin { Window now created }
|
|
||||||
GetMem(WndHandles, Strings.Count*SizeOf(HWnd));{ Allocate memory }
|
|
||||||
For I := 1 To Strings.Count Do Begin
|
|
||||||
L := (I-1) * FontHeight; { Height of each line }
|
|
||||||
Ts := Strings.At(I-1); { Fetch string pointer }
|
|
||||||
If (Ts <> Nil) Then Ct := Ts^ Else Ct := ''; { Get string text }
|
|
||||||
Ct := Ct + #0; { Make asciiz }
|
|
||||||
J := Pos('~', Ct); { Check for tilde }
|
|
||||||
If (J <> 0) Then Ct[J] := '&'; { Sub 1st tilde }
|
|
||||||
Repeat
|
|
||||||
J := Pos('~', Ct); { Check for tilde }
|
|
||||||
If (J <> 0) Then System.Delete(Ct, J, 1); { Remove the tilde }
|
|
||||||
Until (J = 0); { Remove all tildes }
|
|
||||||
If (Ct <> #0) Then Begin { Check for empty }
|
|
||||||
GetMem(P, Length(Ct)); { Allocate memory }
|
|
||||||
Move(Ct[1], P^, Length(Ct)); { Move string data }
|
|
||||||
End Else P := Nil; { Return nil ptr }
|
|
||||||
{$IFDEF OS_WINDOWS}
|
|
||||||
If (Options AND ofFramed <> 0) OR { Normal frame }
|
|
||||||
(GOptions AND goThickFramed <> 0) Then { Thick frame }
|
|
||||||
Wnd := CreateWindowEx(0, 'BUTTON', P,
|
|
||||||
SubClassAttr OR ws_Child OR ws_Visible, FontWidth,
|
|
||||||
L+FontHeight, RawSize.X-2*FontWidth+1,
|
|
||||||
FontHeight, HWindow, cmTvClusterButton,
|
|
||||||
HInstance, Nil) Else { Create window }
|
|
||||||
Wnd := CreateWindowEx(0, 'BUTTON', P,
|
|
||||||
SubClassAttr OR ws_Child OR ws_Visible, 0, L,
|
|
||||||
RawSize.X+1, FontHeight, HWindow,
|
|
||||||
cmTvClusterButton, HInstance, Nil); { Create window }
|
|
||||||
If (Wnd <> 0) Then Begin { Window created ok }
|
|
||||||
{$IFDEF PPC_FPC}
|
|
||||||
Windows.SendMessage(Wnd, WM_SetFont,
|
|
||||||
DefGFVFont, 1); { Set font style }
|
|
||||||
{$ELSE}
|
|
||||||
WinProcs.SendMessage(Wnd, WM_SetFont,
|
|
||||||
DefGFVFont, 1); { Set font style }
|
|
||||||
{$ENDIF}
|
|
||||||
Li := LongInt(@Self); { Address of self }
|
|
||||||
{$IFDEF BIT_16} { 16 BIT CODE }
|
|
||||||
SetProp(Wnd, ViewSeg,
|
|
||||||
Li AND $FFFF0000 SHR 16); { Set seg property }
|
|
||||||
SetProp(Wnd, ViewOfs,
|
|
||||||
Li AND $0000FFFF); { Set ofs propertry }
|
|
||||||
{$ENDIF}
|
|
||||||
{$IFDEF BIT_32} { 32 BIT CODE }
|
|
||||||
SetProp(Wnd, ViewPtr, Li); { Set view property }
|
|
||||||
{$ENDIF}
|
|
||||||
If (CmdShow <> 0) Then
|
|
||||||
ShowWindow(Wnd, cmdShow); { Execute show cmd }
|
|
||||||
UpdateWindow(Wnd); { Update the window }
|
|
||||||
BringWindowToTop(Wnd); { Bring window to top }
|
|
||||||
End;
|
|
||||||
WndHandles^[I-1] := Wnd; { Hold the handle }
|
|
||||||
If Mark(I-1) Then { If item marked }
|
|
||||||
SendMessage(WndHandles^[I-1], bm_SetCheck,
|
|
||||||
1, 0) Else { Check the item }
|
|
||||||
SendMessage(WndHandles^[I-1], bm_SetCheck,
|
|
||||||
0, 0); { Uncheck the item }
|
|
||||||
{$ENDIF}
|
|
||||||
End;
|
|
||||||
End;
|
|
||||||
End;
|
|
||||||
END;
|
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
{***************************************************************************}
|
{***************************************************************************}
|
||||||
{ TCluster OBJECT PRIVATE METHODS }
|
{ TCluster OBJECT PRIVATE METHODS }
|
||||||
{***************************************************************************}
|
{***************************************************************************}
|
||||||
@ -2377,21 +2079,6 @@ BEGIN
|
|||||||
Inherited SetData(Rec); { Call ancestor }
|
Inherited SetData(Rec); { Call ancestor }
|
||||||
END;
|
END;
|
||||||
|
|
||||||
{$IFNDEF NO_WINDOW} { WIN/NT CODE }
|
|
||||||
{***************************************************************************}
|
|
||||||
{ TRadioButtons OBJECT WIN/NT/OS2 ONLY METHODS }
|
|
||||||
{***************************************************************************}
|
|
||||||
|
|
||||||
{--TRadioButtons------------------------------------------------------------}
|
|
||||||
{ SubClassAttr -> Platforms WIN/NT/OS2 - Updated 20May98 LdB }
|
|
||||||
{---------------------------------------------------------------------------}
|
|
||||||
FUNCTION TRadioButtons.SubClassAttr: LongInt;
|
|
||||||
BEGIN
|
|
||||||
SubClassAttr := Inherited SubClassAttr OR
|
|
||||||
bs_RadioButton; { Radio button }
|
|
||||||
END;
|
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
|
{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
|
||||||
{ TCheckBoxes OBJECT METHODS }
|
{ TCheckBoxes OBJECT METHODS }
|
||||||
{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
|
{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
|
||||||
@ -2424,21 +2111,6 @@ BEGIN
|
|||||||
Inherited Press(Item); { Call ancestor }
|
Inherited Press(Item); { Call ancestor }
|
||||||
END;
|
END;
|
||||||
|
|
||||||
{$IFNDEF NO_WINDOW} { WIN/NT/OS2 CODE }
|
|
||||||
{***************************************************************************}
|
|
||||||
{ TCheckBoxes OBJECT WIN/NT/OS2 ONLY METHODS }
|
|
||||||
{***************************************************************************}
|
|
||||||
|
|
||||||
{--TCheckBoxes--------------------------------------------------------------}
|
|
||||||
{ SubClassAttr -> Platforms WIN/NT/OS2 - Updated 20May98 LdB }
|
|
||||||
{---------------------------------------------------------------------------}
|
|
||||||
FUNCTION TCheckBoxes.SubClassAttr: LongInt;
|
|
||||||
BEGIN
|
|
||||||
SubClassAttr := Inherited SubClassAttr OR
|
|
||||||
bs_CheckBox; { Check box buttons }
|
|
||||||
END;
|
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
|
{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
|
||||||
{ TMultiCheckBoxes OBJECT METHODS }
|
{ TMultiCheckBoxes OBJECT METHODS }
|
||||||
{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
|
{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
|
||||||
@ -2549,21 +2221,6 @@ BEGIN
|
|||||||
S.WriteStr(States); { Write strings }
|
S.WriteStr(States); { Write strings }
|
||||||
END;
|
END;
|
||||||
|
|
||||||
{$IFNDEF NO_WINDOW} { WIN/NT/OS2 CODE }
|
|
||||||
{***************************************************************************}
|
|
||||||
{ TMultiCheckBoxes OBJECT WIN/NT/OS2 ONLY METHODS }
|
|
||||||
{***************************************************************************}
|
|
||||||
|
|
||||||
{--TMultiCheckBoxes---------------------------------------------------------}
|
|
||||||
{ SubClassAttr -> Platforms WIN/NT/OS2 - Updated 06Jun98 LdB }
|
|
||||||
{---------------------------------------------------------------------------}
|
|
||||||
FUNCTION TMultiCheckBoxes.SubClassAttr: LongInt;
|
|
||||||
BEGIN
|
|
||||||
SubClassAttr := Inherited SubClassAttr OR
|
|
||||||
bs_CheckBox; { Check box buttons }
|
|
||||||
END;
|
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
|
{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
|
||||||
{ TListBox OBJECT METHODS }
|
{ TListBox OBJECT METHODS }
|
||||||
{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
|
{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
|
||||||
@ -3224,7 +2881,10 @@ END;
|
|||||||
END.
|
END.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.6 2001-05-04 10:46:01 pierre
|
Revision 1.7 2001-05-07 22:22:03 pierre
|
||||||
|
* removed NO_WINDOW cond, added GRAPH_API
|
||||||
|
|
||||||
|
Revision 1.6 2001/05/04 10:46:01 pierre
|
||||||
* various fixes for win32 api mode
|
* various fixes for win32 api mode
|
||||||
|
|
||||||
Revision 1.5 2001/05/04 08:42:54 pierre
|
Revision 1.5 2001/05/04 08:42:54 pierre
|
||||||
|
@ -599,10 +599,8 @@ CONST
|
|||||||
MouseMoveProc: DrawProc = Nil; { Mouse moved procedure }
|
MouseMoveProc: DrawProc = Nil; { Mouse moved procedure }
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
{$IFDEF NO_WINDOW}
|
|
||||||
PROCEDURE HideMouseCursor;
|
PROCEDURE HideMouseCursor;
|
||||||
PROCEDURE ShowMouseCursor;
|
PROCEDURE ShowMouseCursor;
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
{---------------------------------------------------------------------------}
|
{---------------------------------------------------------------------------}
|
||||||
{ INITIALIZED WIN/NT VARIABLES }
|
{ INITIALIZED WIN/NT VARIABLES }
|
||||||
@ -3041,7 +3039,10 @@ BEGIN
|
|||||||
END.
|
END.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.8 2001-05-04 15:43:45 pierre
|
Revision 1.9 2001-05-07 22:22:03 pierre
|
||||||
|
* removed NO_WINDOW cond, added GRAPH_API
|
||||||
|
|
||||||
|
Revision 1.8 2001/05/04 15:43:45 pierre
|
||||||
* several more fixes
|
* several more fixes
|
||||||
|
|
||||||
Revision 1.7 2001/05/04 10:46:02 pierre
|
Revision 1.7 2001/05/04 10:46:02 pierre
|
||||||
|
102
fv/gfvgraph.pas
102
fv/gfvgraph.pas
@ -72,7 +72,7 @@ UNIT GFVGraph;
|
|||||||
{$V-} { Turn off strict VAR strings }
|
{$V-} { Turn off strict VAR strings }
|
||||||
{====================================================================}
|
{====================================================================}
|
||||||
|
|
||||||
{$IFDEF NO_WINDOW} { DOS/DPMI CODE }
|
{$IFDEF GRAPH_API} { GRAPH CODE }
|
||||||
USES Graph; { Standard unit }
|
USES Graph; { Standard unit }
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
@ -125,7 +125,7 @@ CONST
|
|||||||
CONST
|
CONST
|
||||||
Detect = 0; { Detect video }
|
Detect = 0; { Detect video }
|
||||||
|
|
||||||
{$IFDEF NO_WINDOW} { DOS CODE ONLY }
|
{$IFDEF GRAPH_API} { DOS CODE ONLY }
|
||||||
{---------------------------------------------------------------------------}
|
{---------------------------------------------------------------------------}
|
||||||
{ DOS GRAPHICS SOLID FILL BAR AREA CONSTANT }
|
{ DOS GRAPHICS SOLID FILL BAR AREA CONSTANT }
|
||||||
{---------------------------------------------------------------------------}
|
{---------------------------------------------------------------------------}
|
||||||
@ -133,28 +133,6 @@ CONST
|
|||||||
SolidFill = Graph.SolidFill;
|
SolidFill = Graph.SolidFill;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
{$IFDEF OS_WINDOWS} { WIN/NT CODE }
|
|
||||||
{---------------------------------------------------------------------------}
|
|
||||||
{ WIN/NT STANDARD TColorRef CONSTANTS TO MATCH COLOUR CONSTANTS }
|
|
||||||
{---------------------------------------------------------------------------}
|
|
||||||
CONST
|
|
||||||
rgb_Black = $00000000; { 0 = Black }
|
|
||||||
rgb_Blue = $007F0000; { 1 = Blue }
|
|
||||||
rgb_Green = $00007F00; { 2 = Green }
|
|
||||||
rgb_Cyan = $007F7F00; { 3 = Cyan }
|
|
||||||
rgb_Red = $0000007F; { 4 = Red }
|
|
||||||
rgb_Magenta = $007F7F00; { 5 = Magenta }
|
|
||||||
rgb_Brown = $00007F7F; { 6 = Brown }
|
|
||||||
rgb_LightGray = $00AFAFAF; { 7 = LightGray }
|
|
||||||
rgb_DarkGray = $004F4F4F; { 8 = DarkGray }
|
|
||||||
rgb_LightBlue = $00FF0000; { 9 = Light Blue }
|
|
||||||
rgb_LightGreen = $0000FF00; { 10 = Light Green }
|
|
||||||
rgb_LightCyan = $00FFFF00; { 11 = Light Cyan }
|
|
||||||
rgb_LightRed = $000000FF; { 12 = Light Red }
|
|
||||||
rgb_LightMagenta = $00FFFF00; { 13 = Light Magenta }
|
|
||||||
rgb_Yellow = $0000FFFF; { 14 = Yellow }
|
|
||||||
rgb_White = $00FFFFFF; { 15 = White }
|
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
{***************************************************************************}
|
{***************************************************************************}
|
||||||
{ PUBLIC TYPE DEFINITIONS }
|
{ PUBLIC TYPE DEFINITIONS }
|
||||||
@ -219,14 +197,12 @@ graphics routine, that is the actual screen height in pixels - 1.
|
|||||||
---------------------------------------------------------------------}
|
---------------------------------------------------------------------}
|
||||||
FUNCTION GetMaxY (TextMode: Boolean): Integer;
|
FUNCTION GetMaxY (TextMode: Boolean): Integer;
|
||||||
|
|
||||||
{$IFDEF NO_WINDOW} { DOS/DPMI CODE }
|
|
||||||
PROCEDURE SetColor(Color: Word);
|
PROCEDURE SetColor(Color: Word);
|
||||||
PROCEDURE SetFillStyle (Pattern: Word; Color: Word);
|
PROCEDURE SetFillStyle (Pattern: Word; Color: Word);
|
||||||
PROCEDURE Bar (X1, Y1, X2, Y2: Integer);
|
PROCEDURE Bar (X1, Y1, X2, Y2: Integer);
|
||||||
PROCEDURE Line(X1, Y1, X2, Y2: Integer);
|
PROCEDURE Line(X1, Y1, X2, Y2: Integer);
|
||||||
PROCEDURE Rectangle(X1, Y1, X2, Y2: Integer);
|
PROCEDURE Rectangle(X1, Y1, X2, Y2: Integer);
|
||||||
PROCEDURE OutTextXY(X,Y: Integer; TextString: String);
|
PROCEDURE OutTextXY(X,Y: Integer; TextString: String);
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
{***************************************************************************}
|
{***************************************************************************}
|
||||||
{ INITIALIZED PUBLIC VARIABLES }
|
{ INITIALIZED PUBLIC VARIABLES }
|
||||||
@ -272,12 +248,13 @@ CONST
|
|||||||
{---------------------------------------------------------------------------}
|
{---------------------------------------------------------------------------}
|
||||||
PROCEDURE SetWriteMode (Mode: Byte; TextMode: Boolean);
|
PROCEDURE SetWriteMode (Mode: Byte; TextMode: Boolean);
|
||||||
BEGIN
|
BEGIN
|
||||||
{$IFDEF NO_WINDOW} { DOS/DPMI CODE }
|
{$IFDEF GRAPH_API} { GRAPH CODE }
|
||||||
If TextMode Then WriteMode := Mode { Hold write mode }
|
If TextMode Then
|
||||||
|
WriteMode := Mode { Hold write mode }
|
||||||
Else Graph.SetWriteMode(Mode); { Call graph proc }
|
Else Graph.SetWriteMode(Mode); { Call graph proc }
|
||||||
{$ELSE} { WIN/NT/OS2 CODE }
|
{$ELSE not GRAPH_API}
|
||||||
WriteMode := Mode; { Hold writemode value }
|
WriteMode := Mode; { Hold write mode }
|
||||||
{$ENDIF}
|
{$ENDIF not GRAPH_API}
|
||||||
END;
|
END;
|
||||||
|
|
||||||
{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
|
{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
|
||||||
@ -288,9 +265,13 @@ END;
|
|||||||
{ GetViewSettings -> Platforms DOS/DPMI/WIN/NT/OS2 - Updated 05Dec2000 LdB }
|
{ GetViewSettings -> Platforms DOS/DPMI/WIN/NT/OS2 - Updated 05Dec2000 LdB }
|
||||||
{---------------------------------------------------------------------------}
|
{---------------------------------------------------------------------------}
|
||||||
PROCEDURE GetViewSettings (Var CurrentViewPort: ViewPortType; TextMode: Boolean);
|
PROCEDURE GetViewSettings (Var CurrentViewPort: ViewPortType; TextMode: Boolean);
|
||||||
{$IFDEF NO_WINDOW} VAR Ts: Graph.ViewPortType;{$ENDIF} { DOS/DPMI CODE }
|
{$IFDEF GRAPH_API}
|
||||||
|
VAR Ts: Graph.ViewPortType;
|
||||||
|
{$ENDIF GRAPH_API}
|
||||||
BEGIN
|
BEGIN
|
||||||
{$IFDEF NO_WINDOW} { DOS/DPMI CODE }
|
{$IFNDEF GRAPH_API}
|
||||||
|
CurrentViewPort := ViewPort; { Textmode viewport }
|
||||||
|
{$ELSE GRAPH_API}
|
||||||
If TextMode Then CurrentViewPort := ViewPort { Textmode viewport }
|
If TextMode Then CurrentViewPort := ViewPort { Textmode viewport }
|
||||||
Else Begin
|
Else Begin
|
||||||
Graph.GetViewSettings(Ts); { Get graph settings }
|
Graph.GetViewSettings(Ts); { Get graph settings }
|
||||||
@ -300,9 +281,7 @@ BEGIN
|
|||||||
CurrentViewPort.Y2 := Ts.Y2; { Transfer Y2 }
|
CurrentViewPort.Y2 := Ts.Y2; { Transfer Y2 }
|
||||||
CurrentViewPort.Clip := Ts.Clip; { Transfer clip mask }
|
CurrentViewPort.Clip := Ts.Clip; { Transfer clip mask }
|
||||||
End;
|
End;
|
||||||
{$ELSE} { WIN/NT/OS2 CODE }
|
{$ENDIF GRAPH_API}
|
||||||
CurrentViewPort := ViewPort; { Return view port }
|
|
||||||
{$ENDIF}
|
|
||||||
END;
|
END;
|
||||||
|
|
||||||
{---------------------------------------------------------------------------}
|
{---------------------------------------------------------------------------}
|
||||||
@ -310,9 +289,9 @@ END;
|
|||||||
{---------------------------------------------------------------------------}
|
{---------------------------------------------------------------------------}
|
||||||
PROCEDURE SetViewPort (X1, Y1, X2, Y2: Integer; Clip, TextMode: Boolean);
|
PROCEDURE SetViewPort (X1, Y1, X2, Y2: Integer; Clip, TextMode: Boolean);
|
||||||
BEGIN
|
BEGIN
|
||||||
{$IFDEF NO_WINDOW} { DOS/DPMI CODE }
|
{$IFDEF GRAPH_API}
|
||||||
If (TextMode = TRUE) Then Begin { TEXT MODE GFV }
|
If TextMode Then Begin { TEXT MODE GFV }
|
||||||
{$ENDIF}
|
{$ENDIF GRAPH_API}
|
||||||
If (X1 < 0) Then X1 := 0; { X1 negative fix }
|
If (X1 < 0) Then X1 := 0; { X1 negative fix }
|
||||||
If (X1 > SysScreenWidth) Then
|
If (X1 > SysScreenWidth) Then
|
||||||
X1 := SysScreenWidth; { X1 off screen fix }
|
X1 := SysScreenWidth; { X1 off screen fix }
|
||||||
@ -332,11 +311,11 @@ BEGIN
|
|||||||
ViewPort.Clip := Clip; { Set port clip value }
|
ViewPort.Clip := Clip; { Set port clip value }
|
||||||
Cxp := X1; { Set current x pos }
|
Cxp := X1; { Set current x pos }
|
||||||
Cyp := Y1; { Set current y pos }
|
Cyp := Y1; { Set current y pos }
|
||||||
{$IFDEF NO_WINDOW} { DOS/DPMI CODE }
|
{$IFDEF GRAPH_API}
|
||||||
End Else Begin { GRAPHICS MODE GFV }
|
End Else Begin { GRAPHICS MODE GFV }
|
||||||
Graph.SetViewPort(X1, Y1, X2, Y2, Clip); { Call graph proc }
|
Graph.SetViewPort(X1, Y1, X2, Y2, Clip); { Call graph proc }
|
||||||
End;
|
End;
|
||||||
{$ENDIF}
|
{$ENDIF GRAPH_API}
|
||||||
END;
|
END;
|
||||||
|
|
||||||
{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
|
{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
|
||||||
@ -348,12 +327,13 @@ END;
|
|||||||
{---------------------------------------------------------------------------}
|
{---------------------------------------------------------------------------}
|
||||||
FUNCTION GetMaxX (TextMode: Boolean): Integer;
|
FUNCTION GetMaxX (TextMode: Boolean): Integer;
|
||||||
BEGIN
|
BEGIN
|
||||||
{$IFDEF NO_WINDOW} { DOS/DPMI CODE }
|
{$IFDEF GRAPH_API}
|
||||||
If TextMode Then GetMaxX := SysScreenWidth-1 { Screen width }
|
If TextMode Then
|
||||||
|
{$ENDIF GRAPH_API}
|
||||||
|
GetMaxX := SysScreenWidth-1 { Screen width }
|
||||||
|
{$IFDEF GRAPH_API}
|
||||||
Else GetMaxX := Graph.GetMaxX; { Call graph func }
|
Else GetMaxX := Graph.GetMaxX; { Call graph func }
|
||||||
{$ELSE} { WIN/NT/OS2 CODE }
|
{$ENDIF GRAPH_API}
|
||||||
GetMaxX := SysScreenWidth-1; { Screen width }
|
|
||||||
{$ENDIF}
|
|
||||||
END;
|
END;
|
||||||
|
|
||||||
{---------------------------------------------------------------------------}
|
{---------------------------------------------------------------------------}
|
||||||
@ -361,50 +341,64 @@ END;
|
|||||||
{---------------------------------------------------------------------------}
|
{---------------------------------------------------------------------------}
|
||||||
FUNCTION GetMaxY (TextMode: Boolean): Integer;
|
FUNCTION GetMaxY (TextMode: Boolean): Integer;
|
||||||
BEGIN
|
BEGIN
|
||||||
{$IFDEF NO_WINDOW} { DOS/DPMI CODE }
|
{$IFDEF GRAPH_API}
|
||||||
If TextMode Then GetMaxY := SysScreenHeight-1 { Screen height }
|
If TextMode Then
|
||||||
|
{$ENDIF GRAPH_API}
|
||||||
|
GetMaxY := SysScreenHeight-1 { Screen height }
|
||||||
|
{$IFDEF GRAPH_API}
|
||||||
Else GetMaxY := Graph.GetMaxY; { Call graph func }
|
Else GetMaxY := Graph.GetMaxY; { Call graph func }
|
||||||
{$ELSE} { WIN/NT/OS2 CODE }
|
{$ENDIF GRAPH_API}
|
||||||
GetMaxY := SysScreenHeight-1; { Screen height }
|
|
||||||
{$ENDIF}
|
|
||||||
END;
|
END;
|
||||||
|
|
||||||
{$IFDEF NO_WINDOW} { DOS/DPMI CODE }
|
|
||||||
PROCEDURE SetColor(Color: Word);
|
PROCEDURE SetColor(Color: Word);
|
||||||
BEGIN
|
BEGIN
|
||||||
|
{$IFDEF GRAPH_API}
|
||||||
Graph.SetColor(Color); { Call graph proc }
|
Graph.SetColor(Color); { Call graph proc }
|
||||||
|
{$ENDIF GRAPH_API}
|
||||||
END;
|
END;
|
||||||
|
|
||||||
PROCEDURE SetFillStyle (Pattern: Word; Color: Word);
|
PROCEDURE SetFillStyle (Pattern: Word; Color: Word);
|
||||||
BEGIN
|
BEGIN
|
||||||
|
{$IFDEF GRAPH_API}
|
||||||
Graph.SetFillStyle(Pattern, Color); { Call graph proc }
|
Graph.SetFillStyle(Pattern, Color); { Call graph proc }
|
||||||
|
{$ENDIF GRAPH_API}
|
||||||
END;
|
END;
|
||||||
|
|
||||||
PROCEDURE Bar (X1, Y1, X2, Y2: Integer);
|
PROCEDURE Bar (X1, Y1, X2, Y2: Integer);
|
||||||
BEGIN
|
BEGIN
|
||||||
|
{$IFDEF GRAPH_API}
|
||||||
Graph.Bar(X1, Y1, X2, Y2); { Call graph proc }
|
Graph.Bar(X1, Y1, X2, Y2); { Call graph proc }
|
||||||
|
{$ENDIF GRAPH_API}
|
||||||
END;
|
END;
|
||||||
|
|
||||||
PROCEDURE Line(X1, Y1, X2, Y2: Integer);
|
PROCEDURE Line(X1, Y1, X2, Y2: Integer);
|
||||||
BEGIN
|
BEGIN
|
||||||
|
{$IFDEF GRAPH_API}
|
||||||
Graph.Line(X1, Y1, X2, Y2); { Call graph proc }
|
Graph.Line(X1, Y1, X2, Y2); { Call graph proc }
|
||||||
|
{$ENDIF GRAPH_API}
|
||||||
END;
|
END;
|
||||||
|
|
||||||
PROCEDURE Rectangle(X1, Y1, X2, Y2: Integer);
|
PROCEDURE Rectangle(X1, Y1, X2, Y2: Integer);
|
||||||
BEGIN
|
BEGIN
|
||||||
|
{$IFDEF GRAPH_API}
|
||||||
Graph.Rectangle(X1, Y1, X2, Y2); { Call graph proc }
|
Graph.Rectangle(X1, Y1, X2, Y2); { Call graph proc }
|
||||||
|
{$ENDIF GRAPH_API}
|
||||||
END;
|
END;
|
||||||
|
|
||||||
PROCEDURE OutTextXY(X,Y: Integer; TextString: string);
|
PROCEDURE OutTextXY(X,Y: Integer; TextString: string);
|
||||||
BEGIN
|
BEGIN
|
||||||
|
{$IFDEF GRAPH_API}
|
||||||
Graph.OutTextXY(X, Y, TextString); { Call graph proc }
|
Graph.OutTextXY(X, Y, TextString); { Call graph proc }
|
||||||
|
{$ENDIF GRAPH_API}
|
||||||
END;
|
END;
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
END.
|
END.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.5 2001-05-04 15:43:45 pierre
|
Revision 1.6 2001-05-07 22:22:03 pierre
|
||||||
|
* removed NO_WINDOW cond, added GRAPH_API
|
||||||
|
|
||||||
|
Revision 1.5 2001/05/04 15:43:45 pierre
|
||||||
* several more fixes
|
* several more fixes
|
||||||
|
|
||||||
Revision 1.4 2001/04/10 21:57:55 pierre
|
Revision 1.4 2001/04/10 21:57:55 pierre
|
||||||
|
15
fv/menus.pas
15
fv/menus.pas
@ -1022,16 +1022,6 @@ 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 }
|
|
||||||
HWindow := 0; { Must zero handle }
|
|
||||||
Dc := 0; { Must zero context }
|
|
||||||
{$ENDIF}
|
|
||||||
{$IFDEF OS_OS2} { OS2 CODE }
|
|
||||||
HWindow := 0; { Must zero handle }
|
|
||||||
Ps := 0; { Must zero pres space }
|
|
||||||
{$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 }
|
||||||
@ -1683,7 +1673,10 @@ END;
|
|||||||
END.
|
END.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.6 2001-05-04 15:43:45 pierre
|
Revision 1.7 2001-05-07 22:22:03 pierre
|
||||||
|
* removed NO_WINDOW cond, added GRAPH_API
|
||||||
|
|
||||||
|
Revision 1.6 2001/05/04 15:43:45 pierre
|
||||||
* several more fixes
|
* several more fixes
|
||||||
|
|
||||||
Revision 1.5 2001/05/04 10:46:02 pierre
|
Revision 1.5 2001/05/04 10:46:02 pierre
|
||||||
|
113
fvision/app.pas
113
fvision/app.pas
@ -280,12 +280,6 @@ TYPE
|
|||||||
PROCEDURE PutEvent (Var Event: TEvent); Virtual;
|
PROCEDURE PutEvent (Var Event: TEvent); Virtual;
|
||||||
PROCEDURE GetEvent (Var Event: TEvent); Virtual;
|
PROCEDURE GetEvent (Var Event: TEvent); Virtual;
|
||||||
PROCEDURE HandleEvent (Var Event: TEvent); Virtual;
|
PROCEDURE HandleEvent (Var Event: TEvent); Virtual;
|
||||||
{$IFNDEF NO_WINDOW} { WIN/NT/OS2 CODE }
|
|
||||||
FUNCTION GetClassName: String; Virtual;
|
|
||||||
FUNCTION GetClassText: String; Virtual;
|
|
||||||
FUNCTION GetClassAttr: LongInt; Virtual;
|
|
||||||
FUNCTION GetMsgHandler: Pointer; Virtual;
|
|
||||||
{$ENDIF}
|
|
||||||
END;
|
END;
|
||||||
PProgram = ^TProgram;
|
PProgram = ^TProgram;
|
||||||
|
|
||||||
@ -628,15 +622,7 @@ END;
|
|||||||
{ InitBackGround -> Platforms DOS/DPMI/WIN/NT/OS2 - Updated 12Sep97 LdB }
|
{ InitBackGround -> Platforms DOS/DPMI/WIN/NT/OS2 - Updated 12Sep97 LdB }
|
||||||
{---------------------------------------------------------------------------}
|
{---------------------------------------------------------------------------}
|
||||||
PROCEDURE TDesktop.InitBackground;
|
PROCEDURE TDesktop.InitBackground;
|
||||||
{$IFNDEF OS_WINDOWS}
|
|
||||||
CONST Ch: Char = #176;
|
CONST Ch: Char = #176;
|
||||||
{$ELSE}
|
|
||||||
{$IFDEF NO_WINDOW}
|
|
||||||
CONST Ch: Char = #176;
|
|
||||||
{$ELSE not NO_WINDOW}
|
|
||||||
CONST Ch: Char = #167;
|
|
||||||
{$ENDIF}
|
|
||||||
{$ENDIF}
|
|
||||||
VAR R: TRect;
|
VAR R: TRect;
|
||||||
BEGIN
|
BEGIN
|
||||||
GetExtent(R); { Get desktop extents }
|
GetExtent(R); { Get desktop extents }
|
||||||
@ -796,7 +782,7 @@ CONST TvProgramClassName = 'TVPROGRAM'+#0; { TV program class }
|
|||||||
{ Init -> Platforms DOS/DPMI/WIN/NT/OS2 - Updated 22Oct99 LdB }
|
{ Init -> Platforms DOS/DPMI/WIN/NT/OS2 - Updated 22Oct99 LdB }
|
||||||
{---------------------------------------------------------------------------}
|
{---------------------------------------------------------------------------}
|
||||||
CONSTRUCTOR TProgram.Init;
|
CONSTRUCTOR TProgram.Init;
|
||||||
VAR I: Integer; R: TRect; {$IFDEF OS_WINDOWS} ODc: HDc; {$ENDIF}
|
VAR I: Integer; R: TRect;
|
||||||
BEGIN
|
BEGIN
|
||||||
Application := @Self; { Set application ptr }
|
Application := @Self; { Set application ptr }
|
||||||
InitScreen; { Initialize screen }
|
InitScreen; { Initialize screen }
|
||||||
@ -806,29 +792,10 @@ BEGIN
|
|||||||
State := sfVisible + sfSelected + sfFocused +
|
State := sfVisible + sfSelected + sfFocused +
|
||||||
sfModal + sfExposed; { Deafult states }
|
sfModal + sfExposed; { Deafult states }
|
||||||
Options := 0; { No options set }
|
Options := 0; { No options set }
|
||||||
{$IFNDEF NO_WINDOW}
|
|
||||||
{$IFDEF OS_WINDOWS} { WIN/NT CODE }
|
|
||||||
ODc := GetDc(GetDeskTopWindow); { Get desktop context }
|
|
||||||
For I := 0 To 15 Do Begin
|
|
||||||
ColBrush[I] := CreateSolidBrush(GetNearestColor(
|
|
||||||
ODc, ColRef[I])); { Create brushes }
|
|
||||||
ColPen[I] := CreatePen(ps_Solid, 1,
|
|
||||||
GetNearestColor(ODc, ColRef[I])); { Create pens }
|
|
||||||
End;
|
|
||||||
ReleaseDC(GetDeskTopWindow, ODc); { Release context }
|
|
||||||
CreateWindowNow(sw_ShowNormal); { Create app window }
|
|
||||||
{$ENDIF}
|
|
||||||
{$IFDEF OS_OS2}
|
|
||||||
CreateWindowNow(swp_Show); { Create app window }
|
|
||||||
{$ENDIF}
|
|
||||||
{$ENDIF}
|
|
||||||
{$IFNDEF NO_WINDOW} { WIN/NT/OS2 CODE }
|
|
||||||
AppWindow := HWindow; { Set app window handle }
|
|
||||||
Size.X := ScreenWidth; { Set x size value }
|
Size.X := ScreenWidth; { Set x size value }
|
||||||
Size.Y := ScreenHeight; { Set y size value }
|
Size.Y := ScreenHeight; { Set y size value }
|
||||||
RawSize.X := ScreenWidth * SysFontWidth; { Set rawsize x }
|
RawSize.X := ScreenWidth * SysFontWidth; { Set rawsize x }
|
||||||
RawSize.Y := ScreenHeight * SysFontHeight - 1; { Set rawsize y }
|
RawSize.Y := ScreenHeight * SysFontHeight - 1; { Set rawsize y }
|
||||||
{$ENDIF}
|
|
||||||
InitStatusLine; { Init status line }
|
InitStatusLine; { Init status line }
|
||||||
If (StatusLine <> Nil) Then Insert(StatusLine); { Insert status line }
|
If (StatusLine <> Nil) Then Insert(StatusLine); { Insert status line }
|
||||||
InitMenuBar; { Create a bar menu }
|
InitMenuBar; { Create a bar menu }
|
||||||
@ -849,13 +816,6 @@ BEGIN
|
|||||||
Dispose(StatusLine, Done); { Destroy status line }
|
Dispose(StatusLine, Done); { Destroy status line }
|
||||||
Application := Nil; { Clear application }
|
Application := Nil; { Clear application }
|
||||||
Inherited Done; { Call ancestor }
|
Inherited Done; { Call ancestor }
|
||||||
{$IFDEF OS_WINDOWS} { WIN/NT CODE }
|
|
||||||
For I := 0 To 15 Do DeleteObject(ColBrush[I]); { Delete brushes }
|
|
||||||
For I := 0 To 15 Do DeleteObject(ColPen[I]); { Delete pens }
|
|
||||||
{$ENDIF}
|
|
||||||
{$IFNDEF NO_WINDOW} { WIN/NT/OS2 CODE }
|
|
||||||
AppWindow := 0; { Zero app window handle }
|
|
||||||
{$ENDIF}
|
|
||||||
END;
|
END;
|
||||||
|
|
||||||
{--TProgram-----------------------------------------------------------------}
|
{--TProgram-----------------------------------------------------------------}
|
||||||
@ -1093,72 +1053,6 @@ BEGIN
|
|||||||
End;
|
End;
|
||||||
END;
|
END;
|
||||||
|
|
||||||
{$IFNDEF NO_WINDOW}
|
|
||||||
{***************************************************************************}
|
|
||||||
{ TProgram OBJECT WIN/NT/OS2 ONLY METHODS }
|
|
||||||
{***************************************************************************}
|
|
||||||
|
|
||||||
{--TProgram-----------------------------------------------------------------}
|
|
||||||
{ GetClassText -> Platforms WIN/NT/OS2 - Checked 18Mar98 LdB }
|
|
||||||
{---------------------------------------------------------------------------}
|
|
||||||
FUNCTION TProgram.GetClassText: String;
|
|
||||||
VAR S: String; {$IFDEF OS_OS2} I: Integer; {$ENDIF}
|
|
||||||
BEGIN
|
|
||||||
{$IFDEF OS_WINDOWS} { WIN/NT CODE }
|
|
||||||
{$IFDEF PPC_DELPHI3} { DELPHI3+ CODE }
|
|
||||||
SetLength(S, 255); { Make string not empty }
|
|
||||||
SetLength(S, GetModuleFilename( 0, PChar(S),
|
|
||||||
Length(S) ) ); { Fetch module name }
|
|
||||||
{$ELSE} { OTHER COMPILERS }
|
|
||||||
S[0] := Chr(GetModuleFileName(HInstance, @S[1],
|
|
||||||
255)); { Fetch module name }
|
|
||||||
{$ENDIF}
|
|
||||||
{$ENDIF}
|
|
||||||
{$IFDEF OS_OS2} { OS2 CODE }
|
|
||||||
WinQuerySessionTitle(Anchor, 0, @S[1], 255); { Fetch session name }
|
|
||||||
I := 1; { Start on first }
|
|
||||||
While (S[I] <> #0) AND (I<255) Do Inc(I); { Find pchar end }
|
|
||||||
S[0] := Chr(I); { Set string length }
|
|
||||||
{$ENDIF}
|
|
||||||
GetClassText := S; { Return the string }
|
|
||||||
END;
|
|
||||||
|
|
||||||
{--TProgram-----------------------------------------------------------------}
|
|
||||||
{ GetClassName -> Platforms WIN/NT/OS2 - Updated 13May98 LdB }
|
|
||||||
{---------------------------------------------------------------------------}
|
|
||||||
FUNCTION TProgram.GetClassName: String;
|
|
||||||
BEGIN
|
|
||||||
GetClassName := TvProgramClassName; { Program class name }
|
|
||||||
END;
|
|
||||||
|
|
||||||
{--TProgram-----------------------------------------------------------------}
|
|
||||||
{ GetClassAttr -> Platforms WIN/NT/OS2 - Checked 17Mar98 LdB }
|
|
||||||
{---------------------------------------------------------------------------}
|
|
||||||
FUNCTION TProgram.GetClassAttr: LongInt;
|
|
||||||
VAr Li: LongInt;
|
|
||||||
BEGIN
|
|
||||||
{$IFDEF OS_WINDOWS} { WIN/NT CODE }
|
|
||||||
Li := Inherited GetClassAttr; { Call ancestor }
|
|
||||||
Li := Li AND NOT ws_Child; { Not child view }
|
|
||||||
GetClassAttr := Li OR ws_OverlappedWindow; { Overlapping window }
|
|
||||||
{$ENDIF}
|
|
||||||
{$IFDEF OS_OS2} { OS2 CODE }
|
|
||||||
GetClassAttr := fcf_TitleBar OR fcf_SysMenu OR
|
|
||||||
fcf_SizeBorder OR fcf_MinMax OR fcf_TaskList OR
|
|
||||||
fcf_NoByteAlign; { Window defaults }
|
|
||||||
{$ENDIF}
|
|
||||||
END;
|
|
||||||
|
|
||||||
{--TProgram-----------------------------------------------------------------}
|
|
||||||
{ GetMsghandler -> Platforms WIN/NT/OS2 - Updated 13May98 LdB }
|
|
||||||
{---------------------------------------------------------------------------}
|
|
||||||
FUNCTION TProgram.GetMsgHandler: Pointer;
|
|
||||||
BEGIN
|
|
||||||
GetMsgHandler := @TvAppMsgHandler; { Application handler }
|
|
||||||
END;
|
|
||||||
|
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
|
{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
|
||||||
{ TApplication OBJECT METHODS }
|
{ TApplication OBJECT METHODS }
|
||||||
{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
|
{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
|
||||||
@ -1333,7 +1227,10 @@ END;
|
|||||||
END.
|
END.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.7 2001-05-04 15:43:45 pierre
|
Revision 1.8 2001-05-07 22:22:03 pierre
|
||||||
|
* removed NO_WINDOW cond, added GRAPH_API
|
||||||
|
|
||||||
|
Revision 1.7 2001/05/04 15:43:45 pierre
|
||||||
* several more fixes
|
* several more fixes
|
||||||
|
|
||||||
Revision 1.6 2001/05/04 08:42:54 pierre
|
Revision 1.6 2001/05/04 08:42:54 pierre
|
||||||
|
@ -262,20 +262,12 @@ TYPE
|
|||||||
{ TCluster OBJECT - CLUSTER ANCESTOR OBJECT }
|
{ TCluster OBJECT - CLUSTER ANCESTOR OBJECT }
|
||||||
{---------------------------------------------------------------------------}
|
{---------------------------------------------------------------------------}
|
||||||
TYPE
|
TYPE
|
||||||
{$IFNDEF NO_WINDOW} { WIN/NT/OS2 CODE }
|
|
||||||
TWndArray = Array [0..32000] Of HWnd; { Window handle array }
|
|
||||||
PWndArray = ^TWndArray; { Ptr to handle array }
|
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
TCluster = OBJECT (TView)
|
TCluster = OBJECT (TView)
|
||||||
Id : Integer; { New communicate id }
|
Id : Integer; { New communicate id }
|
||||||
Sel : Integer; { Selected item }
|
Sel : Integer; { Selected item }
|
||||||
Value : LongInt; { Bit value }
|
Value : LongInt; { Bit value }
|
||||||
EnableMask: LongInt; { Mask enable bits }
|
EnableMask: LongInt; { Mask enable bits }
|
||||||
Strings : TStringCollection; { String collection }
|
Strings : TStringCollection; { String collection }
|
||||||
{$IFNDEF NO_WINDOW} { WIN/NT/OS2 DATA }
|
|
||||||
WndHandles: PWndArray; { Window handle array }
|
|
||||||
{$ENDIF}
|
|
||||||
CONSTRUCTOR Init (Var Bounds: TRect; AStrings: PSItem);
|
CONSTRUCTOR Init (Var Bounds: TRect; AStrings: PSItem);
|
||||||
CONSTRUCTOR Load (Var S: TStream);
|
CONSTRUCTOR Load (Var S: TStream);
|
||||||
DESTRUCTOR Done; Virtual;
|
DESTRUCTOR Done; Virtual;
|
||||||
@ -296,12 +288,6 @@ TYPE
|
|||||||
PROCEDURE SetData (Var Rec); Virtual;
|
PROCEDURE SetData (Var Rec); Virtual;
|
||||||
PROCEDURE Store (Var S: TStream);
|
PROCEDURE Store (Var S: TStream);
|
||||||
PROCEDURE HandleEvent (Var Event: TEvent); Virtual;
|
PROCEDURE HandleEvent (Var Event: TEvent); Virtual;
|
||||||
{$IFNDEF NO_WINDOW} { WIN/NT/OS2 CODE }
|
|
||||||
FUNCTION GetClassName: String; Virtual;
|
|
||||||
FUNCTION SubClassAttr: LongInt; Virtual;
|
|
||||||
FUNCTION GetMsgHandler: Pointer; Virtual;
|
|
||||||
PROCEDURE CreateWindowNow (CmdShow: Integer); Virtual;
|
|
||||||
{$ENDIF}
|
|
||||||
PRIVATE
|
PRIVATE
|
||||||
FUNCTION FindSel (P: TPoint): Integer;
|
FUNCTION FindSel (P: TPoint): Integer;
|
||||||
FUNCTION Row (Item: Integer): Integer;
|
FUNCTION Row (Item: Integer): Integer;
|
||||||
@ -319,9 +305,6 @@ TYPE
|
|||||||
PROCEDURE Press (Item: Integer); Virtual;
|
PROCEDURE Press (Item: Integer); Virtual;
|
||||||
PROCEDURE MovedTo(Item: Integer); Virtual;
|
PROCEDURE MovedTo(Item: Integer); Virtual;
|
||||||
PROCEDURE SetData (Var Rec); Virtual;
|
PROCEDURE SetData (Var Rec); Virtual;
|
||||||
{$IFNDEF NO_WINDOW} { WIN/NT CODE }
|
|
||||||
FUNCTION SubClassAttr: LongInt; Virtual;
|
|
||||||
{$ENDIF}
|
|
||||||
END;
|
END;
|
||||||
PRadioButtons = ^TRadioButtons;
|
PRadioButtons = ^TRadioButtons;
|
||||||
|
|
||||||
@ -333,9 +316,6 @@ TYPE
|
|||||||
FUNCTION Mark (Item: Integer): Boolean; Virtual;
|
FUNCTION Mark (Item: Integer): Boolean; Virtual;
|
||||||
PROCEDURE DrawFocus; Virtual;
|
PROCEDURE DrawFocus; Virtual;
|
||||||
PROCEDURE Press (Item: Integer); Virtual;
|
PROCEDURE Press (Item: Integer); Virtual;
|
||||||
{$IFNDEF NO_WINDOW} { WIN/NT CODE }
|
|
||||||
FUNCTION SubClassAttr: LongInt; Virtual;
|
|
||||||
{$ENDIF}
|
|
||||||
END;
|
END;
|
||||||
PCheckBoxes = ^TCheckBoxes;
|
PCheckBoxes = ^TCheckBoxes;
|
||||||
|
|
||||||
@ -358,9 +338,6 @@ TYPE
|
|||||||
PROCEDURE GetData (Var Rec); Virtual;
|
PROCEDURE GetData (Var Rec); Virtual;
|
||||||
PROCEDURE SetData (Var Rec); Virtual;
|
PROCEDURE SetData (Var Rec); Virtual;
|
||||||
PROCEDURE Store (Var S: TStream);
|
PROCEDURE Store (Var S: TStream);
|
||||||
{$IFNDEF NO_WINDOW} { WIN/NT CODE }
|
|
||||||
FUNCTION SubClassAttr: LongInt; Virtual;
|
|
||||||
{$ENDIF}
|
|
||||||
END;
|
END;
|
||||||
PMultiCheckBoxes = ^TMultiCheckBoxes;
|
PMultiCheckBoxes = ^TMultiCheckBoxes;
|
||||||
|
|
||||||
@ -714,81 +691,6 @@ CONST
|
|||||||
cmGrabDefault = 61; { Grab default }
|
cmGrabDefault = 61; { Grab default }
|
||||||
cmReleaseDefault = 62; { Release default }
|
cmReleaseDefault = 62; { Release default }
|
||||||
|
|
||||||
{***************************************************************************}
|
|
||||||
{ PRIVATE INTERNAL ROUTINES }
|
|
||||||
{***************************************************************************}
|
|
||||||
|
|
||||||
{$IFNDEF NO_WINDOW}
|
|
||||||
{$IFDEF OS_WINDOWS} { WIN/NT CODE }
|
|
||||||
{---------------------------------------------------------------------------}
|
|
||||||
{ TvClusterMsgHandler -> Platforms WIN/NT - Checked 08Jun98 LdB }
|
|
||||||
{---------------------------------------------------------------------------}
|
|
||||||
FUNCTION TvClusterMsgHandler (Wnd: hWnd; iMessage, wParam: sw_Word;
|
|
||||||
lParam: LongInt): LongInt; {$IFDEF BIT_32} STDCALL; {$ELSE} EXPORT; {$ENDIF}
|
|
||||||
VAR Sel: Integer; W: sw_Word; P: PCluster;
|
|
||||||
BEGIN
|
|
||||||
TvClusterMsgHandler := 0; { Reset return of zero }
|
|
||||||
Case iMessage Of
|
|
||||||
WM_KeyDown:; { Ignore keypresses }
|
|
||||||
WM_Command: Begin
|
|
||||||
If (wParam AND $FFFF = cmTvClusterButton) { Command message }
|
|
||||||
Then Begin
|
|
||||||
{$IFDEF BIT_16} { 16 BIT CODE }
|
|
||||||
PtrRec(P).Seg := GetProp(Wnd, ViewSeg); { Fetch cluster seg }
|
|
||||||
PtrRec(P).Ofs := GetProp(Wnd, ViewOfs); { Fetch cluster ofs }
|
|
||||||
{$ENDIF}
|
|
||||||
{$IFDEF BIT_32} { 32 BIT CODE }
|
|
||||||
LongInt(P) := GetProp(Wnd, ViewPtr); { Fetch cluster ptr }
|
|
||||||
{$ENDIF}
|
|
||||||
{$ifndef NO_WINDOW}
|
|
||||||
If (P <> Nil) AND (P^.WndHandles <> Nil) { Cluster/handles valid }
|
|
||||||
Then Begin
|
|
||||||
If (P^.State AND sfFocused = 0) Then { We have not focus }
|
|
||||||
P^.FocusFromTop; { Focus up to us }
|
|
||||||
Sel := 0; { Start on first }
|
|
||||||
{$IFDEF BIT_16} { 16 BIT CODE }
|
|
||||||
W := LoWord(lParam); { Use only low part }
|
|
||||||
{$ENDIF}
|
|
||||||
{$IFDEF BIT_32} { 32 BIT CODE }
|
|
||||||
W := lParam; { Use full param }
|
|
||||||
{$ENDIF}
|
|
||||||
While (Sel < P^.Strings.Count) AND { Valid item }
|
|
||||||
(W <> P^.WndHandles^[Sel]) Do Inc(Sel); { Find handle }
|
|
||||||
If (Sel < P^.Strings.Count) Then Begin { Handle was found }
|
|
||||||
P^.Press(Sel); { Call press }
|
|
||||||
P^.Sel := Sel; { Set selection }
|
|
||||||
If (P^.GetState(sfSelected)=False) { Check not selected }
|
|
||||||
Then P^.Select Else Begin { Select us then }
|
|
||||||
P^.SetDrawMask(vdFocus OR vdInner); { Redraw inner }
|
|
||||||
P^.DrawView; { Redraw partial view }
|
|
||||||
End;
|
|
||||||
End;
|
|
||||||
{$endif NO_WINDOW}
|
|
||||||
End;
|
|
||||||
End Else
|
|
||||||
TvClusterMsgHandler := TvViewMsgHandler(Wnd,
|
|
||||||
iMessage, wParam, lParam); { Call TV view handler }
|
|
||||||
End;
|
|
||||||
Else TvClusterMsgHandler := TvViewMsgHandler(Wnd,
|
|
||||||
iMessage, wParam, lParam); { Call TV view handler }
|
|
||||||
End;
|
|
||||||
END;
|
|
||||||
{$ENDIF}
|
|
||||||
{$IFDEF OS_OS2} { OS2 CODE }
|
|
||||||
{---------------------------------------------------------------------------}
|
|
||||||
{ TvClusterMsgHandler -> Platforms OS2 - Checked ??Sep99 LdB }
|
|
||||||
{---------------------------------------------------------------------------}
|
|
||||||
FUNCTION TvClusterMsgHandler (Wnd: hWnd; iMessage, wParam: sw_Word;
|
|
||||||
lParam: LongInt): LongInt; STDCALL;
|
|
||||||
VAR Sel: Integer; W: sw_Word; P: PCluster;
|
|
||||||
BEGIN
|
|
||||||
TvClusterMsgHandler := 0; { Reset return of zero }
|
|
||||||
TvClusterMsgHandler := TvViewMsgHandler(Wnd,
|
|
||||||
iMessage, wParam, lParam); { Call TV view handler }
|
|
||||||
END;
|
|
||||||
{$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 }
|
||||||
{---------------------------------------------------------------------------}
|
{---------------------------------------------------------------------------}
|
||||||
@ -1066,14 +968,6 @@ END;
|
|||||||
{---------------------------------------------------------------------------}
|
{---------------------------------------------------------------------------}
|
||||||
PROCEDURE TInputLine.DrawBackGround;
|
PROCEDURE TInputLine.DrawBackGround;
|
||||||
BEGIN
|
BEGIN
|
||||||
{$IFNDEF NO_WINDOW}
|
|
||||||
{$IFDEF OS_WINDOWS} { WIN/NT CODE }
|
|
||||||
If (HWindow <> 0) Then DestroyCaret; { Destroy any caret }
|
|
||||||
{$ENDIF}
|
|
||||||
{$IFDEF OS_OS2} { OS2 CODE }
|
|
||||||
If (HWindow <> 0) Then WinDestroyCursor(HWindow); { Destroy any caret }
|
|
||||||
{$ENDIF}
|
|
||||||
{$ENDIF not NO_WINDOW}
|
|
||||||
Inherited DrawBackGround; { Call ancestor }
|
Inherited DrawBackGround; { Call ancestor }
|
||||||
END;
|
END;
|
||||||
|
|
||||||
@ -1094,30 +988,11 @@ 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 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 }
|
||||||
{$ELSE not NO_WINDOW}
|
|
||||||
{$IFDEF OS_WINDOWS} { WIN/NT CODE }
|
|
||||||
If (HWindow <> 0) Then Begin
|
|
||||||
CreateCaret(HWindow, 0, I, FontHeight); { Create a craet }
|
|
||||||
SetCaretPos(X, 0); { Set caret position }
|
|
||||||
If (State AND sfCursorVis <> 0) Then
|
|
||||||
ShowCaret(HWindow); { Show the caret }
|
|
||||||
End;
|
|
||||||
{$ENDIF}
|
|
||||||
{$IFDEF OS_OS2} { OS2 CODE }
|
|
||||||
If (HWindow <> 0) Then Begin
|
|
||||||
WinCreateCursor(HWindow, X, 0, 0, FontHeight,
|
|
||||||
CURSOR_FLASH, Nil); { Create a craet }
|
|
||||||
If (State AND sfCursorVis <> 0) Then
|
|
||||||
WinShowCursor(HWindow, True); { Show the caret }
|
|
||||||
End;
|
|
||||||
{$ENDIF}
|
|
||||||
{$ENDIF not NO_WINDOW}
|
|
||||||
End;
|
End;
|
||||||
END;
|
END;
|
||||||
|
|
||||||
@ -1580,10 +1455,15 @@ BEGIN
|
|||||||
I := (RawSize.X - I) DIV 2; { Centre in button }
|
I := (RawSize.X - I) DIV 2; { Centre in button }
|
||||||
End Else I := FontWidth; { Left edge of button }
|
End Else I := FontWidth; { Left edge of button }
|
||||||
MoveCStr(Db, Title^, Bc); { Move title to buffer }
|
MoveCStr(Db, Title^, Bc); { Move title to buffer }
|
||||||
|
{$ifndef USE_API}
|
||||||
GOptions := GOptions OR goGraphView; { Graphics co-ords mode }
|
GOptions := GOptions OR goGraphView; { Graphics co-ords mode }
|
||||||
WriteLine(I, FontHeight DIV 2, CStrLen(Title^),
|
WriteLine(I, FontHeight DIV 2, CStrLen(Title^),
|
||||||
1, Db); { Write the title }
|
1, Db); { Write the title }
|
||||||
GOptions := GOptions AND NOT goGraphView; { Return to normal mode }
|
GOptions := GOptions AND NOT goGraphView; { Return to normal mode }
|
||||||
|
{$else USE_API}
|
||||||
|
WriteLine(I div SysFontWidth, 0, CStrLen(Title^),
|
||||||
|
1, Db); { Write the title }
|
||||||
|
{$endif USE_API}
|
||||||
End;
|
End;
|
||||||
END;
|
END;
|
||||||
|
|
||||||
@ -1765,17 +1645,6 @@ END;
|
|||||||
DESTRUCTOR TCluster.Done;
|
DESTRUCTOR TCluster.Done;
|
||||||
VAR I: Integer;
|
VAR I: Integer;
|
||||||
BEGIN
|
BEGIN
|
||||||
{$IFNDEF NO_WINDOW} { WIN/NT/OS2 CODE }
|
|
||||||
If (WndHandles <> Nil) Then Begin { Handles valid }
|
|
||||||
For I := 1 To Strings.Count Do { For each entry }
|
|
||||||
{$IFDEF OS_WINDOWS} { WIN/NT CODE }
|
|
||||||
DestroyWindow(WndHandles^[I-1]); { Destroy button views }
|
|
||||||
{$ELSE} { OS2 CODE }
|
|
||||||
WinDestroyWindow(WndHandles^[I-1]); { Destroy button views }
|
|
||||||
{$ENDIF}
|
|
||||||
FreeMem(WndHandles, Strings.Count*SizeOf(HWnd)); { Release memory }
|
|
||||||
End;
|
|
||||||
{$ENDIF}
|
|
||||||
Strings.Done; { Dispose of strings }
|
Strings.Done; { Dispose of strings }
|
||||||
Inherited Done; { Call ancestor }
|
Inherited Done; { Call ancestor }
|
||||||
END;
|
END;
|
||||||
@ -1841,24 +1710,6 @@ END;
|
|||||||
{---------------------------------------------------------------------------}
|
{---------------------------------------------------------------------------}
|
||||||
PROCEDURE TCluster.DrawFocus;
|
PROCEDURE TCluster.DrawFocus;
|
||||||
BEGIN
|
BEGIN
|
||||||
{$IFNDEF NO_WINDOW} { WIN/NT/OS2 CODE }
|
|
||||||
If (WndHandles <> Nil) Then { Valid window handles }
|
|
||||||
If (State AND sfFocused <> 0) Then Begin { View is focused }
|
|
||||||
If (Sel >= 0) AND (Sel < Strings.Count) Then
|
|
||||||
{$IFDEF OS_WINDOWS} { WIN/NT CODE }
|
|
||||||
SetFocus(WndHandles^[Sel]) { Focus selected view }
|
|
||||||
Else SetFocus(AppWindow); { Focus owner }
|
|
||||||
{$ELSE} { OS2 CODE }
|
|
||||||
WinSetFocus(HWND_DESKTOP, WndHandles^[Sel]) { Focus selected view }
|
|
||||||
Else WinSetFocus(HWND_DESKTOP, HWindow); { Focus owner }
|
|
||||||
{$ENDIF}
|
|
||||||
End Else
|
|
||||||
{$IFDEF OS_WINDOWS} { WIN/NT CODE }
|
|
||||||
SetFocus(AppWindow); { Focus owner }
|
|
||||||
{$ELSE} { OS2 CODE }
|
|
||||||
WinSetFocus(HWND_DESKTOP, AppWindow); { Focus owner }
|
|
||||||
{$ENDIF}
|
|
||||||
{$ENDIF}
|
|
||||||
END;
|
END;
|
||||||
|
|
||||||
{--TCluster-----------------------------------------------------------------}
|
{--TCluster-----------------------------------------------------------------}
|
||||||
@ -1897,9 +1748,7 @@ END;
|
|||||||
PROCEDURE TCluster.DrawMultiBox (Const Icon, Marker: String);
|
PROCEDURE TCluster.DrawMultiBox (Const Icon, Marker: String);
|
||||||
VAR I, J, K, Cur, Col: Integer; CNorm, CSel, CDis, Color: Word; B: TDrawBuffer;
|
VAR I, J, K, Cur, Col: Integer; CNorm, CSel, CDis, Color: Word; B: TDrawBuffer;
|
||||||
Tb, SCOff: Byte;
|
Tb, SCOff: Byte;
|
||||||
{$IFNDEF OS_DOS} S: String; P: PString; Q: PChar; {$ENDIF}
|
|
||||||
BEGIN
|
BEGIN
|
||||||
{$IFDEF NO_WINDOW} { DOS/DPMI CODE }
|
|
||||||
CNorm := GetColor($0301); { Normal colour }
|
CNorm := GetColor($0301); { Normal colour }
|
||||||
CSel := GetColor($0402); { Selected colour }
|
CSel := GetColor($0402); { Selected colour }
|
||||||
CDis := GetColor($0505); { Disabled colour }
|
CDis := GetColor($0505); { Disabled colour }
|
||||||
@ -1939,45 +1788,6 @@ BEGIN
|
|||||||
End;
|
End;
|
||||||
WriteBuf(K, K+I, Size.X-K-K, 1, B); { Write buffer }
|
WriteBuf(K, K+I, Size.X-K-K, 1, B); { Write buffer }
|
||||||
End;
|
End;
|
||||||
{$ELSE} { WIN/NT/OS2 CODE }
|
|
||||||
If (WndHandles <> Nil) Then Begin { Valid window handles }
|
|
||||||
For I := 1 To Strings.Count Do Begin { For each window }
|
|
||||||
{$IFDEF OS_WINDOWS} { WIN/NT CODE }
|
|
||||||
Tb := GetWindowText(WndHandles^[I-1], @S[1],
|
|
||||||
255); { Get window text }
|
|
||||||
{$ELSE} { OS2 CODE }
|
|
||||||
Tb := WinQueryWindowText(WndHandles^[I-1], 255,
|
|
||||||
@S[1]); { Get window text }
|
|
||||||
{$ENDIF}
|
|
||||||
{$IFDEF PPC_DELPHI3} { DELPHI3+ COMPILER }
|
|
||||||
SetLength(S, Tb); { Set string length }
|
|
||||||
{$ELSE} { OTHER COMPILERS }
|
|
||||||
S[0] := Chr(Tb); { Set string length }
|
|
||||||
{$ENDIF}
|
|
||||||
P := Strings.At(I-1); { Cluster strings }
|
|
||||||
If (P <> Nil) AND (P^ <> S) Then Begin { Something changed }
|
|
||||||
S := P^ + #0; { Transfer string }
|
|
||||||
{$IFDEF OS_WINDOWS} { WIN/NT CODE }
|
|
||||||
SetWindowText(WndHandles^[I-1], @S[1]); { Set new window text }
|
|
||||||
{$ELSE} { OS2 CODE }
|
|
||||||
WinSetWindowText(WndHandles^[I-1], @S[1]); { Set new window text }
|
|
||||||
{$ENDIF}
|
|
||||||
End;
|
|
||||||
If Mark(I-1) Then { If item marked }
|
|
||||||
{$IFDEF OS_WINDOWS} { WIN/NT CODE }
|
|
||||||
SendMessage(WndHandles^[I-1], bm_SetCheck,
|
|
||||||
1, 0) Else { Check the box }
|
|
||||||
SendMessage(WndHandles^[I-1], bm_SetCheck,
|
|
||||||
0, 0); { Uncheck the box }
|
|
||||||
{$ELSE} { OS2 CODE }
|
|
||||||
WinSendMsg(WndHandles^[I-1], bm_SetCheck,
|
|
||||||
1, 0) Else { Check the box }
|
|
||||||
WinSendMsg(WndHandles^[I-1], bm_SetCheck,
|
|
||||||
0, 0); { Uncheck the box }
|
|
||||||
{$ENDIF}
|
|
||||||
End;
|
|
||||||
End;
|
|
||||||
{$ENDIF}
|
|
||||||
END;
|
END;
|
||||||
|
|
||||||
{--TCluster-----------------------------------------------------------------}
|
{--TCluster-----------------------------------------------------------------}
|
||||||
@ -2155,114 +1965,6 @@ BEGIN
|
|||||||
End;
|
End;
|
||||||
END;
|
END;
|
||||||
|
|
||||||
{$IFNDEF NO_WINDOW} { WIN/NT/OS2 CODE }
|
|
||||||
{***************************************************************************}
|
|
||||||
{ TCLuster OBJECT WIN/NT/OS2 ONLY METHODS }
|
|
||||||
{***************************************************************************}
|
|
||||||
|
|
||||||
{--TCluster-----------------------------------------------------------------}
|
|
||||||
{ GetClassName -> Platforms WIN/NT/OS2 - Updated 03Jun98 LdB }
|
|
||||||
{---------------------------------------------------------------------------}
|
|
||||||
FUNCTION TCluster.GetClassName: String;
|
|
||||||
BEGIN
|
|
||||||
GetClassName := TvClusterClassName; { Cluster class name }
|
|
||||||
END;
|
|
||||||
|
|
||||||
{--TCluster-----------------------------------------------------------------}
|
|
||||||
{ SubClassAttr -> Platforms WIN/NT/OS2 - Updated 02Jun98 LdB }
|
|
||||||
{---------------------------------------------------------------------------}
|
|
||||||
FUNCTION TCluster.SubClassAttr: LongInt;
|
|
||||||
VAR Li: LongInt;
|
|
||||||
BEGIN
|
|
||||||
If (State AND sfVisible = 0) Then Li := 0 { View not visible }
|
|
||||||
Else Li := ws_Visible; { View is visible }
|
|
||||||
If (State AND sfDisabled <> 0) Then { Check disabled flag }
|
|
||||||
Li := Li OR ws_Disabled; { Set disabled flag }
|
|
||||||
Li := Li OR ws_ClipChildren OR ws_ClipSiblings; { Must have these }
|
|
||||||
SubClassAttr := Li; { Return attributes }
|
|
||||||
END;
|
|
||||||
|
|
||||||
{--TCluster-----------------------------------------------------------------}
|
|
||||||
{ GetMsgHandler -> Platforms WIN/NT/OS2 - Updated 02Jun98 LdB }
|
|
||||||
{---------------------------------------------------------------------------}
|
|
||||||
FUNCTION TCluster.GetMsgHandler: Pointer;
|
|
||||||
BEGIN
|
|
||||||
GetMsgHandler := @TvClusterMsgHandler; { Cluster msg handler }
|
|
||||||
END;
|
|
||||||
|
|
||||||
{--TCluster-----------------------------------------------------------------}
|
|
||||||
{ CreateWindowNow -> Platforms WIN/NT - Updated 28May98 LdB }
|
|
||||||
{---------------------------------------------------------------------------}
|
|
||||||
PROCEDURE TCluster.CreateWindowNow (CmdShow: Integer);
|
|
||||||
VAR I, J, L: Integer; Li: LongInt; Ct: String; Ts: PString; P: PChar; Wnd: HWnd;
|
|
||||||
BEGIN
|
|
||||||
If (HWindow = 0) Then Begin { Window not created }
|
|
||||||
Inherited CreateWindowNow (CmdShow); { Call ancestor }
|
|
||||||
If (HWindow <> 0) Then Begin { Window now created }
|
|
||||||
GetMem(WndHandles, Strings.Count*SizeOf(HWnd));{ Allocate memory }
|
|
||||||
For I := 1 To Strings.Count Do Begin
|
|
||||||
L := (I-1) * FontHeight; { Height of each line }
|
|
||||||
Ts := Strings.At(I-1); { Fetch string pointer }
|
|
||||||
If (Ts <> Nil) Then Ct := Ts^ Else Ct := ''; { Get string text }
|
|
||||||
Ct := Ct + #0; { Make asciiz }
|
|
||||||
J := Pos('~', Ct); { Check for tilde }
|
|
||||||
If (J <> 0) Then Ct[J] := '&'; { Sub 1st tilde }
|
|
||||||
Repeat
|
|
||||||
J := Pos('~', Ct); { Check for tilde }
|
|
||||||
If (J <> 0) Then System.Delete(Ct, J, 1); { Remove the tilde }
|
|
||||||
Until (J = 0); { Remove all tildes }
|
|
||||||
If (Ct <> #0) Then Begin { Check for empty }
|
|
||||||
GetMem(P, Length(Ct)); { Allocate memory }
|
|
||||||
Move(Ct[1], P^, Length(Ct)); { Move string data }
|
|
||||||
End Else P := Nil; { Return nil ptr }
|
|
||||||
{$IFDEF OS_WINDOWS}
|
|
||||||
If (Options AND ofFramed <> 0) OR { Normal frame }
|
|
||||||
(GOptions AND goThickFramed <> 0) Then { Thick frame }
|
|
||||||
Wnd := CreateWindowEx(0, 'BUTTON', P,
|
|
||||||
SubClassAttr OR ws_Child OR ws_Visible, FontWidth,
|
|
||||||
L+FontHeight, RawSize.X-2*FontWidth+1,
|
|
||||||
FontHeight, HWindow, cmTvClusterButton,
|
|
||||||
HInstance, Nil) Else { Create window }
|
|
||||||
Wnd := CreateWindowEx(0, 'BUTTON', P,
|
|
||||||
SubClassAttr OR ws_Child OR ws_Visible, 0, L,
|
|
||||||
RawSize.X+1, FontHeight, HWindow,
|
|
||||||
cmTvClusterButton, HInstance, Nil); { Create window }
|
|
||||||
If (Wnd <> 0) Then Begin { Window created ok }
|
|
||||||
{$IFDEF PPC_FPC}
|
|
||||||
Windows.SendMessage(Wnd, WM_SetFont,
|
|
||||||
DefGFVFont, 1); { Set font style }
|
|
||||||
{$ELSE}
|
|
||||||
WinProcs.SendMessage(Wnd, WM_SetFont,
|
|
||||||
DefGFVFont, 1); { Set font style }
|
|
||||||
{$ENDIF}
|
|
||||||
Li := LongInt(@Self); { Address of self }
|
|
||||||
{$IFDEF BIT_16} { 16 BIT CODE }
|
|
||||||
SetProp(Wnd, ViewSeg,
|
|
||||||
Li AND $FFFF0000 SHR 16); { Set seg property }
|
|
||||||
SetProp(Wnd, ViewOfs,
|
|
||||||
Li AND $0000FFFF); { Set ofs propertry }
|
|
||||||
{$ENDIF}
|
|
||||||
{$IFDEF BIT_32} { 32 BIT CODE }
|
|
||||||
SetProp(Wnd, ViewPtr, Li); { Set view property }
|
|
||||||
{$ENDIF}
|
|
||||||
If (CmdShow <> 0) Then
|
|
||||||
ShowWindow(Wnd, cmdShow); { Execute show cmd }
|
|
||||||
UpdateWindow(Wnd); { Update the window }
|
|
||||||
BringWindowToTop(Wnd); { Bring window to top }
|
|
||||||
End;
|
|
||||||
WndHandles^[I-1] := Wnd; { Hold the handle }
|
|
||||||
If Mark(I-1) Then { If item marked }
|
|
||||||
SendMessage(WndHandles^[I-1], bm_SetCheck,
|
|
||||||
1, 0) Else { Check the item }
|
|
||||||
SendMessage(WndHandles^[I-1], bm_SetCheck,
|
|
||||||
0, 0); { Uncheck the item }
|
|
||||||
{$ENDIF}
|
|
||||||
End;
|
|
||||||
End;
|
|
||||||
End;
|
|
||||||
END;
|
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
{***************************************************************************}
|
{***************************************************************************}
|
||||||
{ TCluster OBJECT PRIVATE METHODS }
|
{ TCluster OBJECT PRIVATE METHODS }
|
||||||
{***************************************************************************}
|
{***************************************************************************}
|
||||||
@ -2377,21 +2079,6 @@ BEGIN
|
|||||||
Inherited SetData(Rec); { Call ancestor }
|
Inherited SetData(Rec); { Call ancestor }
|
||||||
END;
|
END;
|
||||||
|
|
||||||
{$IFNDEF NO_WINDOW} { WIN/NT CODE }
|
|
||||||
{***************************************************************************}
|
|
||||||
{ TRadioButtons OBJECT WIN/NT/OS2 ONLY METHODS }
|
|
||||||
{***************************************************************************}
|
|
||||||
|
|
||||||
{--TRadioButtons------------------------------------------------------------}
|
|
||||||
{ SubClassAttr -> Platforms WIN/NT/OS2 - Updated 20May98 LdB }
|
|
||||||
{---------------------------------------------------------------------------}
|
|
||||||
FUNCTION TRadioButtons.SubClassAttr: LongInt;
|
|
||||||
BEGIN
|
|
||||||
SubClassAttr := Inherited SubClassAttr OR
|
|
||||||
bs_RadioButton; { Radio button }
|
|
||||||
END;
|
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
|
{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
|
||||||
{ TCheckBoxes OBJECT METHODS }
|
{ TCheckBoxes OBJECT METHODS }
|
||||||
{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
|
{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
|
||||||
@ -2424,21 +2111,6 @@ BEGIN
|
|||||||
Inherited Press(Item); { Call ancestor }
|
Inherited Press(Item); { Call ancestor }
|
||||||
END;
|
END;
|
||||||
|
|
||||||
{$IFNDEF NO_WINDOW} { WIN/NT/OS2 CODE }
|
|
||||||
{***************************************************************************}
|
|
||||||
{ TCheckBoxes OBJECT WIN/NT/OS2 ONLY METHODS }
|
|
||||||
{***************************************************************************}
|
|
||||||
|
|
||||||
{--TCheckBoxes--------------------------------------------------------------}
|
|
||||||
{ SubClassAttr -> Platforms WIN/NT/OS2 - Updated 20May98 LdB }
|
|
||||||
{---------------------------------------------------------------------------}
|
|
||||||
FUNCTION TCheckBoxes.SubClassAttr: LongInt;
|
|
||||||
BEGIN
|
|
||||||
SubClassAttr := Inherited SubClassAttr OR
|
|
||||||
bs_CheckBox; { Check box buttons }
|
|
||||||
END;
|
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
|
{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
|
||||||
{ TMultiCheckBoxes OBJECT METHODS }
|
{ TMultiCheckBoxes OBJECT METHODS }
|
||||||
{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
|
{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
|
||||||
@ -2549,21 +2221,6 @@ BEGIN
|
|||||||
S.WriteStr(States); { Write strings }
|
S.WriteStr(States); { Write strings }
|
||||||
END;
|
END;
|
||||||
|
|
||||||
{$IFNDEF NO_WINDOW} { WIN/NT/OS2 CODE }
|
|
||||||
{***************************************************************************}
|
|
||||||
{ TMultiCheckBoxes OBJECT WIN/NT/OS2 ONLY METHODS }
|
|
||||||
{***************************************************************************}
|
|
||||||
|
|
||||||
{--TMultiCheckBoxes---------------------------------------------------------}
|
|
||||||
{ SubClassAttr -> Platforms WIN/NT/OS2 - Updated 06Jun98 LdB }
|
|
||||||
{---------------------------------------------------------------------------}
|
|
||||||
FUNCTION TMultiCheckBoxes.SubClassAttr: LongInt;
|
|
||||||
BEGIN
|
|
||||||
SubClassAttr := Inherited SubClassAttr OR
|
|
||||||
bs_CheckBox; { Check box buttons }
|
|
||||||
END;
|
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
|
{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
|
||||||
{ TListBox OBJECT METHODS }
|
{ TListBox OBJECT METHODS }
|
||||||
{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
|
{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
|
||||||
@ -3224,7 +2881,10 @@ END;
|
|||||||
END.
|
END.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.6 2001-05-04 10:46:01 pierre
|
Revision 1.7 2001-05-07 22:22:03 pierre
|
||||||
|
* removed NO_WINDOW cond, added GRAPH_API
|
||||||
|
|
||||||
|
Revision 1.6 2001/05/04 10:46:01 pierre
|
||||||
* various fixes for win32 api mode
|
* various fixes for win32 api mode
|
||||||
|
|
||||||
Revision 1.5 2001/05/04 08:42:54 pierre
|
Revision 1.5 2001/05/04 08:42:54 pierre
|
||||||
|
@ -599,10 +599,8 @@ CONST
|
|||||||
MouseMoveProc: DrawProc = Nil; { Mouse moved procedure }
|
MouseMoveProc: DrawProc = Nil; { Mouse moved procedure }
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
{$IFDEF NO_WINDOW}
|
|
||||||
PROCEDURE HideMouseCursor;
|
PROCEDURE HideMouseCursor;
|
||||||
PROCEDURE ShowMouseCursor;
|
PROCEDURE ShowMouseCursor;
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
{---------------------------------------------------------------------------}
|
{---------------------------------------------------------------------------}
|
||||||
{ INITIALIZED WIN/NT VARIABLES }
|
{ INITIALIZED WIN/NT VARIABLES }
|
||||||
@ -3041,7 +3039,10 @@ BEGIN
|
|||||||
END.
|
END.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.8 2001-05-04 15:43:45 pierre
|
Revision 1.9 2001-05-07 22:22:03 pierre
|
||||||
|
* removed NO_WINDOW cond, added GRAPH_API
|
||||||
|
|
||||||
|
Revision 1.8 2001/05/04 15:43:45 pierre
|
||||||
* several more fixes
|
* several more fixes
|
||||||
|
|
||||||
Revision 1.7 2001/05/04 10:46:02 pierre
|
Revision 1.7 2001/05/04 10:46:02 pierre
|
||||||
|
@ -72,7 +72,7 @@ UNIT GFVGraph;
|
|||||||
{$V-} { Turn off strict VAR strings }
|
{$V-} { Turn off strict VAR strings }
|
||||||
{====================================================================}
|
{====================================================================}
|
||||||
|
|
||||||
{$IFDEF NO_WINDOW} { DOS/DPMI CODE }
|
{$IFDEF GRAPH_API} { GRAPH CODE }
|
||||||
USES Graph; { Standard unit }
|
USES Graph; { Standard unit }
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
@ -125,7 +125,7 @@ CONST
|
|||||||
CONST
|
CONST
|
||||||
Detect = 0; { Detect video }
|
Detect = 0; { Detect video }
|
||||||
|
|
||||||
{$IFDEF NO_WINDOW} { DOS CODE ONLY }
|
{$IFDEF GRAPH_API} { DOS CODE ONLY }
|
||||||
{---------------------------------------------------------------------------}
|
{---------------------------------------------------------------------------}
|
||||||
{ DOS GRAPHICS SOLID FILL BAR AREA CONSTANT }
|
{ DOS GRAPHICS SOLID FILL BAR AREA CONSTANT }
|
||||||
{---------------------------------------------------------------------------}
|
{---------------------------------------------------------------------------}
|
||||||
@ -133,28 +133,6 @@ CONST
|
|||||||
SolidFill = Graph.SolidFill;
|
SolidFill = Graph.SolidFill;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
{$IFDEF OS_WINDOWS} { WIN/NT CODE }
|
|
||||||
{---------------------------------------------------------------------------}
|
|
||||||
{ WIN/NT STANDARD TColorRef CONSTANTS TO MATCH COLOUR CONSTANTS }
|
|
||||||
{---------------------------------------------------------------------------}
|
|
||||||
CONST
|
|
||||||
rgb_Black = $00000000; { 0 = Black }
|
|
||||||
rgb_Blue = $007F0000; { 1 = Blue }
|
|
||||||
rgb_Green = $00007F00; { 2 = Green }
|
|
||||||
rgb_Cyan = $007F7F00; { 3 = Cyan }
|
|
||||||
rgb_Red = $0000007F; { 4 = Red }
|
|
||||||
rgb_Magenta = $007F7F00; { 5 = Magenta }
|
|
||||||
rgb_Brown = $00007F7F; { 6 = Brown }
|
|
||||||
rgb_LightGray = $00AFAFAF; { 7 = LightGray }
|
|
||||||
rgb_DarkGray = $004F4F4F; { 8 = DarkGray }
|
|
||||||
rgb_LightBlue = $00FF0000; { 9 = Light Blue }
|
|
||||||
rgb_LightGreen = $0000FF00; { 10 = Light Green }
|
|
||||||
rgb_LightCyan = $00FFFF00; { 11 = Light Cyan }
|
|
||||||
rgb_LightRed = $000000FF; { 12 = Light Red }
|
|
||||||
rgb_LightMagenta = $00FFFF00; { 13 = Light Magenta }
|
|
||||||
rgb_Yellow = $0000FFFF; { 14 = Yellow }
|
|
||||||
rgb_White = $00FFFFFF; { 15 = White }
|
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
{***************************************************************************}
|
{***************************************************************************}
|
||||||
{ PUBLIC TYPE DEFINITIONS }
|
{ PUBLIC TYPE DEFINITIONS }
|
||||||
@ -219,14 +197,12 @@ graphics routine, that is the actual screen height in pixels - 1.
|
|||||||
---------------------------------------------------------------------}
|
---------------------------------------------------------------------}
|
||||||
FUNCTION GetMaxY (TextMode: Boolean): Integer;
|
FUNCTION GetMaxY (TextMode: Boolean): Integer;
|
||||||
|
|
||||||
{$IFDEF NO_WINDOW} { DOS/DPMI CODE }
|
|
||||||
PROCEDURE SetColor(Color: Word);
|
PROCEDURE SetColor(Color: Word);
|
||||||
PROCEDURE SetFillStyle (Pattern: Word; Color: Word);
|
PROCEDURE SetFillStyle (Pattern: Word; Color: Word);
|
||||||
PROCEDURE Bar (X1, Y1, X2, Y2: Integer);
|
PROCEDURE Bar (X1, Y1, X2, Y2: Integer);
|
||||||
PROCEDURE Line(X1, Y1, X2, Y2: Integer);
|
PROCEDURE Line(X1, Y1, X2, Y2: Integer);
|
||||||
PROCEDURE Rectangle(X1, Y1, X2, Y2: Integer);
|
PROCEDURE Rectangle(X1, Y1, X2, Y2: Integer);
|
||||||
PROCEDURE OutTextXY(X,Y: Integer; TextString: String);
|
PROCEDURE OutTextXY(X,Y: Integer; TextString: String);
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
{***************************************************************************}
|
{***************************************************************************}
|
||||||
{ INITIALIZED PUBLIC VARIABLES }
|
{ INITIALIZED PUBLIC VARIABLES }
|
||||||
@ -272,12 +248,13 @@ CONST
|
|||||||
{---------------------------------------------------------------------------}
|
{---------------------------------------------------------------------------}
|
||||||
PROCEDURE SetWriteMode (Mode: Byte; TextMode: Boolean);
|
PROCEDURE SetWriteMode (Mode: Byte; TextMode: Boolean);
|
||||||
BEGIN
|
BEGIN
|
||||||
{$IFDEF NO_WINDOW} { DOS/DPMI CODE }
|
{$IFDEF GRAPH_API} { GRAPH CODE }
|
||||||
If TextMode Then WriteMode := Mode { Hold write mode }
|
If TextMode Then
|
||||||
|
WriteMode := Mode { Hold write mode }
|
||||||
Else Graph.SetWriteMode(Mode); { Call graph proc }
|
Else Graph.SetWriteMode(Mode); { Call graph proc }
|
||||||
{$ELSE} { WIN/NT/OS2 CODE }
|
{$ELSE not GRAPH_API}
|
||||||
WriteMode := Mode; { Hold writemode value }
|
WriteMode := Mode; { Hold write mode }
|
||||||
{$ENDIF}
|
{$ENDIF not GRAPH_API}
|
||||||
END;
|
END;
|
||||||
|
|
||||||
{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
|
{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
|
||||||
@ -288,9 +265,13 @@ END;
|
|||||||
{ GetViewSettings -> Platforms DOS/DPMI/WIN/NT/OS2 - Updated 05Dec2000 LdB }
|
{ GetViewSettings -> Platforms DOS/DPMI/WIN/NT/OS2 - Updated 05Dec2000 LdB }
|
||||||
{---------------------------------------------------------------------------}
|
{---------------------------------------------------------------------------}
|
||||||
PROCEDURE GetViewSettings (Var CurrentViewPort: ViewPortType; TextMode: Boolean);
|
PROCEDURE GetViewSettings (Var CurrentViewPort: ViewPortType; TextMode: Boolean);
|
||||||
{$IFDEF NO_WINDOW} VAR Ts: Graph.ViewPortType;{$ENDIF} { DOS/DPMI CODE }
|
{$IFDEF GRAPH_API}
|
||||||
|
VAR Ts: Graph.ViewPortType;
|
||||||
|
{$ENDIF GRAPH_API}
|
||||||
BEGIN
|
BEGIN
|
||||||
{$IFDEF NO_WINDOW} { DOS/DPMI CODE }
|
{$IFNDEF GRAPH_API}
|
||||||
|
CurrentViewPort := ViewPort; { Textmode viewport }
|
||||||
|
{$ELSE GRAPH_API}
|
||||||
If TextMode Then CurrentViewPort := ViewPort { Textmode viewport }
|
If TextMode Then CurrentViewPort := ViewPort { Textmode viewport }
|
||||||
Else Begin
|
Else Begin
|
||||||
Graph.GetViewSettings(Ts); { Get graph settings }
|
Graph.GetViewSettings(Ts); { Get graph settings }
|
||||||
@ -300,9 +281,7 @@ BEGIN
|
|||||||
CurrentViewPort.Y2 := Ts.Y2; { Transfer Y2 }
|
CurrentViewPort.Y2 := Ts.Y2; { Transfer Y2 }
|
||||||
CurrentViewPort.Clip := Ts.Clip; { Transfer clip mask }
|
CurrentViewPort.Clip := Ts.Clip; { Transfer clip mask }
|
||||||
End;
|
End;
|
||||||
{$ELSE} { WIN/NT/OS2 CODE }
|
{$ENDIF GRAPH_API}
|
||||||
CurrentViewPort := ViewPort; { Return view port }
|
|
||||||
{$ENDIF}
|
|
||||||
END;
|
END;
|
||||||
|
|
||||||
{---------------------------------------------------------------------------}
|
{---------------------------------------------------------------------------}
|
||||||
@ -310,9 +289,9 @@ END;
|
|||||||
{---------------------------------------------------------------------------}
|
{---------------------------------------------------------------------------}
|
||||||
PROCEDURE SetViewPort (X1, Y1, X2, Y2: Integer; Clip, TextMode: Boolean);
|
PROCEDURE SetViewPort (X1, Y1, X2, Y2: Integer; Clip, TextMode: Boolean);
|
||||||
BEGIN
|
BEGIN
|
||||||
{$IFDEF NO_WINDOW} { DOS/DPMI CODE }
|
{$IFDEF GRAPH_API}
|
||||||
If (TextMode = TRUE) Then Begin { TEXT MODE GFV }
|
If TextMode Then Begin { TEXT MODE GFV }
|
||||||
{$ENDIF}
|
{$ENDIF GRAPH_API}
|
||||||
If (X1 < 0) Then X1 := 0; { X1 negative fix }
|
If (X1 < 0) Then X1 := 0; { X1 negative fix }
|
||||||
If (X1 > SysScreenWidth) Then
|
If (X1 > SysScreenWidth) Then
|
||||||
X1 := SysScreenWidth; { X1 off screen fix }
|
X1 := SysScreenWidth; { X1 off screen fix }
|
||||||
@ -332,11 +311,11 @@ BEGIN
|
|||||||
ViewPort.Clip := Clip; { Set port clip value }
|
ViewPort.Clip := Clip; { Set port clip value }
|
||||||
Cxp := X1; { Set current x pos }
|
Cxp := X1; { Set current x pos }
|
||||||
Cyp := Y1; { Set current y pos }
|
Cyp := Y1; { Set current y pos }
|
||||||
{$IFDEF NO_WINDOW} { DOS/DPMI CODE }
|
{$IFDEF GRAPH_API}
|
||||||
End Else Begin { GRAPHICS MODE GFV }
|
End Else Begin { GRAPHICS MODE GFV }
|
||||||
Graph.SetViewPort(X1, Y1, X2, Y2, Clip); { Call graph proc }
|
Graph.SetViewPort(X1, Y1, X2, Y2, Clip); { Call graph proc }
|
||||||
End;
|
End;
|
||||||
{$ENDIF}
|
{$ENDIF GRAPH_API}
|
||||||
END;
|
END;
|
||||||
|
|
||||||
{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
|
{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
|
||||||
@ -348,12 +327,13 @@ END;
|
|||||||
{---------------------------------------------------------------------------}
|
{---------------------------------------------------------------------------}
|
||||||
FUNCTION GetMaxX (TextMode: Boolean): Integer;
|
FUNCTION GetMaxX (TextMode: Boolean): Integer;
|
||||||
BEGIN
|
BEGIN
|
||||||
{$IFDEF NO_WINDOW} { DOS/DPMI CODE }
|
{$IFDEF GRAPH_API}
|
||||||
If TextMode Then GetMaxX := SysScreenWidth-1 { Screen width }
|
If TextMode Then
|
||||||
|
{$ENDIF GRAPH_API}
|
||||||
|
GetMaxX := SysScreenWidth-1 { Screen width }
|
||||||
|
{$IFDEF GRAPH_API}
|
||||||
Else GetMaxX := Graph.GetMaxX; { Call graph func }
|
Else GetMaxX := Graph.GetMaxX; { Call graph func }
|
||||||
{$ELSE} { WIN/NT/OS2 CODE }
|
{$ENDIF GRAPH_API}
|
||||||
GetMaxX := SysScreenWidth-1; { Screen width }
|
|
||||||
{$ENDIF}
|
|
||||||
END;
|
END;
|
||||||
|
|
||||||
{---------------------------------------------------------------------------}
|
{---------------------------------------------------------------------------}
|
||||||
@ -361,50 +341,64 @@ END;
|
|||||||
{---------------------------------------------------------------------------}
|
{---------------------------------------------------------------------------}
|
||||||
FUNCTION GetMaxY (TextMode: Boolean): Integer;
|
FUNCTION GetMaxY (TextMode: Boolean): Integer;
|
||||||
BEGIN
|
BEGIN
|
||||||
{$IFDEF NO_WINDOW} { DOS/DPMI CODE }
|
{$IFDEF GRAPH_API}
|
||||||
If TextMode Then GetMaxY := SysScreenHeight-1 { Screen height }
|
If TextMode Then
|
||||||
|
{$ENDIF GRAPH_API}
|
||||||
|
GetMaxY := SysScreenHeight-1 { Screen height }
|
||||||
|
{$IFDEF GRAPH_API}
|
||||||
Else GetMaxY := Graph.GetMaxY; { Call graph func }
|
Else GetMaxY := Graph.GetMaxY; { Call graph func }
|
||||||
{$ELSE} { WIN/NT/OS2 CODE }
|
{$ENDIF GRAPH_API}
|
||||||
GetMaxY := SysScreenHeight-1; { Screen height }
|
|
||||||
{$ENDIF}
|
|
||||||
END;
|
END;
|
||||||
|
|
||||||
{$IFDEF NO_WINDOW} { DOS/DPMI CODE }
|
|
||||||
PROCEDURE SetColor(Color: Word);
|
PROCEDURE SetColor(Color: Word);
|
||||||
BEGIN
|
BEGIN
|
||||||
|
{$IFDEF GRAPH_API}
|
||||||
Graph.SetColor(Color); { Call graph proc }
|
Graph.SetColor(Color); { Call graph proc }
|
||||||
|
{$ENDIF GRAPH_API}
|
||||||
END;
|
END;
|
||||||
|
|
||||||
PROCEDURE SetFillStyle (Pattern: Word; Color: Word);
|
PROCEDURE SetFillStyle (Pattern: Word; Color: Word);
|
||||||
BEGIN
|
BEGIN
|
||||||
|
{$IFDEF GRAPH_API}
|
||||||
Graph.SetFillStyle(Pattern, Color); { Call graph proc }
|
Graph.SetFillStyle(Pattern, Color); { Call graph proc }
|
||||||
|
{$ENDIF GRAPH_API}
|
||||||
END;
|
END;
|
||||||
|
|
||||||
PROCEDURE Bar (X1, Y1, X2, Y2: Integer);
|
PROCEDURE Bar (X1, Y1, X2, Y2: Integer);
|
||||||
BEGIN
|
BEGIN
|
||||||
|
{$IFDEF GRAPH_API}
|
||||||
Graph.Bar(X1, Y1, X2, Y2); { Call graph proc }
|
Graph.Bar(X1, Y1, X2, Y2); { Call graph proc }
|
||||||
|
{$ENDIF GRAPH_API}
|
||||||
END;
|
END;
|
||||||
|
|
||||||
PROCEDURE Line(X1, Y1, X2, Y2: Integer);
|
PROCEDURE Line(X1, Y1, X2, Y2: Integer);
|
||||||
BEGIN
|
BEGIN
|
||||||
|
{$IFDEF GRAPH_API}
|
||||||
Graph.Line(X1, Y1, X2, Y2); { Call graph proc }
|
Graph.Line(X1, Y1, X2, Y2); { Call graph proc }
|
||||||
|
{$ENDIF GRAPH_API}
|
||||||
END;
|
END;
|
||||||
|
|
||||||
PROCEDURE Rectangle(X1, Y1, X2, Y2: Integer);
|
PROCEDURE Rectangle(X1, Y1, X2, Y2: Integer);
|
||||||
BEGIN
|
BEGIN
|
||||||
|
{$IFDEF GRAPH_API}
|
||||||
Graph.Rectangle(X1, Y1, X2, Y2); { Call graph proc }
|
Graph.Rectangle(X1, Y1, X2, Y2); { Call graph proc }
|
||||||
|
{$ENDIF GRAPH_API}
|
||||||
END;
|
END;
|
||||||
|
|
||||||
PROCEDURE OutTextXY(X,Y: Integer; TextString: string);
|
PROCEDURE OutTextXY(X,Y: Integer; TextString: string);
|
||||||
BEGIN
|
BEGIN
|
||||||
|
{$IFDEF GRAPH_API}
|
||||||
Graph.OutTextXY(X, Y, TextString); { Call graph proc }
|
Graph.OutTextXY(X, Y, TextString); { Call graph proc }
|
||||||
|
{$ENDIF GRAPH_API}
|
||||||
END;
|
END;
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
END.
|
END.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.5 2001-05-04 15:43:45 pierre
|
Revision 1.6 2001-05-07 22:22:03 pierre
|
||||||
|
* removed NO_WINDOW cond, added GRAPH_API
|
||||||
|
|
||||||
|
Revision 1.5 2001/05/04 15:43:45 pierre
|
||||||
* several more fixes
|
* several more fixes
|
||||||
|
|
||||||
Revision 1.4 2001/04/10 21:57:55 pierre
|
Revision 1.4 2001/04/10 21:57:55 pierre
|
||||||
|
@ -1022,16 +1022,6 @@ 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 }
|
|
||||||
HWindow := 0; { Must zero handle }
|
|
||||||
Dc := 0; { Must zero context }
|
|
||||||
{$ENDIF}
|
|
||||||
{$IFDEF OS_OS2} { OS2 CODE }
|
|
||||||
HWindow := 0; { Must zero handle }
|
|
||||||
Ps := 0; { Must zero pres space }
|
|
||||||
{$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 }
|
||||||
@ -1683,7 +1673,10 @@ END;
|
|||||||
END.
|
END.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.6 2001-05-04 15:43:45 pierre
|
Revision 1.7 2001-05-07 22:22:03 pierre
|
||||||
|
* removed NO_WINDOW cond, added GRAPH_API
|
||||||
|
|
||||||
|
Revision 1.6 2001/05/04 15:43:45 pierre
|
||||||
* several more fixes
|
* several more fixes
|
||||||
|
|
||||||
Revision 1.5 2001/05/04 10:46:02 pierre
|
Revision 1.5 2001/05/04 10:46:02 pierre
|
||||||
|
Loading…
Reference in New Issue
Block a user