[lazarus] Who is the controlling 'native' widget set in LCL?

2008-02-07 Thread Graeme Geldenhuys
Hi,

I'm not trying to start a flame war, I would simply like to understand
the thinking and decision process of the core lazarus developers
regarding the LCL features.  I'm sure any developer using LCL would
like the following answers as well.

For more background on this issue see the mantis bug report:
  http://bugs.freepascal.org/view.php?id=9285

In summary.  TButton.Color is not available in LCL because Win32
doesn't allow a button face to change color without custom drawing.
Yet other widget sets do like Qt and GTK1.


Comments from Paul:

Kylix = qt = library that draw widgets itself
Win32 = library that also has some mids about widget drawing

Why LCL should invent hacks to force win32 draw color buttons? If
win32 does not want to do that why LCL should have ability to override
designed by ms devels way of button drawing?

LCL is library of native widgets = library that uses abilities of
underlying libraries. If they (win32 or other) doesnot support
something then LCL should not invent own ways.

My opinion - this issue should be closed.



Comments from Me:
--
Ok, so LCL uses native widgets - I get that. Well, Qt is a supported
widget set of LCL. So Qt should in all respects be consider 'native'.
So now, because Win32 doesn't allow Button.Color, Qt may not use
Button.Color either! That's a bit unfair. The LCL now limits
developers only to what Win32 can do! What happened to LCL being
cross-platform? What about the features of other underlying native
widget sets?

Is Win32 the controlling widget set for LCL. If Win32 doesn't support
something, neither may the other widget sets?



So, my question again:
Is Win32 the controlling widget set in LCL?  Is Win32 the deciding
widget set for what is allowed in the LCL?  If Win32 doesn't support
it, it's not going to be supported in the LCL - even if the other
native widget sets support a function?

How do the core developers decide what is allowed in the LCL and what
isn't? What criteria do they use?


As a extra argument to Paul:
MS developers decided not support MouseEnter and MouseLeave OS level
events in Win32. Other widget sets do. Borland even had to hack their
own support for it in the VCL.  Then in Windows XP and Vista the
Microsoft developers show that a 'hot' state over buttons are cool,
yet the underlying Win32 still doesn't support MouseEnter and
MouseLeave OS events!  I wouldn't stake my life on what MS developers
decided is good! They sometimes come up with pretty shitty ideas of
what they think is right!


Regards,
  - Graeme -


___
fpGUI - a cross-platform Free Pascal GUI toolkit
http://opensoft.homeip.net/fpgui/

_
 To unsubscribe: mail [EMAIL PROTECTED] with
unsubscribe as the Subject
   archives at http://www.lazarus.freepascal.org/mailarchives


Re: [lazarus] Who is the controlling 'native' widget set in LCL?

2008-02-07 Thread Florian Klaempfl
Graeme Geldenhuys schrieb:
 So, my question again:
 Is Win32 the controlling widget set in LCL?  Is Win32 the deciding
 widget set for what is allowed in the LCL?  If Win32 doesn't support
 it, it's not going to be supported in the LCL - even if the other
 native widget sets support a function?

I guess in case of doubts, the VCL is the reference. If one wants to
explore all features of a certain widget set, he has simply to use a
direct interface to the widget set.

_
 To unsubscribe: mail [EMAIL PROTECTED] with
unsubscribe as the Subject
   archives at http://www.lazarus.freepascal.org/mailarchives


Re: [lazarus] Who is the controlling 'native' widget set in LCL?

2008-02-07 Thread Paul Ishenin

Graeme Geldenhuys wrote:

Hi,

I'm not trying to start a flame war, I would simply like to understand
the thinking and decision process of the core lazarus developers
regarding the LCL features.  I'm sure any developer using LCL would
like the following answers as well.

For more background on this issue see the mantis bug report:
  http://bugs.freepascal.org/view.php?id=9285

In summary.  TButton.Color is not available in LCL because Win32
doesn't allow a button face to change color without custom drawing.
Yet other widget sets do like Qt and GTK1.


That problem has been havily discussed in lazarus-dev list and we came 
to the conclusion that such properties should be in LCL, but on the 
other hand they must be marked some way in object inspector as non 
cross platform.


Best regards,
Paul Ishenin.

_
To unsubscribe: mail [EMAIL PROTECTED] with
   unsubscribe as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives


Re: [lazarus] Who is the controlling 'native' widget set in LCL?

2008-02-07 Thread Graeme Geldenhuys
On 07/02/2008, Paul Ishenin [EMAIL PROTECTED] wrote:
 
  In summary.  TButton.Color is not available in LCL because Win32
  doesn't allow a button face to change color without custom drawing.
  Yet other widget sets do like Qt and GTK1.

 That problem has been havily discussed in lazarus-dev list and we came
 to the conclusion that such properties should be in LCL, but on the
 other hand they must be marked some way in object inspector as non
 cross platform.

My apologies. I didn't know of a 'lazarus-dev' mailing list.  When was
this decided, in the last 7 days?  Because from your comment  in he
mantis bug report dated 2008-02-01 (7 days ago), your clearly stated
that it _shouldn't_ be supported.


Regards,
  - Graeme -


___
fpGUI - a cross-platform Free Pascal GUI toolkit
http://opensoft.homeip.net/fpgui/

_
 To unsubscribe: mail [EMAIL PROTECTED] with
unsubscribe as the Subject
   archives at http://www.lazarus.freepascal.org/mailarchives


Re: [lazarus] Who is the controlling 'native' widget set in LCL?

2008-02-07 Thread Mattias Gärtner
Zitat von Graeme Geldenhuys [EMAIL PROTECTED]:

 On 07/02/2008, Paul Ishenin [EMAIL PROTECTED] wrote:
  
   In summary.  TButton.Color is not available in LCL because Win32
   doesn't allow a button face to change color without custom drawing.
   Yet other widget sets do like Qt and GTK1.
 
  That problem has been havily discussed in lazarus-dev list and we came
  to the conclusion that such properties should be in LCL, but on the
  other hand they must be marked some way in object inspector as non
  cross platform.

 My apologies. I didn't know of a 'lazarus-dev' mailing list.  When was
 this decided, in the last 7 days?  Because from your comment  in he
 mantis bug report dated 2008-02-01 (7 days ago), your clearly stated
 that it _shouldn't_ be supported.

Here is a small abstract about the current state of the discussion:
Some properties can not be supported on some widgetsets, because it would
require a lot of work, which no laz devel wants to do. OTOH some native
features are so great, that the LCL should support them, but only on a subset
of the widgetsets.
The main problem is how can the programmer see, what property/method is
available on what platform. The documentation is a good place, but not
sufficient. It should be marked in the OI and identifier completion as well.
The information can not be stored in the LCL alone and must be readable when
cross designing. So one solution could be a xml file in each widgetset. This
kind of information is needed by other libs as well. For example database
front/backends. So maybe a more generic solution is needed.


Mattias

_
 To unsubscribe: mail [EMAIL PROTECTED] with
unsubscribe as the Subject
   archives at http://www.lazarus.freepascal.org/mailarchives