Compare commits

..

4 Commits

Author SHA1 Message Date
Tristan Van Berkom 7f691b2df2 Allow single line GtkSpreadTable
Added exception for single line spread table and
updated test case to allow configuration to a single line.
2010-10-11 21:45:42 +09:00
Tristan Van Berkom 7db09805f6 Added gtk_spread_table_get_child_line
Gets the line index in which a child would be positioned
if the table were to be allocated size in the opposing
orientation of the table.

For instance, if the table is oriented vertically,
this function will return the child's column if
the table were to be allocated size width.
2010-10-09 00:54:30 +09:00
Tristan Van Berkom a5f74b6279 Changed GtkSpreadTable algorithm to be a binary search for the best height
This has some exceptions:
   - We still ignore the height of a widget that spans the entire column
     (i.e. large images dont force the whole table to try to be as tall
     as the image itself)
   - In this new algorithm we fill in to the best height from left to
     right which can leave trailing empty columns; in this case we place
     only a single widget in each trailing column.
2010-10-08 21:39:55 +09:00
Tristan Van Berkom 794c4c9ec7 Added GtkSpreadTable widget and test case.
GtkSpreadTable positions its children by distributing them as
evenly as possible across a fixed number of rows or columns.

When oriented vertically the GtkSpreadTable will list its
children in order from top to bottom in columns and request
the smallest height as possible regardless of differences in
child sizes.
2010-10-06 17:34:06 +09:00
483 changed files with 215274 additions and 33963 deletions
+75 -3
View File
@@ -1,7 +1,7 @@
## Makefile.am for GTK+
include $(top_srcdir)/Makefile.decl
SRC_SUBDIRS = gdk gtk modules demos tests perf examples
SRC_SUBDIRS = gdk gtk modules demos tests perf
SUBDIRS = po po-properties $(SRC_SUBDIRS) docs m4macros build
ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
@@ -31,8 +31,80 @@ EXTRA_DIST += \
gtk-zip.sh.in \
sanitize-la.sh \
po/README.translators \
po/po2tbl.sed.in
po/po2tbl.sed.in \
examples/aspectframe/Makefile \
examples/aspectframe/aspectframe.c \
examples/Makefile \
examples/README.1ST \
examples/extract.awk \
examples/extract.sh \
examples/arrow/Makefile \
examples/arrow/arrow.c \
examples/base/Makefile \
examples/base/base.c \
examples/buttonbox/Makefile \
examples/buttonbox/buttonbox.c \
examples/buttons/Makefile \
examples/buttons/buttons.c \
examples/buttons/info.xpm \
examples/calendar/Makefile \
examples/calendar/calendar.c \
examples/entry/Makefile \
examples/entry/entry.c \
examples/eventbox/Makefile \
examples/eventbox/eventbox.c \
examples/gtkdial/Makefile \
examples/gtkdial/dial_test.c \
examples/gtkdial/gtkdial.c \
examples/gtkdial/gtkdial.h \
examples/helloworld/Makefile \
examples/helloworld/helloworld.c \
examples/helloworld2/Makefile \
examples/helloworld2/helloworld2.c \
examples/label/Makefile \
examples/label/label.c \
examples/menu/Makefile \
examples/menu/menu.c \
examples/notebook/Makefile \
examples/notebook/notebook.c \
examples/packbox/Makefile \
examples/packbox/packbox.c \
examples/paned/Makefile \
examples/paned/paned.c \
examples/progressbar/Makefile \
examples/progressbar/progressbar.c \
examples/radiobuttons/Makefile \
examples/radiobuttons/radiobuttons.c \
examples/rangewidgets/Makefile \
examples/rangewidgets/rangewidgets.c \
examples/rulers/Makefile \
examples/rulers/rulers.c \
examples/scribble-simple/Makefile \
examples/scribble-simple/scribble-simple.c \
examples/scribble-xinput/Makefile \
examples/scribble-xinput/scribble-xinput.c \
examples/scrolledwin/Makefile \
examples/scrolledwin/scrolledwin.c \
examples/selection/Makefile \
examples/selection/gettargets.c \
examples/selection/setselection.c \
examples/statusbar/Makefile \
examples/statusbar/statusbar.c \
examples/table/Makefile \
examples/table/table.c \
examples/tictactoe/Makefile \
examples/tictactoe/tictactoe.c \
examples/tictactoe/tictactoe.h \
examples/tictactoe/ttt_test.c \
examples/wheelbarrow/Makefile \
examples/wheelbarrow/wheelbarrow.c \
examples/fixed/fixed.c \
examples/fixed/Makefile \
examples/frame/frame.c \
examples/frame/Makefile \
examples/spinbutton/spinbutton.c \
examples/spinbutton/Makefile \
examples/find-examples.sh
MAINTAINERCLEANFILES = \
$(srcdir)/INSTALL \
$(srcdir)/README \
-132
View File
@@ -1,135 +1,3 @@
Overview of Changes from GTK+ 2.91.1 to 2.91.2
==============================================
* GtkApplication has been rewritten. It mostly relies on GApplication
API now. Remaining functions include gtk_application_new() and
gtk_window_set_application()
* A GtkScrollable interface has been added and implemented by all
scrollable widgets. GtkScrolledWindow has ::min-display-width/height
properties to control the minimal size of the content area.
* GtkComboBox changes:
- Popups can be wider than the combo box itself
- The deprecated GtkComboBoxEntry subclass has been removed
- The deprecated combo box text convenience API has been removed
* GtkRecentManager changes:
- Store xbel file in XDG_USER_DATA
- Add gtk_recent_info_create_app_info()
- Add gtk_recent_info_get_gicon()
- Coalesce multiple changes
* GtkIconView allows tree models (ignoring anything below the root level)
* GtkProgressBar, GtkSpinButton, GtkEntry and GtkCalendar no longer have
their own input-output window
* gtk_widget_hide_all() has been removed
* GtkGrid: A legacy-free, height-for-width grid container
* GDK gained a GdkRGBA color struct containing 4 doubles, and various
GdkColor APIs have GdkRGBA counterparts now.
* Bugs fixed:
324899 GtkComboBoxText needs API to remove all items
438318 Deprecate and remove hide_all()
524304 Use XDG_USER_DATA to store the recent files
617174 gtkrecentinfo & GIcon
632381 gtk_combo_box_text_new_with_entry() adds two text cell renderers
632538 Move setting property registration in gtksettings.c
632539 Do not install gtkprivate.h
632677 restore copyright header
632736 change the window class of entry from INPUT_OUTPUT to INPUT_ONLY
632936 gtkcellrenderer gdkrgba changes not correct
* Translation updates:
Arabic
Galician
Hebrew
Japanese
Norwegian bokmål
Spanish
Telugu
Overview of Changes from GTK+ 2.91.0 to 2.91.1
==============================================
* GTK+ can now add a resize grip to any window. The resize
grip functionality in GtkStatusbar has been removed.
* A very old bug in the handling of geometry widgets has
been fixed, and a way to set geometry in terms of the
geometry widget has been added: gtk_window_resize_to_geometry()
* The GtkFileChooser now uses GSettings to store its settings
instead of the keyfile ~/.config/gtk-2.0/gtkfilechooser.ini
* GtkWrapBox has been dropped from GTK+ again. The widget
will be available in libegg until clear use cases have
been established.
* GtkWidget now has horizontal and vertical expand flags, in
the form of ::hexpand and ::vexpand properties. These flags
are intended to obsolete most custom container-specific
expand child properties, over time.
Expandability is inherited up the widget hierarchy.
* GtkComboBoxEntry has been deprecated in favor of a
::has-entry property on GtkComboBox.
* The GtkComboBox text convenience API (gtk_combo_box_new_text(), etc)
has been deprecated in favor of a new GtkComboBoxText class.
* GtkLinkButton has gained a ::activate-link signal that
can be used to suppress the default behavior.
* The very outdated tutorial has been dropped from the GTK+ distribution,
and a new 'Getting started' section has been added to the API
documentation that will accumulate tutorial material over time.
* Bugs fixed:
68668 Fix handling of geometry widget
313350 Return type of gtk_accelerator_get_default_mod_mask...
351247 GtkScrolledWindow is mis documented
423201 gtk_combo_box_entry_active_changed does not transform...
563002 Doesn't call 'update-preview' on set_filename
612396 Implement GtkComboBoxText subclass to supersede "text"...
613728 Rationalize GtkTreeView focus
628902 use expand flags to determine window resizability
629722 save_entry_get_info_cb() doesn't behave correctly
629778 Scrolled window does not behave properly with height-for...
629955 Deprecate / remove gtk_main and gtk_init_add / remove* API
630850 Use GSettings for the filechooser settings
630900 GtkCellRendererClass: unify const of GdkRectangle args
631203 Scrolling in GtkTextView can use 100% cpu
631311 Obvious fix for nasty crash in menu code
631473 Fix GTK+3 documentation
631475 Two old GDK_foo key macros left in gdk/quartz/gdkkeys-quartz.c
631599 Allow to use arbitrary surfaces for offscreen windows
631719 Action-based menu accelerators don't synch with GtkMenuItem
631794 Warn when calling gtk_window_parse_geometry() on an empty...
631976 Remove GtkWidgetAuxInfo from GtkScrolledWindow
632059 Move the introduction of the tutorial in the reference
632095 GtkTargetEntry: Add boxed type and constructor
632140 optionally take hotspot coordinates from the pixbuf...
632218 BadMatch when starting gnome-shell
* New or updated translations:
Catalan
Estonian
Galician
Greek
Kazakh
Kikongo
Lithuanian
Punjabi
Slovenian
Spanish
Overview of Changes from GTK+ 2.90.7 to 2.91.0
==============================================
+1 -1
View File
@@ -19,7 +19,7 @@ if libtoolize --version < /dev/null > /dev/null 2>&1 ; then
sed -e 's/^\(.*\)([^)]*)\(.*\)$/\1\2/g' \
-e 's/^[^0-9]*\([0-9.][0-9.]*\).*/\1/'`
case $libtool_version in
2.*)
2.2*)
have_libtool=true
;;
esac
+15 -20
View File
@@ -2,14 +2,6 @@
# require autoconf 2.54
AC_PREREQ([2.62])
AC_INIT([gtk+], [gtk_version],
[http://bugzilla.gnome.org/enter_bug.cgi?product=gtk%2B],
[gtk+])
AC_CONFIG_HEADER([config.h])
AC_CONFIG_SRCDIR([gdk/gdktypes.h])
AC_CONFIG_MACRO_DIR([m4])
# Making releases:
# GTK_MICRO_VERSION += 1;
# GTK_INTERFACE_AGE += 1;
@@ -20,7 +12,7 @@ AC_CONFIG_MACRO_DIR([m4])
m4_define([gtk_major_version], [2])
m4_define([gtk_minor_version], [91])
m4_define([gtk_micro_version], [2])
m4_define([gtk_micro_version], [1])
m4_define([gtk_interface_age], [0])
m4_define([gtk_binary_age],
[m4_eval(100 * gtk_minor_version + gtk_micro_version)])
@@ -39,7 +31,7 @@ m4_define([gtk_api_version], [3.0])
m4_define([gtk_binary_version], [3.0.0])
# required versions of other packages
m4_define([glib_required_version], [2.27.1])
m4_define([glib_required_version], [2.27.0])
m4_define([pango_required_version], [1.20])
m4_define([atk_required_version], [1.29.2])
m4_define([cairo_required_version], [1.10.0])
@@ -56,6 +48,14 @@ AC_SUBST(CAIRO_REQUIRED_VERSION)
AC_SUBST(GDK_PIXBUF_REQUIRED_VERSION)
AC_INIT([gtk+], [gtk_version],
[http://bugzilla.gnome.org/enter_bug.cgi?product=gtk%2B],
[gtk+])
AC_CONFIG_HEADER([config.h])
AC_CONFIG_SRCDIR([gdk/gdktypes.h])
AC_CONFIG_MACRO_DIR([m4])
# Save this value here, since automake will set cflags later
cflags_set=${CFLAGS+set}
@@ -65,7 +65,7 @@ AM_MAINTAINER_MODE([enable])
# Support silent build rules, requires at least automake-1.11. Enable
# by either passing --enable-silent-rules to configure or passing V=0
# to make
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([no])])
#
# For each of the libraries we build, we define the following
@@ -1225,9 +1225,9 @@ LDFLAGS="$saved_ldflags"
# Pull in gio-unix for GDesktopAppInfo usage, see at least gdkapplaunchcontext-x11.c
if test "x$gdktarget" = "xx11"; then
GDK_PACKAGES="$PANGO_PACKAGES gio-unix-2.0 $X_PACKAGES gdk-pixbuf-2.0 cairo-$cairo_backend cairo-gobject"
GDK_PACKAGES="$PANGO_PACKAGES gio-unix-2.0 $X_PACKAGES gdk-pixbuf-2.0 cairo-$cairo_backend"
else
GDK_PACKAGES="$PANGO_PACKAGES gio-2.0 gdk-pixbuf-2.0 cairo-$cairo_backend cairo-gobject"
GDK_PACKAGES="$PANGO_PACKAGES gio-2.0 gdk-pixbuf-2.0 cairo-$cairo_backend"
fi
GDK_DEP_LIBS="$GDK_EXTRA_LIBS `$PKG_CONFIG --libs $GDK_PACKAGES`"
@@ -1477,12 +1477,6 @@ if test -n "$export_dynamic"; then
GTK_DEP_LIBS=`echo $GTK_DEP_LIBS | sed -e "s/$export_dynamic//"`
fi
#############
# GSettings #
#############
GLIB_GSETTINGS
##################################################
# GObject introspection
##################################################
@@ -1640,7 +1634,6 @@ po-properties/Makefile.in
demos/Makefile
demos/gtk-demo/Makefile
demos/gtk-demo/geninclude.pl
examples/Makefile
tests/Makefile
docs/Makefile
docs/reference/Makefile
@@ -1649,7 +1642,9 @@ docs/reference/gdk/version.xml
docs/reference/gtk/Makefile
docs/reference/gtk/version.xml
docs/reference/libgail-util/Makefile
docs/faq/Makefile
docs/tools/Makefile
docs/tutorial/Makefile
build/Makefile
build/win32/Makefile
build/win32/vs9/Makefile
+23
View File
@@ -384,6 +384,23 @@ mark_set_callback (GtkTextBuffer *buffer,
update_statusbar (buffer, GTK_STATUSBAR (data));
}
static void
update_resize_grip (GtkWidget *widget,
GdkEventWindowState *event,
GtkStatusbar *statusbar)
{
if (event->changed_mask & (GDK_WINDOW_STATE_MAXIMIZED |
GDK_WINDOW_STATE_FULLSCREEN))
{
gboolean maximized;
maximized = event->new_window_state & (GDK_WINDOW_STATE_MAXIMIZED |
GDK_WINDOW_STATE_FULLSCREEN);
gtk_statusbar_set_has_resize_grip (statusbar, !maximized);
}
}
GtkWidget *
do_appwindow (GtkWidget *do_widget)
{
@@ -552,6 +569,12 @@ do_appwindow (GtkWidget *do_widget)
statusbar,
0);
g_signal_connect_object (window,
"window_state_event",
G_CALLBACK (update_resize_grip),
statusbar,
0);
update_statusbar (buffer, GTK_STATUSBAR (statusbar));
}
+6 -6
View File
@@ -238,12 +238,12 @@ is_capital_sensitive (GtkCellLayout *cell_layout,
}
static void
fill_combo_entry (GtkWidget *combo)
fill_combo_entry (GtkWidget *entry)
{
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), "One");
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), "Two");
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), "2\302\275");
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), "Three");
gtk_combo_box_append_text (GTK_COMBO_BOX (entry), "One");
gtk_combo_box_append_text (GTK_COMBO_BOX (entry), "Two");
gtk_combo_box_append_text (GTK_COMBO_BOX (entry), "2\302\275");
gtk_combo_box_append_text (GTK_COMBO_BOX (entry), "Three");
}
@@ -428,7 +428,7 @@ do_combobox (GtkWidget *do_widget)
gtk_container_set_border_width (GTK_CONTAINER (box), 5);
gtk_container_add (GTK_CONTAINER (frame), box);
combo = gtk_combo_box_text_new_with_entry ();
combo = gtk_combo_box_entry_new_text ();
fill_combo_entry (combo);
gtk_container_add (GTK_CONTAINER (box), combo);
+1 -1
View File
@@ -193,7 +193,7 @@ close_window (void)
window = NULL;
if (surface)
cairo_surface_destroy (surface);
g_object_unref (surface);
surface = NULL;
}
+2 -2
View File
@@ -25,10 +25,10 @@ create_combo_box (const char **strings)
GtkWidget *combo_box;
const char **str;
combo_box = gtk_combo_box_text_new ();
combo_box = gtk_combo_box_new_text ();
for (str = strings; *str; str++)
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo_box), *str);
gtk_combo_box_append_text (GTK_COMBO_BOX (combo_box), *str);
gtk_combo_box_set_active (GTK_COMBO_BOX (combo_box), 0);
+4 -4
View File
@@ -371,11 +371,11 @@ attach_widgets (GtkTextView *text_view)
}
else if (i == 1)
{
widget = gtk_combo_box_text_new ();
widget = gtk_combo_box_new_text ();
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (widget), "Option 1");
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (widget), "Option 2");
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (widget), "Option 3");
gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "Option 1");
gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "Option 2");
gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "Option 3");
}
else if (i == 2)
{
+5 -5
View File
@@ -101,12 +101,12 @@ main(int argc, char **argv)
vbox = gtk_vbox_new (FALSE, 0);
gtk_container_add (GTK_CONTAINER (window), vbox);
combo_box = gtk_combo_box_text_new ();
combo_box = gtk_combo_box_new_text ();
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo_box), "NEAREST");
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo_box), "BILINEAR");
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo_box), "TILES");
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo_box), "HYPER");
gtk_combo_box_append_text (GTK_COMBO_BOX (combo_box), "NEAREST");
gtk_combo_box_append_text (GTK_COMBO_BOX (combo_box), "BILINEAR");
gtk_combo_box_append_text (GTK_COMBO_BOX (combo_box), "TILES");
gtk_combo_box_append_text (GTK_COMBO_BOX (combo_box), "HYPER");
gtk_combo_box_set_active (GTK_COMBO_BOX (combo_box), 1);
+1 -1
View File
@@ -1,7 +1,7 @@
## Process this file with automake to produce Makefile.in
include $(top_srcdir)/Makefile.decl
SUBDIRS = reference tools
SUBDIRS = tutorial faq reference tools
EXTRA_DIST += \
CODING-STYLE \
+44
View File
@@ -0,0 +1,44 @@
include $(top_srcdir)/Makefile.decl
EXTRA_DIST += \
gtk-faq.sgml
if HAVE_DOCBOOK
html:
if test -w $(srcdir); then \
(cd $(srcdir); \
db2html gtk-faq.sgml; \
test -d html && rm -r html; \
mv gtk-faq html); \
fi
pdf:
if test -w $(srcdir); then \
(cd $(srcdir); db2pdf gtk-faq.sgml); \
fi
all-local: html
dist-hook: html
cp -Rp $(srcdir)/html $(distdir)
else
html:
echo "***"
echo "*** Warning: FAQ not built"
echo "***"
pdf:
echo "***"
echo "*** Warning: FAQ not built"
echo "***"
dist-hook:
echo "***"
echo "*** Warning: FAQ not built"
echo "*** DISTRIBUTION IS INCOMPLETE"
echo "***"
endif
.PHONY: html
-include $(top_srcdir)/git.mk
File diff suppressed because it is too large Load Diff
+16 -1
View File
@@ -17,29 +17,44 @@
<reference id="reference">
<title>API Reference</title>
<xi:include href="xml/general.xml" />
<xi:include href="multihead.sgml" />
<xi:include href="xml/gdkdisplay.xml" />
<xi:include href="xml/gdkdisplaymanager.xml" />
<xi:include href="xml/gdkscreen.xml" />
<xi:include href="xml/regions.xml" />
<xi:include href="xml/drawing.xml" />
<xi:include href="xml/colors.xml" />
<xi:include href="xml/rgba_colors.xml" />
<xi:include href="xml/visuals.xml" />
<xi:include href="xml/fonts.xml" />
<xi:include href="xml/cursors.xml" />
<xi:include href="xml/windows.xml" />
<xi:include href="xml/events.xml" />
<xi:include href="xml/event_structs.xml" />
<xi:include href="xml/keys.xml" />
<xi:include href="xml/selections.xml" />
<xi:include href="xml/dnd.xml" />
<xi:include href="xml/properties.xml" />
<xi:include href="xml/threads.xml" />
<xi:include href="xml/input.xml" />
<xi:include href="xml/gdkdevicemanager.xml" />
<xi:include href="xml/pango_interaction.xml" />
<xi:include href="xml/cairo_interaction.xml" />
<xi:include href="xml/x_interaction.xml" />
<xi:include href="xml/gdkapplaunchcontext.xml" />
<xi:include href="xml/gdktesting.xml" />
</reference>
-17
View File
@@ -259,21 +259,6 @@ GDK_TYPE_COLOR
</SECTION>
<SECTION>
<TITLE>RGBA Colors</TITLE>
<FILE>rgba_colors</FILE>
GdkRGBA
gdk_rgba_copy
gdk_rgba_free
gdk_rgba_parse
gdk_rgba_equal
gdk_rgba_hash
gdk_rgba_to_string
<SUBSECTION Standard>
GDK_TYPE_RGBA
</SECTION>
<SECTION>
<TITLE>Drawing Primitives</TITLE>
<FILE>drawing</FILE>
@@ -436,7 +421,6 @@ gdk_window_merge_child_input_shapes
gdk_window_set_static_gravities
gdk_window_set_title
gdk_window_set_background
gdk_window_set_background_rgba
gdk_window_set_background_pattern
gdk_window_get_background_pattern
GDK_PARENT_RELATIVE
@@ -611,7 +595,6 @@ gdk_window_create_similar_surface
gdk_cairo_create
gdk_cairo_get_clip_rectangle
gdk_cairo_set_source_color
gdk_cairo_set_source_rgba
gdk_cairo_set_source_pixbuf
gdk_cairo_set_source_window
gdk_cairo_rectangle
+2 -2
View File
@@ -106,12 +106,12 @@ gtk_window_set_screen (window, second_screen);<!--
<para>
<variablelist>
<varlistentry>
<term><link linkend="GdkDisplay">GdkDisplay</link></term>
<term><link linkend="gdk-GdkDisplay">GdkDisplay</link></term>
<listitem><para>the GDK Object used to represent and manipulate display
related data</para></listitem>
</varlistentry>
<varlistentry>
<term><link linkend="GdkScreen">GdkScreen</link></term>
<term><link linkend="gdk-GdkScreen">GdkScreen</link></term>
<listitem><para>the GDK Object used to represent and query screen related
data</para></listitem>
</varlistentry>
+4 -4
View File
@@ -8,10 +8,10 @@ Standard and pixmap cursors
<para>
These functions are used to create and destroy cursors.
There is a number of standard cursors, but it is also
possible to construct new cursors from pixbufs. There
may be limitations as to what kinds of cursors can be
constructed on a given display, see
gdk_display_supports_cursor_alpha(),
possible to construct new cursors from pixmaps and
pixbufs. There may be limitations as to what kinds of
cursors can be constructed on a given display, see
gdk_display_supports_cursor_alpha(),
gdk_display_supports_cursor_color(),
gdk_display_get_default_cursor_size() and
gdk_display_get_maximal_cursor_size().
+46
View File
@@ -45,6 +45,52 @@ or a #GdkWindow.
</para>
<!-- ##### FUNCTION gdk_drawable_get_screen ##### -->
<para>
</para>
@drawable:
@Returns:
<!-- ##### FUNCTION gdk_drawable_get_visual ##### -->
<para>
</para>
@drawable:
@Returns:
<!-- ##### FUNCTION gdk_drawable_set_colormap ##### -->
<para>
</para>
@drawable:
@colormap:
<!-- ##### FUNCTION gdk_drawable_get_depth ##### -->
<para>
</para>
@drawable:
@Returns:
<!-- ##### FUNCTION gdk_drawable_get_size ##### -->
<para>
</para>
@drawable:
@width:
@height:
<!-- ##### FUNCTION gdk_drawable_get_clip_region ##### -->
<para>
+36
View File
@@ -77,6 +77,33 @@ when GDK gets multihead support.
@Returns:
<!-- ##### FUNCTION gdk_screen_get_default_colormap ##### -->
<para>
</para>
@screen:
@Returns:
<!-- ##### FUNCTION gdk_screen_set_default_colormap ##### -->
<para>
</para>
@screen:
@colormap:
<!-- ##### FUNCTION gdk_screen_get_system_colormap ##### -->
<para>
</para>
@screen:
@Returns:
<!-- ##### FUNCTION gdk_screen_get_system_visual ##### -->
<para>
@@ -86,6 +113,15 @@ when GDK gets multihead support.
@Returns:
<!-- ##### FUNCTION gdk_screen_get_rgba_colormap ##### -->
<para>
</para>
@screen:
@Returns:
<!-- ##### FUNCTION gdk_screen_get_rgba_visual ##### -->
<para>
-24
View File
@@ -326,30 +326,6 @@ available.
@void:
<!-- ##### FUNCTION gdk_error_trap_push ##### -->
<para>
</para>
@void:
<!-- ##### MACRO gdk_error_trap_pop ##### -->
<para>
</para>
<!-- ##### FUNCTION gdk_error_trap_pop_ignored ##### -->
<para>
</para>
@void:
<!-- ##### MACRO GDK_WINDOWING_X11 ##### -->
<para>
This macro is defined if GDK is configured to use the X11 backend.
+54 -50
View File
@@ -7,9 +7,9 @@ Using Pango in GDK
<!-- ##### SECTION Long_Description ##### -->
<para>
Pango is the text layout system used by GDK and GTK+. The functions
and types in this section are used to obtain clip regions for
#PangoLayouts, and to get #PangoContexts that can be used with
GDK.
and types in this section are used to render Pango objects to GDK.
drawables, and also extend the set of Pango attributes to include
stippling and embossing.
</para>
<para>
Creating a #PangoLayout object is the first step in rendering text,
@@ -24,38 +24,51 @@ between Pango units and pixels using <link
linkend="PANGO-SCALE-CAPS">PANGO_SCALE</link> or the PANGO_PIXELS() macro.)
</para>
<para>
Rendering a Pango layout is done most simply with pango_cairo_show_layout();
you can also draw pieces of the layout with pango_cairo_show_layout_line().
Rendering a Pango layout is done most simply with gdk_draw_layout();
you can also draw pieces of the layout with gdk_draw_layout().
#GdkPangoRenderer is a subclass of #PangoRenderer that is used internally
to implement these functions. Using it directly or subclassing it can be
useful in some cases. See the #GdkPangoRenderer documentation for details.
</para>
<example id="rotated-example">
<title>Draw transformed text with Pango and cairo</title>
<title>Using #GdkPangoRenderer to draw transformed text</title>
<!-- Note that this example is basically the same as
demos/gtk-demo/rotated_text.c -->
<programlisting>
#define RADIUS 100
#define N_WORDS 10
#define FONT "Sans Bold 18"
GdkScreen *screen = gdk_drawable_get_screen (drawable);
PangoRenderer *renderer;
GdkGC *gc;
PangoMatrix matrix = PANGO_MATRIX_INIT;
PangoContext *context;
PangoLayout *layout;
PangoFontDescription *desc;
double radius;
double device_radius;
int width, height;
int i;
/* Get the default renderer for the screen, and set it up for drawing */
renderer = gdk_pango_renderer_get_default (screen);
gdk_pango_renderer_set_drawable (GDK_PANGO_RENDERER (renderer), drawable);
gc = gdk_gc_new (drawable);
gdk_pango_renderer_set_gc (GDK_PANGO_RENDERER (renderer), gc);
/* Set up a transformation matrix so that the user space coordinates for
* where we are drawing are [-RADIUS, RADIUS], [-RADIUS, RADIUS]
* We first center, then change the scale */
gdk_drawable_get_size (drawable, &amp;width, &amp;height);
device_radius = MIN (width, height) / 2.;
width = gdk_window_get_width (window);
height = gdk_window_get_height (window);
radius = MIN (width, height) / 2.;
cairo_translate (cr,
radius + (width - 2 * radius) / 2,
radius + (height - 2 * radius) / 2);
cairo_scale (cr, radius / RADIUS, radius / RADIUS);
pango_matrix_translate (&amp;matrix,
device_radius + (width - 2 * device_radius) / 2,
device_radius + (height - 2 * device_radius) / 2);
pango_matrix_scale (&amp;matrix, device_radius / RADIUS, device_radius / RADIUS);
/* Create a PangoLayout, set the font and text */
context = gdk_pango_context_get_for_screen (screen);
@@ -68,32 +81,41 @@ pango_font_description_free (desc);
/* Draw the layout N_WORDS times in a circle */
for (i = 0; i &lt; N_WORDS; i++)
{
double red, green, blue;
double angle = 2 * G_PI * i / n_words;
cairo_save (cr);
GdkColor color;
PangoMatrix rotated_matrix = matrix;
int width, height;
double angle = (360. * i) / N_WORDS;
/* Gradient from red at angle == 60 to blue at angle == 300 */
red = (1 + cos (angle - 60)) / 2;
green = 0;
blue = 1 - red;
cairo_set_source_rgb (cr, red, green, blue);
cairo_rotate (cr, angle);
color.red = 65535 * (1 + cos ((angle - 60) * M_PI / 180.)) / 2;
color.green = 0;
color.blue = 65535 - color.red;
gdk_pango_renderer_set_override_color (GDK_PANGO_RENDERER (renderer),
PANGO_RENDER_PART_FOREGROUND, &amp;color);
pango_matrix_rotate (&amp;rotated_matrix, angle);
pango_context_set_matrix (context, &amp;rotated_matrix);
/* Inform Pango to re-layout the text with the new transformation matrix */
pango_cairo_update_layout (cr, layout);
pango_layout_context_changed (layout);
pango_layout_get_size (layout, &amp;width, &amp;height);
cairo_move_to (cr, - width / 2 / PANGO_SCALE, - DEFAULT_TEXT_RADIUS);
pango_cairo_show_layout (cr, layout);
cairo_restore (cr);
pango_renderer_draw_layout (renderer, layout,
- width / 2, - RADIUS * PANGO_SCALE);
}
/* Clean up default renderer, since it is shared */
gdk_pango_renderer_set_override_color (GDK_PANGO_RENDERER (renderer),
PANGO_RENDER_PART_FOREGROUND, NULL);
gdk_pango_renderer_set_drawable (GDK_PANGO_RENDERER (renderer), NULL);
gdk_pango_renderer_set_gc (GDK_PANGO_RENDERER (renderer), NULL);
/* free the objects we created */
g_object_unref (layout);
g_object_unref (context);
g_object_unref (gc);
</programlisting>
</example>
<figure>
@@ -138,21 +160,3 @@ g_object_unref (context);
@Returns:
<!-- ##### FUNCTION gdk_pango_context_get ##### -->
<para>
</para>
@void:
@Returns:
<!-- ##### FUNCTION gdk_pango_context_get_for_screen ##### -->
<para>
</para>
@screen:
@Returns:
+1 -1
View File
@@ -36,7 +36,7 @@ then %GDK_VISUAL_STATIC_GRAY.
<!-- ##### SECTION See_Also ##### -->
<para>
#GdkColormap
</para>
<!-- ##### SECTION Stability_Level ##### -->
+132 -27
View File
@@ -6,17 +6,7 @@ X backend-specific functions
<!-- ##### SECTION Long_Description ##### -->
<para>
The functions in this section are specific to the GDK X11 backend.
To use them, you need to include the <literal>&lt;gdk/gdkx.h&gt;</literal>
header and use the X11-specific pkg-config files to build your application
(either <literal>gdk-x11-3.0</literal> or <literal>gtk+-x11-3.0</literal>.
To make your code compile with other GDK backends, guard backend-specific
calls by an ifdef as follows:
<informalexample><programlisting>
#ifdef GDK_WINDOWING_X11
/* X11-specific calls here... */
#endif
</programlisting></informalexample>
</para>
<!-- ##### SECTION See_Also ##### -->
@@ -37,6 +27,14 @@ Obtains the Xlib window id of the root window of the current screen.
<!-- ##### MACRO GDK_DISPLAY ##### -->
<para>
The current display.
</para>
@Returns: an Xlib <type>Display*</type>.
<!-- ##### MACRO GDK_WINDOW_XDISPLAY ##### -->
<para>
Returns the display of a #GdkWindow.
@@ -55,6 +53,24 @@ Returns the X window belonging to a #GdkWindow.
@Returns: the Xlib <type>Window</type> of @win.
<!-- ##### MACRO GDK_PIXMAP_XDISPLAY ##### -->
<para>
Returns the display of a #GdkPixmap.
</para>
@pix: a #GdkPixmap.
@Returns: an Xlib <type>Display*</type>.
<!-- ##### MACRO GDK_PIXMAP_XID ##### -->
<para>
Returns the X pixmap belonging to a #GdkPixmap.
</para>
@pix: a #GdkPixmap.
@Returns: the Xlib <type>XPixmap</type> of @win.
<!-- ##### MACRO GDK_DISPLAY_XDISPLAY ##### -->
<para>
Returns the display of a #GdkDisplay.
@@ -81,6 +97,24 @@ Returns the X resource (window or pixmap) belonging to a #GdkDrawable.
@Returns: the ID of @win's X resource.
<!-- ##### MACRO GDK_COLORMAP_XDISPLAY ##### -->
<para>
Returns the display of a #GdkColormap.
</para>
@cmap: a #GdkColormap.
@Returns: an Xlib <type>Display*</type>.
<!-- ##### MACRO GDK_COLORMAP_XCOLORMAP ##### -->
<para>
Returns the X colormap belonging to a #GdkColormap.
</para>
@cmap: a #GdkColormap.
@Returns: an Xlib <type>Colormap</type>.
<!-- ##### MACRO GDK_SCREEN_XDISPLAY ##### -->
<para>
Returns the display of a #GdkScreen.
@@ -109,6 +143,15 @@ Returns the screen of a #GdkScreen.
@Returns: an Xlib <type>Screen*</type>.
<!-- ##### MACRO GDK_VISUAL_XVISUAL ##### -->
<para>
Returns the X visual belonging to a #GdkVisual.
</para>
@vis: a #GdkVisual.
@Returns: an Xlib <type>Visual*</type>.
<!-- ##### MACRO GDK_CURSOR_XCURSOR ##### -->
<para>
Returns the X cursor belonging to a #GdkCursor.
@@ -143,6 +186,38 @@ Another name for GDK_DRAWABLE_XID().
@Returns:
<!-- ##### FUNCTION gdk_pixmap_foreign_new ##### -->
<para>
</para>
@anid:
@Returns:
<!-- ##### FUNCTION gdk_pixmap_foreign_new_for_display ##### -->
<para>
</para>
@display:
@anid:
@Returns:
<!-- ##### FUNCTION gdk_pixmap_foreign_new_for_screen ##### -->
<para>
</para>
@screen:
@anid:
@width:
@height:
@depth:
@Returns:
<!-- ##### FUNCTION gdk_window_foreign_new ##### -->
<para>
@@ -199,6 +274,24 @@ Another name for GDK_DRAWABLE_XID().
@Returns:
<!-- ##### FUNCTION gdk_pixmap_lookup ##### -->
<para>
</para>
@anid:
@Returns:
<!-- ##### FUNCTION gdk_pixmap_lookup_for_display ##### -->
<para>
</para>
@display:
@anid:
@Returns:
<!-- ##### FUNCTION gdk_x11_lookup_xdisplay ##### -->
<para>
@@ -291,6 +384,34 @@ Another name for GDK_DRAWABLE_XID().
@Returns:
<!-- ##### FUNCTION gdk_x11_colormap_foreign_new ##### -->
<para>
</para>
@visual:
@xcolormap:
@Returns:
<!-- ##### FUNCTION gdk_x11_colormap_get_xcolormap ##### -->
<para>
</para>
@colormap:
@Returns:
<!-- ##### FUNCTION gdk_x11_colormap_get_xdisplay ##### -->
<para>
</para>
@colormap:
@Returns:
<!-- ##### FUNCTION gdk_x11_cursor_get_xcursor ##### -->
<para>
@@ -353,22 +474,6 @@ Another name for GDK_DRAWABLE_XID().
@display:
<!-- ##### FUNCTION gdk_x11_display_error_trap_push ##### -->
<para>
</para>
@display:
<!-- ##### FUNCTION gdk_x11_display_error_trap_pop_ignored ##### -->
<para>
</para>
@display:
<!-- ##### FUNCTION gdk_x11_display_set_cursor_theme ##### -->
<para>
+4 -11
View File
@@ -121,7 +121,6 @@ content_files = \
glossary.xml \
migrating-2to3.xml \
migrating-checklist.sgml \
migrating-GtkApplication.xml \
objects_grouped.sgml \
osx.sgml \
question_index.sgml \
@@ -133,20 +132,16 @@ content_files = \
gtk-query-immodules-3.0.xml \
gtk-update-icon-cache-3.0.xml \
gtk-builder-convert-3.0.xml \
visual_index.xml \
getting_started.xml \
overview.xml
visual_index.xml
expand_content_files = \
drawing-model.xml \
getting_started.xml \
glossary.xml \
migrating-2to3.xml \
migrating-checklist.sgml \
migrating-GtkApplication.xml \
question_index.sgml \
tree_widget.sgml \
text_widget.sgml \
tree_widget.sgml
question_index.sgml
# Images to copy into HTML directory
HTML_IMAGES = \
@@ -320,9 +315,7 @@ HTML_IMAGES = \
$(srcdir)/images/layout-rlbt.png \
$(srcdir)/images/layout-rltb.png \
$(srcdir)/images/layout-tblr.png \
$(srcdir)/images/layout-tbrl.png \
$(srcdir)/images/window-default.png \
$(srcdir)/images/hello-world.png
$(srcdir)/images/layout-tbrl.png
# Extra options to supply to gtkdoc-fixref
FIXXREF_OPTIONS=--extra-dir=../gdk/html \
+15
View File
@@ -333,6 +333,10 @@ How to compile GTK+ itself
<arg>--disable-Bsymbolic</arg>
<arg>--enable-Bsymbolic</arg>
</group>
<group>
<arg>--disable-shm</arg>
<arg>--enable-shm</arg>
</group>
<group>
<arg>--disable-xkb</arg>
<arg>--enable-xkb</arg>
@@ -444,6 +448,17 @@ How to compile GTK+ itself
</para>
</formalpara>
<formalpara>
<title><systemitem>--disable-shm</systemitem> and
<systemitem>--enable-shm</systemitem></title>
<para>
These options can be used to control whether GTK+ will use shared
memory to communicate with the X server when possible.
The default is 'yes'.
</para>
</formalpara>
<formalpara>
<title><systemitem>--disable-xkb</systemitem> and
<systemitem>--enable-xkb</systemitem></title>
-108
View File
@@ -1,108 +0,0 @@
<?xml version="1.0"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
]>
<chapter id="gtk-getting-started" xmlns:xi="http://www.w3.org/2003/XInclude">
<title>Getting Started with GTK+</title>
<para>This chapter is contains some tutorial information to get you
started with GTK+ programming. It assumes that you have GTK+, its
dependencies and a C compiler installed and ready to use. If you
need to build GTK+ itself first, refer to the
<link linkend="gtk-compiling">Compiling the GTK+ libraries</link>
section in this reference.</para>
<para>To begin our introduction to GTK, we'll start with the simplest
program possible. This program will create an empty 200x200 pixel
window:</para>
<para>
<inlinegraphic fileref="window-default.png" format="PNG"></inlinegraphic>
</para>
<informalexample><programlisting>
<xi:include href="../../../../examples/window-default.c" parse="text">
<xi:fallback>FIXME: MISSING XINCLUDE CONTENT</xi:fallback>
</xi:include>
</programlisting></informalexample>
<para>You can compile the program above with GCC using:</para>
<para><literallayout>
<literal>gcc `pkg-config --cflags gtk+-3.0` -o window-default window-default.c `pkg-config --libs gtk+-3.0`</literal>
</literallayout></para>
<note><para>For more information on how to compile a GTK+ application, please
refer to the <link linkend="gtk-compiling">Compiling GTK+ Applications</link>
section in this reference.</para></note>
<para>All GTK+ applications will, of course, include
<filename>gtk/gtk.h</filename>, which declares functions, types and
macros required by GTK+ applications.</para>
<warning><para>Even if GTK+ installs multiple header files, only the
top-level <filename>gtk/gtk.h</filename> header can be directly included
by third party code. The compiler will abort with an error if any other
header will be included.</para></warning>
<para>We then proceed into the <function>main</function>() function of the
application, and we declare a <varname>window</varname> variable as a pointer
of type #GtkWidget.</para>
<para>The following line will call gtk_init(), which
is the initialization function for GTK+; this function will set up GTK+,
the type system, the connection to the windowing environment, etc. The
gtk_init() takes as arguments the pointers to the command line arguments
counter and string array; this allows GTK+ to parse specific command line
arguments that control the behavior of GTK+ itself. The parsed arguments
will be removed from the array, leaving the unrecognized ones for your
application to parse.</para>
<note><para>For more information on which command line arguments GTK+
recognizes, please refer to the <link linkend="gtk-running">Running GTK+
Applications</link> section in this reference.</para></note>
<para>The call to gtk_window_new() will create a new #GtkWindow and store
it inside the <varname>window</varname> variable. The type of the window
is %GTK_WINDOW_TOPLEVEL, which means that the #GtkWindow will be managed
by the windowing system: it will have a frame, a title bar and window
controls, depending on the platform.</para>
<para>In order to terminate the application when the #GtkWindow is
destroyed, we connect the #GtkWidget::destroy signal to the gtk_main_quit()
function. This function will terminate the GTK+ main loop started by calling
gtk_main() later. The #GtkWidget::destroy signal is emitted when a widget is
destroyed, either by explicitly calling gtk_widget_destroy() or when the
widget is unparented. Top-level #GtkWindow<!-- -->s are also destroyed when
the Close window control button is clicked.</para>
<para>#GtkWidget<!-- -->s are hidden by default. By calling gtk_widget_show()
on a #GtkWidget we are asking GTK+ to set the visibility attribute so that it
can be displayed. All this work is done after the main loop has been
started.</para>
<para>The last line of interest is the call to gtk_main(). This function will
start the GTK+ main loop and will block the control flow of the
<function>main</function>() until the gtk_main_quit() function is
called.</para>
<para>The following example is slightly more complex, and tries to
showcase some of the capabilities of GTK+.</para>
<para>In the long tradition of programming languages and libraries,
it is called <emphasis>Hello, World</emphasis>.</para>
<para>
<inlinegraphic fileref="hello-world.png" format="PNG"></inlinegraphic>
</para>
<example id="gtk-getting-started-hello-world">
<title>Hello World in GTK+</title>
<programlisting>
<xi:include href="../../../../examples/hello-world.c" parse="text">
<xi:fallback>FIXME: MISSING XINCLUDE CONTENT</xi:fallback>
</xi:include>
</programlisting>
</example>
</chapter>
+102 -9
View File
@@ -16,8 +16,102 @@
<part id="gtk">
<title>GTK+ Overview</title>
<xi:include href="overview.xml"/>
<xi:include href="xml/getting_started.xml"/>
<partintro>
<para>
GTK+ is a library for creating graphical user interfaces. It
works on many UNIX-like platforms, Windows, and on framebuffer
devices. GTK+ is released under the GNU Library General Public License
(GNU LGPL), which allows for flexible licensing of client
applications. GTK+ has a C-based object-oriented architecture that
allows for maximum flexibility. Bindings for other languages have
been written, including C++, Objective-C, Guile/Scheme, Perl, Python,
TOM, Ada95, Free Pascal, and Eiffel.
</para>
<para>
GTK+ depends on the following libraries:
<variablelist>
<varlistentry>
<term>GLib</term>
<listitem><para>
A general-purpose utility library, not specific to graphical user interfaces.
GLib provides many useful data types, macros, type conversions,
string utilities, file utilities, a main loop abstraction, and so on.
</para></listitem>
</varlistentry>
<varlistentry>
<term>GObject</term>
<listitem><para>A library that provides a type system, a collection of
fundamental types including an object type, a signal system.
</para></listitem>
</varlistentry>
<varlistentry>
<term>GIO</term>
<listitem><para>A modern, easy-to-use VFS API including abstractions for
files, drives, volumes, stream IO, as well as network programming and
DBus communication.
</para></listitem>
</varlistentry>
<varlistentry>
<term>cairo</term>
<listitem><para>Cairo is a 2D graphics library with support for multiple
output devices.
</para></listitem>
</varlistentry>
<varlistentry>
<term>Pango</term>
<listitem><para>
Pango is a library for internationalized text handling. It centers
around the #PangoLayout object, representing a paragraph of text.
Pango provides the engine for #GtkTextView, #GtkLabel, #GtkEntry, and
other widgets that display text.
</para></listitem>
</varlistentry>
<varlistentry>
<term>ATK</term>
<listitem><para>
ATK is the Accessibility Toolkit. It provides a set of generic
interfaces allowing accessibility technologies to interact with a
graphical user interface. For example, a screen reader uses ATK to
discover the text in an interface and read it to blind users. GTK+
widgets have built-in support for accessibility using the ATK
framework.
</para></listitem>
</varlistentry>
<varlistentry>
<term>GdkPixbuf</term>
<listitem><para>
This is a small library which allows you to create #GdkPixbuf
("pixel buffer") objects from image data or image files.
Use a #GdkPixbuf in combination with #GtkImage to display images.
</para></listitem>
</varlistentry>
<varlistentry>
<term>GDK</term>
<listitem><para>
GDK is the abstraction layer that allows GTK+ to support multiple
windowing systems. GDK provides drawing and window system facilities
on X11, Windows, and the Linux framebuffer device.
</para></listitem>
</varlistentry>
<varlistentry>
<term>GTK+</term>
<listitem><para>
The GTK+ library itself contains <firstterm>widgets</firstterm>,
that is, GUI components such as #GtkButton or #GtkTextView.
</para></listitem>
</varlistentry>
</variablelist>
</para>
</partintro>
<xi:include href="building.sgml" />
<xi:include href="compiling.sgml" />
<xi:include href="running.sgml" />
@@ -33,7 +127,6 @@
<part id="gtkbase">
<title>GTK+ Core Reference</title>
<xi:include href="xml/gtkmain.xml" />
<xi:include href="xml/gtkfeatures.xml" />
<xi:include href="xml/gtkaccelgroup.xml" />
<xi:include href="xml/gtkaccelmap.xml" />
<xi:include href="xml/gtkclipboard.xml" />
@@ -47,6 +140,7 @@
<xi:include href="xml/gtkenums.xml" />
<xi:include href="xml/gtkstyle.xml" />
<xi:include href="xml/gtkselection.xml" />
<xi:include href="xml/gtkfeatures.xml" />
<xi:include href="xml/gtktesting.xml" />
<xi:include href="xml/filesystem.xml" />
</part>
@@ -153,7 +247,7 @@
<chapter id="MenusAndCombos">
<title>Menus, Combo Box, Toolbar</title>
<xi:include href="xml/gtkcombobox.xml" />
<xi:include href="xml/gtkcomboboxtext.xml" />
<xi:include href="xml/gtkcomboboxentry.xml" />
<xi:include href="xml/gtkmenu.xml" />
<xi:include href="xml/gtkmenubar.xml" />
<xi:include href="xml/gtkmenuitem.xml" />
@@ -203,7 +297,6 @@
<chapter id="LayoutContainers">
<title>Layout Containers</title>
<xi:include href="xml/gtkgrid.xml" />
<xi:include href="xml/gtkalignment.xml" />
<xi:include href="xml/gtkaspectframe.xml" />
<xi:include href="xml/gtkbox.xml" />
@@ -212,6 +305,7 @@
<xi:include href="xml/gtkbbox.xml" />
<xi:include href="xml/gtkhbbox.xml" />
<xi:include href="xml/gtkvbbox.xml" />
<xi:include href="xml/gtkwrapbox.xml" />
<xi:include href="xml/gtkfixed.xml" />
<xi:include href="xml/gtkpaned.xml" />
<xi:include href="xml/gtkhpaned.xml" />
@@ -221,6 +315,7 @@
<xi:include href="xml/gtktable.xml" />
<xi:include href="xml/gtkexpander.xml" />
<xi:include href="xml/gtkorientable.xml" />
<xi:include href="xml/gtksizerequest.xml" />
</chapter>
<chapter id="Ornaments">
@@ -237,7 +332,6 @@
<xi:include href="xml/gtkhscrollbar.xml" />
<xi:include href="xml/gtkvscrollbar.xml" />
<xi:include href="xml/gtkscrolledwindow.xml" />
<xi:include href="xml/gtkscrollable.xml" />
</chapter>
<chapter id="Printing">
@@ -271,12 +365,12 @@
<chapter id="AbstractObjects">
<title>Abstract Base Classes</title>
<xi:include href="xml/gtkwidget.xml" />
<xi:include href="xml/gtkcontainer.xml" />
<xi:include href="xml/gtkbin.xml" />
<xi:include href="xml/gtkcontainer.xml" />
<xi:include href="xml/gtkmenushell.xml" />
<xi:include href="xml/gtkmisc.xml" />
<xi:include href="xml/gtkrange.xml" />
<xi:include href="xml/gtkwidget.xml" />
<xi:include href="xml/gtkimcontext.xml" />
</chapter>
@@ -330,7 +424,6 @@
<xi:include href="xml/migrating-checklist.sgml" />
<xi:include href="xml/migrating-2to3.xml" />
<xi:include href="xml/migrating-GtkApplication.xml" />
</part>
<part>
+93 -135
View File
@@ -89,7 +89,6 @@ GTK_IS_ACCEL_GROUP_CLASS
GTK_ACCEL_GROUP_GET_CLASS
<SUBSECTION Private>
GTK_ACCEL_GROUP_GET_PRIVATE
GtkAccelGroupPrivate
GtkAccelGroupEntry
gtk_accel_group_get_type
@@ -164,7 +163,6 @@ GTK_ACCESSIBLE_GET_CLASS
GTK_IS_ACCESSIBLE
GTK_IS_ACCESSIBLE_CLASS
<SUBSECTION Private>
GtkAccessiblePrivate
gtk_accessible_get_type
</SECTION>
@@ -399,7 +397,6 @@ GTK_ARROW_CLASS
GTK_IS_ARROW_CLASS
GTK_ARROW_GET_CLASS
<SUBSECTION Private>
GtkArrowPrivate
gtk_arrow_get_type
</SECTION>
@@ -671,13 +668,10 @@ gtk_check_menu_item_get_type
GtkColorButton
gtk_color_button_new
gtk_color_button_new_with_color
gtk_color_button_new_with_rgba
gtk_color_button_set_color
gtk_color_button_get_color
gtk_color_button_set_alpha
gtk_color_button_get_alpha
gtk_color_button_set_rgba
gtk_color_button_get_rgba
gtk_color_button_set_use_alpha
gtk_color_button_get_use_alpha
gtk_color_button_set_title
@@ -734,10 +728,6 @@ gtk_color_selection_get_previous_alpha
gtk_color_selection_set_previous_alpha
gtk_color_selection_get_previous_color
gtk_color_selection_set_previous_color
gtk_color_selection_get_current_rgba
gtk_color_selection_set_current_rgba
gtk_color_selection_get_previous_rgba
gtk_color_selection_set_previous_rgba
gtk_color_selection_is_adjusting
gtk_color_selection_palette_from_string
gtk_color_selection_palette_to_string
@@ -777,7 +767,6 @@ gtk_color_selection_dialog_get_type
<TITLE>GtkComboBox</TITLE>
GtkComboBox
gtk_combo_box_new
gtk_combo_box_new_with_entry
gtk_combo_box_new_with_model
gtk_combo_box_get_wrap_width
gtk_combo_box_set_wrap_width
@@ -791,6 +780,12 @@ gtk_combo_box_get_active_iter
gtk_combo_box_set_active_iter
gtk_combo_box_get_model
gtk_combo_box_set_model
gtk_combo_box_new_text
gtk_combo_box_append_text
gtk_combo_box_insert_text
gtk_combo_box_prepend_text
gtk_combo_box_remove_text
gtk_combo_box_get_active_text
gtk_combo_box_popup_for_device
gtk_combo_box_popup
gtk_combo_box_popdown
@@ -805,11 +800,6 @@ gtk_combo_box_set_focus_on_click
gtk_combo_box_get_focus_on_click
gtk_combo_box_set_button_sensitivity
gtk_combo_box_get_button_sensitivity
gtk_combo_box_get_has_entry
gtk_combo_box_set_entry_text_column
gtk_combo_box_get_entry_text_column
gtk_combo_box_set_popup_fixed_width
gtk_combo_box_get_popup_fixed_width
<SUBSECTION Standard>
GTK_TYPE_COMBO_BOX
GTK_COMBO_BOX
@@ -823,29 +813,24 @@ gtk_combo_box_get_type
</SECTION>
<SECTION>
<FILE>gtkcomboboxtext</FILE>
<TITLE>GtkComboBoxText</TITLE>
GtkComboBoxText
gtk_combo_box_text_new
gtk_combo_box_text_new_with_entry
gtk_combo_box_text_append_text
gtk_combo_box_text_insert_text
gtk_combo_box_text_prepend_text
gtk_combo_box_text_remove
gtk_combo_box_text_remove_all
gtk_combo_box_text_get_active_text
<FILE>gtkcomboboxentry</FILE>
<TITLE>GtkComboBoxEntry</TITLE>
GtkComboBoxEntry
gtk_combo_box_entry_new
gtk_combo_box_entry_new_with_model
gtk_combo_box_entry_new_text
gtk_combo_box_entry_set_text_column
gtk_combo_box_entry_get_text_column
<SUBSECTION Standard>
GTK_TYPE_COMBO_BOX_TEXT
GTK_COMBO_BOX_TEXT
GTK_IS_COMBO_BOX_TEXT
GTK_COMBO_BOX_TEXT_CLASS
GTK_IS_COMBO_BOX_TEXT_CLASS
GTK_COMBO_BOX_TEXT_GET_CLASS
GTK_TYPE_COMBO_BOX_ENTRY
GTK_COMBO_BOX_ENTRY
GTK_COMBO_BOX_ENTRY_CLASS
GTK_IS_COMBO_BOX_ENTRY
GTK_IS_COMBO_BOX_ENTRY_CLASS
GTK_COMBO_BOX_ENTRY_GET_CLASS
<SUBSECTION Private>
GtkComboBoxTextPrivate
gtk_combo_box_text_get_type
GtkComboBoxEntryPrivate
gtk_combo_box_entry_get_type
</SECTION>
<SECTION>
@@ -975,7 +960,6 @@ GTK_TYPE_EDITABLE
GTK_EDITABLE_CLASS
GTK_IS_EDITABLE_CLASS
GTK_EDITABLE_GET_CLASS
GTK_EDITABLE_GET_IFACE
<SUBSECTION Private>
gtk_editable_get_type
</SECTION>
@@ -991,7 +975,6 @@ gtk_entry_set_buffer
gtk_entry_set_text
gtk_entry_get_text
gtk_entry_get_text_length
gtk_entry_get_text_area
gtk_entry_set_visibility
gtk_entry_set_invisible_char
gtk_entry_unset_invisible_char
@@ -1047,7 +1030,8 @@ gtk_entry_set_icon_tooltip_markup
gtk_entry_get_icon_tooltip_markup
gtk_entry_set_icon_drag_source
gtk_entry_get_current_icon_drag_source
gtk_entry_get_icon_area
gtk_entry_get_icon_window
gtk_entry_get_text_window
<SUBSECTION Standard>
GTK_ENTRY
@@ -2636,12 +2620,10 @@ gtk_recent_info_get_private_hint
gtk_recent_info_get_application_info
gtk_recent_info_get_applications
gtk_recent_info_last_application
gtk_recent_info_has_application
gtk_recent_info_create_app_info
gtk_recent_info_get_groups
gtk_recent_info_has_group
gtk_recent_info_has_application
gtk_recent_info_get_icon
gtk_recent_info_get_gicon
gtk_recent_info_get_short_name
gtk_recent_info_get_uri_display
gtk_recent_info_get_age
@@ -2759,28 +2741,6 @@ GtkScaleButtonPrivate
gtk_scale_button_get_type
</SECTION>
<SECTION>
<FILE>gtkscrollable</FILE>
<TITLE>GtkScrollable</TITLE>
GtkScrollable
gtk_scrollable_get_hadjustment
gtk_scrollable_set_hadjustment
gtk_scrollable_get_vadjustment
gtk_scrollable_set_vadjustment
<SUBSECTION Standard>
GtkScrollableIface
GTK_IS_SCROLLABLE
GTK_IS_SCROLLABLE_CLASS
GTK_SCROLLABLE
GTK_SCROLLABLE_CLASS
GTK_SCROLLABLE_GET_IFACE
GTK_TYPE_SCROLLABLE
<SUBSECTION Private>
gtk_scrollable_get_type
</SECTION>
<SECTION>
<FILE>gtkscrollbar</FILE>
<TITLE>GtkScrollbar</TITLE>
@@ -2816,11 +2776,6 @@ gtk_scrolled_window_set_vadjustment
gtk_scrolled_window_get_placement
gtk_scrolled_window_get_policy
gtk_scrolled_window_get_shadow_type
gtk_scrolled_window_get_min_content_width
gtk_scrolled_window_set_min_content_width
gtk_scrolled_window_get_min_content_height
gtk_scrolled_window_set_min_content_height
<SUBSECTION Standard>
GTK_SCROLLED_WINDOW
GTK_IS_SCROLLED_WINDOW
@@ -3015,6 +2970,8 @@ gtk_statusbar_push
gtk_statusbar_pop
gtk_statusbar_remove
gtk_statusbar_remove_all
gtk_statusbar_set_has_resize_grip
gtk_statusbar_get_has_resize_grip
gtk_statusbar_get_message_area
<SUBSECTION Standard>
GTK_STATUSBAR
@@ -3838,7 +3795,6 @@ GtkToolPaletteDragTargets
gtk_tool_palette_set_drag_source
gtk_tool_palette_get_hadjustment
gtk_tool_palette_get_vadjustment
<SUBSECTION Standard>
GtkToolPaletteClass
GTK_TOOL_PALETTE
@@ -4336,7 +4292,6 @@ gtk_cell_view_set_displayed_row
gtk_cell_view_get_displayed_row
gtk_cell_view_get_size_of_row
gtk_cell_view_set_background_color
gtk_cell_view_set_background_rgba
<SUBSECTION Standard>
GtkCellViewClass
GTK_TYPE_CELL_VIEW
@@ -4789,6 +4744,7 @@ gtk_widget_show
gtk_widget_show_now
gtk_widget_hide
gtk_widget_show_all
gtk_widget_hide_all
gtk_widget_map
gtk_widget_unmap
gtk_widget_realize
@@ -4866,12 +4822,12 @@ gtk_widget_render_icon
gtk_widget_pop_composite_child
gtk_widget_push_composite_child
gtk_widget_queue_draw_area
gtk_widget_queue_draw_region
gtk_widget_reset_shapes
gtk_widget_set_app_paintable
gtk_widget_set_double_buffered
gtk_widget_set_redraw_on_allocate
gtk_widget_set_composite_name
gtk_widget_set_scroll_adjustments
gtk_widget_mnemonic_activate
gtk_widget_class_install_style_property
gtk_widget_class_install_style_property_parser
@@ -4960,18 +4916,7 @@ gtk_requisition_new
gtk_requisition_copy
gtk_requisition_free
<SUBSECTION Width-for-Height>
GtkSizeRequestMode
GtkRequestedSize
gtk_widget_get_preferred_height
gtk_widget_get_preferred_width
gtk_widget_get_preferred_height_for_width
gtk_widget_get_preferred_width_for_height
gtk_widget_get_request_mode
gtk_widget_get_preferred_size
gtk_distribute_natural_allocation
<SUBSECTION Alignment and Margins>
<SUBSECTION>
GtkAlign
gtk_widget_get_halign
gtk_widget_set_halign
@@ -4986,18 +4931,6 @@ gtk_widget_set_margin_top
gtk_widget_get_margin_bottom
gtk_widget_set_margin_bottom
<SUBSECTION Expand>
gtk_widget_get_hexpand
gtk_widget_set_hexpand
gtk_widget_get_hexpand_set
gtk_widget_set_hexpand_set
gtk_widget_get_vexpand
gtk_widget_set_vexpand
gtk_widget_get_vexpand_set
gtk_widget_set_vexpand_set
gtk_widget_queue_compute_expand
gtk_widget_compute_expand
<SUBSECTION Standard>
GTK_WIDGET
GTK_IS_WIDGET
@@ -5027,7 +4960,6 @@ gtk_window_activate_focus
gtk_window_activate_default
gtk_window_set_modal
gtk_window_set_default_size
gtk_window_set_default_geometry
gtk_window_set_geometry_hints
gtk_window_set_gravity
gtk_window_get_gravity
@@ -5106,7 +5038,6 @@ gtk_window_move
gtk_window_parse_geometry
gtk_window_reshow_with_initial_size
gtk_window_resize
gtk_window_resize_to_geometry
gtk_window_set_default_icon_list
gtk_window_set_default_icon
gtk_window_set_default_icon_from_file
@@ -5120,13 +5051,6 @@ gtk_window_get_opacity
gtk_window_set_opacity
gtk_window_get_mnemonics_visible
gtk_window_set_mnemonics_visible
gtk_window_set_has_resize_grip
gtk_window_get_has_resize_grip
gtk_window_resize_grip_is_visible
gtk_window_get_resize_grip_area
gtk_window_get_application
gtk_window_set_application
<SUBSECTION Standard>
GTK_WINDOW
GTK_IS_WINDOW
@@ -5365,9 +5289,6 @@ GtkRcContext
GtkTargetEntry
GtkTargetList
GtkTargetPair
gtk_target_entry_new
gtk_target_entry_copy
gtk_target_entry_free
gtk_target_list_new
gtk_target_list_ref
gtk_target_list_unref
@@ -5419,7 +5340,6 @@ GTK_TYPE_TARGET_LIST
<SUBSECTION Private>
gtk_selection_data_get_type
gtk_target_list_get_type
gtk_target_entry_get_type
</SECTION>
<SECTION>
@@ -5563,6 +5483,8 @@ GtkScrollType
GtkSelectionMode
GtkShadowType
GtkStateType
GtkSubmenuDirection
GtkSubmenuPlacement
GtkToolbarStyle
GtkUpdateType
GtkWindowPosition
@@ -6343,15 +6265,43 @@ GTK_TYPE_ORIENTABLE
gtk_orientable_get_type
</SECTION>
<SECTION>
<FILE>gtksizerequest</FILE>
<TITLE>GtkSizeRequest</TITLE>
GtkSizeRequestMode
GtkRequestedSize
gtk_widget_get_preferred_height
gtk_widget_get_preferred_width
gtk_widget_get_preferred_height_for_width
gtk_widget_get_preferred_width_for_height
gtk_widget_get_request_mode
gtk_widget_get_preferred_size
gtk_distribute_natural_allocation
<SUBSECTION Standard>
GTK_SIZE_REQUEST
GTK_SIZE_REQUEST_CLASS
GTK_SIZE_REQUEST_GET_IFACE
GTK_IS_SIZE_REQUEST
GTK_TYPE_SIZE_REQUEST
<SUBSECTION Private>
gtk_widget_get_type
</SECTION>
<SECTION>
<FILE>gtkapplication</FILE>
<TITLE>GtkApplication</TITLE>
GtkApplication
gtk_application_new
gtk_application_run
gtk_application_quit
gtk_application_set_action_group
gtk_application_get_window
gtk_application_add_window
gtk_application_remove_window
gtk_application_get_windows
gtk_application_create_window
<SUBSECTION Standard>
GtkApplicationClass
@@ -6367,32 +6317,40 @@ GtkApplicationPrivate
</SECTION>
<SECTION>
<FILE>gtkgrid</FILE>
<TITLE>GtkGrid</TITLE>
GtkGrid
gtk_grid_new
gtk_grid_attach
gtk_grid_attach_next_to
gtk_grid_set_row_homogeneous
gtk_grid_get_row_homogeneous
gtk_grid_set_row_spacing
gtk_grid_get_row_spacing
gtk_grid_set_column_homogeneous
gtk_grid_get_column_homogeneous
gtk_grid_set_column_spacing
gtk_grid_get_column_spacing
<FILE>gtkwrapbox</FILE>
<TITLE>GtkWrapBox</TITLE>
GtkWrapBox
gtk_wrap_box_new
GtkWrapBoxPacking
gtk_wrap_box_insert_child
gtk_wrap_box_reorder_child
GtkWrapAllocationMode
gtk_wrap_box_set_allocation_mode
gtk_wrap_box_get_allocation_mode
GtkWrapBoxSpreading
gtk_wrap_box_set_vertical_spreading
gtk_wrap_box_get_vertical_spreading
gtk_wrap_box_set_horizontal_spreading
gtk_wrap_box_get_horizontal_spreading
gtk_wrap_box_set_vertical_spacing
gtk_wrap_box_get_vertical_spacing
gtk_wrap_box_set_horizontal_spacing
gtk_wrap_box_get_horizontal_spacing
gtk_wrap_box_set_minimum_line_children
gtk_wrap_box_get_minimum_line_children
gtk_wrap_box_set_natural_line_children
gtk_wrap_box_get_natural_line_children
<SUBSECTION Standard>
GtkGrid
GtkGridClass
GTK_TYPE_GRID
GTK_GRID
GTK_GRID_CLASS
GTK_IS_GRID
GTK_IS_GRID_CLASS
GTK_GRID_GET_CLASS
GtkWrapBoxClass
GTK_TYPE_WRAP_BOX
GTK_WRAP_BOX
GTK_WRAP_BOX_CLASS
GTK_IS_WRAP_BOX
GTK_IS_WRAP_BOX_CLASS
GTK_WRAP_BOX_GET_CLASS
<SUBSECTION Private>
GtkGridPrivate
gtk_grid_get_type
gtk_wrap_box_get_type
GtkWrapBoxPrivate
</SECTION>
+2 -3
View File
@@ -40,8 +40,8 @@ gtk_clipboard_get_type
gtk_color_button_get_type
gtk_color_selection_dialog_get_type
gtk_color_selection_get_type
gtk_combo_box_entry_get_type
gtk_combo_box_get_type
gtk_combo_box_text_get_type
gtk_container_get_type
gtk_dialog_get_type
gtk_drawing_area_get_type
@@ -61,7 +61,6 @@ gtk_font_button_get_type
gtk_font_selection_dialog_get_type
gtk_font_selection_get_type
gtk_frame_get_type
gtk_grid_get_type
gtk_handle_box_get_type
gtk_hbox_get_type
gtk_hbutton_box_get_type
@@ -124,7 +123,6 @@ gtk_recent_manager_get_type
gtk_ruler_get_type
gtk_scale_button_get_type
gtk_scale_get_type
gtk_scrollable_get_type
gtk_scrollbar_get_type
gtk_scrolled_window_get_type
gtk_separator_get_type
@@ -178,3 +176,4 @@ gtk_vseparator_get_type
gtk_widget_get_type
gtk_window_get_type
gtk_window_group_get_type
gtk_wrap_box_get_type
Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

-13
View File
@@ -662,19 +662,6 @@ gtk_arrow_draw (GtkWidget *widget,
</para>
</section>
<section>
<title>Resize grips</title>
<para>
The resize grip functionality has been moved from #GtkStatusbar
to #GtkWindow. Any window can now have resize grips, regardless whether
it has a statusbar or not. The functions
gtk_statusbar_set_has_resize_grip() and gtk_statusbar_get_has_resize_grip()
have disappeared, and instead there are now
gtk_window_set_has_resize_grip() and gtk_window_get_has_resize_grip().
</para>
</section>
<section>
<title>Prevent mixed linkage</title>
<para>
@@ -1,127 +0,0 @@
<?xml version="1.0"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
]>
<chapter id="gtk-migrating-GtkApplication">
<title>Migrating from libunique to GApplication or GtkApplication</title>
<para>
libunique offers 'unique application' support as well as ways to
communicate with a running application instance. This is implemented
in various ways, either using D-Bus, or socket-based communication.
</para>
<para>
Starting with GLib 2.26, D-Bus support has been integrated into GIO
in the form of GDBus, and #GApplication has been added to provide
the same level of application support as libunique.
</para>
<example><title>A unique application</title>
<para>Here is a simple application using libunique:
<programlisting>
int
main (int argc, char *argv[])
{
UniqueApp *app;
GtkWidget *window;
gtk_init (&amp;argc, &amp;argv);
app = unique_app_new ("org.gtk.TestApplication", NULL);
if (unique_app_is_running (app))
{
UniqueResponse response;
response = unique_app_send_message (app, UNIQUE_ACTIVATE, NULL);
g_object_unref (app);
return response == UNIQUE_RESPONSE_OK ? 0 : 1;
}
window = create_my_window ();
unique_app_watch_window (app, GTK_WINDOW (window));
gtk_widget_show (window);
gtk_main ();
g_object_unref (app);
return 0;
}
</programlisting>
The same application using GtkApplication:
<programlisting>
static void
activate (GtkApplication *app)
{
GtkWidget *window;
window = create_my_window ();
gtk_window_set_application (GTK_WINDOW (window), app);
gtk_widget_show (window);
}
int
main (int argc, char *argv[])
{
GtkApplication *app;
gint status;
app = gtk_application_new ("org.gtk.TestApplication", 0);
g_signal_connect (app, "activate", G_CALLBACK (activate), NULL);
status = g_application_run (app);
g_object_unref (app);
return status;
}
</programlisting>
</para>
</example>
<section><title>Uniqueness</title>
<para>
Instead of creating a #UniqueApp with unique_app_new(), create
a #GApplication with g_application_new() or a #GtkApplication
with gtk_application_new(). The @name that was used with
unique_app_new() is very likely usable as the @application_id for
g_application_new() without any changes, and GtkApplication passes
the <envar>DESKTOP_STARTUP_ID</envar> environment variable
automatically.
</para>
<para>
While libunique expects you to check for an already running instance
yourself and activate it manually, GApplication handles all this on
its own in g_application_run(). If you still need to find out if there
is a running instance of your application, use
g_application_get_is_remote() instead of unique_app_is_running().
</para>
</section>
<section><title>Commands and Messages</title>
<para>
libunique lets you send messages with commands to a running
instance using unique_app_send_message(). GApplication does not
have a direct equivalent for this feature at this time, but
some of the predefined libunique commands have equivalents in
GApplication. Instead of sending the %UNIQUE_ACTIVATE command,
call g_application_activate(), instead of sending the
%UNIQUE_OPEN command, call g_application_open(). The
%UNIQUE_NEW and %UNIQUE_CLOSE and user-defined commands don't
have direct replacement at this time.
</para>
<para>
On the other hand, GApplication supports passing entire
commandlines to the running instance, which reduces the need
for user-defined commands. And GDBus makes it very easy to
implement D-Bus interfaces for communication between
application instances, see e.g. g_dbus_connection_register_object().
</para>
</section>
</chapter>
+1 -1
View File
@@ -265,7 +265,7 @@ my_widget_expose_event_handler (GtkWidget *widget, GdkEventExpose *event)
static gboolean
my_widget_key_press_event_handler (GtkWidget *widget, GdkEventKey *event)
{
GdkModifierType modifiers;
guint modifiers;
modifiers = gtk_accelerator_get_default_mod_mask (<!-- -->);
+1 -1
View File
@@ -31,7 +31,7 @@ or environment variables.
<para>
For up-to-date information about the current status of this port, see the
<ulink url="http://live.gnome.org/GTK+/OSX">project page</ulink>.
<ulink url="http://developer.imendio.com/wiki/Gtk_Mac_OS_X">project page</ulink>.
</para>
</refsect1>
-100
View File
@@ -1,100 +0,0 @@
<?xml version="1.0"?>
<!DOCTYPE partintro PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
]>
<partintro>
<para>
GTK+ is a library for creating graphical user interfaces. It
works on many UNIX-like platforms, Windows, and OS X.
GTK+ is released under the GNU Library General Public License
(GNU LGPL), which allows for flexible licensing of client
applications. GTK+ has a C-based object-oriented architecture that
allows for maximum flexibility. Bindings for many other languages have
been written, including C++, Objective-C, Guile/Scheme, Perl, Python,
TOM, Ada95, Free Pascal, and Eiffel.
</para>
<para>
GTK+ depends on the following libraries:
<variablelist>
<varlistentry>
<term>GLib</term>
<listitem><para>
A general-purpose utility library, not specific to graphical user interfaces.
GLib provides many useful data types, macros, type conversions,
string utilities, file utilities, a main loop abstraction, and so on.
</para></listitem>
</varlistentry>
<varlistentry>
<term>GObject</term>
<listitem><para>A library that provides a type system, a collection of
fundamental types including an object type, a signal system.
</para></listitem>
</varlistentry>
<varlistentry>
<term>GIO</term>
<listitem><para>A modern, easy-to-use VFS API including abstractions for
files, drives, volumes, stream IO, as well as network programming and
DBus communication.
</para></listitem>
</varlistentry>
<varlistentry>
<term>cairo</term>
<listitem><para>Cairo is a 2D graphics library with support for multiple
output devices.
</para></listitem>
</varlistentry>
<varlistentry>
<term>Pango</term>
<listitem><para>
Pango is a library for internationalized text handling. It centers
around the PangoLayout object, representing a paragraph of text.
Pango provides the engine for GtkTextView, GtkLabel, GtkEntry, and
other widgets that display text.
</para></listitem>
</varlistentry>
<varlistentry>
<term>ATK</term>
<listitem><para>
ATK is the Accessibility Toolkit. It provides a set of generic
interfaces allowing accessibility technologies to interact with a
graphical user interface. For example, a screen reader uses ATK to
discover the text in an interface and read it to blind users. GTK+
widgets have built-in support for accessibility using the ATK
framework.
</para></listitem>
</varlistentry>
<varlistentry>
<term>GdkPixbuf</term>
<listitem><para>
This is a small library which allows you to create GdkPixbuf
("pixel buffer") objects from image data or image files.
Use a GdkPixbuf in combination with GtkImage to display images.
</para></listitem>
</varlistentry>
<varlistentry>
<term>GDK</term>
<listitem><para>
GDK is the abstraction layer that allows GTK+ to support multiple
windowing systems. GDK provides window system facilities on X11, Windows,
and OS X.
</para></listitem>
</varlistentry>
<varlistentry>
<term>GTK+</term>
<listitem><para>
The GTK+ library itself contains <firstterm>widgets</firstterm>,
that is, GUI components such as GtkButton or GtkTextView.
</para></listitem>
</varlistentry>
</variablelist>
</para>
</partintro>
-10
View File
@@ -1,7 +1,6 @@
gtkaccelmap.sgml
gtkactiongroup.sgml
gtkaboutdialog.sgml
gtkadjustment.sgml
gtkbbox.sgml
gtkbox.sgml
gtkbuilder.sgml
@@ -10,14 +9,12 @@ gtkcalendar.sgml
gtkcelleditable.sgml
gtkcombobox.sgml
gtkcomboboxentry.sgml
gtkcontainer.sgml
gtkeditable.sgml
gtkentrybuffer.sgml
gtkhbox.sgml
gtkiconview.sgml
gtkimcontextsimple.sgml
gtkimmulticontext.sgml
gtkitemfactory.sgml
gtklinkbutton.sgml
gtkmessagedialog.sgml
gtknotebook.sgml
@@ -37,8 +34,6 @@ gtkrecentchooserwidget.sgml
gtkrecentmanager.sgml
gtkscale.sgml
gtkscalebutton.sgml
gtkscrollbar.sgml
gtkscrolledwindow.sgml
gtkseparator.sgml
gtkseparatormenuitem.sgml
gtkseparatortoolitem.sgml
@@ -52,10 +47,5 @@ gtktoolbar.sgml
gtktoolitem.sgml
gtktooltip.sgml
gtktreednd.sgml
gtktreemodelfilter.sgml
gtktreeselection.sgml
gtktreesortable.sgml
gtktreestore.sgml
gtktreeviewcolumn.sgml
gtktypeutils.sgml
gtkwindow.sgml
+310
View File
@@ -0,0 +1,310 @@
<!-- ##### SECTION Title ##### -->
GtkAdjustment
<!-- ##### SECTION Short_Description ##### -->
A representation of an adjustable bounded value
<!-- ##### SECTION Long_Description ##### -->
<para>
The #GtkAdjustment object represents a value which has an associated lower
and upper bound, together with step and page increments, and a page size.
It is used within several GTK+ widgets, including
#GtkSpinButton, #GtkViewport, and #GtkRange (which is a base class for
#GtkHScrollbar, #GtkVScrollbar, #GtkHScale, and #GtkVScale).
</para>
<para>
The #GtkAdjustment object does not update the value itself. Instead
it is left up to the owner of the #GtkAdjustment to control the value.
</para>
<para>
The owner of the #GtkAdjustment typically calls the
gtk_adjustment_value_changed() and gtk_adjustment_changed() functions
after changing the value and its bounds. This results in the emission of the
&quot;value_changed&quot; or &quot;changed&quot; signal respectively.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
<!-- ##### SECTION Stability_Level ##### -->
<!-- ##### SECTION Image ##### -->
<!-- ##### STRUCT GtkAdjustment ##### -->
<para>
The #GtkAdjustment-struct struct contains the following fields.
<informaltable pgwide="1" frame="none" role="struct">
<tgroup cols="2"><colspec colwidth="2*"/><colspec colwidth="8*"/>
<tbody>
<row>
<entry>#gdouble lower;</entry>
<entry>the minimum value.</entry>
</row>
<row>
<entry>#gdouble upper;</entry>
<entry>the maximum value.</entry>
</row>
<row>
<entry>#gdouble value;</entry>
<entry>the current value.</entry>
</row>
<row>
<entry>#gdouble step_increment;</entry>
<entry>the increment to use to make minor changes to the value.
In a #GtkScrollbar this increment is used when the mouse is clicked on the
arrows at the top and bottom of the scrollbar, to scroll by a small amount.
</entry>
</row>
<row>
<entry>#gdouble page_increment;</entry>
<entry>the increment to use to make major changes to the value.
In a #GtkScrollbar this increment is used when the mouse is clicked in the
trough, to scroll by a large amount.
</entry>
</row>
<row>
<entry>#gdouble page_size;</entry>
<entry>the page size.
In a #GtkScrollbar this is the size of the area which is currently visible.
</entry>
</row>
</tbody></tgroup></informaltable>
</para>
<!-- ##### SIGNAL GtkAdjustment::changed ##### -->
<para>
Emitted when one or more of the #GtkAdjustment fields have been changed,
other than the value field.
</para>
@adjustment: the object which received the signal.
<!-- ##### SIGNAL GtkAdjustment::value-changed ##### -->
<para>
Emitted when the #GtkAdjustment value field has been changed.
</para>
@adjustment: the object which received the signal.
<!-- ##### ARG GtkAdjustment:lower ##### -->
<para>
</para>
<!-- ##### ARG GtkAdjustment:page-increment ##### -->
<para>
</para>
<!-- ##### ARG GtkAdjustment:page-size ##### -->
<para>
</para>
<!-- ##### ARG GtkAdjustment:step-increment ##### -->
<para>
</para>
<!-- ##### ARG GtkAdjustment:upper ##### -->
<para>
</para>
<!-- ##### ARG GtkAdjustment:value ##### -->
<para>
</para>
<!-- ##### FUNCTION gtk_adjustment_new ##### -->
<para>
Creates a new #GtkAdjustment.
</para>
@value: the initial value.
@lower: the minimum value.
@upper: the maximum value.
@step_increment: the step increment.
@page_increment: the page increment.
@page_size: the page size.
@Returns: a new #GtkAdjustment.
<!-- ##### FUNCTION gtk_adjustment_get_value ##### -->
<para>
</para>
@adjustment:
@Returns:
<!-- ##### FUNCTION gtk_adjustment_set_value ##### -->
<para>
Sets the #GtkAdjustment value. The value is clamped to lie between
<literal>adjustment-&gt;lower</literal> and
<literal>adjustment-&gt;upper</literal>.
</para>
<para>
Note that for adjustments which are used in a #GtkScrollbar, the effective
range of allowed values goes from <literal>adjustment-&gt;lower</literal> to
<literal>adjustment-&gt;upper - adjustment-&gt;page_size</literal>.
</para>
@adjustment: a #GtkAdjustment.
@value: the new value.
<!-- ##### FUNCTION gtk_adjustment_clamp_page ##### -->
<para>
Updates the #GtkAdjustment @value to ensure that the range between @lower
and @upper is in the current page (i.e. between @value and @value +
@page_size).
If the range is larger than the page size, then only the start of it will
be in the current page.
A &quot;changed&quot; signal will be emitted if the value is changed.
</para>
@adjustment: a #GtkAdjustment.
@lower: the lower value.
@upper: the upper value.
<!-- ##### FUNCTION gtk_adjustment_changed ##### -->
<para>
Emits a &quot;changed&quot; signal from the #GtkAdjustment.
This is typically called by the owner of the #GtkAdjustment after it has
changed any of the #GtkAdjustment fields other than the value.
</para>
@adjustment: a #GtkAdjustment
<!-- ##### FUNCTION gtk_adjustment_value_changed ##### -->
<para>
Emits a &quot;value_changed&quot; signal from the #GtkAdjustment.
This is typically called by the owner of the #GtkAdjustment after it has
changed the #GtkAdjustment value field.
</para>
@adjustment: a #GtkAdjustment
<!-- ##### FUNCTION gtk_adjustment_configure ##### -->
<para>
</para>
@adjustment:
@value:
@lower:
@upper:
@step_increment:
@page_increment:
@page_size:
<!-- ##### FUNCTION gtk_adjustment_get_lower ##### -->
<para>
</para>
@adjustment:
@Returns:
<!-- ##### FUNCTION gtk_adjustment_get_page_increment ##### -->
<para>
</para>
@adjustment:
@Returns:
<!-- ##### FUNCTION gtk_adjustment_get_page_size ##### -->
<para>
</para>
@adjustment:
@Returns:
<!-- ##### FUNCTION gtk_adjustment_get_step_increment ##### -->
<para>
</para>
@adjustment:
@Returns:
<!-- ##### FUNCTION gtk_adjustment_get_upper ##### -->
<para>
</para>
@adjustment:
@Returns:
<!-- ##### FUNCTION gtk_adjustment_set_lower ##### -->
<para>
</para>
@adjustment:
@lower:
<!-- ##### FUNCTION gtk_adjustment_set_page_increment ##### -->
<para>
</para>
@adjustment:
@page_increment:
<!-- ##### FUNCTION gtk_adjustment_set_page_size ##### -->
<para>
</para>
@adjustment:
@page_size:
<!-- ##### FUNCTION gtk_adjustment_set_step_increment ##### -->
<para>
</para>
@adjustment:
@step_increment:
<!-- ##### FUNCTION gtk_adjustment_set_upper ##### -->
<para>
</para>
@adjustment:
@upper:
+2 -95
View File
@@ -181,11 +181,6 @@ it cannot be individually modified.
</para>
@parent_class:
@get_request_mode:
@get_preferred_width:
@get_preferred_height_for_width:
@get_preferred_height:
@get_preferred_width_for_height:
@get_size:
@render:
@activate:
@@ -215,10 +210,11 @@ it cannot be individually modified.
</para>
@cell:
@cr:
@window:
@widget:
@background_area:
@cell_area:
@expose_area:
@flags:
@@ -357,92 +353,3 @@ it cannot be individually modified.
@ypad:
<!-- ##### FUNCTION gtk_cell_renderer_get_preferred_height ##### -->
<para>
</para>
@cell:
@widget:
@minimum_size:
@natural_size:
<!-- ##### FUNCTION gtk_cell_renderer_get_preferred_height_for_width ##### -->
<para>
</para>
@cell:
@widget:
@width:
@minimum_height:
@natural_height:
<!-- ##### FUNCTION gtk_cell_renderer_get_preferred_size ##### -->
<para>
</para>
@cell:
@widget:
@minimum_size:
@natural_size:
<!-- ##### FUNCTION gtk_cell_renderer_get_preferred_width ##### -->
<para>
</para>
@cell:
@widget:
@minimum_size:
@natural_size:
<!-- ##### FUNCTION gtk_cell_renderer_get_preferred_width_for_height ##### -->
<para>
</para>
@cell:
@widget:
@height:
@minimum_width:
@natural_width:
<!-- ##### FUNCTION gtk_cell_renderer_get_request_mode ##### -->
<para>
</para>
@cell:
@Returns:
<!-- ##### FUNCTION gtk_cell_view_get_desired_height_for_width_of_row ##### -->
<para>
</para>
@cell_view:
@path:
@avail_size:
@minimum_size:
@natural_size:
<!-- ##### FUNCTION gtk_cell_view_get_desired_width_of_row ##### -->
<para>
</para>
@cell_view:
@path:
@minimum_size:
@natural_size:
@@ -31,7 +31,7 @@ The #GtkCellRendererProgress cell renderer was added in GTK+ 2.6.
</para>
<!-- ##### ARG GtkCellRendererProgress:inverted ##### -->
<!-- ##### ARG GtkCellRendererProgress:orientation ##### -->
<para>
</para>
@@ -143,11 +143,6 @@ the #GtkCellRendererText allows to edit its text using an entry.
</para>
<!-- ##### ARG GtkCellRendererText:max-width-chars ##### -->
<para>
</para>
<!-- ##### ARG GtkCellRendererText:rise ##### -->
<para>
+539
View File
@@ -0,0 +1,539 @@
<!-- ##### SECTION Title ##### -->
GtkContainer
<!-- ##### SECTION Short_Description ##### -->
Base class for widgets which contain other widgets
<!-- ##### SECTION Long_Description ##### -->
<para>
A GTK+ user interface is constructed by nesting widgets inside widgets.
Container widgets are the inner nodes in the resulting tree of widgets:
they contain other widgets. So, for example, you might have a #GtkWindow
containing a #GtkFrame containing a GtkLabel. If you wanted an image instead
of a textual label inside the frame, you might replace the #GtkLabel widget
with a #GtkImage widget.
</para>
<para>
There are two major kinds of container widgets in GTK+. Both are subclasses
of the abstract #GtkContainer base class.
</para>
<para>
The first type of container widget has a single child widget and derives
from #GtkBin. These containers are <firstterm>decorators</firstterm>, which
add some kind of functionality to the child. For example, a #GtkButton makes
its child into a clickable button; a #GtkFrame draws a frame around its child
and a #GtkWindow places its child widget inside a top-level window.
</para>
<para>
The second type of container can have more than one child; its purpose is to
manage <firstterm>layout</firstterm>. This means that these containers assign
sizes and positions to their children. For example, a #GtkHBox arranges its
children in a horizontal row, and a #GtkTable arranges the widgets it contains
in a two-dimensional grid.
</para>
<para>
To fulfill its task, a layout container must negotiate the size requirements
with its parent and its children. The basic form of this negotiation is
carried out in two phases, <firstterm>size requisition</firstterm> and
<firstterm>size allocation</firstterm>, which are implemented by the
size_request() and size_allocate() virtual functions in #GtkWidget.
</para>
<para>
GTK+ also supports a more complicated form of size negotiation called
<firstterm>width-for-height</firstterm> (and its dual
<firstterm>height-for-width</firstterm>). See #GtkExtendedLayout
to learn more about width-for-height geometry management.
</para>
<refsect2 id="size-requisition"><title>Size Requisition</title>
<para>
The size requisition of a widget is it's desired width and height.
This is represented by a #GtkRequisition.
</para>
<para>
How a widget determines its desired size depends on the widget.
A #GtkLabel, for example, requests enough space to display all its text.
Container widgets generally base their size request on the requisitions
of their children.
</para>
<para>
The size requisition phase of the widget layout process operates top-down.
It starts at a top-level widget, typically a #GtkWindow. The top-level widget
asks its child for its size requisition by calling gtk_widget_get_preferred_size().
To determine its requisition, the child asks its own children for their
requisitions and so on. Finally, the top-level widget will get a requisition
back from its child.
</para>
</refsect2>
<refsect2 id="size-allocation"><title>Size Allocation</title>
<para>
When the top-level widget has determined how much space its child would like
to have, the second phase of the size negotiation, size allocation, begins.
Depending on its configuration (see gtk_window_set_resizable()), the top-level
widget may be able to expand in order to satisfy the size request or it may
have to ignore the size request and keep its fixed size. It then tells its
child widget how much space it gets by calling gtk_widget_size_allocate().
The child widget divides the space among its children and tells each child
how much space it got, and so on. Under normal circumstances, a #GtkWindow
will always give its child the amount of space the child requested.
</para>
<para>
A child's size allocation is represented by a #GtkAllocation. This struct
contains not only a width and height, but also a position (i.e. X and Y
coordinates), so that containers can tell their children not only how much
space they have gotten, but also where they are positioned inside the space
available to the container.
</para>
<para>
Widgets are required to honor the size allocation they receive; a size
request is only a request, and widgets must be able to cope with any size.
</para>
</refsect2>
<refsect2 id="child-properties"><title>Child properties</title>
<para>
<structname>GtkContainer</structname> introduces <firstterm>child
properties</firstterm> - these are object properties that are not specific
to either the container or the contained widget, but rather to their relation.
Typical examples of child properties are the position or pack-type of a widget
which is contained in a #GtkBox.</para>
<para>
Use gtk_container_class_install_child_property() to install child properties
for a container class and gtk_container_class_find_child_property() or
gtk_container_class_list_child_properties() to get information about existing
child properties.
</para>
<para>
To set the value of a child property, use gtk_container_child_set_property(),
gtk_container_child_set() or gtk_container_child_set_valist().
To obtain the value of a child property, use
gtk_container_child_get_property(), gtk_container_child_get() or
gtk_container_child_get_valist(). To emit notification about child property
changes, use gtk_widget_child_notify().
</para>
</refsect2>
<refsect2 id="GtkContainer-BUILDER-UI">
<title>GtkContainer as GtkBuildable</title>
<para>
The GtkContainer implementation of the GtkBuildable interface
supports a &lt;packing&gt; element for children, which can
contain multiple &lt;property&gt; elements that specify
child properties for the child.
</para>
<example>
<title>Child properties in UI definitions</title>
<programlisting><![CDATA[
<object class="GtkVBox">
<child>
<object class="GtkLabel"/>
<packing>
<property name="pack-type">start</property>
</packing>
</child>
</object>
]]></programlisting>
</example>
<para>
Since 2.16, child properties can also be marked as translatable using
the same "translatable", "comments" and "context" attributes that are used
for regular properties.
</para>
</refsect2>
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
<!-- ##### SECTION Stability_Level ##### -->
<!-- ##### SECTION Image ##### -->
<!-- ##### STRUCT GtkContainer ##### -->
<para>
</para>
<!-- ##### SIGNAL GtkContainer::add ##### -->
<para>
</para>
@container: the object which received the signal.
@widget:
<!-- ##### SIGNAL GtkContainer::check-resize ##### -->
<para>
</para>
@container: the object which received the signal.
<!-- ##### SIGNAL GtkContainer::remove ##### -->
<para>
</para>
@container: the object which received the signal.
@widget:
<!-- ##### SIGNAL GtkContainer::set-focus-child ##### -->
<para>
</para>
@container: the object which received the signal.
@widget:
<!-- ##### ARG GtkContainer:border-width ##### -->
<para>
</para>
<!-- ##### ARG GtkContainer:child ##### -->
<para>
</para>
<!-- ##### ARG GtkContainer:resize-mode ##### -->
<para>
</para>
<!-- ##### MACRO GTK_IS_RESIZE_CONTAINER ##### -->
<para>
</para>
@widget:
<!-- ##### MACRO GTK_CONTAINER_WARN_INVALID_CHILD_PROPERTY_ID ##### -->
<para>
This macro should be used to emit a standard warning about unexpected
properties in set_child_property() and get_child_property() implementations.
</para>
@object: the #GObject on which set_child_property() or get_child_property()
was called
@property_id: the numeric id of the property
@pspec: the #GParamSpec of the property
<!-- ##### FUNCTION gtk_container_add ##### -->
<para>
</para>
@container:
@widget:
<!-- ##### FUNCTION gtk_container_remove ##### -->
<para>
</para>
@container:
@widget:
<!-- ##### FUNCTION gtk_container_add_with_properties ##### -->
<para>
</para>
@container:
@widget:
@first_prop_name:
@Varargs:
<!-- ##### FUNCTION gtk_container_get_resize_mode ##### -->
<para>
</para>
@container:
@Returns:
<!-- ##### FUNCTION gtk_container_set_resize_mode ##### -->
<para>
</para>
@container:
@resize_mode:
<!-- ##### FUNCTION gtk_container_check_resize ##### -->
<para>
</para>
@container:
<!-- ##### FUNCTION gtk_container_foreach ##### -->
<para>
</para>
@container:
@callback:
@callback_data:
<!-- ##### FUNCTION gtk_container_get_children ##### -->
<para>
</para>
@container:
@Returns:
<!-- ##### FUNCTION gtk_container_set_reallocate_redraws ##### -->
<para>
</para>
@container:
@needs_redraws:
<!-- ##### FUNCTION gtk_container_get_focus_child ##### -->
<para>
</para>
@container:
@Returns:
<!-- ##### FUNCTION gtk_container_set_focus_child ##### -->
<para>
</para>
@container:
@child:
<!-- ##### FUNCTION gtk_container_get_focus_vadjustment ##### -->
<para>
</para>
@container:
@Returns:
<!-- ##### FUNCTION gtk_container_set_focus_vadjustment ##### -->
<para>
</para>
@container:
@adjustment:
<!-- ##### FUNCTION gtk_container_get_focus_hadjustment ##### -->
<para>
</para>
@container:
@Returns:
<!-- ##### FUNCTION gtk_container_set_focus_hadjustment ##### -->
<para>
</para>
@container:
@adjustment:
<!-- ##### FUNCTION gtk_container_resize_children ##### -->
<para>
</para>
@container:
<!-- ##### FUNCTION gtk_container_child_type ##### -->
<para>
</para>
@container:
@Returns:
<!-- ##### FUNCTION gtk_container_child_get ##### -->
<para>
</para>
@container:
@child:
@first_prop_name:
@Varargs:
<!-- ##### FUNCTION gtk_container_child_set ##### -->
<para>
</para>
@container:
@child:
@first_prop_name:
@Varargs:
<!-- ##### FUNCTION gtk_container_child_get_property ##### -->
<para>
</para>
@container:
@child:
@property_name:
@value:
<!-- ##### FUNCTION gtk_container_child_set_property ##### -->
<para>
</para>
@container:
@child:
@property_name:
@value:
<!-- ##### FUNCTION gtk_container_child_get_valist ##### -->
<para>
</para>
@container:
@child:
@first_property_name:
@var_args:
<!-- ##### FUNCTION gtk_container_child_set_valist ##### -->
<para>
</para>
@container:
@child:
@first_property_name:
@var_args:
<!-- ##### FUNCTION gtk_container_forall ##### -->
<para>
</para>
@container:
@callback:
@callback_data:
<!-- ##### FUNCTION gtk_container_get_border_width ##### -->
<para>
</para>
@container:
@Returns:
<!-- ##### FUNCTION gtk_container_set_border_width ##### -->
<para>
</para>
@container:
@border_width:
<!-- ##### FUNCTION gtk_container_propagate_expose ##### -->
<para>
</para>
@container:
@child:
@event:
<!-- ##### FUNCTION gtk_container_get_focus_chain ##### -->
<para>
</para>
@container:
@focusable_widgets:
@Returns:
<!-- ##### FUNCTION gtk_container_set_focus_chain ##### -->
<para>
</para>
@container:
@focusable_widgets:
<!-- ##### FUNCTION gtk_container_unset_focus_chain ##### -->
<para>
</para>
@container:
<!-- ##### FUNCTION gtk_container_class_find_child_property ##### -->
<para>
</para>
@cclass:
@property_name:
@Returns:
<!-- ##### FUNCTION gtk_container_class_install_child_property ##### -->
<para>
</para>
@cclass:
@property_id:
@pspec:
<!-- ##### FUNCTION gtk_container_class_list_child_properties ##### -->
<para>
</para>
@cclass:
@n_properties:
@Returns:
+34 -9
View File
@@ -14,22 +14,22 @@ not require extensive effort on the user's part.
<para>
GTK+ treats a dialog as a window split vertically. The top section is a
#GtkVBox known as the <structfield>content_area</structfield>, and is
where widgets such as a #GtkLabel or a #GtkEntry should be packed.
The bottom area is known as the <structfield>action_area</structfield>.
This is generally used for packing buttons into the dialog which may
perform functions such as cancel, ok, or apply.
#GtkVBox, and is where widgets such as a #GtkLabel or a #GtkEntry should
be packed. The bottom area is known as the
<structfield>action_area</structfield>. This is generally used for
packing buttons into the dialog which may perform functions such as
cancel, ok, or apply. The two areas are separated by a #GtkHSeparator.
</para>
<para>
GtkDialog boxes are created with a call to gtk_dialog_new() or
gtk_dialog_new_with_buttons(). gtk_dialog_new_with_buttons() is recommended;
it allows you to set the dialog title, some convenient flags, and add simple
#GtkDialog boxes are created with a call to gtk_dialog_new() or
gtk_dialog_new_with_buttons(). gtk_dialog_new_with_buttons() is recommended; it
allows you to set the dialog title, some convenient flags, and add simple
buttons.
</para>
<para>
If 'dialog' is a newly created dialog, the two primary areas of the window
If 'dialog' is a newly created dialog, the two primary areas of the window
can be accessed through gtk_dialog_get_content_area() and
gtk_dialog_get_action_area(), as can be seen from the example, below.
</para>
@@ -196,6 +196,11 @@ as any other #GtkHButtonBox.
@dialog:
@arg1:
<!-- ##### ARG GtkDialog:has-separator ##### -->
<para>
</para>
<!-- ##### ARG GtkDialog:action-area-border ##### -->
<para>
@@ -225,6 +230,8 @@ Flags used to influence dialog construction.
see gtk_window_set_modal().
@GTK_DIALOG_DESTROY_WITH_PARENT: Destroy the dialog when its
parent is destroyed, see gtk_window_set_destroy_with_parent().
@GTK_DIALOG_NO_SEPARATOR: Don't put a separator between the
action area and the dialog content.
<!-- ##### ENUM GtkResponseType ##### -->
<para>
@@ -318,6 +325,15 @@ directly, but into the @vbox and @action_area, as described above.
@response_id:
<!-- ##### FUNCTION gtk_dialog_get_has_separator ##### -->
<para>
</para>
@dialog:
@Returns:
<!-- ##### FUNCTION gtk_dialog_set_default_response ##### -->
<para>
@@ -327,6 +343,15 @@ directly, but into the @vbox and @action_area, as described above.
@response_id:
<!-- ##### FUNCTION gtk_dialog_set_has_separator ##### -->
<para>
</para>
@dialog:
@setting:
<!-- ##### FUNCTION gtk_dialog_set_response_sensitive ##### -->
<para>
+24 -11
View File
@@ -224,8 +224,8 @@ drops.
</para>
@context:
@Returns:
@context:
@Returns:
<!-- ##### FUNCTION gtk_drag_highlight ##### -->
@@ -271,6 +271,18 @@ a widget.
@hot_y:
<!-- ##### FUNCTION gtk_drag_set_icon_pixmap ##### -->
<para>
</para>
@context:
@colormap:
@pixmap:
@mask:
@hot_x:
@hot_y:
<!-- ##### FUNCTION gtk_drag_set_icon_pixbuf ##### -->
<para>
@@ -293,15 +305,6 @@ a widget.
@hot_y:
<!-- ##### FUNCTION gtk_drag_set_icon_surface ##### -->
<para>
</para>
@context:
@surface:
<!-- ##### FUNCTION gtk_drag_set_icon_name ##### -->
<para>
@@ -345,6 +348,16 @@ a widget.
@actions:
<!-- ##### FUNCTION gtk_drag_source_set_icon ##### -->
<para>
</para>
@widget:
@colormap:
@pixmap:
@mask:
<!-- ##### FUNCTION gtk_drag_source_set_icon_pixbuf ##### -->
<para>
+5
View File
@@ -404,6 +404,11 @@ The #GtkEntry-struct struct contains only private data.
</para>
<!-- ##### ARG GtkEntry:state-hint ##### -->
<para>
</para>
<!-- ##### FUNCTION gtk_entry_new ##### -->
<para>
+50
View File
@@ -29,6 +29,29 @@ Public enumerated types used throughout GTK+
@GTK_ACCEL_LOCKED:
@GTK_ACCEL_MASK:
<!-- ##### ENUM GtkAnchorType ##### -->
<para>
</para>
@GTK_ANCHOR_CENTER:
@GTK_ANCHOR_NORTH:
@GTK_ANCHOR_NORTH_WEST:
@GTK_ANCHOR_NORTH_EAST:
@GTK_ANCHOR_SOUTH:
@GTK_ANCHOR_SOUTH_WEST:
@GTK_ANCHOR_SOUTH_EAST:
@GTK_ANCHOR_WEST:
@GTK_ANCHOR_EAST:
@GTK_ANCHOR_N:
@GTK_ANCHOR_NW:
@GTK_ANCHOR_NE:
@GTK_ANCHOR_S:
@GTK_ANCHOR_SW:
@GTK_ANCHOR_SE:
@GTK_ANCHOR_W:
@GTK_ANCHOR_E:
<!-- ##### ENUM GtkArrowPlacement ##### -->
<para>
Used to specify the placement of scroll arrows in scrolling menus.
@@ -66,6 +89,7 @@ Used to dictate the style that a #GtkButtonBox uses to layout the buttons it
contains. (See also: #GtkVButtonBox and #GtkHButtonBox).
</para>
@GTK_BUTTONBOX_DEFAULT_STYLE: Default packing.
@GTK_BUTTONBOX_SPREAD: Buttons are evenly spread across the box.
@GTK_BUTTONBOX_EDGE: Buttons are placed at the edges of the box.
@GTK_BUTTONBOX_START: Buttons are grouped towards the start of the box,
@@ -310,6 +334,7 @@ Used to control what selections users are allowed to make.
The Ctrl key may be used to enlarge the selection, and Shift key to select
between the focus and the child pointed to. Some widgets may also allow
Click-drag to select a range of elements.
@GTK_SELECTION_EXTENDED: Deprecated, behaves identical to %GTK_SELECTION_MULTIPLE.
<!-- ##### ENUM GtkShadowType ##### -->
<para>
@@ -338,6 +363,22 @@ the widget and the widget will respond to mouse clicks.
@GTK_STATE_INSENSITIVE: State indicating that the widget is
unresponsive to user actions.
<!-- ##### ENUM GtkSubmenuDirection ##### -->
<para>
Indicates the direction a sub-menu will appear.
</para>
@GTK_DIRECTION_LEFT: A sub-menu will appear to the left of the current menu.
@GTK_DIRECTION_RIGHT: A sub-menu will appear to the right of the current menu.
<!-- ##### ENUM GtkSubmenuPlacement ##### -->
<para>
</para>
@GTK_TOP_BOTTOM:
@GTK_LEFT_RIGHT:
<!-- ##### ENUM GtkToolbarStyle ##### -->
<para>
Used to customize the appearance of a #GtkToolbar. Note that
@@ -362,6 +403,15 @@ Used by #GtkRange to control the policy for notifying value changes.
@GTK_UPDATE_DISCONTINUOUS: Notify updates when the mouse button has been released
@GTK_UPDATE_DELAYED: Space out updates with a small timeout
<!-- ##### ENUM GtkVisibility ##### -->
<para>
Used by #GtkCList and #GtkCTree to indicate whether a row is visible.
</para>
@GTK_VISIBILITY_NONE: The row is not visible.
@GTK_VISIBILITY_PARTIAL: The row is partially visible.
@GTK_VISIBILITY_FULL: The row is fully visible.
<!-- ##### ENUM GtkWindowPosition ##### -->
<para>
Window placement can be influenced using this enumeration. Note that
-45
View File
@@ -22,51 +22,6 @@ typically use the features described here.
<!-- ##### SECTION Image ##### -->
<!-- ##### FUNCTION gtk_get_major_version ##### -->
<para>
</para>
@void:
@Returns:
<!-- ##### FUNCTION gtk_get_minor_version ##### -->
<para>
</para>
@void:
@Returns:
<!-- ##### FUNCTION gtk_get_micro_version ##### -->
<para>
</para>
@void:
@Returns:
<!-- ##### FUNCTION gtk_get_binary_age ##### -->
<para>
</para>
@void:
@Returns:
<!-- ##### FUNCTION gtk_get_interface_age ##### -->
<para>
</para>
@void:
@Returns:
<!-- ##### FUNCTION gtk_check_version ##### -->
<para>
</para>
+5
View File
@@ -74,6 +74,11 @@ a &lt;child&gt; type attribute.
</para>
<!-- ##### ARG GtkFrame:shadow ##### -->
<para>
</para>
<!-- ##### ARG GtkFrame:shadow-type ##### -->
<para>
@@ -115,6 +115,11 @@ handlebox are detached from the main window.
</para>
<!-- ##### ARG GtkHandleBox:shadow ##### -->
<para>
</para>
<!-- ##### ARG GtkHandleBox:shadow-type ##### -->
<para>
+330
View File
@@ -0,0 +1,330 @@
<!-- ##### SECTION Title ##### -->
GtkItemFactory
<!-- ##### SECTION Short_Description ##### -->
A factory for menus
<!-- ##### SECTION Long_Description ##### -->
<para>
As of GTK+ 2.4, #GtkItemFactory has been deprecated in favour of #GtkUIManager.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
<!-- ##### SECTION Stability_Level ##### -->
<!-- ##### STRUCT GtkItemFactory ##### -->
<para>
</para>
<!-- ##### USER_FUNCTION GtkPrintFunc ##### -->
<para>
</para>
@func_data:
@str:
<!-- ##### USER_FUNCTION GtkTranslateFunc ##### -->
<para>
The function used to translate messages in e.g. #GtkIconFactory
and #GtkActionGroup.
</para>
@path: The id of the message. In #GtkItemFactory this will be a path
from a #GtkItemFactoryEntry, in #GtkActionGroup, it will be a label
or tooltip from a #GtkActionEntry.
@func_data: user data passed in when registering the function
@Returns: the translated message
<!-- ##### USER_FUNCTION GtkItemFactoryCallback ##### -->
<para>
</para>
<!-- ##### USER_FUNCTION GtkItemFactoryCallback1 ##### -->
<para>
</para>
@callback_data:
@callback_action:
@widget:
<!-- ##### USER_FUNCTION GtkItemFactoryCallback2 ##### -->
<para>
</para>
@widget:
@callback_data:
@callback_action:
<!-- ##### STRUCT GtkItemFactoryEntry ##### -->
<para>
</para>
@path:
@accelerator:
@callback:
@callback_action:
@item_type:
@extra_data:
<!-- ##### STRUCT GtkItemFactoryItem ##### -->
<para>
</para>
@path:
@widgets:
<!-- ##### FUNCTION gtk_item_factory_new ##### -->
<para>
</para>
@container_type:
@path:
@accel_group:
@Returns:
<!-- ##### FUNCTION gtk_item_factory_construct ##### -->
<para>
</para>
@ifactory:
@container_type:
@path:
@accel_group:
<!-- ##### FUNCTION gtk_item_factory_add_foreign ##### -->
<para>
</para>
@accel_widget:
@full_path:
@accel_group:
@keyval:
@modifiers:
<!-- ##### FUNCTION gtk_item_factory_from_widget ##### -->
<para>
</para>
@widget:
@Returns:
<!-- ##### FUNCTION gtk_item_factory_path_from_widget ##### -->
<para>
</para>
@widget:
@Returns:
<!-- ##### FUNCTION gtk_item_factory_get_item ##### -->
<para>
</para>
@ifactory:
@path:
@Returns:
<!-- ##### FUNCTION gtk_item_factory_get_widget ##### -->
<para>
</para>
@ifactory:
@path:
@Returns:
<!-- ##### FUNCTION gtk_item_factory_get_widget_by_action ##### -->
<para>
</para>
@ifactory:
@action:
@Returns:
<!-- ##### FUNCTION gtk_item_factory_get_item_by_action ##### -->
<para>
</para>
@ifactory:
@action:
@Returns:
<!-- ##### FUNCTION gtk_item_factory_create_item ##### -->
<para>
</para>
@ifactory:
@entry:
@callback_data:
@callback_type:
<!-- ##### FUNCTION gtk_item_factory_create_items ##### -->
<para>
</para>
@ifactory:
@n_entries:
@entries:
@callback_data:
<!-- ##### FUNCTION gtk_item_factory_create_items_ac ##### -->
<para>
</para>
@ifactory:
@n_entries:
@entries:
@callback_data:
@callback_type:
<!-- ##### FUNCTION gtk_item_factory_delete_item ##### -->
<para>
</para>
@ifactory:
@path:
<!-- ##### FUNCTION gtk_item_factory_delete_entry ##### -->
<para>
</para>
@ifactory:
@entry:
<!-- ##### FUNCTION gtk_item_factory_delete_entries ##### -->
<para>
</para>
@ifactory:
@n_entries:
@entries:
<!-- ##### FUNCTION gtk_item_factory_popup ##### -->
<para>
</para>
@ifactory:
@x:
@y:
@mouse_button:
@time_:
<!-- ##### FUNCTION gtk_item_factory_popup_with_data ##### -->
<para>
</para>
@ifactory:
@popup_data:
@destroy:
@x:
@y:
@mouse_button:
@time_:
<!-- ##### FUNCTION gtk_item_factory_popup_data ##### -->
<para>
</para>
@ifactory:
@Returns:
<!-- ##### FUNCTION gtk_item_factory_popup_data_from_widget ##### -->
<para>
</para>
@widget:
@Returns:
<!-- ##### FUNCTION gtk_item_factory_from_path ##### -->
<para>
</para>
@path:
@Returns:
<!-- ##### FUNCTION gtk_item_factory_create_menu_entries ##### -->
<para>
</para>
@n_entries:
@entries:
<!-- ##### FUNCTION gtk_item_factories_path_delete ##### -->
<para>
</para>
@ifactory_path:
@path:
<!-- ##### FUNCTION gtk_item_factory_set_translate_func ##### -->
<para>
</para>
@ifactory:
@func:
@data:
@notify:
+2 -36
View File
@@ -395,8 +395,8 @@ widget and this function does nothing.
</para>
@void:
@Returns:
@void:
@Returns:
<!-- ##### FUNCTION gtk_grab_remove ##### -->
@@ -430,15 +430,6 @@ If @widget does not have the grab, this function does nothing.
@device:
<!-- ##### USER_FUNCTION GtkFunction ##### -->
<para>
</para>
@data:
@Returns:
<!-- ##### FUNCTION gtk_init_add ##### -->
<para>
Registers a function to be called when the mainloop is started.
@@ -446,7 +437,6 @@ Registers a function to be called when the mainloop is started.
@function: Function to invoke when gtk_main() is called next.
@data: Data to pass to that function.
@Deprecated: This function is going to be removed in GTK+ 3.0
<!-- ##### FUNCTION gtk_quit_add_destroy ##### -->
@@ -457,7 +447,6 @@ is quit.
@main_level: Level of the mainloop which shall trigger the destruction.
@object: Object to be destroyed.
@Deprecated: This function is going to be removed in GTK+ 3.0
<!-- ##### FUNCTION gtk_quit_add ##### -->
@@ -473,28 +462,8 @@ Registers a function to be called when an instance of the mainloop is left.
@data: Pointer to pass when calling @function.
@Returns: A handle for this quit handler (you need this for gtk_quit_remove())
or 0 if you passed a %NULL pointer in @function.
@Deprecated: This function is going to be removed in GTK+ 3.0
<!-- ##### USER_FUNCTION GtkCallbackMarshal ##### -->
<para>
</para>
@object:
@data:
@n_args:
@args:
<!-- ##### STRUCT GtkArg ##### -->
<para>
</para>
@type:
@name:
<!-- ##### FUNCTION gtk_quit_add_full ##### -->
<para>
Registers a function to be called when an instance of the mainloop is left.
@@ -519,7 +488,6 @@ used by GTK+ wrappers for languages other than C.
@destroy: Function to call to destruct @data. Gets @data as argument.
@Returns: A handle for this quit handler (you need this for gtk_quit_remove())
or 0 if you passed a %NULL pointer in @function.
@Deprecated: This function is going to be removed in GTK+ 3.0
<!-- ##### FUNCTION gtk_quit_remove ##### -->
@@ -528,7 +496,6 @@ Removes a quit handler by its identifier.
</para>
@quit_handler_id: Identifier for the handler returned when installing it.
@Deprecated: This function is going to be removed in GTK+ 3.0
<!-- ##### FUNCTION gtk_quit_remove_by_data ##### -->
@@ -537,7 +504,6 @@ Removes a quit handler identified by its @data field.
</para>
@data: The pointer passed as @data to gtk_quit_add() or gtk_quit_add_full().
@Deprecated: This function is going to be removed in GTK+ 3.0
<!-- ##### MACRO GTK_PRIORITY_RESIZE ##### -->
-1
View File
@@ -245,7 +245,6 @@ Moves a #GtkMenuItem to a new position within the #GtkMenu.
@parent_menu_item:
@func:
@data:
@destroy:
@button:
@activate_time:
-14
View File
@@ -78,20 +78,6 @@ submenu. For normal applications, the relevant signal is "activate".
@menuitem: the object which received the signal.
<!-- ##### SIGNAL GtkMenuItem::deselect ##### -->
<para>
</para>
@menuitem: the object which received the signal.
<!-- ##### SIGNAL GtkMenuItem::select ##### -->
<para>
</para>
@menuitem: the object which received the signal.
<!-- ##### SIGNAL GtkMenuItem::toggle-size-allocate ##### -->
<para>
+1 -3
View File
@@ -19,13 +19,11 @@ positioned within its allocated area. Note that if the widget is added to
a container in such a way that it expands automatically to fill its
allocated area, the alignment settings will not alter the widgets position.
</para>
<note>
<para>
Note that the desired effect can in most cases be achieved by using the
#GtkWidget:halign, #GtkWidget:valign and #GtkWidget:margin properties
on the child widget, so GtkMisc should not be used in new code.
on the child widget.
</para>
</note>
<!-- ##### SECTION See_Also ##### -->
<para>
+30 -4
View File
@@ -36,6 +36,21 @@ orientation of the bar, optional text can be displayed along with
the bar, and the step size used in activity mode can be set.
</para>
<note>
<para>
The #GtkProgressBar/#GtkProgress API in GTK 1.2 was bloated, needlessly complex
and hard to use properly. Therefore #GtkProgress has been deprecated
completely and the #GtkProgressBar API has been reduced to the following 10
functions: gtk_progress_bar_new(), gtk_progress_bar_pulse(),
gtk_progress_bar_set_text(), gtk_progress_bar_set_fraction(),
gtk_progress_bar_set_pulse_step(), gtk_progress_bar_set_orientation(),
gtk_progress_bar_get_text(), gtk_progress_bar_get_fraction(),
gtk_progress_bar_get_pulse_step(), gtk_progress_bar_get_orientation().
These have been grouped at the beginning of this section, followed by
a large chunk of deprecated 1.2 compatibility functions.
</para>
</note>
<!-- ##### SECTION See_Also ##### -->
<para>
@@ -64,7 +79,7 @@ and should be accessed using the functions below.
</para>
<!-- ##### ARG GtkProgressBar:inverted ##### -->
<!-- ##### ARG GtkProgressBar:orientation ##### -->
<para>
</para>
@@ -149,16 +164,27 @@ Creates a new #GtkProgressBar.
@Returns:
<!-- ##### FUNCTION gtk_progress_bar_set_inverted ##### -->
<!-- ##### ENUM GtkProgressBarOrientation ##### -->
<para>
An enumeration representing possible orientations and growth
directions for the visible progress bar.
</para>
@GTK_PROGRESS_LEFT_TO_RIGHT: A horizontal progress bar growing from left to right.
@GTK_PROGRESS_RIGHT_TO_LEFT: A horizontal progress bar growing from right to left.
@GTK_PROGRESS_BOTTOM_TO_TOP: A vertical progress bar growing from bottom to top.
@GTK_PROGRESS_TOP_TO_BOTTOM: A vertical progress bar growing from top to bottom.
<!-- ##### FUNCTION gtk_progress_bar_set_orientation ##### -->
<para>
</para>
@pbar:
@inverted:
@orientation:
<!-- ##### FUNCTION gtk_progress_bar_get_inverted ##### -->
<!-- ##### FUNCTION gtk_progress_bar_get_orientation ##### -->
<para>
</para>
@@ -143,7 +143,7 @@ Sets the group of a radio menu item, or changes it.
</para>
@radio_menu_item:
@Returns:
@radio_menu_item:
@Returns:
+103
View File
@@ -0,0 +1,103 @@
<!-- ##### SECTION Title ##### -->
GtkScrollbar
<!-- ##### SECTION Short_Description ##### -->
Base class for GtkHScrollbar and GtkVScrollbar
<!-- ##### SECTION Long_Description ##### -->
<para>
The #GtkScrollbar widget is the base class for #GtkHScrollbar and
#GtkVScrollbar. It can be used in the same way as these, by setting
the "orientation" property appropriately.
</para>
<para>
The position of the thumb in a scrollbar is controlled by the scroll
adjustments. See #GtkAdjustment for the fields in an adjustment - for
#GtkScrollbar, the "value" field represents the position of the
scrollbar, which must be between the "lower" field and "upper -
page_size." The "page_size" field represents the size of the visible
scrollable area. The "step_increment" and "page_increment" fields are
used when the user asks to step down (using the small stepper arrows)
or page down (using for example the PageDown key).
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
<variablelist>
<varlistentry>
<term>#GtkHScrollbar</term>
<listitem><para>a horizontal scrollbar.</para></listitem>
</varlistentry>
<varlistentry>
<term>#GtkVScrollbar</term>
<listitem><para>a vertical scrollbar.</para></listitem>
</varlistentry>
<varlistentry>
<term>#GtkAdjustment</term>
<listitem><para>connects scrollbars to the widget being scrolled.</para></listitem>
</varlistentry>
<varlistentry>
<term>#GtkScrolledWindow</term>
<listitem><para>convenient widget for setting up scrolling.</para></listitem>
</varlistentry>
</variablelist>
</para>
<!-- ##### SECTION Stability_Level ##### -->
<!-- ##### SECTION Image ##### -->
<!-- ##### STRUCT GtkScrollbar ##### -->
<para>
The #GtkScrollbar struct does not contain any public data.
</para>
<!-- ##### ARG GtkScrollbar:fixed-slider-length ##### -->
<para>
</para>
<!-- ##### ARG GtkScrollbar:has-backward-stepper ##### -->
<para>
</para>
<!-- ##### ARG GtkScrollbar:has-forward-stepper ##### -->
<para>
</para>
<!-- ##### ARG GtkScrollbar:has-secondary-backward-stepper ##### -->
<para>
</para>
<!-- ##### ARG GtkScrollbar:has-secondary-forward-stepper ##### -->
<para>
</para>
<!-- ##### ARG GtkScrollbar:min-slider-length ##### -->
<para>
</para>
<!-- ##### FUNCTION gtk_scrollbar_new ##### -->
<para>
</para>
@orientation:
@adjustment:
@Returns:
@@ -0,0 +1,282 @@
<!-- ##### SECTION Title ##### -->
GtkScrolledWindow
<!-- ##### SECTION Short_Description ##### -->
Adds scrollbars to its child widget
<!-- ##### SECTION Long_Description ##### -->
<para>
#GtkScrolledWindow is a #GtkBin subclass: it's a container
the accepts a single child widget. #GtkScrolledWindow adds scrollbars
to the child widget and optionally draws a beveled frame around the
child widget.
</para>
<para>
The scrolled window can work in two ways. Some widgets have native
scrolling support; these widgets have "slots" for #GtkAdjustment
objects.
<footnote><para>The scrolled window installs #GtkAdjustment objects in
the child window's slots using the set_scroll_adjustments_signal,
found in #GtkWidgetClass. (Conceptually, these widgets implement a
"Scrollable" interface; because GTK+ 1.2 lacked interface support in
the object system, this interface is hackily implemented as a signal
in #GtkWidgetClass. The GTK+ 2.0 object system would allow a clean
implementation, but it wasn't worth breaking the
API.)</para></footnote>
Widgets with native scroll support include #GtkTreeView, #GtkTextView,
and #GtkLayout.
</para>
<para>
For widgets that lack native scrolling support, the #GtkViewport
widget acts as an adaptor class, implementing scrollability for child
widgets that lack their own scrolling capabilities. Use #GtkViewport
to scroll child widgets such as #GtkTable, #GtkBox, and so on.
</para>
<para>
If a widget has native scrolling abilities, it can be added to the
#GtkScrolledWindow with gtk_container_add(). If a widget does not, you
must first add the widget to a #GtkViewport, then add the #GtkViewport
to the scrolled window. The convenience function
gtk_scrolled_window_add_with_viewport() does exactly this, so you can
ignore the presence of the viewport.
</para>
<para>
The position of the scrollbars is controlled by the scroll
adjustments. See #GtkAdjustment for the fields in an adjustment - for
#GtkScrollbar, used by #GtkScrolledWindow, the "value" field
represents the position of the scrollbar, which must be between the
"lower" field and "upper - page_size." The "page_size" field
represents the size of the visible scrollable area. The
"step_increment" and "page_increment" fields are used when the user
asks to step down (using the small stepper arrows) or page down (using
for example the PageDown key).
</para>
<para>
If a #GtkScrolledWindow doesn't behave quite as you would like, or
doesn't have exactly the right layout, it's very possible to set up
your own scrolling with #GtkScrollbar and for example a #GtkTable.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
#GtkViewport, #GtkAdjustment, #GtkWidgetClass
</para>
<!-- ##### SECTION Stability_Level ##### -->
<!-- ##### SECTION Image ##### -->
<!-- ##### STRUCT GtkScrolledWindow ##### -->
<para>
There are no public fields in the #GtkScrolledWindow struct; it should
only be accessed using the functions below.
</para>
<!-- ##### SIGNAL GtkScrolledWindow::move-focus-out ##### -->
<para>
</para>
@scrolledwindow:
@arg1:
<!-- ##### SIGNAL GtkScrolledWindow::scroll-child ##### -->
<para>
</para>
@scrolledwindow:
@arg1:
@arg2:
@Returns:
<!-- ##### ARG GtkScrolledWindow:hadjustment ##### -->
<para>
</para>
<!-- ##### ARG GtkScrolledWindow:hscrollbar-policy ##### -->
<para>
</para>
<!-- ##### ARG GtkScrolledWindow:shadow-type ##### -->
<para>
</para>
<!-- ##### ARG GtkScrolledWindow:vadjustment ##### -->
<para>
</para>
<!-- ##### ARG GtkScrolledWindow:vscrollbar-policy ##### -->
<para>
</para>
<!-- ##### ARG GtkScrolledWindow:window-placement ##### -->
<para>
</para>
<!-- ##### ARG GtkScrolledWindow:window-placement-set ##### -->
<para>
</para>
<!-- ##### ARG GtkScrolledWindow:scrollbar-spacing ##### -->
<para>
</para>
<!-- ##### ARG GtkScrolledWindow:scrollbars-within-bevel ##### -->
<para>
</para>
<!-- ##### FUNCTION gtk_scrolled_window_new ##### -->
<para>
</para>
@hadjustment:
@vadjustment:
@Returns:
<!-- ##### FUNCTION gtk_scrolled_window_get_hadjustment ##### -->
<para>
</para>
@scrolled_window:
@Returns:
<!-- ##### FUNCTION gtk_scrolled_window_get_vadjustment ##### -->
<para>
</para>
@scrolled_window:
@Returns:
<!-- ##### FUNCTION gtk_scrolled_window_get_hscrollbar ##### -->
<para>
</para>
@scrolled_window:
@Returns:
<!-- ##### FUNCTION gtk_scrolled_window_get_vscrollbar ##### -->
<para>
</para>
@scrolled_window:
@Returns:
<!-- ##### FUNCTION gtk_scrolled_window_set_policy ##### -->
<para>
</para>
@scrolled_window:
@hscrollbar_policy:
@vscrollbar_policy:
<!-- ##### FUNCTION gtk_scrolled_window_add_with_viewport ##### -->
<para>
</para>
@scrolled_window:
@child:
<!-- ##### FUNCTION gtk_scrolled_window_set_placement ##### -->
<para>
</para>
@scrolled_window:
@window_placement:
<!-- ##### FUNCTION gtk_scrolled_window_unset_placement ##### -->
<para>
</para>
@scrolled_window:
<!-- ##### FUNCTION gtk_scrolled_window_set_shadow_type ##### -->
<para>
</para>
@scrolled_window:
@type:
<!-- ##### FUNCTION gtk_scrolled_window_set_hadjustment ##### -->
<para>
</para>
@scrolled_window:
@hadjustment:
<!-- ##### FUNCTION gtk_scrolled_window_set_vadjustment ##### -->
<para>
</para>
@scrolled_window:
@vadjustment:
<!-- ##### FUNCTION gtk_scrolled_window_get_placement ##### -->
<para>
</para>
@scrolled_window:
@Returns:
<!-- ##### FUNCTION gtk_scrolled_window_get_policy ##### -->
<para>
</para>
@scrolled_window:
@hscrollbar_policy:
@vscrollbar_policy:
<!-- ##### FUNCTION gtk_scrolled_window_get_shadow_type ##### -->
<para>
</para>
@scrolled_window:
@Returns:
-28
View File
@@ -86,34 +86,6 @@ selection handling code.
@flags:
@info:
<!-- ##### FUNCTION gtk_target_entry_new ##### -->
<para>
</para>
@target:
@flags:
@info:
@Returns:
<!-- ##### FUNCTION gtk_target_entry_copy ##### -->
<para>
</para>
@data:
@Returns:
<!-- ##### FUNCTION gtk_target_entry_free ##### -->
<para>
</para>
@data:
<!-- ##### FUNCTION gtk_target_list_new ##### -->
<para>
</para>
@@ -115,6 +115,11 @@ on Win32 doesn't allow to embed arbitrary widgets.
@arg1:
@Returns:
<!-- ##### ARG GtkStatusIcon:blinking ##### -->
<para>
</para>
<!-- ##### ARG GtkStatusIcon:embedded ##### -->
<para>
@@ -460,6 +465,24 @@ on Win32 doesn't allow to embed arbitrary widgets.
@Returns:
<!-- ##### FUNCTION gtk_status_icon_set_blinking ##### -->
<para>
</para>
@status_icon:
@blinking:
<!-- ##### FUNCTION gtk_status_icon_get_blinking ##### -->
<para>
</para>
@status_icon:
@Returns:
<!-- ##### FUNCTION gtk_status_icon_is_embedded ##### -->
<para>
+6 -25
View File
@@ -22,32 +22,24 @@ convenient (but slightly less flexible) gtk_table_attach_defaults().
To alter the space next to a specific row, use gtk_table_set_row_spacing(),
and for a column, gtk_table_set_col_spacing().</para>
<para>
The gaps between <emphasis>all</emphasis> rows or columns can be changed by
calling gtk_table_set_row_spacings() or gtk_table_set_col_spacings()
respectively. Note that spacing is added <emphasis>between</emphasis> the
children, while padding added by gtk_table_atach() is added <emphasis>on
either side</emphasis> of the widget it belongs to.
The gaps between <emphasis>all</emphasis> rows or columns can be changed by calling
gtk_table_set_row_spacings() or gtk_table_set_col_spacings() respectively.
</para>
<para>
gtk_table_set_homogeneous(), can be used to set whether all cells in the
table will resize themselves to the size of the largest widget in the table.
</para>
<para>
Note that #GtkGrid provides the same capabilities as GtkTable for arranging
widgets in a rectangular grid, and additionally supports height-for-width
geometry management.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
<variablelist>
<varlistentry>
<term>#GtkBox</term>
<listitem><para>For packing widgets in a single row.</para></listitem>
<term>#GtkVBox</term>
<listitem><para>For packing widgets vertically only.</para></listitem>
</varlistentry>
<varlistentry>
<term>#GtkGrid</term>
<listitem><para>For packing widgets in a grid with height-for-width geometry management.</para></listitem>
<term>#GtkHBox</term>
<listitem><para>For packing widgets horizontally only.</para></listitem>
</varlistentry>
</variablelist>
</para>
@@ -177,17 +169,6 @@ specified by @left_attach, @right_attach, @top_attach and @bottom_attach.
These each represent the leftmost, rightmost, uppermost and lowest column
and row numbers of the table. (Columns and rows are indexed from zero).
</para>
<para>
To make a button occupy the lower right cell of a 2x2 table, use
<informalexample><programlisting>
gtk_table_attach (table, button,
1, 2, /* left, right attach */
1, 2, /* top, bottom attach */
xoptions, yoptions,
xpadding, ypadding);
</programlisting></informalexample>
If you want to make the button span the entire bottom row, use @left_attach == 0 and @right_attach = 2 instead.
</para>
@table: The #GtkTable to add a new widget to.
@child: The widget to add.
+9
View File
@@ -89,6 +89,15 @@ types related to the text widget and how they work together.
@arg1:
@arg2:
<!-- ##### SIGNAL GtkTextView::page-horizontally ##### -->
<para>
</para>
@textview: the object which received the signal.
@arg1:
@arg2:
<!-- ##### SIGNAL GtkTextView::paste-clipboard ##### -->
<para>
@@ -0,0 +1,198 @@
<!-- ##### SECTION Title ##### -->
GtkTreeModelFilter
<!-- ##### SECTION Short_Description ##### -->
A GtkTreeModel which hides parts of an underlying tree model
<!-- ##### SECTION Long_Description ##### -->
<para>
A #GtkTreeModelFilter is a tree model which wraps another tree model,
and can do the following things:
<itemizedlist>
<listitem><para>
Filter specific rows, based on data from a "visible column", a column
storing booleans indicating whether the row should be filtered or not,
or based on the return value of a "visible function", which gets a
model, iter and user_data and returns a boolean indicating whether the
row should be filtered or not.
</para></listitem>
<listitem><para>
Modify the "appearance" of the model, using a modify function.
This is extremely powerful and allows for just changing
some values and also for creating a completely different model based on
the given child model.
</para></listitem>
<listitem><para>
Set a different root node, also known as a "virtual root". You can pass in
a #GtkTreePath indicating the root node for the filter at construction time.
</para></listitem>
</itemizedlist>
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
#GtkTreeModelSort
</para>
<!-- ##### SECTION Stability_Level ##### -->
<!-- ##### SECTION Image ##### -->
<!-- ##### STRUCT GtkTreeModelFilter ##### -->
<para>
The GtkTreeModelFilter struct contains only private fields.
</para>
<!-- ##### ARG GtkTreeModelFilter:child-model ##### -->
<para>
</para>
<!-- ##### ARG GtkTreeModelFilter:virtual-root ##### -->
<para>
</para>
<!-- ##### USER_FUNCTION GtkTreeModelFilterVisibleFunc ##### -->
<para>
A function which decides whether the row indicated by @iter is visible.
</para>
@model: the child model of the #GtkTreeModelFilter
@iter: a #GtkTreeIter pointing to the row in @model whose visibility
is determined
@data: user data given to gtk_tree_model_filter_set_visible_func()
@Returns: Whether the row indicated by @iter is visible.
<!-- ##### USER_FUNCTION GtkTreeModelFilterModifyFunc ##### -->
<para>
A function which calculates display values from raw values in the model.
It must fill @value with the display value for the column @column in the
row indicated by @iter.
</para>
<para>
Since this function is called for each data access, it's not a
particularly efficient operation.
</para>
@model: the #GtkTreeModelFilter
@iter: a #GtkTreeIter pointing to the row whose display values are determined
@value: A #GValue which is already initialized for with the correct type for
the column @column.
@column: the column whose display value is determined
@data: user data given to gtk_tree_model_filter_set_modify_func()
<!-- ##### FUNCTION gtk_tree_model_filter_new ##### -->
<para>
</para>
@child_model:
@root:
@Returns:
<!-- ##### FUNCTION gtk_tree_model_filter_set_visible_func ##### -->
<para>
</para>
@filter:
@func:
@data:
@destroy:
<!-- ##### FUNCTION gtk_tree_model_filter_set_modify_func ##### -->
<para>
</para>
@filter:
@n_columns:
@types:
@func:
@data:
@destroy:
<!-- ##### FUNCTION gtk_tree_model_filter_set_visible_column ##### -->
<para>
</para>
@filter:
@column:
<!-- ##### FUNCTION gtk_tree_model_filter_get_model ##### -->
<para>
</para>
@filter:
@Returns:
<!-- ##### FUNCTION gtk_tree_model_filter_convert_child_iter_to_iter ##### -->
<para>
</para>
@filter:
@filter_iter:
@child_iter:
@Returns:
<!-- ##### FUNCTION gtk_tree_model_filter_convert_iter_to_child_iter ##### -->
<para>
</para>
@filter:
@child_iter:
@filter_iter:
<!-- ##### FUNCTION gtk_tree_model_filter_convert_child_path_to_path ##### -->
<para>
</para>
@filter:
@child_path:
@Returns:
<!-- ##### FUNCTION gtk_tree_model_filter_convert_path_to_child_path ##### -->
<para>
</para>
@filter:
@filter_path:
@Returns:
<!-- ##### FUNCTION gtk_tree_model_filter_refilter ##### -->
<para>
</para>
@filter:
<!-- ##### FUNCTION gtk_tree_model_filter_clear_cache ##### -->
<para>
</para>
@filter:
@@ -0,0 +1,280 @@
<!-- ##### SECTION Title ##### -->
GtkTreeSelection
<!-- ##### SECTION Short_Description ##### -->
The selection object for GtkTreeView
<!-- ##### SECTION Long_Description ##### -->
<para>
The #GtkTreeSelection object is a helper object to manage the selection
for a #GtkTreeView widget. The #GtkTreeSelection object is
automatically created when a new #GtkTreeView widget is created, and
cannot exist independentally of this widget. The primary reason the
#GtkTreeSelection objects exists is for cleanliness of code and API.
That is, there is no conceptual reason all these functions could not be
methods on the #GtkTreeView widget instead of a separate function.
</para>
<para>
The #GtkTreeSelection object is gotten from a #GtkTreeView by calling
gtk_tree_view_get_selection(). It can be manipulated to check the
selection status of the tree, as well as select and deselect individual
rows. Selection is done completely view side. As a result, multiple
views of the same model can have completely different selections.
Additionally, you cannot change the selection of a row on the model that
is not currently displayed by the view without expanding its parents
first.
</para>
<para>
One of the important things to remember when monitoring the selection of
a view is that the #GtkTreeSelection::changed signal is mostly a hint. That is, it may
only emit one signal when a range of rows is selected. Additionally, it
may on occasion emit a ::changed signal when nothing has happened
(mostly as a result of programmers calling select_row on an already
selected row).
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
#GtkTreeView, #GtkTreeViewColumn, #GtkTreeDnd, #GtkTreeMode, #GtkTreeSortable, #GtkTreeModelSort, #GtkListStore, #GtkTreeStore, #GtkCellRenderer, #GtkCellEditable, #GtkCellRendererPixbuf, #GtkCellRendererText, #GtkCellRendererToggle
</para>
<!-- ##### SECTION Stability_Level ##### -->
<!-- ##### SECTION Image ##### -->
<!-- ##### STRUCT GtkTreeSelection ##### -->
<para>
</para>
<!-- ##### SIGNAL GtkTreeSelection::changed ##### -->
<para>
Emitted whenever the selection has (possibly) changed. Please note that
this signal is mostly a hint. It may only be emitted once when a range
of rows are selected, and it may occasionally be emitted when nothing
has happened.
</para>
@treeselection: the object which received the signal.
<!-- ##### USER_FUNCTION GtkTreeSelectionFunc ##### -->
<para>
A function used by gtk_tree_selection_set_select_function() to filter
whether or not a row may be selected. It is called whenever a row's
state might change. A return value of %TRUE indicates to @selection
that it is okay to change the selection.
</para>
@selection: A #GtkTreeSelection
@model: A #GtkTreeModel being viewed
@path: The #GtkTreePath of the row in question
@path_currently_selected: %TRUE, if the path is currently selected
@data: user data
@Returns: %TRUE, if the selection state of the row can be toggled
<!-- ##### USER_FUNCTION GtkTreeSelectionForeachFunc ##### -->
<para>
A function used by gtk_tree_selection_selected_foreach() to map all
selected rows. It will be called on every selected row in the view.
</para>
@model: The #GtkTreeModel being viewed
@path: The #GtkTreePath of a selected row
@iter: A #GtkTreeIter pointing to a selected row
@data: user data
<!-- ##### FUNCTION gtk_tree_selection_set_mode ##### -->
<para>
</para>
@selection:
@type:
<!-- ##### FUNCTION gtk_tree_selection_get_mode ##### -->
<para>
</para>
@selection:
@Returns:
<!-- ##### FUNCTION gtk_tree_selection_set_select_function ##### -->
<para>
</para>
@selection:
@func:
@data:
@destroy:
<!-- ##### FUNCTION gtk_tree_selection_get_select_function ##### -->
<para>
</para>
@selection:
@Returns:
<!-- ##### FUNCTION gtk_tree_selection_get_user_data ##### -->
<para>
</para>
@selection:
@Returns:
<!-- ##### FUNCTION gtk_tree_selection_get_tree_view ##### -->
<para>
</para>
@selection:
@Returns:
<!-- ##### FUNCTION gtk_tree_selection_get_selected ##### -->
<para>
</para>
@selection:
@model:
@iter:
@Returns:
<!-- ##### FUNCTION gtk_tree_selection_selected_foreach ##### -->
<para>
</para>
@selection:
@func:
@data:
<!-- ##### FUNCTION gtk_tree_selection_get_selected_rows ##### -->
<para>
</para>
@selection:
@model:
@Returns:
<!-- ##### FUNCTION gtk_tree_selection_count_selected_rows ##### -->
<para>
</para>
@selection:
@Returns:
<!-- ##### FUNCTION gtk_tree_selection_select_path ##### -->
<para>
</para>
@selection:
@path:
<!-- ##### FUNCTION gtk_tree_selection_unselect_path ##### -->
<para>
</para>
@selection:
@path:
<!-- ##### FUNCTION gtk_tree_selection_path_is_selected ##### -->
<para>
</para>
@selection:
@path:
@Returns:
<!-- ##### FUNCTION gtk_tree_selection_select_iter ##### -->
<para>
</para>
@selection:
@iter:
<!-- ##### FUNCTION gtk_tree_selection_unselect_iter ##### -->
<para>
</para>
@selection:
@iter:
<!-- ##### FUNCTION gtk_tree_selection_iter_is_selected ##### -->
<para>
</para>
@selection:
@iter:
@Returns:
<!-- ##### FUNCTION gtk_tree_selection_select_all ##### -->
<para>
</para>
@selection:
<!-- ##### FUNCTION gtk_tree_selection_unselect_all ##### -->
<para>
</para>
@selection:
<!-- ##### FUNCTION gtk_tree_selection_select_range ##### -->
<para>
</para>
@selection:
@start_path:
@end_path:
<!-- ##### FUNCTION gtk_tree_selection_unselect_range ##### -->
<para>
</para>
@selection:
@start_path:
@end_path:
@@ -0,0 +1,135 @@
<!-- ##### SECTION Title ##### -->
GtkTreeSortable
<!-- ##### SECTION Short_Description ##### -->
The interface for sortable models used by GtkTreeView
<!-- ##### SECTION Long_Description ##### -->
<para>
#GtkTreeSortable is an interface to be implemented by tree models which
support sorting. The #GtkTreeView uses the methods provided by this interface
to sort the model.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
#GtkTreeModel, #GtkTreeView
</para>
<!-- ##### SECTION Stability_Level ##### -->
<!-- ##### SECTION Image ##### -->
<!-- ##### STRUCT GtkTreeSortable ##### -->
<para>
</para>
<!-- ##### SIGNAL GtkTreeSortable::sort-column-changed ##### -->
<para>
</para>
@treesortable: the object which received the signal.
<!-- ##### STRUCT GtkTreeSortableIface ##### -->
<para>
</para>
@g_iface:
@sort_column_changed:
@get_sort_column_id:
@set_sort_column_id:
@set_sort_func:
@set_default_sort_func:
@has_default_sort_func:
<!-- ##### USER_FUNCTION GtkTreeIterCompareFunc ##### -->
<para>
A GtkTreeIterCompareFunc should return a negative integer, zero, or a positive
integer if @a sorts before @b, @a sorts with @b, or @a sorts after @b
respectively. If two iters compare as equal, their order in the sorted model
is undefined. In order to ensure that the #GtkTreeSortable behaves as
expected, the GtkTreeIterCompareFunc must define a partial order on
the model, i.e. it must be reflexive, antisymmetric and transitive.
</para>
<para>
For example, if @model is a product catalogue, then a compare function
for the "price" column could be one which returns
<literal>price_of(@a) - price_of(@b)</literal>.
</para>
@model: The #GtkTreeModel the comparison is within
@a: A #GtkTreeIter in @model
@b: Another #GtkTreeIter in @model
@user_data: Data passed when the compare func is assigned e.g. by
gtk_tree_sortable_set_sort_func()
@Returns: a negative integer, zero or a positive integer depending on whether
@a sorts before, with or after @b
<!-- ##### FUNCTION gtk_tree_sortable_sort_column_changed ##### -->
<para>
</para>
@sortable:
<!-- ##### FUNCTION gtk_tree_sortable_get_sort_column_id ##### -->
<para>
</para>
@sortable:
@sort_column_id:
@order:
@Returns:
<!-- ##### FUNCTION gtk_tree_sortable_set_sort_column_id ##### -->
<para>
</para>
@sortable:
@sort_column_id:
@order:
<!-- ##### FUNCTION gtk_tree_sortable_set_sort_func ##### -->
<para>
</para>
@sortable:
@sort_column_id:
@sort_func:
@user_data:
@destroy:
<!-- ##### FUNCTION gtk_tree_sortable_set_default_sort_func ##### -->
<para>
</para>
@sortable:
@sort_func:
@user_data:
@destroy:
<!-- ##### FUNCTION gtk_tree_sortable_has_default_sort_func ##### -->
<para>
</para>
@sortable:
@Returns:
+296
View File
@@ -0,0 +1,296 @@
<!-- ##### SECTION Title ##### -->
GtkTreeStore
<!-- ##### SECTION Short_Description ##### -->
A tree-like data structure that can be used with the GtkTreeView
<!-- ##### SECTION Long_Description ##### -->
<para>
The #GtkTreeStore object is a list model for use with a #GtkTreeView
widget. It implements the #GtkTreeModel interface, and consequentialy,
can use all of the methods available there. It also implements the
#GtkTreeSortable interface so it can be sorted by the view. Finally,
it also implements the tree <link linkend="gtktreednd">drag and
drop</link> interfaces.
</para>
<refsect2 id="GtkTreeStore-BUILDER-UI">
<title>GtkTreeStore as GtkBuildable</title>
<para>
The GtkTreeStore implementation of the GtkBuildable interface allows
to specify the model columns with a &lt;columns&gt; element that may
contain multiple &lt;column&gt; elements, each specifying one model
column. The "type" attribute specifies the data type for the column.
</para>
<example>
<title>A UI Definition fragment for a tree store</title>
<programlisting><![CDATA[
<object class="GtkTreeStore">
<columns>
<column type="gchararray"/>
<column type="gchararray"/>
<column type="gint"/>
</columns>
</object>
]]></programlisting>
</example>
</refsect2>
<!-- ##### SECTION See_Also ##### -->
<para>
#GtkTreeModel, #GtkTreeStore
</para>
<!-- ##### SECTION Stability_Level ##### -->
<!-- ##### SECTION Image ##### -->
<!-- ##### STRUCT GtkTreeStore ##### -->
<para>
</para>
<!-- ##### FUNCTION gtk_tree_store_new ##### -->
<para>
</para>
@n_columns:
@Varargs:
@Returns:
<!-- ##### FUNCTION gtk_tree_store_newv ##### -->
<para>
</para>
@n_columns:
@types:
@Returns:
<!-- ##### FUNCTION gtk_tree_store_set_column_types ##### -->
<para>
</para>
@tree_store:
@n_columns:
@types:
<!-- ##### FUNCTION gtk_tree_store_set_value ##### -->
<para>
</para>
@tree_store:
@iter:
@column:
@value:
<!-- ##### FUNCTION gtk_tree_store_set ##### -->
<para>
</para>
@tree_store:
@iter:
@Varargs:
<!-- ##### FUNCTION gtk_tree_store_set_valist ##### -->
<para>
</para>
@tree_store:
@iter:
@var_args:
<!-- ##### FUNCTION gtk_tree_store_set_valuesv ##### -->
<para>
</para>
@tree_store:
@iter:
@columns:
@values:
@n_values:
<!-- ##### FUNCTION gtk_tree_store_remove ##### -->
<para>
</para>
@tree_store:
@iter:
@Returns:
<!-- ##### FUNCTION gtk_tree_store_insert ##### -->
<para>
</para>
@tree_store:
@iter:
@parent:
@position:
<!-- ##### FUNCTION gtk_tree_store_insert_before ##### -->
<para>
</para>
@tree_store:
@iter:
@parent:
@sibling:
<!-- ##### FUNCTION gtk_tree_store_insert_after ##### -->
<para>
</para>
@tree_store:
@iter:
@parent:
@sibling:
<!-- ##### FUNCTION gtk_tree_store_insert_with_values ##### -->
<para>
</para>
@tree_store:
@iter:
@parent:
@position:
@Varargs:
<!-- ##### FUNCTION gtk_tree_store_insert_with_valuesv ##### -->
<para>
</para>
@tree_store:
@iter:
@parent:
@position:
@columns:
@values:
@n_values:
<!-- ##### FUNCTION gtk_tree_store_prepend ##### -->
<para>
</para>
@tree_store:
@iter:
@parent:
<!-- ##### FUNCTION gtk_tree_store_append ##### -->
<para>
</para>
@tree_store:
@iter:
@parent:
<!-- ##### FUNCTION gtk_tree_store_is_ancestor ##### -->
<para>
</para>
@tree_store:
@iter:
@descendant:
@Returns:
<!-- ##### FUNCTION gtk_tree_store_iter_depth ##### -->
<para>
</para>
@tree_store:
@iter:
@Returns:
<!-- ##### FUNCTION gtk_tree_store_clear ##### -->
<para>
</para>
@tree_store:
<!-- ##### FUNCTION gtk_tree_store_iter_is_valid ##### -->
<para>
</para>
@tree_store:
@iter:
@Returns:
<!-- ##### FUNCTION gtk_tree_store_reorder ##### -->
<para>
</para>
@tree_store:
@parent:
@new_order:
<!-- ##### FUNCTION gtk_tree_store_swap ##### -->
<para>
</para>
@tree_store:
@a:
@b:
<!-- ##### FUNCTION gtk_tree_store_move_before ##### -->
<para>
</para>
@tree_store:
@iter:
@position:
<!-- ##### FUNCTION gtk_tree_store_move_after ##### -->
<para>
</para>
@tree_store:
@iter:
@position:
+5
View File
@@ -367,6 +367,11 @@ internal GtkTreeSelection in UI definitions.
</para>
<!-- ##### ARG GtkTreeView:row-ending-details ##### -->
<para>
</para>
<!-- ##### ARG GtkTreeView:tree-line-pattern ##### -->
<para>
@@ -0,0 +1,624 @@
<!-- ##### SECTION Title ##### -->
GtkTreeViewColumn
<!-- ##### SECTION Short_Description ##### -->
A visible column in a GtkTreeView widget
<!-- ##### SECTION Long_Description ##### -->
<para>
The GtkTreeViewColumn object represents a visible column in a #GtkTreeView widget.
It allows to set properties of the column header, and functions as a holding pen for
the cell renderers which determine how the data in the column is displayed.
</para>
<para>
Please refer to the <link linkend="TreeWidget">tree widget conceptual overview</link>
for an overview of all the objects and data types related to the tree widget and how
they work together.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
#GtkTreeView, #GtkTreeSelection, #GtkTreeDnd, #GtkTreeMode, #GtkTreeSortable, #GtkTreeModelSort, #GtkListStore, #GtkTreeStore, #GtkCellRenderer, #GtkCellEditable, #GtkCellRendererPixbuf, #GtkCellRendererText, #GtkCellRendererToggle
</para>
<!-- ##### SECTION Stability_Level ##### -->
<!-- ##### SECTION Image ##### -->
<!-- ##### ENUM GtkTreeViewColumnSizing ##### -->
<para>
The sizing method the column uses to determine its width. Please note
that @GTK_TREE_VIEW_COLUMN_AUTOSIZE are inefficient for large views, and
can make columns appear choppy.
</para>
@GTK_TREE_VIEW_COLUMN_GROW_ONLY: Columns only get bigger in reaction to changes in the model
@GTK_TREE_VIEW_COLUMN_AUTOSIZE: Columns resize to be the optimal size everytime the model changes.
@GTK_TREE_VIEW_COLUMN_FIXED: Columns are a fixed numbers of pixels wide.
<!-- ##### USER_FUNCTION GtkTreeCellDataFunc ##### -->
<para>
A function to set the properties of a cell instead of just using the
straight mapping between the cell and the model. This is useful for
customizing the cell renderer. For example, a function might get an
integer from the @tree_model, and render it to the "text" attribute of
"cell" by converting it to its written equivilent. This is set by
calling gtk_tree_view_column_set_cell_data_func()
</para>
@tree_column: A #GtkTreeColumn
@cell: The #GtkCellRenderer that is being rendered by @tree_column
@tree_model: The #GtkTreeModel being rendered
@iter: A #GtkTreeIter of the current row rendered
@data: user data
<!-- ##### STRUCT GtkTreeViewColumn ##### -->
<para>
</para>
<!-- ##### SIGNAL GtkTreeViewColumn::clicked ##### -->
<para>
</para>
@treeviewcolumn: the object which received the signal.
<!-- ##### ARG GtkTreeViewColumn:alignment ##### -->
<para>
</para>
<!-- ##### ARG GtkTreeViewColumn:clickable ##### -->
<para>
</para>
<!-- ##### ARG GtkTreeViewColumn:expand ##### -->
<para>
</para>
<!-- ##### ARG GtkTreeViewColumn:fixed-width ##### -->
<para>
</para>
<!-- ##### ARG GtkTreeViewColumn:max-width ##### -->
<para>
</para>
<!-- ##### ARG GtkTreeViewColumn:min-width ##### -->
<para>
</para>
<!-- ##### ARG GtkTreeViewColumn:reorderable ##### -->
<para>
</para>
<!-- ##### ARG GtkTreeViewColumn:resizable ##### -->
<para>
</para>
<!-- ##### ARG GtkTreeViewColumn:sizing ##### -->
<para>
</para>
<!-- ##### ARG GtkTreeViewColumn:sort-column-id ##### -->
<para>
</para>
<!-- ##### ARG GtkTreeViewColumn:sort-indicator ##### -->
<para>
</para>
<!-- ##### ARG GtkTreeViewColumn:sort-order ##### -->
<para>
</para>
<!-- ##### ARG GtkTreeViewColumn:spacing ##### -->
<para>
</para>
<!-- ##### ARG GtkTreeViewColumn:title ##### -->
<para>
</para>
<!-- ##### ARG GtkTreeViewColumn:visible ##### -->
<para>
</para>
<!-- ##### ARG GtkTreeViewColumn:widget ##### -->
<para>
</para>
<!-- ##### ARG GtkTreeViewColumn:width ##### -->
<para>
</para>
<!-- ##### FUNCTION gtk_tree_view_column_new ##### -->
<para>
</para>
@void:
@Returns:
<!-- ##### FUNCTION gtk_tree_view_column_new_with_attributes ##### -->
<para>
</para>
@title:
@cell:
@Varargs:
@Returns:
<!-- ##### FUNCTION gtk_tree_view_column_pack_start ##### -->
<para>
</para>
@tree_column:
@cell:
@expand:
<!-- ##### FUNCTION gtk_tree_view_column_pack_end ##### -->
<para>
</para>
@tree_column:
@cell:
@expand:
<!-- ##### FUNCTION gtk_tree_view_column_clear ##### -->
<para>
</para>
@tree_column:
<!-- ##### FUNCTION gtk_tree_view_column_add_attribute ##### -->
<para>
</para>
@tree_column:
@cell_renderer:
@attribute:
@column:
<!-- ##### FUNCTION gtk_tree_view_column_set_attributes ##### -->
<para>
</para>
@tree_column:
@cell_renderer:
@Varargs:
<!-- ##### FUNCTION gtk_tree_view_column_set_cell_data_func ##### -->
<para>
</para>
@tree_column:
@cell_renderer:
@func:
@func_data:
@destroy:
<!-- ##### FUNCTION gtk_tree_view_column_clear_attributes ##### -->
<para>
</para>
@tree_column:
@cell_renderer:
<!-- ##### FUNCTION gtk_tree_view_column_set_spacing ##### -->
<para>
</para>
@tree_column:
@spacing:
<!-- ##### FUNCTION gtk_tree_view_column_get_spacing ##### -->
<para>
</para>
@tree_column:
@Returns:
<!-- ##### FUNCTION gtk_tree_view_column_set_visible ##### -->
<para>
</para>
@tree_column:
@visible:
<!-- ##### FUNCTION gtk_tree_view_column_get_visible ##### -->
<para>
</para>
@tree_column:
@Returns:
<!-- ##### FUNCTION gtk_tree_view_column_set_resizable ##### -->
<para>
</para>
@tree_column:
@resizable:
<!-- ##### FUNCTION gtk_tree_view_column_get_resizable ##### -->
<para>
</para>
@tree_column:
@Returns:
<!-- ##### FUNCTION gtk_tree_view_column_set_sizing ##### -->
<para>
</para>
@tree_column:
@type:
<!-- ##### FUNCTION gtk_tree_view_column_get_sizing ##### -->
<para>
</para>
@tree_column:
@Returns:
<!-- ##### FUNCTION gtk_tree_view_column_get_width ##### -->
<para>
</para>
@tree_column:
@Returns:
<!-- ##### FUNCTION gtk_tree_view_column_get_fixed_width ##### -->
<para>
</para>
@tree_column:
@Returns:
<!-- ##### FUNCTION gtk_tree_view_column_set_fixed_width ##### -->
<para>
</para>
@tree_column:
@fixed_width:
<!-- ##### FUNCTION gtk_tree_view_column_set_min_width ##### -->
<para>
</para>
@tree_column:
@min_width:
<!-- ##### FUNCTION gtk_tree_view_column_get_min_width ##### -->
<para>
</para>
@tree_column:
@Returns:
<!-- ##### FUNCTION gtk_tree_view_column_set_max_width ##### -->
<para>
</para>
@tree_column:
@max_width:
<!-- ##### FUNCTION gtk_tree_view_column_get_max_width ##### -->
<para>
</para>
@tree_column:
@Returns:
<!-- ##### FUNCTION gtk_tree_view_column_clicked ##### -->
<para>
</para>
@tree_column:
<!-- ##### FUNCTION gtk_tree_view_column_set_title ##### -->
<para>
</para>
@tree_column:
@title:
<!-- ##### FUNCTION gtk_tree_view_column_get_title ##### -->
<para>
</para>
@tree_column:
@Returns:
<!-- ##### FUNCTION gtk_tree_view_column_set_expand ##### -->
<para>
</para>
@tree_column:
@expand:
<!-- ##### FUNCTION gtk_tree_view_column_get_expand ##### -->
<para>
</para>
@tree_column:
@Returns:
<!-- ##### FUNCTION gtk_tree_view_column_set_clickable ##### -->
<para>
</para>
@tree_column:
@clickable:
<!-- ##### FUNCTION gtk_tree_view_column_get_clickable ##### -->
<para>
</para>
@tree_column:
@Returns:
<!-- ##### FUNCTION gtk_tree_view_column_set_widget ##### -->
<para>
</para>
@tree_column:
@widget:
<!-- ##### FUNCTION gtk_tree_view_column_get_widget ##### -->
<para>
</para>
@tree_column:
@Returns:
<!-- ##### FUNCTION gtk_tree_view_column_set_alignment ##### -->
<para>
</para>
@tree_column:
@xalign:
<!-- ##### FUNCTION gtk_tree_view_column_get_alignment ##### -->
<para>
</para>
@tree_column:
@Returns:
<!-- ##### FUNCTION gtk_tree_view_column_set_reorderable ##### -->
<para>
</para>
@tree_column:
@reorderable:
<!-- ##### FUNCTION gtk_tree_view_column_get_reorderable ##### -->
<para>
</para>
@tree_column:
@Returns:
<!-- ##### FUNCTION gtk_tree_view_column_set_sort_column_id ##### -->
<para>
</para>
@tree_column:
@sort_column_id:
<!-- ##### FUNCTION gtk_tree_view_column_get_sort_column_id ##### -->
<para>
</para>
@tree_column:
@Returns:
<!-- ##### FUNCTION gtk_tree_view_column_set_sort_indicator ##### -->
<para>
</para>
@tree_column:
@setting:
<!-- ##### FUNCTION gtk_tree_view_column_get_sort_indicator ##### -->
<para>
</para>
@tree_column:
@Returns:
<!-- ##### FUNCTION gtk_tree_view_column_set_sort_order ##### -->
<para>
</para>
@tree_column:
@order:
<!-- ##### FUNCTION gtk_tree_view_column_get_sort_order ##### -->
<para>
</para>
@tree_column:
@Returns:
<!-- ##### FUNCTION gtk_tree_view_column_cell_set_cell_data ##### -->
<para>
</para>
@tree_column:
@tree_model:
@iter:
@is_expander:
@is_expanded:
<!-- ##### FUNCTION gtk_tree_view_column_cell_get_size ##### -->
<para>
</para>
@tree_column:
@cell_area:
@x_offset:
@y_offset:
@width:
@height:
<!-- ##### FUNCTION gtk_tree_view_column_cell_get_position ##### -->
<para>
</para>
@tree_column:
@cell_renderer:
@start_pos:
@width:
@Returns:
<!-- ##### FUNCTION gtk_tree_view_column_cell_is_visible ##### -->
<para>
</para>
@tree_column:
@Returns:
<!-- ##### FUNCTION gtk_tree_view_column_focus_cell ##### -->
<para>
</para>
@tree_column:
@cell:
<!-- ##### FUNCTION gtk_tree_view_column_queue_resize ##### -->
<para>
</para>
@tree_column:
<!-- ##### FUNCTION gtk_tree_view_column_get_tree_view ##### -->
<para>
</para>
@tree_column:
@Returns:
+16 -16
View File
@@ -336,7 +336,7 @@ members and should not be accessed directly.
</para>
@manager:
@self:
@add_tearoffs:
@@ -345,7 +345,7 @@ members and should not be accessed directly.
</para>
@manager:
@self:
@Returns:
@@ -354,7 +354,7 @@ members and should not be accessed directly.
</para>
@manager:
@self:
@action_group:
@pos:
@@ -364,7 +364,7 @@ members and should not be accessed directly.
</para>
@manager:
@self:
@action_group:
@@ -373,7 +373,7 @@ members and should not be accessed directly.
</para>
@manager:
@self:
@Returns:
@@ -382,7 +382,7 @@ members and should not be accessed directly.
</para>
@manager:
@self:
@Returns:
@@ -391,7 +391,7 @@ members and should not be accessed directly.
</para>
@manager:
@self:
@path:
@Returns:
@@ -401,7 +401,7 @@ members and should not be accessed directly.
</para>
@manager:
@self:
@types:
@Returns:
@@ -411,7 +411,7 @@ members and should not be accessed directly.
</para>
@manager:
@self:
@path:
@Returns:
@@ -421,7 +421,7 @@ members and should not be accessed directly.
</para>
@manager:
@self:
@buffer:
@length:
@error:
@@ -433,7 +433,7 @@ members and should not be accessed directly.
</para>
@manager:
@self:
@filename:
@error:
@Returns:
@@ -444,7 +444,7 @@ members and should not be accessed directly.
</para>
@manager:
@self:
@Returns:
@@ -471,7 +471,7 @@ what UI element to create.
</para>
@manager:
@self:
@merge_id:
@path:
@name:
@@ -485,7 +485,7 @@ what UI element to create.
</para>
@manager:
@self:
@merge_id:
@@ -494,7 +494,7 @@ what UI element to create.
</para>
@manager:
@self:
@Returns:
@@ -503,6 +503,6 @@ what UI element to create.
</para>
@manager:
@self:
+4 -12
View File
@@ -282,21 +282,12 @@ create_combo_box_entry (void)
GtkWidget *widget;
GtkWidget *align;
GtkWidget *child;
GtkTreeModel *model;
gtk_rc_parse_string ("style \"combo-box-entry-style\" {\n"
" GtkComboBox::appears-as-list = 1\n"
"}\n"
"widget_class \"GtkComboBoxEntry\" style \"combo-box-entry-style\"\n" );
model = (GtkTreeModel *)gtk_list_store_new (1, G_TYPE_STRING);
widget = g_object_new (GTK_TYPE_COMBO_BOX,
"has-entry", TRUE,
"model", model,
"entry-text-column", 0,
NULL);
g_object_unref (model);
widget = gtk_combo_box_entry_new_text ();
child = gtk_bin_get_child (GTK_BIN (widget));
gtk_entry_set_text (GTK_ENTRY (child), "Combo Box Entry");
align = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
@@ -316,8 +307,8 @@ create_combo_box (void)
"}\n"
"widget_class \"GtkComboBox\" style \"combo-box-style\"\n" );
widget = gtk_combo_box_text_new ();
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (widget), "Combo Box");
widget = gtk_combo_box_new_text ();
gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "Combo Box");
gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 0);
align = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
gtk_container_add (GTK_CONTAINER (align), widget);
@@ -928,6 +919,7 @@ create_statusbar (void)
widget = gtk_statusbar_new ();
align = gtk_alignment_new (0.5, 1.0, 1.0, 0.0);
gtk_container_add (GTK_CONTAINER (align), widget);
gtk_statusbar_set_has_resize_grip (GTK_STATUSBAR (widget), TRUE);
gtk_statusbar_push (GTK_STATUSBAR (widget), 0, "Hold on...");
gtk_box_pack_end (GTK_BOX (vbox), align, FALSE, FALSE, 0);
+78
View File
@@ -0,0 +1,78 @@
include $(top_srcdir)/Makefile.decl
.PHONY: html pdf
EXTRA_DIST += \
gtk-tut.sgml \
images/arrow.png \
images/aspectframe.png \
images/base.png \
images/buttonbox.png \
images/buttons.png \
images/calendar.png \
images/colorsel.png \
images/entry.png \
images/eventbox.png \
images/filesel.png \
images/fixed.png \
images/frame.png \
images/gtkdial.png \
images/helloworld.png \
images/helloworld2.png \
images/label.png \
images/menu.png \
images/notebook.png \
images/packbox1.png \
images/packbox2.png \
images/paned.png \
images/progressbar.png \
images/radiobuttons.png \
images/rangewidgets.png \
images/rulers.png \
images/scribble.png \
images/scrolledwin.png \
images/spinbutton.png \
images/statusbar.png \
images/table.png \
images/tictactoe.png
if HAVE_DOCBOOK
html: gtk-tut.sgml
if test -w $(srcdir); then \
(cd $(srcdir); \
db2html gtk-tut.sgml; \
test -d html && rm -r html; \
mv gtk-tut html; \
mkdir html/images; \
cp images/*.png html/images); \
fi
pdf: gtk-tut.sgml
if test -w $(srcdir); then \
(cd $(srcdir); db2pdf gtk-tut.sgml); \
fi
all-local: html
dist-hook: html
cp -Rp $(srcdir)/html $(distdir)
else
html:
echo "***"
echo "*** Warning: Tutorial not built"
echo "***"
pdf:
echo "***"
echo "*** Warning: Tutorial not built"
echo "***"
dist-hook:
echo "***"
echo "*** Warning: Tutorial not built"
echo "*** DISTRIBUTION IS INCOMPLETE"
echo "***"
endif
-include $(top_srcdir)/git.mk
+16080
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

File diff suppressed because it is too large Load Diff
Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

File diff suppressed because it is too large Load Diff
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

File diff suppressed because it is too large Load Diff
Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

File diff suppressed because it is too large Load Diff
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

File diff suppressed because it is too large Load Diff
Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

File diff suppressed because it is too large Load Diff
Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

File diff suppressed because it is too large Load Diff
Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

File diff suppressed because it is too large Load Diff
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

File diff suppressed because it is too large Load Diff
Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

File diff suppressed because it is too large Load Diff
Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

File diff suppressed because it is too large Load Diff
Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

File diff suppressed because it is too large Load Diff
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

+914
View File
@@ -0,0 +1,914 @@
%!PS-Adobe-3.0 EPSF-3.0
%%Creator: (ImageMagick)
%%Title: (helloworld.eps)
%%CreationDate: (Sat Aug 24 13:30:10 2002)
%%BoundingBox: 0 0 106 72
%%DocumentData: Clean7Bit
%%LanguageLevel: 1
%%Pages: 1
%%EndComments
%%BeginDefaults
%%EndDefaults
%%BeginProlog
%
% Display a color image. The image is displayed in color on
% Postscript viewers or printers that support color, otherwise
% it is displayed as grayscale.
%
/DirectClassPacket
{
%
% Get a DirectClass packet.
%
% Parameters:
% red.
% green.
% blue.
% length: number of pixels minus one of this color (optional).
%
currentfile color_packet readhexstring pop pop
compression 0 eq
{
/number_pixels 3 def
}
{
currentfile byte readhexstring pop 0 get
/number_pixels exch 1 add 3 mul def
} ifelse
0 3 number_pixels 1 sub
{
pixels exch color_packet putinterval
} for
pixels 0 number_pixels getinterval
} bind def
/DirectClassImage
{
%
% Display a DirectClass image.
%
systemdict /colorimage known
{
columns rows 8
[
columns 0 0
rows neg 0 rows
]
{ DirectClassPacket } false 3 colorimage
}
{
%
% No colorimage operator; convert to grayscale.
%
columns rows 8
[
columns 0 0
rows neg 0 rows
]
{ GrayDirectClassPacket } image
} ifelse
} bind def
/GrayDirectClassPacket
{
%
% Get a DirectClass packet; convert to grayscale.
%
% Parameters:
% red
% green
% blue
% length: number of pixels minus one of this color (optional).
%
currentfile color_packet readhexstring pop pop
color_packet 0 get 0.299 mul
color_packet 1 get 0.587 mul add
color_packet 2 get 0.114 mul add
cvi
/gray_packet exch def
compression 0 eq
{
/number_pixels 1 def
}
{
currentfile byte readhexstring pop 0 get
/number_pixels exch 1 add def
} ifelse
0 1 number_pixels 1 sub
{
pixels exch gray_packet put
} for
pixels 0 number_pixels getinterval
} bind def
/GrayPseudoClassPacket
{
%
% Get a PseudoClass packet; convert to grayscale.
%
% Parameters:
% index: index into the colormap.
% length: number of pixels minus one of this color (optional).
%
currentfile byte readhexstring pop 0 get
/offset exch 3 mul def
/color_packet colormap offset 3 getinterval def
color_packet 0 get 0.299 mul
color_packet 1 get 0.587 mul add
color_packet 2 get 0.114 mul add
cvi
/gray_packet exch def
compression 0 eq
{
/number_pixels 1 def
}
{
currentfile byte readhexstring pop 0 get
/number_pixels exch 1 add def
} ifelse
0 1 number_pixels 1 sub
{
pixels exch gray_packet put
} for
pixels 0 number_pixels getinterval
} bind def
/PseudoClassPacket
{
%
% Get a PseudoClass packet.
%
% Parameters:
% index: index into the colormap.
% length: number of pixels minus one of this color (optional).
%
currentfile byte readhexstring pop 0 get
/offset exch 3 mul def
/color_packet colormap offset 3 getinterval def
compression 0 eq
{
/number_pixels 3 def
}
{
currentfile byte readhexstring pop 0 get
/number_pixels exch 1 add 3 mul def
} ifelse
0 3 number_pixels 1 sub
{
pixels exch color_packet putinterval
} for
pixels 0 number_pixels getinterval
} bind def
/PseudoClassImage
{
%
% Display a PseudoClass image.
%
% Parameters:
% class: 0-PseudoClass or 1-Grayscale.
%
currentfile buffer readline pop
token pop /class exch def pop
class 0 gt
{
currentfile buffer readline pop
token pop /depth exch def pop
/grays columns 8 add depth sub depth mul 8 idiv string def
columns rows depth
[
columns 0 0
rows neg 0 rows
]
{ currentfile grays readhexstring pop } image
}
{
%
% Parameters:
% colors: number of colors in the colormap.
% colormap: red, green, blue color packets.
%
currentfile buffer readline pop
token pop /colors exch def pop
/colors colors 3 mul def
/colormap colors string def
currentfile colormap readhexstring pop pop
systemdict /colorimage known
{
columns rows 8
[
columns 0 0
rows neg 0 rows
]
{ PseudoClassPacket } false 3 colorimage
}
{
%
% No colorimage operator; convert to grayscale.
%
columns rows 8
[
columns 0 0
rows neg 0 rows
]
{ GrayPseudoClassPacket } image
} ifelse
} ifelse
} bind def
/DisplayImage
{
%
% Display a DirectClass or PseudoClass image.
%
% Parameters:
% x & y translation.
% x & y scale.
% label pointsize.
% image label.
% image columns & rows.
% class: 0-DirectClass or 1-PseudoClass.
% compression: 0-none or 1-RunlengthEncoded.
% hex color packets.
%
gsave
/buffer 512 string def
/byte 1 string def
/color_packet 3 string def
/pixels 768 string def
currentfile buffer readline pop
token pop /x exch def
token pop /y exch def pop
x y translate
currentfile buffer readline pop
token pop /x exch def
token pop /y exch def pop
currentfile buffer readline pop
token pop /pointsize exch def pop
/Times-Roman findfont pointsize scalefont setfont
x y scale
currentfile buffer readline pop
token pop /columns exch def
token pop /rows exch def pop
currentfile buffer readline pop
token pop /class exch def pop
currentfile buffer readline pop
token pop /compression exch def pop
class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
grestore
} bind def
%%EndProlog
%%Page: 1 1
%%PageBoundingBox: 0 0 106 72
userdict begin
DisplayImage
0 0
106 72
12.000000
106 72
0
0
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000094857b000000c5c2ee
9495d57b79cd6a6dc56a6dc56a6dc56a6dc56a6dc56a6dc56a6dc56a6dc56a6dc56a6dc5
6a6dc56a6dc5dedadededadededadededadededadededadededadededadededadededade
dedadededadededadededadededadededadededadededadededadededadededadededade
dedadededadededadededadededadededadededadededadededadededadededadededade
dedadededadededadededadededadededadededadededadededadededadededadededade
dedadededadededadededadededadededadededadededadededadededadededadededade
dedadededadededadededadededadededadededadededadededadededadededadededade
dedadededadededadededadededadededadededadededadededadededadededadededade
dedadededadededadededadededadecdcecd0000000000000000009495d53134b43134b4
3134b43134b43130ac3130ac3130ac292cac292cac292cac292cac292cac292cac292cac
dededededededededededededededededededededededededededededededededededede
dededededededededededededededededededededededededededededededededededede
dededededededededededededededededededededededededededededededededededede
dededededededededededededededededededededededededededededededededededede
dededededededededee6e2e6e6e2e6e6e2e6e6e2e6e6e2e6e6e2e6e6e2e6e6e2e6e6e2e6
e6e2e6e6e2e6e6e2e6e6e2e6e6e2e6e6e2e6e6e2e6e6e2e6e6e2e6e6e2e6dededededede
dededededededededededededededededededededededededededededededededededede
dededee6e2e6e6e2e6cdcacd0000000000000000007b79cd3134b43130ac3130ac292cac
2024ac181cac1818a41818a41818a41818a41818a41818a41818a41818a41818a41818a4
181cac2024aceeeaeeeeeaeeeeeaeeeeeaeeeeeaeeeeeaeeeeeaeeeeeeeeeeeeeeeeeeee
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeaeeeeeaeee6e2e6dededededade
dedadededadededadededadededadededadededadededadededadedededee6e2e6eeeeee
eeeeeeeeeaeeeeeaeee6e2e6dededededadededadededadededadededadededadededade
dedadededadededadedededee6e2e6eeeeeeeeeeeeeeeaeeeeeaeee6e2e6dededededade
dedadededadededadededadededadededadededadededadededadedededee6e2e6eeeaee
eeeeeec5c2c50000000000000000006265c5292cac2928ac2024ac00005200005200004a
00004a00004a00004a00004a00004a00004a00004a00004a00004a00004a00004a080ca4
e6e2e6dededededadededadededadedededee6e2e6eeeaeeeeeeeeeeeeeeeeeeeeeeeeee
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6e6e67371736a696a6265626261625a5d5a5a5d5a
5a5d5a5a5d5a5a5d5a5a5d5a5a5d5a5a5d5a626162626562d5d6d5eeeeeeeeeeeee6e6e6
7371736a696a6265626261625a5d5a5a5d5a5a5d5a5a5d5a5a5d5a5a5d5a5a5d5a5a5d5a
626162626562d5d6d5eeeeeeeeeeeee6e6e67371736a696a6265626261625a5d5a5a5d5a
5a5d5a5a5d5a5a5d5a5a5d5a5a5d5a5a5d5a626162626562d5d6d5e6e2e6eeeaeebdbabd
0000000000000000005a5dc52024ac2020ac1818a400004abdbae68385d56265c55250bd
5250bd5250bd5250bd5250bd5250bd5250bd5250bd2024ac00004100009400007b000073
00007300006a000073000073cdcacdd5d6d5dededee6e2e6e6e2e6e6e2e6e6e2e6e6e2e6
e6e2e6e6e2e6e6e2e6e6e2e6e6e2e6e6e2e6e6e2e6e6e2e6e6e2e6e6e2e6e6e2e6e6e2e6
e6e2e6e6e2e6e6e2e6d5d6d5626562ffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffcdcecd525052b4b6b4e6e2e6e6e2e6d5d6d5626562ffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcdcecd525052
b4b6b4e6e2e6e6e2e6d5d6d5626562ffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffcdcecd525052b4b6b4cdcacdd5d6d5b4aeac000000000000
0000005a59bd181cac1818a40808a400004a8381cd181ca4181cac181cac181cac181cac
181ca4181cac181cac181cac181cac00006200003100007bbdbae68b89d56a69c55a59bd
181ca4000062acaeacc5c2c5cdcecdd5d6d5dedadededadededadededadededadededade
dedadededadededadededadededadededadededadededadededadededadededadededade
dedadec5c6c55a5d5affffffdededededededededededededededededededededededede
dededededede7b7d7b4140419c9d9cdedadededadec5c6c55a5d5affffffdededededede
dededededededededededededededededededededededede7b7d7b4140419c9d9cdedade
dedadec5c6c55a5d5affffffdededededededededededededededededededededededede
dededededede7b7d7b4140419c9d9cbdbabdcdcacda4a5a40000000000000000005250bd
1014a4080ca400009c0000415255bd1014a41014a40000001014a41014a41010a41014a4
0000001014a41014a40000620000290000738381cd1014a41014a41014a400007300004a
9c999cb4b6b4c5c6c5d5d2d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5bdbebd
525552ffffffdedadededadededadededadededadededadededadededadededadededade
7b7d7b3938398b8d8bd5d6d5d5d6d5bdbebd525552ffffffdedadededadededadededade
dedadededadededadededadededadededade7b7d7b3938398b8d8bd5d6d5d5d6d5bdbebd
525552ffffffdedadededadededadededadededadededadededadededadededadededade
7b7d7b3938398b8d8bacaeacc5c6c59c999c0000000000000000004a48bd080ca400049c
000094000041393cb40808a4000000000000000000080ca40808a4000000000000000000
080ca400005a00002000006a5a5dc5080ca4080ca40808a400006a0000418b8d8bacaaac
bdbebdcdcecdd5d2d5d5d2d5d5d2d5d5d2d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5bdbebd525552ffffff
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d57b7d7b313031
838583d5d6d5d5d6d5bdbebd525552ffffffd5d6d5d5d6d5000000000000000000000000
000000000000d5d6d5d5d6d57b7d7b313031838583d5d6d5d5d6d5bdbebd525552ffffff
d5d6d5d5d6d5000000000000000000000000000000000000d5d6d5d5d6d57b7d7b313031
838583acaaacc5c2c59491940000000000000000004140b400009c00009c00008b000039
3134b400009c00009c00000000000000000000000000000000000000009c00009c00005a
0000200000624140b400009c00009c00009c00006a0000397b7d7b9c999cacaeacbdbebd
c5c2c5c5c6c5cdcecdd5d2d5d5d2d5d5d2d5d5d2d5d5d2d5d5d2d5d5d2d5d5d2d5d5d2d5
d5d2d5d5d2d5d5d2d5d5d2d5d5d2d5d5d2d5d5d2d5bdbabd525052ffffffd5d2d5d5d2d5
d5d2d5d5d2d5d5d2d5d5d2d5d5d2d5d5d2d5d5d2d5d5d2d57b7d7b313031838583d5d2d5
d5d2d5bdbabd525052ffffffd5d2d5d5d2d5000000000000000000000000000000000000
d5d2d5d5d2d57b7d7b313031838583d5d2d5d5d2d5bdbabd525052ffffffd5d2d5d5d2d5
000000000000000000000000000000000000d5d2d5d5d2d57b7d7b313031838583a4a5a4
bdbebd8b898b0000000000000000004140b400009400009400008b000039292cac000094
00009400009400000000000000000000000000009400009400009400005200002000005a
00009400006200006200006200006200003900004100005200005a00006200006abdbabd
c5c2c5cdcacdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecd
cdcecdcdcecdcdcecdcdcecdcdcecdb4b6b4525052ffffffcdcecdcdcecdcdcecdcdcecd
cdcecdcdcecdcdcecdcdcecdcdcecdcdcecd7b7d7b313031838183cdcecdcdcecdb4b6b4
525052ffffffcdcecdcdcecd000000000000000000000000000000000000cdcecdcdcecd
7b7d7b313031838183cdcecdcdcecdb4b6b4525052ffffffcdcecdcdcecdcdcecdcdcecd
cdcecdcdcecdcdcecdcdcecdcdcecdcdcecd7b7d7b313031838183a4a5a4bdbebd838183
0000000000000000004140b400009400008b0000830000392024ac00008b00008b00008b
00000000000000000000000000008b00008b00008b00005200002000005a000039000039
000039000031000039acaede7371c54a48bd3134b400008b00005aa4a5a4b4b6b4c5c2c5
cdcacdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecd
cdcecdcdcecdcdcecdb4b6b4525052ffffffcdcacdcdcacdcdcacdcdcacdcdcacdcdcacd
cdcacdcdcacdcdcacdcdcacd7b7d7b292c29838183cdcecdcdcecdb4b6b4525052ffffff
cdcacdcdcacd000000cdcacdcdcacdcdcacdcdcacd000000cdcacdcdcacd7b7d7b292c29
838183cdcecdcdcecdb4b6b4525052ffffffcdcacdcdcacdcdcacdcdcacdcdcacdcdcacd
cdcacdcdcacdcdcacdcdcacd7b7d7b292c29838183a4a1a4bdbebd7b7d7b000000000000
0000004140b400009400008300007b000031181cac00008b00008b000000000000000000
00000000000000000000008b00008b0000520000200000520000396265626a6d6a737173
0000416a69c500008b00008b00008b00006200004a949194acaaacbdbabdc5c6c5cdcacd
cdcacdcdcacdcdcacdcdcacdcdcacdcdcacdcdcacdcdcacdcdcacdcdcacdcdcacdcdcacd
cdcacdb4b2b44a4c4affffffc5c6c5c5c6c5000000000000000000000000000000000000
c5c6c5c5c6c57b7d7b292c297b7d7bcdcacdcdcacdb4b2b44a4c4affffffc5c6c5c5c6c5
000000c5c6c5c5c6c5c5c6c5c5c6c5000000c5c6c5c5c6c57b7d7b292c297b7d7bcdcacd
cdcacdb4b2b44a4c4affffffc5c6c5c5c6c5c5c6c5c5c6c5c5c6c5c5c6c5c5c6c5c5c6c5
c5c6c5c5c6c57b7d7b292c297b7d7b9c9d9cbdbebd7b7d7b0000000000000000004140b4
0000940000830000730000311014a4000083000000000000000000000083000083000000
00000000000000008300004a0000180000520000316a696a7b797b83818300004a3938b4
00008300008300008300005a0000398381839c999cacaeacbdbabdbdbebdbdbebdc5c2c5
c5c2c5c5c2c5bdbebdbdbebdbdbebdbdbebdbdbebdbdbebdc5c2c5c5c2c5c5c2c5acaeac
4a4c4affffffc5c2c5c5c2c5000000000000000000000000000000000000c5c2c5c5c2c5
7b7d7b292c297b797bc5c2c5c5c2c5acaeac4a4c4affffffc5c2c5c5c2c5000000000000
000000000000000000000000c5c2c5c5c2c57b7d7b292c297b797bc5c2c5c5c2c5acaeac
4a4c4affffffc5c2c5c5c2c5c5c2c5c5c2c5c5c2c5c5c2c5c5c2c5c5c2c5c5c2c5c5c2c5
7b7d7b292c297b797b9c999cbdbebd7b7d7b0000000000000000004140b400009400007b
0000730000311010a400007b000083000000000083000083000083000083000000000083
00007b00004a0000180000520000316a696a7b797b83818300004a181ca400008300007b
00008300005a0000317371738b898b9c9d9cacaaacacaeacb4b2b4b4b6b4b4b6b4b4b6b4
b4b2b4acaeacacaeacacaeacacaeacacaeacbdbebdbdbebdbdbebda4a5a44a484affffff
bdbebdbdbebdbdbebdbdbebdbdbebdbdbebdbdbebdbdbebdbdbebdbdbebd7b7d7b292829
737573bdbebdbdbebda4a5a44a484affffffbdbebdbdbebdbdbebdbdbebdbdbebdbdbebd
bdbebdbdbebdbdbebdbdbebd7b7d7b292829737573bdbebdbdbebda4a5a44a484affffff
bdbebdbdbebdbdbebdbdbebdbdbebdbdbebdbdbebdbdbebdbdbebdbdbebd7b7d7b292829
7375739c999cbdbebd7b7d7b0000000000000000004140b400009400007300006a000031
08089c00007b00007b00007b00007b00007b00007b00007b00007b00007b00007b000041
00001800004a00002900003900004100004a00004100007b000052000052000052000052
00003100003900004a00005200005a00005aa4a1a4acaaacacaaac00006200006200005a
00005a00005a00005a00005ab4b6b4b4b6b4b4b6b4a4a1a44a484affffffbdbabdbdbabd
bdbabdbdbabdbdbabdbdbabdbdbabdbdbabdbdbabdbdbabd7b7d7b292829737173b4b6b4
b4b6b4a4a1a44a484affffffbdbabdbdbabdbdbabdbdbabdbdbabdbdbabdbdbabdbdbabd
bdbabdbdbabd7b7d7b292829737173b4b6b4b4b6b4a4a1a44a484affffffbdbabdbdbabd
bdbabdbdbabdbdbabdbdbabdbdbabdbdbabdbdbabdbdbabd7b7d7b2928297371739c9d9c
bdbebd7b7d7b0000000000000000004140b400009400007300006a000031000073000041
00004100004100004100004100004100004100004100004100004100004100001800004a
080ca4080ca4080ca4080ca40000730000310000310000310000290000319c9dde5255bd
2024ac080ca400007300004a8b898b9495949c999c00005a9c9dde5255bd2024ac080ca4
00007300004aacaeacacaeacacaeac9c999c414441cdcecd7b7d7b7b7d7b7b7d7b7b7d7b
7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b292c29737173acaeacacaeac9c999c
414441cdcecd7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b
7b7d7b292c29737173acaeacacaeac9c999c414441cdcecd7b7d7b7b7d7b7b7d7b7b7d7b
7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b292c29737173a4a5a4bdbebd7b7d7b
0000000000000000004140b400009400007300006a000031000029000020000018000018
000018000018000018000018000018000018000018000018000020000052000073000073
0000730000730000520000315255525a595a5a5d5a0000315255bd000073000073000073
0000520000397b797b8b898b8b8d8b0000525255bd000073000073000073000052000039
a4a5a4a4a5a4a4a5a4949594414441393c39313031292829202420202420202420202420
2024202024202024202024202928293130317b797ba4a5a4a4a5a4949594414441393c39
313031292829202420202420202420202420202420202420202420202420292829313031
7b797ba4a5a4a4a5a4949594414441393c39313031292829202420202420202420202420
2024202024202024202024202928293130317b797bb4b6b4c5c2c57b7d7b000000000000
0000004140b400009400006a00006a00006200005a00005200004a000041000041000041
00004100004100004100004100004100004a00005200005a000073000073000073000073
00004a0000295a595a6265626a696a000039181ca400007300007300007300004a000031
6a696a7b7d7b83818300004a181ca400007300007300007300004a0000319c9d9c9c9d9c
9c9d9c9495948b8d8b7b7d7b7371736a696a626562626162626162626162626162626162
6261626265626a696a7371737b7d7b9c9d9c9c9d9c9495948b8d8b7b7d7b7371736a696a
6265626261626261626261626261626261626261626265626a696a7371737b7d7b9c9d9c
9c9d9c9495948b8d8b7b7d7b7371736a696a626562626162626162626162626162626162
6261626265626a696a7371737b7d7bc5c6c5c5c6c57b7d7b0000000000000000004140b4
00009400006a94897b00006a00006a00006a00006a00006a00006a00006a00006a00006a
00006a00006a00006a00006a00006a00006a00006a00006a00006a00006a00004a000029
5a5d5a6a6d6a73717300004100009c00006a00006a00006a00004a000029626162737573
7b7d7b00004a00009c00006a00006a00006a00004a000029949594949594949594949594
949594949594949594949594949594949594949594949594949594949594949594949594
949594949594949594949594949594949594949594949594949594949594949594949594
949594949594949594949594949594949594949594949594949594949594949594949594
949594949594949594949594949594949594949594949594949594949594949594949594
949594949594949594d5d6d5cdcacd7b7d7b0000000000000000004140b400009400006a
94897b00004a00004a00004a00004a00004a00004a00004a00004a00004a00004a00004a
00004a00004a00004a00004a00004a00004a00004a00004a00004a000029525552626562
6a696a00003900006a00004a00004a00004a00004a0000295a595a6265626a696a000039
00006a00004a00004a00004a00004a0000297b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b
7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b
7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b
7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b
7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b
7b7d7be6e6e6cdcecd7b7d7b0000000000000000004140b400009400006a948d7b000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000eeeeee
cdcecd7b7d7b0000000000000000004140b4000094000073000000d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b
0000000000000000004140b4000094000073000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b000000000000
0000004140b4000094000073000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b0000000000000000004140b4
00009400006a000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b0000000000000000004140b400009400006a
000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
000000eeeeeecdcecd7b7d7b0000000000000000004140b400009400006a000000d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeee
cdcecd7b7d7b0000000000000000004140b400009400006a000000d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b
0000000000000000004140b400009400006a000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b000000000000
0000004140b400009400006a000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b0000000000000000004140b4
00009400006a000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b0000000000000000004140b400009400006a
000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5ffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffd5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
000000eeeeeecdcecd7b7d7b0000000000000000004140b400009400006a000000d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5ffffffd5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeee
cdcecd7b7d7b0000000000000000004140b400009400006a000000d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5ffffffd5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5949594000000d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b
0000000000000000004140b400009400006a000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5ffffffd5d6d5d5d6d5000000d5d6d5000000d5d6d5
000000d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5
000000d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5
000000d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5
000000d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5
000000d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5
000000d5d6d5000000d5d6d5000000d5d6d5949594000000d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b000000000000
0000004140b400009400006a000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5ffffffd5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5949594000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b0000000000000000004140b4
00009400006a000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5ffffffd5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
000000d5d6d5949594000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b0000000000000000004140b400009400006a
000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5ffffff
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
949594000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
000000eeeeeecdcecd7b7d7b0000000000000000004140b400009400006a000000d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5ffffffd5d6d5d5d6d5
000000d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5000000d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
000000d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5000000d5d6d5949594000000
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeee
cdcecd7b7d7b0000000000000000004140b400009400006a000000d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5ffffffd5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000d5d6d5
d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5d5d6d5949594000000d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b
0000000000000000004140b400009400006a000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5ffffffd5d6d5d5d6d5000000d5d6d5d5d6d5000000
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5000000000000000000
d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5000000000000
000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5
000000d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5000000000000000000d5d6d5
d5d6d5d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5d5d6d5d5d6d5000000000000
d5d6d5000000d5d6d5d5d6d5000000d5d6d5949594000000d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b000000000000
0000004140b400009400006a000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5ffffffd5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5000000d5d6d5
d5d6d5000000d5d6d5d5d6d5000000d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5000000
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5000000d5d6d5
d5d6d5000000d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5
000000000000d5d6d5d5d6d5000000d5d6d5d5d6d5000000d5d6d5d5d6d5000000000000
d5d6d5d5d6d5d5d6d5d5d6d5949594000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b0000000000000000004140b4
00009400006a000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5ffffffd5d6d5d5d6d5000000d5d6d5d5d6d5000000000000000000000000000000
000000000000d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5000000
d5d6d5d5d6d5000000d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000
d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5000000d5d6d5
d5d6d5d5d6d5000000d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5
000000d5d6d5949594000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b0000000000000000004140b400009400006a
000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5ffffff
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000
d5d6d5d5d6d5000000000000000000000000000000d5d6d5d5d6d5000000d5d6d5d5d6d5
000000d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5d5d6d5
d5d6d5000000d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5
000000d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5d5d6d5
949594000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
000000eeeeeecdcecd7b7d7b0000000000000000004140b400009400006a000000d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5ffffffd5d6d5d5d6d5
000000d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5
000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5000000d5d6d5
d5d6d5000000d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5d5d6d5000000
d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5000000d5d6d5
d5d6d5000000d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5000000d5d6d5949594000000
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeee
cdcecd7b7d7b0000000000000000004140b400009400006a000000d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5ffffffd5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5000000d5d6d5
d5d6d5d5d6d5000000d5d6d5d5d6d5000000d5d6d5d5d6d5000000d5d6d5d5d6d5000000
d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
000000d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5
d5d6d5000000d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5000000
d5d6d5d5d6d5000000000000d5d6d5d5d6d5d5d6d5d5d6d5949594000000d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b
0000000000000000004140b400009400006a000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5ffffffd5d6d5d5d6d5000000d5d6d5d5d6d5000000
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5000000000000000000
d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5000000000000
000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000d5d6d5
d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000000000000000d5d6d5
d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5000000000000
d5d6d5000000d5d6d5d5d6d5000000d5d6d5949594000000d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b000000000000
0000004140b400009400006a000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5ffffffd5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5949594000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b0000000000000000004140b4
00009400006a000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5ffffffd5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
000000d5d6d5949594000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b0000000000000000004140b400009400006a
000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5ffffff
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
949594000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
000000eeeeeecdcecd7b7d7b0000000000000000004140b400009400006a000000d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5ffffffd5d6d5d5d6d5
000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000d5d6d5949594000000
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeee
cdcecd7b7d7b0000000000000000004140b400009400006a000000d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5ffffffd5d6d5d5d6d5d5d6d5000000
d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000
d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000
d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000
d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000
d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000
d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5d5d6d5949594000000d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b
0000000000000000004140b400009400006a000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5ffffffd5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5949594000000d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b000000000000
0000004140b400009400006a000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5ffffffd5d6d5949594949594949594949594949594949594949594
949594949594949594949594949594949594949594949594949594949594949594949594
949594949594949594949594949594949594949594949594949594949594949594949594
949594949594949594949594949594949594949594949594949594949594949594949594
949594949594949594949594949594949594949594949594949594949594949594949594
949594949594949594949594949594949594949594949594949594949594949594949594
949594949594949594949594949594000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b0000000000000000004140b4
00009400006a000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5ffffff000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b0000000000000000004140b400009400006a
000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
000000eeeeeecdcecd7b7d7b0000000000000000004140b400009400006a000000d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeee
cdcecd7b7d7b0000000000000000004140b400009400006a000000d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b
0000000000000000004140b400009400006a000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b000000000000
0000004140b400009400006a000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b0000000000000000004140b4
00009400006a000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b0000000000000000004140b400009400006a
000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
000000eeeeeecdcecd7b7d7b0000000000000000004140b400009400006a000000d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeee
cdcecd7b7d7b0000000000000000004140b400009400006a000000d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b
0000000000000000004140b400009400006a000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b000000000000
0000004140b400009400006a000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000eeeeeecdcecd7b7d7b0000000000000000004140b4
0000940000944140b44140b44140b44140b44140b44140b44140b44140b44140b44140b4
4140b44140b44140b44140b44140b44140b44140b44140b44140b44140b44140b44140b4
4140b44140b44140b44140b44140b44140b44140b44140b44140b44140b44140b44140b4
4140b44140b44140b44140b400009400004a8b8d8bb4b6b4d5d6d500004a4140b44140b4
00009400004a8b8d8bb4b6b4d5d6d500004a4140b44140b400009400004a8b8d8bb4b6b4
d5d6d5e6e6e6eeeaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
eeeeeeeeeeeeeeeeeeeeeeeecdcecd7b7d7b0000000000000000004140b4000094000094
000094000094000094000094000094000094000094000094000094000094000094000094
000094000094000094000094000094000094000094000094000094000094000094000094
000094000094000094000094000094000094000094000094000094000094000094000094
00009400009400006a0000397b797b9c9d9cb4b6b40000394140b400009400006a000039
7b797b9c9d9cb4b6b40000394140b400009400006a0000397b797b9c9d9cb4b6b4c5c6c5
cdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecd
cdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecd
cdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecd
cdcecdcdcecdcdcecd7b7d7b00000000000000000000009400006a00006a00006a00006a
00006a00006a00006a00006a00006a00006a00006a00006a00006a00006a00006a00006a
00006a00006a00006a00006a00006a00006a00006a00006a00006a00006a00006a00006a
00006a00006a00006a00006a00006a00006a00006a00006a00006a00006a00006a00006a
00006a0000204a484a62616273717300002000009400006a00006a0000204a484a626162
73717300002000009400006a00006a0000204a484a6261627371737b797b7b7d7b7b7d7b
7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b
7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b
7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b
7b7d7b7b7d7b000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
00000000000094897b000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
end
%%PageTrailer
%%Trailer
%%EOF
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Some files were not shown because too many files have changed in this diff Show More