• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

doc/H03-May-2022-4,2583,415

examples/H17-Mar-2009-637575

glade/H03-May-2022-6,5344,734

m4/H17-Mar-2009-11297

tests/H03-May-2022-2,9692,712

AUTHORSH A D17-Mar-200936 21

COPYINGH A D17-Mar-200924.7 KiB482399

ChangeLogH A D17-Mar-2009118.5 KiB3,5192,380

INSTALLH A D17-Mar-20099.3 KiB238179

Makefile.amH A D17-Mar-20091.1 KiB5135

Makefile.inH A D03-May-202227.8 KiB861760

NEWSH A D17-Mar-200914.8 KiB363318

READMEH A D17-Mar-20092.1 KiB5440

aclocal.m4H A D17-Mar-2009298.4 KiB8,5257,667

config.guessH A D17-Mar-200943.8 KiB1,5271,315

config.h.inH A D17-Mar-20092.1 KiB8556

config.subH A D17-Mar-200932.6 KiB1,6591,514

configureH A D03-May-2022439.5 KiB14,89712,397

configure.inH A D17-Mar-20094.8 KiB195166

depcompH A D17-Mar-200917.4 KiB590375

glade-2.0.dtdH A D17-Mar-20092.1 KiB7762

gtk-doc.makeH A D17-Mar-20095.9 KiB194160

install-shH A D17-Mar-200913.3 KiB520344

libglade-2.0-uninstalled.pc.inH A D17-Mar-2009251 86

libglade-2.0.pc.inH A D17-Mar-2009471 1814

libglade-convert.inH A D17-Mar-200945.5 KiB1,2131,080

libglade-zip.inH A D17-Mar-2009451 2516

libglade.specH A D17-Mar-20091.8 KiB8460

libglade.spec.inH A D17-Mar-20091.8 KiB8460

ltmain.shH A D09-Mar-2009195 KiB6,9575,498

missingH A D17-Mar-200910.9 KiB368275

mkinstalldirsH A D17-Mar-20093.4 KiB162112

test-libglade.cH A D17-Mar-20094.9 KiB15070

README

1LIBGLADE
2========
3
4Author: James Henstridge <james@daa.com.au>
5
6This library allows you to load glade interface files in a program at
7runtime.  It doesn't require GLADE to be used, but GLADE is by far the
8easiest way to create the interface files.
9
10For an idea of how to use the library, see test-libglade.c and
11glade/glade-xml.h.
12
13To compile, you will need the libxml2 package (aka the gnome-xml
14module in CVS) which can be found on the GNOME FTP site or its
15mirrors.  If you want GNOME support, you will also need the gnome-libs
16package installed.
17
18
19LIBGLADE INTERNALS
20==================
21
22If you are interested in how libglade works, here is a small
23description:
24
25When glade_xml_new is called, the XML file is loaded using libxml.
26Libglade uses the SAX interface because it is faster and allows me to
27store the data in a more compact representation.  The data in the XML
28file is cached, so that if you load the interface again, the file does
29not need to be reparsed.  If the file has changed though, it will be
30reparsed.
31
32Now glade_xml_build_widget is called for all the toplevel widgets in
33the interface (or if the second argument to glade_xml_new was non
34NULL, the widget it refers to is treated as the toplevel).
35
36For each of these widgets, they are created by a function specific to
37the widget type, and then glade_xml_build_widget is called for each
38child widget, which is then packed into its parent.  This is done
39recursively, so the whole interface is constructed.
40
41New widget types are added to the widget class hash with the
42glade_register_widgets function.  For an example, see the end of
43glade-gtk.c.
44
45The automatic signal connection system uses the introspective
46capabilities of dynamic linking.  By openning a handle on NULL, we can
47get at all the global symbols (global functions, global variables) in
48the executable, and the libraries it is linked against.  This is used
49to find the address of a signal handler from its name, so that
50gtk_signal_connect can be called automatically for you.
51
52Of course, there are other ways of connecting the signals if your
53platform doesn't support this feature.
54