Glade Interface Designer

{{Short description|Graphical user interface builder}}

{{Use dmy dates|date=January 2024}}

{{Infobox software

| name = Glade Interface Designer

| title = Glade

| logo = Glade 3 logo.svg

| logo caption =

| screenshot = Glade Interface Designer 3.22.0.png

| caption = Designing a preferences dialog in Glade

| collapsible =

| author = Damon Chaplin{{cite news | url=http://www.linuxjournal.com/article/7421 | title=Rapid Application Development with Python and Glade] | date=1 July 2004 | first=David | last=Reed | work=Linux Journal | quote=Damon Chaplin wrote the Glade program}}{{cite web | url=http://www.fifi.org/doc/glade-common/help/glade/C/faq/index.html | title=Glade FAQ version 1.0 | year=2000 | first=Damon | last=Chaplin}}{{cite book | url=http://oreilly.com/catalog/runux3/chapter/appb.html | title=Running Linux | edition=3rd | first1=Matt | last1=Welsh | first2=Matthias | last2=Kalle Dalheimer | first3=Lar | last3=Kaufman | date=August 1999}} Appendix B The GNOME Project > B.5.3 Programming Tools > ..."Of particular interest is Damon Chaplin's Glade..."{{cite web |url=http://www.gnomejournal.org/article/50/glade-3-sees-the-light-of-day |title=Damon Chaplin (author of the original Glade tool) |access-date=2013-02-18 |url-status=bot: unknown |archive-url=https://web.archive.org/web/20061103153407/http://www.gnomejournal.org/article/50/glade-3-sees-the-light-of-day |archive-date=3 November 2006}}{{cite web |url=http://glade.pn.org/ |title=Historical Glade website |access-date=2013-02-18 |url-status=bot: unknown |archive-url=https://web.archive.org/web/19990423044329/http://glade.pn.org/ |archive-date=23 April 1999}}

| developer = The GNOME Project

| released = {{Start date and age|1998|04|18|df=yes/no}}{{cite web |url=http://glade.pn.org/history.html |title=GLADE GTK+ User Interface Builder > History > The first release, Version 0.1, was on 18. Apr 1998 |access-date=2013-02-18 |url-status=bot: unknown |archive-url=https://web.archive.org/web/19991008021612/http://glade.pn.org/history.html |archive-date=8 October 1999}}

| discontinued = yes

| latest release version = 3.40

| latest release date = {{Start date and age|2022|08|10|df=yes}}

| latest preview version =

| latest preview date =

| programming language = C, XML

| operating system = Unix-like, Windows{{Cite web|url=http://git.gnome.org/browse/glade/tree/build/mswindows/README|title = Files · master · GNOME / Glade}}

| platform =

| size =

| language =

| language count =

| language footnote =

| genre = {{ubl|GUI builder|Linux on the desktop|Human interface guidelines}}

| license = GNU General Public License

| replaced_by = Cambalache Interface Designer

}}

Glade Interface Designer is a graphical user interface builder for GTK, with additional components for GNOME. In its third version, Glade is programming language–independent, and does not produce code for events, but rather an XML file that is then used with an appropriate binding (such as GtkAda for use with the Ada programming language).

Glade is free and open-source software distributed under the GNU General Public License. Glade's development and maintenance ceased in 2022, with the final release on 10 August 2022.{{Cite web |date=2022-08-10 |title=Rolling last release! (b3823efd) · Commits · GNOME / Glade · GitLab |url=https://gitlab.gnome.org/GNOME/glade/-/commit/b3823efd0acea2b0a5629b261cf56b1d3f2664aa |access-date=2024-10-09 |website=GitLab |language=en}}

History and development

The first Glade release, version 0.1, was made on 18 April 1998.

Glade 3 was released on 12 August 2006. According to the Glade Web site, the most noticeable differences for the end-user are:

  • Undo and redo support in all operations.
  • Support for multiple open projects.
  • Removal of code generation.
  • Contextual help system with Devhelp

Most of the difference is in the internals. Glade-3 is a complete rewrite, in order to take advantage of the new features of GTK+ 2 and the GObject system (Glade-3 was started when Glade-1 hadn't yet been ported to GTK+ 2). Therefore, the Glade-3 codebase is smaller and allows new interesting things, including:

  • Catalogs of "pluggable" widgets. This means that external libraries can provide their set of widgets at runtime and Glade will detect them. In fact, Glade 3 supports only standard GTK widgets; GNOME UI and DB widgets are provided separately.
  • The various Glade Tools (palette, editor, etc.) are implemented as widgets. This allows for easier integration in {{abbr|IDEs|Integrated development environment}} like Anjuta, and makes it easier to change the Glade UI.

On 5 April 2011, two parallel installable stable Glade versions{{cite web |url=http://lists.ximian.com/pipermail/glade-devel/2011-April/001891.html |url-status=dead |archive-url=https://web.archive.org/web/20110606214843/http://lists.ximian.com/pipermail/glade-devel/2011-April/001891.html |archive-date=6 June 2011 |title=[Glade-devel] Glade 3.10.0 Released}}[http://glade.gnome.org/news.html Glade 3.8.0 and 3.10.0 released], Tuesday 5 April 2011 by Tristan Van Berkom – Glade 3.8.0 and 3.10.0 are now available for download. 3.8 is the last stable series of Glade for GTK+2 and 3.10 is the first stable series for GTK+3{{cite web |url=http://lists.ximian.com/pipermail/glade-devel/2011-January/001858.html |url-status=dead |archive-url=https://web.archive.org/web/20110112181550/http://lists.ximian.com/pipermail/glade-devel/2011-January/001858.html |archive-date=12 January 2011 |title=[Glade-devel] Glade 3.9.0 Released}} were released:

  • Glade 3.8: That includes all support for GTK+ up till version 2.24. This version is to serve as a decent migration path for older projects migrating to GTK+ 3.0.
  • Glade 3.10: That includes support only for widgets that are still included in GTK+ 3.0 and additionally drops support for Libglade.

On 11 June 2015 Glade 3.19.0 was released. It depends at least on GTK+ 3.16.0. Among many bug fixes this version is the first to support the widgets GtkStack, GtkHeaderBar and GtkSidebar.{{cite web|title=Glade 3.19.0 Released!|url=http://lists.ximian.com/pipermail/glade-devel/2015-June/002090.html|access-date=12 June 2015|archive-url=https://web.archive.org/web/20150614031300/http://lists.ximian.com/pipermail/glade-devel/2015-June/002090.html|archive-date=14 June 2015|url-status=dead}}

GtkBuilder

GtkBuilder is the XML format that the Glade Interface Designer uses to save its forms. These documents can then be used in conjunction with the GtkBuilder object to instantiate the form using GTK. GladeXML is the XML format that was used with conjunction with libglade, which is now deprecated.{{cite mailing list |url=http://mail.gnome.org/archives/devel-announce-list/2009-May/msg00003.html |title=Libglade officially deprecated in favor of GtkBuilder. |mailing-list=Gnome devel-announce-list |date=11 May 2009 |access-date=13 November 2010}}

Glade Interface Designer automatically generates all the source code for a graphical control element.

The "Gtk.Builder class" allows user interfaces to be designed without writing code.{{cite web |url=https://lazka.github.io/pgi-docs/Gtk-3.0/classes/Builder.html#Gtk.Builder |title=Gtk 3.0 documentation on github}} The class describes the interface in an Extensible Markup Language (XML) file and then loads the XML description at runtime and creating the objects automatically. The Glade Interface Designer allows creation of the user interface in a WYSIWYG manner. The description of the user interface is independent from the programming language being used.

Code sketching

Code sketchers are software applications that help a user create source code from a GladeXML file. Most code sketchers create source code which uses libglade and a GladeXML file to create the GUI. Some sketchers are able to create raw code that does not need the GladeXML file. The table below compares basic information about GladeXML code sketcher packages.

class="wikitable"
Name

! Author

! Programming languages

! Software license

[http://efsa.sourceforge.net/archive/elphick/eglade.htm eglade] {{Webarchive|url=https://web.archive.org/web/20180513183717/http://efsa.sourceforge.net/archive/elphick/eglade.htm |date=13 May 2018 }}

| Daniel Elphick

| Eiffel

| Eiffel Forum License

[https://launchpad.net/gladex/ Gladex]

| Christopher Pax and Charles Edward Pax

| Perl, Python, Ruby

| GPLv3

[http://sourceforge.net/projects/glc/ glc]

| Bill Allen

| Python

| LGPL

[http://ruby-gnome2.sourceforge.jp/hiki.cgi?ruby-glade-create-template ruby-glade-create-template] {{Webarchive|url=https://web.archive.org/web/20130607115759/http://ruby-gnome2.sourceforge.jp/hiki.cgi?ruby-glade-create-template |date=7 June 2013 }}

| Masao Mutoh

| Ruby

|

[https://launchpad.net/tepache Tepache]

| Sandino Flores Moreno

| Python

| LGPL

[https://github.com/DTJF/GladeToBac GladeToBac]

| Thomas Freiherr

| FreeBASIC (includes headers for GTK-3 and

GTK-2.22.0 / GTKGlExt-1.2.0)

| GPLv3

[http://wargaleon.users.sourceforge.net/glade2fb Glade2FB]

| Arnel Borja

| FreeBASIC

| GPLv3

[http://sourceforge.net/projects/lorenz/files/ gate3]

| F. J. Fabien

| Ada

| MIT License

Cambalache

{{Infobox software

| name = Cambalache

| title = Cambalache

| logo = Cambalache-logo.svg

| screenshot = Cambalache screenshot.png

| collapsible =

| author = Juan Pablo Ugarte

| developer =

| discontinued =

| repo = https://gitlab.gnome.org/jpu/cambalache

| programming language = Python

| operating system = Unix-like

| platform =

| size =

| language =

| language count =

| language footnote =

| genre = {{ubl|GUI builder|Linux on the desktop|Human interface guidelines}}

| license = GNU Lesser General Public License

| website = https://flathub.org/apps/ar.xjuan.Cambalache

| replaces = Glade Interface Designer

}}Cambalache (/kambaˈlat͡ʃe/){{Cite AV media |url=https://www.youtube.com/watch?feature=shared&t=227&v=KKM6_dB8hoM |title=GUADEC 2024 Cambalache: road to version 1.0 |date=2024-08-02 |last=GNOME |access-date=2024-09-11 |via=YouTube}} is a free and open-source rapid application development (RAD) tool{{Citation |last=James |title=Taiko2k/GTK4PythonTutorial |date=2024-09-09 |url=https://github.com/Taiko2k/GTK4PythonTutorial |access-date=2024-09-10}}{{Cite web |last=Intel |first=Altus |date=2021-12-10 |title=Release Cambalache 0.8.0, GTK Interface Development Tool |url=https://www.altusintel.com/public-yy6hrj/ |access-date=2024-09-11 |website=Altus Intel |language=en-AU}}{{Cite web |last=Darkcrizt |date=2021-07-22 |title=Cambalache, a tool for creating Gtk user interfaces |url=https://www.linuxadictos.com/en/swap-a-tool-for-creating-gtk-user-interfaces.html |access-date=2024-09-11 |website=Linux Adictos |language=en}} designed for creating user interfaces with GTK 4. It is designed as a successor to Glade,{{Cite web |title=Cambalache on alternativeto.net |url=https://alternativeto.net/software/cambalache/about/}}{{Cite web |date=2021-08-25 |title=Create Beautiful User Interface for Gtk applications with Cambalache |url=https://connectwww.com/create-beautiful-user-interface-for-gtk-applications-with-cambalache/63200/ |access-date=2024-09-10 |website=CONNECTwww.com |language=en-US}} with a focus on supporting the GTK 4 library while maintaining compatibility with GTK 3. Cambalache is geared toward developers working within the GNOME ecosystem. Cambalache's design emphasizes the Model-View-Controller (MVC) architecture, ensuring separation between the UI components and the business logic of applications.

The UI editing workspace is driven by a separate process called Merengue which interfaces with Casilda, a Wayland compositor embedded in a GTK widget. This architectural choice improves stability by separating the user interface preview from the main application. This separation enables the system to handle different GTK versions efficiently, ensuring the rendered UI accurately mirrors the application's appearance and behavior.{{Cite web |date=2024-09-26 |title=New Cambalache Release 0.92.0! – ar.xjuan.Blog |url=https://blogs.gnome.org/xjuan/2024/09/26/new-cambalache-release-0-92-0/ |access-date=2024-09-30 |language=en-US}}

File:Cambalache in dark mode.png

File:Camabalache's interface.png

See also

References

{{Reflist}}