[Lazarus] Form Resizing
Mark Morgan Lloyd
markMLl.lazarus at telemetry.co.uk
Mon Mar 7 11:25:30 CET 2016
Bo Berglund wrote:
> I have located the release document for Raspbian Jessie here:
> https://www.raspberrypi.org/blog/raspbian-jessie-is-here/
> A little bit down they write the following:
>
> <quote>the appearance of Raspbian is now based on version 3 of GTK+,
> the user interface toolkit used for the LXDE desktop environment. The
> older version 2 of GTK+ is slowly being replaced with version 3
> </quote>
>
> If this means that Raspbian is using LXDE is beyond me but it seems
> like it is using gtk3 by this wording.
Let's try to clarify the overall architecture one last time.
i) Underlying the entire system is the Linux kernel which provides at
least partial support allowing other libraries and subsystems to access
the screen and other peripherals. In general, the precise version of
this isn't relevant.
ii) Assuming that you get a login dialog(ue) when you power up the
system, that is being presented by the display manager running on top of
an initial X11 session. the display manager also implements the XDMCP
protocol which facilitates remote X11 sessions.
iii) Example display managers are xdm, gdm, kdm, LightDM and so on.
iv) When you present a valid userID and password, the display manager
shuts down the original X11 session and starts up a new one using the
identity of the validated user. Programs running in the context of this
session are given a DISPLAY shell variable identifying it.
v) The new X11 session is immediately available for programs that know
the DISPLAY value, but if run like that they won't have title bars and
other window "furniture" (note that this is a significant architectural
difference from Windows).
vi) Each X11 session has special provision for a window manager which
is normally started automatically. It is this that displays the title
bar etc.
vii) These days, it is common for the window manager to also implement
(portions of) a desktop environment. Most of these have some sort of
menu button or a list of installed programs, and frequently display
special entities like a trash can on the desktop background.
iix) Example window managers are Gnome, KDE, OpenBox, LXDE and so on.
ix) Most programs aren't bothered about what window manager is running.
x) The window manager usually uses a widget set for convenience,
rather than being coded directly on top of the X11 API. Example widget
sets are gtk, gtk2, gtk3 and Qt.
xi) You can't easily change the widget set that the window manager
(desktop environment) uses, although in most cases it's possible to add
alternatives.
xii) As a result, you can easily find yourself in a situation where the
window manager (AKA desktop environment) and programs supplied with it
use one widget set, while programs that you've installed yourself use a
different one: this is generally of little consequence.
I strongly suggest that you make sure the Qt widget set is installed on
your Raspbian, and try using Lazarus to build a program for it. My
experience is that there are "rough edges" in the interaction between
Lazarus and (the widget set etc. supplied with) Debian and Raspbian
"Jessie", I believe that at least some of these have been discussed as bugs.
I'll leave somebody else to comment on the current status of GTK3, which
I think would be of general interest.
--
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk
[Opinions above are the author's, not those of his employers or colleagues]
More information about the Lazarus
mailing list