summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--examples/gfx/subwindow/subwindow.lpi7
-rw-r--r--gfx/x11/gfx_x11.pas414
-rw-r--r--gui/fpguiform.inc4
-rw-r--r--prototypes/newmultihandle/examples/helloworld.lpi33
4 files changed, 221 insertions, 237 deletions
diff --git a/examples/gfx/subwindow/subwindow.lpi b/examples/gfx/subwindow/subwindow.lpi
index 88f43f80..d2f61887 100644
--- a/examples/gfx/subwindow/subwindow.lpi
+++ b/examples/gfx/subwindow/subwindow.lpi
@@ -1,12 +1,12 @@
<?xml version="1.0"?>
<CONFIG>
<ProjectOptions>
- <PathDelim Value="\"/>
+ <PathDelim Value="/"/>
<Version Value="5"/>
<General>
<SessionStorage Value="InProjectDir"/>
<MainUnit Value="0"/>
- <IconPath Value=".\"/>
+ <IconPath Value="./"/>
<TargetFileExt Value=".exe"/>
</General>
<VersionInfo>
@@ -20,7 +20,7 @@
<RunParams>
<local>
<FormatVersion Value="1"/>
- <LaunchingApplication PathPlusParams="\usr\X11R6\bin\xterm -T 'Lazarus Run Output' -e $(LazarusDir)\tools\runwait.sh $(TargetCmdLine)"/>
+ <LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
</local>
</RunParams>
<RequiredPackages Count="1">
@@ -38,7 +38,6 @@
</ProjectOptions>
<CompilerOptions>
<Version Value="5"/>
- <PathDelim Value="\"/>
<CodeGeneration>
<Generate Value="Faster"/>
</CodeGeneration>
diff --git a/gfx/x11/gfx_x11.pas b/gfx/x11/gfx_x11.pas
index f49228cb..0246cce8 100644
--- a/gfx/x11/gfx_x11.pas
+++ b/gfx/x11/gfx_x11.pas
@@ -27,11 +27,11 @@ unit GFX_X11;
interface
uses
- SysUtils, Classes, // FPC units
- X, XLib, XUtil, // X11 units
- unitxft, // Xft font support
- GfxBase, // fpGFX units
- GELDirty; // fpGFX emulation layer
+ SysUtils, Classes, ctypes, // FPC units
+ X, XLib, XUtil, // X11 units
+ unitxft, // Xft font support
+ GfxBase, // fpGFX units
+ GELDirty; // fpGFX emulation layer
resourcestring
@@ -228,7 +228,8 @@ type
FComposeStatus: TXComposeStatus;
FComposeBuffer: String[32];
FCurCursorHandle: X.TCursor;
- function StartComposing(const Event: TFEvent): TKeySym;
+ FXEvent: PXEvent;
+ function StartComposing(const Event: TXEvent): TKeySym;
procedure EndComposing;
procedure Expose(var Event: TXExposeEvent); message X.Expose;
procedure Configure(var Event: TXConfigureEvent); message X.ConfigureNotify;
@@ -244,8 +245,10 @@ type
function GetHandle: PtrUInt; override;
procedure UpdateMotifWMHints;
public
+ { Constructors / Destructors }
constructor Create(AParent: TFCustomWindow; AWindowOptions: TFWindowOptions); override;
destructor Destroy; override;
+ { Widget controling methods }
procedure SetPosition(const APosition: TPoint); override;
procedure SetSize(const ASize: TSize); override;
procedure SetMinMaxSize(const AMinSize, AMaxSize: TSize); override;
@@ -256,7 +259,24 @@ type
procedure PaintInvalidRegion; override;
procedure CaptureMouse; override;
procedure ReleaseMouse; override;
- procedure ProcessEvent(AEvent: TFEvent); override;
+ { Event processing methods }
+ procedure EvCreate; override;
+ procedure EvFocusIn; override;
+ procedure EvFocusOut; override;
+ procedure EvHide; override;
+ procedure EvKeyPressed(AKey: Word); override;
+ procedure EvKeyReleased(AKey: Word); override;
+ procedure EvKeyChar(AKeyChar: Char); override;
+ procedure EvMouseEnter(const AMousePos: TPoint); override;
+ procedure EvMouseLeave; override;
+ procedure EvMousePressed(AButton: TMouseButton; const AMousePos: TPoint); override;
+ procedure EvMouseReleased(AButton: TMouseButton; const AMousePos: TPoint); override;
+ procedure EvMouseMove(const AMousePos: TPoint); override;
+ procedure EvMouseWheel(AWheelDelta: Single; const AMousePos: TPoint); override;
+ procedure EvPaint; override;
+ procedure EvMove; override;
+ procedure EvResize; override;
+ procedure EvShow; override;
end;
@@ -267,7 +287,7 @@ var
function RectToXRect(const ARect: TRect): TXRectangle;
function XRectToRect(const ARect: TXRectangle): TRect;
function GetXEventName(Event: LongInt): String;
-
+function XButtonToMouseButton(const XButton: cint; var MouseButton: TMouseButton): Boolean;
implementation
@@ -276,7 +296,7 @@ uses
,fpGFX
,fpUTF8Utils
,Xatom
- ,CTypes {,keysym ,libc , }
+ {,keysym ,libc , }
;
resourcestring
@@ -999,7 +1019,9 @@ procedure TX11Application.Run;
var
XEvent: TXEvent;
WindowEntry: TFCustomWindow;
- Event: TFEvent;
+ MouseButton: TMouseButton;
+ Sum: Integer;
+ NewEvent: TXEvent;
begin
inherited Run;
@@ -1037,8 +1059,7 @@ begin
continue;
end;
- Event := TFEvent.Create;
- Event.EventPointer := @XEvent;
+ TX11Window(WindowEntry).FXEvent := @XEvent;
case XEvent._type of
X.DestroyNotify:
@@ -1047,86 +1068,80 @@ begin
end;
X.KeyPress:
begin
- Event.EventType := etKeyPressed;
- Event.State := XEvent.xkey.state;
- WindowEntry.ProcessEvent(Event);
+ WindowEntry.EvKeyPressed(XEvent.xkey.keycode);
end;
X.KeyRelease:
begin
- Event.EventType := etKeyReleased;
- Event.State := XEvent.xkey.state;
- WindowEntry.ProcessEvent(Event);
+ WindowEntry.EvKeyReleased(XEvent.xkey.keycode);
end;
X.ButtonPress:
begin
- Event.EventType := etMousePressed;
- Event.State := XEvent.xbutton.state;
- Event.Button := XEvent.xbutton.button;
- Event.X := XEvent.xbutton.x;
- Event.Y := XEvent.xbutton.y;
- WindowEntry.ProcessEvent(Event);
+ if XButtonToMouseButton(XEvent.xbutton.button, MouseButton) then
+ WindowEntry.EvMousePressed(MouseButton,
+ Point(XEvent.xbutton.x, XEvent.xbutton.y))
+ else
+ begin
+ if XEvent.xbutton.button = 4 then Sum := -1
+ else Sum := 1;
+
+ // Check for other mouse wheel messages in the queue
+ while XCheckTypedWindowEvent(GFApplication.Handle,
+ WindowEntry.Handle, X.ButtonPress, @NewEvent) do
+ begin
+ if NewEvent.xbutton.Button = 4 then Dec(Sum)
+ else if NewEvent.xbutton.Button = 5 then Inc(Sum)
+ else
+ begin
+ XPutBackEvent(GFApplication.Handle, @NewEvent);
+ break;
+ end;
+ end;
+
+ WindowEntry.EvMouseWheel(
+ Sum, Point(XEvent.xbutton.x, XEvent.xbutton.y));
+ end;
end;
X.ButtonRelease:
begin
- Event.EventType := etMouseReleased;
- Event.State := XEvent.xbutton.state;
- Event.Button := XEvent.xbutton.button;
- Event.X := XEvent.xbutton.x;
- Event.Y := XEvent.xbutton.y;
- WindowEntry.ProcessEvent(Event);
+ XButtonToMouseButton(XEvent.xbutton.button, MouseButton);
+
+ WindowEntry.EvMouseReleased(
+ MouseButton,
+ Point(XEvent.xbutton.x, XEvent.xbutton.y));
end;
X.EnterNotify:
begin
- Event.EventType := etMouseEnter;
- Event.State := XEvent.xbutton.state;
- Event.Button := XEvent.xbutton.button;
- Event.X := XEvent.xbutton.x;
- Event.Y := XEvent.xbutton.y;
- WindowEntry.ProcessEvent(Event);
+ WindowEntry.EvMouseEnter(
+ Point(XEvent.xbutton.x, XEvent.xbutton.y));
end;
X.LeaveNotify:
begin
- Event.EventType := etMouseLeave;
- Event.State := XEvent.xbutton.state;
- Event.Button := XEvent.xbutton.button;
- Event.X := XEvent.xbutton.x;
- Event.Y := XEvent.xbutton.y;
- WindowEntry.ProcessEvent(Event);
+ WindowEntry.EvMouseLeave();
end;
X.MotionNotify:
begin
- Event.EventType := etMouseMove;
- Event.State := XEvent.xbutton.state;
- Event.Button := XEvent.xbutton.button;
- Event.X := XEvent.xbutton.x;
- Event.Y := XEvent.xbutton.y;
- WindowEntry.ProcessEvent(Event);
+ WindowEntry.EvMouseMove(
+ Point(XEvent.xbutton.x, XEvent.xbutton.y));
end;
X.FocusIn:
begin
- Event.EventType := etFocusIn;
- WindowEntry.ProcessEvent(Event);
+ WindowEntry.EvFocusIn();
end;
X.FocusOut:
begin
- Event.EventType := etFocusOut;
- WindowEntry.ProcessEvent(Event);
+ WindowEntry.EvFocusOut();
end;
X.MapNotify:
begin
-// writeln(Format('==MapNotify== Window ID = %d', [XEvent.XAny.Window]));
- Event.EventType := etShow;
- WindowEntry.ProcessEvent(Event);
+ WindowEntry.EvShow();
end;
X.UnmapNotify:
begin
- Event.EventType := etHide;
- WindowEntry.ProcessEvent(Event);
+ WindowEntry.EvHide();
end;
X.ReparentNotify:
begin
- Event.EventType := etCreate;
- WindowEntry.ProcessEvent(Event);
+ WindowEntry.EvCreate();
end;
X.Expose:
begin
@@ -1134,12 +1149,7 @@ begin
For now we are just ignoring all expose messages where Count <> 0 }
if XEvent.xexpose.count = 0 then
begin
- Event.EventType := etPaint;
- Event.X := XEvent.xexpose.x;
- Event.Y := XEvent.xexpose.y;
- Event.Width := XEvent.xexpose.width;
- Event.Height := Xevent.xexpose.height;
- WindowEntry.ProcessEvent(Event);
+ WindowEntry.EvPaint();
end;
end;
X.ConfigureNotify:
@@ -1154,7 +1164,6 @@ begin
WriteLn('fpGFX/X11: Unhandled X11 event received: ', GetXEventName(XEvent._type));
end;
- Event.Free;
end;
end;
DoBreakRun := False;
@@ -1234,9 +1243,6 @@ end;
{ TX11Window }
-const
- ButtonTable: array[1..3] of TMouseButton = (mbLeft, mbMiddle, mbRight);
-
{ Note, this only creates a window, it doesn't actually show the window. It
is still invisible. To make it visible, we need to call Show(). }
constructor TX11Window.Create(AParent: TFCustomWindow; AWindowOptions: TFWindowOptions);
@@ -1543,149 +1549,120 @@ begin
XUngrabPointer(GFApplication.Handle, CurrentTime);
end;
-procedure TX11Window.ProcessEvent(AEvent: TFEvent);
+procedure TX11Window.EvCreate;
+begin
+ if Assigned(OnCreate) then OnCreate(Self)
+end;
+
+procedure TX11Window.EvFocusIn;
+begin
+ if Assigned(OnFocusIn) then OnFocusIn(Self);
+end;
+
+procedure TX11Window.EvFocusOut;
+begin
+ if Assigned(OnFocusOut) then OnFocusOut(Self);
+end;
+
+procedure TX11Window.EvHide;
+begin
+ if Assigned(OnHide) then OnHide(Self);
+end;
+
+procedure TX11Window.EvKeyPressed(AKey: Word);
var
KeySym: TKeySym;
- Sum: Integer;
- NewEvent: TXEvent;
begin
- case AEvent.EventType of
- etCreate:
- begin
- if Assigned(OnCreate) then OnCreate(Self)
- else if Assigned(Parent) then Parent.ProcessEvent(AEvent);
- end;
- etCanClose:
- begin
-
- end;
- etClose:
- begin
-
- end;
- etFocusIn:
- begin
- if Assigned(OnFocusIn) then OnFocusIn(Self);
- end;
- etFocusOut:
- begin
- if Assigned(OnFocusOut) then OnFocusOut(Self);
- end;
- etHide:
- begin
- if Assigned(OnHide) then OnHide(Self);
- end;
- etKeyPressed:
- begin
- KeySym := StartComposing(AEvent);
-
- if Assigned(OnKeyPressed) then
- OnKeyPressed(Self, KeySymToKeycode(KeySym), ConvertShiftState(AEvent.State))
- else if Assigned(Parent) then Parent.ProcessEvent(AEvent);
-
- if (AEvent.State and (ControlMask or Mod1Mask)) = 0 then EndComposing;
- end;
- etKeyReleased:
- begin
- KeySym := StartComposing(AEvent);
-
- if Assigned(OnKeyReleased) then
- OnKeyReleased(Self, KeySymToKeycode(KeySym), ConvertShiftState(AEvent.State))
- else if Assigned(Parent) then Parent.ProcessEvent(AEvent);
-
- // Do not call EndComposing, as this would generate duplicate KeyChar events!
- end;
- etKeyChar:
- begin
- if Assigned(OnKeyChar) then OnKeyChar(Self, Chr(AEvent.wParam))
- else if Assigned(Parent) then Parent.ProcessEvent(AEvent);
- end;
- etMouseEnter:
- begin
- if Assigned(OnMouseEnter) then
- OnMouseEnter(Self, ConvertShiftState(AEvent.State), Point(AEvent.x, AEvent.y))
- else if Assigned(Parent) then Parent.ProcessEvent(AEvent);
- end;
- etMouseLeave:
- begin
- if Assigned(OnMouseLeave) then OnMouseLeave(Self)
- else if Assigned(Parent) then Parent.ProcessEvent(AEvent);
- end;
- etMousePressed:
- begin
- case AEvent.Button of
- Button1..Button3:
- begin
- if Assigned(OnMousePressed) then
- OnMousePressed(Self, ButtonTable[AEvent.Button],
- ConvertShiftState(AEvent.State), Point(AEvent.x, AEvent.y))
- else if Assigned(Parent) then Parent.ProcessEvent(AEvent);
- end;
- Button4, Button5: // Mouse wheel message
- begin
- if AEvent.Button = Button4 then
- Sum := -1
- else
- Sum := 1;
-
- // Check for other mouse wheel messages in the queue
- while XCheckTypedWindowEvent(GFApplication.Handle, Handle, X.ButtonPress, @NewEvent) do
- begin
- if NewEvent.xbutton.Button = 4 then
- Dec(Sum)
- else if NewEvent.xbutton.Button = 5 then
- Inc(Sum)
- else
- begin
- XPutBackEvent(GFApplication.Handle, @NewEvent);
- break;
- end;
- end;
-
- if Assigned(OnMouseWheel) then
- OnMouseWheel(Self, ConvertShiftState(AEvent.State), Sum, Point(AEvent.x, AEvent.y))
- else if Assigned(Parent) then Parent.ProcessEvent(AEvent);
- end;
- end;
- end;
- etMouseReleased:
- begin
- if (AEvent.Button >= 1) and (AEvent.Button <= 3) and Assigned(OnMouseReleased) then
- OnMouseReleased(Self, ButtonTable[AEvent.Button],
- ConvertShiftState(AEvent.State), Point(AEvent.x, AEvent.y))
- else if Assigned(Parent) then Parent.ProcessEvent(AEvent);
- end;
- etMouseMove:
- begin
- if Assigned(OnMouseMove) then
- OnMouseMove(Self, ConvertShiftState(AEvent.State), Point(AEvent.x, AEvent.y))
- else if Assigned(Parent) then Parent.ProcessEvent(AEvent);
- end;
- etMouseWheel:
- begin
- // it's handled in etMousePressed
- end;
- etPaint:
- begin
-// if Assigned(OnPaint) then OnPaint(Self, Rect(AEvent.X, AEvent.Y, AEvent.Width, AEvent.Height));
- // We are ignoring the rectangle from the XEvent and rather use the
- // full window rectangle.
- if Assigned(OnPaint) then
- OnPaint(Self, Rect(0, 0, Width, Height));
- end;
- etMove:
- begin
- if Assigned(OnMove) then OnMove(Self);
- end;
- etResize:
- begin
- if Assigned(OnResize) then OnResize(Self);
- end;
- etShow:
- begin
- if Assigned(OnShow) then OnShow(Self);
- end;
- end;
+ KeySym := StartComposing(FXEvent^);
+
+ if Assigned(OnKeyPressed) then
+ OnKeyPressed(Self, AKey, ConvertShiftState(FXEvent^.xkey.state))
+ else if Assigned(Parent) then Parent.EvKeyPressed(AKey);
+
+ if (FXEvent^.xkey.state and (ControlMask or Mod1Mask)) = 0 then EndComposing;
+end;
+
+procedure TX11Window.EvKeyReleased(AKey: Word);
+var
+ KeySym: TKeySym;
+begin
+ KeySym := StartComposing(FXEvent^);
+
+ if Assigned(OnKeyReleased) then
+ OnKeyReleased(Self, KeySymToKeycode(KeySym), ConvertShiftState(FXEvent^.xkey.state))
+ else if Assigned(Parent) then Parent.EvKeyReleased(AKey);
+
+ // Do not call EndComposing, as this would generate duplicate KeyChar events!
+end;
+
+procedure TX11Window.EvKeyChar(AKeyChar: Char);
+begin
+{ if Assigned(OnKeyChar) then OnKeyChar(Self, Chr(AEvent.wParam))
+ else if Assigned(Parent) then Parent.ProcessEvent(AEvent); }
+end;
+
+procedure TX11Window.EvMouseEnter(const AMousePos: TPoint);
+begin
+ if Assigned(OnMouseEnter) then
+ OnMouseEnter(Self, ConvertShiftState(FXEvent^.xbutton.state), AMousePos)
+ else if Assigned(Parent) then Parent.EvMouseEnter(AMousePos);
+end;
+
+procedure TX11Window.EvMouseLeave;
+begin
+ if Assigned(OnMouseLeave) then OnMouseLeave(Self)
+ else if Assigned(Parent) then Parent.EvMouseLeave();
+end;
+
+procedure TX11Window.EvMousePressed(AButton: TMouseButton;
+ const AMousePos: TPoint);
+begin
+ if Assigned(OnMousePressed) then
+ OnMousePressed(Self, AButton, ConvertShiftState(FXEvent^.xbutton.state), AMousePos)
+ else if Assigned(Parent) then Parent.EvMousePressed(AButton, AMousePos);
+end;
+
+procedure TX11Window.EvMouseReleased(AButton: TMouseButton;
+ const AMousePos: TPoint);
+begin
+ if Assigned(OnMouseReleased) then
+ OnMouseReleased(Self, AButton,
+ ConvertShiftState(FXEvent^.xbutton.state), AMousePos)
+ else if Assigned(Parent) then Parent.EvMouseReleased(AButton, AMousePos);
+end;
+
+procedure TX11Window.EvMouseMove(const AMousePos: TPoint);
+begin
+ if Assigned(OnMouseMove) then
+ OnMouseMove(Self, ConvertShiftState(FXEvent^.xbutton.state), AMousePos)
+ else if Assigned(Parent) then Parent.EvMouseMove(AMousePos);
+end;
+
+procedure TX11Window.EvMouseWheel(AWheelDelta: Single; const AMousePos: TPoint);
+begin
+ if Assigned(OnMouseWheel) then
+ OnMouseWheel(Self, ConvertShiftState(FXEvent^.xbutton.state), AWheelDelta, AMousePos)
+ else if Assigned(Parent) then Parent.EvMouseWheel(AWheelDelta, AMousePos);
+end;
+
+procedure TX11Window.EvPaint;
+begin
+ if Assigned(OnPaint) then OnPaint(Self);
+end;
+
+procedure TX11Window.EvMove;
+begin
+ if Assigned(OnMove) then OnMove(Self);
+end;
+
+procedure TX11Window.EvResize;
+begin
+ if Assigned(OnResize) then OnResize(Self);
+end;
+
+procedure TX11Window.EvShow;
+begin
+ if Assigned(OnShow) then OnShow(Self);
end;
function TX11Window.GetTitle: String;
@@ -1908,10 +1885,10 @@ begin
XFree(Hints);
end;
-function TX11Window.StartComposing(const Event: TFEvent): TKeySym;
+function TX11Window.StartComposing(const Event: TXEvent): TKeySym;
begin
SetLength(FComposeBuffer,
- XLookupString(Event.EventPointer, @FComposeBuffer[1],
+ XLookupString(@Event, @FComposeBuffer[1],
SizeOf(FComposeBuffer) - 1, @Result, @FComposeStatus));
end;
@@ -2030,6 +2007,21 @@ begin
Result := '#' + IntToStr(Event);
end;
+{ Returns True if the button is indeed a mouse button
+ and False if it's the mouse wheel }
+function XButtonToMouseButton(const XButton: cint; var MouseButton: TMouseButton): Boolean;
+const
+ ButtonTable: array[1..3] of TMouseButton = (mbLeft, mbMiddle, mbRight);
+begin
+ Result := False;
+
+ if (XButton > 3) or (XButton < 1) then Exit;
+
+ MouseButton := ButtonTable[XButton];
+
+ Result := True;
+end;
+
{ TX11FontResourceImpl }
constructor TX11FontResourceImpl.Create(const Descriptor: String);
diff --git a/gui/fpguiform.inc b/gui/fpguiform.inc
index b87e47fe..66d4c18f 100644
--- a/gui/fpguiform.inc
+++ b/gui/fpguiform.inc
@@ -134,7 +134,7 @@ begin
if Assigned(FWnd) then
FWnd.Free;
-// GFApplication.Forms.Remove(Self);
+// GFApplication.RemoveWindow(Self);
inherited Destroy;
end;
@@ -145,7 +145,7 @@ begin
LAYOUTTRACE('TFCustomForm.Show for %s:%s', [Name, ClassName]);
FVisible := True;
-// GFApplication.AddWindow(Wnd);
+ GFApplication.AddWindow(Wnd);
Wnd.Show;
end;
diff --git a/prototypes/newmultihandle/examples/helloworld.lpi b/prototypes/newmultihandle/examples/helloworld.lpi
index 64d1a555..67734747 100644
--- a/prototypes/newmultihandle/examples/helloworld.lpi
+++ b/prototypes/newmultihandle/examples/helloworld.lpi
@@ -1,11 +1,11 @@
<?xml version="1.0"?>
<CONFIG>
<ProjectOptions>
- <PathDelim Value="\"/>
+ <PathDelim Value="/"/>
<Version Value="5"/>
<General>
<MainUnit Value="0"/>
- <IconPath Value=".\"/>
+ <IconPath Value="./"/>
<TargetFileExt Value=".exe"/>
<ActiveEditorIndexAtStart Value="5"/>
</General>
@@ -16,7 +16,6 @@
</VersionInfo>
<PublishOptions>
<Version Value="2"/>
- <DestinationDirectory Value="$(TestDir)\publishedproject\"/>
<IgnoreBinaries Value="False"/>
<IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/>
<ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/>
@@ -24,7 +23,7 @@
<RunParams>
<local>
<FormatVersion Value="1"/>
- <LaunchingApplication PathPlusParams="\usr\X11R6\bin\xterm -T 'Lazarus Run Output' -e $(LazarusDir)\tools\runwait.sh $(TargetCmdLine)"/>
+ <LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
</local>
</RunParams>
<RequiredPackages Count="2">
@@ -47,7 +46,7 @@
<Loaded Value="True"/>
</Unit0>
<Unit1>
- <Filename Value="..\fpgui.pas"/>
+ <Filename Value="../fpgui.pas"/>
<UnitName Value="fpgui"/>
<CursorPos X="31" Y="8"/>
<TopLine Value="1"/>
@@ -56,32 +55,32 @@
<Loaded Value="True"/>
</Unit1>
<Unit2>
- <Filename Value="..\..\fpgui2\source\gui\gui_form.pas"/>
+ <Filename Value="../../fpgui2/source/gui/gui_form.pas"/>
<UnitName Value="gui_form"/>
<CursorPos X="5" Y="2"/>
<TopLine Value="1"/>
<UsageCount Value="10"/>
</Unit2>
<Unit3>
- <Filename Value="..\gui_widget.inc"/>
+ <Filename Value="../gui_widget.inc"/>
<IsPartOfProject Value="True"/>
<CursorPos X="51" Y="20"/>
- <TopLine Value="12"/>
+ <TopLine Value="7"/>
<EditorIndex Value="4"/>
<UsageCount Value="21"/>
<Loaded Value="True"/>
</Unit3>
<Unit4>
- <Filename Value="..\gui_button.inc"/>
+ <Filename Value="../gui_button.inc"/>
<IsPartOfProject Value="True"/>
<CursorPos X="9" Y="49"/>
- <TopLine Value="34"/>
+ <TopLine Value="29"/>
<EditorIndex Value="5"/>
<UsageCount Value="21"/>
<Loaded Value="True"/>
</Unit4>
<Unit5>
- <Filename Value="..\..\..\gfx\gfxbase.pas"/>
+ <Filename Value="../../../gfx/gfxbase.pas"/>
<UnitName Value="GfxBase"/>
<CursorPos X="1" Y="510"/>
<TopLine Value="499"/>
@@ -90,13 +89,13 @@
<Loaded Value="True"/>
</Unit5>
<Unit6>
- <Filename Value="..\..\..\..\..\lazarus215\fpc\2.1.5\source\rtl\objpas\classes\classesh.inc"/>
+ <Filename Value="../../../../../lazarus215/fpc/2.1.5/source/rtl/objpas/classes/classesh.inc"/>
<CursorPos X="4" Y="25"/>
<TopLine Value="13"/>
<UsageCount Value="10"/>
</Unit6>
<Unit7>
- <Filename Value="..\..\..\gfx\gdi\gfx_gdi.pas"/>
+ <Filename Value="../../../gfx/gdi/gfx_gdi.pas"/>
<UnitName Value="GFX_GDI"/>
<CursorPos X="1" Y="1645"/>
<TopLine Value="1672"/>
@@ -105,16 +104,10 @@
<Loaded Value="True"/>
</Unit7>
</Units>
- <JumpHistory Count="1" HistoryIndex="0">
- <Position1>
- <Filename Value="..\gui_button.inc"/>
- <Caret Line="51" Column="32" TopLine="32"/>
- </Position1>
- </JumpHistory>
+ <JumpHistory Count="0" HistoryIndex="-1"/>
</ProjectOptions>
<CompilerOptions>
<Version Value="5"/>
- <PathDelim Value="\"/>
<CodeGeneration>
<Generate Value="Faster"/>
</CodeGeneration>