Free Pascal widget set

classic Classic list List threaded Threaded
20 messages Options
Reply | Threaded
Open this post in threaded view
|

Free Pascal widget set

Graeme Geldenhuys-2
Hi,

As I mentioned before, I starting working on a Free Pascal widget set
not relying on any large GUI libraries like Qt, GTK, etc... It uses
Xlib (Linux) and GDI (Windows) directly.  My second rewrite is based
on the dormant fpGUI and fpGFX projects, so you can say it will become
the next version of fpGUI.

Long term goal is to add it as a new widget set option in Lazarus,
though the API will be developer friendly (something like Qt) so that
a GUI could be created without a GUI Builder and minimal lines of
code.

The fpGUI development team [ Me, myself and I ] is looking for
developers willing to join this project.  I have made the source
available on my sever using SubVersion.  The documentation will be
online over the weekend.  fpGUI is not yet ready for usage in a
application, but is is rapidly getting there.  My company has a
deadline to get it at such a point before the end of the year.

For more details about the project and the ever growing todo list,
point your browser at:
  http://opensoft.homeip.net/fpgui/

Download the Source from:
  svn co svn://opensoft.homeip.net/fpgui/trunk fpGUI
  svn co svn://opensoft.homeip.net/fpgfx/trunk fpGFX


Regards,
  - Graeme -
_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Free Pascal widget set

Michael Van Canneyt


On Fri, 18 Aug 2006, Graeme Geldenhuys wrote:

> Hi,
>
> As I mentioned before, I starting working on a Free Pascal widget set
> not relying on any large GUI libraries like Qt, GTK, etc... It uses
> Xlib (Linux) and GDI (Windows) directly.  My second rewrite is based
> on the dormant fpGUI and fpGFX projects, so you can say it will become
> the next version of fpGUI.
>
> Long term goal is to add it as a new widget set option in Lazarus,
> though the API will be developer friendly (something like Qt) so that
> a GUI could be created without a GUI Builder and minimal lines of
> code.
>
> The fpGUI development team [ Me, myself and I ] is looking for
> developers willing to join this project.  I have made the source
> available on my sever using SubVersion.  The documentation will be
> online over the weekend.  fpGUI is not yet ready for usage in a
> application, but is is rapidly getting there.  My company has a
> deadline to get it at such a point before the end of the year.
>
> For more details about the project and the ever growing todo list,
> point your browser at:
> http://opensoft.homeip.net/fpgui/
>
> Download the Source from:
> svn co svn://opensoft.homeip.net/fpgui/trunk fpGUI
> svn co svn://opensoft.homeip.net/fpgfx/trunk fpGFX

Out of curiosity: why not use the FPC server for this ?

Michael.
_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Free Pascal widget set

Jilani Khaldi
In reply to this post by Graeme Geldenhuys-2
Graeme Geldenhuys wrote:

> Hi,
>
> As I mentioned before, I starting working on a Free Pascal widget set
> not relying on any large GUI libraries like Qt, GTK, etc... It uses
> Xlib (Linux) and GDI (Windows) directly.

Why not using GDI+ instead of GDI?

jk

_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Free Pascal widget set

Graeme Geldenhuys-2
> Why not using GDI+ instead of GDI?

It used FPC's windows.pp unit and whatever API's are defined in it.

Regards,
  - Graeme -
_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Free Pascal widget set

Matt Emson
>> Why not using GDI+ instead of GDI?
>
> It used FPC's windows.pp unit and whatever API's are defined in it.

GDI has a wider audiance. GDI+ is not an "out of the box" option for most
legacy (i.e. prior to XP) systems.

Using GDI, it has the possibility to run under ReactOS and WINE too.

_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Free Pascal widget set

Alexandre Leclerc
In reply to this post by Graeme Geldenhuys-2
It looks like a very nice job. I like the auto-size for translation. I
wish you success in this project. :) It might become the default
widgetset of lazarus one day :)

Best regards.

--
Alexandre Leclerc
_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Free Pascal widget set

Graeme Geldenhuys-2
In reply to this post by Matt Emson
On 8/18/06, memsom <[hidden email]> wrote:
> GDI has a wider audiance. GDI+ is not an "out of the box" option for most
> legacy (i.e. prior to XP) systems.
>
> Using GDI, it has the possibility to run under ReactOS and WINE too.

That's correct.  The Win32  demo apps run fine under WINE. It should
also be interesting to see how portable it is to mobile devices
(PocketPC, etc...).  Once I have the Win32 and Linux platforms
covered, I would like to give PocketPC a go.  I know nothing about
PocketPC development at the moment though.  :-(

Regards,
  - Graeme -
_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Free Pascal widget set

Graeme Geldenhuys-2
In reply to this post by Alexandre Leclerc
> It looks like a very nice job. I like the auto-size for translation. I

Yeah the layout managers are great!!  I always liked the idea looking
at Glade and Qt.

> wish you success in this project. :) It might become the default
> widgetset of lazarus one day :)

That would be nice - consistent dialogs (button sizes and order come
to mind).  Baby steps though... :-)   fpGUI is still far away from
that dream.

Regards,
   - Graeme -
_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Free Pascal widget set

Darius Blaszyk


>> It looks like a very nice job. I like the auto-size for translation. I
>
> Yeah the layout managers are great!!  I always liked the idea looking
> at Glade and Qt.
Just a note, but the "auto-sizing" of components as depicted in the fig2.
example is perfectly possible with Anchoring already. There's no need for a
layout manager for that functionality.

Darius

>
>> wish you success in this project. :) It might become the default
>> widgetset of lazarus one day :)
>
> That would be nice - consistent dialogs (button sizes and order come
> to mind).  Baby steps though... :-)   fpGUI is still far away from
> that dream.
>
> Regards,
>   - Graeme -
> _______________________________________________
> fpc-pascal maillist  -  [hidden email]
> http://lists.freepascal.org/mailman/listinfo/fpc-pascal 

_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Free Pascal widget set

Graeme Geldenhuys-2
On 8/18/06, Darius Blaszijk <[hidden email]> wrote:
> Just a note, but the "auto-sizing" of components as depicted in the fig2.
> example is perfectly possible with Anchoring already. There's no need for a
> layout manager for that functionality.
>
> Darius

Lazarus has much better anchoring support that Delphi, I have to
admit.  But "auto-sizing" is just one of the things the Layout
Managers do.  It also aligns the components, positions them, prevents
them from being clipped (setting minimum allowed size) when the form
is resized, etc...  All this by just creating a layout manager and
inserting widgets into it.

Take a look at the attached screenshot.  This is how most of the
dialogs in Lazarus look to me.  It is compiled with Gtk1.  Most of the
captions are clipped, group boxes don't align...  It doesn't resize
the controls when the dialog resizes.  Those problems will never
happen in fpGUI, no matter the language, resolution, dpi setting, etc.
 Yes, I have tried to recreate that exact screen using Lazarus with
all its anchoring features and alignment features.  I never got it to
work 100% and it wasn't easy at all.

Good news is, if you don't like the Box and Grid Layouts, you can
always use the Fixed Layout, which then allows you to place component
anywhere without auto-align and positioning.

Regards,
  - Graeme -

_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

CompilerOptions.png (26K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Free Pascal widget set

Krishna-33
In reply to this post by Graeme Geldenhuys-2
On 8/18/06, Graeme Geldenhuys <[hidden email]> wrote:

> The fpGUI development team [ Me, myself and I ] is looking for
> developers willing to join this project.  I have made the source
> available on my sever using SubVersion.  The documentation will be
> online over the weekend.  fpGUI is not yet ready for usage in a
> application, but is is rapidly getting there.  My company has a
> deadline to get it at such a point before the end of the year.
>

Nice nice nice.

> For more details about the project and the ever growing todo list,
> point your browser at:
>   http://opensoft.homeip.net/fpgui/
>
> Download the Source from:
>   svn co svn://opensoft.homeip.net/fpgui/trunk fpGUI
>   svn co svn://opensoft.homeip.net/fpgfx/trunk fpGFX
>

I have problems building the thing. Executing make in the topdir of
fpGFX is exiting with an error like 'Can't find unit GFXImpl...' .
fpGUI also fails to build with an error like 'Can't find unit DOM...'

Cheers,
Krishna
--
First they ignore you, then they laugh at you, then they fight you,
then you win.
- Mahatma Gandhi
_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Free Pascal widget set

Graeme Geldenhuys-2
On 8/19/06, Krishna <[hidden email]> wrote:
> I have problems building the thing. Executing make in the topdir of
> fpGFX is exiting with an error like 'Can't find unit GFXImpl...' .
> fpGUI also fails to build with an error like 'Can't find unit DOM...'

The Makefiles are still work-in-progress.  I had them working a couple
of weeks back, but might have broken them again.  I develop using
Lazarus and normally compile fpGUI and fgGFX using the packages (*.lpk
files).

DOM is part of FPC located in /fcl/xml/
GFXImpl is part of fpGFX and depending on the OS it is located in
/src/linux/ or /src/win32/

I have to admit, I am very new to Makefiles, but will see what happens
when I try and compile it here using them.  Otherwise, if you use
Lazarus, compile the *.lpk files.

Regards,
  - Graeme -
_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Free Pascal widget set

Krishna-33
On 8/19/06, Graeme Geldenhuys <[hidden email]> wrote:

> On 8/19/06, Krishna <[hidden email]> wrote:
> > I have problems building the thing. Executing make in the topdir of
> > fpGFX is exiting with an error like 'Can't find unit GFXImpl...' .
> > fpGUI also fails to build with an error like 'Can't find unit DOM...'
>
> The Makefiles are still work-in-progress.  I had them working a couple
> of weeks back, but might have broken them again.  I develop using
> Lazarus and normally compile fpGUI and fgGFX using the packages (*.lpk
> files).
>
> DOM is part of FPC located in /fcl/xml/
> GFXImpl is part of fpGFX and depending on the OS it is located in
> /src/linux/ or /src/win32/
>

OK, now I've compiled fpGfx but the examples do not compile -
helloworld's compilation exits with 'TSize... illegal qualifier etc.'

-Krishna
--
First they ignore you, then they laugh at you, then they fight you,
then you win.
- Mahatma Gandhi
_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Free Pascal widget set

Mattias Gaertner
In reply to this post by Graeme Geldenhuys-2
On Fri, 18 Aug 2006 22:24:33 +0200
"Graeme Geldenhuys" <[hidden email]> wrote:

> On 8/18/06, Darius Blaszijk <[hidden email]> wrote:
> > Just a note, but the "auto-sizing" of components as depicted in the
> > fig2. example is perfectly possible with Anchoring already. There's
> > no need for a layout manager for that functionality.
> >
> > Darius
>
> Lazarus has much better anchoring support that Delphi, I have to
> admit.  But "auto-sizing" is just one of the things the Layout
> Managers do.  It also aligns the components, positions them, prevents
> them from being clipped (setting minimum allowed size) when the form
> is resized, etc...  All this by just creating a layout manager and
> inserting widgets into it.
>
> Take a look at the attached screenshot.  This is how most of the
> dialogs in Lazarus look to me.  It is compiled with Gtk1.  Most of the
> captions are clipped, group boxes don't align...  It doesn't resize
> the controls when the dialog resizes.

Right. This dialog is not using all LCL abilities.


>  Those problems will never
> happen in fpGUI, no matter the language, resolution, dpi setting, etc.
>  Yes, I have tried to recreate that exact screen using Lazarus with
> all its anchoring features and alignment features.  I never got it to
> work 100% and it wasn't easy at all.
>
> Good news is, if you don't like the Box and Grid Layouts, you can
> always use the Fixed Layout, which then allows you to place component
> anywhere without auto-align and positioning.

yes, both approaches have their pros and cons. The rule based Box/Grid
layout is never overlapping, but more work to setup and is more
difficult to change. While the 'fixed' layout is quite the opposite:
Easy to learn, easy to setup, easy to change and easily overlaps.
The never overlapping feature is important for platform/theme
independent software, while the other approach is more comfortable for
the rapid application goal.
The LCL has already Boxes and simple Grids. Complex Grids are missing.
You can use the autosizing properties to prevent overlapping, but then
you loose the ability to easily change the layout.
I think, best would would be the 'fixed' layout editing plus automatic
anti overlapping and some properties to fine tune the automatic.
Delphi has Scaling, which is easy to implement, but does not work for
different languages.
It should more work like: If a control overlaps, then the
overlapped controls must be moved and maybe the parent enlarged.


Mattias
_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Free Pascal widget set

Graeme Geldenhuys-2
In reply to this post by Krishna-33
> OK, now I've compiled fpGfx but the examples do not compile -
> helloworld's compilation exits with 'TSize... illegal qualifier etc.'

Fixed! Also added the missing Lazarus *.lpi files.
Get a svn update...

Regards,
  - Graeme -
_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Free Pascal widget set

Graeme Geldenhuys-2
In reply to this post by Graeme Geldenhuys-2
> The documentation will be online over the weekend.

As promised, the documenation for fpGUI (not complete) is available on
the website at:

  http://opensoft.homeip.net/fpgui/docs/


Regards,
  - Graeme -
_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Free Pascal widget set

Cesar Romero-2
Why not wxWidgets?
Linux map to GTK - GTK 2.0 alread done
Windows to Native widget set
Mac to Cocoa

Serious, I still dont undertande why not, is a licence issue?

[]s

Cesar Romero
http://blogs.liws.com.br/cesar

> As promised, the documenation for fpGUI (not complete) is available on
> the website at:
>
>  http://opensoft.homeip.net/fpgui/docs/

_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Re: Free Pascal widget set

Krishna-33
On 8/19/06, Cesar Romero <[hidden email]> wrote:
> Why not wxWidgets?
> Linux map to GTK - GTK 2.0 alread done
> Windows to Native widget set
> Mac to Cocoa
>

> Serious, I still dont undertande why not, is a licence issue?

Too many layers perhaps... pascal -> wx -> gtk2 -> xlib

Also the need to setup message maps which are plain ugly. Object
Pascal's bound method pointers rock!

Cheers,
Krishna
--
First they ignore you, then they laugh at you, then they fight you,
then you win.
- Mahatma Gandhi
_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Free Pascal widget set

Michael Van Canneyt
In reply to this post by Cesar Romero-2


On Sat, 19 Aug 2006, Cesar Romero wrote:

> Why not wxWidgets?
> Linux map to GTK - GTK 2.0 alread done
> Windows to Native widget set
> Mac to Cocoa
>
> Serious, I still dont undertande why not, is a licence issue?

Because no-one has started it yet.

And on Linux, I think it would be a very bad choice indeed:

- LCL
- Pascal import (wxWidgets is C++, and cannot be used directly)
- wxWidgets
- GTK
- X11

That is 4 libraries on top of X !

Graeme's stuff is directly on top of X, which means 3 libraries less.
- Faster.
- Less resource usage.
- No workarounds for different quircks of different libraries

Michael.
_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Free Pascal widget set

Jeff Pohlmeyer
In reply to this post by Graeme Geldenhuys-2
> Why not wxWidgets?

I'm not too familiar with wxWidgets, but
the headers sure look like C++ to me.

 - Jeff
_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal