<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#ffffff">
On 01/05/2011 02:47 PM, zeljko wrote:<br>
<blockquote cite="mid:201101051447.08701.zeljko@holobit.net"
type="cite">
<pre wrap="">
I'd say that widget = TWinControl (and others derived from TWinControl of
course).
</pre>
</blockquote>
OK, but rater irrelevant regarding Lazarus. <br>
<br>
Here "<b>Widget Type</b> = TWinControl + all handling of External
Events".<br>
<br>
Handling of External (Main Thread) Events means: allowing the main
thread to do non busy waiting for something and being waked if
something happens and execute the appropriate event handler. <br>
<br>
<br>
Background: <br>
<br>
If the program is not a command line tool, the main thread needs to
be waiting nearly always and needs to be waked whenever something
happens that needs attention. <br>
<br>
Theses "external events" are scheduled by the GUI (key and mouse
triggered events), inter-process or inter-thread communication,
Timers, etc, you name it. They need to be queued, so that the main
thread can handle them one after the other (see
"TApplication.ProcessMessages").<br>
<br>
As the GUI events is the by far most complex class of external
events, and the GUI stuff is handled in the Widget Set code in the
LCL, the other external events are dealt with, in theses files as
well. (unfortunately) there is no common implementation of non-GUI
external events that is used by multiple Widget sets. This makes the
creation of Widget sets that are independent of an external widget
set (such as Windows, GTK, or QT) a lot more difficult and less
"compatible". <br>
<br>
OTOH, FPGUI seems to succeed on this behalf.<br>
<br>
-Michael<br>
</body>
</html>