Clean up trailing whitespace

This commit is contained in:
Daemonratte 2026-05-03 15:16:52 +02:00
commit 42a31c8576
792 changed files with 32776 additions and 32776 deletions

114
README.in
View file

@ -164,38 +164,38 @@ Release notes for 2.12
* The gtk_notebook_set/get_group_id() functions were found to be insufficient
and have been deprecated in favour of gtk_notebook_set/get_group().
* The move-focus signal has been moved to GtkWidget, to unify the
various implementations of this signal in specific widgets. Great care
* The move-focus signal has been moved to GtkWidget, to unify the
various implementations of this signal in specific widgets. Great care
has been taken to make sure that all code using this signal continues
to work.
* An unused and hardly visible GtkFrame has been removed from the menu
widget hierarchy when GtkComboBox::appears-as-list style property is
set. Any RC file applying a different style to any widget below the
widget path "gtk-combobox-popup-window.GtkFrame" should take into
* An unused and hardly visible GtkFrame has been removed from the menu
widget hierarchy when GtkComboBox::appears-as-list style property is
set. Any RC file applying a different style to any widget below the
widget path "gtk-combobox-popup-window.GtkFrame" should take into
account that the frame no longer exists.
* The external print preview application used by GtkPrintOperationPreview
is now passed the print settings on the command line with the
--print-settings parameter pointing to a temp file containing the
settings. The preview application assumes ownership of the file and
should delete it once it does not need it anymore. The --print-settings
commandline option is understood by Evince 0.9.0 and newer. To use a
different print preview application, change the gtk-print-preview-command
* The external print preview application used by GtkPrintOperationPreview
is now passed the print settings on the command line with the
--print-settings parameter pointing to a temp file containing the
settings. The preview application assumes ownership of the file and
should delete it once it does not need it anymore. The --print-settings
commandline option is understood by Evince 0.9.0 and newer. To use a
different print preview application, change the gtk-print-preview-command
setting in your gtkrc file, e.g. gtk-print-preview-command = "ggv %f"
* GtkMenuShell is now defined as an abstract type. It was already
documented as an abstract class, and there is little reason to
* GtkMenuShell is now defined as an abstract type. It was already
documented as an abstract class, and there is little reason to
instantiate it.
* The GtkTooltips struct (this is the old tooltips API) is now considered
private. Code that used to access this struct, in particular the
tips_data_list field, will need to change. All of the old tooltips
API has been deprecated in favour of a new implementation and
API. This affects all of the gtk_tooltips_ functions, and functions
API. This affects all of the gtk_tooltips_ functions, and functions
which take a GtkTooltips argument, such as gtk_tool_item_set_tooltip()
and gtk_menu_tool_button_set_arrow_tooltip().
* The memory management of the GtkRecentManager object has been changed,
as using the screen didn't guarantee that the singleton instance was
correctly destroyed. The screen-related functions have been deprecated,
@ -203,14 +203,14 @@ Release notes for 2.12
the gtk_recent_manager_get_default() function is guaranteed to be valid
for the entire lifetime of an application.
* A number of interfaces that have been superseded by newer interfaces for
a long time have finally been deprecated. This includes
* A number of interfaces that have been superseded by newer interfaces for
a long time have finally been deprecated. This includes
gtk_widget_ref/unref(), gtk_rc_style_ref/unref() and the old file selector.
* The various coordinate systems in use in GtkTreeView widgets have
been clarified in the documentation, and in the cause of doing so,
been clarified in the documentation, and in the cause of doing so,
the functions gtk_tree_view_widget_to_tree_coords() and
gtk_tree_view_tree_to_widget_coords() have been deprecated in
gtk_tree_view_tree_to_widget_coords() have been deprecated in
favour of a new family of gtk_tree_view_convert_ functions.
* gtk_menu_item_remove_submenu() has been deprecated in favour of
@ -254,14 +254,14 @@ Release notes for 2.10
gtk_range_set_[upper/lower]_stepper_sensitivity() functions to
prevent the arrows from being rendered insensitive.
* GtkObject now uses the "floating reference" support in GObject.
* GtkObject now uses the "floating reference" support in GObject.
GTK_OBJECT_IS_FLOATING() will still work, but direct checking
of the GTK_FLOATING flag will no longer detect the floating
of the GTK_FLOATING flag will no longer detect the floating
reference. Details about floating references can be found in the docs:
http://developer.gnome.org/doc/API/2.0/gobject/gobject-The-Base-Object-Type.html#floating-ref
* Accelerators like (_F) are now stripped from labels when they are
displayed in toolbars. If this is not wanted, the feature can be
* Accelerators like (_F) are now stripped from labels when they are
displayed in toolbars. If this is not wanted, the feature can be
suppressed by inserting a Unicode control character, e.g ZWNJ.
* The pixbuf theme engine can now customize expanders (in GtkTreeView
@ -274,14 +274,14 @@ Release notes for 2.10
* Several new signals have been added to GtkNotebook. Care has been taken
to choose signal names which do not collide with signals added by well-known
derived classes. The names which can no longer be used for signals in
derived classes. The names which can no longer be used for signals in
objects derived from GtkNotebook are page-reordered, page-removed and
page-added.
* Due to the interface changes in the file chooser backend interface,
the GTK+ ABI version has been bumped to 2.10.0. Third-party filesystem
backends have to be ported to the new interface, other modules, such as
theme engines, input method modules or pixbuf loaders have to be rebuilt
* Due to the interface changes in the file chooser backend interface,
the GTK+ ABI version has been bumped to 2.10.0. Third-party filesystem
backends have to be ported to the new interface, other modules, such as
theme engines, input method modules or pixbuf loaders have to be rebuilt
so that they are installed in the right place for GTK+ to find them.
@ -340,19 +340,19 @@ Release notes for 2.6
a clipboard manager following the specification at
http://www.freedesktop.org/wiki/Standards/clipboard-manager-spec
must be running. A sample implementation of such a clipboard manager
is available at
is available at
http://people.imendio.com/andersca/archives/clipboard-manager-0.3.tar.gz
Applications can use the function gdk_display_supports_clipboard_persistence()
Applications can use the function gdk_display_supports_clipboard_persistence()
to find out if clipboard persistence is available.
* Notification on clipboard ownership changes via GdkOwnerChange events
* Notification on clipboard ownership changes via GdkOwnerChange events
requires the XFIXES X extension. Applications can use the function
gdk_display_supports_selection_notification() to find out if ownerchip
change notification is available.
* The icon theme code in GTK+ 2.6 follows the freedesktop.org icon theme
specification. Setting the XDG_DATA_DIRS environtment variable may be
necessary if your icons aren't installed in the default location
* The icon theme code in GTK+ 2.6 follows the freedesktop.org icon theme
specification. Setting the XDG_DATA_DIRS environtment variable may be
necessary if your icons aren't installed in the default location
/usr/share/icons.
* The icon theme code in GTK+ 2.6 can make use of mmap()able cache files
@ -360,49 +360,49 @@ Release notes for 2.6
gtk-update-icon-cache to generate these cache files. For further details,
see the gtk-update-icon-cache man page or the GTK+ documentation.
* To reduce code size and improve efficiency, GTK+, when compiled
with the GNU toolchain, has separate internal and external entry
points for exported functions. The internal names, which begin with
* To reduce code size and improve efficiency, GTK+, when compiled
with the GNU toolchain, has separate internal and external entry
points for exported functions. The internal names, which begin with
IA__, may be seen when debugging a GTK+ program.
* The following functions have been deprecated in GTK+ 2.6:
gdk_pango_context_set_colormap
gtk_cell_renderer_editing_canceled
* The new GtkFileChooser widget emphasizes simplicity and thus does
not provide a navigation entry by default when opening files.
* The new GtkFileChooser widget emphasizes simplicity and thus does
not provide a navigation entry by default when opening files.
Experienced command line users will likely want to make heavy use of
the location dialog brought up by the Control-L key shortcut.
* The GTK+ libraries use an '_' prefix to indicate private symbols that
must not be used by applications. On some platforms, symbols beginning
must not be used by applications. On some platforms, symbols beginning
with prefixes such as _gtk, _gdk, and _pango will be exported
from the library, on others not. In no case can applications
use these private symbols. In addition to that, GTK+ 2.6 makes several
symbols private which were not in any installed header files and
were never intended to be exported.
* The gdk_pixbuf_xlib library included in the contrib/ directory
* The gdk_pixbuf_xlib library included in the contrib/ directory
and the framebuffer GDK backend included in the gdk/linux-fb directory
of GTK+ are provided on an as-is basis and have not been tested at all.
of GTK+ are provided on an as-is basis and have not been tested at all.
No guarantees about the degree of workingness or about future
compatibility are provided.
* On Unix, the assumption of GLib and GTK+ by default is that filenames on
* On Unix, the assumption of GLib and GTK+ by default is that filenames on
the filesystem are encoded in UTF-8 rather than the encoding of the locale;
the GTK+ developers consider that having filenames whose interpretation
depends on the current locale is fundamentally a bad idea.
If you have filenames encoded in the encoding of your locale, then you
If you have filenames encoded in the encoding of your locale, then you
may want to set the G_FILENAME_ENCODING environment variable:
G_FILENAME_ENCODING=@locale
export G_FILENAME_ENCODING
(Earlier versions of GLib 2.x required a different environment variable
setting; G_BROKEN_FILENAMES=1 to achieve the same effect; this
setting; G_BROKEN_FILENAMES=1 to achieve the same effect; this
is still supported, but G_FILENAME_ENCODING is preferred.)
Best integration of GTK+ 2.6 with the environment is achieved by
Best integration of GTK+ 2.6 with the environment is achieved by
using a UTF-8 locale.
On Windows, filenames passed to GTK+ should always be in UTF-8, as
@ -413,7 +413,7 @@ Release notes for 2.6
When compiling against GTK+ 2.6, applications intended to be
portable to Windows must take the UTF-8 file name encoding into
consideration, and use the gstdio wrappers to access files whose
consideration, and use the gstdio wrappers to access files whose
names have been constructed from strings returned from GTK+ or GLib.
@ -423,9 +423,9 @@ How to report bugs
Bugs should be reported to the GNOME bug tracking system.
(http://bugzilla.gnome.org, product gtk+.) You will need to create an
account for yourself.
In the bug report please include:
* Information about your system. For instance:
- What operating system and version
@ -434,12 +434,12 @@ In the bug report please include:
And anything else you think is relevant.
* How to reproduce the bug.
* How to reproduce the bug.
If you can reproduce it with one of the tests or demos built with GTK+,
such as demos/gtk-demo/gtk-demo, that would be most convenient. Otherwise,
please include a short test program that exhibits the behavior. As a
last resort, you can also provide a pointer to a larger piece of software
If you can reproduce it with one of the tests or demos built with GTK+,
such as demos/gtk-demo/gtk-demo, that would be most convenient. Otherwise,
please include a short test program that exhibits the behavior. As a
last resort, you can also provide a pointer to a larger piece of software
that can be downloaded.
* If the bug was a crash, the exact text that was printed out when the

View file

@ -150,6 +150,6 @@ cd $ORIGDIR || exit $?
if test -z "$NOCONFIGURE"; then
$srcdir/configure --enable-maintainer-mode $AUTOGEN_CONFIGURE_ARGS "$@" || exit $?
echo
echo
echo "Now type 'make' to compile $PROJECT."
fi

View file

@ -249,7 +249,7 @@
/* Define to 1 if your C compiler doesn't accept -c and -o together. */
#ifndef _MSC_VER
/* #undef NO_MINUS_C_MINUS_O */
#else
#else
#define NO_MINUS_C_MINUS_O 1
#endif

View file

@ -296,7 +296,7 @@ AC_SUBST(gtktargetlib)
if test "x$enable_debug" = "xyes"; then
test "$cflags_set" = set || CFLAGS="$CFLAGS -g"
GTK_DEBUG_FLAGS="-DG_ENABLE_DEBUG -DG_ERRORCHECK_MUTEXES"
GTK_DEBUG_FLAGS="-DG_ENABLE_DEBUG -DG_ERRORCHECK_MUTEXES"
else
if test "x$enable_debug" = "xno"; then
GTK_DEBUG_FLAGS="-DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -DG_DISABLE_CAST_CHECKS"
@ -314,7 +314,7 @@ fi
AC_DEFINE_UNQUOTED(GTK_COMPILED_WITH_DEBUGGING, "${enable_debug}",
[Define if debugging is enabled])
# Build time sanity check...
AM_SANITY_CHECK
@ -384,11 +384,11 @@ fi
# Honor aclocal flags
ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
## Initial sanity check, done here so that users get told they
## Initial sanity check, done here so that users get told they
## have the wrong dependencies as early in the process as possible.
## Later on we actually use the cflags/libs from separate pkg-config
## calls. Oh, also the later pkg-config calls don't include
## the version requirements since those make the module lists
## calls. Oh, also the later pkg-config calls don't include
## the version requirements since those make the module lists
## annoying to construct
PKG_CHECK_MODULES(BASE_DEPENDENCIES,
[glib-2.0 >= glib_required_version dnl
@ -426,7 +426,7 @@ dnl ******************************************************
dnl * See whether to include shared library dependencies *
dnl ******************************************************
AC_ARG_ENABLE(explicit-deps,
AC_ARG_ENABLE(explicit-deps,
[AS_HELP_STRING([--enable-explicit-deps=@<:@yes/no/auto@:>@],
[use explicit dependencies in .pc files [default=auto]])],,
[enable_explicit_deps=auto])
@ -437,12 +437,12 @@ case $enable_explicit_deps in
export SED
deplibs_check_method=`(./libtool --config; echo 'eval echo \"$deplibs_check_method\"') | sh`
if test "x$deplibs_check_method" '!=' xpass_all || test "x$enable_static" = xyes ; then
enable_explicit_deps=yes
enable_explicit_deps=yes
else
enable_explicit_deps=no
enable_explicit_deps=no
fi
;;
yes|no)
yes|no)
;;
*) AC_MSG_ERROR([Value given to --enable-explicit-deps must be one of yes, no or auto])
;;
@ -825,7 +825,7 @@ if test x$enable_modules = xno; then
else
AC_MSG_RESULT(yes)
AC_MSG_CHECKING(whether dynamic modules work)
## for loop is to strip newline
## for loop is to strip newline
tmp=`$PKG_CONFIG --variable=gmodule_supported gmodule-no-export-2.0`
for I in $tmp; do
dynworks=$I
@ -869,7 +869,7 @@ AC_ARG_WITH(included_immodules,
[ --with-included-immodules=MODULE1,MODULE2,...
build the specified input methods into gtk])
if $dynworks; then
if $dynworks; then
:
else
## if the option was specified, leave it; otherwise disable included immodules
@ -941,7 +941,7 @@ AC_HEADER_SYS_WAIT
# support.
#
AC_CHECK_HEADER(sys/systeminfo.h,
AC_DEFINE(HAVE_SYS_SYSTEMINFO_H, 1,
AC_DEFINE(HAVE_SYS_SYSTEMINFO_H, 1,
[Define to 1 if sys/systeminfo.h is available]))
AC_CHECK_HEADER(sys/sysinfo.h,
AC_DEFINE(HAVE_SYS_SYSINFO_H, 1,
@ -982,11 +982,11 @@ fi
AC_PATH_PROG(GDK_PIXBUF_CSOURCE, gdk-pixbuf-csource, no)
if test ! -f $srcdir/gtk/gtkbuiltincache.h &&
if test ! -f $srcdir/gtk/gtkbuiltincache.h &&
test "x$REBUILD_PNGS" = "x#" ; then
AC_MSG_ERROR([
*** gtkbuiltincache.h is not in the tree, and cannot be built
*** because you don't have libpng, or (when cross-compiling) you
*** because you don't have libpng, or (when cross-compiling) you
*** don't have a prebuilt gtk-update-icon-cache on the build system.])
fi
@ -996,7 +996,7 @@ fi
GDK_EXTRA_LIBS="$GDK_WLIBS"
GDK_EXTRA_CFLAGS=
# GTK+ uses some X calls, so needs to link against X directly
GTK_DEP_PACKAGES_FOR_X=
GTK_DEP_LIBS_FOR_X=
@ -1021,12 +1021,12 @@ if test "x$gdktarget" = "xx11"; then
X_PACKAGES="$X_PACKAGES x11 xext xrender"
x_libs="`$PKG_CONFIG --libs x11 xext xrender`"
X_CFLAGS="`$PKG_CONFIG --cflags x11 xext xrender`"
# Strip out any .la files that pkg-config might give us (this happens
# with -uninstalled.pc files)
x_libs_for_checks=
for I in $x_libs ; do
case $I in
case $I in
*.la) ;;
*) x_libs_for_checks="$x_libs_for_checks $I" ;;
esac
@ -1039,7 +1039,7 @@ if test "x$gdktarget" = "xx11"; then
if test x$no_x = xyes ; then
AC_MSG_ERROR([X development libraries not found])
fi
x_cflags="$X_CFLAGS"
x_libs_for_checks="$X_LIBS -lXext -lXrender -lX11 $X_EXTRA_LIBS"
@ -1054,7 +1054,7 @@ if test "x$gdktarget" = "xx11"; then
gtk_save_LIBS=$LIBS
LIBS="$x_libs_for_checks $LIBS"
# Sanity check for the X11 and Xext libraries. While everything we need from
# Xext is optional, the chances a system has *none* of these things is so
# small that we just unconditionally require it.
@ -1088,9 +1088,9 @@ if test "x$gdktarget" = "xx11"; then
# Generic X11R6 check needed for XIM support; we could
# probably use this to replace the above, but we'll
# leave the separate checks for XConvertCase and XInternAtoms
# leave the separate checks for XConvertCase and XInternAtoms
# for clarity
have_x11r6=false
AC_CHECK_FUNC(XAddConnectionWatch,
have_x11r6=true)
@ -1120,7 +1120,7 @@ if test "x$gdktarget" = "xx11"; then
# X SYNC check
gtk_save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $x_cflags"
AC_CHECK_FUNC(XSyncQueryExtension,
[AC_CHECK_HEADER(X11/extensions/sync.h,
AC_DEFINE(HAVE_XSYNC, 1, [Have the SYNC extension library]),
@ -1135,9 +1135,9 @@ if test "x$gdktarget" = "xx11"; then
AC_CHECK_FUNC(XShmAttach,
:,
# On AIX, it is in XextSam instead
[AC_CHECK_LIB(XextSam, XShmAttach,
[AC_CHECK_LIB(XextSam, XShmAttach,
[GTK_ADD_LIB(x_extra_libs,XextSam)])])
fi
fi
if test "x$enable_shm" = "xyes"; then
# Check for shared memory
@ -1151,7 +1151,7 @@ if test "x$gdktarget" = "xx11"; then
no_sys_shm=yes)
# Check for the X shared memory extension header file
have_xshm=no
have_xshm=no
AC_MSG_CHECKING(X11/extensions/XShm.h)
if test "x$no_xext_lib" = "xyes"; then
:
@ -1183,17 +1183,17 @@ if test "x$gdktarget" = "xx11"; then
# Check for Xinerama extension (Solaris impl or Xfree impl)
gtk_save_cppflags="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $x_cflags"
# Check for XFree
AC_MSG_CHECKING(for Xinerama support on XFree86)
have_xfree_xinerama=false
if $PKG_CONFIG --exists xinerama ; then
have_xfree_xinerama=true
X_PACKAGES="$X_PACKAGES xinerama"
else
else
AC_CHECK_LIB(Xinerama, XineramaQueryExtension,
[AC_CHECK_HEADER(X11/extensions/Xinerama.h,
[AC_CHECK_HEADER(X11/extensions/Xinerama.h,
[GTK_ADD_LIB(x_extra_libs,Xinerama)
have_xfree_xinerama=true], :,
[#include <X11/Xlib.h>])])
@ -1212,13 +1212,13 @@ if test "x$gdktarget" = "xx11"; then
*-*-solaris*)
# Check for solaris
AC_MSG_CHECKING(for Xinerama support on Solaris)
have_solaris_xinerama=false
AC_CHECK_FUNC(XineramaGetInfo,
[AC_CHECK_HEADER(X11/extensions/xinerama.h,
[have_solaris_xinerama=true], :,
[#include <X11/Xlib.h>])])
if $have_solaris_xinerama ; then
AC_DEFINE(HAVE_SOLARIS_XINERAMA, 1,
[Define to 1 if solaris xinerama is available])
@ -1234,13 +1234,13 @@ if test "x$gdktarget" = "xx11"; then
esac
fi
fi
# set up things for XInput
if test "x$with_xinput" = "xxfree" || test "x$with_xinput" = "xyes"; then
AC_DEFINE(XINPUT_XFREE, 1,
[Define to 1 if XFree XInput should be used])
if $PKG_CONFIG --exists xi ; then
X_PACKAGES="$X_PACKAGES xi"
else
@ -1262,20 +1262,20 @@ if test "x$gdktarget" = "xx11"; then
fi
X_PACKAGES="$X_PACKAGES xrandr"
fi
# Checks for Xcursor library
if $PKG_CONFIG --exists xcursor ; then
AC_DEFINE(HAVE_XCURSOR, 1, [Have the Xcursor library])
X_PACKAGES="$X_PACKAGES xcursor"
fi
# Checks for XFixes extension
if test "x$enable_xfixes" != "xno" && $PKG_CONFIG --exists xfixes ; then
AC_DEFINE(HAVE_XFIXES, 1, [Have the XFIXES X extension])
X_PACKAGES="$X_PACKAGES xfixes"
GTK_PACKAGES_FOR_X="$GTK_PACKAGES_FOR_X xfixes"
fi
@ -1452,7 +1452,7 @@ if test "x$gdktarget" = "xx11"; then
GTK_PACKAGES="$GTK_PACKAGES pangoft2"
fi
GTK_EXTRA_LIBS=
GTK_EXTRA_CFLAGS=
GTK_EXTRA_CFLAGS=
GTK_DEP_LIBS="$GDK_EXTRA_LIBS $GTK_DEP_LIBS_FOR_X `$PKG_CONFIG --libs $PANGO_PACKAGES $GTK_PACKAGES_FOR_X $GTK_PACKAGES` $GTK_EXTRA_LIBS $MATH_LIB"
GTK_DEP_CFLAGS="`$PKG_CONFIG --cflags gthread-2.0 $GDK_PACKAGES $GTK_PACKAGES` $GDK_EXTRA_CFLAGS $GTK_EXTRA_CFLAGS"
@ -1499,7 +1499,7 @@ AC_CHECK_MEMBER([struct sockaddr_un.sun_len],
[#include <sys/types.h>
#include <sys/un.h>]
)
case $struct_sockaddr_un_sun_len in
case $struct_sockaddr_un_sun_len in
true)
AC_DEFINE_UNQUOTED(HAVE_SOCKADDR_UN_SUN_LEN, 1,
[Have the sockaddr_un.sun_len member])
@ -1544,7 +1544,7 @@ else
if test $CUPS_API_MAJOR -gt 1 -o \
$CUPS_API_MAJOR -eq 1 -a $CUPS_API_MINOR -ge 2; then
AC_DEFINE(HAVE_CUPS_API_1_2, 1,
AC_DEFINE(HAVE_CUPS_API_1_2, 1,
[Define to 1 if CUPS 1.2 API is available])
fi
if test $CUPS_API_MAJOR -gt 1 -o \
@ -1617,17 +1617,17 @@ AC_CHECK_HEADER(cairo-pdf.h,,AC_MSG_ERROR([
if test "$os_win32" != "yes"; then
AC_CHECK_HEADER(cairo-ps.h,,AC_MSG_ERROR([
*** Can't find cairo-ps.h. You must build Cairo with the
*** Can't find cairo-ps.h. You must build Cairo with the
*** postscript backend enabled.]))
AC_CHECK_HEADER(cairo-svg.h,,AC_MSG_ERROR([
*** Can't find cairo-svg.h. You must build Cairo with the
*** svg backend enabled.]))
fi
fi
CPPFLAGS="$gtk_save_cppflags"
AC_ARG_ENABLE(test-print-backend,
[AS_HELP_STRING([--enable-test-print-backend],
[build test print backend])],,

View file

@ -98,7 +98,7 @@ IMAGEFILES= alphatest.png \
gnome-gmush.png \
gnome-gsame.png \
gnu-keys.png \
gtk-logo-rgb.gif
gtk-logo-rgb.gif
democode_DATA = $(demos) $(IMAGEFILES) demo.ui

View file

@ -552,7 +552,7 @@ do_appwindow (GtkWidget *do_widget)
/* Show text widget info in the statusbar */
buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (contents));
g_signal_connect_object (buffer,
"changed",
G_CALLBACK (update_statusbar),

View file

@ -33,7 +33,7 @@ do_builder (GtkWidget *do_widget)
static GtkWidget *window = NULL;
GError *err = NULL;
gchar *filename;
if (!window)
{
builder = gtk_builder_new ();
@ -58,7 +58,7 @@ do_builder (GtkWidget *do_widget)
gtk_widget_show_all (window);
}
else
{
{
gtk_widget_destroy (window);
window = NULL;
}

View file

@ -7,14 +7,14 @@
static GtkWidget *
create_bbox (gint horizontal,
char *title,
char *title,
gint spacing,
gint layout)
{
GtkWidget *frame;
GtkWidget *bbox;
GtkWidget *button;
frame = gtk_frame_new (title);
if (horizontal)
@ -27,13 +27,13 @@ create_bbox (gint horizontal,
gtk_button_box_set_layout (GTK_BUTTON_BOX (bbox), layout);
gtk_box_set_spacing (GTK_BOX (bbox), spacing);
button = gtk_button_new_from_stock (GTK_STOCK_OK);
gtk_container_add (GTK_CONTAINER (bbox), button);
button = gtk_button_new_from_stock (GTK_STOCK_CANCEL);
gtk_container_add (GTK_CONTAINER (bbox), button);
button = gtk_button_new_from_stock (GTK_STOCK_HELP);
gtk_container_add (GTK_CONTAINER (bbox), button);
@ -49,66 +49,66 @@ do_button_box (GtkWidget *do_widget)
GtkWidget *hbox;
GtkWidget *frame_horz;
GtkWidget *frame_vert;
if (!window)
{
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_screen (GTK_WINDOW (window),
gtk_widget_get_screen (do_widget));
gtk_window_set_title (GTK_WINDOW (window), "Button Boxes");
g_signal_connect (window, "destroy",
G_CALLBACK (gtk_widget_destroyed),
&window);
gtk_container_set_border_width (GTK_CONTAINER (window), 10);
main_vbox = gtk_vbox_new (FALSE, 0);
gtk_container_add (GTK_CONTAINER (window), main_vbox);
frame_horz = gtk_frame_new ("Horizontal Button Boxes");
gtk_box_pack_start (GTK_BOX (main_vbox), frame_horz, TRUE, TRUE, 10);
vbox = gtk_vbox_new (FALSE, 0);
gtk_container_set_border_width (GTK_CONTAINER (vbox), 10);
gtk_container_add (GTK_CONTAINER (frame_horz), vbox);
gtk_box_pack_start (GTK_BOX (vbox),
gtk_box_pack_start (GTK_BOX (vbox),
create_bbox (TRUE, "Spread", 40, GTK_BUTTONBOX_SPREAD),
TRUE, TRUE, 0);
gtk_box_pack_start (GTK_BOX (vbox),
gtk_box_pack_start (GTK_BOX (vbox),
create_bbox (TRUE, "Edge", 40, GTK_BUTTONBOX_EDGE),
TRUE, TRUE, 5);
gtk_box_pack_start (GTK_BOX (vbox),
gtk_box_pack_start (GTK_BOX (vbox),
create_bbox (TRUE, "Start", 40, GTK_BUTTONBOX_START),
TRUE, TRUE, 5);
gtk_box_pack_start (GTK_BOX (vbox),
gtk_box_pack_start (GTK_BOX (vbox),
create_bbox (TRUE, "End", 40, GTK_BUTTONBOX_END),
TRUE, TRUE, 5);
frame_vert = gtk_frame_new ("Vertical Button Boxes");
gtk_box_pack_start (GTK_BOX (main_vbox), frame_vert, TRUE, TRUE, 10);
hbox = gtk_hbox_new (FALSE, 0);
gtk_container_set_border_width (GTK_CONTAINER (hbox), 10);
gtk_container_add (GTK_CONTAINER (frame_vert), hbox);
gtk_box_pack_start (GTK_BOX (hbox),
gtk_box_pack_start (GTK_BOX (hbox),
create_bbox (FALSE, "Spread", 30, GTK_BUTTONBOX_SPREAD),
TRUE, TRUE, 0);
gtk_box_pack_start (GTK_BOX (hbox),
gtk_box_pack_start (GTK_BOX (hbox),
create_bbox (FALSE, "Edge", 30, GTK_BUTTONBOX_EDGE),
TRUE, TRUE, 5);
gtk_box_pack_start (GTK_BOX (hbox),
gtk_box_pack_start (GTK_BOX (hbox),
create_bbox (FALSE, "Start", 30, GTK_BUTTONBOX_START),
TRUE, TRUE, 5);
gtk_box_pack_start (GTK_BOX (hbox),
gtk_box_pack_start (GTK_BOX (hbox),
create_bbox (FALSE, "End", 30, GTK_BUTTONBOX_END),
TRUE, TRUE, 5);
}
@ -118,7 +118,7 @@ do_button_box (GtkWidget *do_widget)
gtk_widget_show_all (window);
}
else
{
{
gtk_widget_destroy (window);
window = NULL;
}

View file

@ -248,9 +248,9 @@ open_display_cb (GtkWidget *button,
gtk_entry_set_activates_default (GTK_ENTRY (display_entry), TRUE);
dialog_label =
gtk_label_new ("Please enter the name of\nthe new display\n");
content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog));
gtk_container_add (GTK_CONTAINER (content_area), dialog_label);
gtk_container_add (GTK_CONTAINER (content_area), display_entry);

View file

@ -15,12 +15,12 @@ static GtkWidget *frame;
/* Expose callback for the drawing area
*/
static gboolean
expose_event_callback (GtkWidget *widget,
GdkEventExpose *event,
expose_event_callback (GtkWidget *widget,
GdkEventExpose *event,
gpointer data)
{
GdkWindow *window = gtk_widget_get_window (widget);
if (window)
{
GtkStyle *style;
@ -47,28 +47,28 @@ change_color_callback (GtkWidget *button,
GtkWidget *dialog;
GtkColorSelection *colorsel;
gint response;
dialog = gtk_color_selection_dialog_new ("Changing color");
gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (window));
colorsel =
colorsel =
GTK_COLOR_SELECTION (gtk_color_selection_dialog_get_color_selection (GTK_COLOR_SELECTION_DIALOG (dialog)));
gtk_color_selection_set_previous_color (colorsel, &color);
gtk_color_selection_set_current_color (colorsel, &color);
gtk_color_selection_set_has_palette (colorsel, TRUE);
response = gtk_dialog_run (GTK_DIALOG (dialog));
if (response == GTK_RESPONSE_OK)
{
gtk_color_selection_get_current_color (colorsel,
&color);
gtk_widget_modify_bg (da, GTK_STATE_NORMAL, &color);
}
gtk_widget_destroy (dialog);
}
@ -78,13 +78,13 @@ do_colorsel (GtkWidget *do_widget)
GtkWidget *vbox;
GtkWidget *button;
GtkWidget *alignment;
if (!window)
{
color.red = 0;
color.blue = 65535;
color.green = 0;
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_screen (GTK_WINDOW (window),
gtk_widget_get_screen (do_widget));
@ -102,8 +102,8 @@ do_colorsel (GtkWidget *do_widget)
/*
* Create the color swatch area
*/
frame = gtk_frame_new (NULL);
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN);
gtk_box_pack_start (GTK_BOX (vbox), frame, TRUE, TRUE, 0);
@ -117,16 +117,16 @@ do_colorsel (GtkWidget *do_widget)
gtk_widget_set_size_request (da, 200, 200);
/* set the color */
gtk_widget_modify_bg (da, GTK_STATE_NORMAL, &color);
gtk_container_add (GTK_CONTAINER (frame), da);
alignment = gtk_alignment_new (1.0, 0.5, 0.0, 0.0);
button = gtk_button_new_with_mnemonic ("_Change the above color");
gtk_container_add (GTK_CONTAINER (alignment), button);
gtk_box_pack_start (GTK_BOX (vbox), alignment, FALSE, FALSE, 0);
g_signal_connect (button, "clicked",
G_CALLBACK (change_color_callback), NULL);
}

View file

@ -1,15 +1,15 @@
/* Combo boxes
/* Combo boxes
*
* The ComboBox widget allows to select one option out of a list.
* The ComboBoxEntry additionally allows the user to enter a value
* that is not in the list of options.
* that is not in the list of options.
*
* How the options are displayed is controlled by cell renderers.
*/
#include <gtk/gtk.h>
enum
enum
{
PIXBUF_COL,
TEXT_COL
@ -20,10 +20,10 @@ strip_underscore (const gchar *text)
{
gchar *p, *q;
gchar *result;
result = g_strdup (text);
p = q = result;
while (*p)
while (*p)
{
if (*p != '_')
{
@ -46,7 +46,7 @@ create_stock_icon_store (void)
GTK_STOCK_NEW,
GTK_STOCK_CLEAR,
NULL,
GTK_STOCK_OPEN
GTK_STOCK_OPEN
};
GtkStockItem item;
@ -58,7 +58,7 @@ create_stock_icon_store (void)
gint i;
cellview = gtk_cell_view_new ();
store = gtk_list_store_new (2, GDK_TYPE_PIXBUF, G_TYPE_STRING);
for (i = 0; i < G_N_ELEMENTS (stock_id); i++)
@ -88,12 +88,12 @@ create_stock_icon_store (void)
}
gtk_widget_destroy (cellview);
return GTK_TREE_MODEL (store);
}
/* A GtkCellLayoutDataFunc that demonstrates how one can control
* sensitivity of rows. This particular function does nothing
* sensitivity of rows. This particular function does nothing
* useful and just makes the second row insensitive.
*/
static void
@ -116,7 +116,7 @@ set_sensitive (GtkCellLayout *cell_layout,
}
/* A GtkTreeViewRowSeparatorFunc that demonstrates how rows can be
* rendered as separators. This particular function does nothing
* rendered as separators. This particular function does nothing
* useful and just turns the fourth row into a separator.
*/
static gboolean
@ -141,11 +141,11 @@ create_capital_store (void)
gchar *group;
gchar *capital;
} capitals[] = {
{ "A - B", NULL },
{ "A - B", NULL },
{ NULL, "Albany" },
{ NULL, "Annapolis" },
{ NULL, "Atlanta" },
{ NULL, "Augusta" },
{ NULL, "Augusta" },
{ NULL, "Austin" },
{ NULL, "Baton Rouge" },
{ NULL, "Bismarck" },
@ -199,13 +199,13 @@ create_capital_store (void)
{ NULL, "Trenton" },
{ NULL, NULL }
};
GtkTreeIter iter, iter2;
GtkTreeStore *store;
gint i;
store = gtk_tree_store_new (1, G_TYPE_STRING);
for (i = 0; capitals[i].group || capitals[i].capital; i++)
{
if (capitals[i].group)
@ -219,7 +219,7 @@ create_capital_store (void)
gtk_tree_store_set (store, &iter2, 0, capitals[i].capital, -1);
}
}
return GTK_TREE_MODEL (store);
}
@ -338,42 +338,42 @@ do_combobox (GtkWidget *do_widget)
gtk_window_set_screen (GTK_WINDOW (window),
gtk_widget_get_screen (do_widget));
gtk_window_set_title (GTK_WINDOW (window), "Combo boxes");
g_signal_connect (window, "destroy",
G_CALLBACK (gtk_widget_destroyed),
&window);
gtk_container_set_border_width (GTK_CONTAINER (window), 10);
vbox = gtk_vbox_new (FALSE, 2);
gtk_container_add (GTK_CONTAINER (window), vbox);
/* A combobox demonstrating cell renderers, separators and
* insensitive rows
* insensitive rows
*/
frame = gtk_frame_new ("Some stock icons");
gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0);
box = gtk_vbox_new (FALSE, 0);
gtk_container_set_border_width (GTK_CONTAINER (box), 5);
gtk_container_add (GTK_CONTAINER (frame), box);
model = create_stock_icon_store ();
combo = gtk_combo_box_new_with_model (model);
g_object_unref (model);
gtk_container_add (GTK_CONTAINER (box), combo);
renderer = gtk_cell_renderer_pixbuf_new ();
gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), renderer, FALSE);
gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), renderer,
"pixbuf", PIXBUF_COL,
"pixbuf", PIXBUF_COL,
NULL);
gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (combo),
renderer,
set_sensitive,
NULL, NULL);
renderer = gtk_cell_renderer_text_new ();
gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), renderer, TRUE);
gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), renderer,
@ -385,11 +385,11 @@ do_combobox (GtkWidget *do_widget)
set_sensitive,
NULL, NULL);
gtk_combo_box_set_row_separator_func (GTK_COMBO_BOX (combo),
gtk_combo_box_set_row_separator_func (GTK_COMBO_BOX (combo),
is_separator, NULL, NULL);
gtk_combo_box_set_active (GTK_COMBO_BOX (combo), 0);
/* A combobox demonstrating trees.
*/
frame = gtk_frame_new ("Where are we ?");
@ -398,7 +398,7 @@ do_combobox (GtkWidget *do_widget)
box = gtk_vbox_new (FALSE, 0);
gtk_container_set_border_width (GTK_CONTAINER (box), 5);
gtk_container_add (GTK_CONTAINER (frame), box);
model = create_capital_store ();
combo = gtk_combo_box_new_with_model (model);
g_object_unref (model);
@ -423,21 +423,21 @@ do_combobox (GtkWidget *do_widget)
*/
frame = gtk_frame_new ("Editable");
gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0);
box = gtk_vbox_new (FALSE, 0);
gtk_container_set_border_width (GTK_CONTAINER (box), 5);
gtk_container_add (GTK_CONTAINER (frame), box);
combo = gtk_combo_box_text_new_with_entry ();
fill_combo_entry (combo);
gtk_container_add (GTK_CONTAINER (box), combo);
entry = g_object_new (TYPE_MASK_ENTRY, NULL);
MASK_ENTRY (entry)->mask = "^([0-9]*|One|Two|2\302\275|Three)$";
gtk_container_remove (GTK_CONTAINER (combo), gtk_bin_get_child (GTK_BIN (combo)));
gtk_container_add (GTK_CONTAINER (combo), entry);
}
if (!gtk_widget_get_visible (window))
@ -445,7 +445,7 @@ do_combobox (GtkWidget *do_widget)
gtk_widget_show_all (window);
}
else
{
{
gtk_widget_destroy (window);
window = NULL;
}

View file

@ -80,7 +80,7 @@ interactive_dialog_clicked (GtkButton *button,
gtk_entry_set_text (GTK_ENTRY (local_entry2), gtk_entry_get_text (GTK_ENTRY (entry2)));
gtk_table_attach_defaults (GTK_TABLE (table), local_entry2, 1, 2, 1, 2);
gtk_label_set_mnemonic_widget (GTK_LABEL (label), local_entry2);
gtk_widget_show_all (hbox);
response = gtk_dialog_run (GTK_DIALOG (dialog));
@ -103,7 +103,7 @@ do_dialog (GtkWidget *do_widget)
GtkWidget *button;
GtkWidget *table;
GtkWidget *label;
if (!window)
{
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
@ -157,7 +157,7 @@ do_dialog (GtkWidget *do_widget)
gtk_label_set_mnemonic_widget (GTK_LABEL (label), entry1);
label = gtk_label_new_with_mnemonic ("E_ntry 2");
gtk_table_attach_defaults (GTK_TABLE (table),
label,
0, 1, 1, 2);
@ -172,7 +172,7 @@ do_dialog (GtkWidget *do_widget)
gtk_widget_show_all (window);
}
else
{
{
gtk_widget_destroy (window);
window = NULL;
}

View file

@ -27,7 +27,7 @@ scribble_configure_event (GtkWidget *widget,
{
cairo_t *cr;
GtkAllocation allocation;
gtk_widget_get_allocation (widget, &allocation);
if (surface)
@ -59,7 +59,7 @@ scribble_expose_event (GtkWidget *widget,
cairo_t *cr;
cr = gdk_cairo_create (gtk_widget_get_window (widget));
cairo_set_source_surface (cr, surface, 0, 0);
gdk_cairo_rectangle (cr, &event->area);
cairo_fill (cr);
@ -152,7 +152,7 @@ checkerboard_expose (GtkWidget *da,
gint i, j, xcount, ycount;
cairo_t *cr;
GtkAllocation allocation;
gtk_widget_get_allocation (da, &allocation);
#define CHECK_SIZE 10

View file

@ -6,7 +6,7 @@
* GtkCellRenderer::editing-started signal to do custom setup of the
* editable widget.
*
* The cell renderers used in this demo are GtkCellRendererText,
* The cell renderers used in this demo are GtkCellRendererText,
* GtkCellRendererCombo and GtkCellRendererProgress.
*/
@ -205,7 +205,7 @@ editing_started (GtkCellRenderer *cell,
const gchar *path,
gpointer data)
{
gtk_combo_box_set_row_separator_func (GTK_COMBO_BOX (editable),
gtk_combo_box_set_row_separator_func (GTK_COMBO_BOX (editable),
separator_row, NULL, NULL);
}
@ -259,7 +259,7 @@ cell_edited (GtkCellRendererText *cell,
}
static void
add_columns (GtkTreeView *treeview,
add_columns (GtkTreeView *treeview,
GtkTreeModel *items_model,
GtkTreeModel *numbers_model)
{
@ -306,7 +306,7 @@ add_columns (GtkTreeView *treeview,
-1, "Yummy", renderer,
"value", COLUMN_ITEM_YUMMY,
NULL);
}

View file

@ -15,7 +15,7 @@ create_completion_model (void)
{
GtkListStore *store;
GtkTreeIter iter;
store = gtk_list_store_new (1, G_TYPE_STRING);
/* Append one word */
@ -29,7 +29,7 @@ create_completion_model (void)
/* And another word */
gtk_list_store_append (store, &iter);
gtk_list_store_set (store, &iter, 0, "totally", -1);
return GTK_TREE_MODEL (store);
}
@ -42,7 +42,7 @@ do_entry_completion (GtkWidget *do_widget)
GtkWidget *entry;
GtkEntryCompletion *completion;
GtkTreeModel *completion_model;
if (!window)
{
window = gtk_dialog_new_with_buttons ("GtkEntryCompletion",
@ -76,12 +76,12 @@ do_entry_completion (GtkWidget *do_widget)
/* Assign the completion to the entry */
gtk_entry_set_completion (GTK_ENTRY (entry), completion);
g_object_unref (completion);
/* Create a tree model and use it as the completion model */
completion_model = create_completion_model ();
gtk_entry_completion_set_model (completion, completion_model);
g_object_unref (completion_model);
/* Use model column 0 as the text column */
gtk_entry_completion_set_text_column (completion, 0);
}

View file

@ -16,7 +16,7 @@ do_expander (GtkWidget *do_widget)
GtkWidget *vbox;
GtkWidget *label;
GtkWidget *expander;
if (!window)
{
window = gtk_dialog_new_with_buttons ("GtkExpander",

View file

@ -5,7 +5,7 @@ typedef GtkWidget *(*GDoDemoFunc) (GtkWidget *do_widget);
typedef struct _Demo Demo;
struct _Demo
struct _Demo
{
gchar *title;
gchar *filename;
@ -17,7 +17,7 @@ EOT
for $file (@ARGV) {
my %demo;
($basename = $file) =~ s/\.c$//;
open INFO_FILE, $file or die "Cannot open '$file'\n";
@ -46,7 +46,7 @@ foreach $href (@demos) {
$do_next = 1;
}
}
if ($do_next) {
next;
}
@ -66,24 +66,24 @@ if (@parents) {
$i = 0;
for ($i = 0; $i <= $#parents; $i++) {
$first = 1;
print "\nDemo ", $child_arrays[$i], "[] = {\n";
$j = 0;
for ($j = 0; $j <= $#demos; $j++) {
$href = $demos[$j];
if (!$demos[$j]) {
next;
}
if ($demos[$j]{"title"} =~ m|^$parents[$i]/([-\w\s]+)$|) {
if ($first) {
$first = 0;
} else {
print ",\n";
}
print qq ( { "$1", "$demos[$j]{file}", $demos[$j]{func}, NULL });
# hack ... ugly
@ -94,7 +94,7 @@ if (@parents) {
print ",\n";
print qq ( { NULL } );
print "\n};\n";
}
}
}
# sort @demos
@ -142,17 +142,17 @@ foreach $href (@demos) {
} else {
print qq ( { "$href->{title}", "$href->{file}", $href->{func}, $child_arrays[$i] });
}
$handled = 1;
last;
}
}
}
if ($handled) {
next;
}
print qq ( { "$href->{title}", "$href->{file}", $href->{func}, NULL });
}

View file

@ -1,8 +1,8 @@
/* Text Widget/Hypertext
*
* Usually, tags modify the appearance of text in the view, e.g. making it
* bold or colored or underlined. But tags are not restricted to appearance.
* They can also affect the behavior of mouse and key presses, as this demo
* Usually, tags modify the appearance of text in the view, e.g. making it
* bold or colored or underlined. But tags are not restricted to appearance.
* They can also affect the behavior of mouse and key presses, as this demo
* shows.
*/
@ -12,19 +12,19 @@
/* Inserts a piece of text into the buffer, giving it the usual
* appearance of a hyperlink in a web browser: blue and underlined.
* Additionally, attaches some data on the tag, to make it recognizable
* as a link.
* as a link.
*/
static void
insert_link (GtkTextBuffer *buffer,
GtkTextIter *iter,
gchar *text,
static void
insert_link (GtkTextBuffer *buffer,
GtkTextIter *iter,
gchar *text,
gint page)
{
GtkTextTag *tag;
tag = gtk_text_buffer_create_tag (buffer, NULL,
"foreground", "blue",
"underline", PANGO_UNDERLINE_SINGLE,
tag = gtk_text_buffer_create_tag (buffer, NULL,
"foreground", "blue",
"underline", PANGO_UNDERLINE_SINGLE,
NULL);
g_object_set_data (G_OBJECT (tag), "page", GINT_TO_POINTER (page));
gtk_text_buffer_insert_with_tags (buffer, iter, text, -1, tag, NULL);
@ -34,7 +34,7 @@ insert_link (GtkTextBuffer *buffer,
* hypertext app, this method would parse a file to identify the links.
*/
static void
show_page (GtkTextBuffer *buffer,
show_page (GtkTextBuffer *buffer,
gint page)
{
GtkTextIter iter;
@ -51,7 +51,7 @@ show_page (GtkTextBuffer *buffer,
}
else if (page == 2)
{
gtk_text_buffer_insert (buffer, &iter,
gtk_text_buffer_insert (buffer, &iter,
"A tag is an attribute that can be applied to some range of text. "
"For example, a tag might be called \"bold\" and make the text inside "
"the tag bold. However, the tag concept is more general than that; "
@ -60,27 +60,27 @@ show_page (GtkTextBuffer *buffer,
"user can't edit it, or countless other things.\n", -1);
insert_link (buffer, &iter, "Go back", 1);
}
else if (page == 3)
else if (page == 3)
{
GtkTextTag *tag;
tag = gtk_text_buffer_create_tag (buffer, NULL,
"weight", PANGO_WEIGHT_BOLD,
tag = gtk_text_buffer_create_tag (buffer, NULL,
"weight", PANGO_WEIGHT_BOLD,
NULL);
gtk_text_buffer_insert_with_tags (buffer, &iter, "hypertext:\n", -1, tag, NULL);
gtk_text_buffer_insert (buffer, &iter,
gtk_text_buffer_insert (buffer, &iter,
"machine-readable text that is not sequential but is organized "
"so that related items of information are connected.\n", -1);
insert_link (buffer, &iter, "Go back", 1);
}
}
/* Looks at all tags covering the position of iter in the text view,
/* Looks at all tags covering the position of iter in the text view,
* and if one of them is a link, follow it by showing the page identified
* by the data attached to it.
*/
static void
follow_if_link (GtkWidget *text_view,
follow_if_link (GtkWidget *text_view,
GtkTextIter *iter)
{
GSList *tags = NULL, *tagp = NULL;
@ -98,7 +98,7 @@ follow_if_link (GtkWidget *text_view,
}
}
if (tags)
if (tags)
g_slist_free (tags);
}
@ -113,10 +113,10 @@ key_press_event (GtkWidget *text_view,
switch (event->keyval)
{
case GDK_Return:
case GDK_Return:
case GDK_KP_Enter:
buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text_view));
gtk_text_buffer_get_iter_at_mark (buffer, &iter,
gtk_text_buffer_get_iter_at_mark (buffer, &iter,
gtk_text_buffer_get_insert (buffer));
follow_if_link (text_view, &iter);
break;
@ -154,7 +154,7 @@ event_after (GtkWidget *text_view,
if (gtk_text_iter_get_offset (&start) != gtk_text_iter_get_offset (&end))
return FALSE;
gtk_text_view_window_to_buffer_coords (GTK_TEXT_VIEW (text_view),
gtk_text_view_window_to_buffer_coords (GTK_TEXT_VIEW (text_view),
GTK_TEXT_WINDOW_WIDGET,
event->x, event->y, &x, &y);
@ -169,7 +169,7 @@ static gboolean hovering_over_link = FALSE;
static GdkCursor *hand_cursor = NULL;
static GdkCursor *regular_cursor = NULL;
/* Looks at all tags covering the position (x, y) in the text view,
/* Looks at all tags covering the position (x, y) in the text view,
* and if one of them is a link, change the cursor to the "hands" cursor
* typically used by web browsers.
*/
@ -183,14 +183,14 @@ set_cursor_if_appropriate (GtkTextView *text_view,
gboolean hovering = FALSE;
gtk_text_view_get_iter_at_location (text_view, &iter, x, y);
tags = gtk_text_iter_get_tags (&iter);
for (tagp = tags; tagp != NULL; tagp = tagp->next)
{
GtkTextTag *tag = tagp->data;
gint page = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (tag), "page"));
if (page != 0)
if (page != 0)
{
hovering = TRUE;
break;
@ -207,11 +207,11 @@ set_cursor_if_appropriate (GtkTextView *text_view,
gdk_window_set_cursor (gtk_text_view_get_window (text_view, GTK_TEXT_WINDOW_TEXT), regular_cursor);
}
if (tags)
if (tags)
g_slist_free (tags);
}
/* Update the cursor image if the pointer moved.
/* Update the cursor image if the pointer moved.
*/
static gboolean
motion_notify_event (GtkWidget *text_view,
@ -219,7 +219,7 @@ motion_notify_event (GtkWidget *text_view,
{
gint x, y;
gtk_text_view_window_to_buffer_coords (GTK_TEXT_VIEW (text_view),
gtk_text_view_window_to_buffer_coords (GTK_TEXT_VIEW (text_view),
GTK_TEXT_WINDOW_WIDGET,
event->x, event->y, &x, &y);
@ -237,10 +237,10 @@ visibility_notify_event (GtkWidget *text_view,
GdkEventVisibility *event)
{
gint wx, wy, bx, by;
gdk_window_get_pointer (gtk_widget_get_window (text_view), &wx, &wy, NULL);
gtk_text_view_window_to_buffer_coords (GTK_TEXT_VIEW (text_view),
gtk_text_view_window_to_buffer_coords (GTK_TEXT_VIEW (text_view),
GTK_TEXT_WINDOW_WIDGET,
wx, wy, &bx, &by);
@ -262,13 +262,13 @@ do_hypertext (GtkWidget *do_widget)
hand_cursor = gdk_cursor_new (GDK_HAND2);
regular_cursor = gdk_cursor_new (GDK_XTERM);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_screen (GTK_WINDOW (window),
gtk_widget_get_screen (do_widget));
gtk_window_set_default_size (GTK_WINDOW (window),
450, 450);
g_signal_connect (window, "destroy",
G_CALLBACK (gtk_widget_destroyed), &window);
@ -277,17 +277,17 @@ do_hypertext (GtkWidget *do_widget)
view = gtk_text_view_new ();
gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (view), GTK_WRAP_WORD);
g_signal_connect (view, "key-press-event",
g_signal_connect (view, "key-press-event",
G_CALLBACK (key_press_event), NULL);
g_signal_connect (view, "event-after",
g_signal_connect (view, "event-after",
G_CALLBACK (event_after), NULL);
g_signal_connect (view, "motion-notify-event",
g_signal_connect (view, "motion-notify-event",
G_CALLBACK (motion_notify_event), NULL);
g_signal_connect (view, "visibility-notify-event",
g_signal_connect (view, "visibility-notify-event",
G_CALLBACK (visibility_notify_event), NULL);
buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view));
sw = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw),
GTK_POLICY_AUTOMATIC,

View file

@ -59,11 +59,11 @@ get_democodedir (void)
* demo_find_file:
* @base: base filename
* @err: location to store error, or %NULL.
*
*
* Looks for @base first in the current directory, then in the
* location GTK+ where it will be installed on make install,
* returns the first file found.
*
*
* Return value: the filename, if found or %NULL
**/
gchar *
@ -71,7 +71,7 @@ demo_find_file (const char *base,
GError **err)
{
g_return_val_if_fail (err == NULL || *err == NULL, NULL);
if (g_file_test ("gtk-logo-rgb.gif", G_FILE_TEST_EXISTS) &&
g_file_test (base, G_FILE_TEST_EXISTS))
return g_strdup (base);
@ -113,17 +113,17 @@ gboolean
read_line (FILE *stream, GString *str)
{
int n_read = 0;
#ifdef HAVE_FLOCKFILE
flockfile (stream);
#endif
g_string_truncate (str, 0);
while (1)
{
int c;
#ifdef HAVE_FLOCKFILE
c = getc_unlocked (stream);
#else
@ -145,12 +145,12 @@ read_line (FILE *stream, GString *str)
#else
int next_c = getc (stream);
#endif
if (!(next_c == EOF ||
(c == '\r' && next_c == '\n') ||
(c == '\n' && next_c == '\r')))
ungetc (next_c, stream);
goto done;
}
default:
@ -534,7 +534,7 @@ load_file (const gchar *filename)
g_free (current_file);
current_file = g_strdup (filename);
gtk_text_buffer_get_bounds (info_buffer, &start, &end);
gtk_text_buffer_delete (info_buffer, &start, &end);
@ -565,7 +565,7 @@ load_file (const gchar *filename)
gchar *p = buffer->str;
gchar *q;
gchar *r;
switch (state)
{
case 0:
@ -595,11 +595,11 @@ load_file (const gchar *filename)
gtk_text_buffer_apply_tag_by_name (info_buffer, "title", &start, &end);
start = end;
state++;
}
break;
case 1:
/* Reading body of info section */
while (g_ascii_isspace (*p))
@ -612,14 +612,14 @@ load_file (const gchar *filename)
else
{
int len;
while (*p == '*' || g_ascii_isspace (*p))
p++;
len = strlen (p);
while (g_ascii_isspace (*(p + len - 1)))
len--;
if (len > 0)
{
if (in_para)
@ -649,7 +649,7 @@ load_file (const gchar *filename)
}
else
break;
case 3:
/* Reading program body */
gtk_text_buffer_insert (source_buffer, &start, p, -1);
@ -659,7 +659,7 @@ load_file (const gchar *filename)
}
fclose (file);
fontify ();
g_string_free (buffer, TRUE);
@ -677,7 +677,7 @@ row_activated_cb (GtkTreeView *tree_view,
GtkTreeModel *model;
model = gtk_tree_view_get_model (tree_view);
gtk_tree_model_get_iter (model, &iter, path);
gtk_tree_model_get (GTK_TREE_MODEL (model),
&iter,
@ -692,15 +692,15 @@ row_activated_cb (GtkTreeView *tree_view,
STYLE_COLUMN, (style == PANGO_STYLE_ITALIC ? PANGO_STYLE_NORMAL : PANGO_STYLE_ITALIC),
-1);
window = (func) (gtk_widget_get_toplevel (GTK_WIDGET (tree_view)));
if (window != NULL)
{
CallbackData *cbdata;
cbdata = g_new (CallbackData, 1);
cbdata->model = model;
cbdata->path = gtk_tree_path_copy (path);
g_signal_connect (window, "destroy",
G_CALLBACK (window_closed_cb), cbdata);
}
@ -739,16 +739,16 @@ create_text (GtkTextBuffer **buffer,
GTK_POLICY_AUTOMATIC);
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolled_window),
GTK_SHADOW_IN);
text_view = gtk_text_view_new ();
*buffer = gtk_text_buffer_new (NULL);
gtk_text_view_set_buffer (GTK_TEXT_VIEW (text_view), *buffer);
gtk_text_view_set_editable (GTK_TEXT_VIEW (text_view), FALSE);
gtk_text_view_set_cursor_visible (GTK_TEXT_VIEW (text_view), FALSE);
gtk_container_add (GTK_CONTAINER (scrolled_window), text_view);
if (is_source)
{
font_desc = pango_font_description_from_string ("monospace");
@ -768,7 +768,7 @@ create_text (GtkTextBuffer **buffer,
gtk_text_view_set_pixels_below_lines (GTK_TEXT_VIEW (text_view),
2);
}
return scrolled_window;
}
@ -815,13 +815,13 @@ create_tree (void)
if (!children)
continue;
while (children->title)
{
GtkTreeIter child_iter;
gtk_tree_store_append (GTK_TREE_STORE (model), &child_iter, &iter);
gtk_tree_store_set (GTK_TREE_STORE (model),
&child_iter,
TITLE_COLUMN, children->title,
@ -829,7 +829,7 @@ create_tree (void)
FUNC_COLUMN, children->func,
STYLE_COLUMN, PANGO_STYLE_NORMAL,
-1);
children++;
}
}
@ -841,7 +841,7 @@ create_tree (void)
"text", TITLE_COLUMN,
"style", STYLE_COLUMN,
NULL);
gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view),
GTK_TREE_VIEW_COLUMN (column));
@ -853,7 +853,7 @@ create_tree (void)
gtk_tree_view_collapse_all (GTK_TREE_VIEW (tree_view));
gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (tree_view), FALSE);
scrolled_window = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
GTK_POLICY_NEVER,
@ -896,7 +896,7 @@ setup_default_icon (void)
if (err)
{
GtkWidget *dialog;
dialog = gtk_message_dialog_new (NULL, 0,
GTK_MESSAGE_ERROR,
GTK_BUTTONS_CLOSE,
@ -910,7 +910,7 @@ setup_default_icon (void)
if (pixbuf)
{
GList *list;
GList *list;
GdkPixbuf *transparent;
/* The gtk-logo-rgb icon has a white background, make it transparent */
@ -944,11 +944,11 @@ main (int argc, char **argv)
g_setenv ("GTK_IM_MODULE_FILE", "../../modules/input/immodules.cache", TRUE);
}
/* -- End of hack -- */
gtk_init (&argc, &argv);
setup_default_icon ();
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "GTK+ Code Demos");
g_signal_connect_after (window, "destroy",
@ -999,13 +999,13 @@ main (int argc, char **argv)
"foreground", "DarkGoldenrod4",
NULL);
g_object_unref (source_buffer);
gtk_window_set_default_size (GTK_WINDOW (window), 600, 400);
gtk_widget_show_all (window);
load_file (testgtk_demos[0].filename);
gtk_main ();
return 0;

View file

@ -1,7 +1,7 @@
## Makefile for building the gtk test apps with Microsoft C
## Use: nmake -f makefile.msc
## There is no install target, you have to decide where and
## There is no install target, you have to decide where and
## how to install for yourself.
TOP = ..\..\..
@ -33,7 +33,7 @@ all : \
demos.h \
gtk-demo.exe
## These should be in the order you want them to appear in the
## These should be in the order you want them to appear in the
## demo app, which means alphabetized by demo title, not filename
DEMOS = \
appwindow.c \

View file

@ -87,7 +87,7 @@ change_orientation (GtkWidget *button,
gtk_container_add (GTK_CONTAINER (box), menubar);
gtk_box_reorder_child (GTK_BOX (box), menubar, 0);
g_object_unref (menubar);
g_object_set (menubar,
g_object_set (menubar,
"pack-direction", GTK_PACK_DIRECTION_TTB,
NULL);
}
@ -111,7 +111,7 @@ change_orientation (GtkWidget *button,
gtk_container_add (GTK_CONTAINER (box), menubar);
gtk_box_reorder_child (GTK_BOX (box), menubar, 0);
g_object_unref (menubar);
g_object_set (menubar,
g_object_set (menubar,
"pack-direction", GTK_PACK_DIRECTION_LTR,
NULL);
}

View file

@ -256,7 +256,7 @@ gtk_rotated_bin_realize (GtkWidget *widget)
attributes.wclass = GDK_INPUT_OUTPUT;
attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP;
gdk_window = gdk_window_new (gtk_widget_get_parent_window (widget), &attributes, attributes_mask);
gtk_widget_set_window (widget, gdk_window);
gdk_window_set_user_data (gdk_window, widget);
@ -384,9 +384,9 @@ gtk_rotated_bin_size_request (GtkWidget *widget,
gint border_width;
double s, c;
double w, h;
border_width = gtk_container_get_border_width (GTK_CONTAINER (widget));
child_requisition.width = 0;
child_requisition.height = 0;

View file

@ -194,7 +194,7 @@ gtk_mirror_bin_realize (GtkWidget *widget)
attributes.wclass = GDK_INPUT_OUTPUT;
attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP;
gdk_window = gdk_window_new (gtk_widget_get_parent_window (widget),
&attributes, attributes_mask);
gtk_widget_set_window (widget, gdk_window);
@ -309,7 +309,7 @@ gtk_mirror_bin_size_request (GtkWidget *widget,
GtkMirrorBin *bin = GTK_MIRROR_BIN (widget);
GtkRequisition child_requisition;
gint border_width;
border_width = gtk_container_get_border_width (GTK_CONTAINER (widget));
child_requisition.width = 0;
@ -329,7 +329,7 @@ gtk_mirror_bin_size_allocate (GtkWidget *widget,
GtkMirrorBin *bin = GTK_MIRROR_BIN (widget);
gint border_width;
gint w, h;
gtk_widget_set_allocation (widget, allocation);
border_width = gtk_container_get_border_width (GTK_CONTAINER (widget));

View file

@ -63,26 +63,26 @@ create_pane_options (GtkPaned *paned,
GtkWidget *check_button;
GtkWidget *child1;
GtkWidget *child2;
child1 = gtk_paned_get_child1 (paned);
child2 = gtk_paned_get_child2 (paned);
frame = gtk_frame_new (frame_label);
gtk_container_set_border_width (GTK_CONTAINER (frame), 4);
table = gtk_table_new (3, 2, TRUE);
gtk_container_add (GTK_CONTAINER (frame), table);
label = gtk_label_new (label1);
gtk_table_attach_defaults (GTK_TABLE (table), label,
0, 1, 0, 1);
check_button = gtk_check_button_new_with_mnemonic ("_Resize");
gtk_table_attach_defaults (GTK_TABLE (table), check_button,
0, 1, 1, 2);
g_signal_connect (check_button, "toggled",
G_CALLBACK (toggle_resize), child1);
check_button = gtk_check_button_new_with_mnemonic ("_Shrink");
gtk_table_attach_defaults (GTK_TABLE (table), check_button,
0, 1, 2, 3);
@ -90,11 +90,11 @@ create_pane_options (GtkPaned *paned,
TRUE);
g_signal_connect (check_button, "toggled",
G_CALLBACK (toggle_shrink), child1);
label = gtk_label_new (label2);
gtk_table_attach_defaults (GTK_TABLE (table), label,
1, 2, 0, 1);
check_button = gtk_check_button_new_with_mnemonic ("_Resize");
gtk_table_attach_defaults (GTK_TABLE (table), check_button,
1, 2, 1, 2);
@ -102,7 +102,7 @@ create_pane_options (GtkPaned *paned,
TRUE);
g_signal_connect (check_button, "toggled",
G_CALLBACK (toggle_resize), child2);
check_button = gtk_check_button_new_with_mnemonic ("_Shrink");
gtk_table_attach_defaults (GTK_TABLE (table), check_button,
1, 2, 2, 3);
@ -138,7 +138,7 @@ do_panes (GtkWidget *do_widget)
vbox = gtk_vbox_new (FALSE, 0);
gtk_container_add (GTK_CONTAINER (window), vbox);
vpaned = gtk_vpaned_new ();
gtk_box_pack_start (GTK_BOX (vbox), vpaned, TRUE, TRUE, 0);
gtk_container_set_border_width (GTK_CONTAINER(vpaned), 5);
@ -150,7 +150,7 @@ do_panes (GtkWidget *do_widget)
gtk_frame_set_shadow_type (GTK_FRAME(frame), GTK_SHADOW_IN);
gtk_widget_set_size_request (frame, 60, 60);
gtk_paned_add1 (GTK_PANED (hpaned), frame);
button = gtk_button_new_with_mnemonic ("_Hi there");
gtk_container_add (GTK_CONTAINER(frame), button);

View file

@ -1,4 +1,4 @@
/* Pickers
/* Pickers
*
* These widgets are mainly intended for use in preference dialogs.
* They allow to select colors, fonts, files and directories.
@ -18,14 +18,14 @@ do_pickers (GtkWidget *do_widget)
gtk_window_set_screen (GTK_WINDOW (window),
gtk_widget_get_screen (do_widget));
gtk_window_set_title (GTK_WINDOW (window), "Pickers");
g_signal_connect (window, "destroy",
G_CALLBACK (gtk_widget_destroyed),
&window);
gtk_container_set_border_width (GTK_CONTAINER (window), 10);
table = gtk_table_new (4, 2, FALSE);
table = gtk_table_new (4, 2, FALSE);
gtk_table_set_col_spacing (GTK_TABLE (table), 0, 10);
gtk_table_set_row_spacings (GTK_TABLE (table), 3);
gtk_container_add (GTK_CONTAINER (window), table);
@ -46,14 +46,14 @@ do_pickers (GtkWidget *do_widget)
label = gtk_label_new ("File:");
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
picker = gtk_file_chooser_button_new ("Pick a File",
picker = gtk_file_chooser_button_new ("Pick a File",
GTK_FILE_CHOOSER_ACTION_OPEN);
gtk_table_attach_defaults (GTK_TABLE (table), label, 0, 1, 2, 3);
gtk_table_attach_defaults (GTK_TABLE (table), picker, 1, 2, 2, 3);
label = gtk_label_new ("Folder:");
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
picker = gtk_file_chooser_button_new ("Pick a Folder",
picker = gtk_file_chooser_button_new ("Pick a Folder",
GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER);
gtk_table_attach_defaults (GTK_TABLE (table), label, 0, 1, 3, 4);
gtk_table_attach_defaults (GTK_TABLE (table), picker, 1, 2, 3, 4);
@ -64,7 +64,7 @@ do_pickers (GtkWidget *do_widget)
gtk_widget_show_all (window);
}
else
{
{
gtk_widget_destroy (window);
window = NULL;
}

View file

@ -71,7 +71,7 @@ load_pixbufs (GError **error)
background = gdk_pixbuf_new_from_file (filename, error);
g_free (filename);
if (!background)
return FALSE; /* Note that "error" was filled with a GError */
@ -83,10 +83,10 @@ load_pixbufs (GError **error)
filename = demo_find_file (image_names[i], error);
if (!filename)
return FALSE; /* Note that "error" was filled with a GError */
images[i] = gdk_pixbuf_new_from_file (filename, error);
g_free (filename);
if (!images[i])
return FALSE; /* Note that "error" was filled with a GError */
}

View file

@ -75,7 +75,7 @@ create_fancy_attr_list_for_layout (PangoLayout *layout)
for (p = text; (p = strstr (p, HEART)); p += strlen (HEART))
{
PangoAttribute *attr;
attr = pango_attr_shape_new_with_data (&ink_rect,
&logical_rect,
GUINT_TO_POINTER (g_utf8_get_char (p)),
@ -111,7 +111,7 @@ rotated_text_expose_event (GtkWidget *widget,
int width, height;
double device_radius;
int i;
gtk_widget_get_allocation (widget, &allocation);
width = allocation.width;
@ -157,7 +157,7 @@ rotated_text_expose_event (GtkWidget *widget,
/* Inform Pango to re-layout the text with the new transformation matrix */
pango_cairo_update_layout (cr, layout);
pango_layout_get_pixel_size (layout, &width, &height);
cairo_move_to (cr, - width / 2, - RADIUS * .9);
pango_cairo_show_layout (cr, layout);
@ -172,7 +172,7 @@ rotated_text_expose_event (GtkWidget *widget,
g_object_unref (context);
cairo_pattern_destroy (pattern);
cairo_destroy (cr);
return FALSE;
}
@ -188,7 +188,7 @@ do_rotated_text (GtkWidget *do_widget)
PangoAttrList *attrs;
const GdkColor white = { 0, 0xffff, 0xffff, 0xffff };
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_screen (GTK_WINDOW (window),
gtk_widget_get_screen (do_widget));

View file

@ -2,9 +2,9 @@
*
* GtkSizeGroup provides a mechanism for grouping a number of
* widgets together so they all request the same amount of space.
* This is typically useful when you want a column of widgets to
* This is typically useful when you want a column of widgets to
* have the same size, but you can't use a GtkTable widget.
*
*
* Note that size groups only affect the amount of space requested,
* not the size that the widgets finally receive. If you want the
* widgets in a GtkSizeGroup to actually be the same size, you need
@ -26,7 +26,7 @@ create_combo_box (const char **strings)
const char **str;
combo_box = gtk_combo_box_text_new ();
for (str = strings; *str; str++)
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo_box), *str);
@ -51,7 +51,7 @@ add_row (GtkTable *table,
0, 1, row, row + 1,
GTK_EXPAND | GTK_FILL, 0,
0, 0);
combo_box = create_combo_box (options);
gtk_label_set_mnemonic_widget (GTK_LABEL (label), combo_box);
gtk_size_group_add_widget (size_group, combo_box);
@ -75,7 +75,7 @@ toggle_grouping (GtkToggleButton *check_button,
new_mode = GTK_SIZE_GROUP_HORIZONTAL;
else
new_mode = GTK_SIZE_GROUP_NONE;
gtk_size_group_set_mode (size_group, new_mode);
}
@ -91,15 +91,15 @@ do_sizegroup (GtkWidget *do_widget)
static const char *color_options[] = {
"Red", "Green", "Blue", NULL
};
static const char *dash_options[] = {
"Solid", "Dashed", "Dotted", NULL
};
static const char *end_options[] = {
"Square", "Round", "Arrow", NULL
};
if (!window)
{
window = gtk_dialog_new_with_buttons ("GtkSizeGroup",
@ -109,7 +109,7 @@ do_sizegroup (GtkWidget *do_widget)
GTK_RESPONSE_NONE,
NULL);
gtk_window_set_resizable (GTK_WINDOW (window), FALSE);
g_signal_connect (window, "response",
G_CALLBACK (gtk_widget_destroy), NULL);
g_signal_connect (window, "destroy",
@ -120,7 +120,7 @@ do_sizegroup (GtkWidget *do_widget)
gtk_container_set_border_width (GTK_CONTAINER (vbox), 5);
size_group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
/* Create one frame holding color options
*/
frame = gtk_frame_new ("Color Options");
@ -152,7 +152,7 @@ do_sizegroup (GtkWidget *do_widget)
/* And a check button to turn grouping on and off */
check_button = gtk_check_button_new_with_mnemonic ("_Enable grouping");
gtk_box_pack_start (GTK_BOX (vbox), check_button, FALSE, FALSE, 0);
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check_button), TRUE);
g_signal_connect (check_button, "toggled",
G_CALLBACK (toggle_grouping), size_group);

View file

@ -35,7 +35,7 @@ stock_item_info_free (StockItemInfo *info)
g_free (info->accel_str);
if (info->small_icon)
g_object_unref (info->small_icon);
g_free (info);
}
@ -48,7 +48,7 @@ stock_item_info_copy (StockItemInfo *src)
info->id = g_strdup (src->id);
info->macro = g_strdup (src->macro);
info->accel_str = g_strdup (src->accel_str);
info->item = src->item;
info->small_icon = src->small_icon;
@ -62,7 +62,7 @@ static GType
stock_item_info_get_type (void)
{
static GType our_type = 0;
if (our_type == 0)
our_type = g_boxed_type_register_static ("StockItemInfo",
(GBoxedCopyFunc) stock_item_info_copy,
@ -90,9 +90,9 @@ id_to_macro (const gchar *id)
/* gtk-foo-bar -> GTK_STOCK_FOO_BAR */
macro = g_string_new (NULL);
cp = id;
if (strncmp (cp, "gtk-", 4) == 0)
{
g_string_append (macro, "GTK_STOCK_");
@ -120,7 +120,7 @@ create_model (void)
GtkListStore *store;
GSList *ids;
GSList *tmp_list;
store = gtk_list_store_new (2, STOCK_ITEM_INFO_TYPE, G_TYPE_STRING);
ids = gtk_stock_list_ids ();
@ -132,9 +132,9 @@ create_model (void)
GtkStockItem item;
GtkTreeIter iter;
GtkIconSet *icon_set;
info.id = tmp_list->data;
if (gtk_stock_lookup (info.id, &item))
{
info.item = item;
@ -173,19 +173,19 @@ create_model (void)
++i;
}
g_free (sizes);
info.small_icon = gtk_widget_render_icon (window, info.id,
size,
NULL);
if (size != GTK_ICON_SIZE_MENU)
{
/* Make the result the proper size for our thumbnail */
gint w, h;
GdkPixbuf *scaled;
gtk_icon_size_lookup (GTK_ICON_SIZE_MENU, &w, &h);
scaled = gdk_pixbuf_scale_simple (info.small_icon,
w, h,
GDK_INTERP_BILINEAR);
@ -208,7 +208,7 @@ create_model (void)
}
info.macro = id_to_macro (info.id);
gtk_list_store_append (store, &iter);
gtk_list_store_set (store, &iter, 0, &info, 1, info.id, -1);
@ -216,10 +216,10 @@ create_model (void)
g_free (info.accel_str);
if (info.small_icon)
g_object_unref (info.small_icon);
tmp_list = g_slist_next (tmp_list);
}
g_slist_foreach (ids, (GFunc)g_free, NULL);
g_slist_free (ids);
@ -243,7 +243,7 @@ get_largest_size (const char *id)
for (i = 0; i < n_sizes; i++)
{
gint width, height;
gtk_icon_size_lookup (sizes[i], &width, &height);
if (width * height > best_pixels)
@ -252,7 +252,7 @@ get_largest_size (const char *id)
best_pixels = width * height;
}
}
g_free (sizes);
return best_size;
@ -265,7 +265,7 @@ selection_changed (GtkTreeSelection *selection)
StockItemDisplay *display;
GtkTreeModel *model;
GtkTreeIter iter;
treeview = gtk_tree_selection_get_tree_view (selection);
display = g_object_get_data (G_OBJECT (treeview), "stock-display");
@ -273,7 +273,7 @@ selection_changed (GtkTreeSelection *selection)
{
StockItemInfo *info;
gchar *str;
gtk_tree_model_get (model, &iter,
0, &info,
-1);
@ -327,15 +327,15 @@ macro_set_func_text (GtkTreeViewColumn *tree_column,
gpointer data)
{
StockItemInfo *info;
gtk_tree_model_get (model, iter,
0, &info,
-1);
g_object_set (GTK_CELL_RENDERER (cell),
"text", info->macro,
NULL);
stock_item_info_free (info);
}
@ -347,15 +347,15 @@ id_set_func (GtkTreeViewColumn *tree_column,
gpointer data)
{
StockItemInfo *info;
gtk_tree_model_get (model, iter,
0, &info,
-1);
g_object_set (GTK_CELL_RENDERER (cell),
"text", info->id,
NULL);
stock_item_info_free (info);
}
@ -367,15 +367,15 @@ accel_set_func (GtkTreeViewColumn *tree_column,
gpointer data)
{
StockItemInfo *info;
gtk_tree_model_get (model, iter,
0, &info,
-1);
g_object_set (GTK_CELL_RENDERER (cell),
"text", info->accel_str,
NULL);
stock_item_info_free (info);
}
@ -387,21 +387,21 @@ label_set_func (GtkTreeViewColumn *tree_column,
gpointer data)
{
StockItemInfo *info;
gtk_tree_model_get (model, iter,
0, &info,
-1);
g_object_set (GTK_CELL_RENDERER (cell),
"text", info->item.label,
NULL);
stock_item_info_free (info);
}
GtkWidget *
do_stock_browser (GtkWidget *do_widget)
{
{
if (!window)
{
GtkWidget *frame;
@ -435,13 +435,13 @@ do_stock_browser (GtkWidget *do_widget)
gtk_box_pack_start (GTK_BOX (hbox), sw, FALSE, FALSE, 0);
model = create_model ();
treeview = gtk_tree_view_new_with_model (model);
g_object_unref (model);
gtk_container_add (GTK_CONTAINER (sw), treeview);
column = gtk_tree_view_column_new ();
gtk_tree_view_column_set_title (column, "Macro");
@ -487,10 +487,10 @@ do_stock_browser (GtkWidget *do_widget)
id_set_func,
NULL,
NULL);
align = gtk_alignment_new (0.5, 0.0, 0.0, 0.0);
gtk_box_pack_end (GTK_BOX (hbox), align, FALSE, FALSE, 0);
frame = gtk_frame_new ("Selected Item");
gtk_container_add (GTK_CONTAINER (align), frame);
@ -503,7 +503,7 @@ do_stock_browser (GtkWidget *do_widget)
"stock-display",
display,
g_free); /* free display with treeview */
display->type_label = gtk_label_new (NULL);
display->macro_label = gtk_label_new (NULL);
display->id_label = gtk_label_new (NULL);
@ -515,7 +515,7 @@ do_stock_browser (GtkWidget *do_widget)
gtk_box_pack_start (GTK_BOX (vbox), display->icon_image,
FALSE, FALSE, 0);
gtk_box_pack_start (GTK_BOX (vbox), display->label_accel_label,
FALSE, FALSE, 0);
gtk_box_pack_start (GTK_BOX (vbox), display->macro_label,
@ -525,7 +525,7 @@ do_stock_browser (GtkWidget *do_widget)
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview));
gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE);
g_signal_connect (selection,
"changed",
G_CALLBACK (selection_changed),
@ -537,7 +537,7 @@ do_stock_browser (GtkWidget *do_widget)
gtk_widget_show_all (window);
}
else
{
{
gtk_widget_destroy (window);
window = NULL;
}

View file

@ -1,6 +1,6 @@
/* Text Widget/Automatic scrolling
*
* This example demonstrates how to use the gravity of
* This example demonstrates how to use the gravity of
* GtkTextMarks to keep a text view scrolled to the bottom
* while appending text.
*/
@ -20,14 +20,14 @@ scroll_to_end (GtkTextView *textview)
static int count;
buffer = gtk_text_view_get_buffer (textview);
/* Get "end" mark. It's located at the end of buffer because
/* Get "end" mark. It's located at the end of buffer because
* of right gravity
*/
mark = gtk_text_buffer_get_mark (buffer, "end");
gtk_text_buffer_get_iter_at_mark (buffer, &iter, mark);
/* and insert some text at its position, the iter will be
/* and insert some text at its position, the iter will be
* revalidated after insertion to point to the end of inserted text
*/
spaces = g_strnfill (count++, ' ');
@ -43,7 +43,7 @@ scroll_to_end (GtkTextView *textview)
*/
gtk_text_view_scroll_mark_onscreen (textview, mark);
/* Emulate typewriter behavior, shift to the left if we
/* Emulate typewriter behavior, shift to the left if we
* are far enough to the right.
*/
if (count > 150)
@ -64,7 +64,7 @@ scroll_to_bottom (GtkTextView *textview)
static int count;
buffer = gtk_text_view_get_buffer (textview);
/* Get end iterator */
gtk_text_buffer_get_end_iter (buffer, &iter);
@ -80,17 +80,17 @@ scroll_to_bottom (GtkTextView *textview)
-1);
g_free (spaces);
/* Move the iterator to the beginning of line, so we don't scroll
* in horizontal direction
/* Move the iterator to the beginning of line, so we don't scroll
* in horizontal direction
*/
gtk_text_iter_set_line_offset (&iter, 0);
/* and place the mark at iter. the mark will stay there after we
* insert some text at the end because it has right gravity.
*/
mark = gtk_text_buffer_get_mark (buffer, "scroll");
gtk_text_buffer_move_mark (buffer, mark, &iter);
/* Scroll the mark onscreen.
*/
gtk_text_view_scroll_mark_onscreen (textview, mark);
@ -116,25 +116,25 @@ setup_scroll (GtkTextView *textview,
if (to_end)
{
/* If we want to scroll to the end, including horizontal scrolling,
* then we just create a mark with right gravity at the end of the
* buffer. It will stay at the end unless explicitely moved with
* then we just create a mark with right gravity at the end of the
* buffer. It will stay at the end unless explicitely moved with
* gtk_text_buffer_move_mark.
*/
gtk_text_buffer_create_mark (buffer, "end", &iter, FALSE);
/* Add scrolling timeout. */
return g_timeout_add (50, (GSourceFunc) scroll_to_end, textview);
}
else
{
/* If we want to scroll to the bottom, but not scroll horizontally,
* then an end mark won't do the job. Just create a mark so we can
/* If we want to scroll to the bottom, but not scroll horizontally,
* then an end mark won't do the job. Just create a mark so we can
* use it with gtk_text_view_scroll_mark_onscreen, we'll position it
* explicitely when needed. Use left gravity so the mark stays where
* explicitely when needed. Use left gravity so the mark stays where
* we put it after inserting new text.
*/
gtk_text_buffer_create_mark (buffer, "scroll", &iter, TRUE);
/* Add scrolling timeout. */
return g_timeout_add (100, (GSourceFunc) scroll_to_bottom, textview);
}
@ -163,7 +163,7 @@ create_text_view (GtkWidget *hbox,
timeout = setup_scroll (GTK_TEXT_VIEW (textview), to_end);
/* Remove the timeout in destroy handler, so we don't try to
* scroll destroyed widget.
* scroll destroyed widget.
*/
g_signal_connect (textview, "destroy",
G_CALLBACK (remove_timeout),
@ -183,7 +183,7 @@ do_textscroll (GtkWidget *do_widget)
g_signal_connect (window, "destroy",
G_CALLBACK (gtk_widget_destroyed), &window);
gtk_window_set_default_size (GTK_WINDOW (window), 600, 400);
hbox = gtk_hbox_new (TRUE, 6);
gtk_container_add (GTK_CONTAINER (window), hbox);

View file

@ -40,13 +40,13 @@ create_tags (GtkTextBuffer *buffer)
"weight", PANGO_WEIGHT_BOLD,
"size", 15 * PANGO_SCALE,
NULL);
gtk_text_buffer_create_tag (buffer, "italic",
"style", PANGO_STYLE_ITALIC, NULL);
gtk_text_buffer_create_tag (buffer, "bold",
"weight", PANGO_WEIGHT_BOLD, NULL);
"weight", PANGO_WEIGHT_BOLD, NULL);
gtk_text_buffer_create_tag (buffer, "big",
/* points times the PANGO_SCALE factor */
"size", 20 * PANGO_SCALE, NULL);
@ -56,12 +56,12 @@ create_tags (GtkTextBuffer *buffer)
gtk_text_buffer_create_tag (buffer, "x-large",
"scale", PANGO_SCALE_X_LARGE, NULL);
gtk_text_buffer_create_tag (buffer, "monospace",
"family", "monospace", NULL);
gtk_text_buffer_create_tag (buffer, "blue_foreground",
"foreground", "blue", NULL);
"foreground", "blue", NULL);
gtk_text_buffer_create_tag (buffer, "red_background",
"background", "red", NULL);
@ -77,7 +77,7 @@ create_tags (GtkTextBuffer *buffer)
gtk_text_buffer_create_tag (buffer, "not_editable",
"editable", FALSE, NULL);
gtk_text_buffer_create_tag (buffer, "word_wrap",
"wrap_mode", GTK_WRAP_WORD, NULL);
@ -86,7 +86,7 @@ create_tags (GtkTextBuffer *buffer)
gtk_text_buffer_create_tag (buffer, "no_wrap",
"wrap_mode", GTK_WRAP_NONE, NULL);
gtk_text_buffer_create_tag (buffer, "center",
"justification", GTK_JUSTIFY_CENTER, NULL);
@ -96,10 +96,10 @@ create_tags (GtkTextBuffer *buffer)
gtk_text_buffer_create_tag (buffer, "wide_margins",
"left_margin", 50, "right_margin", 50,
NULL);
gtk_text_buffer_create_tag (buffer, "strikethrough",
"strikethrough", TRUE, NULL);
gtk_text_buffer_create_tag (buffer, "underline",
"underline", PANGO_UNDERLINE_SINGLE, NULL);
@ -110,7 +110,7 @@ create_tags (GtkTextBuffer *buffer)
"rise", 10 * PANGO_SCALE, /* 10 pixels */
"size", 8 * PANGO_SCALE, /* 8 points */
NULL);
gtk_text_buffer_create_tag (buffer, "subscript",
"rise", -10 * PANGO_SCALE, /* 10 pixels */
"size", 8 * PANGO_SCALE, /* 8 points */
@ -155,7 +155,7 @@ insert_text (GtkTextBuffer *buffer)
scaled = gdk_pixbuf_scale_simple (pixbuf, 32, 32, GDK_INTERP_BILINEAR);
g_object_unref (pixbuf);
pixbuf = scaled;
/* get start of buffer; each insertion will revalidate the
* iterator to point to just after the inserted text.
*/
@ -165,12 +165,12 @@ insert_text (GtkTextBuffer *buffer)
gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "Font styles. ", -1,
"heading", NULL);
gtk_text_buffer_insert (buffer, &iter, "For example, you can have ", -1);
gtk_text_buffer_insert_with_tags_by_name (buffer, &iter,
"italic", -1,
"italic", NULL);
gtk_text_buffer_insert (buffer, &iter, ", ", -1);
gtk_text_buffer_insert (buffer, &iter, ", ", -1);
gtk_text_buffer_insert_with_tags_by_name (buffer, &iter,
"bold", -1,
"bold", NULL);
@ -192,29 +192,29 @@ insert_text (GtkTextBuffer *buffer)
"x-large", -1,
"x-large", NULL);
gtk_text_buffer_insert (buffer, &iter, " to ensure that your program properly adapts if the user changes the default font size.\n\n", -1);
gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "Colors. ", -1,
"heading", NULL);
gtk_text_buffer_insert (buffer, &iter, "Colors such as ", -1);
gtk_text_buffer_insert (buffer, &iter, "Colors such as ", -1);
gtk_text_buffer_insert_with_tags_by_name (buffer, &iter,
"a blue foreground", -1,
"blue_foreground", NULL);
gtk_text_buffer_insert (buffer, &iter, " or ", -1);
gtk_text_buffer_insert (buffer, &iter, " or ", -1);
gtk_text_buffer_insert_with_tags_by_name (buffer, &iter,
"a red background", -1,
"red_background", NULL);
gtk_text_buffer_insert (buffer, &iter, " or even ", -1);
gtk_text_buffer_insert (buffer, &iter, " or even ", -1);
gtk_text_buffer_insert_with_tags_by_name (buffer, &iter,
"a blue foreground on red background", -1,
"blue_foreground",
"red_background",
NULL);
gtk_text_buffer_insert (buffer, &iter, " (select that to read it) can be used.\n\n", -1);
gtk_text_buffer_insert (buffer, &iter, " (select that to read it) can be used.\n\n", -1);
gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "Underline, strikethrough, and rise. ", -1,
"heading", NULL);
gtk_text_buffer_insert_with_tags_by_name (buffer, &iter,
"Strikethrough", -1,
"strikethrough", NULL);
@ -224,7 +224,7 @@ insert_text (GtkTextBuffer *buffer)
"underline", NULL);
gtk_text_buffer_insert (buffer, &iter, ", ", -1);
gtk_text_buffer_insert_with_tags_by_name (buffer, &iter,
"double underline", -1,
"double underline", -1,
"double_underline", NULL);
gtk_text_buffer_insert (buffer, &iter, ", ", -1);
gtk_text_buffer_insert_with_tags_by_name (buffer, &iter,
@ -238,7 +238,7 @@ insert_text (GtkTextBuffer *buffer)
gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "Images. ", -1,
"heading", NULL);
gtk_text_buffer_insert (buffer, &iter, "The buffer can have images in it: ", -1);
gtk_text_buffer_insert_pixbuf (buffer, &iter, pixbuf);
gtk_text_buffer_insert_pixbuf (buffer, &iter, pixbuf);
@ -249,14 +249,14 @@ insert_text (GtkTextBuffer *buffer)
"heading", NULL);
gtk_text_buffer_insert (buffer, &iter, "You can adjust the amount of space before each line.\n", -1);
gtk_text_buffer_insert_with_tags_by_name (buffer, &iter,
"This line has a whole lot of space before it.\n", -1,
"big_gap_before_line", "wide_margins", NULL);
gtk_text_buffer_insert_with_tags_by_name (buffer, &iter,
"You can also adjust the amount of space after each line; this line has a whole lot of space after it.\n", -1,
"big_gap_after_line", "wide_margins", NULL);
gtk_text_buffer_insert_with_tags_by_name (buffer, &iter,
"You can also adjust the amount of space between wrapped lines; this line has extra space between each wrapped line in the same paragraph. To show off wrapping, some filler text: the quick brown fox jumped over the lazy dog. Blah blah blah blah blah blah blah blah blah.\n", -1,
"double_spaced_line", "wide_margins", NULL);
@ -265,7 +265,7 @@ insert_text (GtkTextBuffer *buffer)
gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "Editability. ", -1,
"heading", NULL);
gtk_text_buffer_insert_with_tags_by_name (buffer, &iter,
"This line is 'locked down' and can't be edited by the user - just try it! You can't delete this line.\n\n", -1,
"not_editable", NULL);
@ -274,19 +274,19 @@ insert_text (GtkTextBuffer *buffer)
"heading", NULL);
gtk_text_buffer_insert (buffer, &iter,
"This line (and most of the others in this buffer) is word-wrapped, using the proper Unicode algorithm. Word wrap should work in all scripts and languages that GTK+ supports. Let's make this a long paragraph to demonstrate: blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah\n\n", -1);
"This line (and most of the others in this buffer) is word-wrapped, using the proper Unicode algorithm. Word wrap should work in all scripts and languages that GTK+ supports. Let's make this a long paragraph to demonstrate: blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah\n\n", -1);
gtk_text_buffer_insert_with_tags_by_name (buffer, &iter,
"This line has character-based wrapping, and can wrap between any two character glyphs. Let's make this a long paragraph to demonstrate: blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah\n\n", -1,
"char_wrap", NULL);
gtk_text_buffer_insert_with_tags_by_name (buffer, &iter,
"This line has all wrapping turned off, so it makes the horizontal scrollbar appear.\n\n\n", -1,
"no_wrap", NULL);
gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "Justification. ", -1,
"heading", NULL);
"heading", NULL);
gtk_text_buffer_insert_with_tags_by_name (buffer, &iter,
"\nThis line has center justification.\n", -1,
"center", NULL);
@ -297,18 +297,18 @@ insert_text (GtkTextBuffer *buffer)
gtk_text_buffer_insert_with_tags_by_name (buffer, &iter,
"\nThis line has big wide margins. Text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text.\n", -1,
"wide_margins", NULL);
"wide_margins", NULL);
gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "Internationalization. ", -1,
"heading", NULL);
gtk_text_buffer_insert (buffer, &iter,
"You can put all sorts of Unicode text in the buffer.\n\nGerman (Deutsch S\303\274d) Gr\303\274\303\237 Gott\nGreek (\316\225\316\273\316\273\316\267\316\275\316\271\316\272\316\254) \316\223\316\265\316\271\316\254 \317\203\316\261\317\202\nHebrew \327\251\327\234\327\225\327\235\nJapanese (\346\227\245\346\234\254\350\252\236)\n\nThe widget properly handles bidirectional text, word wrapping, DOS/UNIX/Unicode paragraph separators, grapheme boundaries, and so on using the Pango internationalization framework.\n", -1);
"You can put all sorts of Unicode text in the buffer.\n\nGerman (Deutsch S\303\274d) Gr\303\274\303\237 Gott\nGreek (\316\225\316\273\316\273\316\267\316\275\316\271\316\272\316\254) \316\223\316\265\316\271\316\254 \317\203\316\261\317\202\nHebrew \327\251\327\234\327\225\327\235\nJapanese (\346\227\245\346\234\254\350\252\236)\n\nThe widget properly handles bidirectional text, word wrapping, DOS/UNIX/Unicode paragraph separators, grapheme boundaries, and so on using the Pango internationalization framework.\n", -1);
gtk_text_buffer_insert (buffer, &iter, "Here's a word-wrapped quote in a right-to-left language:\n", -1);
gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "\331\210\331\202\330\257 \330\250\330\257\330\243 \330\253\331\204\330\247\330\253 \331\205\331\206 \330\243\331\203\330\253\330\261 \330\247\331\204\331\205\330\244\330\263\330\263\330\247\330\252 \330\252\331\202\330\257\331\205\330\247 \331\201\331\212 \330\264\330\250\331\203\330\251 \330\247\331\203\330\263\331\212\331\210\331\206 \330\250\330\261\330\247\331\205\330\254\331\207\330\247 \331\203\331\205\331\206\330\270\331\205\330\247\330\252 \331\204\330\247 \330\252\330\263\330\271\331\211 \331\204\331\204\330\261\330\250\330\255\330\214 \330\253\331\205 \330\252\330\255\331\210\331\204\330\252 \331\201\331\212 \330\247\331\204\330\263\331\206\331\210\330\247\330\252 \330\247\331\204\330\256\331\205\330\263 \330\247\331\204\331\205\330\247\330\266\331\212\330\251 \330\245\331\204\331\211 \331\205\330\244\330\263\330\263\330\247\330\252 \331\205\330\247\331\204\331\212\330\251 \331\205\331\206\330\270\331\205\330\251\330\214 \331\210\330\250\330\247\330\252\330\252 \330\254\330\262\330\241\330\247 \331\205\331\206 \330\247\331\204\331\206\330\270\330\247\331\205 \330\247\331\204\331\205\330\247\331\204\331\212 \331\201\331\212 \330\250\331\204\330\257\330\247\331\206\331\207\330\247\330\214 \331\210\331\204\331\203\331\206\331\207\330\247 \330\252\330\252\330\256\330\265\330\265 \331\201\331\212 \330\256\330\257\331\205\330\251 \331\202\330\267\330\247\330\271 \330\247\331\204\331\205\330\264\330\261\331\210\330\271\330\247\330\252 \330\247\331\204\330\265\330\272\331\212\330\261\330\251. \331\210\330\243\330\255\330\257 \330\243\331\203\330\253\330\261 \331\207\330\260\331\207 \330\247\331\204\331\205\330\244\330\263\330\263\330\247\330\252 \331\206\330\254\330\247\330\255\330\247 \331\207\331\210 \302\273\330\250\330\247\331\206\331\203\331\210\330\263\331\210\331\204\302\253 \331\201\331\212 \330\250\331\210\331\204\331\212\331\201\331\212\330\247.\n\n", -1,
"rtl_quote", NULL);
gtk_text_buffer_insert (buffer, &iter, "You can put widgets in the buffer: Here's a button: ", -1);
gtk_text_buffer_create_child_anchor (buffer, &iter);
gtk_text_buffer_insert (buffer, &iter, " and a menu: ", -1);
@ -320,7 +320,7 @@ insert_text (GtkTextBuffer *buffer)
gtk_text_buffer_insert (buffer, &iter, " finally a text entry: ", -1);
gtk_text_buffer_create_child_anchor (buffer, &iter);
gtk_text_buffer_insert (buffer, &iter, ".\n", -1);
gtk_text_buffer_insert (buffer, &iter, "\n\nThis demo doesn't demonstrate all the GtkTextBuffer features; it leaves out, for example: invisible/hidden text, tab stops, application-drawn areas on the sides of the widget for displaying breakpoints and such...", -1);
/* Apply word_wrap tag to whole buffer */
@ -347,7 +347,7 @@ attach_widgets (GtkTextView *text_view)
GtkTextIter iter;
GtkTextBuffer *buffer;
int i;
buffer = gtk_text_view_get_buffer (text_view);
gtk_text_buffer_get_start_iter (buffer, &iter);
@ -357,7 +357,7 @@ attach_widgets (GtkTextView *text_view)
{
GtkTextChildAnchor *anchor;
GtkWidget *widget;
anchor = gtk_text_iter_get_child_anchor (&iter);
if (i == 0)
@ -420,13 +420,13 @@ do_textview (GtkWidget *do_widget)
GtkWidget *view2;
GtkWidget *sw;
GtkTextBuffer *buffer;
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_screen (GTK_WINDOW (window),
gtk_widget_get_screen (do_widget));
gtk_window_set_default_size (GTK_WINDOW (window),
450, 450);
g_signal_connect (window, "destroy",
G_CALLBACK (gtk_widget_destroyed), &window);
@ -445,7 +445,7 @@ do_textview (GtkWidget *do_widget)
view1 = gtk_text_view_new ();
buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view1));
view2 = gtk_text_view_new_with_buffer (buffer);
sw = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw),
GTK_POLICY_AUTOMATIC,
@ -467,7 +467,7 @@ do_textview (GtkWidget *do_widget)
attach_widgets (GTK_TEXT_VIEW (view1));
attach_widgets (GTK_TEXT_VIEW (view2));
gtk_widget_show_all (vpaned);
}
@ -493,10 +493,10 @@ recursive_attach_view (int depth,
GtkWidget *event_box;
GdkColor color;
GtkWidget *align;
if (depth > 4)
return;
child_view = gtk_text_view_new_with_buffer (gtk_text_view_get_buffer (view));
/* Event box is to add a black border around each child view */
@ -506,10 +506,10 @@ recursive_attach_view (int depth,
align = gtk_alignment_new (0.5, 0.5, 1.0, 1.0);
gtk_container_set_border_width (GTK_CONTAINER (align), 1);
gtk_container_add (GTK_CONTAINER (event_box), align);
gtk_container_add (GTK_CONTAINER (align), child_view);
gtk_text_view_add_child_at_anchor (view, event_box, anchor);
recursive_attach_view (depth + 1, GTK_TEXT_VIEW (child_view), anchor);
@ -532,7 +532,7 @@ easter_egg_callback (GtkWidget *button,
gtk_window_present (GTK_WINDOW (window));
return;
}
buffer = gtk_text_buffer_new (NULL);
gtk_text_buffer_get_start_iter (buffer, &iter);
@ -544,9 +544,9 @@ easter_egg_callback (GtkWidget *button,
"\nDon't do this in real applications, please.\n", -1);
view = gtk_text_view_new_with_buffer (buffer);
recursive_attach_view (0, GTK_TEXT_VIEW (view), anchor);
g_object_unref (buffer);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
@ -562,7 +562,7 @@ easter_egg_callback (GtkWidget *button,
g_object_add_weak_pointer (G_OBJECT (window), window_ptr);
gtk_window_set_default_size (GTK_WINDOW (window), 300, 400);
gtk_widget_show_all (window);
}

View file

@ -15,7 +15,7 @@ activate_action (GtkAction *action)
static void
activate_radio_action (GtkAction *action, GtkRadioAction *current)
{
g_message ("Radio action \"%s\" selected",
g_message ("Radio action \"%s\" selected",
gtk_action_get_name (GTK_ACTION (current)));
}
@ -27,30 +27,30 @@ static GtkActionEntry entries[] = {
{ "HelpMenu", NULL, "_Help" }, /* name, stock id, label */
{ "New", GTK_STOCK_NEW, /* name, stock id */
"_New", "<control>N", /* label, accelerator */
"Create a new file", /* tooltip */
G_CALLBACK (activate_action) },
"Create a new file", /* tooltip */
G_CALLBACK (activate_action) },
{ "Open", GTK_STOCK_OPEN, /* name, stock id */
"_Open","<control>O", /* label, accelerator */
"_Open","<control>O", /* label, accelerator */
"Open a file", /* tooltip */
G_CALLBACK (activate_action) },
G_CALLBACK (activate_action) },
{ "Save", GTK_STOCK_SAVE, /* name, stock id */
"_Save","<control>S", /* label, accelerator */
"_Save","<control>S", /* label, accelerator */
"Save current file", /* tooltip */
G_CALLBACK (activate_action) },
{ "SaveAs", GTK_STOCK_SAVE, /* name, stock id */
"Save _As...", NULL, /* label, accelerator */
"Save _As...", NULL, /* label, accelerator */
"Save to a file", /* tooltip */
G_CALLBACK (activate_action) },
{ "Quit", GTK_STOCK_QUIT, /* name, stock id */
"_Quit", "<control>Q", /* label, accelerator */
"_Quit", "<control>Q", /* label, accelerator */
"Quit", /* tooltip */
G_CALLBACK (activate_action) },
{ "About", NULL, /* name, stock id */
"_About", "<control>A", /* label, accelerator */
"About", /* tooltip */
"_About", "<control>A", /* label, accelerator */
"About", /* tooltip */
G_CALLBACK (activate_action) },
{ "Logo", "demo-gtk-logo", /* name, stock id */
NULL, NULL, /* label, accelerator */
NULL, NULL, /* label, accelerator */
"GTK+", /* tooltip */
G_CALLBACK (activate_action) },
};
@ -59,9 +59,9 @@ static guint n_entries = G_N_ELEMENTS (entries);
static GtkToggleActionEntry toggle_entries[] = {
{ "Bold", GTK_STOCK_BOLD, /* name, stock id */
"_Bold", "<control>B", /* label, accelerator */
"_Bold", "<control>B", /* label, accelerator */
"Bold", /* tooltip */
G_CALLBACK (activate_action),
G_CALLBACK (activate_action),
TRUE }, /* is_active */
};
static guint n_toggle_entries = G_N_ELEMENTS (toggle_entries);
@ -74,13 +74,13 @@ enum {
static GtkRadioActionEntry color_entries[] = {
{ "Red", NULL, /* name, stock id */
"_Red", "<control>R", /* label, accelerator */
"_Red", "<control>R", /* label, accelerator */
"Blood", COLOR_RED }, /* tooltip, value */
{ "Green", NULL, /* name, stock id */
"_Green", "<control>G", /* label, accelerator */
"_Green", "<control>G", /* label, accelerator */
"Grass", COLOR_GREEN }, /* tooltip, value */
{ "Blue", NULL, /* name, stock id */
"_Blue", "<control>B", /* label, accelerator */
"_Blue", "<control>B", /* label, accelerator */
"Sky", COLOR_BLUE }, /* tooltip, value */
};
static guint n_color_entries = G_N_ELEMENTS (color_entries);
@ -93,18 +93,18 @@ enum {
static GtkRadioActionEntry shape_entries[] = {
{ "Square", NULL, /* name, stock id */
"_Square", "<control>S", /* label, accelerator */
"_Square", "<control>S", /* label, accelerator */
"Square", SHAPE_SQUARE }, /* tooltip, value */
{ "Rectangle", NULL, /* name, stock id */
"_Rectangle", "<control>R", /* label, accelerator */
"_Rectangle", "<control>R", /* label, accelerator */
"Rectangle", SHAPE_RECTANGLE }, /* tooltip, value */
{ "Oval", NULL, /* name, stock id */
"_Oval", "<control>O", /* label, accelerator */
"Egg", SHAPE_OVAL }, /* tooltip, value */
"_Oval", "<control>O", /* label, accelerator */
"Egg", SHAPE_OVAL }, /* tooltip, value */
};
static guint n_shape_entries = G_N_ELEMENTS (shape_entries);
static const gchar *ui_info =
static const gchar *ui_info =
"<ui>"
" <menubar name='MenuBar'>"
" <menu action='FileMenu'>"
@ -144,7 +144,7 @@ GtkWidget *
do_ui_manager (GtkWidget *do_widget)
{
static GtkWidget *window = NULL;
if (!window)
{
GtkWidget *box1;
@ -159,7 +159,7 @@ do_ui_manager (GtkWidget *do_widget)
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_screen (GTK_WINDOW (window),
gtk_widget_get_screen (do_widget));
g_signal_connect (window, "destroy",
G_CALLBACK (gtk_widget_destroyed), &window);
g_signal_connect (window, "delete-event",
@ -167,29 +167,29 @@ do_ui_manager (GtkWidget *do_widget)
actions = gtk_action_group_new ("Actions");
gtk_action_group_add_actions (actions, entries, n_entries, NULL);
gtk_action_group_add_toggle_actions (actions,
toggle_entries, n_toggle_entries,
gtk_action_group_add_toggle_actions (actions,
toggle_entries, n_toggle_entries,
NULL);
gtk_action_group_add_radio_actions (actions,
color_entries, n_color_entries,
gtk_action_group_add_radio_actions (actions,
color_entries, n_color_entries,
COLOR_RED,
G_CALLBACK (activate_radio_action),
G_CALLBACK (activate_radio_action),
NULL);
gtk_action_group_add_radio_actions (actions,
shape_entries, n_shape_entries,
gtk_action_group_add_radio_actions (actions,
shape_entries, n_shape_entries,
SHAPE_OVAL,
G_CALLBACK (activate_radio_action),
G_CALLBACK (activate_radio_action),
NULL);
ui = gtk_ui_manager_new ();
gtk_ui_manager_insert_action_group (ui, actions, 0);
g_object_unref (actions);
gtk_window_add_accel_group (GTK_WINDOW (window),
gtk_window_add_accel_group (GTK_WINDOW (window),
gtk_ui_manager_get_accel_group (ui));
gtk_window_set_title (GTK_WINDOW (window), "UI Manager");
gtk_container_set_border_width (GTK_CONTAINER (window), 0);
if (!gtk_ui_manager_add_ui_from_string (ui, ui_info, -1, &error))
{
g_message ("building menus failed: %s", error->message);
@ -198,7 +198,7 @@ do_ui_manager (GtkWidget *do_widget)
box1 = gtk_vbox_new (FALSE, 0);
gtk_container_add (GTK_CONTAINER (window), box1);
gtk_box_pack_start (GTK_BOX (box1),
gtk_ui_manager_get_widget (ui, "/MenuBar"),
FALSE, FALSE, 0);

View file

@ -68,7 +68,7 @@ load_pixbufs (void)
/* We pass NULL for the error return location, we don't care
* about the error message.
*/
background = gdk_pixbuf_new_from_file (BACKGROUND_NAME, NULL);
if (!background)
return FALSE;
@ -90,7 +90,7 @@ static gint
expose_cb (GtkWidget *widget, GdkEventExpose *event, gpointer data)
{
cairo_t *cr;
cr = gdk_cairo_create (event->window);
gdk_cairo_set_source_pixbuf (cr, frame, 0, 0);
gdk_cairo_rectangle (cr, &event->area);

View file

@ -43,7 +43,7 @@ destroy_context (gpointer data)
LoadContext *lc = data;
g_free (lc->filename);
if (lc->load_timeout)
g_source_remove (lc->load_timeout);
@ -55,7 +55,7 @@ destroy_context (gpointer data)
gdk_pixbuf_loader_close (lc->pixbuf_loader, NULL);
g_object_unref (lc->pixbuf_loader);
}
g_free (lc);
}
@ -70,7 +70,7 @@ get_load_context (GtkWidget *image)
{
lc = g_new0 (LoadContext, 1);
g_object_set_data_full (G_OBJECT (image),
g_object_set_data_full (G_OBJECT (image),
"lc",
lc,
destroy_context);
@ -87,7 +87,7 @@ progressive_prepared_callback (GdkPixbufLoader* loader,
GtkWidget* image;
image = GTK_WIDGET (data);
pixbuf = gdk_pixbuf_loader_get_pixbuf (loader);
/* Avoid displaying random memory contents, since the pixbuf
@ -108,7 +108,7 @@ progressive_updated_callback (GdkPixbufLoader* loader,
gpointer data)
{
GtkWidget* image;
image = GTK_WIDGET (data);
/* We know the pixbuf inside the GtkImage has changed, but the image
@ -123,7 +123,7 @@ progressive_updated_callback (GdkPixbufLoader* loader,
* is gdk_pixbuf_animation_iter_on_currently_loading_frame(), but
* who cares.
*/
gtk_widget_queue_draw (image);
}
@ -132,27 +132,27 @@ progressive_timeout (gpointer data)
{
GtkWidget *image;
LoadContext *lc;
image = GTK_WIDGET (data);
lc = get_load_context (image);
/* This shows off fully-paranoid error handling, so looks scary.
* You could factor out the error handling code into a nice separate
* function to make things nicer.
*/
if (lc->image_stream)
{
size_t bytes_read;
guchar buf[256];
GError *error = NULL;
bytes_read = fread (buf, 1, 256, lc->image_stream);
if (ferror (lc->image_stream))
{
GtkWidget *dialog;
dialog = gtk_message_dialog_new (GTK_WINDOW (lc->window),
GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_MESSAGE_ERROR,
@ -167,7 +167,7 @@ progressive_timeout (gpointer data)
lc->image_stream = NULL;
gtk_widget_show (dialog);
lc->load_timeout = 0;
return FALSE; /* uninstall the timeout */
@ -178,7 +178,7 @@ progressive_timeout (gpointer data)
&error))
{
GtkWidget *dialog;
dialog = gtk_message_dialog_new (GTK_WINDOW (lc->window),
GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_MESSAGE_ERROR,
@ -187,13 +187,13 @@ progressive_timeout (gpointer data)
error->message);
g_error_free (error);
g_signal_connect (dialog, "response",
G_CALLBACK (gtk_widget_destroy), NULL);
fclose (lc->image_stream);
lc->image_stream = NULL;
gtk_widget_show (dialog);
lc->load_timeout = 0;
@ -215,29 +215,29 @@ progressive_timeout (gpointer data)
&error))
{
GtkWidget *dialog;
dialog = gtk_message_dialog_new (GTK_WINDOW (lc->window),
GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_MESSAGE_ERROR,
GTK_BUTTONS_CLOSE,
"Failed to load image: %s",
error->message);
g_error_free (error);
g_signal_connect (dialog, "response",
G_CALLBACK (gtk_widget_destroy), NULL);
gtk_widget_show (dialog);
g_object_unref (lc->pixbuf_loader);
lc->pixbuf_loader = NULL;
lc->load_timeout = 0;
return FALSE; /* uninstall the timeout */
}
g_object_unref (lc->pixbuf_loader);
lc->pixbuf_loader = NULL;
}
@ -249,7 +249,7 @@ progressive_timeout (gpointer data)
if (lc->image_stream == NULL)
{
GtkWidget *dialog;
dialog = gtk_message_dialog_new (GTK_WINDOW (lc->window),
GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_MESSAGE_ERROR,
@ -260,7 +260,7 @@ progressive_timeout (gpointer data)
g_signal_connect (dialog, "response",
G_CALLBACK (gtk_widget_destroy), NULL);
gtk_widget_show (dialog);
lc->load_timeout = 0;
@ -274,9 +274,9 @@ progressive_timeout (gpointer data)
g_object_unref (lc->pixbuf_loader);
lc->pixbuf_loader = NULL;
}
lc->pixbuf_loader = gdk_pixbuf_loader_new ();
g_signal_connect (lc->pixbuf_loader, "area_prepared",
G_CALLBACK (progressive_prepared_callback), image);
g_signal_connect (lc->pixbuf_loader, "area_updated",
@ -293,7 +293,7 @@ start_progressive_loading (GtkWidget *image)
LoadContext *lc;
lc = get_load_context (image);
/* This is obviously totally contrived (we slow down loading
* on purpose to show how incremental loading works).
* The real purpose of incremental loading is the case where
@ -317,7 +317,7 @@ do_image (const char *filename)
GtkWidget *window;
gchar *str, *escaped;
LoadContext *lc;
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "Image Loading");
@ -335,9 +335,9 @@ do_image (const char *filename)
str);
g_free (escaped);
g_free (str);
gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
frame = gtk_frame_new (NULL);
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN);
/* The alignment keeps the frame from growing when users resize
@ -345,7 +345,7 @@ do_image (const char *filename)
*/
align = gtk_alignment_new (0.5, 0.5, 0, 0);
gtk_container_add (GTK_CONTAINER (align), frame);
gtk_box_pack_start (GTK_BOX (vbox), align, FALSE, FALSE, 0);
gtk_box_pack_start (GTK_BOX (vbox), align, FALSE, FALSE, 0);
image = gtk_image_new_from_pixbuf (NULL);
gtk_container_add (GTK_CONTAINER (frame), image);
@ -354,12 +354,12 @@ do_image (const char *filename)
lc->window = window;
lc->filename = g_strdup (filename);
start_progressive_loading (image);
g_signal_connect (window, "destroy",
G_CALLBACK (gtk_main_quit), NULL);
g_signal_connect (window, "delete_event",
G_CALLBACK (gtk_main_quit), NULL);
@ -378,7 +378,7 @@ do_nonprogressive (const gchar *filename)
GtkWidget *align;
GtkWidget *window;
gchar *str, *escaped;
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "Animation");
@ -396,9 +396,9 @@ do_nonprogressive (const gchar *filename)
str);
g_free (escaped);
g_free (str);
gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
frame = gtk_frame_new (NULL);
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN);
/* The alignment keeps the frame from growing when users resize
@ -406,14 +406,14 @@ do_nonprogressive (const gchar *filename)
*/
align = gtk_alignment_new (0.5, 0.5, 0, 0);
gtk_container_add (GTK_CONTAINER (align), frame);
gtk_box_pack_start (GTK_BOX (vbox), align, FALSE, FALSE, 0);
gtk_box_pack_start (GTK_BOX (vbox), align, FALSE, FALSE, 0);
image = gtk_image_new_from_file (filename);
gtk_container_add (GTK_CONTAINER (frame), image);
g_signal_connect (window, "destroy",
G_CALLBACK (gtk_main_quit), NULL);
g_signal_connect (window, "delete_event",
G_CALLBACK (gtk_main_quit), NULL);
@ -425,7 +425,7 @@ main (int argc,
char **argv)
{
gint i;
gtk_init (&argc, &argv);
i = 1;
@ -433,12 +433,12 @@ main (int argc,
{
do_image (argv[i]);
do_nonprogressive (argv[i]);
++i;
}
gtk_main ();
return 0;
}

View file

@ -24,15 +24,15 @@ gboolean
read_line (FILE *stream, GString *str)
{
int n_read = 0;
flockfile (stream);
g_string_truncate (str, 0);
while (1)
{
int c;
c = getc_unlocked (stream);
if (c == EOF)
@ -46,12 +46,12 @@ read_line (FILE *stream, GString *str)
case '\n':
{
int next_c = getc_unlocked (stream);
if (!(next_c == EOF ||
(c == '\r' && next_c == '\n') ||
(c == '\n' && next_c == '\r')))
ungetc (next_c, stream);
goto done;
}
default:
@ -80,7 +80,7 @@ load_file (const gchar *filename)
g_free (current_file);
current_file = g_strdup (filename);
gtk_text_buffer_get_bounds (info_buffer, &start, &end);
gtk_text_buffer_delete (info_buffer, &start, &end);
@ -99,7 +99,7 @@ load_file (const gchar *filename)
{
gchar *p = buffer->str;
gchar *q;
switch (state)
{
case 0:
@ -124,11 +124,11 @@ load_file (const gchar *filename)
gtk_text_buffer_apply_tag_by_name (info_buffer, "title", &start, &end);
start = end;
state++;
}
break;
case 1:
/* Reading body of info section */
while (isspace (*p))
@ -141,14 +141,14 @@ load_file (const gchar *filename)
else
{
int len;
while (*p == '*' || isspace (*p))
p++;
len = strlen (p);
while (isspace (*(p + len - 1)))
len--;
if (len > 0)
{
if (in_para)
@ -178,7 +178,7 @@ load_file (const gchar *filename)
}
else
break;
case 3:
/* Reading program body */
gtk_text_buffer_insert (source_buffer, &start, p, -1);
@ -231,7 +231,7 @@ button_press_event_cb (GtkTreeView *tree_view,
g_signal_stop_emission_by_name (tree_view, "button-press-event");
return TRUE;
}
return FALSE;
}
@ -266,10 +266,10 @@ create_text (GtkTextBuffer **buffer,
GTK_POLICY_AUTOMATIC);
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolled_window),
GTK_SHADOW_IN);
text_view = gtk_text_view_new ();
gtk_container_add (GTK_CONTAINER (scrolled_window), text_view);
*buffer = gtk_text_buffer_new (NULL);
gtk_text_view_set_buffer (GTK_TEXT_VIEW (text_view), *buffer);
gtk_text_view_set_editable (GTK_TEXT_VIEW (text_view), FALSE);
@ -281,9 +281,9 @@ create_text (GtkTextBuffer **buffer,
gtk_widget_modify_font (text_view, font_desc);
pango_font_description_free (font_desc);
}
gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (text_view), !is_source);
return scrolled_window;
}
@ -345,7 +345,7 @@ main (int argc, char **argv)
GtkTextTag *tag;
gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
g_signal_connect (window, "destroy",
G_CALLBACK (gtk_main_quit), NULL);
@ -382,10 +382,10 @@ main (int argc, char **argv)
gtk_window_set_default_size (GTK_WINDOW (window), 600, 400);
gtk_widget_show_all (window);
load_file (testgtk_demos[0].filename);
gtk_main ();
return 0;

View file

@ -15,7 +15,7 @@ int
expose_cb (GtkWidget *drawing_area, GdkEventExpose *evt, gpointer data)
{
GdkPixbuf *pixbuf;
pixbuf = (GdkPixbuf *) g_object_get_data (G_OBJECT (drawing_area), "pixbuf");
if (gdk_pixbuf_get_has_alpha (pixbuf))
{
@ -32,11 +32,11 @@ expose_cb (GtkWidget *drawing_area, GdkEventExpose *evt, gpointer data)
}
else
{
gdk_draw_rgb_image (drawing_area->window,
drawing_area->style->black_gc,
gdk_draw_rgb_image (drawing_area->window,
drawing_area->style->black_gc,
evt->area.x, evt->area.y,
evt->area.width,
evt->area.height,
evt->area.height,
GDK_RGB_DITHER_NORMAL,
gdk_pixbuf_get_pixels (pixbuf) +
(evt->area.y * gdk_pixbuf_get_rowstride (pixbuf)) +
@ -50,9 +50,9 @@ int
configure_cb (GtkWidget *drawing_area, GdkEventConfigure *evt, gpointer data)
{
GdkPixbuf *pixbuf;
pixbuf = (GdkPixbuf *) g_object_get_data (G_OBJECT (drawing_area), "pixbuf");
g_print ("X:%d Y:%d\n", evt->width, evt->height);
if (evt->width != gdk_pixbuf_get_width (pixbuf) || evt->height != gdk_pixbuf_get_height (pixbuf))
{
@ -73,16 +73,16 @@ extern void pixbuf_init (void);
int
main (int argc, char **argv)
{
{
GdkWindow *root;
GtkWidget *window;
GtkWidget *vbox;
GtkWidget *drawing_area;
GdkPixbuf *pixbuf;
GdkPixbuf *pixbuf;
pixbuf_init ();
gtk_init (&argc, &argv);
gtk_init (&argc, &argv);
gdk_rgb_set_verbose (TRUE);
gtk_widget_set_default_colormap (gdk_rgb_get_colormap ());
@ -90,16 +90,16 @@ main (int argc, char **argv)
root = gdk_get_default_root_window ();
pixbuf = gdk_pixbuf_get_from_drawable (NULL, root, NULL,
0, 0, 0, 0, 150, 160);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
g_signal_connect (window, "delete_event",
G_CALLBACK (close_app), NULL);
g_signal_connect (window, "destroy",
g_signal_connect (window, "destroy",
G_CALLBACK (close_app), NULL);
vbox = gtk_vbox_new (FALSE, 0);
gtk_container_add (GTK_CONTAINER (window), vbox);
gtk_container_add (GTK_CONTAINER (window), vbox);
drawing_area = gtk_drawing_area_new ();
gtk_widget_set_size_request (GTK_WIDGET (drawing_area),
gdk_pixbuf_get_width (pixbuf),
@ -111,7 +111,7 @@ main (int argc, char **argv)
G_CALLBACK (configure_cb), NULL);
g_object_set_data (G_OBJECT (drawing_area), "pixbuf", pixbuf);
gtk_box_pack_start (GTK_BOX (vbox), drawing_area, TRUE, TRUE, 0);
gtk_widget_show_all (window);
gtk_main ();
return 0;

View file

@ -124,7 +124,7 @@ keypress_check (GtkWidget *widget, GdkEventKey *evt, gpointer data)
if (pixbuf == NULL) {
fprintf (stderr, "PIXBUF NULL\n");
return;
}
}
loader = gdk_pixbuf_loader_new ();
if (!gdk_pixbuf_save_to_callback (pixbuf, save_to_loader, loader, "jpeg",
@ -160,7 +160,7 @@ keypress_check (GtkWidget *widget, GdkEventKey *evt, gpointer data)
if (pixbuf == NULL) {
fprintf (stderr, "PIXBUF NULL\n");
return;
}
}
if (!gdk_pixbuf_save (pixbuf, "foo.jpg", "jpeg",
&err,
@ -217,7 +217,7 @@ keypress_check (GtkWidget *widget, GdkEventKey *evt, gpointer data)
return;
}
if (!gdk_pixbuf_save (pixbuf, "foo.png", "png",
if (!gdk_pixbuf_save (pixbuf, "foo.png", "png",
&err,
"tEXt::Software", "testpixbuf-save",
NULL)) {
@ -270,7 +270,7 @@ keypress_check (GtkWidget *widget, GdkEventKey *evt, gpointer data)
return;
}
if (!gdk_pixbuf_save (pixbuf, "foo.ico", "ico",
if (!gdk_pixbuf_save (pixbuf, "foo.ico", "ico",
&err,
NULL)) {
fprintf (stderr, "%s", err->message);
@ -312,7 +312,7 @@ expose_cb (GtkWidget *drawing_area, GdkEventExpose *evt, gpointer data)
{
GdkPixbuf *pixbuf;
cairo_t *cr;
pixbuf = (GdkPixbuf *) g_object_get_data (G_OBJECT (drawing_area),
"pixbuf");
@ -330,10 +330,10 @@ static int
configure_cb (GtkWidget *drawing_area, GdkEventConfigure *evt, gpointer data)
{
GdkPixbuf *pixbuf;
pixbuf = (GdkPixbuf *) g_object_get_data (G_OBJECT (drawing_area),
pixbuf = (GdkPixbuf *) g_object_get_data (G_OBJECT (drawing_area),
"pixbuf");
g_print ("X:%d Y:%d\n", evt->width, evt->height);
if (evt->width != gdk_pixbuf_get_width (pixbuf) || evt->height != gdk_pixbuf_get_height (pixbuf)) {
GdkWindow *root;
@ -351,28 +351,28 @@ configure_cb (GtkWidget *drawing_area, GdkEventConfigure *evt, gpointer data)
int
main (int argc, char **argv)
{
{
GdkWindow *root;
GtkWidget *window;
GtkWidget *vbox;
GtkWidget *drawing_area;
GdkPixbuf *pixbuf;
gtk_init (&argc, &argv);
GdkPixbuf *pixbuf;
gtk_init (&argc, &argv);
root = gdk_get_default_root_window ();
pixbuf = gdk_pixbuf_get_from_drawable (NULL, root, NULL,
0, 0, 0, 0, 150, 160);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
g_signal_connect (window, "delete_event",
G_CALLBACK (close_app), NULL);
g_signal_connect (window, "destroy",
g_signal_connect (window, "destroy",
G_CALLBACK (close_app), NULL);
vbox = gtk_vbox_new (FALSE, 0);
gtk_container_add (GTK_CONTAINER (window), vbox);
gtk_container_add (GTK_CONTAINER (window), vbox);
drawing_area = gtk_drawing_area_new ();
gtk_widget_set_size_request (GTK_WIDGET (drawing_area),
gdk_pixbuf_get_width (pixbuf),
@ -382,12 +382,12 @@ main (int argc, char **argv)
g_signal_connect (drawing_area, "configure_event",
G_CALLBACK (configure_cb), NULL);
g_signal_connect (window, "key_press_event",
G_CALLBACK (keypress_check), drawing_area);
g_signal_connect (window, "key_press_event",
G_CALLBACK (keypress_check), drawing_area);
g_object_set_data_full (G_OBJECT (drawing_area), "pixbuf", pixbuf,
(GDestroyNotify) g_object_unref);
gtk_box_pack_start (GTK_BOX (vbox), drawing_area, TRUE, TRUE, 0);
gtk_widget_show_all (window);
gtk_main ();
return 0;

View file

@ -8,7 +8,7 @@ GdkInterpType interp_type = GDK_INTERP_BILINEAR;
int overall_alpha = 255;
GdkPixbuf *pixbuf;
GtkWidget *darea;
void
set_interp_type (GtkWidget *widget, gpointer data)
{
@ -38,7 +38,7 @@ expose_cb (GtkWidget *widget, GdkEventExpose *event, gpointer data)
cairo_t *cr;
gdk_window_set_back_pixmap (widget->window, NULL, FALSE);
dest = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, event->area.width, event->area.height);
gdk_pixbuf_composite_color (pixbuf, dest,
@ -57,7 +57,7 @@ expose_cb (GtkWidget *widget, GdkEventExpose *event, gpointer data)
cairo_destroy (cr);
g_object_unref (dest);
return TRUE;
}
@ -74,7 +74,7 @@ main(int argc, char **argv)
GtkRequisition scratch_requisition;
const gchar *creator;
GError *error;
pixbuf_init ();
gtk_init (&argc, &argv);
@ -100,7 +100,7 @@ main(int argc, char **argv)
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
g_signal_connect (window, "destroy",
G_CALLBACK (gtk_main_quit), NULL);
vbox = gtk_vbox_new (FALSE, 0);
gtk_container_add (GTK_CONTAINER (window), vbox);
@ -116,7 +116,7 @@ main(int argc, char **argv)
g_signal_connect (combo_box, "changed",
G_CALLBACK (set_interp_type),
NULL);
alignment = gtk_alignment_new (0.0, 0.0, 0.0, 0.5);
gtk_box_pack_start (GTK_BOX (vbox), alignment, FALSE, FALSE, 0);
@ -129,7 +129,7 @@ main(int argc, char **argv)
adjustment = GTK_ADJUSTMENT (gtk_adjustment_new (overall_alpha, 0, 255, 1, 10, 0));
g_signal_connect (adjustment, "value_changed",
G_CALLBACK (overall_changed_cb), NULL);
hscale = gtk_hscale_new (adjustment);
gtk_scale_set_digits (GTK_SCALE (hscale), 0);
gtk_box_pack_start (GTK_BOX (hbox), hscale, TRUE, TRUE, 0);
@ -149,7 +149,7 @@ main(int argc, char **argv)
gtk_window_set_default_size (GTK_WINDOW (window),
gdk_pixbuf_get_width (pixbuf),
scratch_requisition.height + gdk_pixbuf_get_height (pixbuf));
gtk_widget_show_all (window);
gtk_main ();

View file

@ -302,7 +302,7 @@ static const char * gtk_mini_xpm[] = {
" >%$$ ",
" >= "};
const gchar ** xpms[] = {
const gchar ** xpms[] = {
book_open_xpm,
book_closed_xpm,
mini_page_xpm,
@ -326,11 +326,11 @@ expose_func (GtkWidget *drawing_area, GdkEventExpose *event, gpointer data)
if (gdk_pixbuf_get_has_alpha (pixbuf)) {
GdkPixbuf *dest;
cairo_t *cr;
gdk_window_set_back_pixmap (drawing_area->window, NULL, FALSE);
dest = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, event->area.width, event->area.height);
gdk_pixbuf_composite_color (pixbuf, dest,
0, 0, event->area.width, event->area.height,
-event->area.x, -event->area.y,
@ -338,7 +338,7 @@ expose_func (GtkWidget *drawing_area, GdkEventExpose *event, gpointer data)
(double) drawing_area->allocation.height / gdk_pixbuf_get_height (pixbuf),
GDK_INTERP_BILINEAR, 255,
event->area.x, event->area.y, 16, 0xaaaaaa, 0x555555);
cr = gdk_cairo_create (drawing_area->window);
gdk_cairo_set_source_pixbuf (cr, dest, 0, 0);
@ -350,8 +350,8 @@ expose_func (GtkWidget *drawing_area, GdkEventExpose *event, gpointer data)
} else {
gdk_draw_rgb_image (drawing_area->window,
drawing_area->style->white_gc,
event->area.x, event->area.y,
event->area.width,
event->area.x, event->area.y,
event->area.width,
event->area.height,
GDK_RGB_DITHER_NORMAL,
gdk_pixbuf_get_pixels (pixbuf)
@ -366,7 +366,7 @@ config_func (GtkWidget *drawing_area, GdkEventConfigure *event, gpointer data)
{
#if 0
GdkPixbuf *pixbuf;
pixbuf = (GdkPixbuf *)g_object_get_data (G_OBJECT (drawing_area), "pixbuf");
if (((event->width) != gdk_pixbuf_get_width (pixbuf)) ||
@ -410,7 +410,7 @@ new_testrgb_window (GdkPixbuf *pixbuf, gchar *title)
gtk_widget_set_size_request (GTK_WIDGET (drawing_area), w, h);
gtk_box_pack_start (GTK_BOX (temp_box), drawing_area, FALSE, FALSE, 0);
gtk_box_pack_start (GTK_BOX (vbox), temp_box, FALSE, FALSE, 0);
g_signal_connect (drawing_area, "expose_event",
G_CALLBACK (expose_func), NULL);
@ -443,14 +443,14 @@ update_timeout (gpointer data)
ProgressFileStatus *status = data;
gboolean done;
GError *error;
done = FALSE;
error = NULL;
if (!feof (status->imagefile)) {
gint nbytes;
nbytes = fread (status->buf, 1, status->readlen,
nbytes = fread (status->buf, 1, status->readlen,
status->imagefile);
@ -460,12 +460,12 @@ update_timeout (gpointer data)
g_error_free (error);
done = TRUE;
}
}
else
}
else
done = TRUE;
if (done) {
/* ignoring errors, we should not do that. */
gdk_pixbuf_loader_close (GDK_PIXBUF_LOADER (status->loader), NULL);
@ -555,7 +555,7 @@ main (int argc, char **argv)
if (argc == 1) {
const gchar*** xpmp;
GError *error = NULL;
pixbuf = gdk_pixbuf_new_from_data (default_image, GDK_COLORSPACE_RGB, FALSE, 8,
DEFAULT_WIDTH, DEFAULT_HEIGHT, DEFAULT_WIDTH * 3,
NULL, NULL);
@ -581,7 +581,7 @@ main (int argc, char **argv)
pixbuf = gdk_pixbuf_new_from_inline (sizeof (gnome_foot), gnome_foot, TRUE, NULL);
new_testrgb_window (pixbuf, "GNOME Foot from inlined RLE data");
found_valid = TRUE;
} else {
for (i = 1; i < argc; i++) {
@ -595,7 +595,7 @@ main (int argc, char **argv)
error->message);
g_error_free (error);
}
#if 0
pixbuf = gdk_pixbuf_rotate (pixbuf, 10.0);
#endif
@ -605,7 +605,7 @@ main (int argc, char **argv)
found_valid = TRUE;
}
}
#if 1
#if 1
{
GtkWidget* rgb_window = NULL;
ProgressFileStatus status;
@ -618,7 +618,7 @@ main (int argc, char **argv)
status.buf = g_malloc (readlen);
#if 0
g_signal_connect (pixbuf_loader, "size_prepared",
g_signal_connect (pixbuf_loader, "size_prepared",
G_CALLBACK (size_func), NULL);
#endif
@ -628,7 +628,7 @@ main (int argc, char **argv)
g_signal_connect (pixbuf_loader, "area_updated",
G_CALLBACK (progressive_updated_callback),
&rgb_window);
status.imagefile = fopen (argv[1], "r");
g_assert (status.imagefile != NULL);

View file

@ -20,7 +20,7 @@ Ex: (module Gtk)
Ex: (module Rgb
(submodule-of Gdk))
modules are later referred to with a list of module names, like
modules are later referred to with a list of module names, like
(Gdk Rgb) or (Gtk)
Object and boxed type definitions automatically create a submodule.
@ -58,7 +58,7 @@ Ex: (type
;; This one would be implied by the (object) def for GtkWidget I
;; think - (type) is only required for types that are not implied
;; by other definitions, such as int/boolean/etc.
(type
(alias GtkWidget)
(in-module (Gtk))
@ -94,7 +94,7 @@ stuff.
(c-name name-of-the-object-in-C)
(field (type-and-name type-alias-of-struct-field name-of-struct-field)
(access read-or-write-or-readwrite)))
Ex: (object Widget
(in-module (Gtk))
@ -111,10 +111,10 @@ An "object" declaration automatically implies the type definition:
(out-c-name pointer-to-pointer-to-c-name)
(inout-c-name pointer-to-c-name))
Ex:
(type (alias GtkWidget)
(in-c-name GtkWidget*)
(out-c-name GtkWidget**)
Ex:
(type (alias GtkWidget)
(in-c-name GtkWidget*)
(out-c-name GtkWidget**)
(inout-c-name GtkWidget*))
It also implies a module that is the name broken into parts:
@ -131,7 +131,7 @@ It also implies a module that is the name broken into parts:
(return-type return-value-type) ;; defaults to void
(caller-owns-return boolean-value) ;; defaults to #f
(can-return-null boolean-value) ;; defaults to #t
(parameter in-or-out-or-inout
(parameter in-or-out-or-inout
(type-and-name parameter-type-alias parameter-name)
(type-parameter name-of-contained-type) ;; optional, requires parametric type
(c-declaration "c-type-and-name")) ;; c-declaration only required
@ -144,7 +144,7 @@ Ex:
(in-module (Gdk Rgb)
(c-name gdk_rgb_init)))
Ex:
Ex:
(function new
(in-module (Gdk Rgb Cmap))
(is-constructor-of GdkRgbCmap)
@ -160,7 +160,7 @@ Ex:
(c-name gnome_config_set_set_handler)
(parameter in (type-and-name native func)
(c-declaration "void (*func)(void*)"))
(parameter in (type-and-name gpointer data)))
(parameter in (type-and-name gpointer data)))
===
(method method-name
@ -168,7 +168,7 @@ Ex:
;; retval/arg attributes as for (function), but with first parameter
;; omitted for non-constructors
)
Ex:
(method set_text
(of-object Label (Gtk))
@ -190,7 +190,7 @@ Ex:
(readable #t)
(writeable #t))
===
===
(signal signal-name
(run-action bool-value)
(run-first bool-value)
@ -211,7 +211,7 @@ Ex:
(parameter in (type-and-name gint column))
(parameter in (type-and-name GdkEvent* event)))
===
===
(enum enum-name
(in-module modname)
(c-name name-in-c)
@ -238,7 +238,7 @@ Ex:
===
(flags) is just like enum, but some bindings may wrap enums and flags differently.
===
(boxed boxed-name
@ -268,10 +268,10 @@ An "object" declaration automatically implies the type definition:
(out-c-name pointer-to-pointer-to-c-name)
(inout-c-name pointer-to-c-name))
Ex:
(type (alias GdkPixmap)
(in-c-name GdkPixmap*)
(out-c-name GdkPixmap**)
Ex:
(type (alias GdkPixmap)
(in-c-name GdkPixmap*)
(out-c-name GdkPixmap**)
(inout-c-name GdkPixmap*))
@ -296,9 +296,9 @@ Ex:
Implies GdkRectangle type alias:
(type (alias GdkRectangle)
(in-c-name GdkRectangle*)
(out-c-name GdkRectangle*) ;; note - not the same as boxed types
(type (alias GdkRectangle)
(in-c-name GdkRectangle*)
(out-c-name GdkRectangle*) ;; note - not the same as boxed types
(inout-c-name GdkRectangle*))
===
@ -333,6 +333,6 @@ Ex:

View file

@ -22,8 +22,8 @@ gdkdnd.c divides into 4 pieces:
3) Xdnd specific code
4) The public interfaces
The code in gtkdnd.c roughly consists of three parts
The code in gtkdnd.c roughly consists of three parts
1) General utility functions
2) Destination side code
3) Source side code.
@ -43,7 +43,7 @@ in the structures GtkSourceInfo and GtkDestInfo.
The GtkSourceInfo structure is created when the drag
begins, and persists until the drag either completes
or times out. A pointer to it is stored in
or times out. A pointer to it is stored in
dataset-data for the GdkDragContext, however there
is no ownership. If the SourceInfo is destroyed
before the context, the field is simply cleared.
@ -95,7 +95,7 @@ void gdk_drag_find_window (GdkDragContext *context,
gboolean gdk_drag_motion (GdkDragContext *context,
GdkWindow *dest_window,
GdkDragProtocol protocol,
gint x_root,
gint x_root,
gint y_root,
GdkDragAction action,
guint32 time);
@ -129,7 +129,7 @@ SubstructureNotifyMask on the root window, so that
it can update this list.
It probably would be easier to just reread the entire
list when one of these events occurs, instead of
list when one of these events occurs, instead of
incrementally updating, but updating the list in
sync was sort of fun code, so I did it that way ;-)
@ -144,7 +144,7 @@ the button press, which might actually be before
the XQueryPointer for the previous MotionNotify
event is done.)
Probably better is doing MotionNotify compression
Probably better is doing MotionNotify compression
and discarding MotionNotify events when there
are more on the queue before the next ButtonPress/Release.
@ -174,7 +174,7 @@ Because the abstraction of the drag protocol is at the GDK
level, a proxy drag from Motif to Xdnd or vice versa happens
pretty much automatically during the drag, though the
drop can get complicated. For Xdnd <-> Motif,
Motif <-> Xdnd, or Motif <-> Motif drags, it is necessary to
Motif <-> Xdnd, or Motif <-> Motif drags, it is necessary to
for the Proxy to retrieve the data and pass it on to
the true destination, since either the selection names
differ or (Motif<->Motif), the proxy needs to know
@ -191,7 +191,7 @@ The spec is at:
Motif:
The Motif DND protocol is best described in the
The Motif DND protocol is best described in the
Hungry Programmers _Inside Lesstif_ book, available
from:

View file

@ -53,7 +53,7 @@ has_pointer_focus(W) into four cases:
T1: [(F==W || F==Descendant) => F==Ancestor]; has_pointer(W)
T2: [(F==W || F==Descendant) => F==PointerRoot]; has_pointer(W)
T3: [(F==None || F==Other) => (F==PointerRoot || F==Ancestor)];
has_pointer(W)
@ -65,11 +65,11 @@ T1:, we get a FocusOut with a mode of Ancestor or Virtual
We need to separately track has_pointer(W) to distinguish
this from the case where we get these events and !has_pointer(W)
T2, T3: together these are exactly the cases where we get
T2, T3: together these are exactly the cases where we get
FocusIn/NotifyPointer.
For T4, we get an EnterNotify with the focus flag set. An
EnterNotify with a focus flag set will also be sent if
EnterNotify with a focus flag set will also be sent if
F==W, so we have to to explicitly test for that case
using has_focus_window(W)
@ -80,7 +80,7 @@ are exactly the opposite
F1: [(F==W || F==Descendant) <= F==Ancestor]; has_pointer(W)
F2: [(F==W || F==Descendant) <= F==PointerRoot]; has_pointer(W)
F3: [(F==None || F==Other) <= (F==PointerRoot || F==Ancestor)];
has_pointer(W)
@ -92,11 +92,11 @@ F1: we get a FocusIn with a mode of Ancestor or Virtual
We need to separately track has_pointer(W) to distinguish
this from the case we get these events and !has_pointer(W)
F2, F3: together these are exactly the cases where we get
F2, F3: together these are exactly the cases where we get
FocusOut/NotifyPointer.
F4: we get an LeaveNotify with the focus flag set. An
LeaveNotify with a focus flag set will also be sent if
LeaveNotify with a focus flag set will also be sent if
F==W, so we have to to explicitly test for that case
using has_focus_window(W).
@ -104,16 +104,16 @@ F4: we get an LeaveNotify with the focus flag set. An
Modifications for keyboard grabs
================================
The above algorithm ignores keyboard grabs, which also
The above algorithm ignores keyboard grabs, which also
generate focus events, and needs to be modified somewhat
to take keyboard grabs into effect. The basic idea
to take keyboard grabs into effect. The basic idea
is that for has_pointer_focus(W)/has_window_focus(W) we track
them ignoring grabs and ungrabs, and then supplement
that with another predicate has_focus(W) which pays
attention to grabs and ungrabs.
Modification 1:
When tracking has_pointer_focus(W), ignore all Focus
events with a mode of NotifyGrab or NotifyUngrab.
@ -129,20 +129,20 @@ Modification 1:
F=Ancestor, G=None => F=Ancestor, G=Ancestor
We stop getting events, but receive no notification.
The case of no window manager and keyboard grabs is pretty
rare in any case.
Modification 2:
When tracking has_focus_window(W), ignore all Focus
events with a mode of NotifyGrab or NotifyUngrab.
Modification 3: instead of calculating focus as
Modification 3: instead of calculating focus as
has_focus_window(W) || has_pointer_focus(W)
Calculate it as
Calculate it as
has_focus(W) || has_pointer_focus(W)
@ -150,12 +150,12 @@ Modification 3: instead of calculating focus as
has_focus(W): F==W || F==Descendant || G=W
Tracking has_focus(W) is done by
Tracking has_focus(W) is done by
FocusIn: detail != NotifyInferior, mode != NotifyWhileGrabbed:
FocusIn: detail != NotifyInferior, mode != NotifyWhileGrabbed:
set has_focus
FocusOut: detail != NotifyInferior, mode != NotifyWhileGrabbed:
FocusOut: detail != NotifyInferior, mode != NotifyWhileGrabbed:
clear has_focus
We still need to track has_focus_window(W) for the T4/F4
We still need to track has_focus_window(W) for the T4/F4
transitions.

View file

@ -8,16 +8,16 @@ The following files in the gdk/ subdirectory
are autogenerated:
gdkkeysyms.h
gdkcursors.h
gdkcursors.h
The following files in the gtk/ subdirectory
The following files in the gtk/ subdirectory
are autogenerated:
gtk.defs
Description of GTK+ types (and some functions) in a lisp-style
format.
gtktypebuiltins.h
Header file including declarations for internal types
Header file including declarations for internal types
gtktypebuiltins_vars.c
Variables for type values for internal types.
gtktypebuiltins_ids.c
@ -55,7 +55,7 @@ The type definitions are generated from several sources:
GTK+ header files
GDK header files
The makeenums.pl script does a heuristic parse of
The makeenums.pl script does a heuristic parse of
the header files and extracts all enumerations declarations.
It also recognizes a number of pseudo-comments in the
header files:
@ -65,7 +65,7 @@ Two of these apply to individual enumeration values:
/*< skip >*/
This enumeration value should be skipped.
/*< nick=NICK >*/
The nickname for this value should NICK instead of the
@ -80,7 +80,7 @@ Two of these apply to individual enumeration values:
"app" and "widget" that would normally be used.
The other two apply to entire enumeration declarations.
/*< prefix=PREFIX >*/
Specifies the prefix to be removed from the enumeration
@ -94,20 +94,20 @@ The other two apply to entire enumeration declarations.
typedef enum /*< flags >*/
{
GDK_IM_PREEDIT_AREA = 0x0001,
GDK_IM_PREEDIT_CALLBACKS = 0x0002,
GDK_IM_PREEDIT_AREA = 0x0001,
GDK_IM_PREEDIT_CALLBACKS = 0x0002,
[ ... ]
} GdkIMStyle;
makeenums.pl can be run into two modes:
1) Generate the gtktypebuiltins_eval.c file (this
contains arrays holding the mapping of
contains arrays holding the mapping of
string <=> enumeration value)
2) Generate the enumeration portion of gtk.defs.
The enumeration portion is added to the boxed type
The enumeration portion is added to the boxed type
declarations in gtk-boxed.defs to create gtk.defs.
The makeetypes.awk program takes the gtk.defs file, and
@ -130,7 +130,7 @@ by genmarshal.pl.
The format of this file is a list of lines:
<retval-type>:<arg1-type>,<arg2-type>,<arg3-type>
e.g.:
BOOL:POINTER,STRING,STRING,POINTER

View file

@ -26,7 +26,7 @@ gtk-config takes the following flags:
--libs
Prints out the linker flags necessary to link a program against GTK
--prefix[=PREFIX]
If PREFIX is specified, overrides the configured value of $prefix.
(And of exec-prefix, unless --exec-prefix is also specified)
@ -35,7 +35,7 @@ gtk-config takes the following flags:
--exec-prefix[=PREFIX]
If PREFIX is specified, overrides the configured value of $exec_prefix.
Otherwise, prints out the configured value of $exec_prefix
You may also add to the command line a list of additional
libraries that gtk-config should supply the CFLAGS and LIBS
for. The only currently supported library is 'gthread'.
@ -108,17 +108,17 @@ Notes:
* The directory where the GTK libraries are installed needs
to be found by your system's dynamic linker.
This is generally done by
editing /etc/ld.so.conf and running ldconfig
Or by:
setting the environment variable LD_LIBRARY_PATH,
or, as a last resort,
setting the environment variable LD_LIBRARY_PATH,
or, as a last resort,
Giving a -R or -rpath flag (depending on your linker) when
running configure, for instance:
@ -135,9 +135,9 @@ Notes:
Advanced note:
* configure flags
--with-gtk-prefix=PREFIX
--with-gtk-exec-prefix=PREFIX
--with-gtk-exec-prefix=PREFIX
are provided to override the prefix and exec-prefix that were stored
in the gtk-config shell script by GTK's configure. You are generally
@ -178,7 +178,7 @@ is the AM_PATH_GTK() macro.
That command does the following:
If a GTK version greater than 0.99.5 is found, adds $GTK_LIBS to
If a GTK version greater than 0.99.5 is found, adds $GTK_LIBS to
$LIBS and $GTK_CFLAGS to $CFLAGS. Otherwise, dies with the error
message "Cannot find GTK: Is gtk-config in path?"
@ -202,7 +202,7 @@ adding the lines:
to the Makefile.am.
To try this example out, create a new directory, add the two
files above two it, and copy the testinput.c file from
files above two it, and copy the testinput.c file from
the gtk/ subdirectory to the new directory. Edit the line:
#include "gtk.h"
@ -217,7 +217,7 @@ Now execute the following commands:
automake --add-missing
aclocal
autoconf
You now have a package that can be built in the normal fashion
./configure

View file

@ -1,5 +1,5 @@
Information about the icon theme cache format used by GTK+
for more information, see the mailing list threads at
for more information, see the mailing list threads at
http://mail.gnome.org/archives/gtk-devel-list/2004-April/msg00065.html
http://lists.freedesktop.org/archives/xdg/2004-October/005140.html
@ -10,13 +10,13 @@ information, to reduce the amount of stating and disk seeking at
application startup, and to reduce the memory overhead if each app
allocates all the icon theme data separately.
The proposal is to keep the information about the icons in the
directory tree below each icon theme directory in an mmap()able
cache file (There is basically one cache file per index.theme file).
The proposal is to keep the information about the icons in the
directory tree below each icon theme directory in an mmap()able
cache file (There is basically one cache file per index.theme file).
The cache doesn't try to hold all information from the index.theme files
that you would need to do lookups; it turns out that with the icon theme
specification, this isn't even sensible - you can install a
specification, this isn't even sensible - you can install a
$HOME/.local/share/icons/Bluecurve/index.theme
@ -32,7 +32,7 @@ is caching of the actual image data; the file format is has an
IMAGE_DATA_OFFSET member to allow adding that compatibly. An
implementation of the caching scheme for GTK+ can be found at [2]. The
cache generator which is included in the patch depends only on glib, and
it may be a good idea to move it to freedesktop.org as well.
it may be a good idea to move it to freedesktop.org as well.
Regards, Matthias Clasen
@ -41,32 +41,32 @@ Regards, Matthias Clasen
The cache file format:
Header:
2 CARD16 MAJOR_VERSION 1
2 CARD16 MINOR_VERSION 0
4 CARD32 HASH_OFFSET
2 CARD16 MAJOR_VERSION 1
2 CARD16 MINOR_VERSION 0
4 CARD32 HASH_OFFSET
4 CARD32 DIRECTORY_LIST_OFFSET
DirectoryList:
4 CARD32 N_DIRECTORIES
4*N_DIRECTORIES CARD32 DIRECTORY_OFFSET
4 CARD32 N_DIRECTORIES
4*N_DIRECTORIES CARD32 DIRECTORY_OFFSET
Hash:
4 CARD32 N_BUCKETS
4*N_BUCKETS CARD32 ICON_OFFSET
4 CARD32 N_BUCKETS
4*N_BUCKETS CARD32 ICON_OFFSET
Icon:
4 CARD32 CHAIN_OFFSET
4 CARD32 NAME_OFFSET
4 CARD32 IMAGE_LIST_OFFSET
4 CARD32 CHAIN_OFFSET
4 CARD32 NAME_OFFSET
4 CARD32 IMAGE_LIST_OFFSET
ImageList:
4 CARD32 N_IMAGES
8*N_IMAGES Image IMAGES
4 CARD32 N_IMAGES
8*N_IMAGES Image IMAGES
Image:
2 CARD16 DIRECTORY_INDEX
2 ICON_FLAGS FLAGS
4 CARD32 IMAGE_DATA_OFFSET
2 CARD16 DIRECTORY_INDEX
2 ICON_FLAGS FLAGS
4 CARD32 IMAGE_DATA_OFFSET
ICON_FLAGS
HAS_SUFFIX_PNG 1
@ -111,7 +111,7 @@ DisplayNameList:
DisplayName:
4 CARD32 DISPLAY_LANG_OFFSET
4 CARD32 DISPLAY_NAME_OFFSET
Notes:
@ -123,7 +123,7 @@ Notes:
* All numbers are in network (big-endian) order. This is
necessary because the data will be stored in arch-independent
directories like /usr/share/icons or even in user's
directories like /usr/share/icons or even in user's
home directories.
* The hash function is that used by g_str_hash()

View file

@ -40,7 +40,7 @@ ref_count is *always* decremented, tho. Be careful.
Remark: When writing NO_WINDOW widgets, care should be taken about
proper referencing/unreferencing of the parent's GdkWindow
that is used by the widget.
GdkPixmap
---------
@ -184,15 +184,15 @@ GtkOptionMenu looks like this:
option_menu = gtk_option_menu_new ();
/* option_menu->ref_count == 1 and it is flagged as `floating'.
*/
gtk_container_add (window, option_menu);
/* option_menu->ref_count still == 1, but it is no longer `floating'.
*/
menu = gtk_menu_new ();
/* menu->ref_count == 1 and it is flagged as `floating'.
*/
menu_item = gtk_menu_item_new_with_label ("Choose Me");
/* menu_item->ref_count == 1 and it is flagged as `floating'.
*/
@ -200,7 +200,7 @@ GtkOptionMenu looks like this:
gtk_menu_append (GTK_MENU (menu), menu_item);
/* menu_item->ref_count still == 1, but it is no longer `floating'.
*/
gtk_option_menu_set_menu (GTK_OPTION_MENU (option_menu), menu);
/* menu->ref_count still == 1, but it is no longer `floating'.
*/
@ -277,13 +277,13 @@ Example code sequences that require reference wraps:
while (slist)
{
GSList *tmp;
tmp = slist;
slist = slist->next;
g_object_unref (GTK_WIDGET (tmp->data));
g_slist_free_1 (tmp);
}
/* Alternatively to the removal above you could just use
* gtk_list_remove_items_no_unref() which will add the additional
* reference count to the widget.

View file

@ -37,7 +37,7 @@ IGNORE_HFILES= \
# Extra files to add when scanning (relative to $srcdir)
EXTRA_HFILES= \
../../../gdk/x11/gdkx.h
../../../gdk/x11/gdkx.h
# CFLAGS and LDFLAGS for compiling scan program. Only needed
# if $(DOC_MODULE).types is non-empty.
@ -139,7 +139,7 @@ HTML_IMAGES = \
images/umbrella.png \
images/ur_angle.png \
images/watch.png \
images/xterm.png
images/xterm.png
# Extra options to supply to gtkdoc-fixref
FIXXREF_OPTIONS= \

View file

@ -10,10 +10,10 @@ DOC_MODULE=gtk2
DOC_MAIN_SGML_FILE=gtk-docs.sgml
# Extra options to supply to gtkdoc-scan
SCAN_OPTIONS=--deprecated-guards="GTK_ENABLE_BROKEN|GTK_DISABLE_DEPRECATED"
SCAN_OPTIONS=--deprecated-guards="GTK_ENABLE_BROKEN|GTK_DISABLE_DEPRECATED"
# Extra options to pass to gtkdoc-scangobj
SCANGOBJ_OPTIONS=--type-init-func="gtk_type_init(0)"
SCANGOBJ_OPTIONS=--type-init-func="gtk_type_init(0)"
# The directory containing the source code. Relative to $(srcdir)
DOC_SOURCE_DIR=../../../gtk
@ -370,7 +370,7 @@ if ENABLE_MAN
man_MANS = gtk-query-immodules-2.0.1 gtk-update-icon-cache.1 gtk-builder-convert.1
%.1 : %.xml
%.1 : %.xml
@XSLTPROC@ -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
BUILT_EXTRA_DIST = $(man_MANS)

View file

@ -508,7 +508,7 @@ gtk_window_expose (GtkWidget *widget,
GdkEventExpose *event)
{
if (!gtk_widget_get_app_paintable (widget))
gtk_paint_flat_box (widget->style, widget->window, GTK_STATE_NORMAL,
gtk_paint_flat_box (widget->style, widget->window, GTK_STATE_NORMAL,
GTK_SHADOW_NONE, event->area, widget, "base", 0, 0, -1, -1);
if (GTK_WIDGET_CLASS (gtk_window_parent_class)->expose_event)

View file

@ -52,10 +52,10 @@
<glossdef>
<para>
GTK+ contains several widgets which display data in columns,
e.g. the #GtkTreeView.
These <glossterm linkend="view-column">view columns</glossterm> in
e.g. the #GtkTreeView.
These <glossterm linkend="view-column">view columns</glossterm> in
the tree view are represented by #GtkTreeViewColumn
objects inside GTK+. They should not be confused with
objects inside GTK+. They should not be confused with
<glossterm linkend="model-column">model columns</glossterm> which
are used to organize the data in tree models.
</para>
@ -72,10 +72,10 @@
<emphasis>parent</emphasis> of the <emphasis>child</emphasis>
widgets. Some containers don't draw anything on their own,
but rather just organize their children's <glossterm
linkend="geometry">geometry</glossterm>; for example, #GtkVBox lays out
linkend="geometry">geometry</glossterm>; for example, #GtkVBox lays out
its children vertically without painting anything on its own. Other
containers include decorative elements; for example, #GtkFrame contains
the frame's child and a label in addition to the shaded frame it draws.
containers include decorative elements; for example, #GtkFrame contains
the frame's child and a label in addition to the shaded frame it draws.
The base class for containers is #GtkContainer.
</para>
<glossseealso>
@ -91,8 +91,8 @@
<para>
GDK inherited the concept of display from the X window system,
which considers a display to be the combination
of a keyboard, a pointing device and one or more
<glossterm linkend="screen">screens</glossterm>.
of a keyboard, a pointing device and one or more
<glossterm linkend="screen">screens</glossterm>.
Applications open a display to show windows and interact with the user.
In GDK, a display is represented by a #GdkDisplay.
</para>
@ -115,7 +115,7 @@
<glossdef>
<para>
Events are the way in which GDK informs GTK+ about external events
like pointer motion, button clicks, key presses, etc.
like pointer motion, button clicks, key presses, etc.
</para>
</glossdef>
</glossentry>
@ -160,9 +160,9 @@
<glossterm>model column</glossterm>
<glossdef>
<para>
A column in a tree model, holding data of a certain type.
The types which can be stored in the columns of a model
have to be specified when the model is constructed, see
A column in a tree model, holding data of a certain type.
The types which can be stored in the columns of a model
have to be specified when the model is constructed, see
e.g. gtk_list_store_new().
</para>
<glossseealso>
@ -176,14 +176,14 @@
<glossdef>
<para>
These widgets follow the well-known model-view pattern, which separates
the data (the model) to be displayed from the component which does the
actual visualization (the view). Examples of this pattern in GTK+ are
the data (the model) to be displayed from the component which does the
actual visualization (the view). Examples of this pattern in GTK+ are
the #GtkTreeView/#GtkTreeModel and #GtkTextView/#GtkTextBuffer
</para>
<para>
One important advantage of this pattern is that it is possible to
display the same model in multiple views; another one that the
separation of the model allows a great deal of flexibility, as
One important advantage of this pattern is that it is possible to
display the same model in multiple views; another one that the
separation of the model allows a great deal of flexibility, as
demonstrated by e.g. #GtkTreeModelSort or #GtkTreeModelFilter.
</para>
</glossdef>
@ -231,8 +231,8 @@
<para>
Widgets that don't own the GdkWindow on which they draw are
called <glossterm linkend="no-window">no-window widgets</glossterm>.
This can be tested with the GTK_WIDGET_NO_WINDOW() macro. Normally,
called <glossterm linkend="no-window">no-window widgets</glossterm>.
This can be tested with the GTK_WIDGET_NO_WINDOW() macro. Normally,
these widgets draw on their parent's GdkWindow.
</para>
@ -268,9 +268,9 @@
<glossterm>screen</glossterm>
<glossdef>
<para>
GDK inherited the concept of screen from the X window system,
which considers a screen to be a rectangular area, on which
applications may place their windows. Screens under X may have
GDK inherited the concept of screen from the X window system,
which considers a screen to be a rectangular area, on which
applications may place their windows. Screens under X may have
quite dissimilar <glossterm linkend="visual">visuals</glossterm>.
Each screen can stretch across multiple physical monitors.
</para>
@ -285,7 +285,7 @@
<glossdef>
<para>
A style encapsulates what GTK+ needs to know in order to draw
a widget. Styles can be modified with
a widget. Styles can be modified with
<link linkend="gtk-Resource-Files">resource files</link>.
</para>
</glossdef>
@ -296,7 +296,7 @@
<glossdef>
<para>
A <glossterm linkend="widget">widget</glossterm> that does not
require a <glossterm linkend="parent">parent</glossterm> container.
require a <glossterm linkend="parent">parent</glossterm> container.
The only toplevel widgets in GTK+ are #GtkWindow and widgets derived from it.
</para>
<glossseealso>
@ -327,7 +327,7 @@
</glossseealso>
</glossdef>
</glossentry>
<glossentry id="visual">
<glossterm>visual</glossterm>
<glossdef>
@ -335,17 +335,17 @@
A visual describes how color information is stored in pixels.
A <glossterm linkend="screen">screen</glossterm> may support
multiple visuals. On modern hardware, the most common visuals
are truecolor visuals, which store a fixed number of bits
are truecolor visuals, which store a fixed number of bits
(typically 8) for the red, green and blue components of a color.
</para>
<para>
On ancient hardware, one may still meet indexed visuals, which
On ancient hardware, one may still meet indexed visuals, which
store color information as an index into a color map, or even
monochrome visuals.
monochrome visuals.
</para>
</glossdef>
</glossentry>
<glossentry id="widget">
<glossterm>widget</glossterm>
<glossdef>

View file

@ -51,7 +51,7 @@ its output the file specified as the second argument.
<varlistentry>
<term>--root</term>
<term>-r</term>
<listitem><para>Convert only the widget named <replaceable>name</replaceable>
<listitem><para>Convert only the widget named <replaceable>name</replaceable>
and its children.</para></listitem>
</varlistentry>
</variablelist>

View file

@ -29,8 +29,8 @@ input method modules for GTK+ and writes it to the default cache file
location, or to <filename>stdout</filename>.
</para>
<para>
If called without arguments, it looks for modules in the GTK+ input method
module path.
If called without arguments, it looks for modules in the GTK+ input method
module path.
</para>
<para>
If called with arguments, it looks for the specified modules. The arguments
@ -56,8 +56,8 @@ can be set to point GTK+ at the file.
<refsect1><title>Environment</title>
<para>
The environment variable <link linkend="GTK_PATH"><envar>GTK_PATH</envar></link> can
be used to prepend directories to the input method module path.
The environment variable <link linkend="GTK_PATH"><envar>GTK_PATH</envar></link> can
be used to prepend directories to the input method module path.
</para>
</refsect1>

View file

@ -32,11 +32,11 @@
<refsect1><title>Description</title>
<para><command>gtk-update-icon-cache</command> creates mmap()able cache files for
icon themes.
icon themes.
</para>
<para>
It expects to be given the path to a icon theme directory containing an
<filename>index.theme</filename>, e.g. <filename>/usr/share/icons/hicolor</filename>,
<filename>index.theme</filename>, e.g. <filename>/usr/share/icons/hicolor</filename>,
and writes a <filename>icon-theme.cache</filename> containing cached information
about the icons in the directory tree below the given directory.
</para>
@ -53,7 +53,7 @@ multiple applications, the overall memory consumption is reduced as well.
<varlistentry>
<term>--force</term>
<term>-f</term>
<listitem><para>Overwrite an existing cache file even if it appears to be
<listitem><para>Overwrite an existing cache file even if it appears to be
uptodate.</para></listitem>
</varlistentry>
@ -63,7 +63,7 @@ multiple applications, the overall memory consumption is reduced as well.
<listitem><para>Don't check for the existence of 'index.theme' in the icon theme
directory. Without this option, <command>gtk-update-icon-cache</command> refuses
to create an icon cache in a directory which does not appear to be the toplevel
directory of an icon theme.
directory of an icon theme.
</para></listitem>
</varlistentry>
@ -83,15 +83,15 @@ multiple applications, the overall memory consumption is reduced as well.
<varlistentry>
<term>--source</term>
<term>-c</term>
<listitem><para>Output a C header file declaring a constant
<replaceable>name</replaceable> with the contents of the icon
<listitem><para>Output a C header file declaring a constant
<replaceable>name</replaceable> with the contents of the icon
cache.</para></listitem>
</varlistentry>
<varlistentry>
<term>--quiet</term>
<term>-q</term>
<listitem><para>Turn off verbose output.
<listitem><para>Turn off verbose output.
</para></listitem>
</varlistentry>

View file

@ -270,10 +270,10 @@ gtk_action_group_add_action_with_accel
gtk_action_group_remove_action
GtkActionEntry
gtk_action_group_add_actions
gtk_action_group_add_actions_full
gtk_action_group_add_actions_full
GtkToggleActionEntry
gtk_action_group_add_toggle_actions
gtk_action_group_add_toggle_actions_full
gtk_action_group_add_toggle_actions_full
GtkRadioActionEntry
gtk_action_group_add_radio_actions
gtk_action_group_add_radio_actions_full
@ -1358,7 +1358,7 @@ gtk_entry_set_icon_from_icon_name
gtk_entry_set_icon_from_gicon
gtk_entry_get_icon_storage_type
gtk_entry_get_icon_pixbuf
gtk_entry_get_icon_stock
gtk_entry_get_icon_stock
gtk_entry_get_icon_name
gtk_entry_get_icon_gicon
gtk_entry_set_icon_activatable
@ -2045,7 +2045,7 @@ gtk_icon_view_unset_model_drag_source
gtk_icon_view_unset_model_drag_dest
gtk_icon_view_set_reorderable
gtk_icon_view_get_reorderable
gtk_icon_view_set_drag_dest_item
gtk_icon_view_set_drag_dest_item
gtk_icon_view_get_drag_dest_item
gtk_icon_view_get_dest_item_at_pos
gtk_icon_view_create_drag_icon
@ -2571,8 +2571,8 @@ gtk_menu_item_set_use_underline
gtk_menu_item_set_submenu
gtk_menu_item_get_submenu
gtk_menu_item_remove_submenu
gtk_menu_item_set_accel_path
gtk_menu_item_get_accel_path
gtk_menu_item_set_accel_path
gtk_menu_item_get_accel_path
gtk_menu_item_select
gtk_menu_item_deselect
gtk_menu_item_activate
@ -6854,7 +6854,7 @@ gtk_print_operation_get_n_pages_to_print
gtk_print_operation_set_current_page
gtk_print_operation_set_use_full_page
gtk_print_operation_set_unit
gtk_print_operation_set_export_filename
gtk_print_operation_set_export_filename
gtk_print_operation_set_show_progress
gtk_print_operation_set_track_print_status
gtk_print_operation_set_custom_tab_label
@ -6981,7 +6981,7 @@ GTK_PRINTER_GET_CLASS
<SUBSECTION Private>
GtkPrinterPrivate
gtk_printer_get_type
gtk_printer_get_type
</SECTION>

View file

@ -5,7 +5,7 @@
<para role="gallery">
<link linkend="GtkAccelLabel">
<inlinegraphic fileref="accel-label.png" format="PNG"></inlinegraphic>
</link>
</link>
<link linkend="GtkButton">
<inlinegraphic fileref="button.png" format="PNG"></inlinegraphic>
</link>
@ -56,16 +56,16 @@
</link>
<link linkend="GtkPaned">
<inlinegraphic fileref="panes.png" format="PNG"></inlinegraphic>
</link>
</link>
<link linkend="GtkVolumeButton">
<inlinegraphic fileref="volumebutton.png" format="PNG"></inlinegraphic>
</link>
<link linkend="GtkPageSetupUnixDialog">
<inlinegraphic fileref="pagesetupdialog.png" format="PNG"></inlinegraphic>
</link>
</link>
<link linkend="GtkPrintUnixDialog">
<inlinegraphic fileref="printdialog.png" format="PNG"></inlinegraphic>
</link>
</link>
<link linkend="GtkProgressBar">
<inlinegraphic fileref="progressbar.png" format="PNG"></inlinegraphic>
</link>
@ -101,7 +101,7 @@
</link>
<link linkend="GtkToolPalette">
<inlinegraphic fileref="toolpalette.png" format="PNG"></inlinegraphic>
</link>
</link>
<link linkend="GtkTreeView">
<inlinegraphic fileref="list-and-tree.png" format="PNG"></inlinegraphic>
</link>

View file

@ -3,25 +3,25 @@ This is a list of things to check when testing window size/pos functions.
gtk_widget_set_size_request():
- causes the widget to request the given size
- for toplevel windows, changes the default-requested size if
- for toplevel windows, changes the default-requested size if
no default size is set and gtk_window_resize() has not been called
- passing -1 for either width or height reverts to "natural" request
in that dimension
- passing 0 is allowed, and results in requisition of 1x1
(0x0 is a permitted requisition, but equivalent to 1x1,
- passing 0 is allowed, and results in requisition of 1x1
(0x0 is a permitted requisition, but equivalent to 1x1,
we use 1x1 for implementation convenience)
- causes notifies on width_request, height_request properties
gtk_window_resize():
- causes a configure request in all cases if the window is mapped,
- causes a configure request in all cases if the window is mapped,
unless the new size is the same as the old size
- overrides the default size on map if the window is unmapped
- allows size of 0, equivalent to 1
- clamped to geometry hints
gtk_window_set_default_size():
- has no effect after the window has been mapped the first time,
unless the window has been unrealized in which case it should
- has no effect after the window has been mapped the first time,
unless the window has been unrealized in which case it should
have an effect
- allows size of 0, equivalent to 1
- allows size of -1 to unset the default size
@ -30,28 +30,28 @@ gtk_window_set_default_size():
- causes notifies on default_width, default_height properties
gtk_window_get_default_size():
- returns the values last passed to set_default_size(), including
- returns the values last passed to set_default_size(), including
-1. If set_default_size() has not been called, returns -1.
gtk_window_move():
- always causes a configure request if the window is mapped,
- always causes a configure request if the window is mapped,
unless the last configure request we sent was for the same
position being moved to
- position may be negative to move windows offscreen
- if GTK_WIN_POS_CENTER_ALWAYS (or other future position
- if GTK_WIN_POS_CENTER_ALWAYS (or other future position
constraints we may add) is in effect, the move
request is clamped to obey the constraints. thus
calling gtk_window_move() on a CENTER_ALWAYS window
may trigger the window to bounce back to center if it
calling gtk_window_move() on a CENTER_ALWAYS window
may trigger the window to bounce back to center if it
wasn't there
- overrides all GTK_WIN_POS_ except CENTER_ALWAYS
gtk_window_get_size():
- obtains the client-side known size of widget->window,
- obtains the client-side known size of widget->window,
as last received from a configure event
- prior to mapping, returns the default size we will request
- between realization and mapping, computes default size
rather than looking at widget->window up-to-date size,
- between realization and mapping, computes default size
rather than looking at widget->window up-to-date size,
so the size will be correct after force-realizing a window
gtk_window_get_position():
@ -60,16 +60,16 @@ gtk_window_get_position():
- round-trips to the server to get the position; this is suboptimal
from both a race condition and speed standpoint but required to get
window frame size
- if the window is unmapped, returns the default position we will
- if the window is unmapped, returns the default position we will
request
gtk_window_set_position():
- not the inverse of get_position(), sadly
- modifies the default positioning of the window
- if set to CENTER_ALWAYS and the window is mapped, results in a
configure request moving the window to the center, unless the
configure request moving the window to the center, unless the
window was already centered
- ignored if gtk_window_move() called, with the exception
- ignored if gtk_window_move() called, with the exception
of CENTER_ALWAYS
gtk_window_parse_geometry():
@ -81,8 +81,8 @@ gtk_window_parse_geometry():
- calls gtk_window_set_gravity() to set the window gravity
gtk_window_reshow_with_initial_size():
- for use by GUI builders; unrealizes and re-shows the window,
using default size (and also position, but position
- for use by GUI builders; unrealizes and re-shows the window,
using default size (and also position, but position
is reset on any hide anyway)
- window should be positioned and sized as it was on initial map,
barring odd window managers
@ -94,22 +94,22 @@ gtk_window_set_geometry_hints():
General behavior
===
- no infinite loops or nasty fighting-the-user flicker during
- no infinite loops or nasty fighting-the-user flicker during
operations such as moving/resizing a window
Properties
===
GtkWindow::default_width, GtkWindow::default_height:
- default_width is -1 if unset, or >= 0 if
- default_width is -1 if unset, or >= 0 if
a default width is set
- default_height is -1 if unset, or >= 0 if
a default height is set
GtkWindow::allow_grow, GtkWindow::resizable:
- equivalent properties; changing one notifies on the other
- if FALSE, we set the min size to the max size in the geometry
hints.
- if FALSE, we set the min size to the max size in the geometry
hints.
- If the app programmer has called gtk_window_set_geometry_hints()
however and set min or max size, we don't replace the hint they
set.

View file

@ -82,7 +82,7 @@ GtkWidget::style_set
style->bg. (e.g., GtkListItem)
- the widget provides windows other than widget->window.
- the widget has any other stored dependencies on the style.
Flag indications:

View file

@ -7,8 +7,8 @@ Subject: [gtk-list] gtktext widget internal documentation
Pete convinced me to just write up the text widget and let someone else
finish it. I'm pretty busy and have other commitments now. Sorry. I think
I'm not the most qualified for some of the remaining work anyway, because I
don't really know Gtk and it's event model very well. Most of the work so
far was possible without knowing Gtk all that well, it was simply a data
don't really know Gtk and it's event model very well. Most of the work so
far was possible without knowing Gtk all that well, it was simply a data
structure exercise (though after reading this you might say it was a fairly
complicated data structure exercise). I'm happy to answer questions.
@ -166,7 +166,7 @@ often, the last index is treated as a newline.
length 1 unless there are no other characters in the text. That
is, its properties are always that of the preceding character,
if any.
There is a fair bit of special case code to maintain this condition -
which is needed so that user has control over the properties of
characters inserted at the last position. OWT 2/9/98 ]

View file

@ -32,7 +32,7 @@ the paragraph break char may be more than one byte.)
The idea of the btree is something like:
------ Node (lines = 6)
/ Line 0
/ Line 1
@ -40,7 +40,7 @@ The idea of the btree is something like:
/ Line 3
/ Line 4
/ Line 5
Node (lines = 12)
Node (lines = 12)
\
\---------- Node (lines = 6)
Line 6
@ -49,7 +49,7 @@ The idea of the btree is something like:
Line 9
Line 10
Line 11
In addition to keeping aggregate line counts at each node, we count
characters, and information about the tag toggles appearing below each
@ -59,16 +59,16 @@ Structure of a GtkTextLine
===
A GtkTextLine contains a single paragraph of text. It should probably
be renamed GtkTextPara someday but ah well. GtkTextLine is used for
be renamed GtkTextPara someday but ah well. GtkTextLine is used for
the leaf nodes of the BTree.
A line is a list of GtkTextLineSegment. Line segments contain the
actual data found in the text buffer.
Here are the types of line segment (see gtktextsegment.h,
gtktextchild.h, etc.):
Character: contains a block of UTF-8 text.
Character: contains a block of UTF-8 text.
Mark: marks a position in the buffer, such as a cursor.
@ -78,13 +78,13 @@ gtktextchild.h, etc.):
range, and a toggle off at the end. (and do any
necessary merging with existing toggles, so we
always have the minimum number possible)
Child widget: stores a child widget that behaves as a single
Child widget: stores a child widget that behaves as a single
Unicode character from an editing perspective.
(well, stores a list of child widgets, one per
(well, stores a list of child widgets, one per
GtkTextView displaying the buffer)
Image: stores a GdkPixbuf that behaves as a single
Image: stores a GdkPixbuf that behaves as a single
character from an editing perspective.
@ -96,40 +96,40 @@ The functions in the class are:
- DeleteFunc, finalizes the segment
- CleanupFunc, after modifying a line by adding/removing segments,
this function is used to try merging segments that can be merged,
e.g. two adjacent character segments with no marks or toggles
- CleanupFunc, after modifying a line by adding/removing segments,
this function is used to try merging segments that can be merged,
e.g. two adjacent character segments with no marks or toggles
in between.
- LineChangeFunc, called when a segment moves to a different line;
according to comments in the code this function may not be needed
anymore.
- SegCheckFunc, does sanity-checking when debugging is enabled.
- SegCheckFunc, does sanity-checking when debugging is enabled.
Basically equivalent to assert(segment is not broken).
The segment class also contains two data fields:
- the name of the segment type, used for debugging
- a boolean flag for whether the segment has right or left
- a boolean flag for whether the segment has right or left
gravity. A segment with right gravity ends up on the right of a
newly-inserted segment that's placed at the same character offset,
and a segment with left gravity ends up on the left of a
newly-inserted segment. For example the insertion cursor
has right gravity, because as you type new text is inserted,
newly-inserted segment. For example the insertion cursor
has right gravity, because as you type new text is inserted,
and the cursor ends up on the right.
The segment itself contains contains a header, plus some
variable-length data that depends on the type of the segment.
variable-length data that depends on the type of the segment.
The header contains the length of the segment in characters and in
bytes. Some segments have a length of zero. Segments with nonzero
length are referred to as "indexable" and would generally be
user-visible; indexable segments include text, images, and widgets.
user-visible; indexable segments include text, images, and widgets.
Segments with zero length occupy positions between characters, and
include marks and tag toggles.
The GtkText*Body structs are the type-specific portions of
The GtkText*Body structs are the type-specific portions of
GtkTextSegment.
Character segments have the actual character data allocated in the
@ -174,14 +174,14 @@ there was some idea that a view could be any object, so there are some
that all views had to be a GtkTextLayout and so the btree does assume
that from time to time.
The BTree maintains some per-line and per-node data that is specific
The BTree maintains some per-line and per-node data that is specific
to each view. The per-line data is in GtkTextLineData and the per-node
data is in another badly-named struct called NodeData (should be
PerViewNodeData or something). The purpose of these is to store:
- aggregate height, so we can calculate the Y position of each
paragraph in O(log N) time, and can get the full height
of the buffer in O(1) time. The height is per-view since
paragraph in O(log N) time, and can get the full height
of the buffer in O(1) time. The height is per-view since
each GtkTextView may have a different size allocation.
- maximum width (the longest line), so we can calculate the width of
@ -216,13 +216,13 @@ chars_changed_stamp different from the current stamp of the BTree.
That is, you can't use an iterator after adding/removing characters.
The "segments_changed_stamp" is incremented any time we change any
segments, and tells outstanding iterators that any pointers to
GtkTextSegment that they may be holding are now invalid. For example,
segments, and tells outstanding iterators that any pointers to
GtkTextSegment that they may be holding are now invalid. For example,
if you are iterating over a character segment, and insert a mark in
the middle of the segment, the character segment will be split in half
and the original segment will be freed. This increments
segments_changed_stamp, causing your iterator to drop its current
segment pointer and count from the beginning of the line again to find
segment pointer and count from the beginning of the line again to find
the new segment.
Iterators also cache some random information such as the current line
@ -242,28 +242,28 @@ width and height) by converting the lines to a PangoLayout and using
Pango functions. GtkTextLayout is also used for visual iteration, and
mapping visual locations to logical buffer positions.
Validating a line involves creating the GtkTextLineDisplay for that
Validating a line involves creating the GtkTextLineDisplay for that
line. To save memory, GtkTextLineDisplay objects are always created
transiently, we don't keep them around.
The layout has three signals:
- "invalidated" means some line was changed, so GtkTextView
- "invalidated" means some line was changed, so GtkTextView
needs to install idle handlers to revalidate.
- "changed" means some lines were validated, so the aggregate
width/height of the BTree is now different.
- "allocate_child" means we need to size allocate a
- "allocate_child" means we need to size allocate a
child widget
gtk_text_layout_get_line_display() is sort of the "heart" of
GtkTextLayout. This function validates a line.
GtkTextLayout. This function validates a line.
Line validation involves:
- convert any GtkTextTag on the line to PangoAttrList
- add the preedit string
- keep track of "visible marks" (the cursor)
@ -271,7 +271,7 @@ Line validation involves:
A given set of tags is composited to a GtkTextAttributes. (In the Tk
code this was called a "style" and there are still relics of this in
the code, such as "invalidate_cached_style()", that should be cleaned
up.)
up.)
There's a single-GtkTextAttributes cache, "layout->one_style_cache",
which is used to avoid recomputing the mapping from tags to attributes
@ -282,8 +282,8 @@ may change the current style (such as a tag toggle), the cache has to
be dropped.
To compute a GtkTextAttributes from the GtkTextTag that apply to a
given segment, the function is _gtk_text_attributes_fill_from_tags().
This "mashes" a list of tags into a single set of text attributes.
given segment, the function is _gtk_text_attributes_fill_from_tags().
This "mashes" a list of tags into a single set of text attributes.
If no tags affect a given attribute, a default set of attributes are
used. These defaults sometimes come from widget->style on the
GtkTextView, and sometimes come from a property of the GtkTextView
@ -292,7 +292,7 @@ such as "pixels_above_lines"
GtkTextView
===
Once you get GtkTextLayout and GtkTextBTree the actual GtkTextView
Once you get GtkTextLayout and GtkTextBTree the actual GtkTextView
widget is not that complicated.
The main complexity is the interaction between scrolling and line

View file

@ -27,13 +27,13 @@ create_blur_filter (int radius)
ConvFilter *filter;
int x, y;
double sum;
filter = g_new0 (ConvFilter, 1);
filter->size = radius * 2 + 1;
filter->data = g_new (double, filter->size * filter->size);
sum = 0.0;
for (y = 0 ; y < filter->size; y++)
{
for (x = 0 ; x < filter->size; x++)
@ -53,7 +53,7 @@ create_blur_filter (int radius)
}
return filter;
}
static GdkPixbuf *
@ -65,12 +65,12 @@ create_shadow (GdkPixbuf *src)
static ConvFilter *filter = NULL;
int src_rowstride, dest_rowstride;
int src_bpp, dest_bpp;
guchar *src_pixels, *dest_pixels;
if (!filter)
filter = create_blur_filter (BLUR_RADIUS);
width = gdk_pixbuf_get_width (src) + BLUR_RADIUS * 2 + SHADOW_OFFSET;
height = gdk_pixbuf_get_height (src) + BLUR_RADIUS * 2 + SHADOW_OFFSET;
@ -78,15 +78,15 @@ create_shadow (GdkPixbuf *src)
gdk_pixbuf_get_has_alpha (src),
gdk_pixbuf_get_bits_per_sample (src),
width, height);
gdk_pixbuf_fill (dest, 0);
gdk_pixbuf_fill (dest, 0);
src_pixels = gdk_pixbuf_get_pixels (src);
src_rowstride = gdk_pixbuf_get_rowstride (src);
src_bpp = gdk_pixbuf_get_has_alpha (src) ? 4 : 3;
dest_pixels = gdk_pixbuf_get_pixels (dest);
dest_rowstride = gdk_pixbuf_get_rowstride (dest);
dest_bpp = gdk_pixbuf_get_has_alpha (dest) ? 4 : 3;
for (y = 0; y < height; y++)
{
for (x = 0; x < width; x++)
@ -110,19 +110,19 @@ create_shadow (GdkPixbuf *src)
src_x * src_bpp + 0] *
filter->data [i * filter->size + j];
sumg += src_pixels [src_y * src_rowstride +
src_x * src_bpp + 1] *
src_x * src_bpp + 1] *
filter->data [i * filter->size + j];
sumb += src_pixels [src_y * src_rowstride +
src_x * src_bpp + 2] *
src_x * src_bpp + 2] *
filter->data [i * filter->size + j];
if (src_bpp == 4)
suma += src_pixels [src_y * src_rowstride +
src_x * src_bpp + 3] *
filter->data [i * filter->size + j];
}
}
@ -132,7 +132,7 @@ create_shadow (GdkPixbuf *src)
}
}
return dest;
}
@ -140,7 +140,7 @@ GdkPixbuf *
create_shadowed_pixbuf (GdkPixbuf *src)
{
GdkPixbuf *dest;
dest = create_shadow (src);
gdk_pixbuf_composite (src, dest,

View file

@ -80,7 +80,7 @@ remove_shaped_area (GdkPixbuf *pixbuf,
retval = gdk_pixbuf_new (GDK_COLORSPACE_RGB, TRUE, 8,
gdk_pixbuf_get_width (pixbuf),
gdk_pixbuf_get_height (pixbuf));
gdk_pixbuf_fill (retval, 0);
rectangles = XShapeGetRectangles (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), window,
ShapeBounding, &rectangle_count, &rectangle_order);

View file

@ -281,7 +281,7 @@ create_combo_box_entry (void)
GtkWidget *align;
GtkWidget *child;
GtkTreeModel *model;
gtk_rc_parse_string ("style \"combo-box-entry-style\" {\n"
" GtkComboBox::appears-as-list = 1\n"
"}\n"
@ -308,7 +308,7 @@ create_combo_box (void)
{
GtkWidget *widget;
GtkWidget *align;
gtk_rc_parse_string ("style \"combo-box-style\" {\n"
" GtkComboBox::appears-as-list = 0\n"
"}\n"
@ -333,9 +333,9 @@ create_recent_chooser_dialog (void)
NULL,
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
NULL);
NULL);
gtk_window_set_default_size (GTK_WINDOW (widget), 505, 305);
info = new_widget_info ("recentchooserdialog", widget, ASIS);
info->include_decorations = TRUE;
@ -633,11 +633,11 @@ create_colorsel (void)
color.blue = 0x9595;
gtk_color_selection_set_previous_color (colorsel, &color);
color.red = 0x7d7d;
color.green = 0x9393;
color.blue = 0xc3c3;
gtk_color_selection_set_current_color (colorsel, &color);
info = new_widget_info ("colorsel", widget, ASIS);
@ -670,9 +670,9 @@ create_filesel (void)
GTK_FILE_CHOOSER_ACTION_OPEN,
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
NULL);
NULL);
gtk_window_set_default_size (GTK_WINDOW (widget), 505, 305);
info = new_widget_info ("filechooser", widget, ASIS);
info->include_decorations = TRUE;
@ -685,7 +685,7 @@ create_print_dialog (void)
WidgetInfo *info;
GtkWidget *widget;
widget = gtk_print_unix_dialog_new ("Print Dialog", NULL);
widget = gtk_print_unix_dialog_new ("Print Dialog", NULL);
gtk_widget_set_size_request (widget, 505, 350);
info = new_widget_info ("printdialog", widget, ASIS);
info->include_decorations = TRUE;
@ -703,7 +703,7 @@ create_page_setup_dialog (void)
page_setup = gtk_page_setup_new ();
settings = gtk_print_settings_new ();
widget = gtk_page_setup_unix_dialog_new ("Page Setup Dialog", NULL);
widget = gtk_page_setup_unix_dialog_new ("Page Setup Dialog", NULL);
gtk_page_setup_unix_dialog_set_page_setup (GTK_PAGE_SETUP_UNIX_DIALOG (widget),
page_setup);
gtk_page_setup_unix_dialog_set_print_settings (GTK_PAGE_SETUP_UNIX_DIALOG (widget),
@ -845,7 +845,7 @@ create_notebook (void)
widget = gtk_notebook_new ();
gtk_notebook_append_page (GTK_NOTEBOOK (widget),
gtk_notebook_append_page (GTK_NOTEBOOK (widget),
gtk_label_new ("Notebook"),
NULL);
gtk_notebook_append_page (GTK_NOTEBOOK (widget), gtk_event_box_new (), NULL);
@ -883,7 +883,7 @@ create_scrolledwindow (void)
scrolledwin = gtk_scrolled_window_new (NULL, NULL);
label = gtk_label_new ("Scrolled Window");
gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolledwin),
gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolledwin),
label);
return new_widget_info ("scrolledwindow", scrolledwin, MEDIUM);
@ -964,7 +964,7 @@ create_image (void)
GtkWidget *widget;
GtkWidget *align, *vbox;
widget = gtk_image_new_from_stock (GTK_STOCK_DIALOG_WARNING,
widget = gtk_image_new_from_stock (GTK_STOCK_DIALOG_WARNING,
GTK_ICON_SIZE_DND);
vbox = gtk_vbox_new (FALSE, 3);

View file

@ -43,7 +43,7 @@ if [ ! -d $BUILDDIR ]; then
echo "mkdir of build directory failed"
exit 1
fi
fi
fi
if ! cd $BUILDDIR; then
echo "cd to build directory failed"
@ -68,7 +68,7 @@ tar cvfz $TARGETDIR/gtk-tutorial.sgml.tgz gtk-tutorial.sgml
echo "done"
# HTML Format
echo -n "Formatting into HTML.... "
echo -n "Formatting into HTML.... "
if [ ! -d gtk-tutorial.html ]; then
if [ -e gtk-tutorial.html ]; then
echo "ERROR: gtk-tutorial.html is not a directory"

View file

@ -272,7 +272,7 @@ GtkButton
=====================
NOTE: Due to a bug that is basically unfixable in a sufficiently compatible
NOTE: way, the button gives the space requested for focus_width and
NOTE: way, the button gives the space requested for focus_width and
NOTE: focus_padding to the child (in addition to the space requested by
NOTE: the child), if the button is !CAN_FOCUS.

View file

@ -6,7 +6,7 @@ and should work. It consists of three parts:
I) A description of the meaning of the various flags
II) A list of invariants about the states of the widgets.
II) A list of invariants about the states of the widgets.
(Throughout this document, we refer to the states of the
widgets by referring to the flags for GtkWidget)
@ -46,7 +46,7 @@ GTK_DESTROYED:
This flagged is set for a GtkObject right before its
destruction code is executed. Its main use is the
prevention of multiple destruction invocations.
GTK_FLOATING:
This flag reflects the fact that the holder of the
initial reference count is unknown. Refer to refcounting.txt
@ -63,7 +63,7 @@ GTK_TOPLEVEL:
Widgets without a real parent, as there are GtkWindows and
GtkMenus have this flag set throughout their lifetime.
Toplevel widgets always contain their own GdkWindow.
GTK_NO_WINDOW:
This flag is indicative for a widget that does not provide
its own GdkWindow. Visible action (e.g. drawing) is performed
@ -89,7 +89,7 @@ GTK_VISIBLE:
Implies that a widget is not onscreen, therefore !GTK_MAPPED.
GTK_CHILD_VISIBLE
Set by gtk_widget_set_child_visible, and if FALSE indicates that
Set by gtk_widget_set_child_visible, and if FALSE indicates that
the widget should not be mapped even if the parent is mapped
and visible. Containers like GtkNotebook use this flag.
A private flag, not a public flag, so if you need to check
@ -120,7 +120,7 @@ GTK_HAS_FOCUS:
This flag will be set by gtk_widget_grab_focus for widgets that also
have GTK_CAN_FOCUS set. The flag will be unset once another widget
grabs the focus.
GTK_CAN_DEFAULT:
GTK_HAS_DEFAULT:
These two flags are mostly equal in functionality to their *_FOCUS
@ -157,7 +157,7 @@ GTK_USER_STYLE:
has been invoked for it. The use of this flag is to tell widgets
which share a global user style from the ones which got a certain
style assign from outside the toolkit.
GTK_RESIZE_PENDING:
First, this is only valid for GtkContainers.
[some of the code should move to gtkcontainer.c therefore]
@ -196,19 +196,19 @@ GTK_IN_REPARENT:
process of getting unparented.
GTK_NEED_REQUEST:
This flag is set if the widget doesn't have an up to date
This flag is set if the widget doesn't have an up to date
requisition. If this flag is set, we must actually emit ::size-request
when gtk_widget_size_request() is called. Otherwise, we can
simply widget->requisition. We keep track of this all the time
however, widgets with this flag set are only added to the resize
however, widgets with this flag set are only added to the resize
queue if they are viewable.
GTK_NEED_ALLOCATION:
This flag is set if the widget doesn't have an up to date
This flag is set if the widget doesn't have an up to date
allocation. If this flag is set, we must actually emit ::size-allocate
when gtk_widget_size_allocate() is called, even if the new allocation
is the same as the current allocation.
Related Macros:
GTK_WIDGET_DRAWABLE:
@ -224,7 +224,7 @@ GTK_WIDGET_IS_SENSITIVE:
II. Invariants:
---------------
This section describes various constraints on the states of
This section describes various constraints on the states of
the widget:
In the following
@ -236,8 +236,8 @@ In the following
1) GTK_WIDGET_DESTROYED (widget) => !GTK_WIDGET_REALIZED (widget)
=> !GTK_WIDGET_VISIBLE (widget)
[ The latter is not currently in place, but it should be ]
[ The latter is not currently in place, but it should be ]
2) GTK_WIDGET_MAPPED (widget) => GTK_WIDGET_REALIZED (widget)
3) if GTK_WIDGET_TOPLEVEL (widget):
@ -253,15 +253,15 @@ In the following
=> GTK_WIDGET_CHILD_VISIBLE (widget)
=> GTK_WIDGET_REALIZED (widget)
widget->parent && GTK_WIDGET_MAPPED (widget->parent) &&
GTK_WIDGET_VISIBLE (widget) && GTK_WIDGET_CHILD_VISIBLE
widget->parent && GTK_WIDGET_MAPPED (widget->parent) &&
GTK_WIDGET_VISIBLE (widget) && GTK_WIDGET_CHILD_VISIBLE
=> GTK_WIDGET_MAPPED (widget)
Note:, the definition
[ GTK_WIDGET_DRAWABLE = GTK_WIDGET_VISIBLE && GTK_WIDGET_MAPPED
is made in gtkwidget.h, but by 3) and 5),
is made in gtkwidget.h, but by 3) and 5),
GTK_WIDGET_MAPPED => GTK_WIDGET_VISIBLE
]
@ -277,9 +277,9 @@ How can the user control the state of a widget:
-----------------------------------------------
(In the following, set flag means set the flag, do appropriate
actions, and enforce above invariants)
actions, and enforce above invariants)
gtk_widget_show:
gtk_widget_show:
if !GTK_DESTROYED sets GTK_VISIBLE
gtk_widget_hide:
@ -295,14 +295,14 @@ gtk_widget_realize:
of a toplevel is an ERROR.
gtk_container_add (container, widget) [ and container-specific variants ]
Sets widget->parent
Sets widget->parent
gtk_container_remove (container, widget)
unsets widget->parent
gtk_widget_reparent (widget, new_parent)
Equivalent to removing widget from old parent and adding it to
the new parent, except that the widget will not be temporarily
the new parent, except that the widget will not be temporarily
unrealized if both the old parent and the new parent are realized.
@ -329,7 +329,7 @@ Adding to a container
When a widget is added to a container, the container:
1) calls gtk_widget_set_parent_window (widget, window) if
1) calls gtk_widget_set_parent_window (widget, window) if
the widget is being added to something other than container->window
2) calls gtk_widget_set_parent (widget, container)
@ -343,14 +343,14 @@ When a widget is removed to a container, the container:
Notes:
gtk_widget_unparent unrealizes the widget except in the
gtk_widget_unparent unrealizes the widget except in the
special case GTK_IN_REPARENT is set.
At widget creation
------------------
Widgets are created in an unrealized state.
Widgets are created in an unrealized state.
1) The widget should allocate and initialize needed data structures
@ -383,7 +383,7 @@ The Map signal
1) Set the MAPPED flag
2) If the widget has any windows, gdk_window_show those windows
3) call gtk_widget_map for all child widgets that are
3) call gtk_widget_map for all child widgets that are
VISIBLE, CHILD_VISIBLE and !MAPPED. (A widget will only
be !CHILD_VISIBLE if the container set it that way, so
most containers will not have to check this.)
@ -395,7 +395,7 @@ The Unmap signal
When a widget receives the unmap signal, it must:
1) If the widget has a window, gdk_window_hide that window,
1) If the widget has a window, gdk_window_hide that window,
2) If the widget does not have a window, unmap all child widgets
3) Do any other functions related to taking the widget offscreen
(for instance, removing popup windows...)
@ -436,7 +436,7 @@ Commentary:
back to the widget. (To use gtk_widget_get_data, for instance)
If it does so via a pointer in a closure (natural for
Scheme, or Perl), then the finalization procedure will never
be called.
be called.
Also, if we made that the finalization step, we would have
to propagate the GDK_DESTROY event in any case, since it is
@ -458,7 +458,7 @@ signal (but see the section on "Finalize" below)
The widget must handle calls to all publically accessible
functions in an innocuous manner even after a "destroy"
signal. (A widget can assume that it will not be realized
signal. (A widget can assume that it will not be realized
after a "destroy" signal is received, which may simplify
handling this requirement)
@ -496,5 +496,5 @@ not Bar.
Then gtk_foo_destroy will call gtk_widget_destroy (because
it was not overridden in the Bar class structure) and
gtk_widget_destroy will call gtk_object_destroy because
the parent_class variable referenced by gtk_foo_destroy is the
the parent_class variable referenced by gtk_foo_destroy is the
static variable in gtkwidget.c: GtkObjectClass.

View file

@ -13,7 +13,7 @@ static GtkWidget *create_arrow_button( GtkArrowType arrow_type,
arrow = gtk_arrow_new (arrow_type, shadow_type);
gtk_container_add (GTK_CONTAINER (button), arrow);
gtk_widget_show (button);
gtk_widget_show (arrow);
@ -56,17 +56,17 @@ int main( int argc,
button = create_arrow_button (GTK_ARROW_DOWN, GTK_SHADOW_OUT);
gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 3);
button = create_arrow_button (GTK_ARROW_LEFT, GTK_SHADOW_ETCHED_IN);
gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 3);
button = create_arrow_button (GTK_ARROW_RIGHT, GTK_SHADOW_ETCHED_OUT);
gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 3);
gtk_widget_show (window);
/* Rest in gtk_main and wait for the fun to begin! */
gtk_main ();
return 0;
}

View file

@ -1,6 +1,6 @@
#include <gtk/gtk.h>
int main( int argc,
char *argv[] )
{
@ -8,34 +8,34 @@ int main( int argc,
GtkWidget *aspect_frame;
GtkWidget *drawing_area;
gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "Aspect Frame");
g_signal_connect (G_OBJECT (window), "destroy",
G_CALLBACK (gtk_main_quit), NULL);
gtk_container_set_border_width (GTK_CONTAINER (window), 10);
/* Create an aspect_frame and add it to our toplevel window */
aspect_frame = gtk_aspect_frame_new ("2x1", /* label */
0.5, /* center x */
0.5, /* center y */
2, /* xsize/ysize = 2 */
FALSE /* ignore child's aspect */);
gtk_container_add (GTK_CONTAINER (window), aspect_frame);
gtk_widget_show (aspect_frame);
/* Now add a child widget to the aspect frame */
drawing_area = gtk_drawing_area_new ();
/* Ask for a 200x200 window, but the AspectFrame will give us a 200x100
* window since we are forcing a 2x1 aspect ratio */
gtk_widget_set_size_request (drawing_area, 200, 200);
gtk_container_add (GTK_CONTAINER (aspect_frame), drawing_area);
gtk_widget_show (drawing_area);
gtk_widget_show (window);
gtk_main ();
return 0;

View file

@ -5,13 +5,13 @@ int main( int argc,
char *argv[] )
{
GtkWidget *window;
gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_widget_show (window);
gtk_main ();
return 0;
}

View file

@ -115,6 +115,6 @@ int main( int argc,
/* Enter the event loop */
gtk_main ();
return 0;
}

View file

@ -6,7 +6,7 @@
void button_add_clicked( gpointer data )
{
int indx;
/* Something silly to add to the list. 4 rows of 2 columns each */
gchar *drink[4][2] = { { "Milk", "3 Oz" },
{ "Water", "6 l" },
@ -80,15 +80,15 @@ void selection_made( GtkWidget *clist,
int main( int argc,
gchar *argv[] )
{
{
GtkWidget *window;
GtkWidget *vbox, *hbox;
GtkWidget *scrolled_window, *clist;
GtkWidget *button_add, *button_clear, *button_hide_show;
GtkWidget *button_add, *button_clear, *button_hide_show;
gchar *titles[2] = { "Ingredients", "Amount" };
gtk_init(&argc, &argv);
window=gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_widget_set_size_request (GTK_WIDGET (window), 300, 150);
@ -96,12 +96,12 @@ int main( int argc,
g_signal_connect (G_OBJECT (window), "destroy",
G_CALLBACK (gtk_main_quit),
NULL);
vbox=gtk_vbox_new (FALSE, 5);
gtk_container_set_border_width (GTK_CONTAINER (vbox), 5);
gtk_container_add (GTK_CONTAINER (window), vbox);
gtk_widget_show (vbox);
/* Create a scrolled window to pack the CList widget into */
scrolled_window = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
@ -168,6 +168,6 @@ int main( int argc,
gtk_widget_show (window);
gtk_main();
return 0;
}

View file

@ -15,7 +15,7 @@ static void color_changed_cb( GtkWidget *widget,
GdkColor ncolor;
gtk_color_selection_get_current_color (colorsel, &ncolor);
gtk_widget_modify_bg (drawingarea, GTK_STATE_NORMAL, &ncolor);
gtk_widget_modify_bg (drawingarea, GTK_STATE_NORMAL, &ncolor);
}
/* Drawingarea event handler */
@ -56,7 +56,7 @@ static gboolean area_event( GtkWidget *widget,
if (response == GTK_RESPONSE_OK)
gtk_color_selection_get_current_color (colorsel, &color);
else
else
gtk_widget_modify_bg (drawingarea, GTK_STATE_NORMAL, &color);
gtk_widget_hide (colorseldlg);
@ -96,7 +96,7 @@ gint main( gint argc,
g_signal_connect (GTK_OBJECT (window), "delete_event",
GTK_SIGNAL_FUNC (destroy_window), (gpointer) window);
/* Create drawingarea, set size and catch button events */
drawingarea = gtk_drawing_area_new ();
@ -104,22 +104,22 @@ gint main( gint argc,
color.red = 0;
color.blue = 65535;
color.green = 0;
gtk_widget_modify_bg (drawingarea, GTK_STATE_NORMAL, &color);
gtk_widget_modify_bg (drawingarea, GTK_STATE_NORMAL, &color);
gtk_widget_set_size_request (GTK_WIDGET (drawingarea), 200, 200);
gtk_widget_set_events (drawingarea, GDK_BUTTON_PRESS_MASK);
g_signal_connect (GTK_OBJECT (drawingarea), "event",
g_signal_connect (GTK_OBJECT (drawingarea), "event",
GTK_SIGNAL_FUNC (area_event), (gpointer) drawingarea);
/* Add drawingarea to window, then show them both */
gtk_container_add (GTK_CONTAINER (window), drawingarea);
gtk_widget_show (drawingarea);
gtk_widget_show (window);
/* Enter the gtk main loop (this never returns) */
gtk_main ();

View file

@ -18,7 +18,7 @@ else
else
if [ -x /usr/bin/awk ]; then
awk -f extract.awk $TUTORIAL $1 $2 $3 $4 $5
else
else
if [ -x /bin/awk ]; then
awk -f extract.awk $TUTORIAL $1 $2 $3 $4 $5
else

View file

@ -12,28 +12,28 @@ int main( int argc,
char *argv[] )
{
GtkWidget *filew;
gtk_init (&argc, &argv);
/* Create a new file selection widget */
filew = gtk_file_selection_new ("File selection");
g_signal_connect (G_OBJECT (filew), "destroy",
G_CALLBACK (gtk_main_quit), NULL);
/* Connect the ok_button to file_ok_sel function */
g_signal_connect (G_OBJECT (GTK_FILE_SELECTION (filew)->ok_button),
"clicked", G_CALLBACK (file_ok_sel), (gpointer) filew);
/* Connect the cancel_button to destroy the widget */
g_signal_connect_swapped (G_OBJECT (GTK_FILE_SELECTION (filew)->cancel_button),
"clicked", G_CALLBACK (gtk_widget_destroy),
G_OBJECT (filew));
/* Lets set the filename, as if this were a save dialog, and we are giving
a default filename */
gtk_file_selection_set_filename (GTK_FILE_SELECTION(filew),
gtk_file_selection_set_filename (GTK_FILE_SELECTION(filew),
"penguin.png");
gtk_widget_show (filew);
gtk_main ();
return 0;

View file

@ -14,7 +14,7 @@ static void move_button( GtkWidget *widget,
{
x = (x + 30) % 300;
y = (y + 50) % 300;
gtk_fixed_move (GTK_FIXED (fixed), widget, x, y);
gtk_fixed_move (GTK_FIXED (fixed), widget, x, y);
}
int main( int argc,
@ -28,15 +28,15 @@ int main( int argc,
/* Initialise GTK */
gtk_init (&argc, &argv);
/* Create a new window */
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "Fixed Container");
/* Here we connect the "destroy" event to a signal handler */
/* Here we connect the "destroy" event to a signal handler */
g_signal_connect (G_OBJECT (window), "destroy",
G_CALLBACK (gtk_main_quit), NULL);
/* Sets the border width of the window. */
gtk_container_set_border_width (GTK_CONTAINER (window), 10);
@ -44,29 +44,29 @@ int main( int argc,
fixed = gtk_fixed_new ();
gtk_container_add (GTK_CONTAINER (window), fixed);
gtk_widget_show (fixed);
for (i = 1 ; i <= 3 ; i++) {
/* Creates a new button with the label "Press me" */
button = gtk_button_new_with_label ("Press me");
/* When the button receives the "clicked" signal, it will call the
* function move_button() passing it the Fixed Container as its
* argument. */
g_signal_connect (G_OBJECT (button), "clicked",
G_CALLBACK (move_button), (gpointer) fixed);
/* This packs the button into the fixed containers window. */
gtk_fixed_put (GTK_FIXED (fixed), button, i*50, i*50);
/* The final step is to display this newly created widget. */
gtk_widget_show (button);
}
/* Display the window */
gtk_widget_show (window);
/* Enter the event loop */
gtk_main ();
return 0;
}

View file

@ -10,12 +10,12 @@ int main( int argc,
/* Initialise GTK */
gtk_init (&argc, &argv);
/* Create a new window */
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "Frame Example");
/* Here we connect the "destroy" event to a signal handler */
/* Here we connect the "destroy" event to a signal handler */
g_signal_connect (G_OBJECT (window), "destroy",
G_CALLBACK (gtk_main_quit), NULL);
@ -37,12 +37,12 @@ int main( int argc,
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_ETCHED_OUT);
gtk_widget_show (frame);
/* Display the window */
gtk_widget_show (window);
/* Enter the event loop */
gtk_main ();
return 0;
}

View file

@ -223,8 +223,8 @@ gtk_dial_realize (GtkWidget *widget)
attributes.height = widget->allocation.height;
attributes.wclass = GDK_INPUT_OUTPUT;
attributes.window_type = GDK_WINDOW_CHILD;
attributes.event_mask = gtk_widget_get_events (widget) |
GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK |
attributes.event_mask = gtk_widget_get_events (widget) |
GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK |
GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK |
GDK_POINTER_MOTION_HINT_MASK;
attributes.visual = gtk_widget_get_visual (widget);
@ -240,7 +240,7 @@ gtk_dial_realize (GtkWidget *widget)
gtk_style_set_background (widget->style, widget->window, GTK_STATE_ACTIVE);
}
static void
static void
gtk_dial_size_request (GtkWidget *widget,
GtkRequisition *requisition)
{
@ -293,7 +293,7 @@ gtk_dial_expose( GtkWidget *widget,
if (event->count > 0)
return FALSE;
dial = GTK_DIAL (widget);
/* gdk_window_clear_area (widget->window,
@ -367,7 +367,7 @@ gtk_dial_expose( GtkWidget *widget,
theta = ((gfloat)i*M_PI / (18*inc/24.) - M_PI/6.);
if ((theta - last) < (increment))
continue;
continue;
last = theta;
s = sin (theta);
@ -430,20 +430,20 @@ gtk_dial_button_press( GtkWidget *widget,
dial = GTK_DIAL (widget);
/* Determine if button press was within pointer region - we
/* Determine if button press was within pointer region - we
do this by computing the parallel and perpendicular distance of
the point where the mouse was pressed from the line passing through
the pointer */
dx = event->x - widget->allocation.width / 2;
dy = widget->allocation.height / 2 - event->y;
s = sin (dial->angle);
c = cos (dial->angle);
d_parallel = s*dy + c*dx;
d_perpendicular = fabs (s*dx - c*dy);
if (!dial->button &&
(d_perpendicular < dial->pointer_width/2) &&
(d_parallel > - dial->pointer_width))
@ -478,7 +478,7 @@ gtk_dial_button_release( GtkWidget *widget,
if (dial->policy == GTK_UPDATE_DELAYED)
g_source_remove (dial->timer);
if ((dial->policy != GTK_UPDATE_CONTINUOUS) &&
(dial->old_value != dial->adjustment->value))
g_signal_emit_by_name (GTK_OBJECT (dial->adjustment), "value_changed");
@ -598,12 +598,12 @@ static void
gtk_dial_update (GtkDial *dial)
{
gfloat new_value;
g_return_if_fail (dial != NULL);
g_return_if_fail (GTK_IS_DIAL (dial));
new_value = dial->adjustment->value;
if (new_value < dial->adjustment->lower)
new_value = dial->adjustment->lower;

View file

@ -24,25 +24,25 @@ int main( int argc,
gtk_container_add (GTK_CONTAINER (window), hbox);
gtk_box_pack_start (GTK_BOX (hbox), vbox, FALSE, FALSE, 0);
gtk_container_set_border_width (GTK_CONTAINER (window), 5);
frame = gtk_frame_new ("Normal Label");
label = gtk_label_new ("This is a Normal label");
gtk_container_add (GTK_CONTAINER (frame), label);
gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0);
frame = gtk_frame_new ("Multi-line Label");
label = gtk_label_new ("This is a Multi-line label.\nSecond line\n" \
"Third line");
gtk_container_add (GTK_CONTAINER (frame), label);
gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0);
frame = gtk_frame_new ("Left Justified Label");
label = gtk_label_new ("This is a Left-Justified\n" \
"Multi-line label.\nThird line");
gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT);
gtk_container_add (GTK_CONTAINER (frame), label);
gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0);
frame = gtk_frame_new ("Right Justified Label");
label = gtk_label_new ("This is a Right-Justified\nMulti-line label.\n" \
"Fourth line, (j/k)");
@ -66,7 +66,7 @@ int main( int argc,
gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
gtk_container_add (GTK_CONTAINER (frame), label);
gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0);
frame = gtk_frame_new ("Filled, wrapped label");
label = gtk_label_new ("This is an example of a line-wrapped, filled label. " \
"It should be taking "\
@ -82,7 +82,7 @@ int main( int argc,
gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
gtk_container_add (GTK_CONTAINER (frame), label);
gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0);
frame = gtk_frame_new ("Underlined label");
label = gtk_label_new ("This label is underlined!\n"
"This one is underlined in quite a funky fashion");
@ -91,10 +91,10 @@ int main( int argc,
"_________________________ _ _________ _ ______ __ _______ ___");
gtk_container_add (GTK_CONTAINER (frame), label);
gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0);
gtk_widget_show_all (window);
gtk_main ();
return 0;
}

View file

@ -79,15 +79,15 @@ static gboolean popup_cb( GtkWidget *widget,
GtkWidget *menu )
{
GdkEventButton *bevent = (GdkEventButton *)event;
/* Only take button presses */
if (event->type != GDK_BUTTON_PRESS)
return FALSE;
/* Show the menu */
gtk_menu_popup (GTK_MENU(menu), NULL, NULL,
NULL, NULL, bevent->button, bevent->time);
return TRUE;
}
@ -97,13 +97,13 @@ GtkWidget *get_popup_menu( void )
{
GtkItemFactory *item_factory;
GtkWidget *button, *menu;
/* Same as before but don't bother with the accelerators */
item_factory = gtk_item_factory_new (GTK_TYPE_MENU, "<main>",
NULL);
gtk_item_factory_create_items (item_factory, nmenu_items, menu_items, NULL);
menu = gtk_item_factory_get_widget (item_factory, "<main>");
/* Make a button to activate the popup menu */
button = gtk_button_new_with_label ("Popup");
/* Make the menu popup when clicked */
@ -120,7 +120,7 @@ GtkWidget *get_option_menu( void )
{
GtkItemFactory *item_factory;
GtkWidget *option_menu;
/* Same again, not bothering with the accelerators */
item_factory = gtk_item_factory_new (GTK_TYPE_OPTION_MENU, "<main>",
NULL);
@ -137,10 +137,10 @@ int main( int argc,
GtkWidget *window;
GtkWidget *main_vbox;
GtkWidget *menubar, *option_menu, *popup_button;
/* Initialize GTK */
gtk_init (&argc, &argv);
/* Make a window */
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
g_signal_connect (G_OBJECT (window), "destroy",
@ -148,19 +148,19 @@ int main( int argc,
NULL);
gtk_window_set_title (GTK_WINDOW(window), "Item Factory");
gtk_widget_set_size_request (GTK_WIDGET(window), 300, 200);
/* Make a vbox to put the three menus in */
main_vbox = gtk_vbox_new (FALSE, 1);
gtk_container_set_border_width (GTK_CONTAINER (main_vbox), 1);
gtk_container_add (GTK_CONTAINER (window), main_vbox);
/* Get the three types of menu */
/* Note: all three menus are separately created, so they are not the
same menu */
menubar = get_menubar_menu (window);
popup_button = get_popup_menu ();
option_menu = get_option_menu ();
/* Pack it all together */
gtk_box_pack_start (GTK_BOX (main_vbox), menubar, FALSE, TRUE, 0);
gtk_box_pack_end (GTK_BOX (main_vbox), popup_button, FALSE, TRUE, 0);
@ -168,9 +168,9 @@ int main( int argc,
/* Show the widgets */
gtk_widget_show_all (window);
/* Finished! */
gtk_main ();
return 0;
}

View file

@ -1,7 +1,7 @@
#include <stdio.h>
#include <gtk/gtk.h>
/* Create the list of "messages" */
static GtkWidget *create_list( void )
{
@ -14,44 +14,44 @@ static GtkWidget *create_list( void )
GtkTreeViewColumn *column;
int i;
/* Create a new scrolled window, with scrollbars only if needed */
scrolled_window = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
GTK_POLICY_AUTOMATIC,
GTK_POLICY_AUTOMATIC,
GTK_POLICY_AUTOMATIC);
model = gtk_list_store_new (1, G_TYPE_STRING);
tree_view = gtk_tree_view_new ();
gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolled_window),
gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolled_window),
tree_view);
gtk_tree_view_set_model (GTK_TREE_VIEW (tree_view), GTK_TREE_MODEL (model));
gtk_widget_show (tree_view);
/* Add some messages to the window */
for (i = 0; i < 10; i++) {
gchar *msg = g_strdup_printf ("Message #%d", i);
gtk_list_store_append (GTK_LIST_STORE (model), &iter);
gtk_list_store_set (GTK_LIST_STORE (model),
gtk_list_store_set (GTK_LIST_STORE (model),
&iter,
0, msg,
-1);
g_free (msg);
}
cell = gtk_cell_renderer_text_new ();
column = gtk_tree_view_column_new_with_attributes ("Messages",
cell,
"text", 0,
NULL);
gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view),
GTK_TREE_VIEW_COLUMN (column));
return scrolled_window;
}
/* Add some text to our text widget - this is a callback that is invoked
when our window is realized. We could also force our window to be
realized with gtk_widget_realize, but it would have to be part of
@ -60,10 +60,10 @@ a hierarchy first */
static void insert_text( GtkTextBuffer *buffer )
{
GtkTextIter iter;
gtk_text_buffer_get_iter_at_offset (buffer, &iter, 0);
gtk_text_buffer_insert (buffer, &iter,
gtk_text_buffer_insert (buffer, &iter,
"From: pathfinder@nasa.gov\n"
"To: mom@nasa.gov\n"
"Subject: Made it!\n"
@ -73,7 +73,7 @@ static void insert_text( GtkTextBuffer *buffer )
"Sojourner says hi. See you soon.\n"
" -Path\n", -1);
}
/* Create a scrolled text area that displays a "message" */
static GtkWidget *create_text( void )
{
@ -96,7 +96,7 @@ static GtkWidget *create_text( void )
return scrolled_window;
}
int main( int argc,
char *argv[] )
{
@ -106,7 +106,7 @@ int main( int argc,
GtkWidget *text;
gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "Paned Windows");
g_signal_connect (G_OBJECT (window), "destroy",
@ -115,17 +115,17 @@ int main( int argc,
gtk_widget_set_size_request (GTK_WIDGET (window), 450, 400);
/* create a vpaned widget and add it to our toplevel window */
vpaned = gtk_vpaned_new ();
gtk_container_add (GTK_CONTAINER (window), vpaned);
gtk_widget_show (vpaned);
/* Now create the contents of the two halves of the window */
list = create_list ();
gtk_paned_add1 (GTK_PANED (vpaned), list);
gtk_widget_show (list);
text = create_text ();
gtk_paned_add2 (GTK_PANED (vpaned), text);
gtk_widget_show (text);

View file

@ -14,38 +14,38 @@ static gboolean progress_timeout( gpointer data )
{
ProgressData *pdata = (ProgressData *)data;
gdouble new_val;
if (pdata->activity_mode)
if (pdata->activity_mode)
gtk_progress_bar_pulse (GTK_PROGRESS_BAR (pdata->pbar));
else
else
{
/* Calculate the value of the progress bar using the
* value range set in the adjustment object */
new_val = gtk_progress_bar_get_fraction (GTK_PROGRESS_BAR (pdata->pbar)) + 0.01;
if (new_val > 1.0)
new_val = 0.0;
/* Set the new value */
gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (pdata->pbar), new_val);
}
/* As this is a timeout function, return TRUE so that it
* continues to get called */
return TRUE;
}
}
/* Callback that toggles the text display within the progress bar trough */
static void toggle_show_text( GtkWidget *widget,
ProgressData *pdata )
{
const gchar *text;
text = gtk_progress_bar_get_text (GTK_PROGRESS_BAR (pdata->pbar));
if (text && *text)
gtk_progress_bar_set_text (GTK_PROGRESS_BAR (pdata->pbar), "");
else
else
gtk_progress_bar_set_text (GTK_PROGRESS_BAR (pdata->pbar), "some text");
}
@ -54,24 +54,24 @@ static void toggle_activity_mode( GtkWidget *widget,
ProgressData *pdata )
{
pdata->activity_mode = !pdata->activity_mode;
if (pdata->activity_mode)
if (pdata->activity_mode)
gtk_progress_bar_pulse (GTK_PROGRESS_BAR (pdata->pbar));
else
gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (pdata->pbar), 0.0);
}
/* Callback that toggles the orientation of the progress bar */
static void toggle_orientation( GtkWidget *widget,
ProgressData *pdata )
{
switch (gtk_progress_bar_get_orientation (GTK_PROGRESS_BAR (pdata->pbar))) {
case GTK_PROGRESS_LEFT_TO_RIGHT:
gtk_progress_bar_set_orientation (GTK_PROGRESS_BAR (pdata->pbar),
gtk_progress_bar_set_orientation (GTK_PROGRESS_BAR (pdata->pbar),
GTK_PROGRESS_RIGHT_TO_LEFT);
break;
case GTK_PROGRESS_RIGHT_TO_LEFT:
gtk_progress_bar_set_orientation (GTK_PROGRESS_BAR (pdata->pbar),
gtk_progress_bar_set_orientation (GTK_PROGRESS_BAR (pdata->pbar),
GTK_PROGRESS_LEFT_TO_RIGHT);
break;
default:;
@ -79,7 +79,7 @@ static void toggle_orientation( GtkWidget *widget,
}
}
/* Clean up allocated memory and remove the timer */
static void destroy_progress( GtkWidget *widget,
ProgressData *pdata)
@ -106,7 +106,7 @@ int main( int argc,
/* Allocate memory for the data that is passed to the callbacks */
pdata = g_malloc (sizeof (ProgressData));
pdata->window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_resizable (GTK_WINDOW (pdata->window), TRUE);
@ -120,7 +120,7 @@ int main( int argc,
gtk_container_set_border_width (GTK_CONTAINER (vbox), 10);
gtk_container_add (GTK_CONTAINER (pdata->window), vbox);
gtk_widget_show (vbox);
/* Create a centering alignment object */
align = gtk_alignment_new (0.5, 0.5, 0, 0);
gtk_box_pack_start (GTK_BOX (vbox), align, FALSE, FALSE, 5);
@ -193,6 +193,6 @@ int main( int argc,
gtk_widget_show (pdata->window);
gtk_main ();
return 0;
}

View file

@ -75,7 +75,7 @@ static void draw_brush( GtkWidget *widget,
TRUE,
update_rect.x, update_rect.y,
update_rect.width, update_rect.height);
gtk_widget_queue_draw_area (widget,
gtk_widget_queue_draw_area (widget,
update_rect.x, update_rect.y,
update_rect.width, update_rect.height);
}
@ -103,10 +103,10 @@ static gboolean motion_notify_event( GtkWidget *widget,
y = event->y;
state = event->state;
}
if (state & GDK_BUTTON1_MASK && pixmap != NULL)
draw_brush (widget, x, y);
return TRUE;
}
@ -115,7 +115,7 @@ void quit ()
exit (0);
}
int main( int argc,
int main( int argc,
char *argv[] )
{
GtkWidget *window;

View file

@ -89,7 +89,7 @@ draw_brush (GtkWidget *widget, GdkInputSource source,
gdk_draw_rectangle (pixmap, gc, TRUE,
update_rect.x, update_rect.y,
update_rect.width, update_rect.height);
gtk_widget_queue_draw_area (widget,
gtk_widget_queue_draw_area (widget,
update_rect.x, update_rect.y,
update_rect.width, update_rect.height);
}
@ -104,7 +104,7 @@ static gboolean
button_press_event (GtkWidget *widget, GdkEventButton *event)
{
print_button_press (event->device);
if (event->button == 1 && pixmap != NULL) {
gdouble pressure;
gdk_event_get_axis ((GdkEvent *)event, GDK_AXIS_PRESSURE, &pressure);
@ -121,7 +121,7 @@ motion_notify_event (GtkWidget *widget, GdkEventMotion *event)
gdouble pressure;
GdkModifierType state;
if (event->is_hint)
if (event->is_hint)
{
gdk_device_get_state (event->device, event->window, NULL, &state);
gdk_event_get_axis ((GdkEvent *)event, GDK_AXIS_X, &x);
@ -135,10 +135,10 @@ motion_notify_event (GtkWidget *widget, GdkEventMotion *event)
gdk_event_get_axis ((GdkEvent *)event, GDK_AXIS_PRESSURE, &pressure);
state = event->state;
}
if (state & GDK_BUTTON1_MASK && pixmap != NULL)
draw_brush (widget, event->device->source, x, y, pressure);
return TRUE;
}

View file

@ -17,9 +17,9 @@ int main( int argc,
GtkWidget *button;
char buffer[32];
int i, j;
gtk_init (&argc, &argv);
/* Create a new dialog window for the scrolled window to be
* packed into. */
window = gtk_dialog_new ();
@ -28,36 +28,36 @@ int main( int argc,
gtk_window_set_title (GTK_WINDOW (window), "GtkScrolledWindow example");
gtk_container_set_border_width (GTK_CONTAINER (window), 0);
gtk_widget_set_size_request (window, 300, 300);
/* create a new scrolled window. */
scrolled_window = gtk_scrolled_window_new (NULL, NULL);
gtk_container_set_border_width (GTK_CONTAINER (scrolled_window), 10);
/* the policy is one of GTK_POLICY AUTOMATIC, or GTK_POLICY_ALWAYS.
* GTK_POLICY_AUTOMATIC will automatically decide whether you need
* scrollbars, whereas GTK_POLICY_ALWAYS will always leave the scrollbars
* there. The first one is the horizontal scrollbar, the second,
* there. The first one is the horizontal scrollbar, the second,
* the vertical. */
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
/* The dialog window is created with a vbox packed into it. */
gtk_box_pack_start (GTK_BOX (GTK_DIALOG(window)->vbox), scrolled_window,
/* The dialog window is created with a vbox packed into it. */
gtk_box_pack_start (GTK_BOX (GTK_DIALOG(window)->vbox), scrolled_window,
TRUE, TRUE, 0);
gtk_widget_show (scrolled_window);
/* create a table of 10 by 10 squares. */
table = gtk_table_new (10, 10, FALSE);
/* set the spacing to 10 on x and 10 on y */
gtk_table_set_row_spacings (GTK_TABLE (table), 10);
gtk_table_set_col_spacings (GTK_TABLE (table), 10);
/* pack the table into the scrolled window */
gtk_scrolled_window_add_with_viewport (
GTK_SCROLLED_WINDOW (scrolled_window), table);
gtk_widget_show (table);
/* this simply creates a grid of toggle buttons on the table
* to demonstrate the scrolled window. */
for (i = 0; i < 10; i++)
@ -68,26 +68,26 @@ int main( int argc,
i, i+1, j, j+1);
gtk_widget_show (button);
}
/* Add a "close" button to the bottom of the dialog */
button = gtk_button_new_with_label ("close");
g_signal_connect_swapped (G_OBJECT (button), "clicked",
G_CALLBACK (gtk_widget_destroy),
G_OBJECT (window));
/* this makes it so the button is the default. */
gtk_widget_set_can_default (button, TRUE);
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (window)->action_area), button, TRUE, TRUE, 0);
/* This grabs this button to be the default button. Simply hitting
* the "Enter" key will cause this button to activate. */
gtk_widget_grab_default (button);
gtk_widget_show (button);
gtk_widget_show (window);
gtk_main();
return 0;
}

View file

@ -44,34 +44,34 @@ int main( int argc,
FILE *infile;
gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_widget_set_size_request (window, 600, 500);
gtk_window_set_policy (GTK_WINDOW (window), TRUE, TRUE, FALSE);
gtk_window_set_policy (GTK_WINDOW (window), TRUE, TRUE, FALSE);
g_signal_connect (G_OBJECT (window), "destroy",
G_CALLBACK (close_application),
NULL);
gtk_window_set_title (GTK_WINDOW (window), "Text Widget Example");
gtk_container_set_border_width (GTK_CONTAINER (window), 0);
box1 = gtk_vbox_new (FALSE, 0);
gtk_container_add (GTK_CONTAINER (window), box1);
gtk_widget_show (box1);
box2 = gtk_vbox_new (FALSE, 10);
gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
gtk_box_pack_start (GTK_BOX (box1), box2, TRUE, TRUE, 0);
gtk_widget_show (box2);
table = gtk_table_new (2, 2, FALSE);
gtk_table_set_row_spacing (GTK_TABLE (table), 0, 2);
gtk_table_set_col_spacing (GTK_TABLE (table), 0, 2);
gtk_box_pack_start (GTK_BOX (box2), table, TRUE, TRUE, 0);
gtk_widget_show (table);
/* Create the GtkText widget */
text = gtk_text_new (NULL, NULL);
gtk_text_set_editable (GTK_TEXT (text), TRUE);
@ -104,7 +104,7 @@ int main( int argc,
/* Freeze the text widget, ready for multiple updates */
gtk_text_freeze (GTK_TEXT (text));
/* Insert some colored text */
gtk_text_insert (GTK_TEXT (text), NULL, &text->style->black, NULL,
"Supports ", -1);
@ -114,31 +114,31 @@ int main( int argc,
"text and different ", -1);
gtk_text_insert (GTK_TEXT (text), fixed_font, &text->style->black, NULL,
"fonts\n\n", -1);
/* Load the file text.c into the text window */
infile = fopen ("text.c", "r");
if (infile) {
char buffer[1024];
int nchars;
while (1)
{
nchars = fread (buffer, 1, 1024, infile);
gtk_text_insert (GTK_TEXT (text), fixed_font, NULL,
NULL, buffer, nchars);
if (nchars < 1024)
break;
}
fclose (infile);
}
/* Thaw the text widget, allowing the updates to become visible */
/* Thaw the text widget, allowing the updates to become visible */
gtk_text_thaw (GTK_TEXT (text));
hbox = gtk_hbutton_box_new ();
gtk_box_pack_start (GTK_BOX (box2), hbox, FALSE, FALSE, 0);
gtk_widget_show (hbox);
@ -164,7 +164,7 @@ int main( int argc,
gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, TRUE, 0);
gtk_widget_show (box2);
button = gtk_button_new_with_label ("close");
g_signal_connect (G_OBJECT (button), "clicked",
G_CALLBACK (close_application),
@ -177,6 +177,6 @@ int main( int argc,
gtk_widget_show (window);
gtk_main ();
return 0;
return 0;
}

View file

@ -62,13 +62,13 @@ tictactoe_get_type (void)
static void
tictactoe_class_init (TictactoeClass *klass)
{
tictactoe_signals[TICTACTOE_SIGNAL] = g_signal_new ("tictactoe",
G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION,
G_STRUCT_OFFSET (TictactoeClass, tictactoe),
NULL,
NULL,
NULL,
NULL,
g_cclosure_marshal_VOID__VOID,
G_TYPE_NONE, 0);
@ -79,14 +79,14 @@ static void
tictactoe_init (Tictactoe *ttt)
{
gint i,j;
gtk_table_resize (GTK_TABLE (ttt), 3, 3);
gtk_table_set_homogeneous (GTK_TABLE (ttt), TRUE);
for (i=0;i<3; i++)
for (j=0;j<3; j++) {
ttt->buttons[i][j] = gtk_toggle_button_new ();
gtk_table_attach_defaults (GTK_TABLE (ttt), ttt->buttons[i][j],
gtk_table_attach_defaults (GTK_TABLE (ttt), ttt->buttons[i][j],
i, i+1, j, j+1);
g_signal_connect (G_OBJECT (ttt->buttons[i][j]), "toggled",
G_CALLBACK (tictactoe_toggle), (gpointer) ttt);
@ -101,7 +101,7 @@ tictactoe_new ()
return GTK_WIDGET (g_object_new (tictactoe_get_type (), NULL));
}
void
void
tictactoe_clear (Tictactoe *ttt)
{
int i,j;
@ -109,7 +109,7 @@ tictactoe_clear (Tictactoe *ttt)
for (i = 0; i<3; i++)
for (j = 0; j<3; j++)
{
g_signal_handlers_block_matched (G_OBJECT (ttt->buttons[i][j]),
g_signal_handlers_block_matched (G_OBJECT (ttt->buttons[i][j]),
G_SIGNAL_MATCH_DATA,
0, 0, NULL, NULL, ttt);
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (ttt->buttons[i][j]),
@ -141,15 +141,15 @@ tictactoe_toggle (GtkWidget *widget, Tictactoe *ttt)
for (i = 0; i<3; i++)
{
success = success &&
success = success &&
GTK_TOGGLE_BUTTON (ttt->buttons[rwins[k][i]][cwins[k][i]])->active;
found = found ||
ttt->buttons[rwins[k][i]][cwins[k][i]] == widget;
}
if (success && found)
{
g_signal_emit (G_OBJECT (ttt),
g_signal_emit (G_OBJECT (ttt),
tictactoe_signals[TICTACTOE_SIGNAL], 0);
break;
}

View file

@ -40,7 +40,7 @@ typedef struct _TictactoeClass TictactoeClass;
struct _Tictactoe
{
GtkTable table;
GtkWidget *buttons[3][3];
};

View file

@ -15,20 +15,20 @@ int main( int argc,
{
GtkWidget *window;
GtkWidget *ttt;
gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "Aspect Frame");
g_signal_connect (G_OBJECT (window), "destroy",
G_CALLBACK (exit), NULL);
gtk_container_set_border_width (GTK_CONTAINER (window), 10);
ttt = tictactoe_new ();
gtk_container_add (GTK_CONTAINER (window), ttt);
gtk_widget_show (ttt);
@ -37,9 +37,9 @@ int main( int argc,
G_CALLBACK (win), NULL);
gtk_widget_show (window);
gtk_main ();
return 0;
}

View file

@ -41,7 +41,7 @@ static void cb_select_child (GtkWidget *root_tree, GtkWidget *child,
static void cb_selection_changed( GtkWidget *tree )
{
GList *i;
g_print ("selection_change called for tree %p\n", tree);
g_print ("selected objects are:\n");
@ -85,7 +85,7 @@ int main( int argc,
gtk_widget_set_size_request (scrolled_win, 150, 200);
gtk_container_add (GTK_CONTAINER (window), scrolled_win);
gtk_widget_show (scrolled_win);
/* Create the root tree */
tree = gtk_tree_new ();
g_print ("root tree is %p\n", tree);
@ -132,13 +132,13 @@ int main( int argc,
subtree);
/* This is still necessary if you want these signals to be called
for the subtree's children. Note that selection_change will be
for the subtree's children. Note that selection_change will be
signalled for the root tree regardless. */
g_signal_connect (G_OBJECT (subtree), "select_child",
G_CALLBACK (cb_select_child), subtree);
g_signal_connect (G_OBJECT (subtree), "unselect_child",
G_CALLBACK (cb_unselect_child), subtree);
/* This has absolutely no effect, because it is completely ignored
/* This has absolutely no effect, because it is completely ignored
in subtrees */
gtk_tree_set_selection_mode (GTK_TREE (subtree),
GTK_SELECTION_SINGLE);

View file

@ -137,7 +137,7 @@ int main (int argc,
GdkBitmap *mask;
GtkStyle *style;
GdkGC *gc;
/* Create the main window, and attach delete_event signal to terminate
* the application. Note that the main window will not have a titlebar
* since we're making it a popup. */
@ -165,10 +165,10 @@ int main (int argc,
/* This masks out everything except for the image itself */
gtk_widget_shape_combine_mask (window, mask, 0, 0);
/* show the window */
gtk_widget_show (window);
gtk_main ();
return 0;
}

View file

@ -6,6 +6,6 @@ includedir=@includedir@
Name: Gail
Description: GNOME Accessibility Implementation Library
Version: @VERSION@
Requires: atk gtk+-2.0
Requires: atk gtk+-2.0
Libs: ${pc_top_builddir}/${pcfiledir}/modules/other/gail/libgail.la ${pc_top_builddir}/${pcfiledir}/modules/other/gail/libgail-util/libgailutil.la
Cflags: -I${pc_top_builddir}/${pcfiledir}/modules/other/gail

View file

@ -366,7 +366,7 @@ gdkenumtypes.c: @REBUILD@ $(gdk_public_h_sources) gdkenumtypes.c.template
&& cp xgen-getc gdkenumtypes.c \
&& rm -f xgen-getc
#
#
# Marshaller generation
#
gdkmarshalers.h: @REBUILD@ gdkmarshalers.list

View file

@ -11,10 +11,10 @@ AM_CPPFLAGS = \
-I$(top_builddir)/gdk \
-DG_DISABLE_DEPRECATED \
@GTK_DEBUG_FLAGS@ \
@GDK_DEP_CFLAGS@
@GDK_DEP_CFLAGS@
LDADDS = \
@GDK_DEP_LIBS@
@GDK_DEP_LIBS@
noinst_LTLIBRARIES = libgdk-directfb.la
@ -55,6 +55,6 @@ libgdkinclude_HEADERS = \
gdkprivate-directfb.h
EXTRA_DIST += AUTHORS README TODO
EXTRA_DIST += AUTHORS README TODO
-include $(top_srcdir)/git.mk

View file

@ -1201,14 +1201,14 @@ gdk_directfb_draw_pixbuf (GdkDrawable *drawable,
GdkDrawableImplDirectFB *impl = GDK_DRAWABLE_IMPL_DIRECTFB (drawable);
g_return_if_fail (GDK_IS_PIXBUF (pixbuf));
pb_n_channels = gdk_pixbuf_get_n_channels (pixbuf);
pb_bits_per_sample = gdk_pixbuf_get_bits_per_sample (pixbuf);
g_return_if_fail (gdk_pixbuf_get_colorspace (pixbuf) == GDK_COLORSPACE_RGB);
g_return_if_fail (pb_n_channels == 3 || pb_n_channels == 4);
g_return_if_fail (pb_bits_per_sample == 8);
g_return_if_fail (drawable != NULL);
pb_width = gdk_pixbuf_get_width (pixbuf);
@ -1216,11 +1216,11 @@ gdk_directfb_draw_pixbuf (GdkDrawable *drawable,
pb_pixels = gdk_pixbuf_get_pixels (pixbuf);
pb_rowstride = gdk_pixbuf_get_rowstride (pixbuf);
if (width == -1)
if (width == -1)
width = pb_width;
if (height == -1)
height = pb_height;
g_return_if_fail (width >= 0 && height >= 0);
g_return_if_fail (src_x >= 0 && src_x + width <= pb_width);
g_return_if_fail (src_y >= 0 && src_y + height <= pb_height);
@ -1422,7 +1422,7 @@ gdk_directfb_draw_pixbuf (GdkDrawable *drawable,
pb_pixels = gdk_pixbuf_get_pixels (pixbuf);
pb_rowstride = gdk_pixbuf_get_rowstride (pixbuf);
}
if (pb_n_channels == 4)
{
guchar *buf = pb_pixels + src_y * pb_rowstride + src_x * 4;

View file

@ -62,9 +62,9 @@ void
_gdk_init_input_core (void)
{
GdkDisplay *display = GDK_DISPLAY_OBJECT (_gdk_display);
_gdk_core_pointer = g_object_new (GDK_TYPE_DEVICE, NULL);
_gdk_core_pointer->name = "Core Pointer";
_gdk_core_pointer->source = GDK_SOURCE_MOUSE;
_gdk_core_pointer->mode = GDK_MODE_SCREEN;

View file

@ -21,7 +21,7 @@
* Modified by the GTK+ Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GTK+ Team. See the ChangeLog
* files for a list of changes. These files are distributed with
* GTK+ at ftp://ftp.gtk.org/pub/gtk/.
* GTK+ at ftp://ftp.gtk.org/pub/gtk/.
*/
#include "config.h"
@ -98,7 +98,7 @@ gdk_arg_debug_cb (const char *key, const char *value, gpointer user_data, GError
if (debug_value == 0 && value != NULL && strcmp (value, "") != 0)
{
g_set_error (error,
g_set_error (error,
G_OPTION_ERROR, G_OPTION_ERROR_FAILED,
_("Error parsing option --gdk-debug"));
return FALSE;
@ -118,7 +118,7 @@ gdk_arg_no_debug_cb (const char *key, const char *value, gpointer user_data, GEr
if (debug_value == 0 && value != NULL && strcmp (value, "") != 0)
{
g_set_error (error,
g_set_error (error,
G_OPTION_ERROR, G_OPTION_ERROR_FAILED,
_("Error parsing option --gdk-no-debug"));
return FALSE;
@ -160,20 +160,20 @@ static const GOptionEntry gdk_args[] = {
/* Description of --screen=SCREEN in --help output */ N_("X screen to use"),
/* Placeholder in --screen=SCREEN in --help output */ N_("SCREEN") },
#ifdef G_ENABLE_DEBUG
{ "gdk-debug", 0, 0, G_OPTION_ARG_CALLBACK, gdk_arg_debug_cb,
{ "gdk-debug", 0, 0, G_OPTION_ARG_CALLBACK, gdk_arg_debug_cb,
/* Description of --gdk-debug=FLAGS in --help output */ N_("GDK debugging flags to set"),
/* Placeholder in --gdk-debug=FLAGS in --help output */ N_("FLAGS") },
{ "gdk-no-debug", 0, 0, G_OPTION_ARG_CALLBACK, gdk_arg_no_debug_cb,
{ "gdk-no-debug", 0, 0, G_OPTION_ARG_CALLBACK, gdk_arg_no_debug_cb,
/* Description of --gdk-no-debug=FLAGS in --help output */ N_("GDK debugging flags to unset"),
/* Placeholder in --gdk-no-debug=FLAGS in --help output */ N_("FLAGS") },
#endif
#endif
{ NULL }
};
/**
* gdk_add_option_entries_libgtk_only:
* @group: An option group.
*
*
* Appends gdk option entries to the passed in option group. This is
* not public API and must not be used by applications.
**/
@ -195,7 +195,7 @@ gdk_pre_parse_libgtk_only (void)
gdk_progclass = g_strdup (g_get_prgname ());
if (gdk_progclass && gdk_progclass[0])
gdk_progclass[0] = g_ascii_toupper (gdk_progclass[0]);
#ifdef G_ENABLE_DEBUG
{
gchar *debug_string = getenv("GDK_DEBUG");
@ -216,15 +216,15 @@ gdk_pre_parse_libgtk_only (void)
/* Do any setup particular to the windowing system
*/
_gdk_windowing_init ();
_gdk_windowing_init ();
}
/**
* gdk_parse_args:
* @argc: the number of command line arguments.
* @argv: (inout) (array length=argc): the array of command line arguments.
*
*
* Parse command line arguments, and store for future
* use by calls to gdk_display_open().
*
@ -248,13 +248,13 @@ gdk_parse_args (int *argc,
return;
gdk_pre_parse_libgtk_only ();
option_context = g_option_context_new (NULL);
g_option_context_set_ignore_unknown_options (option_context, TRUE);
g_option_context_set_help_enabled (option_context, FALSE);
option_group = g_option_group_new (NULL, NULL, NULL, NULL, NULL);
g_option_context_set_main_group (option_context, option_group);
g_option_group_add_entries (option_group, gdk_args);
g_option_group_add_entries (option_group, _gdk_windowing_args);
@ -271,7 +271,7 @@ gdk_parse_args (int *argc,
GDK_NOTE (MISC, g_message ("progname: \"%s\"", g_get_prgname ()));
}
/**
/**
* gdk_get_display_arg_name:
*
* Gets the display name specified in the command line arguments passed
@ -298,13 +298,13 @@ gdk_get_display_arg_name (void)
/**
* gdk_display_open_default_libgtk_only:
*
*
* Opens the default display specified by command line arguments or
* environment variables, sets it as the default display, and returns
* it. gdk_parse_args must have been called first. If the default
* display has previously been set, simply returns that. An internal
* function that should not be used by applications.
*
*
* Return value: the default display, if it could be opened,
* otherwise %NULL.
**/
@ -314,7 +314,7 @@ gdk_display_open_default_libgtk_only (void)
GdkDisplay *display;
g_return_val_if_fail (gdk_initialized, NULL);
display = gdk_display_get_default ();
if (display)
return display;
@ -325,14 +325,14 @@ gdk_display_open_default_libgtk_only (void)
{
g_free (_gdk_display_arg_name);
_gdk_display_arg_name = g_strdup (_gdk_display_name);
display = gdk_display_open (_gdk_display_name);
}
if (display)
gdk_display_manager_set_default_display (gdk_display_manager_get (),
display);
return display;
}
@ -459,7 +459,7 @@ gdk_threads_impl_unlock (void)
/**
* gdk_threads_init:
*
*
* Initializes GDK so that it can be used from multiple threads
* in conjunction with gdk_threads_enter() and gdk_threads_leave().
* g_thread_init() must be called previous to this function.
@ -560,7 +560,7 @@ gdk_threads_dispatch_free (gpointer data)
* removed from the list of event sources and will not be called again.
*
* This variant of g_idle_add_full() calls @function with the GDK lock
* held. It can be thought of a MT-safe version for GTK+ widgets for the
* held. It can be thought of a MT-safe version for GTK+ widgets for the
* following use case, where you have to worry about idle_callback()
* running in thread A and accessing @self after it has been finalized
* in thread B:
@ -627,13 +627,13 @@ gdk_threads_add_idle_full (gint priority,
* @function: function to call
* @data: data to pass to @function
*
* A wrapper for the common usage of gdk_threads_add_idle_full()
* A wrapper for the common usage of gdk_threads_add_idle_full()
* assigning the default priority, #G_PRIORITY_DEFAULT_IDLE.
*
* See gdk_threads_add_idle_full().
*
* Return value: the ID (greater than 0) of the event source.
*
*
* Since: 2.12
*/
guint
@ -656,8 +656,8 @@ gdk_threads_add_idle (GSourceFunc function,
* @notify: (allow-none): function to call when the timeout is removed, or %NULL
*
* Sets a function to be called at regular intervals holding the GDK lock,
* with the given priority. The function is called repeatedly until it
* returns %FALSE, at which point the timeout is automatically destroyed
* with the given priority. The function is called repeatedly until it
* returns %FALSE, at which point the timeout is automatically destroyed
* and the function will not be called again. The @notify function is
* called when the timeout is destroyed. The first call to the
* function will be at the end of the first @interval.
@ -668,39 +668,39 @@ gdk_threads_add_idle (GSourceFunc function,
* timeout is recalculated based on the current time and the given interval
* (it does not try to 'catch up' time lost in delays).
*
* This variant of g_timeout_add_full() can be thought of a MT-safe version
* This variant of g_timeout_add_full() can be thought of a MT-safe version
* for GTK+ widgets for the following use case:
*
* |[
* static gboolean timeout_callback (gpointer data)
* {
* SomeWidget *self = data;
*
*
* /&ast; do stuff with self &ast;/
*
*
* self->timeout_id = 0;
*
*
* return FALSE;
* }
*
*
* static void some_widget_do_stuff_later (SomeWidget *self)
* {
* self->timeout_id = g_timeout_add (timeout_callback, self)
* }
*
*
* static void some_widget_finalize (GObject *object)
* {
* SomeWidget *self = SOME_WIDGET (object);
*
*
* if (self->timeout_id)
* g_source_remove (self->timeout_id);
*
*
* G_OBJECT_CLASS (parent_class)->finalize (object);
* }
* ]|
*
* Return value: the ID (greater than 0) of the event source.
*
*
* Since: 2.12
*/
guint
@ -719,10 +719,10 @@ gdk_threads_add_timeout_full (gint priority,
dispatch->data = data;
dispatch->destroy = notify;
return g_timeout_add_full (priority,
return g_timeout_add_full (priority,
interval,
gdk_threads_dispatch,
dispatch,
gdk_threads_dispatch,
dispatch,
gdk_threads_dispatch_free);
}
@ -733,11 +733,11 @@ gdk_threads_add_timeout_full (gint priority,
* @function: function to call
* @data: data to pass to @function
*
* A wrapper for the common usage of gdk_threads_add_timeout_full()
* A wrapper for the common usage of gdk_threads_add_timeout_full()
* assigning the default priority, #G_PRIORITY_DEFAULT.
*
* See gdk_threads_add_timeout_full().
*
*
* Return value: the ID (greater than 0) of the event source.
*
* Since: 2.12
@ -766,7 +766,7 @@ gdk_threads_add_timeout (guint interval,
* a good idea to use this function if you don't need finer granularity.
*
* Return value: the ID (greater than 0) of the event source.
*
*
* Since: 2.14
*/
guint
@ -785,10 +785,10 @@ gdk_threads_add_timeout_seconds_full (gint priority,
dispatch->data = data;
dispatch->destroy = notify;
return g_timeout_add_seconds_full (priority,
return g_timeout_add_seconds_full (priority,
interval,
gdk_threads_dispatch,
dispatch,
gdk_threads_dispatch,
dispatch,
gdk_threads_dispatch_free);
}
@ -798,11 +798,11 @@ gdk_threads_add_timeout_seconds_full (gint priority,
* @function: function to call
* @data: data to pass to @function
*
* A wrapper for the common usage of gdk_threads_add_timeout_seconds_full()
* A wrapper for the common usage of gdk_threads_add_timeout_seconds_full()
* assigning the default priority, #G_PRIORITY_DEFAULT.
*
* For details, see gdk_threads_add_timeout_full().
*
*
* Return value: the ID (greater than 0) of the event source.
*
* Since: 2.14

View file

@ -159,7 +159,7 @@ GType gdk_rectangle_get_type (void) G_GNUC_CONST;
#define GDK_TYPE_RECTANGLE (gdk_rectangle_get_type ())
/* Conversion functions between wide char and multibyte strings.
/* Conversion functions between wide char and multibyte strings.
*/
#ifndef GDK_DISABLE_DEPRECATED
gchar *gdk_wcstombs (const GdkWChar *src);

View file

@ -167,12 +167,12 @@ gdk_app_launch_context_set_screen (GdkAppLaunchContext *context,
* @desktop: the number of a workspace, or -1
*
* Sets the workspace on which applications will be launched when
* using this context when running under a window manager that
* supports multiple workspaces, as described in the
* <ulink url="http://www.freedesktop.org/Standards/wm-spec">Extended
* Window Manager Hints</ulink>.
* using this context when running under a window manager that
* supports multiple workspaces, as described in the
* <ulink url="http://www.freedesktop.org/Standards/wm-spec">Extended
* Window Manager Hints</ulink>.
*
* When the workspace is not specified or @desktop is set to -1,
* When the workspace is not specified or @desktop is set to -1,
* it is up to the window manager to pick one, typically it will
* be the current workspace.
*
@ -193,7 +193,7 @@ gdk_app_launch_context_set_desktop (GdkAppLaunchContext *context,
* @timestamp: a timestamp
*
* Sets the timestamp of @context. The timestamp should ideally
* be taken from the event that triggered the launch.
* be taken from the event that triggered the launch.
*
* Window managers can use this information to avoid moving the
* focus to the newly launched application when the user is busy
@ -248,15 +248,15 @@ gdk_app_launch_context_set_icon (GdkAppLaunchContext *context,
* @context: a #GdkAppLaunchContext
* @icon_name: (allow-none): an icon name, or %NULL
*
* Sets the icon for applications that are launched with this context.
* The @icon_name will be interpreted in the same way as the Icon field
* in desktop files. See also gdk_app_launch_context_set_icon().
* Sets the icon for applications that are launched with this context.
* The @icon_name will be interpreted in the same way as the Icon field
* in desktop files. See also gdk_app_launch_context_set_icon().
*
* If both @icon and @icon_name are set, the @icon_name takes priority.
* If neither @icon or @icon_name is set, the icon is taken from either
* the file that is passed to launched application or from the #GAppInfo
* If neither @icon or @icon_name is set, the icon is taken from either
* the file that is passed to launched application or from the #GAppInfo
* for the launched application itself.
*
*
* Since: 2.14
*/
void

View file

@ -1,5 +1,5 @@
/* GDK - The GIMP Drawing Kit
* Copyright (C) 2005 Red Hat, Inc.
* Copyright (C) 2005 Red Hat, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@ -33,18 +33,18 @@ gdk_ensure_surface_flush (gpointer surface)
/**
* gdk_cairo_create:
* @drawable: a #GdkDrawable
*
*
* Creates a Cairo context for drawing to @drawable.
*
* <note><para>
* Note that due to double-buffering, Cairo contexts created
* in a GTK+ expose event handler cannot be cached and reused
* between different expose events.
* Note that due to double-buffering, Cairo contexts created
* in a GTK+ expose event handler cannot be cached and reused
* between different expose events.
* </para></note>
*
* Return value: A newly created Cairo context. Free with
* cairo_destroy() when you are done drawing.
*
*
* Since: 2.8
**/
cairo_t *
@ -53,7 +53,7 @@ gdk_cairo_create (GdkDrawable *drawable)
static const cairo_user_data_key_t key;
cairo_surface_t *surface;
cairo_t *cr;
g_return_val_if_fail (GDK_IS_DRAWABLE (drawable), NULL);
surface = _gdk_drawable_ref_cairo_surface (drawable);
@ -61,7 +61,7 @@ gdk_cairo_create (GdkDrawable *drawable)
if (GDK_DRAWABLE_GET_CLASS (drawable)->set_cairo_clip)
GDK_DRAWABLE_GET_CLASS (drawable)->set_cairo_clip (drawable, cr);
/* Ugly workaround for GTK not ensuring to flush surfaces before
* directly accessing the drawable backed by the surface. Not visible
* on X11 (where flushing is a no-op). For details, see
@ -104,7 +104,7 @@ gdk_cairo_reset_clip (cairo_t *cr,
* gdk_cairo_set_source_color:
* @cr: a #cairo_t
* @color: a #GdkColor
*
*
* Sets the specified #GdkColor as the source color of @cr.
*
* Since: 2.8
@ -115,7 +115,7 @@ gdk_cairo_set_source_color (cairo_t *cr,
{
g_return_if_fail (cr != NULL);
g_return_if_fail (color != NULL);
cairo_set_source_rgb (cr,
color->red / 65535.,
color->green / 65535.,
@ -126,7 +126,7 @@ gdk_cairo_set_source_color (cairo_t *cr,
* gdk_cairo_rectangle:
* @cr: a #cairo_t
* @rectangle: a #GdkRectangle
*
*
* Adds the given rectangle to the current path of @cr.
*
* Since: 2.8
@ -147,7 +147,7 @@ gdk_cairo_rectangle (cairo_t *cr,
* gdk_cairo_region:
* @cr: a #cairo_t
* @region: a #GdkRegion
*
*
* Adds the given region to the current path of @cr.
*
* Since: 2.8
@ -179,7 +179,7 @@ gdk_cairo_region (cairo_t *cr,
* @pixbuf: a #GdkPixbuf
* @pixbuf_x: X coordinate of location to place upper left corner of @pixbuf
* @pixbuf_y: Y coordinate of location to place upper left corner of @pixbuf
*
*
* Sets the given pixbuf as the source pattern for the Cairo context.
* The pattern has an extend mode of %CAIRO_EXTEND_NONE and is aligned
* so that the origin of @pixbuf is @pixbuf_x, @pixbuf_y
@ -232,14 +232,14 @@ gdk_cairo_set_source_pixbuf (cairo_t *cr,
if (n_channels == 3)
{
guchar *end = p + 3 * width;
while (p < end)
{
#if G_BYTE_ORDER == G_LITTLE_ENDIAN
q[0] = p[2];
q[1] = p[1];
q[2] = p[0];
#else
#else
q[1] = p[0];
q[2] = p[1];
q[3] = p[2];
@ -252,7 +252,7 @@ gdk_cairo_set_source_pixbuf (cairo_t *cr,
{
guchar *end = p + 4 * width;
guint t1,t2,t3;
#define MULT(d,c,a,t) G_STMT_START { t = c * a + 0x80; d = ((t >> 8) + t) >> 8; } G_STMT_END
while (p < end)
@ -262,17 +262,17 @@ gdk_cairo_set_source_pixbuf (cairo_t *cr,
MULT(q[1], p[1], p[3], t2);
MULT(q[2], p[0], p[3], t3);
q[3] = p[3];
#else
#else
q[0] = p[3];
MULT(q[1], p[0], p[3], t1);
MULT(q[2], p[1], p[3], t2);
MULT(q[3], p[2], p[3], t3);
#endif
p += 4;
q += 4;
}
#undef MULT
}
@ -291,7 +291,7 @@ out:
* @pixmap: a #GdkPixmap
* @pixmap_x: X coordinate of location to place upper left corner of @pixmap
* @pixmap_y: Y coordinate of location to place upper left corner of @pixmap
*
*
* Sets the given pixmap as the source pattern for the Cairo context.
* The pattern has an extend mode of %CAIRO_EXTEND_NONE and is aligned
* so that the origin of @pixmap is @pixmap_x, @pixmap_y
@ -309,7 +309,7 @@ gdk_cairo_set_source_pixmap (cairo_t *cr,
double pixmap_y)
{
cairo_surface_t *surface;
surface = _gdk_drawable_ref_cairo_surface (GDK_DRAWABLE (pixmap));
cairo_set_source_surface (cr, surface, pixmap_x, pixmap_y);
cairo_surface_destroy (surface);

View file

@ -1,5 +1,5 @@
/* GDK - The GIMP Drawing Kit
* Copyright (C) 2005 Red Hat, Inc.
* Copyright (C) 2005 Red Hat, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public

View file

@ -21,7 +21,7 @@
* Modified by the GTK+ Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GTK+ Team. See the ChangeLog
* files for a list of changes. These files are distributed with
* GTK+ at ftp://ftp.gtk.org/pub/gtk/.
* GTK+ at ftp://ftp.gtk.org/pub/gtk/.
*/
#include "config.h"
@ -66,9 +66,9 @@ gdk_colormap_unref (GdkColormap *cmap)
/**
* gdk_colormap_get_visual:
* @colormap: a #GdkColormap.
*
*
* Returns the visual for which a given colormap was created.
*
*
* Return value: the visual of the colormap.
**/
GdkVisual *
@ -84,11 +84,11 @@ gdk_colormap_get_visual (GdkColormap *colormap)
* @colormap: a #GdkColormap.
* @colors: the new color values.
* @ncolors: the number of colors to change.
*
*
* Changes the value of the first @ncolors colors in
* a private colormap. This function is obsolete and
* should not be used. See gdk_color_change().
**/
**/
void
gdk_colors_store (GdkColormap *colormap,
GdkColor *colors,
@ -110,17 +110,17 @@ gdk_colors_store (GdkColormap *colormap,
/**
* gdk_color_copy:
* @color: a #GdkColor.
*
*
* Makes a copy of a color structure. The result
* must be freed using gdk_color_free().
*
*
* Return value: a copy of @color.
**/
GdkColor*
gdk_color_copy (const GdkColor *color)
{
GdkColor *new_color;
g_return_val_if_fail (color != NULL, NULL);
new_color = g_slice_new (GdkColor);
@ -131,8 +131,8 @@ gdk_color_copy (const GdkColor *color)
/**
* gdk_color_free:
* @color: a #GdkColor.
*
* Frees a color structure created with
*
* Frees a color structure created with
* gdk_color_copy().
**/
void
@ -147,10 +147,10 @@ gdk_color_free (GdkColor *color)
* gdk_color_white:
* @colormap: a #GdkColormap.
* @color: the location to store the color.
*
*
* Returns the white color for a given colormap. The resulting
* value has already allocated been allocated.
*
* value has already allocated been allocated.
*
* Return value: %TRUE if the allocation succeeded.
**/
gboolean
@ -179,10 +179,10 @@ gdk_color_white (GdkColormap *colormap,
* gdk_color_black:
* @colormap: a #GdkColormap.
* @color: the location to store the color.
*
*
* Returns the black color for a given colormap. The resulting
* value has already been allocated.
*
* value has already been allocated.
*
* Return value: %TRUE if the allocation succeeded.
**/
gboolean
@ -224,7 +224,7 @@ gdk_color_black (GdkColormap *colormap,
* existing colors if the color cannot be allocated as requested.
*
* Allocates a single color from a colormap.
*
*
* Return value: %TRUE if the allocation succeeded.
**/
gboolean
@ -244,11 +244,11 @@ gdk_colormap_alloc_color (GdkColormap *colormap,
/**
* gdk_color_alloc:
* @colormap: a #GdkColormap.
* @color: The color to allocate. On return, the
* @color: The color to allocate. On return, the
* <structfield>pixel</structfield> field will be filled in.
*
*
* Allocates a single color from a colormap.
*
*
* Return value: %TRUE if the allocation succeeded.
*
* Deprecated: 2.2: Use gdk_colormap_alloc_color() instead.
@ -267,10 +267,10 @@ gdk_color_alloc (GdkColormap *colormap,
/**
* gdk_color_hash:
* @colora: a #GdkColor.
*
*
* A hash function suitable for using for a hash
* table that stores #GdkColor's.
*
*
* Return value: The hash function applied to @colora
**/
guint
@ -286,9 +286,9 @@ gdk_color_hash (const GdkColor *colora)
* gdk_color_equal:
* @colora: a #GdkColor.
* @colorb: another #GdkColor.
*
* Compares two colors.
*
*
* Compares two colors.
*
* Return value: %TRUE if the two colors compare equal
**/
gboolean
@ -307,7 +307,7 @@ GType
gdk_color_get_type (void)
{
static GType our_type = 0;
if (our_type == 0)
our_type = g_boxed_type_register_static (g_intern_static_string ("GdkColor"),
(GBoxedCopyFunc)gdk_color_copy,
@ -332,7 +332,7 @@ gdk_color_get_type (void)
* red, green, and blue components of the color, respectively. (White
* in the four forms is '&num;fff' '&num;ffffff' '&num;fffffffff' and
* '&num;ffffffffffff')
*
*
* Return value: %TRUE if the parsing succeeded.
**/
gboolean
@ -382,10 +382,10 @@ gdk_color_to_string (const GdkColor *color)
/**
* gdk_colormap_get_system:
*
*
* Gets the system's default colormap for the default screen. (See
* gdk_colormap_get_system_for_screen ())
*
*
* Return value: the default colormap.
**/
GdkColormap*

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