Compare commits
39 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 923bf3c625 | |||
| d36604ae41 | |||
| 48d73e164e | |||
| b1277f32de | |||
| ffd12347be | |||
| fc2b45cb50 | |||
| 79c9a7ec5e | |||
| b89a059967 | |||
| fc72a20782 | |||
| 6748d421b6 | |||
| 87a46136b3 | |||
| 47c00c7ad4 | |||
| ce4382e444 | |||
| 74f03f97b1 | |||
| c0c10b993a | |||
| 127e8d8a1b | |||
| 9816a939b7 | |||
| 1b5b4812b9 | |||
| b20c7555fe | |||
| 33ff8e3488 | |||
| b2a5e870df | |||
| 42efae2d47 | |||
| 6919f989f7 | |||
| 82e9821dd8 | |||
| 1113402c7b | |||
| 2d2a6d2bf4 | |||
| 6fb824a0b3 | |||
| 26ae475590 | |||
| 3b35e523fd | |||
| 6c6f1b3dcd | |||
| 30c5e6fe7a | |||
| fda93a2977 | |||
| 151e5c58a8 | |||
| 32baa433b7 | |||
| b00d7d6585 | |||
| 954890278f | |||
| c07c77a489 | |||
| 85641efa08 | |||
| c43a02ba55 |
@@ -1,223 +1,3 @@
|
||||
Overview of Changes from GTK+ 2.17.6 to 2.17.7
|
||||
==============================================
|
||||
|
||||
* Client-side windows: a number of regressions related to embedding
|
||||
have been fixed
|
||||
|
||||
* Printing: The file backend supports SVG output
|
||||
|
||||
* Minor API additions:
|
||||
- GtkIconView gained an icon-padding property that can be used to fine-tune
|
||||
how much space each column needs
|
||||
- GtkTreeViewColumn grew a sort-column-id property that can be used to set
|
||||
up sort columns in GtkBuilder files
|
||||
- GdkWindow gained a cursor property and associated getter
|
||||
- GtkFileChooser has a create-folders property to allow disabling the
|
||||
"New Folder" button
|
||||
- gtk_print_operation_get_n_pages_to_print: returns the number of pages
|
||||
that are being printed
|
||||
- New getters and setters as part of the GSEAL effort:
|
||||
gtk_widget_get_allocation, gtk_widget_get_visible, gtk_widget_set_visible
|
||||
|
||||
* Bugs fixed:
|
||||
589336 Add GtkTreeViewColumn:sort-column-id property
|
||||
534462 Disable interactive search in the file chooser's shortcuts pane
|
||||
161489 n the file chooser, let the left/right arrow keys switch focus...
|
||||
514260 Better filtering for "Recently Used" files
|
||||
509650 ATK_STATE_SHOWING state is not set properly on menu items
|
||||
586374 code does not follow documentation (-> carshes when using...
|
||||
590442 csw broke gvim x11 embedding
|
||||
498010 gtk_tree_view_set_cursor fails if model!=NULL
|
||||
555109 Synthesized crossing events should have proper coordinates
|
||||
570516 Can't disable folder creation
|
||||
573321 additional check in gtk_tree_model_filter_convert_child_i...
|
||||
576601 Double clicking prints to the wrong printer
|
||||
586100 ITEM_PADDING breaks vertical icon views
|
||||
588438 awn uses 100% cpu with gtk+ 2.17.3 (csw)
|
||||
589732 behavior change of gdk_window_get_type_hint
|
||||
589745 Apply message in GtkAssistant
|
||||
590084 print to FILE with multiple pages per sheet has bad results
|
||||
590086 configure.in is broken on non-X platforms
|
||||
590309 Default cover pages for CUPS printers incorrectly set
|
||||
590448 [win32] build fails because gdk-pixbuf manges a path
|
||||
590959 Set child_has_focus flag properly
|
||||
591288 compat problem with draw_drawable being NULL
|
||||
539377 Unnecessary warnings when GtkTreeView is not realized.
|
||||
546005 priv->tree is not created for unrealized (I think) treeview
|
||||
564695 Pressing enter key in print to file "Name" box does not p...
|
||||
591218 Remove some unused variables
|
||||
357655 "Print to SVG file" for GtkPrintOperation
|
||||
591462 gdk_window_set_cursor doesn't work on the root window
|
||||
|
||||
* Updated translations:
|
||||
Basque
|
||||
Brazilian Portuguese
|
||||
Breton
|
||||
Estonian
|
||||
Galician
|
||||
Hebrew
|
||||
Norwegian bokmål
|
||||
Spanish
|
||||
Swedish
|
||||
|
||||
|
||||
Overview of Changes from GTK+ 2.17.5 to 2.17.6
|
||||
==============================================
|
||||
|
||||
* Client-side windows:
|
||||
- Several optimizations, such as client-side tracking of
|
||||
viewable windows
|
||||
- Clipping for drawing pixbufs on windows has been fixed
|
||||
- Rendering to large subwindows has been fixed
|
||||
|
||||
* Changes that are relevant for translators:
|
||||
- Markup has been removed from several strings
|
||||
|
||||
* Bugs fixed:
|
||||
588398 Leak with testgtk::preview_(color|gray) and more
|
||||
588943 set correct selection before emitting cursor-changed...
|
||||
588076 Gnumeric fonts stopped working on upgrading gtk+ 2.17.2 -...
|
||||
574674 GtkMenuItem gets Selected and Focused states when SelectC...
|
||||
582674 Menu item and menu accessibles retain "showing" state aft...
|
||||
588553 [csw] gdk_draw_pixbuf doesnt draw outside expose events s...
|
||||
588897 Strange include x11/gdkx.h
|
||||
588958 Typo in startup-id window property
|
||||
589035 Context needed for a propoer translation
|
||||
589275 [csw] Trying to destroy NULL regions
|
||||
588964 Remove markup from translatable string in gtkfilechooserd...
|
||||
587337 Suggest to use Glade instead gtk-builder-convert script
|
||||
|
||||
* Updated translations:
|
||||
Estonian
|
||||
French
|
||||
Spanish
|
||||
Swedish
|
||||
Thai
|
||||
|
||||
|
||||
Overview of Changes from GTK+ 2.17.4 to 2.17.5
|
||||
==============================================
|
||||
|
||||
* Client-side windows:
|
||||
- Quite a few fixes have happened for the win32 and directfb backends
|
||||
|
||||
* GSEAL:
|
||||
- Accessors have been added for sealed members in GtkCellRenderer and
|
||||
GtkWidget
|
||||
|
||||
* Changes that are relevant for distributors:
|
||||
- The jpeg2000 pixbuf loader is now optional. Pass --with-libjasper
|
||||
to configure to build it
|
||||
|
||||
* Bugs fixed
|
||||
588373 Menus broken by client-side-windows
|
||||
588379 testgtk::panes does not change the cursor on mouse over
|
||||
588388 shape rendering is back
|
||||
588461 gtk_editable_get_chars() behaviour change in 2.17.4
|
||||
588666 Incorrect clamping of max_length
|
||||
588665 insert-text signal is not emitted
|
||||
588395 Crash when opening a GtkBuilder file
|
||||
524066 Mandatory jpeg2000?
|
||||
527583 GtkAssistant should set buttons as default widget
|
||||
588694 Missing % in C code
|
||||
588484 Iconview DnD fails when Destination is empty
|
||||
583522 Trivial error in GtkBuilder migration documentation
|
||||
150951 collapsed save dialog needs to indicate filesystem...
|
||||
|
||||
* Updated translations:
|
||||
Brazilian Portuguese
|
||||
Norwegian bokmål
|
||||
Spanish
|
||||
Traditional Chinese
|
||||
|
||||
|
||||
Overview of Changes from GTK+ 2.17.3 to 2.17.4
|
||||
==============================================
|
||||
|
||||
* GtkEntry now has model-view separation, with GtkEntryBuffer.
|
||||
One intended use case for this is to support 'secure memory'
|
||||
for password entries.
|
||||
|
||||
* The print dialog can now optionally include the page setup
|
||||
controls, avoiding the need for a separate page setup dialog
|
||||
in many applications.
|
||||
|
||||
* Coloring of visited links in GtkLabel can now be turned off, with
|
||||
the ::track-visited-links property.
|
||||
|
||||
* Support for clipmasks in gdk_draw_pixbuf now works, this will
|
||||
introduce visual changes in code that uses clipmasks when drawing
|
||||
pixbufs. However, since this never worked that is unlikely to happen.
|
||||
Old code using gdk_pixbuf_render_threshold_alpha masks when rendering
|
||||
pixbufs will now produce truncated results at the edges.
|
||||
|
||||
* A number of regressions from the client-side window merge have
|
||||
been fixed.
|
||||
|
||||
* The directfb GDK backend has been fixed to build with csw.
|
||||
|
||||
* Bugs fixed:
|
||||
569393 gtk calendar localization YM note is wrong
|
||||
587559 Popup closes immediately
|
||||
551409 Print dialog should include page size and orientation
|
||||
588115 gvim clipboard broken
|
||||
|
||||
* Updated translations:
|
||||
Dutch
|
||||
Estonian
|
||||
Spanish
|
||||
Ukrainian
|
||||
Vietnamese
|
||||
|
||||
|
||||
Overview of Changes from GTK+ 2.17.2 to 2.17.3
|
||||
==============================================
|
||||
|
||||
* GtkFileChooser:
|
||||
- Shows the size column by default now
|
||||
|
||||
* GtkStatusIcon:
|
||||
- Has a title property, which can be used by ATs when they
|
||||
read status icons
|
||||
|
||||
* GtkInfoBar:
|
||||
- The default theme now includes color definitions for infobars
|
||||
- The ::use-tooltip-style style property has been removed
|
||||
|
||||
* GtkMountOperation now supports interaction during unmount operations.
|
||||
|
||||
* The client-side windows branch has been merged; GDK now maintains
|
||||
its own window hierarchy client-side, and only uses X windows where
|
||||
unavoidable. Some of the benefits of this change are
|
||||
- Reduced flicker
|
||||
- The ability to do transformed and animated rendering of widgets
|
||||
- Easier embedding of GTK+ widgets e.g. into Clutter scene graphs
|
||||
This is a fundamental change to the way GDK works, so watch out for
|
||||
regressions.
|
||||
|
||||
* Bugs fixed:
|
||||
586315 Crash in GTK+ 2.14 when calling gtk.FileChooser.list_shor...
|
||||
461944 pressing the volume icon in full screen shuts down the sound
|
||||
490724 iconview item's height would be changed event with same m...
|
||||
564063 regression: Left margin in popup menus
|
||||
582025 Accelerators fail for submenus
|
||||
585626 Setting widget tooltip hammers X11 server on any TCP/IP X...
|
||||
585802 Add API to make GtkStatusIcon accessible with a name
|
||||
585858 right-click Add-to-Booksmarks is sometimes greyed out
|
||||
586330 GtkButton ignores user_underline when an image is set
|
||||
318807 Offscreen windows and window redirection
|
||||
587716 GtkInfoBar broken on resize
|
||||
587485 GMountOperation::show-processes support
|
||||
|
||||
* Updated translations
|
||||
Brazilian Portuguese
|
||||
Estonian
|
||||
Hebrew
|
||||
Spanish
|
||||
Swedish
|
||||
Vietnamese
|
||||
|
||||
|
||||
Overview of Changes from GTK+ 2.17.1 to 2.17.2
|
||||
==============================================
|
||||
|
||||
|
||||
@@ -34,9 +34,6 @@ Release notes for 2.18
|
||||
old custom_widget. Custom_widget does not get destroyed when the
|
||||
tooltip goes away.
|
||||
|
||||
* JPEG2000 support is no longer enabled by default. It must be
|
||||
explicitly turned on, by passing --with-libjasper to configure.
|
||||
|
||||
|
||||
Release notes for 2.16
|
||||
======================
|
||||
@@ -430,4 +427,8 @@ report.
|
||||
Otherwise, enter a new bug report that describes the patch, and attach
|
||||
the patch to that bug report.
|
||||
|
||||
Patches should be in unified diff form. (The -up option to GNU diff.)
|
||||
Bug reports containing patches should include the PATCH keyword in their
|
||||
keyword fields. If the patch adds to or changes the GTK+ programming
|
||||
interface, the API keyword should also be included.
|
||||
|
||||
Patches should be in unified diff form. (The -u option to GNU diff.)
|
||||
|
||||
+1
-5
@@ -269,11 +269,7 @@
|
||||
/* #undef USE_MEDIALIB25 */
|
||||
|
||||
/* Define to 1 if XXM is available and should be used */
|
||||
#ifndef _MSC_VER
|
||||
# define USE_MMX 1
|
||||
#else
|
||||
# undef USE_MMX
|
||||
#endif
|
||||
#define USE_MMX 1
|
||||
|
||||
/* Define to 1 if no XInput should be used */
|
||||
/* #undef XINPUT_NONE */
|
||||
|
||||
+11
-15
@@ -12,7 +12,7 @@ AC_PREREQ(2.54)
|
||||
|
||||
m4_define([gtk_major_version], [2])
|
||||
m4_define([gtk_minor_version], [17])
|
||||
m4_define([gtk_micro_version], [7])
|
||||
m4_define([gtk_micro_version], [3])
|
||||
m4_define([gtk_interface_age], [0])
|
||||
m4_define([gtk_binary_age],
|
||||
[m4_eval(100 * gtk_minor_version + gtk_micro_version)])
|
||||
@@ -31,7 +31,7 @@ m4_define([gtk_api_version], [2.0])
|
||||
m4_define([gtk_binary_version], [2.10.0])
|
||||
|
||||
# required versions of other packages
|
||||
m4_define([glib_required_version], [2.21.3])
|
||||
m4_define([glib_required_version], [2.19.7])
|
||||
m4_define([pango_required_version], [1.20])
|
||||
m4_define([atk_required_version], [1.13.0])
|
||||
m4_define([cairo_required_version], [1.6])
|
||||
@@ -825,13 +825,12 @@ AC_ARG_WITH(libtiff,
|
||||
[AC_HELP_STRING([--without-libtiff],
|
||||
[disable TIFF loader for gdk-pixbuf])])
|
||||
AC_ARG_WITH(libjasper,
|
||||
[AC_HELP_STRING([--with-libjasper],
|
||||
[enable JPEG2000 loader for gdk-pixbuf])])
|
||||
[AC_HELP_STRING([--without-libjasper],
|
||||
[disable JPEG2000 loader for gdk-pixbuf])])
|
||||
|
||||
AC_ARG_ENABLE(gdiplus,
|
||||
[AC_HELP_STRING([--enable-gdiplus],
|
||||
[enble GDI+ loaders for gdk-pixbuf (currently known to be broken)])],,
|
||||
[enable_gdiplus=no])
|
||||
[AC_HELP_STRING([--disable-gdiplus],
|
||||
[disable GDI+ loaders for gdk-pixbuf])])
|
||||
|
||||
AM_CONDITIONAL(BUILD_GDIPLUS_LOADERS, [ test x$os_win32 = xyes && test x$enable_gdiplus != xno ])
|
||||
|
||||
@@ -941,11 +940,11 @@ dnl Test for libpng
|
||||
fi
|
||||
|
||||
dnl Test for libjasper
|
||||
if test x$with_libjasper = xyes && test -z "$LIBJASPER"; then
|
||||
if test x$with_libjasper != xno && test -z "$LIBJASPER"; then
|
||||
AC_CHECK_LIB(jasper, jas_init, LIBJASPER=-ljasper, [], -ljpeg)
|
||||
fi
|
||||
|
||||
if test x$with_libjasper = xyes && test -z "$LIBJASPER"; then
|
||||
if test x$with_libjasper != xno && test -z "$LIBJASPER"; then
|
||||
AC_MSG_ERROR([
|
||||
*** Checks for JPEG2000 loader failed. You can build without it by passing
|
||||
*** --without-libjasper to configure])
|
||||
@@ -1318,6 +1317,7 @@ GDK_PIXBUF_XLIB_PACKAGES=
|
||||
GDK_PIXBUF_XLIB_EXTRA_CFLAGS=
|
||||
GDK_PIXBUF_XLIB_EXTRA_LIBS=
|
||||
|
||||
X_PACKAGES=fontconfig
|
||||
GDK_EXTRA_LIBS="$GDK_WLIBS"
|
||||
GDK_EXTRA_CFLAGS=
|
||||
|
||||
@@ -1326,8 +1326,6 @@ GTK_DEP_PACKAGES_FOR_X=
|
||||
GTK_DEP_LIBS_FOR_X=
|
||||
|
||||
if test "x$gdktarget" = "xx11"; then
|
||||
X_PACKAGES=fontconfig
|
||||
|
||||
#
|
||||
# We use fontconfig very peripherally when decoding the default
|
||||
# settings.
|
||||
@@ -1628,8 +1626,6 @@ if test "x$gdktarget" = "xx11"; then
|
||||
|
||||
AM_CONDITIONAL(USE_X11, true)
|
||||
else
|
||||
XPACKAGES=
|
||||
|
||||
AM_CONDITIONAL(XINPUT_XFREE, false)
|
||||
AM_CONDITIONAL(USE_X11, false)
|
||||
AM_CONDITIONAL(HAVE_X11R6, false)
|
||||
@@ -1904,8 +1900,8 @@ fi
|
||||
AM_CONDITIONAL(HAVE_PAPI_CUPS, test $have_papi = yes && test "x$CUPS_CONFIG" != "xno")
|
||||
|
||||
gtk_save_cppflags="$CPPFLAGS"
|
||||
CPPFLAGS="$CPPFLAGS $GTK_DEP_CFLAGS $GDK_DEP_CFLAGS"
|
||||
|
||||
CPPFLAGS="$CPPFLAGS $GTK_DEP_CFLAGS"
|
||||
|
||||
AC_CHECK_HEADER(cairo-pdf.h,,AC_MSG_ERROR([
|
||||
*** Can't find cairo-pdf.h. You must build Cairo with the pdf
|
||||
*** backend enabled.]))
|
||||
|
||||
@@ -17,21 +17,20 @@ demos = \
|
||||
dialog.c \
|
||||
drawingarea.c \
|
||||
editable_cells.c \
|
||||
entry_buffer.c \
|
||||
entry_completion.c \
|
||||
expander.c \
|
||||
hypertext.c \
|
||||
iconview.c \
|
||||
iconview_edit.c \
|
||||
images.c \
|
||||
infobar.c \
|
||||
links.c \
|
||||
links.c \
|
||||
list_store.c \
|
||||
menus.c \
|
||||
panes.c \
|
||||
pickers.c \
|
||||
pixbufs.c \
|
||||
printing.c \
|
||||
resolution_independence.c \
|
||||
rotated_text.c \
|
||||
search_entry.c \
|
||||
sizegroup.c \
|
||||
|
||||
@@ -553,7 +553,8 @@ do_appwindow (GtkWidget *do_widget)
|
||||
0, 0);
|
||||
|
||||
gtk_window_set_default_size (GTK_WINDOW (window),
|
||||
200, 200);
|
||||
GTK_SIZE_ONE_TWELFTH_EM (200),
|
||||
GTK_SIZE_ONE_TWELFTH_EM (200));
|
||||
|
||||
contents = gtk_text_view_new ();
|
||||
gtk_widget_grab_focus (contents);
|
||||
|
||||
@@ -58,14 +58,32 @@ on_entry_changed (GtkWidget *widget, gpointer data)
|
||||
gtk_assistant_set_page_complete (assistant, current_page, FALSE);
|
||||
}
|
||||
|
||||
static void
|
||||
on_unit_changed (GtkWidget *assistant,
|
||||
gpointer user_data)
|
||||
{
|
||||
int n;
|
||||
GdkPixbuf *pixbuf;
|
||||
GtkWidget *page;
|
||||
|
||||
/* update icons on all pages */
|
||||
for (n = 0; n < 3; n++)
|
||||
{
|
||||
page = gtk_assistant_get_nth_page (GTK_ASSISTANT (assistant), n);
|
||||
pixbuf = gtk_widget_render_icon (assistant, GTK_STOCK_DIALOG_INFO, GTK_ICON_SIZE_DIALOG, NULL);
|
||||
gtk_assistant_set_page_header_image (GTK_ASSISTANT (assistant), page, pixbuf);
|
||||
g_object_unref (pixbuf);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
create_page1 (GtkWidget *assistant)
|
||||
{
|
||||
GtkWidget *box, *label, *entry;
|
||||
GdkPixbuf *pixbuf;
|
||||
|
||||
box = gtk_hbox_new (FALSE, 12);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (box), 12);
|
||||
box = gtk_hbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (10));
|
||||
gtk_container_set_border_width (GTK_CONTAINER (box), GTK_SIZE_ONE_TWELFTH_EM (10));
|
||||
|
||||
label = gtk_label_new ("You must fill out this entry to continue:");
|
||||
gtk_box_pack_start (GTK_BOX (box), label, FALSE, FALSE, 0);
|
||||
@@ -91,8 +109,8 @@ create_page2 (GtkWidget *assistant)
|
||||
GtkWidget *box, *checkbutton;
|
||||
GdkPixbuf *pixbuf;
|
||||
|
||||
box = gtk_vbox_new (12, FALSE);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (box), 12);
|
||||
box = gtk_vbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (10));
|
||||
gtk_container_set_border_width (GTK_CONTAINER (box), GTK_SIZE_ONE_TWELFTH_EM (10));
|
||||
|
||||
checkbutton = gtk_check_button_new_with_label ("This is optional data, you may continue "
|
||||
"even if you do not check this");
|
||||
@@ -134,7 +152,7 @@ do_assistant (GtkWidget *do_widget)
|
||||
{
|
||||
assistant = gtk_assistant_new ();
|
||||
|
||||
gtk_window_set_default_size (GTK_WINDOW (assistant), -1, 300);
|
||||
gtk_window_set_default_size (GTK_WINDOW (assistant), -1, GTK_SIZE_ONE_TWELFTH_EM (300));
|
||||
|
||||
gtk_window_set_screen (GTK_WINDOW (assistant),
|
||||
gtk_widget_get_screen (do_widget));
|
||||
@@ -151,6 +169,10 @@ do_assistant (GtkWidget *do_widget)
|
||||
G_CALLBACK (on_assistant_apply), NULL);
|
||||
g_signal_connect (G_OBJECT (assistant), "prepare",
|
||||
G_CALLBACK (on_assistant_prepare), NULL);
|
||||
|
||||
/* need to reset the header pixbufs to correct size when the units change */
|
||||
g_signal_connect (G_OBJECT (assistant), "unit-changed",
|
||||
G_CALLBACK (on_unit_changed), NULL);
|
||||
}
|
||||
|
||||
if (!GTK_WIDGET_VISIBLE (assistant))
|
||||
|
||||
+24
-24
@@ -6,10 +6,10 @@
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
static GtkWidget *
|
||||
create_bbox (gint horizontal,
|
||||
char *title,
|
||||
gint spacing,
|
||||
gint layout)
|
||||
create_bbox (gint horizontal,
|
||||
char *title,
|
||||
GtkSize spacing,
|
||||
gint layout)
|
||||
{
|
||||
GtkWidget *frame;
|
||||
GtkWidget *bbox;
|
||||
@@ -22,7 +22,7 @@ create_bbox (gint horizontal,
|
||||
else
|
||||
bbox = gtk_vbutton_box_new ();
|
||||
|
||||
gtk_container_set_border_width (GTK_CONTAINER (bbox), 5);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (bbox), GTK_SIZE_ONE_TWELFTH_EM (5));
|
||||
gtk_container_add (GTK_CONTAINER (frame), bbox);
|
||||
|
||||
gtk_button_box_set_layout (GTK_BUTTON_BOX (bbox), layout);
|
||||
@@ -61,56 +61,56 @@ do_button_box (GtkWidget *do_widget)
|
||||
G_CALLBACK (gtk_widget_destroyed),
|
||||
&window);
|
||||
|
||||
gtk_container_set_border_width (GTK_CONTAINER (window), 10);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (window), GTK_SIZE_ONE_TWELFTH_EM (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);
|
||||
gtk_box_pack_start (GTK_BOX (main_vbox), frame_horz, TRUE, TRUE, GTK_SIZE_ONE_TWELFTH_EM (10));
|
||||
|
||||
vbox = gtk_vbox_new (FALSE, 0);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (vbox), 10);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (vbox), GTK_SIZE_ONE_TWELFTH_EM (10));
|
||||
gtk_container_add (GTK_CONTAINER (frame_horz), vbox);
|
||||
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
create_bbox (TRUE, "Spread", 40, GTK_BUTTONBOX_SPREAD),
|
||||
create_bbox (TRUE, "Spread", GTK_SIZE_ONE_TWELFTH_EM (40), GTK_BUTTONBOX_SPREAD),
|
||||
TRUE, TRUE, 0);
|
||||
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
create_bbox (TRUE, "Edge", 40, GTK_BUTTONBOX_EDGE),
|
||||
TRUE, TRUE, 5);
|
||||
create_bbox (TRUE, "Edge", GTK_SIZE_ONE_TWELFTH_EM (40), GTK_BUTTONBOX_EDGE),
|
||||
TRUE, TRUE, GTK_SIZE_ONE_TWELFTH_EM (5));
|
||||
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
create_bbox (TRUE, "Start", 40, GTK_BUTTONBOX_START),
|
||||
TRUE, TRUE, 5);
|
||||
create_bbox (TRUE, "Start", GTK_SIZE_ONE_TWELFTH_EM (40), GTK_BUTTONBOX_START),
|
||||
TRUE, TRUE, GTK_SIZE_ONE_TWELFTH_EM (5));
|
||||
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
create_bbox (TRUE, "End", 40, GTK_BUTTONBOX_END),
|
||||
TRUE, TRUE, 5);
|
||||
create_bbox (TRUE, "End", GTK_SIZE_ONE_TWELFTH_EM (40), GTK_BUTTONBOX_END),
|
||||
TRUE, TRUE, GTK_SIZE_ONE_TWELFTH_EM (5));
|
||||
|
||||
frame_vert = gtk_frame_new ("Vertical Button Boxes");
|
||||
gtk_box_pack_start (GTK_BOX (main_vbox), frame_vert, TRUE, TRUE, 10);
|
||||
gtk_box_pack_start (GTK_BOX (main_vbox), frame_vert, TRUE, TRUE, GTK_SIZE_ONE_TWELFTH_EM (10));
|
||||
|
||||
hbox = gtk_hbox_new (FALSE, 0);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (hbox), 10);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (hbox), GTK_SIZE_ONE_TWELFTH_EM (10));
|
||||
gtk_container_add (GTK_CONTAINER (frame_vert), hbox);
|
||||
|
||||
gtk_box_pack_start (GTK_BOX (hbox),
|
||||
create_bbox (FALSE, "Spread", 30, GTK_BUTTONBOX_SPREAD),
|
||||
create_bbox (FALSE, "Spread", GTK_SIZE_ONE_TWELFTH_EM (30), GTK_BUTTONBOX_SPREAD),
|
||||
TRUE, TRUE, 0);
|
||||
|
||||
gtk_box_pack_start (GTK_BOX (hbox),
|
||||
create_bbox (FALSE, "Edge", 30, GTK_BUTTONBOX_EDGE),
|
||||
TRUE, TRUE, 5);
|
||||
create_bbox (FALSE, "Edge", GTK_SIZE_ONE_TWELFTH_EM (30), GTK_BUTTONBOX_EDGE),
|
||||
TRUE, TRUE, GTK_SIZE_ONE_TWELFTH_EM (5));
|
||||
|
||||
gtk_box_pack_start (GTK_BOX (hbox),
|
||||
create_bbox (FALSE, "Start", 30, GTK_BUTTONBOX_START),
|
||||
TRUE, TRUE, 5);
|
||||
create_bbox (FALSE, "Start", GTK_SIZE_ONE_TWELFTH_EM (30), GTK_BUTTONBOX_START),
|
||||
TRUE, TRUE, GTK_SIZE_ONE_TWELFTH_EM (5));
|
||||
|
||||
gtk_box_pack_start (GTK_BOX (hbox),
|
||||
create_bbox (FALSE, "End", 30, GTK_BUTTONBOX_END),
|
||||
TRUE, TRUE, 5);
|
||||
create_bbox (FALSE, "End", GTK_SIZE_ONE_TWELFTH_EM (30), GTK_BUTTONBOX_END),
|
||||
TRUE, TRUE, GTK_SIZE_ONE_TWELFTH_EM (5));
|
||||
}
|
||||
|
||||
if (!GTK_WIDGET_VISIBLE (window))
|
||||
|
||||
@@ -354,8 +354,8 @@ create_frame (ChangeDisplayInfo *info,
|
||||
|
||||
*frame = gtk_frame_new (title);
|
||||
|
||||
hbox = gtk_hbox_new (FALSE, 8);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (hbox), 8);
|
||||
hbox = gtk_hbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (8));
|
||||
gtk_container_set_border_width (GTK_CONTAINER (hbox), GTK_SIZE_ONE_TWELFTH_EM (8));
|
||||
gtk_container_add (GTK_CONTAINER (*frame), hbox);
|
||||
|
||||
scrollwin = gtk_scrolled_window_new (NULL, NULL);
|
||||
@@ -372,7 +372,7 @@ create_frame (ChangeDisplayInfo *info,
|
||||
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (*tree_view));
|
||||
gtk_tree_selection_set_mode (selection, GTK_SELECTION_BROWSE);
|
||||
|
||||
*button_vbox = gtk_vbox_new (FALSE, 5);
|
||||
*button_vbox = gtk_vbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (5));
|
||||
gtk_box_pack_start (GTK_BOX (hbox), *button_vbox, FALSE, FALSE, 0);
|
||||
|
||||
if (!info->size_group)
|
||||
@@ -611,15 +611,15 @@ do_changedisplay (GtkWidget *do_widget)
|
||||
"Change", GTK_RESPONSE_OK,
|
||||
NULL);
|
||||
|
||||
gtk_window_set_default_size (GTK_WINDOW (info->window), 300, 400);
|
||||
gtk_window_set_default_size (GTK_WINDOW (info->window), GTK_SIZE_ONE_TWELFTH_EM (300), GTK_SIZE_ONE_TWELFTH_EM (400));
|
||||
|
||||
g_signal_connect (info->window, "response",
|
||||
G_CALLBACK (response_cb), info);
|
||||
g_signal_connect (info->window, "destroy",
|
||||
G_CALLBACK (destroy_cb), &info);
|
||||
|
||||
vbox = gtk_vbox_new (FALSE, 5);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (vbox), 8);
|
||||
vbox = gtk_vbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (5));
|
||||
gtk_container_set_border_width (GTK_CONTAINER (vbox), GTK_SIZE_ONE_TWELFTH_EM (8));
|
||||
|
||||
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (info->window)->vbox), vbox,
|
||||
TRUE, TRUE, 0);
|
||||
|
||||
@@ -207,7 +207,7 @@ do_clipboard (GtkWidget *do_widget)
|
||||
G_CALLBACK (gtk_widget_destroyed), &window);
|
||||
|
||||
vbox = gtk_vbox_new (FALSE, 0);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (vbox), 8);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (vbox), GTK_SIZE_ONE_TWELFTH_EM (8));
|
||||
|
||||
gtk_container_add (GTK_CONTAINER (window), vbox);
|
||||
|
||||
@@ -215,8 +215,8 @@ do_clipboard (GtkWidget *do_widget)
|
||||
|
||||
gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
|
||||
|
||||
hbox = gtk_hbox_new (FALSE, 4);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (hbox), 8);
|
||||
hbox = gtk_hbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (4));
|
||||
gtk_container_set_border_width (GTK_CONTAINER (hbox), GTK_SIZE_ONE_TWELFTH_EM (8));
|
||||
gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
|
||||
|
||||
/* Create the first entry */
|
||||
@@ -232,8 +232,8 @@ do_clipboard (GtkWidget *do_widget)
|
||||
label = gtk_label_new ("\"Paste\" will paste the text from the clipboard to the entry");
|
||||
gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
|
||||
|
||||
hbox = gtk_hbox_new (FALSE, 4);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (hbox), 8);
|
||||
hbox = gtk_hbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (4));
|
||||
gtk_container_set_border_width (GTK_CONTAINER (hbox), GTK_SIZE_ONE_TWELFTH_EM (8));
|
||||
gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
|
||||
|
||||
/* Create the second entry */
|
||||
@@ -249,8 +249,8 @@ do_clipboard (GtkWidget *do_widget)
|
||||
label = gtk_label_new ("Images can be transferred via the clipboard, too");
|
||||
gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
|
||||
|
||||
hbox = gtk_hbox_new (FALSE, 4);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (hbox), 8);
|
||||
hbox = gtk_hbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (4));
|
||||
gtk_container_set_border_width (GTK_CONTAINER (hbox), GTK_SIZE_ONE_TWELFTH_EM (8));
|
||||
gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
|
||||
|
||||
/* Create the first image */
|
||||
|
||||
@@ -87,10 +87,10 @@ do_colorsel (GtkWidget *do_widget)
|
||||
g_signal_connect (window, "destroy",
|
||||
G_CALLBACK (gtk_widget_destroyed), &window);
|
||||
|
||||
gtk_container_set_border_width (GTK_CONTAINER (window), 8);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (window), GTK_SIZE_ONE_TWELFTH_EM (8));
|
||||
|
||||
vbox = gtk_vbox_new (FALSE, 8);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (vbox), 8);
|
||||
vbox = gtk_vbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (8));
|
||||
gtk_container_set_border_width (GTK_CONTAINER (vbox), GTK_SIZE_ONE_TWELFTH_EM (8));
|
||||
gtk_container_add (GTK_CONTAINER (window), vbox);
|
||||
|
||||
/*
|
||||
@@ -108,7 +108,7 @@ do_colorsel (GtkWidget *do_widget)
|
||||
G_CALLBACK (expose_event_callback), NULL);
|
||||
|
||||
/* set a minimum size */
|
||||
gtk_widget_set_size_request (da, 200, 200);
|
||||
gtk_widget_set_size_request (da, GTK_SIZE_ONE_TWELFTH_EM (200), GTK_SIZE_ONE_TWELFTH_EM (200));
|
||||
/* set the color */
|
||||
gtk_widget_modify_bg (da, GTK_STATE_NORMAL, &color);
|
||||
|
||||
|
||||
+13
-16
@@ -11,8 +11,10 @@
|
||||
|
||||
enum
|
||||
{
|
||||
PIXBUF_COL,
|
||||
TEXT_COL
|
||||
STOCK_ID_COL,
|
||||
TEXT_COL,
|
||||
|
||||
NUM_COLUMNS,
|
||||
};
|
||||
|
||||
static gchar *
|
||||
@@ -50,7 +52,6 @@ create_stock_icon_store (void)
|
||||
};
|
||||
|
||||
GtkStockItem item;
|
||||
GdkPixbuf *pixbuf;
|
||||
GtkWidget *cellview;
|
||||
GtkTreeIter iter;
|
||||
GtkListStore *store;
|
||||
@@ -59,29 +60,25 @@ create_stock_icon_store (void)
|
||||
|
||||
cellview = gtk_cell_view_new ();
|
||||
|
||||
store = gtk_list_store_new (2, GDK_TYPE_PIXBUF, G_TYPE_STRING);
|
||||
store = gtk_list_store_new (NUM_COLUMNS, G_TYPE_STRING, G_TYPE_STRING);
|
||||
|
||||
for (i = 0; i < G_N_ELEMENTS (stock_id); i++)
|
||||
{
|
||||
if (stock_id[i])
|
||||
{
|
||||
pixbuf = gtk_widget_render_icon (cellview, stock_id[i],
|
||||
GTK_ICON_SIZE_BUTTON, NULL);
|
||||
gtk_stock_lookup (stock_id[i], &item);
|
||||
gtk_stock_lookup (stock_id[i], &item);
|
||||
label = strip_underscore (item.label);
|
||||
gtk_list_store_append (store, &iter);
|
||||
gtk_list_store_set (store, &iter,
|
||||
PIXBUF_COL, pixbuf,
|
||||
STOCK_ID_COL, stock_id[i],
|
||||
TEXT_COL, label,
|
||||
-1);
|
||||
g_object_unref (pixbuf);
|
||||
g_free (label);
|
||||
}
|
||||
else
|
||||
{
|
||||
gtk_list_store_append (store, &iter);
|
||||
gtk_list_store_set (store, &iter,
|
||||
PIXBUF_COL, NULL,
|
||||
TEXT_COL, "separator",
|
||||
-1);
|
||||
}
|
||||
@@ -343,9 +340,9 @@ do_combobox (GtkWidget *do_widget)
|
||||
G_CALLBACK (gtk_widget_destroyed),
|
||||
&window);
|
||||
|
||||
gtk_container_set_border_width (GTK_CONTAINER (window), 10);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (window), GTK_SIZE_ONE_TWELFTH_EM (10));
|
||||
|
||||
vbox = gtk_vbox_new (FALSE, 2);
|
||||
vbox = gtk_vbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (2));
|
||||
gtk_container_add (GTK_CONTAINER (window), vbox);
|
||||
|
||||
/* A combobox demonstrating cell renderers, separators and
|
||||
@@ -355,7 +352,7 @@ do_combobox (GtkWidget *do_widget)
|
||||
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_set_border_width (GTK_CONTAINER (box), GTK_SIZE_ONE_TWELFTH_EM (5));
|
||||
gtk_container_add (GTK_CONTAINER (frame), box);
|
||||
|
||||
model = create_stock_icon_store ();
|
||||
@@ -366,7 +363,7 @@ do_combobox (GtkWidget *do_widget)
|
||||
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,
|
||||
"stock-id", STOCK_ID_COL,
|
||||
NULL);
|
||||
|
||||
gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (combo),
|
||||
@@ -396,7 +393,7 @@ do_combobox (GtkWidget *do_widget)
|
||||
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_set_border_width (GTK_CONTAINER (box), GTK_SIZE_ONE_TWELFTH_EM (5));
|
||||
gtk_container_add (GTK_CONTAINER (frame), box);
|
||||
|
||||
model = create_capital_store ();
|
||||
@@ -425,7 +422,7 @@ do_combobox (GtkWidget *do_widget)
|
||||
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_set_border_width (GTK_CONTAINER (box), GTK_SIZE_ONE_TWELFTH_EM (5));
|
||||
gtk_container_add (GTK_CONTAINER (frame), box);
|
||||
|
||||
combo = gtk_combo_box_entry_new_text ();
|
||||
|
||||
@@ -148,8 +148,9 @@
|
||||
</accessibility>
|
||||
</object>
|
||||
<object class="GtkWindow" id="window1">
|
||||
<property name="default_height">250</property>
|
||||
<property name="default_width">440</property>
|
||||
<!-- 100 mm = 10 cm ~= 4 inches -->
|
||||
<property name="default_height">100 mm</property>
|
||||
<property name="default_width">36.6667em</property>
|
||||
<property name="title">GtkBuilder demo</property>
|
||||
<child>
|
||||
<object class="GtkVBox" id="vbox1">
|
||||
|
||||
+11
-11
@@ -51,16 +51,16 @@ interactive_dialog_clicked (GtkButton *button,
|
||||
GTK_RESPONSE_CANCEL,
|
||||
NULL);
|
||||
|
||||
hbox = gtk_hbox_new (FALSE, 8);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (hbox), 8);
|
||||
hbox = gtk_hbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (8));
|
||||
gtk_container_set_border_width (GTK_CONTAINER (hbox), GTK_SIZE_ONE_TWELFTH_EM (8));
|
||||
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), hbox, FALSE, FALSE, 0);
|
||||
|
||||
stock = gtk_image_new_from_stock (GTK_STOCK_DIALOG_QUESTION, GTK_ICON_SIZE_DIALOG);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), stock, FALSE, FALSE, 0);
|
||||
|
||||
table = gtk_table_new (2, 2, FALSE);
|
||||
gtk_table_set_row_spacings (GTK_TABLE (table), 4);
|
||||
gtk_table_set_col_spacings (GTK_TABLE (table), 4);
|
||||
gtk_table_set_row_spacings (GTK_TABLE (table), GTK_SIZE_ONE_TWELFTH_EM (4));
|
||||
gtk_table_set_col_spacings (GTK_TABLE (table), GTK_SIZE_ONE_TWELFTH_EM (4));
|
||||
gtk_box_pack_start (GTK_BOX (hbox), table, TRUE, TRUE, 0);
|
||||
label = gtk_label_new_with_mnemonic ("_Entry 1");
|
||||
gtk_table_attach_defaults (GTK_TABLE (table),
|
||||
@@ -112,17 +112,17 @@ do_dialog (GtkWidget *do_widget)
|
||||
gtk_window_set_title (GTK_WINDOW (window), "Dialogs");
|
||||
|
||||
g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (window), 8);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (window), GTK_SIZE_ONE_TWELFTH_EM (8));
|
||||
|
||||
frame = gtk_frame_new ("Dialogs");
|
||||
gtk_container_add (GTK_CONTAINER (window), frame);
|
||||
|
||||
vbox = gtk_vbox_new (FALSE, 8);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (vbox), 8);
|
||||
vbox = gtk_vbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (8));
|
||||
gtk_container_set_border_width (GTK_CONTAINER (vbox), GTK_SIZE_ONE_TWELFTH_EM (8));
|
||||
gtk_container_add (GTK_CONTAINER (frame), vbox);
|
||||
|
||||
/* Standard message dialog */
|
||||
hbox = gtk_hbox_new (FALSE, 8);
|
||||
hbox = gtk_hbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (8));
|
||||
gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
|
||||
button = gtk_button_new_with_mnemonic ("_Message Dialog");
|
||||
g_signal_connect (button, "clicked",
|
||||
@@ -132,7 +132,7 @@ do_dialog (GtkWidget *do_widget)
|
||||
gtk_box_pack_start (GTK_BOX (vbox), gtk_hseparator_new (), FALSE, FALSE, 0);
|
||||
|
||||
/* Interactive dialog*/
|
||||
hbox = gtk_hbox_new (FALSE, 8);
|
||||
hbox = gtk_hbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (8));
|
||||
gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
|
||||
vbox2 = gtk_vbox_new (FALSE, 0);
|
||||
|
||||
@@ -143,8 +143,8 @@ do_dialog (GtkWidget *do_widget)
|
||||
gtk_box_pack_start (GTK_BOX (vbox2), button, FALSE, FALSE, 0);
|
||||
|
||||
table = gtk_table_new (2, 2, FALSE);
|
||||
gtk_table_set_row_spacings (GTK_TABLE (table), 4);
|
||||
gtk_table_set_col_spacings (GTK_TABLE (table), 4);
|
||||
gtk_table_set_row_spacings (GTK_TABLE (table), GTK_SIZE_ONE_TWELFTH_EM (4));
|
||||
gtk_table_set_col_spacings (GTK_TABLE (table), GTK_SIZE_ONE_TWELFTH_EM (4));
|
||||
gtk_box_pack_start (GTK_BOX (hbox), table, FALSE, FALSE, 0);
|
||||
|
||||
label = gtk_label_new_with_mnemonic ("_Entry 1");
|
||||
|
||||
@@ -245,10 +245,10 @@ do_drawingarea (GtkWidget *do_widget)
|
||||
|
||||
g_signal_connect (window, "destroy", G_CALLBACK (close_window), NULL);
|
||||
|
||||
gtk_container_set_border_width (GTK_CONTAINER (window), 8);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (window), GTK_SIZE_ONE_TWELFTH_EM (8));
|
||||
|
||||
vbox = gtk_vbox_new (FALSE, 8);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (vbox), 8);
|
||||
vbox = gtk_vbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (8));
|
||||
gtk_container_set_border_width (GTK_CONTAINER (vbox), GTK_SIZE_ONE_TWELFTH_EM (8));
|
||||
gtk_container_add (GTK_CONTAINER (window), vbox);
|
||||
|
||||
/*
|
||||
@@ -266,7 +266,7 @@ do_drawingarea (GtkWidget *do_widget)
|
||||
|
||||
da = gtk_drawing_area_new ();
|
||||
/* set a minimum size */
|
||||
gtk_widget_set_size_request (da, 100, 100);
|
||||
gtk_widget_set_size_request (da, GTK_SIZE_ONE_TWELFTH_EM (100), GTK_SIZE_ONE_TWELFTH_EM (100));
|
||||
|
||||
gtk_container_add (GTK_CONTAINER (frame), da);
|
||||
|
||||
@@ -288,7 +288,7 @@ do_drawingarea (GtkWidget *do_widget)
|
||||
|
||||
da = gtk_drawing_area_new ();
|
||||
/* set a minimum size */
|
||||
gtk_widget_set_size_request (da, 100, 100);
|
||||
gtk_widget_set_size_request (da, GTK_SIZE_ONE_TWELFTH_EM (100), GTK_SIZE_ONE_TWELFTH_EM (100));
|
||||
|
||||
gtk_container_add (GTK_CONTAINER (frame), da);
|
||||
|
||||
|
||||
@@ -328,11 +328,11 @@ do_editable_cells (GtkWidget *do_widget)
|
||||
gtk_window_set_screen (GTK_WINDOW (window),
|
||||
gtk_widget_get_screen (do_widget));
|
||||
gtk_window_set_title (GTK_WINDOW (window), "Shopping list");
|
||||
gtk_container_set_border_width (GTK_CONTAINER (window), 5);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (window), GTK_SIZE_ONE_TWELFTH_EM (5));
|
||||
g_signal_connect (window, "destroy",
|
||||
G_CALLBACK (gtk_widget_destroyed), &window);
|
||||
|
||||
vbox = gtk_vbox_new (FALSE, 5);
|
||||
vbox = gtk_vbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (5));
|
||||
gtk_container_add (GTK_CONTAINER (window), vbox);
|
||||
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
@@ -365,7 +365,7 @@ do_editable_cells (GtkWidget *do_widget)
|
||||
gtk_container_add (GTK_CONTAINER (sw), treeview);
|
||||
|
||||
/* some buttons */
|
||||
hbox = gtk_hbox_new (TRUE, 4);
|
||||
hbox = gtk_hbox_new (TRUE, GTK_SIZE_ONE_TWELFTH_EM (4));
|
||||
gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
|
||||
|
||||
button = gtk_button_new_with_label ("Add item");
|
||||
@@ -378,7 +378,7 @@ do_editable_cells (GtkWidget *do_widget)
|
||||
G_CALLBACK (remove_item), treeview);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0);
|
||||
|
||||
gtk_window_set_default_size (GTK_WINDOW (window), 320, 200);
|
||||
gtk_window_set_default_size (GTK_WINDOW (window), GTK_SIZE_ONE_TWELFTH_EM (320), GTK_SIZE_ONE_TWELFTH_EM (200));
|
||||
}
|
||||
|
||||
if (!GTK_WIDGET_VISIBLE (window))
|
||||
|
||||
@@ -1,65 +0,0 @@
|
||||
/* Entry/Entry Buffer
|
||||
*
|
||||
* GtkEntryBuffer provides the text content in a GtkEntry.
|
||||
*
|
||||
*/
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
static GtkWidget *window = NULL;
|
||||
|
||||
GtkWidget *
|
||||
do_entry_buffer (GtkWidget *do_widget)
|
||||
{
|
||||
GtkWidget *vbox;
|
||||
GtkWidget *label;
|
||||
GtkWidget *entry;
|
||||
GtkEntryBuffer *buffer;
|
||||
|
||||
if (!window)
|
||||
{
|
||||
window = gtk_dialog_new_with_buttons ("GtkEntryBuffer",
|
||||
GTK_WINDOW (do_widget),
|
||||
0,
|
||||
GTK_STOCK_CLOSE,
|
||||
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",
|
||||
G_CALLBACK (gtk_widget_destroyed), &window);
|
||||
|
||||
vbox = gtk_vbox_new (FALSE, 5);
|
||||
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (window)->vbox), vbox, TRUE, TRUE, 0);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (vbox), 5);
|
||||
|
||||
label = gtk_label_new (NULL);
|
||||
gtk_label_set_markup (GTK_LABEL (label), "Entries share a buffer. Typing in one is reflected in the other.");
|
||||
gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
|
||||
|
||||
/* Create a buffer */
|
||||
buffer = gtk_entry_buffer_new (NULL, 0);
|
||||
|
||||
/* Create our first entry */
|
||||
entry = gtk_entry_new_with_buffer (buffer);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), entry, FALSE, FALSE, 0);
|
||||
|
||||
/* Create the second entry */
|
||||
entry = gtk_entry_new_with_buffer (buffer);
|
||||
gtk_entry_set_visibility (GTK_ENTRY (entry), FALSE);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), entry, FALSE, FALSE, 0);
|
||||
|
||||
g_object_unref (buffer);
|
||||
}
|
||||
|
||||
if (!GTK_WIDGET_VISIBLE (window))
|
||||
gtk_widget_show_all (window);
|
||||
else
|
||||
gtk_widget_destroy (window);
|
||||
|
||||
return window;
|
||||
}
|
||||
|
||||
|
||||
@@ -58,9 +58,9 @@ do_entry_completion (GtkWidget *do_widget)
|
||||
g_signal_connect (window, "destroy",
|
||||
G_CALLBACK (gtk_widget_destroyed), &window);
|
||||
|
||||
vbox = gtk_vbox_new (FALSE, 5);
|
||||
vbox = gtk_vbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (5));
|
||||
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (window)->vbox), vbox, TRUE, TRUE, 0);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (vbox), 5);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (vbox), GTK_SIZE_ONE_TWELFTH_EM (5));
|
||||
|
||||
label = gtk_label_new (NULL);
|
||||
gtk_label_set_markup (GTK_LABEL (label), "Completion demo, try writing <b>total</b> or <b>gnome</b> for example.");
|
||||
|
||||
@@ -32,9 +32,9 @@ do_expander (GtkWidget *do_widget)
|
||||
g_signal_connect (window, "destroy",
|
||||
G_CALLBACK (gtk_widget_destroyed), &window);
|
||||
|
||||
vbox = gtk_vbox_new (FALSE, 5);
|
||||
vbox = gtk_vbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (5));
|
||||
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (window)->vbox), vbox, TRUE, TRUE, 0);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (vbox), 5);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (vbox), GTK_SIZE_ONE_TWELFTH_EM (5));
|
||||
|
||||
label = gtk_label_new ("Expander demo. Click on the triangle for details.");
|
||||
gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
|
||||
|
||||
@@ -267,7 +267,7 @@ do_hypertext (GtkWidget *do_widget)
|
||||
gtk_window_set_screen (GTK_WINDOW (window),
|
||||
gtk_widget_get_screen (do_widget));
|
||||
gtk_window_set_default_size (GTK_WINDOW (window),
|
||||
450, 450);
|
||||
GTK_SIZE_ONE_TWELFTH_EM (450), GTK_SIZE_ONE_TWELFTH_EM (450));
|
||||
|
||||
g_signal_connect (window, "destroy",
|
||||
G_CALLBACK (gtk_widget_destroyed), &window);
|
||||
|
||||
@@ -263,7 +263,7 @@ do_iconview (GtkWidget *do_widget)
|
||||
GError *error;
|
||||
|
||||
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
||||
gtk_window_set_default_size (GTK_WINDOW (window), 650, 400);
|
||||
gtk_window_set_default_size (GTK_WINDOW (window), GTK_SIZE_ONE_TWELFTH_EM (650), GTK_SIZE_ONE_TWELFTH_EM (400));
|
||||
|
||||
gtk_window_set_screen (GTK_WINDOW (window),
|
||||
gtk_widget_get_screen (do_widget));
|
||||
|
||||
@@ -332,10 +332,10 @@ do_images (GtkWidget *do_widget)
|
||||
g_signal_connect (window, "destroy",
|
||||
G_CALLBACK (cleanup_callback), NULL);
|
||||
|
||||
gtk_container_set_border_width (GTK_CONTAINER (window), 8);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (window), GTK_SIZE_ONE_TWELFTH_EM (8));
|
||||
|
||||
vbox = gtk_vbox_new (FALSE, 8);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (vbox), 8);
|
||||
vbox = gtk_vbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (8));
|
||||
gtk_container_set_border_width (GTK_CONTAINER (vbox), GTK_SIZE_ONE_TWELFTH_EM (8));
|
||||
gtk_container_add (GTK_CONTAINER (window), vbox);
|
||||
|
||||
label = gtk_label_new (NULL);
|
||||
|
||||
@@ -1,104 +0,0 @@
|
||||
/* Info bar
|
||||
*
|
||||
* Info bar widgets are used to report important messages to the user.
|
||||
*/
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
static GtkWidget *window = NULL;
|
||||
|
||||
static void
|
||||
on_bar_response (GtkInfoBar *info_bar,
|
||||
gint response_id,
|
||||
gpointer user_data)
|
||||
{
|
||||
GtkWidget *dialog;
|
||||
|
||||
dialog = gtk_message_dialog_new (GTK_WINDOW (window),
|
||||
GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
|
||||
GTK_MESSAGE_INFO,
|
||||
GTK_BUTTONS_OK,
|
||||
"You clicked a button on an info bar");
|
||||
gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog),
|
||||
"Your response has id %d", response_id);
|
||||
gtk_dialog_run (GTK_DIALOG (dialog));
|
||||
gtk_widget_destroy (dialog);
|
||||
}
|
||||
|
||||
GtkWidget *
|
||||
do_infobar (GtkWidget *do_widget)
|
||||
{
|
||||
GtkWidget *frame;
|
||||
GtkWidget *bar;
|
||||
GtkWidget *vbox;
|
||||
GtkWidget *vbox2;
|
||||
GtkWidget *label;
|
||||
|
||||
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), "Info Bars");
|
||||
|
||||
g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (window), 8);
|
||||
|
||||
vbox = gtk_vbox_new (FALSE, 0);
|
||||
gtk_container_add (GTK_CONTAINER (window), vbox);
|
||||
|
||||
bar = gtk_info_bar_new ();
|
||||
gtk_box_pack_start (GTK_BOX (vbox), bar, FALSE, FALSE, 0);
|
||||
gtk_info_bar_set_message_type (GTK_INFO_BAR (bar), GTK_MESSAGE_INFO);
|
||||
label = gtk_label_new ("This is an info bar with message type GTK_MESSAGE_INFO");
|
||||
gtk_box_pack_start (GTK_BOX (gtk_info_bar_get_content_area (GTK_INFO_BAR (bar))), label, FALSE, FALSE, 0);
|
||||
|
||||
bar = gtk_info_bar_new ();
|
||||
gtk_box_pack_start (GTK_BOX (vbox), bar, FALSE, FALSE, 0);
|
||||
gtk_info_bar_set_message_type (GTK_INFO_BAR (bar), GTK_MESSAGE_WARNING);
|
||||
label = gtk_label_new ("This is an info bar with message type GTK_MESSAGE_WARNING");
|
||||
gtk_box_pack_start (GTK_BOX (gtk_info_bar_get_content_area (GTK_INFO_BAR (bar))), label, FALSE, FALSE, 0);
|
||||
|
||||
bar = gtk_info_bar_new_with_buttons (GTK_STOCK_OK, GTK_RESPONSE_OK, NULL);
|
||||
g_signal_connect (bar, "response", G_CALLBACK (on_bar_response), window);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), bar, FALSE, FALSE, 0);
|
||||
gtk_info_bar_set_message_type (GTK_INFO_BAR (bar), GTK_MESSAGE_QUESTION);
|
||||
label = gtk_label_new ("This is an info bar with message type GTK_MESSAGE_QUESTION");
|
||||
gtk_box_pack_start (GTK_BOX (gtk_info_bar_get_content_area (GTK_INFO_BAR (bar))), label, FALSE, FALSE, 0);
|
||||
|
||||
bar = gtk_info_bar_new ();
|
||||
gtk_box_pack_start (GTK_BOX (vbox), bar, FALSE, FALSE, 0);
|
||||
gtk_info_bar_set_message_type (GTK_INFO_BAR (bar), GTK_MESSAGE_ERROR);
|
||||
label = gtk_label_new ("This is an info bar with message type GTK_MESSAGE_ERROR");
|
||||
gtk_box_pack_start (GTK_BOX (gtk_info_bar_get_content_area (GTK_INFO_BAR (bar))), label, FALSE, FALSE, 0);
|
||||
|
||||
bar = gtk_info_bar_new ();
|
||||
gtk_box_pack_start (GTK_BOX (vbox), bar, FALSE, FALSE, 0);
|
||||
gtk_info_bar_set_message_type (GTK_INFO_BAR (bar), GTK_MESSAGE_OTHER);
|
||||
label = gtk_label_new ("This is an info bar with message type GTK_MESSAGE_OTHER");
|
||||
gtk_box_pack_start (GTK_BOX (gtk_info_bar_get_content_area (GTK_INFO_BAR (bar))), label, FALSE, FALSE, 0);
|
||||
|
||||
frame = gtk_frame_new ("Info bars");
|
||||
gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 8);
|
||||
|
||||
vbox2 = gtk_vbox_new (FALSE, 8);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (vbox2), 8);
|
||||
gtk_container_add (GTK_CONTAINER (frame), vbox2);
|
||||
|
||||
/* Standard message dialog */
|
||||
label = gtk_label_new ("An example of different info bars");
|
||||
gtk_box_pack_start (GTK_BOX (vbox2), label, FALSE, FALSE, 0);
|
||||
}
|
||||
|
||||
if (!GTK_WIDGET_VISIBLE (window))
|
||||
{
|
||||
gtk_widget_show_all (window);
|
||||
}
|
||||
else
|
||||
{
|
||||
gtk_widget_destroy (window);
|
||||
window = NULL;
|
||||
}
|
||||
|
||||
return window;
|
||||
}
|
||||
@@ -47,6 +47,7 @@ GtkWidget *
|
||||
do_links (GtkWidget *do_widget)
|
||||
{
|
||||
static GtkWidget *window = NULL;
|
||||
GtkWidget *box;
|
||||
GtkWidget *label;
|
||||
|
||||
if (!window)
|
||||
|
||||
@@ -173,9 +173,9 @@ do_list_store (GtkWidget *do_widget)
|
||||
|
||||
g_signal_connect (window, "destroy",
|
||||
G_CALLBACK (gtk_widget_destroyed), &window);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (window), 8);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (window), GTK_SIZE_ONE_TWELFTH_EM (8));
|
||||
|
||||
vbox = gtk_vbox_new (FALSE, 8);
|
||||
vbox = gtk_vbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (8));
|
||||
gtk_container_add (GTK_CONTAINER (window), vbox);
|
||||
|
||||
label = gtk_label_new ("This is the bug list (note: not based on real data, it would be nice to have a nice ODBC interface to bugzilla or so, though).");
|
||||
@@ -206,7 +206,7 @@ do_list_store (GtkWidget *do_widget)
|
||||
add_columns (GTK_TREE_VIEW (treeview));
|
||||
|
||||
/* finish & show */
|
||||
gtk_window_set_default_size (GTK_WINDOW (window), 280, 250);
|
||||
gtk_window_set_default_size (GTK_WINDOW (window), GTK_SIZE_ONE_TWELFTH_EM (280), GTK_SIZE_ONE_TWELFTH_EM (250));
|
||||
}
|
||||
|
||||
if (!GTK_WIDGET_VISIBLE (window))
|
||||
|
||||
@@ -764,9 +764,9 @@ create_text (GtkTextBuffer **buffer,
|
||||
gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (text_view),
|
||||
GTK_WRAP_WORD);
|
||||
gtk_text_view_set_pixels_above_lines (GTK_TEXT_VIEW (text_view),
|
||||
2);
|
||||
GTK_SIZE_ONE_TWELFTH_EM (2));
|
||||
gtk_text_view_set_pixels_below_lines (GTK_TEXT_VIEW (text_view),
|
||||
2);
|
||||
GTK_SIZE_ONE_TWELFTH_EM (2));
|
||||
}
|
||||
|
||||
return scrolled_window;
|
||||
@@ -792,7 +792,7 @@ create_tree (void)
|
||||
|
||||
gtk_tree_selection_set_mode (GTK_TREE_SELECTION (selection),
|
||||
GTK_SELECTION_BROWSE);
|
||||
gtk_widget_set_size_request (tree_view, 200, -1);
|
||||
gtk_widget_set_size_request (tree_view, GTK_SIZE_ONE_TWELFTH_EM (200), -1);
|
||||
|
||||
/* this code only supports 1 level of children. If we
|
||||
* want more we probably have to use a recursing function.
|
||||
@@ -946,6 +946,7 @@ main (int argc, char **argv)
|
||||
}
|
||||
/* -- End of hack -- */
|
||||
|
||||
gtk_enable_resolution_independence ();
|
||||
gtk_init (&argc, &argv);
|
||||
|
||||
setup_default_icon ();
|
||||
@@ -969,7 +970,7 @@ main (int argc, char **argv)
|
||||
gtk_label_new_with_mnemonic ("_Info"));
|
||||
|
||||
tag = gtk_text_buffer_create_tag (info_buffer, "title",
|
||||
"font", "Sans 18",
|
||||
"scale", PANGO_SCALE_XX_LARGE,
|
||||
NULL);
|
||||
g_object_unref (info_buffer);
|
||||
|
||||
@@ -999,9 +1000,9 @@ main (int argc, char **argv)
|
||||
"weight", PANGO_WEIGHT_BOLD,
|
||||
"foreground", "DarkGoldenrod4",
|
||||
NULL);
|
||||
g_object_unref (source_buffer);
|
||||
g_object_unref (source_buffer);
|
||||
|
||||
gtk_window_set_default_size (GTK_WINDOW (window), 600, 400);
|
||||
gtk_window_set_default_size (GTK_WINDOW (window), GTK_SIZE_ONE_TWELFTH_EM (600), GTK_SIZE_ONE_TWELFTH_EM (400));
|
||||
gtk_widget_show_all (window);
|
||||
|
||||
|
||||
|
||||
@@ -179,8 +179,8 @@ do_menus (GtkWidget *do_widget)
|
||||
gtk_menu_shell_append (GTK_MENU_SHELL (menubar), menuitem);
|
||||
gtk_widget_show (menuitem);
|
||||
|
||||
box2 = gtk_vbox_new (FALSE, 10);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
|
||||
box2 = gtk_vbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (10));
|
||||
gtk_container_set_border_width (GTK_CONTAINER (box2), GTK_SIZE_ONE_TWELFTH_EM (10));
|
||||
gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, TRUE, 0);
|
||||
gtk_widget_show (box2);
|
||||
|
||||
|
||||
@@ -65,7 +65,7 @@ create_pane_options (GtkPaned *paned,
|
||||
GtkWidget *check_button;
|
||||
|
||||
frame = gtk_frame_new (frame_label);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (frame), 4);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (frame), GTK_SIZE_ONE_TWELFTH_EM (4));
|
||||
|
||||
table = gtk_table_new (3, 2, TRUE);
|
||||
gtk_container_add (GTK_CONTAINER (frame), table);
|
||||
@@ -138,14 +138,14 @@ do_panes (GtkWidget *do_widget)
|
||||
|
||||
vpaned = gtk_vpaned_new ();
|
||||
gtk_box_pack_start (GTK_BOX (vbox), vpaned, TRUE, TRUE, 0);
|
||||
gtk_container_set_border_width (GTK_CONTAINER(vpaned), 5);
|
||||
gtk_container_set_border_width (GTK_CONTAINER(vpaned), GTK_SIZE_ONE_TWELFTH_EM (5));
|
||||
|
||||
hpaned = gtk_hpaned_new ();
|
||||
gtk_paned_add1 (GTK_PANED (vpaned), hpaned);
|
||||
|
||||
frame = gtk_frame_new (NULL);
|
||||
gtk_frame_set_shadow_type (GTK_FRAME(frame), GTK_SHADOW_IN);
|
||||
gtk_widget_set_size_request (frame, 60, 60);
|
||||
gtk_widget_set_size_request (frame, GTK_SIZE_ONE_TWELFTH_EM (60), GTK_SIZE_ONE_TWELFTH_EM (60));
|
||||
gtk_paned_add1 (GTK_PANED (hpaned), frame);
|
||||
|
||||
button = gtk_button_new_with_mnemonic ("_Hi there");
|
||||
@@ -153,12 +153,12 @@ do_panes (GtkWidget *do_widget)
|
||||
|
||||
frame = gtk_frame_new (NULL);
|
||||
gtk_frame_set_shadow_type (GTK_FRAME(frame), GTK_SHADOW_IN);
|
||||
gtk_widget_set_size_request (frame, 80, 60);
|
||||
gtk_widget_set_size_request (frame, GTK_SIZE_ONE_TWELFTH_EM (80), GTK_SIZE_ONE_TWELFTH_EM (60));
|
||||
gtk_paned_add2 (GTK_PANED (hpaned), frame);
|
||||
|
||||
frame = gtk_frame_new (NULL);
|
||||
gtk_frame_set_shadow_type (GTK_FRAME(frame), GTK_SHADOW_IN);
|
||||
gtk_widget_set_size_request (frame, 60, 80);
|
||||
gtk_widget_set_size_request (frame, GTK_SIZE_ONE_TWELFTH_EM (60), GTK_SIZE_ONE_TWELFTH_EM (80));
|
||||
gtk_paned_add2 (GTK_PANED (vpaned), frame);
|
||||
|
||||
/* Now create toggle buttons to control sizing */
|
||||
|
||||
@@ -18,19 +18,20 @@ 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");
|
||||
gtk_window_set_resizable (GTK_WINDOW (window), FALSE);
|
||||
|
||||
g_signal_connect (window, "destroy",
|
||||
G_CALLBACK (gtk_widget_destroyed),
|
||||
&window);
|
||||
|
||||
gtk_container_set_border_width (GTK_CONTAINER (window), 10);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (window), GTK_SIZE_ONE_TWELFTH_EM (10));
|
||||
|
||||
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_table_set_col_spacing (GTK_TABLE (table), 0, GTK_SIZE_ONE_TWELFTH_EM (10));
|
||||
gtk_table_set_row_spacings (GTK_TABLE (table), GTK_SIZE_ONE_TWELFTH_EM (3));
|
||||
gtk_container_add (GTK_CONTAINER (window), table);
|
||||
|
||||
gtk_container_set_border_width (GTK_CONTAINER (table), 10);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (table), GTK_SIZE_ONE_TWELFTH_EM (10));
|
||||
|
||||
label = gtk_label_new ("Color:");
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||
|
||||
+22
-42
@@ -13,19 +13,19 @@
|
||||
#define HEADER_HEIGHT (10*72/25.4)
|
||||
#define HEADER_GAP (3*72/25.4)
|
||||
|
||||
typedef struct
|
||||
typedef struct
|
||||
{
|
||||
gchar *filename;
|
||||
gdouble font_size;
|
||||
|
||||
gint lines_per_page;
|
||||
gint lines_per_page;
|
||||
gchar **lines;
|
||||
gint num_lines;
|
||||
gint num_pages;
|
||||
} PrintData;
|
||||
|
||||
static void
|
||||
begin_print (GtkPrintOperation *operation,
|
||||
begin_print (GtkPrintOperation *operation,
|
||||
GtkPrintContext *context,
|
||||
gpointer user_data)
|
||||
{
|
||||
@@ -35,9 +35,9 @@ begin_print (GtkPrintOperation *operation,
|
||||
double height;
|
||||
|
||||
height = gtk_print_context_get_height (context) - HEADER_HEIGHT - HEADER_GAP;
|
||||
|
||||
|
||||
data->lines_per_page = floor (height / data->font_size);
|
||||
|
||||
|
||||
g_file_get_contents (data->filename, &contents, NULL, NULL);
|
||||
|
||||
data->lines = g_strsplit (contents, "\n", 0);
|
||||
@@ -46,7 +46,7 @@ begin_print (GtkPrintOperation *operation,
|
||||
i = 0;
|
||||
while (data->lines[i] != NULL)
|
||||
i++;
|
||||
|
||||
|
||||
data->num_lines = i;
|
||||
data->num_pages = (data->num_lines - 1) / data->lines_per_page + 1;
|
||||
|
||||
@@ -72,10 +72,10 @@ draw_page (GtkPrintOperation *operation,
|
||||
width = gtk_print_context_get_width (context);
|
||||
|
||||
cairo_rectangle (cr, 0, 0, width, HEADER_HEIGHT);
|
||||
|
||||
|
||||
cairo_set_source_rgb (cr, 0.8, 0.8, 0.8);
|
||||
cairo_fill_preserve (cr);
|
||||
|
||||
|
||||
cairo_set_source_rgb (cr, 0, 0, 0);
|
||||
cairo_set_line_width (cr, 1);
|
||||
cairo_stroke (cr);
|
||||
@@ -107,19 +107,19 @@ draw_page (GtkPrintOperation *operation,
|
||||
pango_layout_get_pixel_size (layout, &text_width, &text_height);
|
||||
cairo_move_to (cr, width - text_width - 4, (HEADER_HEIGHT - text_height) / 2);
|
||||
pango_cairo_show_layout (cr, layout);
|
||||
|
||||
|
||||
g_object_unref (layout);
|
||||
|
||||
|
||||
layout = gtk_print_context_create_pango_layout (context);
|
||||
|
||||
|
||||
desc = pango_font_description_from_string ("monospace");
|
||||
pango_font_description_set_size (desc, data->font_size * PANGO_SCALE);
|
||||
pango_layout_set_font_description (layout, desc);
|
||||
pango_font_description_free (desc);
|
||||
|
||||
|
||||
cairo_move_to (cr, 0, HEADER_HEIGHT + HEADER_GAP);
|
||||
line = page_nr * data->lines_per_page;
|
||||
for (i = 0; i < data->lines_per_page && line < data->num_lines; i++)
|
||||
for (i = 0; i < data->lines_per_page && line < data->num_lines; i++)
|
||||
{
|
||||
pango_layout_set_text (layout, data->lines[line], -1);
|
||||
pango_cairo_show_layout (cr, layout);
|
||||
@@ -131,7 +131,7 @@ draw_page (GtkPrintOperation *operation,
|
||||
}
|
||||
|
||||
static void
|
||||
end_print (GtkPrintOperation *operation,
|
||||
end_print (GtkPrintOperation *operation,
|
||||
GtkPrintContext *context,
|
||||
gpointer user_data)
|
||||
{
|
||||
@@ -147,9 +147,7 @@ GtkWidget *
|
||||
do_printing (GtkWidget *do_widget)
|
||||
{
|
||||
GtkPrintOperation *operation;
|
||||
GtkPrintSettings *settings;
|
||||
PrintData *data;
|
||||
gchar *uri, *dir, *ext;
|
||||
GError *error = NULL;
|
||||
|
||||
operation = gtk_print_operation_new ();
|
||||
@@ -157,55 +155,37 @@ do_printing (GtkWidget *do_widget)
|
||||
data->filename = demo_find_file ("printing.c", NULL);
|
||||
data->font_size = 12.0;
|
||||
|
||||
g_signal_connect (G_OBJECT (operation), "begin-print",
|
||||
g_signal_connect (G_OBJECT (operation), "begin-print",
|
||||
G_CALLBACK (begin_print), data);
|
||||
g_signal_connect (G_OBJECT (operation), "draw-page",
|
||||
g_signal_connect (G_OBJECT (operation), "draw-page",
|
||||
G_CALLBACK (draw_page), data);
|
||||
g_signal_connect (G_OBJECT (operation), "end-print",
|
||||
g_signal_connect (G_OBJECT (operation), "end-print",
|
||||
G_CALLBACK (end_print), data);
|
||||
|
||||
gtk_print_operation_set_use_full_page (operation, FALSE);
|
||||
gtk_print_operation_set_unit (operation, GTK_UNIT_POINTS);
|
||||
gtk_print_operation_set_embed_page_setup (operation, TRUE);
|
||||
|
||||
settings = gtk_print_settings_new ();
|
||||
dir = g_get_user_special_dir (G_USER_DIRECTORY_DOCUMENTS);
|
||||
if (dir == NULL)
|
||||
dir = g_get_home_dir ();
|
||||
if (g_strcmp0 (gtk_print_settings_get (settings, GTK_PRINT_SETTINGS_OUTPUT_FILE_FORMAT), "ps") == 0)
|
||||
ext = ".ps";
|
||||
else if (g_strcmp0 (gtk_print_settings_get (settings, GTK_PRINT_SETTINGS_OUTPUT_FILE_FORMAT), "svg") == 0)
|
||||
ext = ".svg";
|
||||
else
|
||||
ext = ".pdf";
|
||||
|
||||
uri = g_strconcat ("file://", dir, "/", "gtk-demo", ext, NULL);
|
||||
gtk_print_settings_set (settings, GTK_PRINT_SETTINGS_OUTPUT_URI, uri);
|
||||
gtk_print_operation_set_print_settings (operation, settings);
|
||||
|
||||
gtk_print_operation_run (operation, GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG, GTK_WINDOW (do_widget), &error);
|
||||
|
||||
g_object_unref (operation);
|
||||
g_object_unref (settings);
|
||||
g_free (uri);
|
||||
|
||||
if (error)
|
||||
{
|
||||
GtkWidget *dialog;
|
||||
|
||||
|
||||
dialog = gtk_message_dialog_new (GTK_WINDOW (do_widget),
|
||||
GTK_DIALOG_DESTROY_WITH_PARENT,
|
||||
GTK_MESSAGE_ERROR,
|
||||
GTK_BUTTONS_CLOSE,
|
||||
"%s", error->message);
|
||||
g_error_free (error);
|
||||
|
||||
|
||||
g_signal_connect (dialog, "response",
|
||||
G_CALLBACK (gtk_widget_destroy), NULL);
|
||||
|
||||
gtk_widget_show (dialog);
|
||||
|
||||
gtk_widget_show (dialog);
|
||||
}
|
||||
|
||||
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,239 @@
|
||||
/* Resolution Independence
|
||||
*
|
||||
* This demonstates resolution independence features available since
|
||||
* version 2.14 of GTK+. Use the slider to change the effective DPI
|
||||
* per monitor. Note that the changes will only affect windows from
|
||||
* this process.
|
||||
*/
|
||||
#include <gtk/gtk.h>
|
||||
#include "config.h"
|
||||
#include "demo-common.h"
|
||||
|
||||
static GtkWidget *window = NULL;
|
||||
static GtkWindowGroup *window_group = NULL;
|
||||
static GtkWidget *hscale;
|
||||
static GtkWidget *label;
|
||||
static GtkWidget *button;
|
||||
static gdouble button_dpi;
|
||||
|
||||
#define INCHES_TO_MM 25.4
|
||||
|
||||
#define MIN_DPI 24.0
|
||||
#define MAX_DPI 480.0
|
||||
#define STEP_DPI 1.0
|
||||
|
||||
static void
|
||||
update (void)
|
||||
{
|
||||
GdkScreen *screen;
|
||||
gint monitor_num;
|
||||
char *plug_name;
|
||||
char *s;
|
||||
gdouble dpi;
|
||||
char *font_name;
|
||||
GtkSettings *settings;
|
||||
int width_mm;
|
||||
int height_mm;
|
||||
GdkRectangle geometry;
|
||||
|
||||
plug_name = NULL;
|
||||
font_name = NULL;
|
||||
width_mm = -1;
|
||||
height_mm = -1;
|
||||
geometry.x = -1;
|
||||
geometry.y = -1;
|
||||
geometry.width = -1;
|
||||
geometry.height = -1;
|
||||
|
||||
screen = gtk_window_get_screen (GTK_WINDOW (window));
|
||||
monitor_num = gtk_widget_get_monitor_num (window);
|
||||
if (screen != NULL && monitor_num >= 0)
|
||||
{
|
||||
plug_name = gdk_screen_get_monitor_plug_name (screen, monitor_num);
|
||||
width_mm = gdk_screen_get_monitor_width_mm (screen, monitor_num);
|
||||
height_mm = gdk_screen_get_monitor_height_mm (screen, monitor_num);
|
||||
gdk_screen_get_monitor_geometry (screen, monitor_num, &geometry);
|
||||
}
|
||||
if (screen != NULL)
|
||||
settings = gtk_settings_get_for_screen (screen);
|
||||
else
|
||||
settings = gtk_settings_get_default ();
|
||||
g_object_get (settings, "gtk-font-name", &font_name, NULL);
|
||||
|
||||
s = g_strdup_printf ("Monitor %d (%s) @ %dx%d+%d+%d\n"
|
||||
"%d mm x %d mm\n"
|
||||
"DPI: %.1f x %.1f\n"
|
||||
"Font \"%s\"\n"
|
||||
"1 em -> %g pixels\n"
|
||||
"1 mm -> %g pixels",
|
||||
monitor_num,
|
||||
plug_name != NULL ? plug_name : "unknown name",
|
||||
geometry.width, geometry.height, geometry.x, geometry.y,
|
||||
width_mm, height_mm,
|
||||
INCHES_TO_MM * geometry.width / width_mm,
|
||||
INCHES_TO_MM * geometry.height / height_mm,
|
||||
font_name,
|
||||
gtk_size_to_pixel_double (screen, monitor_num, gtk_size_em (1.0)),
|
||||
gtk_size_to_pixel_double (screen, monitor_num, gtk_size_mm (1.0)));
|
||||
gtk_label_set_text (GTK_LABEL (label), s);
|
||||
g_free (s);
|
||||
|
||||
button_dpi = MIN (INCHES_TO_MM * geometry.width / width_mm,
|
||||
INCHES_TO_MM * geometry.height / height_mm);
|
||||
s = g_strdup_printf ("Set DPI to %.1f", button_dpi);
|
||||
gtk_button_set_label (GTK_BUTTON (button), s);
|
||||
g_free (s);
|
||||
|
||||
dpi = -1;
|
||||
if (screen != NULL)
|
||||
{
|
||||
dpi = gdk_screen_get_resolution_for_monitor (screen, monitor_num);
|
||||
gtk_range_set_value (GTK_RANGE (hscale), dpi);
|
||||
}
|
||||
|
||||
g_free (plug_name);
|
||||
g_free (font_name);
|
||||
}
|
||||
|
||||
static void
|
||||
window_mapped (GtkWidget *widget, gpointer user_data)
|
||||
{
|
||||
update ();
|
||||
}
|
||||
|
||||
static void
|
||||
unit_changed (GtkWidget *widget, gpointer user_data)
|
||||
{
|
||||
update ();
|
||||
}
|
||||
|
||||
static void
|
||||
monitor_num_notify (GtkWindow *window, GParamSpec *psec, gpointer user_data)
|
||||
{
|
||||
g_debug ("notify::monitor-num");
|
||||
update ();
|
||||
}
|
||||
|
||||
static void
|
||||
update_value (void)
|
||||
{
|
||||
gdouble slider_value;
|
||||
|
||||
slider_value = gtk_range_get_value (GTK_RANGE (hscale));
|
||||
if (slider_value >= MIN_DPI && slider_value <= MAX_DPI)
|
||||
{
|
||||
GdkScreen *screen;
|
||||
gint monitor_num;
|
||||
|
||||
screen = gtk_window_get_screen (GTK_WINDOW (window));
|
||||
monitor_num = gtk_widget_get_monitor_num (window);
|
||||
if (screen != NULL && monitor_num >= 0)
|
||||
{
|
||||
gdk_screen_set_resolution_for_monitor (screen, monitor_num, slider_value);
|
||||
g_signal_emit_by_name (screen, "monitors-changed");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static gboolean is_pressed = FALSE;
|
||||
|
||||
static gboolean
|
||||
hscale_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data)
|
||||
{
|
||||
is_pressed = TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
hscale_button_release_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data)
|
||||
{
|
||||
is_pressed = FALSE;
|
||||
update_value ();
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void
|
||||
hscale_value_changed (GtkRange *range, gpointer user_data)
|
||||
{
|
||||
if (!is_pressed)
|
||||
update_value ();
|
||||
}
|
||||
|
||||
static char *
|
||||
hscale_format_value (GtkScale *scale, gdouble value, gpointer user_data)
|
||||
{
|
||||
return g_strdup_printf ("%g DPI", value);
|
||||
}
|
||||
|
||||
static void
|
||||
dpi_button_clicked (GtkButton *button, gpointer user_data)
|
||||
{
|
||||
gtk_range_set_value (GTK_RANGE (hscale), button_dpi);
|
||||
}
|
||||
|
||||
GtkWidget *
|
||||
do_resolution_independence (GtkWidget *do_widget)
|
||||
{
|
||||
GtkWidget *vbox;
|
||||
|
||||
if (window != NULL)
|
||||
goto have_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), "Resolution Independence");
|
||||
gtk_window_set_icon_name (GTK_WINDOW (window), "gtk-fullscreen");
|
||||
|
||||
g_signal_connect (G_OBJECT (window), "map", G_CALLBACK (window_mapped), NULL);
|
||||
g_signal_connect (G_OBJECT (window), "notify::monitor-num", G_CALLBACK (monitor_num_notify), NULL);
|
||||
g_signal_connect (G_OBJECT (window), "unit-changed", G_CALLBACK (unit_changed), NULL);
|
||||
|
||||
g_signal_connect (window, "destroy",
|
||||
G_CALLBACK (gtk_widget_destroyed),
|
||||
&window);
|
||||
|
||||
vbox = gtk_vbox_new (FALSE, gtk_size_em (1));
|
||||
|
||||
label = gtk_label_new (NULL);
|
||||
gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_CENTER);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
|
||||
|
||||
hscale = gtk_hscale_new_with_range (MIN_DPI, MAX_DPI, STEP_DPI);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), hscale, FALSE, FALSE, 0);
|
||||
|
||||
g_signal_connect (G_OBJECT (hscale), "value-changed", G_CALLBACK (hscale_value_changed), NULL);
|
||||
g_signal_connect (G_OBJECT (hscale), "button-press-event", G_CALLBACK (hscale_button_press_event), NULL);
|
||||
g_signal_connect (G_OBJECT (hscale), "button-release-event", G_CALLBACK (hscale_button_release_event), NULL);
|
||||
g_signal_connect (G_OBJECT (hscale), "format-value", G_CALLBACK (hscale_format_value), NULL);
|
||||
|
||||
gtk_container_add (GTK_CONTAINER (window), vbox);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (window), gtk_size_em (1));
|
||||
gtk_widget_set_size_request (window, GTK_SIZE_ONE_TWELFTH_EM (500), -1);
|
||||
gtk_window_set_resizable (GTK_WINDOW (window), FALSE);
|
||||
|
||||
button = gtk_button_new ();
|
||||
g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (dpi_button_clicked), NULL);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0);
|
||||
|
||||
/* avoid dialogs (e.g. printing) grabbing focus from us */
|
||||
if (window_group == NULL)
|
||||
window_group = gtk_window_group_new ();
|
||||
gtk_window_group_add_window (window_group, GTK_WINDOW (window));
|
||||
|
||||
/* make sure we're on top */
|
||||
gtk_window_set_keep_above (GTK_WINDOW (window), TRUE);
|
||||
|
||||
have_window:
|
||||
|
||||
if (!GTK_WIDGET_VISIBLE (window))
|
||||
{
|
||||
gtk_widget_show_all (window);
|
||||
}
|
||||
else
|
||||
{
|
||||
gtk_widget_destroy (window);
|
||||
window = NULL;
|
||||
}
|
||||
|
||||
return window;
|
||||
}
|
||||
@@ -189,7 +189,8 @@ do_rotated_text (GtkWidget *do_widget)
|
||||
gtk_window_set_screen (GTK_WINDOW (window),
|
||||
gtk_widget_get_screen (do_widget));
|
||||
gtk_window_set_title (GTK_WINDOW (window), "Rotated Text");
|
||||
gtk_window_set_default_size (GTK_WINDOW (window), 4 * RADIUS, 2 * RADIUS);
|
||||
gtk_window_set_default_size (GTK_WINDOW (window),
|
||||
gtk_size_em ((4 * RADIUS)), gtk_size_em ((4 * RADIUS)));
|
||||
g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window);
|
||||
|
||||
box = gtk_hbox_new (TRUE, 0);
|
||||
@@ -207,19 +208,18 @@ do_rotated_text (GtkWidget *do_widget)
|
||||
G_CALLBACK (rotated_text_expose_event), NULL);
|
||||
|
||||
/* And a label */
|
||||
|
||||
label = gtk_label_new (text);
|
||||
gtk_container_add (GTK_CONTAINER (box), label);
|
||||
|
||||
gtk_label_set_angle (GTK_LABEL (label), 45);
|
||||
gtk_label_set_angle (label, 45);
|
||||
|
||||
/* Set up fancy stuff on the label */
|
||||
layout = gtk_label_get_layout (GTK_LABEL (label));
|
||||
layout = gtk_label_get_layout (label);
|
||||
pango_cairo_context_set_shape_renderer (pango_layout_get_context (layout),
|
||||
fancy_shape_renderer,
|
||||
NULL, NULL);
|
||||
attrs = create_fancy_attr_list_for_layout (layout);
|
||||
gtk_label_set_attributes (GTK_LABEL (label), attrs);
|
||||
gtk_label_set_attributes (label, attrs);
|
||||
pango_attr_list_unref (attrs);
|
||||
}
|
||||
|
||||
|
||||
@@ -115,9 +115,9 @@ do_sizegroup (GtkWidget *do_widget)
|
||||
g_signal_connect (window, "destroy",
|
||||
G_CALLBACK (gtk_widget_destroyed), &window);
|
||||
|
||||
vbox = gtk_vbox_new (FALSE, 5);
|
||||
vbox = gtk_vbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (5));
|
||||
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (window)->vbox), vbox, TRUE, TRUE, 0);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (vbox), 5);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (vbox), GTK_SIZE_ONE_TWELFTH_EM (5));
|
||||
|
||||
size_group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
|
||||
|
||||
@@ -127,9 +127,9 @@ do_sizegroup (GtkWidget *do_widget)
|
||||
gtk_box_pack_start (GTK_BOX (vbox), frame, TRUE, TRUE, 0);
|
||||
|
||||
table = gtk_table_new (2, 2, FALSE);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (table), 5);
|
||||
gtk_table_set_row_spacings (GTK_TABLE (table), 5);
|
||||
gtk_table_set_col_spacings (GTK_TABLE (table), 10);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (table), GTK_SIZE_ONE_TWELFTH_EM (5));
|
||||
gtk_table_set_row_spacings (GTK_TABLE (table), GTK_SIZE_ONE_TWELFTH_EM (5));
|
||||
gtk_table_set_col_spacings (GTK_TABLE (table), GTK_SIZE_ONE_TWELFTH_EM (10));
|
||||
gtk_container_add (GTK_CONTAINER (frame), table);
|
||||
|
||||
add_row (GTK_TABLE (table), 0, size_group, "_Foreground", color_options);
|
||||
@@ -141,9 +141,9 @@ do_sizegroup (GtkWidget *do_widget)
|
||||
gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0);
|
||||
|
||||
table = gtk_table_new (2, 2, FALSE);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (table), 5);
|
||||
gtk_table_set_row_spacings (GTK_TABLE (table), 5);
|
||||
gtk_table_set_col_spacings (GTK_TABLE (table), 10);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (table), GTK_SIZE_ONE_TWELFTH_EM (5));
|
||||
gtk_table_set_row_spacings (GTK_TABLE (table), GTK_SIZE_ONE_TWELFTH_EM (5));
|
||||
gtk_table_set_col_spacings (GTK_TABLE (table), GTK_SIZE_ONE_TWELFTH_EM (10));
|
||||
gtk_container_add (GTK_CONTAINER (frame), table);
|
||||
|
||||
add_row (GTK_TABLE (table), 0, size_group, "_Dashing", dash_options);
|
||||
|
||||
@@ -420,12 +420,12 @@ do_stock_browser (GtkWidget *do_widget)
|
||||
gtk_window_set_screen (GTK_WINDOW (window),
|
||||
gtk_widget_get_screen (do_widget));
|
||||
gtk_window_set_title (GTK_WINDOW (window), "Stock Icons and Items");
|
||||
gtk_window_set_default_size (GTK_WINDOW (window), -1, 500);
|
||||
gtk_window_set_default_size (GTK_WINDOW (window), -1, GTK_SIZE_ONE_TWELFTH_EM (500));
|
||||
|
||||
g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (window), 8);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (window), GTK_SIZE_ONE_TWELFTH_EM (8));
|
||||
|
||||
hbox = gtk_hbox_new (FALSE, 8);
|
||||
hbox = gtk_hbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (8));
|
||||
gtk_container_add (GTK_CONTAINER (window), hbox);
|
||||
|
||||
sw = gtk_scrolled_window_new (NULL, NULL);
|
||||
@@ -494,8 +494,8 @@ do_stock_browser (GtkWidget *do_widget)
|
||||
frame = gtk_frame_new ("Selected Item");
|
||||
gtk_container_add (GTK_CONTAINER (align), frame);
|
||||
|
||||
vbox = gtk_vbox_new (FALSE, 8);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (vbox), 4);
|
||||
vbox = gtk_vbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (8));
|
||||
gtk_container_set_border_width (GTK_CONTAINER (vbox), GTK_SIZE_ONE_TWELFTH_EM (4));
|
||||
gtk_container_add (GTK_CONTAINER (frame), vbox);
|
||||
|
||||
display = g_new (StockItemDisplay, 1);
|
||||
|
||||
@@ -182,9 +182,9 @@ do_textscroll (GtkWidget *do_widget)
|
||||
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
||||
g_signal_connect (window, "destroy",
|
||||
G_CALLBACK (gtk_widget_destroyed), &window);
|
||||
gtk_window_set_default_size (GTK_WINDOW (window), 600, 400);
|
||||
gtk_window_set_default_size (GTK_WINDOW (window), GTK_SIZE_ONE_TWELFTH_EM (600), GTK_SIZE_ONE_TWELFTH_EM (400));
|
||||
|
||||
hbox = gtk_hbox_new (TRUE, 6);
|
||||
hbox = gtk_hbox_new (TRUE, GTK_SIZE_ONE_TWELFTH_EM (6));
|
||||
gtk_container_add (GTK_CONTAINER (window), hbox);
|
||||
|
||||
create_text_view (hbox, TRUE);
|
||||
|
||||
+13
-10
@@ -114,7 +114,7 @@ create_tags (GtkTextBuffer *buffer)
|
||||
"justification", GTK_JUSTIFY_RIGHT, NULL);
|
||||
|
||||
gtk_text_buffer_create_tag (buffer, "wide_margins",
|
||||
"left_margin", 50, "right_margin", 50,
|
||||
"left_margin", GTK_SIZE_ONE_TWELFTH_EM (50), "right_margin", GTK_SIZE_ONE_TWELFTH_EM (50),
|
||||
NULL);
|
||||
|
||||
gtk_text_buffer_create_tag (buffer, "strikethrough",
|
||||
@@ -139,9 +139,9 @@ create_tags (GtkTextBuffer *buffer)
|
||||
gtk_text_buffer_create_tag (buffer, "rtl_quote",
|
||||
"wrap_mode", GTK_WRAP_WORD,
|
||||
"direction", GTK_TEXT_DIR_RTL,
|
||||
"indent", 30,
|
||||
"left_margin", 20,
|
||||
"right_margin", 20,
|
||||
"indent", GTK_SIZE_ONE_TWELFTH_EM (30),
|
||||
"left_margin", GTK_SIZE_ONE_TWELFTH_EM (20),
|
||||
"right_margin", GTK_SIZE_ONE_TWELFTH_EM (20),
|
||||
NULL);
|
||||
}
|
||||
|
||||
@@ -173,7 +173,10 @@ insert_text (GtkTextBuffer *buffer)
|
||||
exit (1);
|
||||
}
|
||||
|
||||
scaled = gdk_pixbuf_scale_simple (pixbuf, 32, 32, GDK_INTERP_BILINEAR);
|
||||
scaled = gdk_pixbuf_scale_simple (pixbuf,
|
||||
gtk_size_to_pixel (NULL, 0, GTK_SIZE_ONE_TWELFTH_EM (32)),
|
||||
gtk_size_to_pixel (NULL, 0, GTK_SIZE_ONE_TWELFTH_EM (32)),
|
||||
GDK_INTERP_BILINEAR);
|
||||
g_object_unref (pixbuf);
|
||||
pixbuf = scaled;
|
||||
|
||||
@@ -409,7 +412,7 @@ attach_widgets (GtkTextView *text_view)
|
||||
{
|
||||
widget = gtk_hscale_new (NULL);
|
||||
gtk_range_set_range (GTK_RANGE (widget), 0, 100);
|
||||
gtk_widget_set_size_request (widget, 70, -1);
|
||||
gtk_widget_set_size_request (widget, GTK_SIZE_ONE_TWELFTH_EM (70), -1);
|
||||
}
|
||||
else if (i == 3)
|
||||
{
|
||||
@@ -454,7 +457,7 @@ do_textview (GtkWidget *do_widget)
|
||||
gtk_window_set_screen (GTK_WINDOW (window),
|
||||
gtk_widget_get_screen (do_widget));
|
||||
gtk_window_set_default_size (GTK_WINDOW (window),
|
||||
450, 450);
|
||||
GTK_SIZE_ONE_TWELFTH_EM (450), GTK_SIZE_ONE_TWELFTH_EM (450));
|
||||
|
||||
g_signal_connect (window, "destroy",
|
||||
G_CALLBACK (gtk_widget_destroyed), &window);
|
||||
@@ -463,7 +466,7 @@ do_textview (GtkWidget *do_widget)
|
||||
gtk_container_set_border_width (GTK_CONTAINER (window), 0);
|
||||
|
||||
vpaned = gtk_vpaned_new ();
|
||||
gtk_container_set_border_width (GTK_CONTAINER(vpaned), 5);
|
||||
gtk_container_set_border_width (GTK_CONTAINER(vpaned), GTK_SIZE_ONE_TWELFTH_EM (5));
|
||||
gtk_container_add (GTK_CONTAINER (window), vpaned);
|
||||
|
||||
/* For convenience, we just use the autocreated buffer from
|
||||
@@ -534,7 +537,7 @@ recursive_attach_view (int depth,
|
||||
gtk_widget_modify_bg (event_box, GTK_STATE_NORMAL, &color);
|
||||
|
||||
align = gtk_alignment_new (0.5, 0.5, 1.0, 1.0);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (align), 1);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (align), GTK_SIZE_ONE_TWELFTH_EM (1));
|
||||
|
||||
gtk_container_add (GTK_CONTAINER (event_box), align);
|
||||
gtk_container_add (GTK_CONTAINER (align), child_view);
|
||||
@@ -590,7 +593,7 @@ easter_egg_callback (GtkWidget *button,
|
||||
window_ptr = &window;
|
||||
g_object_add_weak_pointer (G_OBJECT (window), window_ptr);
|
||||
|
||||
gtk_window_set_default_size (GTK_WINDOW (window), 300, 400);
|
||||
gtk_window_set_default_size (GTK_WINDOW (window), GTK_SIZE_ONE_TWELFTH_EM (300), GTK_SIZE_ONE_TWELFTH_EM (400));
|
||||
|
||||
gtk_widget_show_all (window);
|
||||
}
|
||||
|
||||
@@ -291,7 +291,7 @@ add_columns (GtkTreeView *treeview)
|
||||
column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), col_offset - 1);
|
||||
gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column),
|
||||
GTK_TREE_VIEW_COLUMN_FIXED);
|
||||
gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50);
|
||||
gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), GTK_SIZE_ONE_TWELFTH_EM (50));
|
||||
gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE);
|
||||
|
||||
/* havoc column */
|
||||
@@ -313,7 +313,7 @@ add_columns (GtkTreeView *treeview)
|
||||
column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), col_offset - 1);
|
||||
gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column),
|
||||
GTK_TREE_VIEW_COLUMN_FIXED);
|
||||
gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50);
|
||||
gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), GTK_SIZE_ONE_TWELFTH_EM (50));
|
||||
gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE);
|
||||
|
||||
/* tim column */
|
||||
@@ -336,7 +336,7 @@ add_columns (GtkTreeView *treeview)
|
||||
column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), col_offset - 1);
|
||||
gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column),
|
||||
GTK_TREE_VIEW_COLUMN_FIXED);
|
||||
gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50);
|
||||
gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), GTK_SIZE_ONE_TWELFTH_EM (50));
|
||||
gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE);
|
||||
|
||||
/* owen column */
|
||||
@@ -358,7 +358,7 @@ add_columns (GtkTreeView *treeview)
|
||||
column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), col_offset - 1);
|
||||
gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column),
|
||||
GTK_TREE_VIEW_COLUMN_FIXED);
|
||||
gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50);
|
||||
gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), GTK_SIZE_ONE_TWELFTH_EM (50));
|
||||
gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE);
|
||||
|
||||
/* dave column */
|
||||
@@ -380,7 +380,7 @@ add_columns (GtkTreeView *treeview)
|
||||
column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), col_offset - 1);
|
||||
gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column),
|
||||
GTK_TREE_VIEW_COLUMN_FIXED);
|
||||
gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50);
|
||||
gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), GTK_SIZE_ONE_TWELFTH_EM (50));
|
||||
gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE);
|
||||
}
|
||||
|
||||
@@ -402,8 +402,8 @@ do_tree_store (GtkWidget *do_widget)
|
||||
g_signal_connect (window, "destroy",
|
||||
G_CALLBACK (gtk_widget_destroyed), &window);
|
||||
|
||||
vbox = gtk_vbox_new (FALSE, 8);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (vbox), 8);
|
||||
vbox = gtk_vbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (8));
|
||||
gtk_container_set_border_width (GTK_CONTAINER (vbox), GTK_SIZE_ONE_TWELFTH_EM (8));
|
||||
gtk_container_add (GTK_CONTAINER (window), vbox);
|
||||
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
@@ -435,7 +435,7 @@ do_tree_store (GtkWidget *do_widget)
|
||||
/* expand all rows after the treeview widget has been realized */
|
||||
g_signal_connect (treeview, "realize",
|
||||
G_CALLBACK (gtk_tree_view_expand_all), NULL);
|
||||
gtk_window_set_default_size (GTK_WINDOW (window), 650, 400);
|
||||
gtk_window_set_default_size (GTK_WINDOW (window), GTK_SIZE_ONE_TWELFTH_EM (50), GTK_SIZE_ONE_TWELFTH_EM (400));
|
||||
}
|
||||
|
||||
if (!GTK_WIDGET_VISIBLE (window))
|
||||
|
||||
@@ -204,7 +204,7 @@ do_ui_manager (GtkWidget *do_widget)
|
||||
FALSE, FALSE, 0);
|
||||
|
||||
label = gtk_label_new ("Type\n<alt>\nto start");
|
||||
gtk_widget_set_size_request (label, 200, 200);
|
||||
gtk_widget_set_size_request (label, GTK_SIZE_ONE_TWELFTH_EM (200), GTK_SIZE_ONE_TWELFTH_EM (200));
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 0.5, 0.5);
|
||||
gtk_box_pack_start (GTK_BOX (box1), label, TRUE, TRUE, 0);
|
||||
|
||||
@@ -213,8 +213,8 @@ do_ui_manager (GtkWidget *do_widget)
|
||||
gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0);
|
||||
|
||||
|
||||
box2 = gtk_vbox_new (FALSE, 10);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
|
||||
box2 = gtk_vbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (10));
|
||||
gtk_container_set_border_width (GTK_CONTAINER (box2), GTK_SIZE_ONE_TWELFTH_EM (10));
|
||||
gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, TRUE, 0);
|
||||
|
||||
button = gtk_button_new_with_label ("close");
|
||||
|
||||
@@ -103,9 +103,5 @@
|
||||
<index id="api-index-2-16" role="2.16">
|
||||
<title>Index of new symbols in 2.16</title>
|
||||
<xi:include href="xml/api-index-2.16.xml"><xi:fallback /></xi:include>
|
||||
</index>
|
||||
<index id="api-index-2-18" role="2.18">
|
||||
<title>Index of new symbols in 2.18</title>
|
||||
<xi:include href="xml/api-index-2.18.xml"><xi:fallback /></xi:include>
|
||||
</index>
|
||||
</book>
|
||||
|
||||
@@ -225,8 +225,12 @@ gdk_screen_broadcast_client_message
|
||||
gdk_screen_get_setting
|
||||
gdk_screen_get_font_options
|
||||
gdk_screen_set_font_options
|
||||
gdk_screen_get_font_options_for_monitor
|
||||
gdk_screen_set_font_options_for_monitor
|
||||
gdk_screen_get_resolution
|
||||
gdk_screen_set_resolution
|
||||
gdk_screen_get_resolution_for_monitor
|
||||
gdk_screen_set_resolution_for_monitor
|
||||
gdk_screen_get_active_window
|
||||
gdk_screen_get_window_stack
|
||||
<SUBSECTION Spawning>
|
||||
@@ -661,7 +665,6 @@ gdk_window_resize
|
||||
gdk_window_move_resize
|
||||
gdk_window_scroll
|
||||
gdk_window_move_region
|
||||
gdk_window_ensure_native
|
||||
gdk_window_reparent
|
||||
gdk_window_clear
|
||||
gdk_window_clear_area
|
||||
@@ -740,7 +743,6 @@ gdk_window_get_colormap
|
||||
gdk_window_get_type
|
||||
gdk_window_get_origin
|
||||
gdk_window_get_deskrelative_origin
|
||||
gdk_window_get_root_coords
|
||||
gdk_window_get_pointer
|
||||
GdkModifierType
|
||||
gdk_window_get_parent
|
||||
@@ -769,10 +771,6 @@ GdkPointerHooks
|
||||
gdk_set_pointer_hooks
|
||||
|
||||
<SUBSECTION>
|
||||
gdk_offscreen_window_get_pixmap
|
||||
gdk_offscreen_window_set_embedder
|
||||
gdk_offscreen_window_get_embedder
|
||||
gdk_window_geometry_changed
|
||||
gdk_window_redirect_to_drawable
|
||||
gdk_window_remove_redirection
|
||||
|
||||
@@ -880,6 +878,7 @@ gdk_pango_renderer_set_stipple
|
||||
gdk_pango_renderer_set_override_color
|
||||
gdk_pango_context_get
|
||||
gdk_pango_context_get_for_screen
|
||||
gdk_pango_context_get_for_screen_for_monitor
|
||||
gdk_pango_context_set_colormap
|
||||
GdkPangoAttrEmbossed
|
||||
GdkPangoAttrEmbossColor
|
||||
@@ -937,7 +936,6 @@ gdk_region_get_clipbox
|
||||
gdk_region_get_rectangles
|
||||
gdk_region_empty
|
||||
gdk_region_equal
|
||||
gdk_region_rect_equal
|
||||
gdk_region_point_in
|
||||
gdk_region_rect_in
|
||||
GdkOverlapType
|
||||
|
||||
@@ -94,7 +94,6 @@ for the possible window states
|
||||
was added in 2.8.
|
||||
@GDK_DAMAGE: the content of the window has been changed. This event type
|
||||
was added in 2.14.
|
||||
@GDK_EVENT_LAST: marks the end of the GdkEventType enumeration. Added in 2.18
|
||||
|
||||
<!-- ##### ENUM GdkEventMask ##### -->
|
||||
<para>
|
||||
|
||||
@@ -175,16 +175,6 @@ included in the region, while areas overlapped an even number of times are not.
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_region_rect_equal ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@region:
|
||||
@rectangle:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_region_point_in ##### -->
|
||||
<para>
|
||||
|
||||
|
||||
@@ -189,43 +189,6 @@ these types.
|
||||
</para>
|
||||
|
||||
|
||||
<!-- ##### SIGNAL GdkWindow::from-embedder ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@gdkwindow: the object which received the signal.
|
||||
@arg1:
|
||||
@arg2:
|
||||
@arg3:
|
||||
@arg4:
|
||||
|
||||
<!-- ##### SIGNAL GdkWindow::pick-embedded-child ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@gdkwindow: the object which received the signal.
|
||||
@arg1:
|
||||
@arg2:
|
||||
@Returns:
|
||||
|
||||
<!-- ##### SIGNAL GdkWindow::to-embedder ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@gdkwindow: the object which received the signal.
|
||||
@arg1:
|
||||
@arg2:
|
||||
@arg3:
|
||||
@arg4:
|
||||
|
||||
<!-- ##### ARG GdkWindow:cursor ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ENUM GdkWindowType ##### -->
|
||||
<para>
|
||||
Describes the kind of window.
|
||||
@@ -237,7 +200,6 @@ Describes the kind of window.
|
||||
@GDK_WINDOW_DIALOG: useless/deprecated compatibility type
|
||||
@GDK_WINDOW_TEMP: override redirect temporary window (used to implement #GtkMenu)
|
||||
@GDK_WINDOW_FOREIGN: foreign window (see gdk_window_foreign_new())
|
||||
@GDK_WINDOW_OFFSCREEN: offscreen window. Since 2.18
|
||||
|
||||
<!-- ##### ENUM GdkWindowClass ##### -->
|
||||
<para>
|
||||
@@ -723,15 +685,6 @@ Deprecated equivalent of g_object_unref()
|
||||
@dy:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_window_ensure_native ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@window:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_window_reparent ##### -->
|
||||
<para>
|
||||
|
||||
@@ -1431,18 +1384,6 @@ Deprecated equivalent of gdk_drawable_get_type().
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_window_get_root_coords ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@window:
|
||||
@x:
|
||||
@y:
|
||||
@root_x:
|
||||
@root_y:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_window_get_pointer ##### -->
|
||||
<para>
|
||||
|
||||
@@ -1718,39 +1659,12 @@ Applications should never have any reason to use this facility
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_offscreen_window_get_pixmap ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@window:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_offscreen_window_set_embedder ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@window:
|
||||
@embedder:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_offscreen_window_get_embedder ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@window:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_window_geometry_changed ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@window:
|
||||
<!--
|
||||
Local variables:
|
||||
mode: sgml
|
||||
sgml-parent-document: ("../gdk-docs.sgml" "book" "refsect2" "")
|
||||
End:
|
||||
-->
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_window_redirect_to_drawable ##### -->
|
||||
@@ -1776,11 +1690,3 @@ Applications should never have any reason to use this facility
|
||||
@window:
|
||||
|
||||
|
||||
<!--
|
||||
Local variables:
|
||||
mode: sgml
|
||||
sgml-parent-document: ("../gdk-docs.sgml" "book" "refsect2" "")
|
||||
End:
|
||||
-->
|
||||
|
||||
|
||||
|
||||
@@ -168,7 +168,6 @@ expand_content_files = \
|
||||
migrating-GtkColorButton.sgml \
|
||||
migrating-GtkAssistant.sgml \
|
||||
migrating-GtkRecentChooser.sgml \
|
||||
migrating-GtkLabel-links.sgml \
|
||||
migrating-GtkLinkButton.sgml \
|
||||
migrating-GtkBuilder.sgml \
|
||||
migrating-GtkTooltip.sgml \
|
||||
@@ -346,7 +345,10 @@ HTML_IMAGES = \
|
||||
$(srcdir)/images/layout-rlbt.png \
|
||||
$(srcdir)/images/layout-rltb.png \
|
||||
$(srcdir)/images/layout-tblr.png \
|
||||
$(srcdir)/images/layout-tbrl.png
|
||||
$(srcdir)/images/layout-tbrl.png \
|
||||
$(srcdir)/images/gtk-ri-file-chooser-size-6.png \
|
||||
$(srcdir)/images/gtk-ri-file-chooser-size-12.png \
|
||||
$(srcdir)/images/gtk-ri-file-chooser-size-24.png
|
||||
|
||||
# Extra options to supply to gtkdoc-fixref
|
||||
FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html \
|
||||
|
||||
@@ -126,6 +126,7 @@ that is, GUI components such as #GtkButton or #GtkTextView.
|
||||
<xi:include href="xml/gtktypeutils.xml" />
|
||||
<xi:include href="xml/gtktesting.xml" />
|
||||
<xi:include href="xml/filesystem.xml" />
|
||||
<xi:include href="xml/gtksize.xml" />
|
||||
</part>
|
||||
|
||||
<part id="gtkobjects">
|
||||
@@ -177,7 +178,6 @@ that is, GUI components such as #GtkButton or #GtkTextView.
|
||||
<chapter id="NumericEntry">
|
||||
<title>Numeric/Text Data Entry</title>
|
||||
<xi:include href="xml/gtkentry.xml" />
|
||||
<xi:include href="xml/gtkentrybuffer.xml" />
|
||||
<xi:include href="xml/gtkentrycompletion.xml" />
|
||||
<xi:include href="xml/gtkhscale.xml" />
|
||||
<xi:include href="xml/gtkvscale.xml" />
|
||||
|
||||
@@ -328,6 +328,7 @@ GtkAlignment
|
||||
gtk_alignment_new
|
||||
gtk_alignment_set
|
||||
gtk_alignment_get_padding
|
||||
gtk_alignment_get_padding_unit
|
||||
gtk_alignment_set_padding
|
||||
<SUBSECTION Standard>
|
||||
GTK_ALIGNMENT
|
||||
@@ -471,9 +472,11 @@ gtk_box_pack_end_defaults
|
||||
gtk_box_get_homogeneous
|
||||
gtk_box_set_homogeneous
|
||||
gtk_box_get_spacing
|
||||
gtk_box_get_spacing_unit
|
||||
gtk_box_set_spacing
|
||||
gtk_box_reorder_child
|
||||
gtk_box_query_child_packing
|
||||
gtk_box_query_child_packing_unit
|
||||
gtk_box_set_child_packing
|
||||
<SUBSECTION Standard>
|
||||
GTK_BOX
|
||||
@@ -1033,6 +1036,7 @@ gtk_container_unset_focus_chain
|
||||
gtk_container_class_find_child_property
|
||||
gtk_container_class_install_child_property
|
||||
gtk_container_class_list_child_properties
|
||||
gtk_container_get_border_width_unit
|
||||
<SUBSECTION Standard>
|
||||
GTK_CONTAINER
|
||||
GTK_IS_CONTAINER
|
||||
@@ -1268,10 +1272,7 @@ gtk_old_editable_get_type
|
||||
<TITLE>GtkEntry</TITLE>
|
||||
GtkEntry
|
||||
gtk_entry_new
|
||||
gtk_entry_new_with_buffer
|
||||
gtk_entry_new_with_max_length
|
||||
gtk_entry_get_buffer
|
||||
gtk_entry_set_buffer
|
||||
gtk_entry_set_text
|
||||
gtk_entry_append_text
|
||||
gtk_entry_prepend_text
|
||||
@@ -1345,34 +1346,6 @@ GTK_ENTRY_GET_CLASS
|
||||
gtk_entry_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtkentrybuffer</FILE>
|
||||
<TITLE>GtkEntryBuffer</TITLE>
|
||||
GtkEntryBuffer
|
||||
gtk_entry_buffer_new
|
||||
gtk_entry_buffer_get_text
|
||||
gtk_entry_buffer_set_text
|
||||
gtk_entry_buffer_get_bytes
|
||||
gtk_entry_buffer_get_length
|
||||
gtk_entry_buffer_get_max_length
|
||||
gtk_entry_buffer_set_max_length
|
||||
gtk_entry_buffer_insert_text
|
||||
gtk_entry_buffer_delete_text
|
||||
gtk_entry_buffer_emit_deleted_text
|
||||
gtk_entry_buffer_emit_inserted_text
|
||||
|
||||
<SUBSECTION Standard>
|
||||
GTK_ENTRY_BUFFER
|
||||
GTK_IS_ENTRY_BUFFER
|
||||
GTK_TYPE_ENTRY_BUFFER
|
||||
GTK_ENTRY_BUFFER_CLASS
|
||||
GTK_IS_ENTRY_BUFFER_CLASS
|
||||
GTK_ENTRY_BUFFER_GET_CLASS
|
||||
GTK_ENTRY_BUFFER_MAX_SIZE
|
||||
<SUBSECTION Private>
|
||||
gtk_entry_buffer_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtkentrycompletion</FILE>
|
||||
<TITLE>GtkEntryCompletion</TITLE>
|
||||
@@ -1445,6 +1418,7 @@ gtk_expander_set_expanded
|
||||
gtk_expander_get_expanded
|
||||
gtk_expander_set_spacing
|
||||
gtk_expander_get_spacing
|
||||
gtk_expander_get_spacing_unit
|
||||
gtk_expander_set_label
|
||||
gtk_expander_get_label
|
||||
gtk_expander_set_use_underline
|
||||
@@ -1483,8 +1457,6 @@ gtk_file_chooser_set_show_hidden
|
||||
gtk_file_chooser_get_show_hidden
|
||||
gtk_file_chooser_set_do_overwrite_confirmation
|
||||
gtk_file_chooser_get_do_overwrite_confirmation
|
||||
gtk_file_chooser_set_create_folders
|
||||
gtk_file_chooser_get_create_folders
|
||||
gtk_file_chooser_set_current_name
|
||||
gtk_file_chooser_get_filename
|
||||
gtk_file_chooser_set_filename
|
||||
@@ -1964,16 +1936,19 @@ gtk_icon_view_set_columns
|
||||
gtk_icon_view_get_columns
|
||||
gtk_icon_view_set_item_width
|
||||
gtk_icon_view_get_item_width
|
||||
gtk_icon_view_get_item_width_unit
|
||||
gtk_icon_view_set_spacing
|
||||
gtk_icon_view_get_spacing
|
||||
gtk_icon_view_get_spacing_unit
|
||||
gtk_icon_view_set_row_spacing
|
||||
gtk_icon_view_get_row_spacing
|
||||
gtk_icon_view_get_row_spacing_unit
|
||||
gtk_icon_view_set_column_spacing
|
||||
gtk_icon_view_get_column_spacing
|
||||
gtk_icon_view_get_column_spacing_unit
|
||||
gtk_icon_view_set_margin
|
||||
gtk_icon_view_get_margin
|
||||
gtk_icon_view_set_item_padding
|
||||
gtk_icon_view_get_item_padding
|
||||
gtk_icon_view_get_margin_unit
|
||||
gtk_icon_view_select_path
|
||||
gtk_icon_view_unselect_path
|
||||
gtk_icon_view_path_is_selected
|
||||
@@ -2051,6 +2026,7 @@ gtk_image_set
|
||||
gtk_image_get
|
||||
gtk_image_set_pixel_size
|
||||
gtk_image_get_pixel_size
|
||||
gtk_image_get_pixel_size_unit
|
||||
<SUBSECTION Standard>
|
||||
GTK_IMAGE
|
||||
GTK_IS_IMAGE
|
||||
@@ -2310,8 +2286,6 @@ gtk_label_set_use_underline
|
||||
gtk_label_set_single_line_mode
|
||||
gtk_label_set_angle
|
||||
gtk_label_get_current_uri
|
||||
gtk_label_set_track_visited_links
|
||||
gtk_label_get_track_visited_links
|
||||
<SUBSECTION Standard>
|
||||
GTK_LABEL
|
||||
GTK_IS_LABEL
|
||||
@@ -2457,8 +2431,6 @@ gtk_menu_get_title
|
||||
gtk_menu_set_monitor
|
||||
gtk_menu_get_monitor
|
||||
gtk_menu_get_tearoff_state
|
||||
gtk_menu_set_reserve_toggle_size
|
||||
gtk_menu_get_reserve_toggle_size
|
||||
<SUBSECTION>
|
||||
gtk_menu_popdown
|
||||
gtk_menu_reposition
|
||||
@@ -2666,6 +2638,7 @@ gtk_misc_set_alignment
|
||||
gtk_misc_set_padding
|
||||
gtk_misc_get_alignment
|
||||
gtk_misc_get_padding
|
||||
gtk_misc_get_padding_unit
|
||||
<SUBSECTION Standard>
|
||||
GTK_MISC
|
||||
GTK_IS_MISC
|
||||
@@ -3634,8 +3607,6 @@ gtk_status_icon_set_tooltip_markup
|
||||
gtk_status_icon_get_tooltip_markup
|
||||
gtk_status_icon_set_has_tooltip
|
||||
gtk_status_icon_get_has_tooltip
|
||||
gtk_status_icon_set_title
|
||||
gtk_status_icon_get_title
|
||||
gtk_status_icon_set_visible
|
||||
gtk_status_icon_get_visible
|
||||
gtk_status_icon_set_blinking
|
||||
@@ -3671,10 +3642,14 @@ gtk_table_set_row_spacings
|
||||
gtk_table_set_col_spacings
|
||||
gtk_table_set_homogeneous
|
||||
gtk_table_get_default_row_spacing
|
||||
gtk_table_get_default_row_spacing_unit
|
||||
gtk_table_get_homogeneous
|
||||
gtk_table_get_row_spacing
|
||||
gtk_table_get_row_spacing_unit
|
||||
gtk_table_get_col_spacing
|
||||
gtk_table_get_col_spacing_unit
|
||||
gtk_table_get_default_col_spacing
|
||||
gtk_table_get_default_col_spacing_unit
|
||||
<SUBSECTION Standard>
|
||||
GTK_TABLE
|
||||
GTK_IS_TABLE
|
||||
@@ -4054,18 +4029,24 @@ gtk_text_view_set_overwrite
|
||||
gtk_text_view_get_overwrite
|
||||
gtk_text_view_set_pixels_above_lines
|
||||
gtk_text_view_get_pixels_above_lines
|
||||
gtk_text_view_get_pixels_above_lines_unit
|
||||
gtk_text_view_set_pixels_below_lines
|
||||
gtk_text_view_get_pixels_below_lines
|
||||
gtk_text_view_get_pixels_below_lines_unit
|
||||
gtk_text_view_set_pixels_inside_wrap
|
||||
gtk_text_view_get_pixels_inside_wrap
|
||||
gtk_text_view_get_pixels_inside_wrap_unit
|
||||
gtk_text_view_set_justification
|
||||
gtk_text_view_get_justification
|
||||
gtk_text_view_set_left_margin
|
||||
gtk_text_view_get_left_margin
|
||||
gtk_text_view_get_left_margin_unit
|
||||
gtk_text_view_set_right_margin
|
||||
gtk_text_view_get_right_margin
|
||||
gtk_text_view_get_right_margin_unit
|
||||
gtk_text_view_set_indent
|
||||
gtk_text_view_get_indent
|
||||
gtk_text_view_get_indent_unit
|
||||
gtk_text_view_set_tabs
|
||||
gtk_text_view_get_tabs
|
||||
gtk_text_view_set_accepts_tab
|
||||
@@ -4790,6 +4771,7 @@ gtk_tree_view_column_set_cell_data_func
|
||||
gtk_tree_view_column_clear_attributes
|
||||
gtk_tree_view_column_set_spacing
|
||||
gtk_tree_view_column_get_spacing
|
||||
gtk_tree_view_column_get_spacing_unit
|
||||
gtk_tree_view_column_set_visible
|
||||
gtk_tree_view_column_get_visible
|
||||
gtk_tree_view_column_set_resizable
|
||||
@@ -4798,11 +4780,14 @@ gtk_tree_view_column_set_sizing
|
||||
gtk_tree_view_column_get_sizing
|
||||
gtk_tree_view_column_get_width
|
||||
gtk_tree_view_column_get_fixed_width
|
||||
gtk_tree_view_column_get_fixed_width_unit
|
||||
gtk_tree_view_column_set_fixed_width
|
||||
gtk_tree_view_column_set_min_width
|
||||
gtk_tree_view_column_get_min_width
|
||||
gtk_tree_view_column_get_min_width_unit
|
||||
gtk_tree_view_column_set_max_width
|
||||
gtk_tree_view_column_get_max_width
|
||||
gtk_tree_view_column_get_max_width_unit
|
||||
gtk_tree_view_column_clicked
|
||||
gtk_tree_view_column_set_title
|
||||
gtk_tree_view_column_get_title
|
||||
@@ -4851,6 +4836,7 @@ GtkTreeViewMappingFunc
|
||||
GtkTreeViewSearchEqualFunc
|
||||
gtk_tree_view_new
|
||||
gtk_tree_view_get_level_indentation
|
||||
gtk_tree_view_get_level_indentation_unit
|
||||
gtk_tree_view_get_show_expanders
|
||||
gtk_tree_view_set_level_indentation
|
||||
gtk_tree_view_set_show_expanders
|
||||
@@ -5025,13 +5011,17 @@ GtkCellRendererMode
|
||||
GtkCellRenderer
|
||||
GtkCellRendererClass
|
||||
gtk_cell_renderer_get_size
|
||||
gtk_cell_renderer_get_size_unit
|
||||
gtk_cell_renderer_render
|
||||
gtk_cell_renderer_activate
|
||||
gtk_cell_renderer_start_editing
|
||||
gtk_cell_renderer_editing_canceled
|
||||
gtk_cell_renderer_stop_editing
|
||||
gtk_cell_renderer_get_fixed_size
|
||||
gtk_cell_renderer_get_fixed_size_unit
|
||||
gtk_cell_renderer_set_fixed_size
|
||||
gtk_cell_renderer_get_tree_view_column
|
||||
gtk_cell_renderer_get_tree_view
|
||||
|
||||
<SUBSECTION Standard>
|
||||
GTK_CELL_RENDERER
|
||||
@@ -5566,6 +5556,15 @@ gtk_widget_set_has_tooltip
|
||||
gtk_widget_trigger_tooltip_query
|
||||
gtk_widget_get_snapshot
|
||||
gtk_widget_get_window
|
||||
gtk_widget_get_monitor_num
|
||||
gtk_widget_get_size_request_unit
|
||||
gtk_widget_size_to_pixel
|
||||
gtk_widget_size_to_pixel_double
|
||||
gtk_widget_style_get_property_unit
|
||||
gtk_widget_style_get_unit_valist
|
||||
gtk_widget_style_get_unit
|
||||
gtk_widget_get_unit_valist
|
||||
gtk_widget_get_unit
|
||||
<SUBSECTION>
|
||||
gtk_requisition_copy
|
||||
gtk_requisition_free
|
||||
@@ -5652,6 +5651,7 @@ gtk_window_get_deletable
|
||||
gtk_window_get_default_icon_list
|
||||
gtk_window_get_default_icon_name
|
||||
gtk_window_get_default_size
|
||||
gtk_window_get_default_size_unit
|
||||
gtk_window_get_destroy_with_parent
|
||||
gtk_window_get_frame_dimensions
|
||||
gtk_window_get_has_frame
|
||||
@@ -5687,6 +5687,7 @@ gtk_window_set_icon_name
|
||||
gtk_window_set_auto_startup_notification
|
||||
gtk_window_get_opacity
|
||||
gtk_window_set_opacity
|
||||
gtk_window_get_monitor_num
|
||||
<SUBSECTION Standard>
|
||||
GTK_WINDOW
|
||||
GTK_IS_WINDOW
|
||||
@@ -5855,6 +5856,9 @@ gtk_style_set_font
|
||||
gtk_style_get_style_property
|
||||
gtk_style_get_valist
|
||||
gtk_style_get
|
||||
gtk_style_get_style_property_unit
|
||||
gtk_style_get_unit_valist
|
||||
gtk_style_get_unit
|
||||
gtk_draw_hline
|
||||
gtk_draw_vline
|
||||
gtk_draw_shadow
|
||||
@@ -6531,7 +6535,10 @@ gtk_icon_set_ref
|
||||
gtk_icon_set_render_icon
|
||||
gtk_icon_set_unref
|
||||
gtk_icon_size_lookup
|
||||
gtk_icon_size_lookup_unit
|
||||
gtk_icon_size_lookup_for_settings
|
||||
gtk_icon_size_lookup_for_settings_for_monitor
|
||||
gtk_icon_size_lookup_for_settings_unit
|
||||
gtk_icon_size_register
|
||||
gtk_icon_size_register_alias
|
||||
gtk_icon_size_from_name
|
||||
@@ -6591,7 +6598,6 @@ gtk_print_operation_set_print_settings
|
||||
gtk_print_operation_get_print_settings
|
||||
gtk_print_operation_set_job_name
|
||||
gtk_print_operation_set_n_pages
|
||||
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
|
||||
@@ -6610,8 +6616,6 @@ gtk_print_operation_set_support_selection
|
||||
gtk_print_operation_get_support_selection
|
||||
gtk_print_operation_set_has_selection
|
||||
gtk_print_operation_get_has_selection
|
||||
gtk_print_operation_set_embed_page_setup
|
||||
gtk_print_operation_get_embed_page_setup
|
||||
gtk_print_run_page_setup_dialog
|
||||
GtkPageSetupDoneFunc
|
||||
gtk_print_run_page_setup_dialog_async
|
||||
@@ -6660,9 +6664,6 @@ gtk_print_unix_dialog_set_support_selection
|
||||
gtk_print_unix_dialog_get_support_selection
|
||||
gtk_print_unix_dialog_set_has_selection
|
||||
gtk_print_unix_dialog_get_has_selection
|
||||
gtk_print_unix_dialog_set_embed_page_setup
|
||||
gtk_print_unix_dialog_get_embed_page_setup
|
||||
gtk_print_unix_dialog_get_page_setup_set
|
||||
GtkPrintCapabilities
|
||||
gtk_print_unix_dialog_set_manual_capabilities
|
||||
gtk_print_unix_dialog_get_manual_capabilities
|
||||
@@ -7083,3 +7084,31 @@ GTK_TYPE_ORIENTABLE
|
||||
<SUBSECTION Private>
|
||||
gtk_orientable_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<TITLE>Units</TITLE>
|
||||
<FILE>gtksize</FILE>
|
||||
GtkSize
|
||||
GtkUSize
|
||||
GtkSizeUnit
|
||||
gtk_size_em
|
||||
gtk_size_mm
|
||||
gtk_size_get_em
|
||||
gtk_size_get_mm
|
||||
GTK_SIZE_ONE_TWELFTH_EM
|
||||
GTK_SIZE_MAXPIXEL
|
||||
GTK_SIZE_MINPIXEL
|
||||
gtk_size_get_unit
|
||||
gtk_size_to_pixel
|
||||
gtk_size_to_pixel_double
|
||||
gtk_size_to_string
|
||||
gtk_param_spec_size
|
||||
gtk_value_set_size
|
||||
gtk_value_get_size
|
||||
gtk_value_size_skip_conversion
|
||||
gtk_param_spec_usize
|
||||
gtk_value_set_usize
|
||||
gtk_value_get_usize
|
||||
gtk_value_usize_skip_conversion
|
||||
gtk_enable_resolution_independence
|
||||
</SECTION>
|
||||
|
||||
@@ -48,7 +48,6 @@ gtk_curve_get_type
|
||||
gtk_dialog_get_type
|
||||
gtk_drawing_area_get_type
|
||||
gtk_editable_get_type
|
||||
gtk_entry_buffer_get_type
|
||||
gtk_entry_completion_get_type
|
||||
gtk_entry_get_type
|
||||
gtk_event_box_get_type
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 60 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 135 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 26 KiB |
@@ -13,18 +13,21 @@
|
||||
</para>
|
||||
|
||||
<para>
|
||||
A good way to start a migration from libglade to GtkBuilder is using
|
||||
<application>glade3</application> to convert your .glade file.
|
||||
If your code uses the @root parameter of glade_xml_new(),
|
||||
you can use gtk_builder_add_objects_from_file() to construct only certain
|
||||
A good way to start a migration from libglade to GtkBuilder is
|
||||
to run the <link linkend="gtk-builder-convert">gtk-builder-convert</link>
|
||||
utility on your glade file, and inspect the resulting output.
|
||||
If your code uses the @root parameter of glade_xml_new(), you
|
||||
may want to split your glade file into multiple GtkBuilder files
|
||||
by using the <option>--root</option> option of
|
||||
<application>gtk-builder-convert</application>. Alternatively, you
|
||||
can use gtk_builder_add_objects_from_file() to construct only certain
|
||||
objects from a GtkBuilder file.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Alternatively, GTK+ also offers the
|
||||
<link linkend="gtk-builder-convert">gtk-builder-convert</link> script you can use
|
||||
to do the conversion; in which case you should be careful to inspect the output
|
||||
and make sure you didn't lose any data.
|
||||
Alternatively, you can open the glade file with
|
||||
<application>glade3</application> and then save it in GtkBuilder
|
||||
format. This is supported by glade3 since version 3.6.
|
||||
</para>
|
||||
|
||||
<table pgwide="1" frame="topbot">
|
||||
@@ -50,7 +53,7 @@ GError* error = NULL;
|
||||
GtkBuilder* builder = gtk_builder_new (<!-- -->);
|
||||
if (!gtk_builder_add_from_file (builder, FILE, &error))
|
||||
{
|
||||
g_warning ("Couldn't load builder file: %s", error->message);
|
||||
g_warning ("Couldn't load builder file: %amp;s", error->message);
|
||||
g_error_free (error);
|
||||
}
|
||||
</screen>
|
||||
|
||||
@@ -7,10 +7,10 @@
|
||||
<title>Migrating from SexyIconEntry to GtkEntry</title>
|
||||
|
||||
<para>
|
||||
GTK+ 2.16 supports showing icons inside a #GtkEntry, similar to
|
||||
SexyIconEntry. Porting from SexyIconEntry to GtkEntry is relatively
|
||||
straightforward. The main difference between the two APIs is that
|
||||
SexyIconEntry uses #GtkImage widgets in a somewhat awkward way as
|
||||
GTK+ 2.16 supports showing icons inside a #GtkEntry, similar to
|
||||
SexyIconEntry. Porting from SexyIconEntry to GtkEntry is relatively
|
||||
straightforward. The main difference between the two APIs is that
|
||||
SexyIconEntry uses #GtkImage widgets in a somewhat awkward way as
|
||||
storage vehicles for icons, while GtkEntry allows to specify icons
|
||||
via pixbufs, stock ids, icon names or #GIcons. So, if your code uses
|
||||
e.g.:
|
||||
@@ -130,7 +130,7 @@ text_changed_cb (GtkEntry *entry,
|
||||
gtk_entry_set_icon_from_stock (GTK_ENTRY (entry),
|
||||
GTK_ENTRY_ICON_SECONDARY,
|
||||
GTK_STOCK_CLEAR);
|
||||
g_signal_connect (entry, "icon-press",
|
||||
g_signal_connect (entry, "icon-pressed",
|
||||
G_CALLBACK (icon_pressed_cb), NULL);
|
||||
g_signal_connect (entry, "notify::text",
|
||||
G_CALLBACK (text_changed_cb), find_button);
|
||||
|
||||
@@ -130,7 +130,7 @@
|
||||
<structname>GtkIconView</structname>:
|
||||
<itemizedlist>
|
||||
<listitem><para>
|
||||
<type>GnomeIconListMode</type> is replaced by the
|
||||
<typename>GnomeIconListMode</typename> is replaced by the
|
||||
<link linkend="GtkIconView--orientation">orientation</link>
|
||||
property of <structname>GtkIconView</structname>
|
||||
</para></listitem>
|
||||
|
||||
@@ -1033,25 +1033,6 @@ You may not attach these to signals created with the
|
||||
</para>
|
||||
|
||||
|
||||
<!-- ##### STRUCT GtkEntryBufferClass ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@parent_class:
|
||||
@inserted_text:
|
||||
@deleted_text:
|
||||
@get_text:
|
||||
@get_length:
|
||||
@insert_text:
|
||||
@delete_text:
|
||||
@_gtk_reserved0:
|
||||
@_gtk_reserved1:
|
||||
@_gtk_reserved2:
|
||||
@_gtk_reserved3:
|
||||
@_gtk_reserved4:
|
||||
@_gtk_reserved5:
|
||||
|
||||
<!-- ##### ARG GtkFileChooser:file-system ##### -->
|
||||
<para>
|
||||
|
||||
|
||||
@@ -173,11 +173,6 @@ The #GtkEntry-struct struct contains only private data.
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkEntry:buffer ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkEntry:caps-lock-warning ##### -->
|
||||
<para>
|
||||
|
||||
@@ -406,15 +401,6 @@ The #GtkEntry-struct struct contains only private data.
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_entry_new_with_buffer ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@buffer:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_entry_new_with_max_length ##### -->
|
||||
<para>
|
||||
</para>
|
||||
@@ -423,24 +409,6 @@ The #GtkEntry-struct struct contains only private data.
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_entry_get_buffer ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@entry:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_entry_set_buffer ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@entry:
|
||||
@buffer:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_entry_set_text ##### -->
|
||||
<para>
|
||||
|
||||
|
||||
@@ -1,168 +0,0 @@
|
||||
<!-- ##### SECTION Title ##### -->
|
||||
GtkEntryBuffer
|
||||
|
||||
<!-- ##### SECTION Short_Description ##### -->
|
||||
|
||||
|
||||
<!-- ##### SECTION Long_Description ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### SECTION See_Also ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### SECTION Stability_Level ##### -->
|
||||
|
||||
|
||||
<!-- ##### STRUCT GtkEntryBuffer ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
|
||||
<!-- ##### SIGNAL GtkEntryBuffer::deleted-text ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@entrybuffer: the object which received the signal.
|
||||
@arg1:
|
||||
@arg2:
|
||||
|
||||
<!-- ##### SIGNAL GtkEntryBuffer::inserted-text ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@entrybuffer: the object which received the signal.
|
||||
@arg1:
|
||||
@arg2:
|
||||
@arg3:
|
||||
|
||||
<!-- ##### ARG GtkEntryBuffer:length ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkEntryBuffer:max-length ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkEntryBuffer:text ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### FUNCTION gtk_entry_buffer_new ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@initial_chars:
|
||||
@n_initial_chars:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_entry_buffer_get_text ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@buffer:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_entry_buffer_set_text ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@buffer:
|
||||
@chars:
|
||||
@n_chars:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_entry_buffer_get_bytes ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@buffer:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_entry_buffer_get_length ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@buffer:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_entry_buffer_get_max_length ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@buffer:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_entry_buffer_set_max_length ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@buffer:
|
||||
@max_length:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_entry_buffer_insert_text ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@buffer:
|
||||
@position:
|
||||
@chars:
|
||||
@n_chars:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_entry_buffer_delete_text ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@buffer:
|
||||
@position:
|
||||
@n_chars:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_entry_buffer_emit_deleted_text ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@buffer:
|
||||
@position:
|
||||
@n_chars:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_entry_buffer_emit_inserted_text ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@buffer:
|
||||
@position:
|
||||
@chars:
|
||||
@n_chars:
|
||||
|
||||
|
||||
@@ -677,11 +677,6 @@ gtk_widget_destroy (chooser);
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkFileChooser:create-folders ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkFileChooser:do-overwrite-confirmation ##### -->
|
||||
<para>
|
||||
|
||||
@@ -880,24 +875,6 @@ gtk_widget_destroy (chooser);
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_file_chooser_set_create_folders ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@chooser:
|
||||
@create_folders:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_file_chooser_get_create_folders ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@chooser:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_file_chooser_set_current_name ##### -->
|
||||
<para>
|
||||
|
||||
|
||||
@@ -109,11 +109,6 @@ private fields and should not be directly accessed.
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkIconView:item-padding ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkIconView:item-width ##### -->
|
||||
<para>
|
||||
|
||||
@@ -496,24 +491,6 @@ selected rows. It will be called on every selected row in the view.
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_icon_view_set_item_padding ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@icon_view:
|
||||
@item_padding:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_icon_view_get_item_padding ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@icon_view:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_icon_view_select_path ##### -->
|
||||
<para>
|
||||
|
||||
|
||||
@@ -301,11 +301,6 @@ described below.
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkLabel:track-visited-links ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkLabel:use-markup ##### -->
|
||||
<para>
|
||||
|
||||
@@ -751,21 +746,3 @@ Sets the text within the GtkLabel widget.
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_label_set_track_visited_links ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@label:
|
||||
@track_links:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_label_get_track_visited_links ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@label:
|
||||
@Returns:
|
||||
|
||||
|
||||
|
||||
@@ -119,11 +119,6 @@ should be accessed using the functions below.
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkMenu:reserve-toggle-size ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkMenu:tearoff-state ##### -->
|
||||
<para>
|
||||
|
||||
@@ -359,24 +354,6 @@ See gtk_menu_set_accel_group().
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_menu_set_reserve_toggle_size ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@menu:
|
||||
@reserve_toggle_size:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_menu_get_reserve_toggle_size ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@menu:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_menu_popdown ##### -->
|
||||
<para>
|
||||
Removes the menu from the screen.
|
||||
|
||||
@@ -19,21 +19,19 @@ A GtkToolItem containing a button with an additional dropdown menu
|
||||
|
||||
<!-- ##### SECTION See_Also ##### -->
|
||||
<para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>#GtkToolbar</term>
|
||||
<listitem><para>The toolbar widget</para></listitem>
|
||||
<term>#GtkToolButton</term>
|
||||
<listitem>
|
||||
<para>
|
||||
The parent class of #GtkMenuToolButton. The properties
|
||||
"label_widget", "label", "icon_widget", and "stock_id" on
|
||||
#GtkToolButton determine the label and icon used on
|
||||
#GtkMenuToolButton<!-- -->s.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<varlistentry>
|
||||
<term>#GtkToolbar</term>
|
||||
<listitem><para>The toolbar widget</para></listitem>
|
||||
<term>#GtkToolButton</term>
|
||||
<listitem>
|
||||
<para>
|
||||
The parent class of #GtkMenuToolButton. The properties
|
||||
"label_widget", "label", "icon_widget", and "stock_id" on
|
||||
#GtkToolButton determine the label and icon used on
|
||||
#GtkMenuToolButton<!-- -->s.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</para>
|
||||
|
||||
<!-- ##### SECTION Stability_Level ##### -->
|
||||
|
||||
@@ -208,11 +208,6 @@ Printing support was added in GTK+ 2.10.
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkPrintOperation:embed-page-setup ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkPrintOperation:export-filename ##### -->
|
||||
<para>
|
||||
|
||||
@@ -233,11 +228,6 @@ Printing support was added in GTK+ 2.10.
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkPrintOperation:n-pages-to-print ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkPrintOperation:print-settings ##### -->
|
||||
<para>
|
||||
|
||||
@@ -424,15 +414,6 @@ The #GQuark used for #GtkPrintError errors.
|
||||
@n_pages:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_print_operation_get_n_pages_to_print ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@op:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_print_operation_set_current_page ##### -->
|
||||
<para>
|
||||
|
||||
@@ -595,24 +576,6 @@ The #GQuark used for #GtkPrintError errors.
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_print_operation_set_embed_page_setup ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@op:
|
||||
@embed:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_print_operation_get_embed_page_setup ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@op:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_print_run_page_setup_dialog ##### -->
|
||||
<para>
|
||||
|
||||
|
||||
@@ -90,11 +90,6 @@ The GtkPrintUnixDialog implementation of the GtkBuildable interface exposes its
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkPrintUnixDialog:embed-page-setup ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkPrintUnixDialog:has-selection ##### -->
|
||||
<para>
|
||||
|
||||
@@ -244,33 +239,6 @@ The GtkPrintUnixDialog implementation of the GtkBuildable interface exposes its
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_print_unix_dialog_set_embed_page_setup ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@dialog:
|
||||
@embed:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_print_unix_dialog_get_embed_page_setup ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@dialog:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_print_unix_dialog_get_page_setup_set ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@dialog:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### ENUM GtkPrintCapabilities ##### -->
|
||||
<para>
|
||||
An enum for specifying which features the print dialog should offer.
|
||||
|
||||
@@ -23,7 +23,7 @@ realized at least once. The following example demonstrates a way to do this:
|
||||
<informalexample><programlisting>
|
||||
gtk_init (&argc, &argv);
|
||||
|
||||
/* make sure the type is realized */
|
||||
/* make sure the type is realized &ast/
|
||||
g_type_class_unref (g_type_class_ref (GTK_TYPE_IMAGE_MENU_ITEM));
|
||||
|
||||
g_object_set (gtk_settings_get_default (), "gtk-menu-images", FALSE, NULL);
|
||||
|
||||
@@ -0,0 +1,229 @@
|
||||
<!-- ##### SECTION Title ##### -->
|
||||
Units
|
||||
|
||||
<!-- ##### SECTION Short_Description ##### -->
|
||||
|
||||
|
||||
<!-- ##### SECTION Long_Description ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### SECTION See_Also ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### SECTION Stability_Level ##### -->
|
||||
|
||||
|
||||
<!-- ##### TYPEDEF GtkSize ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
|
||||
<!-- ##### TYPEDEF GtkUSize ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
|
||||
<!-- ##### ENUM GtkSizeUnit ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@GTK_SIZE_UNIT_PIXEL:
|
||||
@GTK_SIZE_UNIT_EM:
|
||||
@GTK_SIZE_UNIT_MM:
|
||||
|
||||
<!-- ##### FUNCTION gtk_size_em ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@em:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_size_mm ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@mm:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_size_get_em ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@size:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_size_get_mm ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@size:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### MACRO GTK_SIZE_ONE_TWELFTH_EM ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@value:
|
||||
|
||||
|
||||
<!-- ##### MACRO GTK_SIZE_MAXPIXEL ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
|
||||
|
||||
<!-- ##### MACRO GTK_SIZE_MINPIXEL ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_size_get_unit ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@size:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_size_to_pixel ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@screen:
|
||||
@monitor_num:
|
||||
@size:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_size_to_pixel_double ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@screen:
|
||||
@monitor_num:
|
||||
@size:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_size_to_string ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@size:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_param_spec_size ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@name:
|
||||
@nick:
|
||||
@blurb:
|
||||
@minimum:
|
||||
@maximum:
|
||||
@default_value:
|
||||
@flags:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_value_set_size ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@value:
|
||||
@v_size:
|
||||
@widget:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_value_get_size ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@value:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_value_size_skip_conversion ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@value:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_param_spec_usize ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@name:
|
||||
@nick:
|
||||
@blurb:
|
||||
@minimum:
|
||||
@maximum:
|
||||
@default_value:
|
||||
@flags:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_value_set_usize ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@value:
|
||||
@v_size:
|
||||
@widget:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_value_get_usize ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@value:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_value_usize_skip_conversion ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@value:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_enable_resolution_independence ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
|
||||
|
||||
@@ -172,11 +172,6 @@ on Win32 doesn't allow to embed arbitrary widgets.
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkStatusIcon:title ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkStatusIcon:tooltip-markup ##### -->
|
||||
<para>
|
||||
|
||||
@@ -425,24 +420,6 @@ on Win32 doesn't allow to embed arbitrary widgets.
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_status_icon_set_title ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@status_icon:
|
||||
@title:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_status_icon_get_title ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@status_icon:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_status_icon_set_visible ##### -->
|
||||
<para>
|
||||
|
||||
|
||||
@@ -19,27 +19,25 @@ A GtkToolItem containing a toggle button
|
||||
<!-- ##### SECTION See_Also ##### -->
|
||||
|
||||
<para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>#GtkToolbar</term>
|
||||
<listitem><para>The toolbar widget</para></listitem>
|
||||
<term>#GtkToolButton</term>
|
||||
<listitem>
|
||||
<para>
|
||||
The parent class of #GtkToggleToolButton. The properties
|
||||
"label_widget", "label", "icon_widget", and "stock_id" on
|
||||
#GtkToolButton determine the label and icon used on
|
||||
#GtkToggleToolButton<!-- -->s.
|
||||
</para>
|
||||
</listitem>
|
||||
<term>#GtkSeparatorToolItem</term>
|
||||
<listitem>
|
||||
<para>A subclass of #GtkToolItem that separates groups of
|
||||
items on a toolbar.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<varlistentry>
|
||||
<term>#GtkToolbar</term>
|
||||
<listitem><para>The toolbar widget</para></listitem>
|
||||
<term>#GtkToolButton</term>
|
||||
<listitem>
|
||||
<para>
|
||||
The parent class of #GtkToggleToolButton. The properties
|
||||
"label_widget", "label", "icon_widget", and "stock_id" on
|
||||
#GtkToolButton determine the label and icon used on
|
||||
#GtkToggleToolButton<!-- -->s.
|
||||
</para>
|
||||
</listitem>
|
||||
<term>#GtkSeparatorToolItem</term>
|
||||
<listitem>
|
||||
<para>A subclass of #GtkToolItem that separates groups of
|
||||
items on a toolbar.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</para>
|
||||
|
||||
<!-- ##### SECTION Stability_Level ##### -->
|
||||
|
||||
@@ -12,6 +12,23 @@ GtkToolItem
|
||||
<!-- ##### SECTION See_Also ##### -->
|
||||
<para>
|
||||
|
||||
<varlistentry>
|
||||
<term>#GtkToolbar</term>
|
||||
<listitem><para>The toolbar widget</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>#GtkToolButton</term>
|
||||
<listitem><para>A subclass of #GtkToolItem that displays buttons on
|
||||
the toolbar</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>#GtkSeparatorToolItem</term>
|
||||
<listitem><para>A subclass of #GtkToolItem that separates groups of
|
||||
items on a toolbar</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### SECTION Stability_Level ##### -->
|
||||
|
||||
@@ -112,11 +112,6 @@ calling gtk_tree_view_column_set_cell_data_func()
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkTreeViewColumn:sort-column-id ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkTreeViewColumn:sort-indicator ##### -->
|
||||
<para>
|
||||
|
||||
|
||||
@@ -693,11 +693,6 @@ internal child "accessible" of a <structname>GtkWidget</structname>.
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkWidget:double-buffered ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkWidget:events ##### -->
|
||||
<para>
|
||||
|
||||
|
||||
@@ -37,14 +37,14 @@ source code release of GTK+. For binary distributions, please check with
|
||||
your vendor.</para>
|
||||
|
||||
<para>A copy is available online for reference at <ulink
|
||||
url="http://www.gtk.org/documentation.html#Tutorials">http://www.gtk.org/documentation.html#Tutorials</ulink>. You can also find other GTK+ tutorials there.</para>
|
||||
url="http://www.gtk.org/tutorial/">http://www.gtk.org/tutorial</ulink>.</para>
|
||||
|
||||
<para>A packaged version of this tutorial is available from
|
||||
<para>A packaged verion of this tutorial is available from
|
||||
<ulink url="ftp://ftp.gtk.org/pub/gtk/tutorial/">
|
||||
ftp://ftp.gtk.org/pub/gtk/tutorial</ulink> which contains the tutorial in
|
||||
various different formats. This package is primary for those people wanting
|
||||
to have the tutorial available for offline reference and for printing. Note
|
||||
that the packaged version may be older than the online version.</para>
|
||||
various different formats. This
|
||||
package is primary for those people wanting to have the tutorial
|
||||
available for offline reference and for printing.</para>
|
||||
|
||||
</chapter>
|
||||
|
||||
|
||||
@@ -277,12 +277,6 @@ correct_prefix (gchar **path)
|
||||
if (strncmp (*path, GTK_PREFIX "/", strlen (GTK_PREFIX "/")) == 0 ||
|
||||
strncmp (*path, GTK_PREFIX "\\", strlen (GTK_PREFIX "\\")) == 0)
|
||||
{
|
||||
if (strlen(*path) > 5 && strncmp (*path - 5, ".libs", 5) == 0)
|
||||
{
|
||||
/* We are being run from inside the build tree, and shouldn't mess about. */
|
||||
return;
|
||||
}
|
||||
|
||||
/* This is an entry put there by gdk-pixbuf-query-loaders on the
|
||||
* packager's system. On Windows a prebuilt GTK+ package can be
|
||||
* installed in a random location. The gdk-pixbuf.loaders file
|
||||
@@ -2458,7 +2452,7 @@ gchar *
|
||||
gdk_pixbuf_format_get_description (GdkPixbufFormat *format)
|
||||
{
|
||||
gchar *domain;
|
||||
const gchar *description;
|
||||
gchar *description;
|
||||
g_return_val_if_fail (format != NULL, NULL);
|
||||
|
||||
if (format->domain != NULL)
|
||||
|
||||
@@ -15,12 +15,11 @@ GDK_PIXBUF_VER = 2.0
|
||||
# but not yet -DINCLUDE_png
|
||||
##USEGDIP=1
|
||||
# to get _working_ include modules we need respective defines ...
|
||||
#
|
||||
BUILT_IN_FORMATS = \
|
||||
!IFDEF USEGDIP
|
||||
-DINCLUDE_gdiplus \
|
||||
!ELSE
|
||||
-DINCLUDE_bmp -DINCLUDE_gif -DINCLUDE_ico -DINCLUDE_jpeg -DINCLUDE_tiff \
|
||||
-DINCLUDE_bmp -DINCLUDE_gif -DINCLUDE_ico -DINCLUDE_jpeg -DINCLUDE_tiff \
|
||||
!ENDIF
|
||||
-DINCLUDE_png \
|
||||
-DINCLUDE_xpm -DINCLUDE_wbmp \
|
||||
|
||||
+3
-4
@@ -120,7 +120,6 @@ gdk_c_sources = \
|
||||
gdkintl.h \
|
||||
gdkkeys.c \
|
||||
gdkkeyuni.c \
|
||||
gdkoffscreenwindow.c \
|
||||
gdkpango.c \
|
||||
gdkpixbuf-drawable.c \
|
||||
gdkpixbuf-render.c \
|
||||
@@ -152,10 +151,10 @@ gdk_built_sources = \
|
||||
gdkincludedir = $(includedir)/gtk-2.0/gdk
|
||||
gdkinclude_HEADERS = $(gdk_public_h_sources) $(gdk_built_public_sources)
|
||||
|
||||
# gdkmarshalers.c is not here because it is currently an empty file
|
||||
common_sources = \
|
||||
$(gdk_c_sources) \
|
||||
gdkenumtypes.c \
|
||||
gdkmarshalers.c \
|
||||
gdkmarshalers.h
|
||||
|
||||
libgdk_directfb_2_0_la_SOURCES = $(common_sources)
|
||||
@@ -269,11 +268,11 @@ gdkenumtypes.c: @REBUILD@ $(gdk_public_h_sources) gdkenumtypes.c.template
|
||||
# Marshaller generation
|
||||
#
|
||||
gdkmarshalers.h: @REBUILD@ gdkmarshalers.list
|
||||
$(GLIB_GENMARSHAL) --prefix=_gdk_marshal $(srcdir)/gdkmarshalers.list --header > gdkmarshalers-h.tmp \
|
||||
$(GLIB_GENMARSHAL) --prefix=gdk_marshal $(srcdir)/gdkmarshalers.list --header > gdkmarshalers-h.tmp \
|
||||
&& mv gdkmarshalers-h.tmp gdkmarshalers.h \
|
||||
|| ( rm -f gdkmarshalers-h.tmp && exit 1)
|
||||
gdkmarshalers.c: @REBUILD@ gdkmarshalers.list
|
||||
(echo "#include \"gdkalias.h\""; $(GLIB_GENMARSHAL) --prefix=_gdk_marshal $(srcdir)/gdkmarshalers.list --body) > gdkmarshalers-c.tmp \
|
||||
(echo "#include \"gdkalias.h\""; $(GLIB_GENMARSHAL) --prefix=gdk_marshal $(srcdir)/gdkmarshalers.list --body) > gdkmarshalers-c.tmp \
|
||||
&& mv gdkmarshalers-c.tmp gdkmarshalers.c \
|
||||
|| ( rm -f gdkmarshalers-c.tmp && exit 1 )
|
||||
|
||||
|
||||
@@ -57,8 +57,9 @@ const GOptionEntry _gdk_windowing_args[] =
|
||||
{ NULL}
|
||||
};
|
||||
|
||||
/* Main entry point for gdk in 2.6 args are parsed
|
||||
*/
|
||||
/**
|
||||
Main entry point for gdk in 2.6 args are parsed
|
||||
**/
|
||||
GdkDisplay * gdk_display_open (const gchar *display_name)
|
||||
{
|
||||
IDirectFB *directfb;
|
||||
@@ -377,18 +378,16 @@ gdk_directfb_pointer_ungrab (guint32 time,
|
||||
g_object_unref (old_grab_window);
|
||||
}
|
||||
|
||||
void
|
||||
gdk_display_pointer_ungrab (GdkDisplay *display,
|
||||
guint32 time)
|
||||
gint
|
||||
gdk_display_pointer_is_grabbed (GdkDisplay *display)
|
||||
{
|
||||
GdkPointerGrabInfo *grab = _gdk_display_get_last_pointer_grab (display);
|
||||
return _gdk_directfb_pointer_grab_window != NULL;
|
||||
}
|
||||
|
||||
if (grab)
|
||||
{
|
||||
grab->serial_end = 0;
|
||||
}
|
||||
|
||||
_gdk_display_pointer_grab_update (display, 0);
|
||||
void
|
||||
gdk_display_pointer_ungrab (GdkDisplay *display,guint32 time)
|
||||
{
|
||||
gdk_directfb_pointer_ungrab (time, _gdk_directfb_pointer_implicit_grab);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1600,32 +1600,6 @@ gdk_directfb_cairo_surface_destroy (void *data)
|
||||
impl->cairo_surface = NULL;
|
||||
}
|
||||
|
||||
void
|
||||
_gdk_windowing_set_cairo_surface_size (cairo_surface_t *surface,
|
||||
int width,
|
||||
int height)
|
||||
{
|
||||
}
|
||||
|
||||
cairo_surface_t *
|
||||
_gdk_windowing_create_cairo_surface (GdkDrawable *drawable,
|
||||
int width,
|
||||
int height)
|
||||
{
|
||||
GdkDrawableImplDirectFB *impl;
|
||||
IDirectFB *dfb;
|
||||
cairo_surface_t *ret;
|
||||
|
||||
impl = GDK_DRAWABLE_IMPL_DIRECTFB (drawable);
|
||||
dfb = GDK_DISPLAY_DFB (gdk_drawable_get_display (drawable))->directfb;
|
||||
|
||||
ret = cairo_directfb_surface_create (dfb, impl->surface);
|
||||
cairo_surface_set_user_data (ret,
|
||||
&gdk_directfb_cairo_key, drawable,
|
||||
gdk_directfb_cairo_surface_destroy);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static cairo_surface_t *
|
||||
gdk_directfb_ref_cairo_surface (GdkDrawable *drawable)
|
||||
|
||||
@@ -351,8 +351,7 @@ gc_unset_clip_mask (GdkGC *gc)
|
||||
|
||||
void
|
||||
_gdk_windowing_gc_set_clip_region (GdkGC *gc,
|
||||
const GdkRegion *region,
|
||||
gboolean reset_origin)
|
||||
const GdkRegion *region)
|
||||
{
|
||||
GdkGCDirectFB *data;
|
||||
|
||||
@@ -368,13 +367,10 @@ _gdk_windowing_gc_set_clip_region (GdkGC *gc,
|
||||
else
|
||||
temp_region_reset (&data->clip_region);
|
||||
|
||||
if (reset_origin)
|
||||
{
|
||||
gc->clip_x_origin = 0;
|
||||
gc->clip_y_origin = 0;
|
||||
data->values.clip_x_origin = 0;
|
||||
data->values.clip_y_origin = 0;
|
||||
}
|
||||
gc->clip_x_origin = 0;
|
||||
gc->clip_y_origin = 0;
|
||||
data->values.clip_x_origin = 0;
|
||||
data->values.clip_y_origin = 0;
|
||||
|
||||
gc_unset_clip_mask (gc);
|
||||
}
|
||||
|
||||
@@ -37,6 +37,7 @@ extern GdkModifierType _gdk_directfb_modifiers;
|
||||
extern int _gdk_directfb_mouse_x, _gdk_directfb_mouse_y;
|
||||
|
||||
typedef struct _GdkAxisInfo GdkAxisInfo;
|
||||
typedef struct _GdkInputWindow GdkInputWindow;
|
||||
|
||||
/* information about a device axis */
|
||||
struct _GdkAxisInfo
|
||||
|
||||
@@ -59,8 +59,9 @@
|
||||
void
|
||||
_gdk_windowing_init (void)
|
||||
{
|
||||
/* Not that usable called before parse_args
|
||||
*/
|
||||
/**
|
||||
Not that usable called before parse_args
|
||||
**/
|
||||
}
|
||||
|
||||
void
|
||||
@@ -369,15 +370,76 @@ gdk_error_trap_pop (void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* gdk_pointer_grab_info_libgtk_only:
|
||||
* @grab_window: location to store current grab window
|
||||
* @owner_events: location to store boolean indicating whether
|
||||
* the @owner_events flag to gdk_pointer_grab() was %TRUE.
|
||||
*
|
||||
* Determines information about the current pointer grab.
|
||||
* This is not public API and must not be used by applications.
|
||||
*
|
||||
* Return value: %TRUE if this application currently has the
|
||||
* pointer grabbed.
|
||||
**/
|
||||
gboolean
|
||||
gdk_pointer_grab_info_libgtk_only (GdkDisplay *display,GdkWindow **grab_window,
|
||||
gboolean *owner_events)
|
||||
{
|
||||
if (_gdk_directfb_pointer_grab_window)
|
||||
{
|
||||
if (grab_window)
|
||||
*grab_window = (GdkWindow *)_gdk_directfb_pointer_grab_window;
|
||||
if (owner_events)
|
||||
*owner_events = _gdk_directfb_pointer_grab_owner_events;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/**
|
||||
* gdk_keyboard_grab_info_libgtk_only:
|
||||
* @grab_window: location to store current grab window
|
||||
* @owner_events: location to store boolean indicating whether
|
||||
* the @owner_events flag to gdk_keyboard_grab() was %TRUE.
|
||||
*
|
||||
* Determines information about the current keyboard grab.
|
||||
* This is not public API and must not be used by applications.
|
||||
*
|
||||
* Return value: %TRUE if this application currently has the
|
||||
* keyboard grabbed.
|
||||
**/
|
||||
gboolean
|
||||
gdk_keyboard_grab_info_libgtk_only (GdkDisplay *display,GdkWindow **grab_window,
|
||||
gboolean *owner_events)
|
||||
{
|
||||
if (_gdk_directfb_keyboard_grab_window)
|
||||
{
|
||||
if (grab_window)
|
||||
*grab_window = (GdkWindow *) _gdk_directfb_keyboard_grab_window;
|
||||
if (owner_events)
|
||||
*owner_events = _gdk_directfb_keyboard_grab_owner_events;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
GdkGrabStatus
|
||||
gdk_keyboard_grab (GdkWindow *window,
|
||||
gint owner_events,
|
||||
guint32 time)
|
||||
{
|
||||
return gdk_directfb_keyboard_grab (gdk_display_get_default(),
|
||||
window,
|
||||
owner_events,
|
||||
time);
|
||||
return gdk_directfb_keyboard_grab(gdk_display_get_default(),
|
||||
window,
|
||||
owner_events,
|
||||
time);
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -405,25 +467,35 @@ gdk_keyboard_grab (GdkWindow *window,
|
||||
|
||||
|
||||
GdkGrabStatus
|
||||
_gdk_windowing_pointer_grab (GdkWindow *window,
|
||||
GdkWindow *native,
|
||||
gboolean owner_events,
|
||||
GdkEventMask event_mask,
|
||||
GdkWindow *confine_to,
|
||||
GdkCursor *cursor,
|
||||
guint32 time)
|
||||
gdk_display_pointer_grab (GdkDisplay *display,GdkWindow *window,
|
||||
gint owner_events,
|
||||
GdkEventMask event_mask,
|
||||
GdkWindow *confine_to,
|
||||
GdkCursor *cursor,
|
||||
guint32 time)
|
||||
{
|
||||
g_return_val_if_fail (GDK_IS_WINDOW (window), 0);
|
||||
g_return_val_if_fail (confine_to == NULL || GDK_IS_WINDOW (confine_to), 0);
|
||||
|
||||
_gdk_display_add_pointer_grab (_gdk_display,
|
||||
window,
|
||||
native,
|
||||
owner_events,
|
||||
event_mask,
|
||||
confine_to,
|
||||
cursor,
|
||||
time);
|
||||
return gdk_directfb_pointer_grab (window,
|
||||
owner_events,
|
||||
event_mask,
|
||||
confine_to,
|
||||
cursor,
|
||||
time,
|
||||
FALSE);
|
||||
}
|
||||
|
||||
GdkGrabStatus
|
||||
gdk_pointer_grab (GdkWindow * window,
|
||||
gint owner_events,
|
||||
GdkEventMask event_mask,
|
||||
GdkWindow * confine_to,
|
||||
GdkCursor * cursor,
|
||||
guint32 time)
|
||||
{
|
||||
return gdk_directfb_pointer_grab(window, owner_events,event_mask,
|
||||
confine_to,cursor,time,FALSE);
|
||||
}
|
||||
|
||||
#define __GDK_MAIN_X11_C__
|
||||
|
||||
@@ -114,10 +114,10 @@ gdk_pixmap_impl_directfb_finalize (GObject *object)
|
||||
}
|
||||
|
||||
GdkPixmap*
|
||||
_gdk_pixmap_new (GdkDrawable *drawable,
|
||||
gint width,
|
||||
gint height,
|
||||
gint depth)
|
||||
gdk_pixmap_new (GdkDrawable *drawable,
|
||||
gint width,
|
||||
gint height,
|
||||
gint depth)
|
||||
{
|
||||
DFBSurfacePixelFormat format;
|
||||
IDirectFBSurface *surface;
|
||||
@@ -196,10 +196,10 @@ _gdk_pixmap_new (GdkDrawable *drawable,
|
||||
}
|
||||
|
||||
GdkPixmap *
|
||||
_gdk_bitmap_create_from_data (GdkDrawable *drawable,
|
||||
const gchar *data,
|
||||
gint width,
|
||||
gint height)
|
||||
gdk_bitmap_create_from_data (GdkDrawable *drawable,
|
||||
const gchar *data,
|
||||
gint width,
|
||||
gint height)
|
||||
{
|
||||
GdkPixmap *pixmap;
|
||||
|
||||
@@ -249,13 +249,13 @@ _gdk_bitmap_create_from_data (GdkDrawable *drawable,
|
||||
}
|
||||
|
||||
GdkPixmap*
|
||||
_gdk_pixmap_create_from_data (GdkDrawable *drawable,
|
||||
const gchar *data,
|
||||
gint width,
|
||||
gint height,
|
||||
gint depth,
|
||||
const GdkColor *fg,
|
||||
const GdkColor *bg)
|
||||
gdk_pixmap_create_from_data (GdkDrawable *drawable,
|
||||
const gchar *data,
|
||||
gint width,
|
||||
gint height,
|
||||
gint depth,
|
||||
const GdkColor *fg,
|
||||
const GdkColor *bg)
|
||||
{
|
||||
GdkPixmap *pixmap;
|
||||
|
||||
|
||||
+560
-184
File diff suppressed because it is too large
Load Diff
+23
-32
@@ -69,6 +69,9 @@ gdk_get_use_xshm
|
||||
gdk_set_use_xshm
|
||||
#endif
|
||||
gdk_keyboard_grab
|
||||
gdk_keyboard_grab_info_libgtk_only
|
||||
gdk_pointer_grab
|
||||
gdk_pointer_grab_info_libgtk_only
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -82,9 +85,6 @@ gdk_pointer_is_grabbed
|
||||
gdk_pointer_ungrab
|
||||
gdk_event_send_client_message
|
||||
gdk_event_send_clientmessage_toall
|
||||
gdk_keyboard_grab_info_libgtk_only
|
||||
gdk_pointer_grab_info_libgtk_only
|
||||
gdk_display_pointer_is_grabbed
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -254,6 +254,12 @@ gdk_visual_type_get_type G_GNUC_CONST
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if IN_HEADER(__GDK_PIXMAP_H__)
|
||||
#if IN_FILE(__GDK_PIXMAP_X11_C__)
|
||||
gdk_bitmap_create_from_data
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if IN_HEADER(__GDK_FONT_H__)
|
||||
#if IN_FILE(__GDK_FONT_C__)
|
||||
#ifndef GDK_DISABLE_DEPRECATED
|
||||
@@ -460,6 +466,7 @@ gdk_display_get_default_screen
|
||||
gdk_display_get_name
|
||||
gdk_display_get_n_screens
|
||||
gdk_display_get_screen
|
||||
gdk_display_pointer_is_grabbed
|
||||
gdk_display_pointer_ungrab
|
||||
gdk_display_keyboard_ungrab
|
||||
gdk_display_open
|
||||
@@ -658,19 +665,12 @@ gdk_window_move_region
|
||||
gdk_window_set_background
|
||||
gdk_window_set_back_pixmap
|
||||
gdk_window_set_cursor
|
||||
gdk_window_get_cursor
|
||||
gdk_window_get_geometry
|
||||
gdk_window_get_origin
|
||||
gdk_window_get_root_coords
|
||||
gdk_window_get_deskrelative_origin
|
||||
gdk_window_shape_combine_mask
|
||||
gdk_window_shape_combine_region
|
||||
gdk_window_set_child_shapes
|
||||
gdk_window_merge_child_shapes
|
||||
gdk_window_input_shape_combine_mask
|
||||
gdk_window_input_shape_combine_region
|
||||
gdk_window_set_child_input_shapes
|
||||
gdk_window_merge_child_input_shapes
|
||||
gdk_window_set_static_gravities
|
||||
gdk_window_reparent
|
||||
gdk_window_add_filter
|
||||
@@ -716,24 +716,6 @@ gdk_window_set_user_data
|
||||
gdk_window_thaw_toplevel_updates_libgtk_only
|
||||
gdk_window_thaw_updates
|
||||
gdk_window_set_composited
|
||||
gdk_pointer_grab
|
||||
gdk_window_beep
|
||||
gdk_window_geometry_changed
|
||||
gdk_window_ensure_native
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if IN_HEADER(__GDK_WINDOW_H__)
|
||||
#if IN_FILE(__GDK_OFFSCREEN_WINDOW_C__)
|
||||
gdk_offscreen_window_get_pixmap
|
||||
gdk_offscreen_window_set_embedder
|
||||
gdk_offscreen_window_get_embedder
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if IN_HEADER(__GDK_INTERNALS_H__)
|
||||
#if IN_FILE(__GDK_OFFSCREEN_WINDOW_C__)
|
||||
gdk_offscreen_window_get_type G_GNUC_CONST
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -751,6 +733,7 @@ gdk_window_lookup
|
||||
gdk_window_lookup_for_display
|
||||
#ifndef GDK_DISABLE_DEPRECATED
|
||||
gdk_window_set_hints
|
||||
gdk_window_get_deskrelative_origin
|
||||
#endif
|
||||
gdk_window_get_type_hint
|
||||
gdk_window_set_type_hint
|
||||
@@ -765,12 +748,15 @@ gdk_window_set_startup_id
|
||||
gdk_window_set_transient_for
|
||||
gdk_window_get_root_origin
|
||||
gdk_window_get_frame_extents
|
||||
gdk_window_input_shape_combine_mask
|
||||
gdk_window_input_shape_combine_region
|
||||
gdk_window_set_override_redirect
|
||||
gdk_window_set_accept_focus
|
||||
gdk_window_set_focus_on_map
|
||||
gdk_window_set_icon_list
|
||||
gdk_window_set_icon
|
||||
gdk_window_set_icon_name
|
||||
gdk_window_beep
|
||||
gdk_window_set_opacity
|
||||
gdk_window_iconify
|
||||
gdk_window_deiconify
|
||||
@@ -787,6 +773,8 @@ gdk_window_set_group
|
||||
gdk_window_get_decorations
|
||||
gdk_window_set_decorations
|
||||
gdk_window_set_functions
|
||||
gdk_window_set_child_input_shapes
|
||||
gdk_window_merge_child_input_shapes
|
||||
gdk_window_begin_move_drag
|
||||
gdk_window_begin_resize_drag
|
||||
gdk_window_enable_synchronized_configure
|
||||
@@ -901,6 +889,7 @@ gdk_pango_attr_embossed_new
|
||||
gdk_pango_attr_stipple_new
|
||||
gdk_pango_context_get
|
||||
gdk_pango_context_get_for_screen
|
||||
gdk_pango_context_get_for_screen_for_monitor
|
||||
#ifndef GDK_DISABLE_DEPRECATED
|
||||
gdk_pango_context_set_colormap
|
||||
#endif
|
||||
@@ -937,24 +926,23 @@ gdk_pixbuf_render_to_drawable_alpha
|
||||
|
||||
#if IN_HEADER(__GDK_PIXMAP_H__)
|
||||
#if IN_FILE(__GDK_PIXMAP_C__)
|
||||
gdk_bitmap_create_from_data
|
||||
gdk_pixmap_colormap_create_from_xpm
|
||||
gdk_pixmap_create_from_data
|
||||
gdk_pixmap_create_from_xpm
|
||||
gdk_pixmap_colormap_create_from_xpm_d
|
||||
gdk_pixmap_create_from_xpm_d
|
||||
gdk_pixmap_get_type G_GNUC_CONST
|
||||
gdk_pixmap_new
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if IN_HEADER(__GDK_PIXMAP_H__)
|
||||
#if IN_FILE(__GDK_PIXMAP_X11_C__)
|
||||
gdk_pixmap_create_from_data
|
||||
gdk_pixmap_foreign_new
|
||||
gdk_pixmap_foreign_new_for_display
|
||||
gdk_pixmap_foreign_new_for_screen
|
||||
gdk_pixmap_lookup
|
||||
gdk_pixmap_lookup_for_display
|
||||
gdk_pixmap_new
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -964,7 +952,6 @@ gdk_region_copy
|
||||
gdk_region_destroy
|
||||
gdk_region_empty
|
||||
gdk_region_equal
|
||||
gdk_region_rect_equal
|
||||
gdk_region_get_clipbox
|
||||
gdk_region_get_rectangles
|
||||
gdk_region_intersect
|
||||
@@ -1022,8 +1009,12 @@ gdk_screen_get_monitor_at_point
|
||||
gdk_screen_get_monitor_at_window
|
||||
gdk_screen_set_font_options
|
||||
gdk_screen_get_font_options
|
||||
gdk_screen_set_font_options_for_monitor
|
||||
gdk_screen_get_font_options_for_monitor
|
||||
gdk_screen_set_resolution
|
||||
gdk_screen_get_resolution
|
||||
gdk_screen_get_resolution_for_monitor
|
||||
gdk_screen_set_resolution_for_monitor
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
@@ -50,10 +50,6 @@ gdk_cairo_create (GdkDrawable *drawable)
|
||||
|
||||
surface = _gdk_drawable_ref_cairo_surface (drawable);
|
||||
cr = cairo_create (surface);
|
||||
|
||||
if (GDK_DRAWABLE_GET_CLASS (drawable)->set_cairo_clip)
|
||||
GDK_DRAWABLE_GET_CLASS (drawable)->set_cairo_clip (drawable, cr);
|
||||
|
||||
cairo_surface_destroy (surface);
|
||||
|
||||
return cr;
|
||||
|
||||
+7
-670
@@ -22,11 +22,9 @@
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
#include <math.h>
|
||||
#include <glib.h>
|
||||
#include "gdk.h" /* gdk_event_send_client_message() */
|
||||
#include "gdkdisplay.h"
|
||||
#include "gdkwindowimpl.h"
|
||||
#include "gdkinternals.h"
|
||||
#include "gdkmarshalers.h"
|
||||
#include "gdkscreen.h"
|
||||
@@ -62,14 +60,6 @@ static GdkWindow* singlehead_default_window_get_pointer (GdkWindow *window
|
||||
static GdkWindow* singlehead_default_window_at_pointer (GdkScreen *screen,
|
||||
gint *win_x,
|
||||
gint *win_y);
|
||||
static GdkWindow *gdk_window_real_window_get_pointer (GdkDisplay *display,
|
||||
GdkWindow *window,
|
||||
gint *x,
|
||||
gint *y,
|
||||
GdkModifierType *mask);
|
||||
static GdkWindow *gdk_display_real_get_window_at_pointer (GdkDisplay *display,
|
||||
gint *win_x,
|
||||
gint *win_y);
|
||||
|
||||
static guint signals[LAST_SIGNAL] = { 0 };
|
||||
|
||||
@@ -77,8 +67,8 @@ static char *gdk_sm_client_id;
|
||||
|
||||
static const GdkDisplayPointerHooks default_pointer_hooks = {
|
||||
_gdk_windowing_get_pointer,
|
||||
gdk_window_real_window_get_pointer,
|
||||
gdk_display_real_get_window_at_pointer
|
||||
_gdk_windowing_window_get_pointer,
|
||||
_gdk_windowing_window_at_pointer
|
||||
};
|
||||
|
||||
static const GdkDisplayPointerHooks singlehead_pointer_hooks = {
|
||||
@@ -120,7 +110,7 @@ gdk_display_class_init (GdkDisplayClass *class)
|
||||
G_SIGNAL_RUN_LAST,
|
||||
G_STRUCT_OFFSET (GdkDisplayClass, closed),
|
||||
NULL, NULL,
|
||||
_gdk_marshal_VOID__BOOLEAN,
|
||||
gdk_marshal_VOID__BOOLEAN,
|
||||
G_TYPE_NONE,
|
||||
1,
|
||||
G_TYPE_BOOLEAN);
|
||||
@@ -444,25 +434,6 @@ _gdk_get_sm_client_id (void)
|
||||
return gdk_sm_client_id;
|
||||
}
|
||||
|
||||
void
|
||||
_gdk_display_enable_motion_hints (GdkDisplay *display)
|
||||
{
|
||||
gulong serial;
|
||||
|
||||
if (display->pointer_info.motion_hint_serial != 0)
|
||||
{
|
||||
serial = _gdk_windowing_window_get_next_serial (display);
|
||||
/* We might not actually generate the next request, so
|
||||
make sure this triggers always, this may cause it to
|
||||
trigger slightly too early, but this is just a hint
|
||||
anyway. */
|
||||
if (serial > 0)
|
||||
serial--;
|
||||
if (serial < display->pointer_info.motion_hint_serial)
|
||||
display->pointer_info.motion_hint_serial = serial;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* gdk_display_get_pointer:
|
||||
* @display: a #GdkDisplay
|
||||
@@ -502,68 +473,6 @@ gdk_display_get_pointer (GdkDisplay *display,
|
||||
*mask = tmp_mask;
|
||||
}
|
||||
|
||||
static GdkWindow *
|
||||
gdk_display_real_get_window_at_pointer (GdkDisplay *display,
|
||||
gint *win_x,
|
||||
gint *win_y)
|
||||
{
|
||||
GdkWindow *window;
|
||||
gint x, y;
|
||||
|
||||
window = _gdk_windowing_window_at_pointer (display, &x, &y, NULL);
|
||||
|
||||
/* This might need corrections, as the native window returned
|
||||
may contain client side children */
|
||||
if (window)
|
||||
{
|
||||
double xx, yy;
|
||||
|
||||
window = _gdk_window_find_descendant_at (window,
|
||||
x, y,
|
||||
&xx, &yy);
|
||||
x = floor (xx + 0.5);
|
||||
y = floor (yy + 0.5);
|
||||
}
|
||||
|
||||
*win_x = x;
|
||||
*win_y = y;
|
||||
|
||||
return window;
|
||||
}
|
||||
|
||||
static GdkWindow *
|
||||
gdk_window_real_window_get_pointer (GdkDisplay *display,
|
||||
GdkWindow *window,
|
||||
gint *x,
|
||||
gint *y,
|
||||
GdkModifierType *mask)
|
||||
{
|
||||
GdkWindowObject *private;
|
||||
gint tmpx, tmpy;
|
||||
GdkModifierType tmp_mask;
|
||||
gboolean normal_child;
|
||||
|
||||
private = (GdkWindowObject *) window;
|
||||
|
||||
normal_child = GDK_WINDOW_IMPL_GET_IFACE (private->impl)->get_pointer (window,
|
||||
&tmpx, &tmpy,
|
||||
&tmp_mask);
|
||||
/* We got the coords on the impl, convert to the window */
|
||||
tmpx -= private->abs_x;
|
||||
tmpy -= private->abs_y;
|
||||
|
||||
if (x)
|
||||
*x = tmpx;
|
||||
if (y)
|
||||
*y = tmpy;
|
||||
if (mask)
|
||||
*mask = tmp_mask;
|
||||
|
||||
if (normal_child)
|
||||
return _gdk_window_find_child_at (window, tmpx, tmpy);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* gdk_display_get_window_at_pointer:
|
||||
* @display: a #GdkDisplay
|
||||
@@ -677,8 +586,8 @@ singlehead_default_window_get_pointer (GdkWindow *window,
|
||||
gint *y,
|
||||
GdkModifierType *mask)
|
||||
{
|
||||
return gdk_window_real_window_get_pointer (gdk_drawable_get_display (window),
|
||||
window, x, y, mask);
|
||||
return _gdk_windowing_window_get_pointer (gdk_drawable_get_display (window),
|
||||
window, x, y, mask);
|
||||
}
|
||||
|
||||
static GdkWindow*
|
||||
@@ -686,8 +595,8 @@ singlehead_default_window_at_pointer (GdkScreen *screen,
|
||||
gint *win_x,
|
||||
gint *win_y)
|
||||
{
|
||||
return gdk_display_real_get_window_at_pointer (gdk_screen_get_display (screen),
|
||||
win_x, win_y);
|
||||
return _gdk_windowing_window_at_pointer (gdk_screen_get_display (screen),
|
||||
win_x, win_y);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -723,577 +632,5 @@ gdk_set_pointer_hooks (const GdkPointerHooks *new_hooks)
|
||||
return (GdkPointerHooks *)result;
|
||||
}
|
||||
|
||||
static void
|
||||
generate_grab_broken_event (GdkWindow *window,
|
||||
gboolean keyboard,
|
||||
gboolean implicit,
|
||||
GdkWindow *grab_window)
|
||||
{
|
||||
g_return_if_fail (window != NULL);
|
||||
|
||||
if (!GDK_WINDOW_DESTROYED (window))
|
||||
{
|
||||
GdkEvent event;
|
||||
event.type = GDK_GRAB_BROKEN;
|
||||
event.grab_broken.window = window;
|
||||
event.grab_broken.send_event = 0;
|
||||
event.grab_broken.keyboard = keyboard;
|
||||
event.grab_broken.implicit = implicit;
|
||||
event.grab_broken.grab_window = grab_window;
|
||||
gdk_event_put (&event);
|
||||
}
|
||||
}
|
||||
|
||||
GdkPointerGrabInfo *
|
||||
_gdk_display_get_last_pointer_grab (GdkDisplay *display)
|
||||
{
|
||||
GList *l;
|
||||
|
||||
l = g_list_last (display->pointer_grabs);
|
||||
|
||||
if (l == NULL)
|
||||
return NULL;
|
||||
else
|
||||
return (GdkPointerGrabInfo *)l->data;
|
||||
}
|
||||
|
||||
|
||||
GdkPointerGrabInfo *
|
||||
_gdk_display_add_pointer_grab (GdkDisplay *display,
|
||||
GdkWindow *window,
|
||||
GdkWindow *native_window,
|
||||
gboolean owner_events,
|
||||
GdkEventMask event_mask,
|
||||
unsigned long serial_start,
|
||||
guint32 time,
|
||||
gboolean implicit)
|
||||
{
|
||||
GdkPointerGrabInfo *info, *other_info;
|
||||
GList *l;
|
||||
|
||||
info = g_new0 (GdkPointerGrabInfo, 1);
|
||||
|
||||
info->window = g_object_ref (window);
|
||||
info->native_window = g_object_ref (native_window);
|
||||
info->serial_start = serial_start;
|
||||
info->serial_end = G_MAXULONG;
|
||||
info->owner_events = owner_events;
|
||||
info->event_mask = event_mask;
|
||||
info->time = time;
|
||||
info->implicit = implicit;
|
||||
|
||||
/* Find the first grab that has a larger start time (if any) and insert
|
||||
* before that. I.E we insert after already existing grabs with same
|
||||
* start time */
|
||||
for (l = display->pointer_grabs; l != NULL; l = l->next)
|
||||
{
|
||||
other_info = l->data;
|
||||
|
||||
if (info->serial_start < other_info->serial_start)
|
||||
break;
|
||||
}
|
||||
display->pointer_grabs =
|
||||
g_list_insert_before (display->pointer_grabs, l, info);
|
||||
|
||||
/* Make sure the new grab end before next grab */
|
||||
if (l)
|
||||
{
|
||||
other_info = l->data;
|
||||
info->serial_end = other_info->serial_start;
|
||||
}
|
||||
|
||||
/* Find any previous grab and update its end time */
|
||||
l = g_list_find (display->pointer_grabs, info);
|
||||
l = l->prev;
|
||||
if (l)
|
||||
{
|
||||
other_info = l->data;
|
||||
other_info->serial_end = serial_start;
|
||||
}
|
||||
|
||||
return info;
|
||||
}
|
||||
|
||||
static void
|
||||
free_pointer_grab (GdkPointerGrabInfo *info)
|
||||
{
|
||||
g_object_unref (info->window);
|
||||
g_object_unref (info->native_window);
|
||||
g_free (info);
|
||||
}
|
||||
|
||||
/* _gdk_synthesize_crossing_events only works inside one toplevel.
|
||||
This function splits things into two calls if needed, converting the
|
||||
coordinates to the right toplevel */
|
||||
static void
|
||||
synthesize_crossing_events (GdkDisplay *display,
|
||||
GdkWindow *src_window,
|
||||
GdkWindow *dest_window,
|
||||
GdkCrossingMode crossing_mode,
|
||||
guint32 time,
|
||||
gulong serial)
|
||||
{
|
||||
GdkWindow *src_toplevel, *dest_toplevel;
|
||||
GdkModifierType state;
|
||||
int x, y;
|
||||
|
||||
if (src_window)
|
||||
src_toplevel = gdk_window_get_toplevel (src_window);
|
||||
else
|
||||
src_toplevel = NULL;
|
||||
if (dest_window)
|
||||
dest_toplevel = gdk_window_get_toplevel (dest_window);
|
||||
else
|
||||
dest_toplevel = NULL;
|
||||
|
||||
if (src_toplevel == NULL && dest_toplevel == NULL)
|
||||
return;
|
||||
|
||||
if (src_toplevel == NULL ||
|
||||
src_toplevel == dest_toplevel)
|
||||
{
|
||||
/* Same toplevels */
|
||||
gdk_window_get_pointer (dest_toplevel,
|
||||
&x, &y, &state);
|
||||
_gdk_synthesize_crossing_events (display,
|
||||
src_window,
|
||||
dest_window,
|
||||
crossing_mode,
|
||||
x, y, state,
|
||||
time,
|
||||
NULL,
|
||||
serial, FALSE);
|
||||
}
|
||||
else if (dest_toplevel == NULL)
|
||||
{
|
||||
gdk_window_get_pointer (src_toplevel,
|
||||
&x, &y, &state);
|
||||
_gdk_synthesize_crossing_events (display,
|
||||
src_window,
|
||||
NULL,
|
||||
crossing_mode,
|
||||
x, y, state,
|
||||
time,
|
||||
NULL,
|
||||
serial, FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Different toplevels */
|
||||
gdk_window_get_pointer (src_toplevel,
|
||||
&x, &y, &state);
|
||||
_gdk_synthesize_crossing_events (display,
|
||||
src_window,
|
||||
NULL,
|
||||
crossing_mode,
|
||||
x, y, state,
|
||||
time,
|
||||
NULL,
|
||||
serial, FALSE);
|
||||
gdk_window_get_pointer (dest_toplevel,
|
||||
&x, &y, &state);
|
||||
_gdk_synthesize_crossing_events (display,
|
||||
NULL,
|
||||
dest_window,
|
||||
crossing_mode,
|
||||
x, y, state,
|
||||
time,
|
||||
NULL,
|
||||
serial, FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
static GdkWindow *
|
||||
get_current_toplevel (GdkDisplay *display,
|
||||
int *x_out, int *y_out,
|
||||
GdkModifierType *state_out)
|
||||
{
|
||||
GdkWindow *pointer_window;
|
||||
GdkWindowObject *w;
|
||||
int x, y;
|
||||
GdkModifierType state;
|
||||
|
||||
pointer_window = _gdk_windowing_window_at_pointer (display, &x, &y, &state);
|
||||
if (pointer_window != NULL &&
|
||||
(GDK_WINDOW_DESTROYED (pointer_window) ||
|
||||
GDK_WINDOW_TYPE (pointer_window) == GDK_WINDOW_ROOT ||
|
||||
GDK_WINDOW_TYPE (pointer_window) == GDK_WINDOW_FOREIGN))
|
||||
pointer_window = NULL;
|
||||
|
||||
w = (GdkWindowObject *)pointer_window;
|
||||
if (w)
|
||||
{
|
||||
/* Convert to toplevel */
|
||||
while (w->parent != NULL &&
|
||||
w->parent->window_type != GDK_WINDOW_ROOT)
|
||||
{
|
||||
x += w->x;
|
||||
y += w->y;
|
||||
w = w->parent;
|
||||
}
|
||||
}
|
||||
|
||||
*x_out = x;
|
||||
*y_out = y;
|
||||
*state_out = state;
|
||||
return (GdkWindow *)w;
|
||||
}
|
||||
|
||||
static void
|
||||
switch_to_pointer_grab (GdkDisplay *display,
|
||||
GdkPointerGrabInfo *grab,
|
||||
GdkPointerGrabInfo *last_grab,
|
||||
guint32 time,
|
||||
gulong serial)
|
||||
{
|
||||
GdkWindow *src_window, *pointer_window, *new_toplevel;
|
||||
GList *old_grabs;
|
||||
GdkModifierType state;
|
||||
int x, y;
|
||||
|
||||
/* Temporarily unset pointer to make sure we send the crossing events below */
|
||||
old_grabs = display->pointer_grabs;
|
||||
display->pointer_grabs = NULL;
|
||||
|
||||
if (grab)
|
||||
{
|
||||
/* New grab is in effect */
|
||||
|
||||
/* We need to generate crossing events for the grab.
|
||||
* However, there are never any crossing events for implicit grabs
|
||||
* TODO: ... Actually, this could happen if the pointer window
|
||||
* doesn't have button mask so a parent gets the event...
|
||||
*/
|
||||
if (!grab->implicit)
|
||||
{
|
||||
/* We send GRAB crossing events from the window under the pointer to the
|
||||
grab window. Except if there is an old grab then we start from that */
|
||||
if (last_grab)
|
||||
src_window = last_grab->window;
|
||||
else
|
||||
src_window = display->pointer_info.window_under_pointer;
|
||||
|
||||
if (src_window != grab->window)
|
||||
{
|
||||
synthesize_crossing_events (display,
|
||||
src_window, grab->window,
|
||||
GDK_CROSSING_GRAB, time, serial);
|
||||
}
|
||||
|
||||
/* !owner_event Grabbing a window that we're not inside, current status is
|
||||
now NULL (i.e. outside grabbed window) */
|
||||
if (!grab->owner_events && display->pointer_info.window_under_pointer != grab->window)
|
||||
_gdk_display_set_window_under_pointer (display, NULL);
|
||||
}
|
||||
|
||||
grab->activated = TRUE;
|
||||
}
|
||||
|
||||
if (last_grab)
|
||||
{
|
||||
new_toplevel = NULL;
|
||||
|
||||
if (grab == NULL /* ungrab */ ||
|
||||
(!last_grab->owner_events && grab->owner_events) /* switched to owner_events */ )
|
||||
{
|
||||
/* We force check what window we're in, and update the toplevel_under_pointer info,
|
||||
* as that won't get told of this change with toplevel enter events.
|
||||
*/
|
||||
if (display->pointer_info.toplevel_under_pointer)
|
||||
g_object_unref (display->pointer_info.toplevel_under_pointer);
|
||||
display->pointer_info.toplevel_under_pointer = NULL;
|
||||
|
||||
new_toplevel = get_current_toplevel (display, &x, &y, &state);
|
||||
if (new_toplevel)
|
||||
{
|
||||
/* w is now toplevel and x,y in toplevel coords */
|
||||
display->pointer_info.toplevel_under_pointer = g_object_ref (new_toplevel);
|
||||
display->pointer_info.toplevel_x = x;
|
||||
display->pointer_info.toplevel_y = y;
|
||||
display->pointer_info.state = state;
|
||||
}
|
||||
}
|
||||
|
||||
if (grab == NULL) /* Ungrabbed, send events */
|
||||
{
|
||||
pointer_window = NULL;
|
||||
if (new_toplevel)
|
||||
{
|
||||
/* Find (possibly virtual) child window */
|
||||
pointer_window =
|
||||
_gdk_window_find_descendant_at (new_toplevel,
|
||||
x, y,
|
||||
NULL, NULL);
|
||||
}
|
||||
|
||||
if (pointer_window != last_grab->window)
|
||||
synthesize_crossing_events (display,
|
||||
last_grab->window, pointer_window,
|
||||
GDK_CROSSING_UNGRAB, time, serial);
|
||||
|
||||
/* We're now ungrabbed, update the window_under_pointer */
|
||||
_gdk_display_set_window_under_pointer (display, pointer_window);
|
||||
|
||||
if (last_grab->implicit_ungrab)
|
||||
generate_grab_broken_event (last_grab->window,
|
||||
FALSE, TRUE,
|
||||
NULL);
|
||||
}
|
||||
}
|
||||
|
||||
display->pointer_grabs = old_grabs;
|
||||
|
||||
}
|
||||
|
||||
void
|
||||
_gdk_display_pointer_grab_update (GdkDisplay *display,
|
||||
gulong current_serial)
|
||||
{
|
||||
GdkPointerGrabInfo *current_grab, *next_grab;
|
||||
guint32 time;
|
||||
|
||||
time = display->last_event_time;
|
||||
|
||||
while (display->pointer_grabs != NULL)
|
||||
{
|
||||
current_grab = display->pointer_grabs->data;
|
||||
|
||||
if (current_grab->serial_start > current_serial)
|
||||
return; /* Hasn't started yet */
|
||||
|
||||
if (current_grab->serial_end > current_serial ||
|
||||
(current_grab->serial_end == current_serial &&
|
||||
current_grab->grab_one_pointer_release_event))
|
||||
{
|
||||
/* This one hasn't ended yet.
|
||||
its the currently active one or scheduled to be active */
|
||||
|
||||
if (!current_grab->activated)
|
||||
switch_to_pointer_grab (display, current_grab, NULL, time, current_serial);
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
next_grab = NULL;
|
||||
if (display->pointer_grabs->next)
|
||||
{
|
||||
/* This is the next active grab */
|
||||
next_grab = display->pointer_grabs->next->data;
|
||||
|
||||
if (next_grab->serial_start > current_serial)
|
||||
next_grab = NULL; /* Actually its not yet active */
|
||||
}
|
||||
|
||||
if (next_grab == NULL ||
|
||||
current_grab->window != next_grab->window)
|
||||
generate_grab_broken_event (GDK_WINDOW (current_grab->window),
|
||||
FALSE, current_grab->implicit,
|
||||
next_grab? next_grab->window : NULL);
|
||||
|
||||
|
||||
/* Remove old grab */
|
||||
display->pointer_grabs =
|
||||
g_list_delete_link (display->pointer_grabs,
|
||||
display->pointer_grabs);
|
||||
|
||||
switch_to_pointer_grab (display,
|
||||
next_grab, current_grab,
|
||||
time, current_serial);
|
||||
|
||||
free_pointer_grab (current_grab);
|
||||
}
|
||||
}
|
||||
|
||||
static GList *
|
||||
find_pointer_grab (GdkDisplay *display,
|
||||
gulong serial)
|
||||
{
|
||||
GdkPointerGrabInfo *grab;
|
||||
GList *l;
|
||||
|
||||
for (l = display->pointer_grabs; l != NULL; l = l->next)
|
||||
{
|
||||
grab = l->data;
|
||||
|
||||
if (serial >= grab->serial_start && serial < grab->serial_end)
|
||||
return l;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
|
||||
GdkPointerGrabInfo *
|
||||
_gdk_display_has_pointer_grab (GdkDisplay *display,
|
||||
gulong serial)
|
||||
{
|
||||
GList *l;
|
||||
|
||||
l = find_pointer_grab (display, serial);
|
||||
if (l)
|
||||
return l->data;
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Returns true if last grab was ended */
|
||||
gboolean
|
||||
_gdk_display_end_pointer_grab (GdkDisplay *display,
|
||||
gulong serial,
|
||||
GdkWindow *if_child,
|
||||
gboolean implicit)
|
||||
{
|
||||
GdkPointerGrabInfo *grab;
|
||||
GList *l;
|
||||
|
||||
l = find_pointer_grab (display, serial);
|
||||
|
||||
if (l == NULL)
|
||||
return FALSE;
|
||||
|
||||
grab = l->data;
|
||||
if (grab &&
|
||||
(if_child == NULL ||
|
||||
_gdk_window_event_parent_of (grab->window, if_child)))
|
||||
{
|
||||
grab->serial_end = serial;
|
||||
grab->implicit_ungrab = implicit;
|
||||
return l->next == NULL;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void
|
||||
_gdk_display_set_has_keyboard_grab (GdkDisplay *display,
|
||||
GdkWindow *window,
|
||||
GdkWindow *native_window,
|
||||
gboolean owner_events,
|
||||
unsigned long serial,
|
||||
guint32 time)
|
||||
{
|
||||
if (display->keyboard_grab.window != NULL &&
|
||||
display->keyboard_grab.window != window)
|
||||
generate_grab_broken_event (display->keyboard_grab.window,
|
||||
TRUE, FALSE, window);
|
||||
|
||||
display->keyboard_grab.window = window;
|
||||
display->keyboard_grab.native_window = native_window;
|
||||
display->keyboard_grab.owner_events = owner_events;
|
||||
display->keyboard_grab.serial = serial;
|
||||
display->keyboard_grab.time = time;
|
||||
}
|
||||
|
||||
void
|
||||
_gdk_display_unset_has_keyboard_grab (GdkDisplay *display,
|
||||
gboolean implicit)
|
||||
{
|
||||
if (implicit)
|
||||
generate_grab_broken_event (display->keyboard_grab.window,
|
||||
TRUE, FALSE, NULL);
|
||||
display->keyboard_grab.window = NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* gdk_keyboard_grab_info_libgtk_only:
|
||||
* @display: the display for which to get the grab information
|
||||
* @grab_window: location to store current grab window
|
||||
* @owner_events: location to store boolean indicating whether
|
||||
* the @owner_events flag to gdk_keyboard_grab() was %TRUE.
|
||||
*
|
||||
* Determines information about the current keyboard grab.
|
||||
* This is not public API and must not be used by applications.
|
||||
*
|
||||
* Return value: %TRUE if this application currently has the
|
||||
* keyboard grabbed.
|
||||
**/
|
||||
gboolean
|
||||
gdk_keyboard_grab_info_libgtk_only (GdkDisplay *display,
|
||||
GdkWindow **grab_window,
|
||||
gboolean *owner_events)
|
||||
{
|
||||
g_return_val_if_fail (GDK_IS_DISPLAY (display), FALSE);
|
||||
|
||||
if (display->keyboard_grab.window)
|
||||
{
|
||||
if (grab_window)
|
||||
*grab_window = display->keyboard_grab.window;
|
||||
if (owner_events)
|
||||
*owner_events = display->keyboard_grab.owner_events;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/**
|
||||
* gdk_pointer_grab_info_libgtk_only:
|
||||
* @display: the #GdkDisplay for which to get the grab information
|
||||
* @grab_window: location to store current grab window
|
||||
* @owner_events: location to store boolean indicating whether
|
||||
* the @owner_events flag to gdk_pointer_grab() was %TRUE.
|
||||
*
|
||||
* Determines information about the current pointer grab.
|
||||
* This is not public API and must not be used by applications.
|
||||
*
|
||||
* Return value: %TRUE if this application currently has the
|
||||
* pointer grabbed.
|
||||
**/
|
||||
gboolean
|
||||
gdk_pointer_grab_info_libgtk_only (GdkDisplay *display,
|
||||
GdkWindow **grab_window,
|
||||
gboolean *owner_events)
|
||||
{
|
||||
GdkPointerGrabInfo *info;
|
||||
|
||||
g_return_val_if_fail (GDK_IS_DISPLAY (display), FALSE);
|
||||
|
||||
/* What we're interested in is the steady state (ie last grab),
|
||||
because we're interested e.g. if we grabbed so that we
|
||||
can ungrab, even if our grab is not active just yet. */
|
||||
info = _gdk_display_get_last_pointer_grab (display);
|
||||
|
||||
if (info)
|
||||
{
|
||||
if (grab_window)
|
||||
*grab_window = info->window;
|
||||
if (owner_events)
|
||||
*owner_events = info->owner_events;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* gdk_display_pointer_is_grabbed:
|
||||
* @display: a #GdkDisplay
|
||||
*
|
||||
* Test if the pointer is grabbed.
|
||||
*
|
||||
* Returns: %TRUE if an active X pointer grab is in effect
|
||||
*
|
||||
* Since: 2.2
|
||||
*/
|
||||
gboolean
|
||||
gdk_display_pointer_is_grabbed (GdkDisplay *display)
|
||||
{
|
||||
GdkPointerGrabInfo *info;
|
||||
|
||||
g_return_val_if_fail (GDK_IS_DISPLAY (display), TRUE);
|
||||
|
||||
/* What we're interested in is the steady state (ie last grab),
|
||||
because we're interested e.g. if we grabbed so that we
|
||||
can ungrab, even if our grab is not active just yet. */
|
||||
info = _gdk_display_get_last_pointer_grab (display);
|
||||
|
||||
return (info && !info->implicit);
|
||||
}
|
||||
|
||||
#define __GDK_DISPLAY_C__
|
||||
#include "gdkaliasdef.c"
|
||||
|
||||
@@ -43,33 +43,6 @@ typedef struct _GdkDisplayPointerHooks GdkDisplayPointerHooks;
|
||||
#define GDK_IS_DISPLAY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_DISPLAY))
|
||||
#define GDK_DISPLAY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_DISPLAY, GdkDisplayClass))
|
||||
|
||||
/* Tracks information about the keyboard grab on this display */
|
||||
typedef struct
|
||||
{
|
||||
GdkWindow *window;
|
||||
GdkWindow *native_window;
|
||||
gulong serial;
|
||||
gboolean owner_events;
|
||||
guint32 time;
|
||||
} GdkKeyboardGrabInfo;
|
||||
|
||||
/* Tracks information about which window and position the pointer last was in.
|
||||
* This is useful when we need to synthesize events later.
|
||||
* Note that we track toplevel_under_pointer using enter/leave events,
|
||||
* so in the case of a grab, either with owner_events==FALSE or with the
|
||||
* pointer in no clients window the x/y coordinates may actually be outside
|
||||
* the window.
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
GdkWindow *toplevel_under_pointer; /* The toplevel window with mouse inside, tracked via native events */
|
||||
GdkWindow *window_under_pointer; /* The window that last got sent a normal enter event */
|
||||
gdouble toplevel_x, toplevel_y;
|
||||
guint32 state;
|
||||
guint32 button;
|
||||
gulong motion_hint_serial; /* 0 == didn't deliver hinted motion event */
|
||||
} GdkPointerWindowInfo;
|
||||
|
||||
struct _GdkDisplay
|
||||
{
|
||||
GObject parent_instance;
|
||||
@@ -91,18 +64,10 @@ struct _GdkDisplay
|
||||
const GdkDisplayPointerHooks *pointer_hooks; /* Current hooks for querying pointer */
|
||||
|
||||
guint closed : 1; /* Whether this display has been closed */
|
||||
guint ignore_core_events : 1; /* Don't send core motion and button event */
|
||||
|
||||
guint double_click_distance; /* Maximum distance between clicks in pixels */
|
||||
gint button_x[2]; /* The last 2 button click positions. */
|
||||
gint button_y[2];
|
||||
|
||||
GList *pointer_grabs;
|
||||
GdkKeyboardGrabInfo keyboard_grab;
|
||||
GdkPointerWindowInfo pointer_info;
|
||||
|
||||
/* Last reported event time from server */
|
||||
guint32 last_event_time;
|
||||
};
|
||||
|
||||
struct _GdkDisplayClass
|
||||
|
||||
@@ -92,7 +92,7 @@ gdk_display_manager_class_init (GdkDisplayManagerClass *klass)
|
||||
G_SIGNAL_RUN_LAST,
|
||||
G_STRUCT_OFFSET (GdkDisplayManagerClass, display_opened),
|
||||
NULL, NULL,
|
||||
_gdk_marshal_VOID__OBJECT,
|
||||
gdk_marshal_VOID__OBJECT,
|
||||
G_TYPE_NONE,
|
||||
1,
|
||||
GDK_TYPE_DISPLAY);
|
||||
|
||||
+18
-162
@@ -61,15 +61,6 @@ static void gdk_drawable_real_draw_pixbuf (GdkDrawable *draw
|
||||
GdkRgbDither dither,
|
||||
gint x_dither,
|
||||
gint y_dither);
|
||||
static void gdk_drawable_real_draw_drawable (GdkDrawable *drawable,
|
||||
GdkGC *gc,
|
||||
GdkDrawable *src,
|
||||
gint xsrc,
|
||||
gint ysrc,
|
||||
gint xdest,
|
||||
gint ydest,
|
||||
gint width,
|
||||
gint height);
|
||||
|
||||
|
||||
G_DEFINE_ABSTRACT_TYPE (GdkDrawable, gdk_drawable, G_TYPE_OBJECT)
|
||||
@@ -83,7 +74,6 @@ gdk_drawable_class_init (GdkDrawableClass *klass)
|
||||
klass->get_clip_region = gdk_drawable_real_get_visible_region;
|
||||
klass->get_visible_region = gdk_drawable_real_get_visible_region;
|
||||
klass->draw_pixbuf = gdk_drawable_real_draw_pixbuf;
|
||||
klass->draw_drawable = gdk_drawable_real_draw_drawable;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -160,8 +150,7 @@ gdk_drawable_get_size (GdkDrawable *drawable,
|
||||
{
|
||||
g_return_if_fail (GDK_IS_DRAWABLE (drawable));
|
||||
|
||||
if (GDK_DRAWABLE_GET_CLASS (drawable)->get_size != NULL)
|
||||
GDK_DRAWABLE_GET_CLASS (drawable)->get_size (drawable, width, height);
|
||||
GDK_DRAWABLE_GET_CLASS (drawable)->get_size (drawable, width, height);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -634,7 +623,7 @@ gdk_draw_drawable (GdkDrawable *drawable,
|
||||
gint width,
|
||||
gint height)
|
||||
{
|
||||
GdkDrawable *composite, *composite_impl;
|
||||
GdkDrawable *composite;
|
||||
gint composite_x_offset = 0;
|
||||
gint composite_y_offset = 0;
|
||||
|
||||
@@ -663,37 +652,13 @@ gdk_draw_drawable (GdkDrawable *drawable,
|
||||
&composite_x_offset,
|
||||
&composite_y_offset);
|
||||
|
||||
/* The draw_drawable call below is will recurse into gdk_draw_drawable again,
|
||||
* specifying the right impl for the destination. This means the composite
|
||||
* we got here will be fed to get_composite_drawable again, which is a problem
|
||||
* for window as that causes double the composite offset. Avoid this by passing
|
||||
* in the impl directly.
|
||||
*/
|
||||
if (GDK_IS_WINDOW (composite))
|
||||
composite_impl = GDK_WINDOW_OBJECT (src)->impl;
|
||||
else
|
||||
composite_impl = composite;
|
||||
|
||||
/* TODO: For non-native windows this may copy stuff from other overlapping
|
||||
windows. We should clip that and (for windows with bg != None) clear that
|
||||
area in the destination instead. */
|
||||
|
||||
if (GDK_DRAWABLE_GET_CLASS (drawable)->draw_drawable_with_src)
|
||||
GDK_DRAWABLE_GET_CLASS (drawable)->draw_drawable_with_src (drawable, gc,
|
||||
composite_impl,
|
||||
xsrc - composite_x_offset,
|
||||
ysrc - composite_y_offset,
|
||||
xdest, ydest,
|
||||
width, height,
|
||||
src);
|
||||
else /* backwards compat for old out-of-tree implementations of GdkDrawable (are there any?) */
|
||||
GDK_DRAWABLE_GET_CLASS (drawable)->draw_drawable (drawable, gc,
|
||||
composite_impl,
|
||||
xsrc - composite_x_offset,
|
||||
ysrc - composite_y_offset,
|
||||
xdest, ydest,
|
||||
width, height);
|
||||
|
||||
|
||||
GDK_DRAWABLE_GET_CLASS (drawable)->draw_drawable (drawable, gc, composite,
|
||||
xsrc - composite_x_offset,
|
||||
ysrc - composite_y_offset,
|
||||
xdest, ydest,
|
||||
width, height);
|
||||
|
||||
g_object_unref (composite);
|
||||
}
|
||||
|
||||
@@ -762,6 +727,9 @@ gdk_draw_image (GdkDrawable *drawable,
|
||||
* On older X servers, rendering pixbufs with an alpha channel involves round
|
||||
* trips to the X server, and may be somewhat slow.
|
||||
*
|
||||
* The clip mask of @gc is ignored, but clip rectangles and clip regions work
|
||||
* fine.
|
||||
*
|
||||
* If GDK is built with the Sun mediaLib library, the gdk_draw_pixbuf
|
||||
* function is accelerated using mediaLib, which provides hardware
|
||||
* acceleration on Intel, AMD, and Sparc chipsets. If desired, mediaLib
|
||||
@@ -903,7 +871,7 @@ real_draw_glyphs (GdkDrawable *drawable,
|
||||
cairo_t *cr;
|
||||
|
||||
cr = gdk_cairo_create (drawable);
|
||||
_gdk_gc_update_context (gc, cr, NULL, NULL, TRUE, drawable);
|
||||
_gdk_gc_update_context (gc, cr, NULL, NULL, TRUE);
|
||||
|
||||
if (matrix)
|
||||
{
|
||||
@@ -1027,7 +995,7 @@ gdk_draw_trapezoids (GdkDrawable *drawable,
|
||||
g_return_if_fail (n_trapezoids == 0 || trapezoids != NULL);
|
||||
|
||||
cr = gdk_cairo_create (drawable);
|
||||
_gdk_gc_update_context (gc, cr, NULL, NULL, TRUE, drawable);
|
||||
_gdk_gc_update_context (gc, cr, NULL, NULL, TRUE);
|
||||
|
||||
for (i = 0; i < n_trapezoids; i++)
|
||||
{
|
||||
@@ -1217,7 +1185,7 @@ gdk_drawable_real_get_image (GdkDrawable *drawable,
|
||||
return gdk_drawable_copy_to_image (drawable, NULL, x, y, 0, 0, width, height);
|
||||
}
|
||||
|
||||
static GdkDrawable *
|
||||
static GdkDrawable*
|
||||
gdk_drawable_real_get_composite_drawable (GdkDrawable *drawable,
|
||||
gint x,
|
||||
gint y,
|
||||
@@ -1516,31 +1484,6 @@ composite_565 (guchar *src_buf,
|
||||
}
|
||||
}
|
||||
|
||||
/* Implementation of the old vfunc in terms of the new one
|
||||
in case someone calls it directly (which they shouldn't!) */
|
||||
static void
|
||||
gdk_drawable_real_draw_drawable (GdkDrawable *drawable,
|
||||
GdkGC *gc,
|
||||
GdkDrawable *src,
|
||||
gint xsrc,
|
||||
gint ysrc,
|
||||
gint xdest,
|
||||
gint ydest,
|
||||
gint width,
|
||||
gint height)
|
||||
{
|
||||
GDK_DRAWABLE_GET_CLASS (drawable)->draw_drawable_with_src (drawable,
|
||||
gc,
|
||||
src,
|
||||
xsrc,
|
||||
ysrc,
|
||||
xdest,
|
||||
ydest,
|
||||
width,
|
||||
height,
|
||||
src);
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_drawable_real_draw_pixbuf (GdkDrawable *drawable,
|
||||
GdkGC *gc,
|
||||
@@ -1560,7 +1503,6 @@ gdk_drawable_real_draw_pixbuf (GdkDrawable *drawable,
|
||||
GdkRegion *clip;
|
||||
GdkRegion *drect;
|
||||
GdkRectangle tmp_rect;
|
||||
GdkDrawable *real_drawable;
|
||||
|
||||
g_return_if_fail (GDK_IS_PIXBUF (pixbuf));
|
||||
g_return_if_fail (pixbuf->colorspace == GDK_COLORSPACE_RGB);
|
||||
@@ -1633,16 +1575,6 @@ gdk_drawable_real_draw_pixbuf (GdkDrawable *drawable,
|
||||
/* Actually draw */
|
||||
if (!gc)
|
||||
gc = _gdk_drawable_get_scratch_gc (drawable, FALSE);
|
||||
|
||||
/* Drawable is a wrapper here, but at this time we
|
||||
have already retargeted the destination to any
|
||||
impl window and set the clip, so what we really
|
||||
want to do is draw directly on the impl, ignoring
|
||||
client side subwindows. */
|
||||
if (GDK_IS_WINDOW (drawable))
|
||||
real_drawable = GDK_WINDOW_OBJECT (drawable)->impl;
|
||||
else
|
||||
real_drawable = drawable;
|
||||
|
||||
if (pixbuf->has_alpha)
|
||||
{
|
||||
@@ -1713,7 +1645,7 @@ gdk_drawable_real_draw_pixbuf (GdkDrawable *drawable,
|
||||
image->bpl,
|
||||
visual->byte_order,
|
||||
width1, height1);
|
||||
gdk_draw_image (real_drawable, gc, image,
|
||||
gdk_draw_image (drawable, gc, image,
|
||||
xs0, ys0,
|
||||
dest_x + x0, dest_y + y0,
|
||||
width1, height1);
|
||||
@@ -1754,7 +1686,7 @@ gdk_drawable_real_draw_pixbuf (GdkDrawable *drawable,
|
||||
{
|
||||
guchar *buf = pixbuf->pixels + src_y * pixbuf->rowstride + src_x * 4;
|
||||
|
||||
gdk_draw_rgb_32_image_dithalign (real_drawable, gc,
|
||||
gdk_draw_rgb_32_image_dithalign (drawable, gc,
|
||||
dest_x, dest_y,
|
||||
width, height,
|
||||
dither,
|
||||
@@ -1765,7 +1697,7 @@ gdk_drawable_real_draw_pixbuf (GdkDrawable *drawable,
|
||||
{
|
||||
guchar *buf = pixbuf->pixels + src_y * pixbuf->rowstride + src_x * 3;
|
||||
|
||||
gdk_draw_rgb_image_dithalign (real_drawable, gc,
|
||||
gdk_draw_rgb_image_dithalign (drawable, gc,
|
||||
dest_x, dest_y,
|
||||
width, height,
|
||||
dither,
|
||||
@@ -1839,81 +1771,5 @@ _gdk_drawable_get_scratch_gc (GdkDrawable *drawable,
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* _gdk_drawable_get_subwindow_scratch_gc:
|
||||
* @drawable: A #GdkDrawable
|
||||
*
|
||||
* Returns a #GdkGC suitable for drawing on @drawable. The #GdkGC has
|
||||
* the standard values for @drawable, except for the graphics_exposures
|
||||
* field which is %TRUE and the subwindow mode which is %GDK_INCLUDE_INFERIORS.
|
||||
*
|
||||
* The foreground color of the returned #GdkGC is undefined. The #GdkGC
|
||||
* must not be altered in any way, except to change its foreground color.
|
||||
*
|
||||
* Return value: A #GdkGC suitable for drawing on @drawable
|
||||
*
|
||||
* Since: 2.18
|
||||
**/
|
||||
GdkGC *
|
||||
_gdk_drawable_get_subwindow_scratch_gc (GdkDrawable *drawable)
|
||||
{
|
||||
GdkScreen *screen;
|
||||
gint depth;
|
||||
|
||||
g_return_val_if_fail (GDK_IS_DRAWABLE (drawable), NULL);
|
||||
|
||||
screen = gdk_drawable_get_screen (drawable);
|
||||
|
||||
g_return_val_if_fail (!screen->closed, NULL);
|
||||
|
||||
depth = gdk_drawable_get_depth (drawable) - 1;
|
||||
|
||||
if (!screen->subwindow_gcs[depth])
|
||||
{
|
||||
GdkGCValues values;
|
||||
GdkGCValuesMask mask;
|
||||
|
||||
values.graphics_exposures = TRUE;
|
||||
values.subwindow_mode = GDK_INCLUDE_INFERIORS;
|
||||
mask = GDK_GC_EXPOSURES | GDK_GC_SUBWINDOW;
|
||||
|
||||
screen->subwindow_gcs[depth] =
|
||||
gdk_gc_new_with_values (drawable, &values, mask);
|
||||
}
|
||||
|
||||
return screen->subwindow_gcs[depth];
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* _gdk_drawable_get_source_drawable:
|
||||
* @drawable: a #GdkDrawable
|
||||
*
|
||||
* Returns a drawable for the passed @drawable that is guaranteed to be
|
||||
* usable to create a pixmap (e.g.: not an offscreen window).
|
||||
*
|
||||
* Since: 2.16
|
||||
*/
|
||||
GdkDrawable *
|
||||
_gdk_drawable_get_source_drawable (GdkDrawable *drawable)
|
||||
{
|
||||
g_return_val_if_fail (GDK_IS_DRAWABLE (drawable), NULL);
|
||||
|
||||
if (GDK_DRAWABLE_GET_CLASS (drawable)->get_source_drawable)
|
||||
return GDK_DRAWABLE_GET_CLASS (drawable)->get_source_drawable (drawable);
|
||||
|
||||
return drawable;
|
||||
}
|
||||
|
||||
cairo_surface_t *
|
||||
_gdk_drawable_create_cairo_surface (GdkDrawable *drawable,
|
||||
int width,
|
||||
int height)
|
||||
{
|
||||
return GDK_DRAWABLE_GET_CLASS (drawable)->create_cairo_surface (drawable,
|
||||
width, height);
|
||||
}
|
||||
|
||||
|
||||
#define __GDK_DRAW_C__
|
||||
#include "gdkaliasdef.c"
|
||||
|
||||
+4
-20
@@ -200,27 +200,10 @@ struct _GdkDrawableClass
|
||||
|
||||
cairo_surface_t *(*ref_cairo_surface) (GdkDrawable *drawable);
|
||||
|
||||
GdkDrawable *(*get_source_drawable) (GdkDrawable *drawable);
|
||||
|
||||
void (*set_cairo_clip) (GdkDrawable *drawable,
|
||||
cairo_t *cr);
|
||||
|
||||
cairo_surface_t * (*create_cairo_surface) (GdkDrawable *drawable,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
void (*draw_drawable_with_src) (GdkDrawable *drawable,
|
||||
GdkGC *gc,
|
||||
GdkDrawable *src,
|
||||
gint xsrc,
|
||||
gint ysrc,
|
||||
gint xdest,
|
||||
gint ydest,
|
||||
gint width,
|
||||
gint height,
|
||||
GdkDrawable *original_src);
|
||||
|
||||
/* Padding for future expansion */
|
||||
void (*_gdk_reserved4) (void);
|
||||
void (*_gdk_reserved5) (void);
|
||||
void (*_gdk_reserved6) (void);
|
||||
void (*_gdk_reserved7) (void);
|
||||
void (*_gdk_reserved9) (void);
|
||||
void (*_gdk_reserved10) (void);
|
||||
@@ -229,6 +212,7 @@ struct _GdkDrawableClass
|
||||
void (*_gdk_reserved13) (void);
|
||||
void (*_gdk_reserved14) (void);
|
||||
void (*_gdk_reserved15) (void);
|
||||
void (*_gdk_reserved16) (void);
|
||||
};
|
||||
|
||||
struct _GdkTrapezoid
|
||||
|
||||
+3
-76
@@ -120,63 +120,6 @@ _gdk_event_queue_append (GdkDisplay *display,
|
||||
return display->queued_tail;
|
||||
}
|
||||
|
||||
/**
|
||||
* _gdk_event_queue_insert_after:
|
||||
* @display: a #GdkDisplay
|
||||
* @sibling: Append after this event.
|
||||
* @event: Event to append.
|
||||
*
|
||||
* Appends an event after the specified event, or if it isn't in
|
||||
* the queue, onto the tail of the event queue.
|
||||
*
|
||||
* Returns: the newly appended list node.
|
||||
*
|
||||
* Since: 2.16
|
||||
*/
|
||||
GList*
|
||||
_gdk_event_queue_insert_after (GdkDisplay *display,
|
||||
GdkEvent *sibling,
|
||||
GdkEvent *event)
|
||||
{
|
||||
GList *prev = g_list_find (display->queued_events, sibling);
|
||||
if (prev && prev->next)
|
||||
{
|
||||
display->queued_events = g_list_insert_before (display->queued_events, prev->next, event);
|
||||
return prev->next;
|
||||
}
|
||||
else
|
||||
return _gdk_event_queue_append (display, event);
|
||||
}
|
||||
|
||||
/**
|
||||
* _gdk_event_queue_insert_after:
|
||||
* @display: a #GdkDisplay
|
||||
* @sibling: Append after this event.
|
||||
* @event: Event to append.
|
||||
*
|
||||
* Appends an event before the specified event, or if it isn't in
|
||||
* the queue, onto the tail of the event queue.
|
||||
*
|
||||
* Returns: the newly appended list node.
|
||||
*
|
||||
* Since: 2.16
|
||||
*/
|
||||
GList*
|
||||
_gdk_event_queue_insert_before (GdkDisplay *display,
|
||||
GdkEvent *sibling,
|
||||
GdkEvent *event)
|
||||
{
|
||||
GList *next = g_list_find (display->queued_events, sibling);
|
||||
if (next)
|
||||
{
|
||||
display->queued_events = g_list_insert_before (display->queued_events, next, event);
|
||||
return next->prev;
|
||||
}
|
||||
else
|
||||
return _gdk_event_queue_append (display, event);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* _gdk_event_queue_remove_link:
|
||||
* @display: a #GdkDisplay
|
||||
@@ -632,7 +575,6 @@ gdk_event_get_time (const GdkEvent *event)
|
||||
case GDK_SETTING:
|
||||
case GDK_OWNER_CHANGE:
|
||||
case GDK_GRAB_BROKEN:
|
||||
case GDK_EVENT_LAST:
|
||||
/* return current time */
|
||||
break;
|
||||
}
|
||||
@@ -711,7 +653,6 @@ gdk_event_get_state (const GdkEvent *event,
|
||||
case GDK_SETTING:
|
||||
case GDK_OWNER_CHANGE:
|
||||
case GDK_GRAB_BROKEN:
|
||||
case GDK_EVENT_LAST:
|
||||
/* no state field */
|
||||
break;
|
||||
}
|
||||
@@ -943,17 +884,9 @@ gdk_event_get_axis (const GdkEvent *event,
|
||||
void
|
||||
gdk_event_request_motions (const GdkEventMotion *event)
|
||||
{
|
||||
GdkDisplay *display;
|
||||
|
||||
g_return_if_fail (event != NULL);
|
||||
|
||||
if (event->type == GDK_MOTION_NOTIFY && event->is_hint)
|
||||
{
|
||||
gdk_device_get_state (event->device, event->window, NULL, NULL);
|
||||
|
||||
display = gdk_drawable_get_display (event->window);
|
||||
_gdk_display_enable_motion_hints (display);
|
||||
}
|
||||
gdk_device_get_state (event->device, event->window, NULL, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1168,16 +1101,13 @@ gdk_synthesize_click (GdkDisplay *display,
|
||||
gint nclicks)
|
||||
{
|
||||
GdkEvent temp_event;
|
||||
GdkEvent *event_copy;
|
||||
GList *link;
|
||||
|
||||
g_return_if_fail (event != NULL);
|
||||
|
||||
temp_event = *event;
|
||||
temp_event.type = (nclicks == 2) ? GDK_2BUTTON_PRESS : GDK_3BUTTON_PRESS;
|
||||
|
||||
event_copy = gdk_event_copy (&temp_event);
|
||||
link = _gdk_event_queue_append (display, event_copy);
|
||||
|
||||
gdk_display_put_event (display, &temp_event);
|
||||
}
|
||||
|
||||
void
|
||||
@@ -1266,9 +1196,6 @@ gdk_synthesize_window_state (GdkWindow *window,
|
||||
|
||||
((GdkWindowObject*) window)->state = temp_event.window_state.new_window_state;
|
||||
|
||||
if (temp_event.window_state.changed_mask & GDK_WINDOW_STATE_WITHDRAWN)
|
||||
_gdk_window_update_viewable (window);
|
||||
|
||||
/* We only really send the event to toplevels, since
|
||||
* all the window states don't apply to non-toplevels.
|
||||
* Non-toplevels do use the GDK_WINDOW_STATE_WITHDRAWN flag
|
||||
|
||||
+1
-2
@@ -151,8 +151,7 @@ typedef enum
|
||||
GDK_SETTING = 33,
|
||||
GDK_OWNER_CHANGE = 34,
|
||||
GDK_GRAB_BROKEN = 35,
|
||||
GDK_DAMAGE = 36,
|
||||
GDK_EVENT_LAST /* helper variable for decls */
|
||||
GDK_DAMAGE = 36
|
||||
} GdkEventType;
|
||||
|
||||
/* Event masks. (Used to select what types of events a window
|
||||
|
||||
+9
-253
@@ -43,24 +43,12 @@ struct _GdkGCPrivate
|
||||
{
|
||||
GdkRegion *clip_region;
|
||||
|
||||
guint32 region_tag_applied;
|
||||
int region_tag_offset_x;
|
||||
int region_tag_offset_y;
|
||||
|
||||
GdkRegion *old_clip_region;
|
||||
GdkPixmap *old_clip_mask;
|
||||
|
||||
GdkFill fill;
|
||||
GdkBitmap *stipple;
|
||||
GdkPixmap *tile;
|
||||
|
||||
GdkPixmap *clip_mask;
|
||||
|
||||
|
||||
guint32 fg_pixel;
|
||||
guint32 bg_pixel;
|
||||
|
||||
guint subwindow_mode : 1;
|
||||
guint fill : 2;
|
||||
guint exposures : 2;
|
||||
};
|
||||
|
||||
#define GDK_GC_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GDK_TYPE_GC, GdkGCPrivate))
|
||||
@@ -162,8 +150,6 @@ _gdk_gc_init (GdkGC *gc,
|
||||
gc->clip_x_origin = values->clip_x_origin;
|
||||
if (values_mask & GDK_GC_CLIP_Y_ORIGIN)
|
||||
gc->clip_y_origin = values->clip_y_origin;
|
||||
if ((values_mask & GDK_GC_CLIP_MASK) && values->clip_mask)
|
||||
priv->clip_mask = g_object_ref (values->clip_mask);
|
||||
if (values_mask & GDK_GC_TS_X_ORIGIN)
|
||||
gc->ts_x_origin = values->ts_x_origin;
|
||||
if (values_mask & GDK_GC_TS_Y_ORIGIN)
|
||||
@@ -186,12 +172,6 @@ _gdk_gc_init (GdkGC *gc,
|
||||
priv->fg_pixel = values->foreground.pixel;
|
||||
if (values_mask & GDK_GC_BACKGROUND)
|
||||
priv->bg_pixel = values->background.pixel;
|
||||
if (values_mask & GDK_GC_SUBWINDOW)
|
||||
priv->subwindow_mode = values->subwindow_mode;
|
||||
if (values_mask & GDK_GC_EXPOSURES)
|
||||
priv->exposures = values->graphics_exposures;
|
||||
else
|
||||
priv->exposures = TRUE;
|
||||
|
||||
gc->colormap = gdk_drawable_get_colormap (drawable);
|
||||
if (gc->colormap)
|
||||
@@ -203,15 +183,9 @@ gdk_gc_finalize (GObject *object)
|
||||
{
|
||||
GdkGC *gc = GDK_GC (object);
|
||||
GdkGCPrivate *priv = GDK_GC_GET_PRIVATE (gc);
|
||||
|
||||
|
||||
if (priv->clip_region)
|
||||
gdk_region_destroy (priv->clip_region);
|
||||
if (priv->old_clip_region)
|
||||
gdk_region_destroy (priv->old_clip_region);
|
||||
if (priv->clip_mask)
|
||||
g_object_unref (priv->clip_mask);
|
||||
if (priv->old_clip_mask)
|
||||
g_object_unref (priv->old_clip_mask);
|
||||
if (gc->colormap)
|
||||
g_object_unref (gc->colormap);
|
||||
if (priv->tile)
|
||||
@@ -295,12 +269,6 @@ gdk_gc_set_values (GdkGC *gc,
|
||||
|
||||
priv = GDK_GC_GET_PRIVATE (gc);
|
||||
|
||||
if ((values_mask & GDK_GC_CLIP_X_ORIGIN) ||
|
||||
(values_mask & GDK_GC_CLIP_Y_ORIGIN) ||
|
||||
(values_mask & GDK_GC_CLIP_MASK) ||
|
||||
(values_mask & GDK_GC_SUBWINDOW))
|
||||
_gdk_gc_remove_drawable_clip (gc);
|
||||
|
||||
if (values_mask & GDK_GC_CLIP_X_ORIGIN)
|
||||
gc->clip_x_origin = values->clip_x_origin;
|
||||
if (values_mask & GDK_GC_CLIP_Y_ORIGIN)
|
||||
@@ -311,14 +279,6 @@ gdk_gc_set_values (GdkGC *gc,
|
||||
gc->ts_y_origin = values->ts_y_origin;
|
||||
if (values_mask & GDK_GC_CLIP_MASK)
|
||||
{
|
||||
if (priv->clip_mask)
|
||||
{
|
||||
g_object_unref (priv->clip_mask);
|
||||
priv->clip_mask = NULL;
|
||||
}
|
||||
if (values->clip_mask)
|
||||
priv->clip_mask = g_object_ref (values->clip_mask);
|
||||
|
||||
if (priv->clip_region)
|
||||
{
|
||||
gdk_region_destroy (priv->clip_region);
|
||||
@@ -353,10 +313,6 @@ gdk_gc_set_values (GdkGC *gc,
|
||||
priv->fg_pixel = values->foreground.pixel;
|
||||
if (values_mask & GDK_GC_BACKGROUND)
|
||||
priv->bg_pixel = values->background.pixel;
|
||||
if (values_mask & GDK_GC_SUBWINDOW)
|
||||
priv->subwindow_mode = values->subwindow_mode;
|
||||
if (values_mask & GDK_GC_EXPOSURES)
|
||||
priv->exposures = values->graphics_exposures;
|
||||
|
||||
GDK_GC_GET_CLASS (gc)->set_values (gc, values, values_mask);
|
||||
}
|
||||
@@ -586,145 +542,18 @@ gdk_gc_set_clip_mask (GdkGC *gc,
|
||||
gdk_gc_set_values (gc, &values, GDK_GC_CLIP_MASK);
|
||||
}
|
||||
|
||||
/* Takes ownership of passed in region */
|
||||
static void
|
||||
_gdk_gc_set_clip_region_real (GdkGC *gc,
|
||||
GdkRegion *region,
|
||||
gboolean reset_origin)
|
||||
_gdk_gc_set_clip_region_internal (GdkGC *gc,
|
||||
GdkRegion *region)
|
||||
{
|
||||
GdkGCPrivate *priv = GDK_GC_GET_PRIVATE (gc);
|
||||
|
||||
if (priv->clip_mask)
|
||||
{
|
||||
g_object_unref (priv->clip_mask);
|
||||
priv->clip_mask = NULL;
|
||||
}
|
||||
|
||||
if (priv->clip_region)
|
||||
gdk_region_destroy (priv->clip_region);
|
||||
|
||||
priv->clip_region = region;
|
||||
|
||||
_gdk_windowing_gc_set_clip_region (gc, region, reset_origin);
|
||||
}
|
||||
|
||||
/* Doesn't copy region, allows not to reset origin */
|
||||
void
|
||||
_gdk_gc_set_clip_region_internal (GdkGC *gc,
|
||||
GdkRegion *region,
|
||||
gboolean reset_origin)
|
||||
{
|
||||
_gdk_gc_remove_drawable_clip (gc);
|
||||
_gdk_gc_set_clip_region_real (gc, region, reset_origin);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
_gdk_gc_add_drawable_clip (GdkGC *gc,
|
||||
guint32 region_tag,
|
||||
GdkRegion *region,
|
||||
int offset_x,
|
||||
int offset_y)
|
||||
{
|
||||
GdkGCPrivate *priv = GDK_GC_GET_PRIVATE (gc);
|
||||
|
||||
if (priv->region_tag_applied == region_tag &&
|
||||
offset_x == priv->region_tag_offset_x &&
|
||||
offset_y == priv->region_tag_offset_y)
|
||||
return; /* Already appied this drawable region */
|
||||
|
||||
if (priv->region_tag_applied)
|
||||
_gdk_gc_remove_drawable_clip (gc);
|
||||
|
||||
region = gdk_region_copy (region);
|
||||
if (offset_x != 0 || offset_y != 0)
|
||||
gdk_region_offset (region, offset_x, offset_y);
|
||||
|
||||
if (priv->clip_mask)
|
||||
{
|
||||
int w, h;
|
||||
GdkPixmap *new_mask;
|
||||
GdkGC *tmp_gc;
|
||||
GdkColor black = {0, 0, 0, 0};
|
||||
GdkRectangle r;
|
||||
GdkOverlapType overlap;
|
||||
|
||||
gdk_drawable_get_size (priv->clip_mask, &w, &h);
|
||||
|
||||
r.x = 0;
|
||||
r.y = 0;
|
||||
r.width = w;
|
||||
r.height = h;
|
||||
|
||||
/* Its quite common to expose areas that are completely in or outside
|
||||
* the region, so we try to avoid allocating bitmaps that are just fully
|
||||
* set or completely unset.
|
||||
*/
|
||||
overlap = gdk_region_rect_in (region, &r);
|
||||
if (overlap == GDK_OVERLAP_RECTANGLE_PART)
|
||||
{
|
||||
/* The region and the mask intersect, create a new clip mask that
|
||||
includes both areas */
|
||||
priv->old_clip_mask = g_object_ref (priv->clip_mask);
|
||||
new_mask = gdk_pixmap_new (priv->old_clip_mask, w, h, -1);
|
||||
tmp_gc = _gdk_drawable_get_scratch_gc ((GdkDrawable *)new_mask, FALSE);
|
||||
|
||||
gdk_gc_set_foreground (tmp_gc, &black);
|
||||
gdk_draw_rectangle (new_mask, tmp_gc, TRUE, 0, 0, -1, -1);
|
||||
_gdk_gc_set_clip_region_internal (tmp_gc, region, TRUE); /* Takes ownership of region */
|
||||
gdk_draw_drawable (new_mask,
|
||||
tmp_gc,
|
||||
priv->old_clip_mask,
|
||||
0, 0,
|
||||
0, 0,
|
||||
-1, -1);
|
||||
gdk_gc_set_clip_region (tmp_gc, NULL);
|
||||
gdk_gc_set_clip_mask (gc, new_mask);
|
||||
}
|
||||
else if (overlap == GDK_OVERLAP_RECTANGLE_OUT)
|
||||
{
|
||||
GdkRegion *empty = gdk_region_new ();
|
||||
|
||||
priv->old_clip_mask = g_object_ref (priv->clip_mask);
|
||||
_gdk_windowing_gc_set_clip_region (gc, empty, FALSE);
|
||||
gdk_region_destroy (empty);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
priv->old_clip_region = priv->clip_region;
|
||||
priv->clip_region = region;
|
||||
if (priv->old_clip_region)
|
||||
gdk_region_intersect (region, priv->old_clip_region);
|
||||
|
||||
_gdk_windowing_gc_set_clip_region (gc, priv->clip_region, FALSE);
|
||||
}
|
||||
|
||||
priv->region_tag_applied = region_tag;
|
||||
priv->region_tag_offset_x = offset_x;
|
||||
priv->region_tag_offset_y = offset_y;
|
||||
}
|
||||
|
||||
void
|
||||
_gdk_gc_remove_drawable_clip (GdkGC *gc)
|
||||
{
|
||||
GdkGCPrivate *priv = GDK_GC_GET_PRIVATE (gc);
|
||||
|
||||
if (priv->region_tag_applied)
|
||||
{
|
||||
priv->region_tag_applied = 0;
|
||||
if (priv->old_clip_mask)
|
||||
{
|
||||
gdk_gc_set_clip_mask (gc, priv->old_clip_mask);
|
||||
g_object_unref (priv->old_clip_mask);
|
||||
priv->old_clip_mask = NULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
_gdk_gc_set_clip_region_real (gc, priv->old_clip_region, FALSE);
|
||||
priv->old_clip_region = NULL;
|
||||
}
|
||||
}
|
||||
_gdk_windowing_gc_set_clip_region (gc, region);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -744,14 +573,12 @@ gdk_gc_set_clip_rectangle (GdkGC *gc,
|
||||
|
||||
g_return_if_fail (GDK_IS_GC (gc));
|
||||
|
||||
_gdk_gc_remove_drawable_clip (gc);
|
||||
|
||||
if (rectangle)
|
||||
region = gdk_region_rectangle (rectangle);
|
||||
else
|
||||
region = NULL;
|
||||
|
||||
_gdk_gc_set_clip_region_real (gc, region, TRUE);
|
||||
_gdk_gc_set_clip_region_internal (gc, region);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -771,14 +598,12 @@ gdk_gc_set_clip_region (GdkGC *gc,
|
||||
|
||||
g_return_if_fail (GDK_IS_GC (gc));
|
||||
|
||||
_gdk_gc_remove_drawable_clip (gc);
|
||||
|
||||
if (region)
|
||||
copy = gdk_region_copy (region);
|
||||
else
|
||||
copy = NULL;
|
||||
|
||||
_gdk_gc_set_clip_region_real (gc, copy, TRUE);
|
||||
_gdk_gc_set_clip_region_internal (gc, copy);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -799,24 +624,6 @@ _gdk_gc_get_clip_region (GdkGC *gc)
|
||||
return GDK_GC_GET_PRIVATE (gc)->clip_region;
|
||||
}
|
||||
|
||||
/**
|
||||
* _gdk_gc_get_clip_mask:
|
||||
* @gc: a #GdkGC
|
||||
*
|
||||
* Gets the current clip mask for @gc, if any.
|
||||
*
|
||||
* Return value: the clip mask for the GC, or %NULL.
|
||||
* (if a clip region is set, the return will be %NULL)
|
||||
* This value is owned by the GC and must not be freed.
|
||||
**/
|
||||
GdkBitmap *
|
||||
_gdk_gc_get_clip_mask (GdkGC *gc)
|
||||
{
|
||||
g_return_val_if_fail (GDK_IS_GC (gc), NULL);
|
||||
|
||||
return GDK_GC_GET_PRIVATE (gc)->clip_mask;
|
||||
}
|
||||
|
||||
/**
|
||||
* _gdk_gc_get_fill:
|
||||
* @gc: a #GdkGC
|
||||
@@ -833,14 +640,6 @@ _gdk_gc_get_fill (GdkGC *gc)
|
||||
return GDK_GC_GET_PRIVATE (gc)->fill;
|
||||
}
|
||||
|
||||
gboolean
|
||||
_gdk_gc_get_exposures (GdkGC *gc)
|
||||
{
|
||||
g_return_val_if_fail (GDK_IS_GC (gc), FALSE);
|
||||
|
||||
return GDK_GC_GET_PRIVATE (gc)->exposures;
|
||||
}
|
||||
|
||||
/**
|
||||
* _gdk_gc_get_tile:
|
||||
* @gc: a #GdkGC
|
||||
@@ -924,27 +723,13 @@ gdk_gc_set_subwindow (GdkGC *gc,
|
||||
GdkSubwindowMode mode)
|
||||
{
|
||||
GdkGCValues values;
|
||||
GdkGCPrivate *priv = GDK_GC_GET_PRIVATE (gc);
|
||||
|
||||
g_return_if_fail (GDK_IS_GC (gc));
|
||||
|
||||
/* This could get called a lot to reset the subwindow mode in
|
||||
the client side clipping, so bail out early */
|
||||
if (priv->subwindow_mode == mode)
|
||||
return;
|
||||
|
||||
values.subwindow_mode = mode;
|
||||
gdk_gc_set_values (gc, &values, GDK_GC_SUBWINDOW);
|
||||
}
|
||||
|
||||
GdkSubwindowMode
|
||||
_gdk_gc_get_subwindow (GdkGC *gc)
|
||||
{
|
||||
GdkGCPrivate *priv = GDK_GC_GET_PRIVATE (gc);
|
||||
|
||||
return priv->subwindow_mode;
|
||||
}
|
||||
|
||||
/**
|
||||
* gdk_gc_set_exposures:
|
||||
* @gc: a #GdkGC.
|
||||
@@ -1105,26 +890,6 @@ gdk_gc_copy (GdkGC *dst_gc,
|
||||
dst_priv->clip_region = gdk_region_copy (src_priv->clip_region);
|
||||
else
|
||||
dst_priv->clip_region = NULL;
|
||||
|
||||
dst_priv->region_tag_applied = src_priv->region_tag_applied;
|
||||
|
||||
if (dst_priv->old_clip_region)
|
||||
gdk_region_destroy (dst_priv->old_clip_region);
|
||||
|
||||
if (src_priv->old_clip_region)
|
||||
dst_priv->old_clip_region = gdk_region_copy (src_priv->old_clip_region);
|
||||
else
|
||||
dst_priv->old_clip_region = NULL;
|
||||
|
||||
if (src_priv->clip_mask)
|
||||
dst_priv->clip_mask = g_object_ref (src_priv->clip_mask);
|
||||
else
|
||||
dst_priv->clip_mask = NULL;
|
||||
|
||||
if (src_priv->old_clip_mask)
|
||||
dst_priv->old_clip_mask = g_object_ref (src_priv->old_clip_mask);
|
||||
else
|
||||
dst_priv->old_clip_mask = NULL;
|
||||
|
||||
dst_priv->fill = src_priv->fill;
|
||||
|
||||
@@ -1142,8 +907,6 @@ gdk_gc_copy (GdkGC *dst_gc,
|
||||
|
||||
dst_priv->fg_pixel = src_priv->fg_pixel;
|
||||
dst_priv->bg_pixel = src_priv->bg_pixel;
|
||||
dst_priv->subwindow_mode = src_priv->subwindow_mode;
|
||||
dst_priv->exposures = src_priv->exposures;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1354,8 +1117,6 @@ gc_get_background (GdkGC *gc,
|
||||
* the fill mode will be forced to %GDK_STIPPLED
|
||||
* @gc_changed: pass %FALSE if the @gc has not changed since the
|
||||
* last call to this function
|
||||
* @target_drawable: The drawable you're drawing in. If passed in
|
||||
* this is used for client side window clip emulation.
|
||||
*
|
||||
* Set the attributes of a cairo context to match those of a #GdkGC
|
||||
* as far as possible. Some aspects of a #GdkGC, such as clip masks
|
||||
@@ -1366,8 +1127,7 @@ _gdk_gc_update_context (GdkGC *gc,
|
||||
cairo_t *cr,
|
||||
const GdkColor *override_foreground,
|
||||
GdkBitmap *override_stipple,
|
||||
gboolean gc_changed,
|
||||
GdkDrawable *target_drawable)
|
||||
gboolean gc_changed)
|
||||
{
|
||||
GdkGCPrivate *priv;
|
||||
GdkFill fill;
|
||||
@@ -1486,10 +1246,6 @@ _gdk_gc_update_context (GdkGC *gc,
|
||||
|
||||
cairo_clip (cr);
|
||||
}
|
||||
|
||||
/* The reset above resets the window clip rect, so we want to re-set that */
|
||||
if (target_drawable && GDK_DRAWABLE_GET_CLASS (target_drawable)->set_cairo_clip)
|
||||
GDK_DRAWABLE_GET_CLASS (target_drawable)->set_cairo_clip (target_drawable, cr);
|
||||
}
|
||||
|
||||
|
||||
|
||||
+60
-294
@@ -170,111 +170,6 @@ struct _GdkEventPrivate
|
||||
gpointer windowing_data;
|
||||
};
|
||||
|
||||
/* Tracks information about the pointer grab on this display */
|
||||
typedef struct
|
||||
{
|
||||
GdkWindow *window;
|
||||
GdkWindow *native_window;
|
||||
gulong serial_start;
|
||||
gulong serial_end; /* exclusive, i.e. not active on serial_end */
|
||||
gboolean owner_events;
|
||||
guint event_mask;
|
||||
gboolean implicit;
|
||||
guint32 time;
|
||||
|
||||
gboolean activated;
|
||||
gboolean implicit_ungrab;
|
||||
gboolean grab_one_pointer_release_event;
|
||||
} GdkPointerGrabInfo;
|
||||
|
||||
typedef struct _GdkInputWindow GdkInputWindow;
|
||||
|
||||
/* Private version of GdkWindowObject. The initial part of this strucuture
|
||||
is public for historical reasons. Don't change that part */
|
||||
typedef struct _GdkWindowPaint GdkWindowPaint;
|
||||
|
||||
struct _GdkWindowObject
|
||||
{
|
||||
/* vvvvvvv THIS PART IS PUBLIC. DON'T CHANGE vvvvvvvvvvvvvv */
|
||||
GdkDrawable parent_instance;
|
||||
|
||||
GdkDrawable *impl; /* window-system-specific delegate object */
|
||||
|
||||
GdkWindowObject *parent;
|
||||
|
||||
gpointer user_data;
|
||||
|
||||
gint x;
|
||||
gint y;
|
||||
|
||||
gint extension_events;
|
||||
|
||||
GList *filters;
|
||||
GList *children;
|
||||
|
||||
GdkColor bg_color;
|
||||
GdkPixmap *bg_pixmap;
|
||||
|
||||
GSList *paint_stack;
|
||||
|
||||
GdkRegion *update_area;
|
||||
guint update_freeze_count;
|
||||
|
||||
guint8 window_type;
|
||||
guint8 depth;
|
||||
guint8 resize_count;
|
||||
|
||||
GdkWindowState state;
|
||||
|
||||
guint guffaw_gravity : 1;
|
||||
guint input_only : 1;
|
||||
guint modal_hint : 1;
|
||||
guint composited : 1;
|
||||
|
||||
guint destroyed : 2;
|
||||
|
||||
guint accept_focus : 1;
|
||||
guint focus_on_map : 1;
|
||||
guint shaped : 1;
|
||||
|
||||
GdkEventMask event_mask;
|
||||
|
||||
guint update_and_descendants_freeze_count;
|
||||
|
||||
GdkWindowRedirect *redirect;
|
||||
|
||||
/* ^^^^^^^^^^ THIS PART IS PUBLIC. DON'T CHANGE ^^^^^^^^^^ */
|
||||
|
||||
/* The GdkWindowObject that has the impl, ref:ed if another window.
|
||||
* This ref is required to keep the wrapper of the impl window alive
|
||||
* for as long as any GdkWindow references the impl. */
|
||||
GdkWindowObject *impl_window;
|
||||
int abs_x, abs_y; /* Absolute offset in impl */
|
||||
gint width, height;
|
||||
guint32 clip_tag;
|
||||
GdkRegion *clip_region; /* Clip region (wrt toplevel) in window coords */
|
||||
GdkRegion *clip_region_with_children; /* Clip region in window coords */
|
||||
GdkCursor *cursor;
|
||||
gint8 toplevel_window_type;
|
||||
guint synthesize_crossing_event_queued : 1;
|
||||
guint effective_visibility : 2;
|
||||
guint visibility : 2; /* The visibility wrt the toplevel (i.e. based on clip_region) */
|
||||
guint native_visibility : 2; /* the native visibility of a impl windows */
|
||||
guint viewable : 1; /* mapped and all parents mapped */
|
||||
|
||||
guint num_offscreen_children;
|
||||
GdkWindowPaint *implicit_paint;
|
||||
GdkInputWindow *input_window; /* only set for impl windows */
|
||||
|
||||
GList *outstanding_moves;
|
||||
|
||||
GdkRegion *shape;
|
||||
GdkRegion *input_shape;
|
||||
|
||||
cairo_surface_t *cairo_surface;
|
||||
};
|
||||
|
||||
|
||||
extern GdkEventFunc _gdk_event_func; /* Callback for events */
|
||||
extern gpointer _gdk_event_data;
|
||||
extern GDestroyNotify _gdk_event_notify;
|
||||
@@ -287,21 +182,15 @@ extern gchar *_gdk_display_arg_name;
|
||||
void _gdk_events_queue (GdkDisplay *display);
|
||||
GdkEvent* _gdk_event_unqueue (GdkDisplay *display);
|
||||
|
||||
GList* _gdk_event_queue_find_first (GdkDisplay *display);
|
||||
void _gdk_event_queue_remove_link (GdkDisplay *display,
|
||||
GList *node);
|
||||
GList* _gdk_event_queue_prepend (GdkDisplay *display,
|
||||
GdkEvent *event);
|
||||
GList* _gdk_event_queue_append (GdkDisplay *display,
|
||||
GdkEvent *event);
|
||||
GList* _gdk_event_queue_insert_after (GdkDisplay *display,
|
||||
GdkEvent *after_event,
|
||||
GdkEvent *event);
|
||||
GList* _gdk_event_queue_insert_before(GdkDisplay *display,
|
||||
GdkEvent *after_event,
|
||||
GdkEvent *event);
|
||||
void _gdk_event_button_generate (GdkDisplay *display,
|
||||
GdkEvent *event);
|
||||
GList* _gdk_event_queue_find_first (GdkDisplay *display);
|
||||
void _gdk_event_queue_remove_link (GdkDisplay *display,
|
||||
GList *node);
|
||||
GList* _gdk_event_queue_prepend (GdkDisplay *display,
|
||||
GdkEvent *event);
|
||||
GList* _gdk_event_queue_append (GdkDisplay *display,
|
||||
GdkEvent *event);
|
||||
void _gdk_event_button_generate (GdkDisplay *display,
|
||||
GdkEvent *event);
|
||||
|
||||
void _gdk_windowing_event_data_copy (const GdkEvent *src,
|
||||
GdkEvent *dst);
|
||||
@@ -338,60 +227,28 @@ GdkImage *_gdk_drawable_copy_to_image (GdkDrawable *drawable,
|
||||
|
||||
cairo_surface_t *_gdk_drawable_ref_cairo_surface (GdkDrawable *drawable);
|
||||
|
||||
GdkDrawable *_gdk_drawable_get_source_drawable (GdkDrawable *drawable);
|
||||
cairo_surface_t * _gdk_drawable_create_cairo_surface (GdkDrawable *drawable,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
/* GC caching */
|
||||
GdkGC *_gdk_drawable_get_scratch_gc (GdkDrawable *drawable,
|
||||
gboolean graphics_exposures);
|
||||
GdkGC *_gdk_drawable_get_subwindow_scratch_gc (GdkDrawable *drawable);
|
||||
|
||||
void _gdk_gc_update_context (GdkGC *gc,
|
||||
cairo_t *cr,
|
||||
const GdkColor *override_foreground,
|
||||
GdkBitmap *override_stipple,
|
||||
gboolean gc_changed,
|
||||
GdkDrawable *target_drawable);
|
||||
gboolean gc_changed);
|
||||
|
||||
/*************************************
|
||||
* Interfaces used by windowing code *
|
||||
*************************************/
|
||||
|
||||
GdkPixmap *_gdk_pixmap_new (GdkDrawable *drawable,
|
||||
gint width,
|
||||
gint height,
|
||||
gint depth);
|
||||
GdkPixmap *_gdk_pixmap_create_from_data (GdkDrawable *drawable,
|
||||
const gchar *data,
|
||||
gint width,
|
||||
gint height,
|
||||
gint depth,
|
||||
const GdkColor *fg,
|
||||
const GdkColor *bg);
|
||||
GdkPixmap *_gdk_bitmap_create_from_data (GdkDrawable *drawable,
|
||||
const gchar *data,
|
||||
gint width,
|
||||
gint height);
|
||||
GdkWindow *_gdk_window_new (GdkWindow *window,
|
||||
GdkWindowAttr *attributes,
|
||||
gint attributes_mask);
|
||||
void _gdk_window_destroy (GdkWindow *window,
|
||||
gboolean foreign_destroy);
|
||||
void _gdk_window_clear_update_area (GdkWindow *window);
|
||||
|
||||
void _gdk_window_impl_new (GdkWindow *window,
|
||||
GdkWindow *real_parent,
|
||||
GdkScreen *screen,
|
||||
GdkVisual *visual,
|
||||
GdkEventMask event_mask,
|
||||
GdkWindowAttr *attributes,
|
||||
gint attributes_mask);
|
||||
void _gdk_window_destroy (GdkWindow *window,
|
||||
gboolean foreign_destroy);
|
||||
void _gdk_window_clear_update_area (GdkWindow *window);
|
||||
void _gdk_window_update_size (GdkWindow *window);
|
||||
gboolean _gdk_window_update_viewable (GdkWindow *window);
|
||||
|
||||
void _gdk_window_process_updates_recurse (GdkWindow *window,
|
||||
GdkRegion *expose_region);
|
||||
|
||||
void _gdk_screen_close (GdkScreen *screen);
|
||||
void _gdk_screen_close (GdkScreen *screen);
|
||||
|
||||
const char *_gdk_get_sm_client_id (void);
|
||||
|
||||
@@ -401,23 +258,11 @@ void _gdk_gc_init (GdkGC *gc,
|
||||
GdkGCValuesMask values_mask);
|
||||
|
||||
GdkRegion *_gdk_gc_get_clip_region (GdkGC *gc);
|
||||
GdkBitmap *_gdk_gc_get_clip_mask (GdkGC *gc);
|
||||
gboolean _gdk_gc_get_exposures (GdkGC *gc);
|
||||
GdkFill _gdk_gc_get_fill (GdkGC *gc);
|
||||
GdkPixmap *_gdk_gc_get_tile (GdkGC *gc);
|
||||
GdkBitmap *_gdk_gc_get_stipple (GdkGC *gc);
|
||||
guint32 _gdk_gc_get_fg_pixel (GdkGC *gc);
|
||||
guint32 _gdk_gc_get_bg_pixel (GdkGC *gc);
|
||||
void _gdk_gc_add_drawable_clip (GdkGC *gc,
|
||||
guint32 region_tag,
|
||||
GdkRegion *region,
|
||||
int offset_x,
|
||||
int offset_y);
|
||||
void _gdk_gc_remove_drawable_clip (GdkGC *gc);
|
||||
void _gdk_gc_set_clip_region_internal (GdkGC *gc,
|
||||
GdkRegion *region,
|
||||
gboolean reset_origin);
|
||||
GdkSubwindowMode _gdk_gc_get_subwindow (GdkGC *gc);
|
||||
|
||||
/*****************************************
|
||||
* Interfaces provided by windowing code *
|
||||
@@ -439,49 +284,60 @@ void _gdk_windowing_set_default_display (GdkDisplay *display);
|
||||
gchar *_gdk_windowing_substitute_screen_number (const gchar *display_name,
|
||||
gint screen_number);
|
||||
|
||||
gulong _gdk_windowing_window_get_next_serial (GdkDisplay *display);
|
||||
void _gdk_windowing_window_get_offsets (GdkWindow *window,
|
||||
gint *x_offset,
|
||||
gint *y_offset);
|
||||
GdkRegion *_gdk_windowing_window_get_shape (GdkWindow *window);
|
||||
GdkRegion *_gdk_windowing_window_get_input_shape(GdkWindow *window);
|
||||
GdkRegion *_gdk_windowing_get_shape_for_mask (GdkBitmap *mask);
|
||||
void _gdk_windowing_window_beep (GdkWindow *window);
|
||||
|
||||
|
||||
void _gdk_windowing_get_pointer (GdkDisplay *display,
|
||||
GdkScreen **screen,
|
||||
gint *x,
|
||||
gint *y,
|
||||
GdkModifierType *mask);
|
||||
GdkWindow* _gdk_windowing_window_get_pointer (GdkDisplay *display,
|
||||
GdkWindow *window,
|
||||
gint *x,
|
||||
gint *y,
|
||||
GdkModifierType *mask);
|
||||
GdkWindow* _gdk_windowing_window_at_pointer (GdkDisplay *display,
|
||||
gint *win_x,
|
||||
gint *win_y,
|
||||
GdkModifierType *mask);
|
||||
GdkGrabStatus _gdk_windowing_pointer_grab (GdkWindow *window,
|
||||
GdkWindow *native,
|
||||
gboolean owner_events,
|
||||
GdkEventMask event_mask,
|
||||
GdkWindow *confine_to,
|
||||
GdkCursor *cursor,
|
||||
guint32 time);
|
||||
void _gdk_windowing_got_event (GdkDisplay *display,
|
||||
GList *event_link,
|
||||
GdkEvent *event,
|
||||
gulong serial);
|
||||
|
||||
void _gdk_windowing_window_process_updates_recurse (GdkWindow *window,
|
||||
GdkRegion *expose_region);
|
||||
void _gdk_windowing_before_process_all_updates (void);
|
||||
void _gdk_windowing_after_process_all_updates (void);
|
||||
gint *win_y);
|
||||
|
||||
/* Return the number of bits-per-pixel for images of the specified depth. */
|
||||
gint _gdk_windowing_get_bits_for_depth (GdkDisplay *display,
|
||||
gint depth);
|
||||
|
||||
void _gdk_window_reparent (GdkWindow *window,
|
||||
GdkWindow *new_parent,
|
||||
gint x,
|
||||
gint y);
|
||||
|
||||
#define GDK_WINDOW_IS_MAPPED(window) ((((GdkWindowObject*)window)->state & GDK_WINDOW_STATE_WITHDRAWN) == 0)
|
||||
|
||||
/* Called before processing updates for a window. This gives the windowing
|
||||
* layer a chance to save the region for later use in avoiding duplicate
|
||||
* exposes. The return value indicates whether the function has a saved
|
||||
* the region; if the result is TRUE, then the windowing layer is responsible
|
||||
* for destroying the region later.
|
||||
*/
|
||||
gboolean _gdk_windowing_window_queue_antiexpose (GdkWindow *window,
|
||||
GdkRegion *area);
|
||||
|
||||
/* Called to do the windowing system specific part of gdk_window_destroy(),
|
||||
*
|
||||
* window: The window being destroyed
|
||||
* recursing: If TRUE, then this is being called because a parent
|
||||
* was destroyed. This generally means that the call to the windowing system
|
||||
* to destroy the window can be omitted, since it will be destroyed as a result
|
||||
* of the parent being destroyed. Unless @foreign_destroy
|
||||
*
|
||||
* foreign_destroy: If TRUE, the window or a parent was destroyed by some external
|
||||
* agency. The window has already been destroyed and no windowing
|
||||
* system calls should be made. (This may never happen for some
|
||||
* windowing systems.)
|
||||
*/
|
||||
void _gdk_windowing_window_destroy (GdkWindow *window,
|
||||
gboolean recursing,
|
||||
gboolean foreign_destroy);
|
||||
|
||||
/* Called when gdk_window_destroy() is called on a foreign window
|
||||
* or an ancestor of the foreign window. It should generally reparent
|
||||
@@ -509,9 +365,15 @@ struct _GdkPaintableIface
|
||||
GTypeInterface g_iface;
|
||||
|
||||
void (* begin_paint_region) (GdkPaintable *paintable,
|
||||
GdkWindow *window,
|
||||
const GdkRegion *region);
|
||||
void (* end_paint) (GdkPaintable *paintable);
|
||||
|
||||
void (* invalidate_maybe_recurse) (GdkPaintable *paintable,
|
||||
const GdkRegion *region,
|
||||
gboolean (*child_func) (GdkWindow *, gpointer),
|
||||
gpointer user_data);
|
||||
void (* process_updates) (GdkPaintable *paintable,
|
||||
gboolean update_children);
|
||||
};
|
||||
|
||||
GType _gdk_paintable_get_type (void) G_GNUC_CONST;
|
||||
@@ -525,7 +387,6 @@ GType _gdk_pixmap_impl_get_type (void) G_GNUC_CONST;
|
||||
* _gdk_windowing_gc_set_clip_region:
|
||||
* @gc: a #GdkGC
|
||||
* @region: the new clip region
|
||||
* @reset_origin: if TRUE, reset the clip_x/y_origin values to 0
|
||||
*
|
||||
* Do any window-system specific processing necessary
|
||||
* for a change in clip region. Since the clip origin
|
||||
@@ -537,8 +398,7 @@ GType _gdk_pixmap_impl_get_type (void) G_GNUC_CONST;
|
||||
* will already return the new region.
|
||||
**/
|
||||
void _gdk_windowing_gc_set_clip_region (GdkGC *gc,
|
||||
const GdkRegion *region,
|
||||
gboolean reset_origin);
|
||||
const GdkRegion *region);
|
||||
|
||||
/**
|
||||
* _gdk_windowing_gc_copy:
|
||||
@@ -575,100 +435,6 @@ char *_gdk_windowing_get_startup_notify_id (GAppLaunchContext *context,
|
||||
void _gdk_windowing_launch_failed (GAppLaunchContext *context,
|
||||
const char *startup_notify_id);
|
||||
|
||||
GdkPointerGrabInfo *_gdk_display_get_active_pointer_grab (GdkDisplay *display);
|
||||
void _gdk_display_pointer_grab_update (GdkDisplay *display,
|
||||
gulong current_serial);
|
||||
GdkPointerGrabInfo *_gdk_display_get_last_pointer_grab (GdkDisplay *display);
|
||||
GdkPointerGrabInfo *_gdk_display_add_pointer_grab (GdkDisplay *display,
|
||||
GdkWindow *window,
|
||||
GdkWindow *native_window,
|
||||
gboolean owner_events,
|
||||
GdkEventMask event_mask,
|
||||
unsigned long serial_start,
|
||||
guint32 time,
|
||||
gboolean implicit);
|
||||
GdkPointerGrabInfo * _gdk_display_has_pointer_grab (GdkDisplay *display,
|
||||
gulong serial);
|
||||
gboolean _gdk_display_end_pointer_grab (GdkDisplay *display,
|
||||
gulong serial,
|
||||
GdkWindow *if_child,
|
||||
gboolean implicit);
|
||||
void _gdk_display_set_has_keyboard_grab (GdkDisplay *display,
|
||||
GdkWindow *window,
|
||||
GdkWindow *native_window,
|
||||
gboolean owner_events,
|
||||
unsigned long serial,
|
||||
guint32 time);
|
||||
void _gdk_display_unset_has_keyboard_grab (GdkDisplay *display,
|
||||
gboolean implicit);
|
||||
void _gdk_display_enable_motion_hints (GdkDisplay *display);
|
||||
|
||||
|
||||
void _gdk_window_invalidate_for_expose (GdkWindow *window,
|
||||
const GdkRegion *region);
|
||||
|
||||
void _gdk_windowing_set_cairo_surface_size (cairo_surface_t *surface,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
cairo_surface_t * _gdk_windowing_create_cairo_surface (GdkDrawable *drawable,
|
||||
int width,
|
||||
int height);
|
||||
GdkWindow * _gdk_window_find_child_at (GdkWindow *window,
|
||||
int x, int y);
|
||||
GdkWindow * _gdk_window_find_descendant_at (GdkWindow *toplevel,
|
||||
double x, double y,
|
||||
double *found_x,
|
||||
double *found_y);
|
||||
|
||||
void _gdk_window_add_damage (GdkWindow *toplevel,
|
||||
GdkRegion *damaged_region);
|
||||
|
||||
GdkEvent * _gdk_make_event (GdkWindow *window,
|
||||
GdkEventType type,
|
||||
GdkEvent *event_in_queue,
|
||||
gboolean before_event);
|
||||
|
||||
void _gdk_synthesize_crossing_events (GdkDisplay *display,
|
||||
GdkWindow *src,
|
||||
GdkWindow *dest,
|
||||
GdkCrossingMode mode,
|
||||
gint toplevel_x,
|
||||
gint toplevel_y,
|
||||
GdkModifierType mask,
|
||||
guint32 time_,
|
||||
GdkEvent *event_in_queue,
|
||||
gulong serial,
|
||||
gboolean non_linear);
|
||||
void _gdk_display_set_window_under_pointer (GdkDisplay *display,
|
||||
GdkWindow *window);
|
||||
|
||||
|
||||
void _gdk_synthesize_crossing_events_for_geometry_change (GdkWindow *changed_window);
|
||||
|
||||
GdkRegion *_gdk_window_calculate_full_clip_region (GdkWindow *window,
|
||||
GdkWindow *base_window,
|
||||
gboolean do_children,
|
||||
gint *base_x_offset,
|
||||
gint *base_y_offset);
|
||||
gboolean _gdk_window_has_impl (GdkWindow *window);
|
||||
GdkWindow * _gdk_window_get_impl_window (GdkWindow *window);
|
||||
GdkWindow *_gdk_window_get_input_window_for_event (GdkWindow *native_window,
|
||||
GdkEventType event_type,
|
||||
int x, int y,
|
||||
gulong serial);
|
||||
GdkRegion *_gdk_region_new_from_yxbanded_rects (GdkRectangle *rects, int n_rects);
|
||||
|
||||
/*****************************
|
||||
* offscreen window routines *
|
||||
*****************************/
|
||||
GType gdk_offscreen_window_get_type (void);
|
||||
void _gdk_offscreen_window_new (GdkWindow *window,
|
||||
GdkScreen *screen,
|
||||
GdkVisual *visual,
|
||||
GdkWindowAttr *attributes,
|
||||
gint attributes_mask);
|
||||
|
||||
|
||||
/************************************
|
||||
* Initialization and exit routines *
|
||||
|
||||
@@ -1,6 +1,2 @@
|
||||
VOID:OBJECT
|
||||
VOID:BOOLEAN
|
||||
VOID:POINTER,POINTER,POINTER
|
||||
OBJECT:VOID
|
||||
OBJECT:DOUBLE,DOUBLE
|
||||
VOID:DOUBLE,DOUBLE,POINTER,POINTER
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+37
-2
@@ -214,8 +214,7 @@ get_cairo_context (GdkPangoRenderer *gdk_renderer,
|
||||
priv->cr,
|
||||
color,
|
||||
priv->stipple[part],
|
||||
priv->gc_changed,
|
||||
priv->drawable);
|
||||
priv->gc_changed);
|
||||
}
|
||||
|
||||
priv->last_part = part;
|
||||
@@ -1497,5 +1496,41 @@ gdk_pango_context_get_for_screen (GdkScreen *screen)
|
||||
return context;
|
||||
}
|
||||
|
||||
/**
|
||||
* gdk_pango_context_get_for_screen_for_monitor:
|
||||
* @screen: the #GdkScreen for which the context is to be created.
|
||||
* @monitor_num: monitor number or -1 to use default monitor
|
||||
*
|
||||
* Like gdk_pango_context_get_for_screen() but also takes a monitor
|
||||
* number.
|
||||
*
|
||||
* Return value: a new #PangoContext for @screen
|
||||
*
|
||||
* Since: RIMERGE
|
||||
**/
|
||||
PangoContext *
|
||||
gdk_pango_context_get_for_screen_for_monitor (GdkScreen *screen,
|
||||
gint monitor_num)
|
||||
{
|
||||
PangoFontMap *fontmap;
|
||||
PangoContext *context;
|
||||
const cairo_font_options_t *options;
|
||||
double dpi;
|
||||
|
||||
g_return_val_if_fail (GDK_IS_SCREEN (screen), NULL);
|
||||
|
||||
fontmap = pango_cairo_font_map_get_default ();
|
||||
|
||||
context = pango_cairo_font_map_create_context (PANGO_CAIRO_FONT_MAP (fontmap));
|
||||
|
||||
options = gdk_screen_get_font_options_for_monitor (screen, monitor_num);
|
||||
pango_cairo_context_set_font_options (context, options);
|
||||
|
||||
dpi = gdk_screen_get_resolution_for_monitor (screen, monitor_num);
|
||||
pango_cairo_context_set_resolution (context, dpi);
|
||||
|
||||
return context;
|
||||
}
|
||||
|
||||
#define __GDK_PANGO_C__
|
||||
#include "gdkaliasdef.c"
|
||||
|
||||
@@ -104,6 +104,9 @@ void gdk_pango_renderer_set_override_color (GdkPangoRenderer *gdk_renderer,
|
||||
|
||||
/************************************************************************/
|
||||
|
||||
PangoContext *gdk_pango_context_get_for_screen_for_monitor (GdkScreen *screen,
|
||||
gint monitor_num);
|
||||
|
||||
PangoContext *gdk_pango_context_get_for_screen (GdkScreen *screen);
|
||||
#ifndef GDK_MULTIHEAD_SAFE
|
||||
PangoContext *gdk_pango_context_get (void);
|
||||
|
||||
+3
-83
@@ -77,8 +77,7 @@ static void gdk_pixmap_draw_drawable (GdkDrawable *drawable,
|
||||
gint xdest,
|
||||
gint ydest,
|
||||
gint width,
|
||||
gint height,
|
||||
GdkPixmap *original_src);
|
||||
gint height);
|
||||
static void gdk_pixmap_draw_points (GdkDrawable *drawable,
|
||||
GdkGC *gc,
|
||||
GdkPoint *points,
|
||||
@@ -146,9 +145,6 @@ static GdkImage* gdk_pixmap_copy_to_image (GdkDrawable *drawable,
|
||||
gint height);
|
||||
|
||||
static cairo_surface_t *gdk_pixmap_ref_cairo_surface (GdkDrawable *drawable);
|
||||
static cairo_surface_t *gdk_pixmap_create_cairo_surface (GdkDrawable *drawable,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
static GdkVisual* gdk_pixmap_real_get_visual (GdkDrawable *drawable);
|
||||
static gint gdk_pixmap_real_get_depth (GdkDrawable *drawable);
|
||||
@@ -203,7 +199,7 @@ gdk_pixmap_class_init (GdkPixmapObjectClass *klass)
|
||||
drawable_class->draw_polygon = gdk_pixmap_draw_polygon;
|
||||
drawable_class->draw_text = gdk_pixmap_draw_text;
|
||||
drawable_class->draw_text_wc = gdk_pixmap_draw_text_wc;
|
||||
drawable_class->draw_drawable_with_src = gdk_pixmap_draw_drawable;
|
||||
drawable_class->draw_drawable = gdk_pixmap_draw_drawable;
|
||||
drawable_class->draw_points = gdk_pixmap_draw_points;
|
||||
drawable_class->draw_segments = gdk_pixmap_draw_segments;
|
||||
drawable_class->draw_lines = gdk_pixmap_draw_lines;
|
||||
@@ -220,7 +216,6 @@ gdk_pixmap_class_init (GdkPixmapObjectClass *klass)
|
||||
drawable_class->get_visual = gdk_pixmap_real_get_visual;
|
||||
drawable_class->_copy_to_image = gdk_pixmap_copy_to_image;
|
||||
drawable_class->ref_cairo_surface = gdk_pixmap_ref_cairo_surface;
|
||||
drawable_class->create_cairo_surface = gdk_pixmap_create_cairo_surface;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -234,54 +229,6 @@ gdk_pixmap_finalize (GObject *object)
|
||||
G_OBJECT_CLASS (parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
GdkPixmap *
|
||||
gdk_pixmap_new (GdkDrawable *drawable,
|
||||
gint width,
|
||||
gint height,
|
||||
gint depth)
|
||||
{
|
||||
GdkDrawable *source_drawable;
|
||||
|
||||
if (drawable)
|
||||
source_drawable = _gdk_drawable_get_source_drawable (drawable);
|
||||
else
|
||||
source_drawable = NULL;
|
||||
return _gdk_pixmap_new (source_drawable, width, height, depth);
|
||||
}
|
||||
|
||||
GdkPixmap *
|
||||
gdk_bitmap_create_from_data (GdkDrawable *drawable,
|
||||
const gchar *data,
|
||||
gint width,
|
||||
gint height)
|
||||
{
|
||||
GdkDrawable *source_drawable;
|
||||
|
||||
if (drawable)
|
||||
source_drawable = _gdk_drawable_get_source_drawable (drawable);
|
||||
else
|
||||
source_drawable = NULL;
|
||||
return _gdk_bitmap_create_from_data (source_drawable, data, width, height);
|
||||
}
|
||||
|
||||
GdkPixmap*
|
||||
gdk_pixmap_create_from_data (GdkDrawable *drawable,
|
||||
const gchar *data,
|
||||
gint width,
|
||||
gint height,
|
||||
gint depth,
|
||||
const GdkColor *fg,
|
||||
const GdkColor *bg)
|
||||
{
|
||||
GdkDrawable *source_drawable;
|
||||
|
||||
source_drawable = _gdk_drawable_get_source_drawable (drawable);
|
||||
return _gdk_pixmap_create_from_data (source_drawable,
|
||||
data, width, height,
|
||||
depth, fg,bg);
|
||||
}
|
||||
|
||||
|
||||
static GdkGC *
|
||||
gdk_pixmap_create_gc (GdkDrawable *drawable,
|
||||
GdkGCValues *values,
|
||||
@@ -302,7 +249,6 @@ gdk_pixmap_draw_rectangle (GdkDrawable *drawable,
|
||||
{
|
||||
GdkPixmapObject *private = (GdkPixmapObject *)drawable;
|
||||
|
||||
_gdk_gc_remove_drawable_clip (gc);
|
||||
gdk_draw_rectangle (private->impl, gc, filled,
|
||||
x, y, width, height);
|
||||
}
|
||||
@@ -320,7 +266,6 @@ gdk_pixmap_draw_arc (GdkDrawable *drawable,
|
||||
{
|
||||
GdkPixmapObject *private = (GdkPixmapObject *)drawable;
|
||||
|
||||
_gdk_gc_remove_drawable_clip (gc);
|
||||
gdk_draw_arc (private->impl, gc, filled,
|
||||
x, y,
|
||||
width, height, angle1, angle2);
|
||||
@@ -335,7 +280,6 @@ gdk_pixmap_draw_polygon (GdkDrawable *drawable,
|
||||
{
|
||||
GdkPixmapObject *private = (GdkPixmapObject *)drawable;
|
||||
|
||||
_gdk_gc_remove_drawable_clip (gc);
|
||||
gdk_draw_polygon (private->impl, gc, filled, points, npoints);
|
||||
}
|
||||
|
||||
@@ -350,7 +294,6 @@ gdk_pixmap_draw_text (GdkDrawable *drawable,
|
||||
{
|
||||
GdkPixmapObject *private = (GdkPixmapObject *)drawable;
|
||||
|
||||
_gdk_gc_remove_drawable_clip (gc);
|
||||
gdk_draw_text (private->impl, font, gc,
|
||||
x, y, text, text_length);
|
||||
}
|
||||
@@ -366,7 +309,6 @@ gdk_pixmap_draw_text_wc (GdkDrawable *drawable,
|
||||
{
|
||||
GdkPixmapObject *private = (GdkPixmapObject *)drawable;
|
||||
|
||||
_gdk_gc_remove_drawable_clip (gc);
|
||||
gdk_draw_text_wc (private->impl, font, gc,
|
||||
x, y, text, text_length);
|
||||
}
|
||||
@@ -380,12 +322,10 @@ gdk_pixmap_draw_drawable (GdkDrawable *drawable,
|
||||
gint xdest,
|
||||
gint ydest,
|
||||
gint width,
|
||||
gint height,
|
||||
GdkPixmap *original_src)
|
||||
gint height)
|
||||
{
|
||||
GdkPixmapObject *private = (GdkPixmapObject *)drawable;
|
||||
|
||||
_gdk_gc_remove_drawable_clip (gc);
|
||||
gdk_draw_drawable (private->impl, gc, src, xsrc, ysrc,
|
||||
xdest, ydest,
|
||||
width, height);
|
||||
@@ -399,7 +339,6 @@ gdk_pixmap_draw_points (GdkDrawable *drawable,
|
||||
{
|
||||
GdkPixmapObject *private = (GdkPixmapObject *)drawable;
|
||||
|
||||
_gdk_gc_remove_drawable_clip (gc);
|
||||
gdk_draw_points (private->impl, gc, points, npoints);
|
||||
}
|
||||
|
||||
@@ -411,7 +350,6 @@ gdk_pixmap_draw_segments (GdkDrawable *drawable,
|
||||
{
|
||||
GdkPixmapObject *private = (GdkPixmapObject *)drawable;
|
||||
|
||||
_gdk_gc_remove_drawable_clip (gc);
|
||||
gdk_draw_segments (private->impl, gc, segs, nsegs);
|
||||
}
|
||||
|
||||
@@ -423,7 +361,6 @@ gdk_pixmap_draw_lines (GdkDrawable *drawable,
|
||||
{
|
||||
GdkPixmapObject *private = (GdkPixmapObject *)drawable;
|
||||
|
||||
_gdk_gc_remove_drawable_clip (gc);
|
||||
gdk_draw_lines (private->impl, gc, points, npoints);
|
||||
}
|
||||
|
||||
@@ -437,7 +374,6 @@ gdk_pixmap_draw_glyphs (GdkDrawable *drawable,
|
||||
{
|
||||
GdkPixmapObject *private = (GdkPixmapObject *)drawable;
|
||||
|
||||
_gdk_gc_remove_drawable_clip (gc);
|
||||
gdk_draw_glyphs (private->impl, gc, font, x, y, glyphs);
|
||||
}
|
||||
|
||||
@@ -452,7 +388,6 @@ gdk_pixmap_draw_glyphs_transformed (GdkDrawable *drawable,
|
||||
{
|
||||
GdkPixmapObject *private = (GdkPixmapObject *)drawable;
|
||||
|
||||
_gdk_gc_remove_drawable_clip (gc);
|
||||
gdk_draw_glyphs_transformed (private->impl, gc, matrix, font, x, y, glyphs);
|
||||
}
|
||||
|
||||
@@ -469,7 +404,6 @@ gdk_pixmap_draw_image (GdkDrawable *drawable,
|
||||
{
|
||||
GdkPixmapObject *private = (GdkPixmapObject *)drawable;
|
||||
|
||||
_gdk_gc_remove_drawable_clip (gc);
|
||||
gdk_draw_image (private->impl, gc, image, xsrc, ysrc, xdest, ydest,
|
||||
width, height);
|
||||
}
|
||||
@@ -490,8 +424,6 @@ gdk_pixmap_draw_pixbuf (GdkDrawable *drawable,
|
||||
{
|
||||
GdkPixmapObject *private = (GdkPixmapObject *)drawable;
|
||||
|
||||
if (gc)
|
||||
_gdk_gc_remove_drawable_clip (gc);
|
||||
gdk_draw_pixbuf (private->impl, gc, pixbuf,
|
||||
src_x, src_y, dest_x, dest_y, width, height,
|
||||
dither, x_dither, y_dither);
|
||||
@@ -505,7 +437,6 @@ gdk_pixmap_draw_trapezoids (GdkDrawable *drawable,
|
||||
{
|
||||
GdkPixmapObject *private = (GdkPixmapObject *)drawable;
|
||||
|
||||
_gdk_gc_remove_drawable_clip (gc);
|
||||
gdk_draw_trapezoids (private->impl, gc, trapezoids, n_trapezoids);
|
||||
}
|
||||
|
||||
@@ -584,17 +515,6 @@ gdk_pixmap_ref_cairo_surface (GdkDrawable *drawable)
|
||||
return _gdk_drawable_ref_cairo_surface (((GdkPixmapObject*)drawable)->impl);
|
||||
}
|
||||
|
||||
static cairo_surface_t *
|
||||
gdk_pixmap_create_cairo_surface (GdkDrawable *drawable,
|
||||
int width,
|
||||
int height)
|
||||
{
|
||||
return _gdk_windowing_create_cairo_surface (GDK_PIXMAP_OBJECT(drawable)->impl,
|
||||
width, height);
|
||||
}
|
||||
|
||||
|
||||
|
||||
static GdkBitmap *
|
||||
make_solid_mask (GdkScreen *screen, gint width, gint height)
|
||||
{
|
||||
|
||||
@@ -43,9 +43,6 @@ void gdk_synthesize_window_state (GdkWindow *window,
|
||||
GdkWindowState unset_flags,
|
||||
GdkWindowState set_flags);
|
||||
|
||||
gboolean _gdk_window_event_parent_of (GdkWindow *parent,
|
||||
GdkWindow *child);
|
||||
|
||||
/* Tests whether a pair of x,y may cause overflows when converted to Pango
|
||||
* units (multiplied by PANGO_SCALE). We don't allow the entire range, leave
|
||||
* some space for additions afterwards, to be safe...
|
||||
|
||||
@@ -96,7 +96,6 @@ static void miRegionOp (GdkRegion *newReg,
|
||||
overlapFunc overlapFn,
|
||||
nonOverlapFunc nonOverlap1Fn,
|
||||
nonOverlapFunc nonOverlap2Fn);
|
||||
static void miSetExtents (GdkRegion *pReg);
|
||||
|
||||
/**
|
||||
* gdk_region_new:
|
||||
@@ -123,31 +122,6 @@ gdk_region_new (void)
|
||||
return temp;
|
||||
}
|
||||
|
||||
GdkRegion *
|
||||
_gdk_region_new_from_yxbanded_rects (GdkRectangle *rects,
|
||||
int num_rects)
|
||||
{
|
||||
GdkRegion *temp;
|
||||
int i;
|
||||
|
||||
temp = g_slice_new (GdkRegion);
|
||||
|
||||
temp->rects = g_new (GdkRegionBox, num_rects);
|
||||
temp->size = num_rects;
|
||||
temp->numRects = num_rects;
|
||||
for (i = 0; i < num_rects; i++)
|
||||
{
|
||||
temp->rects[i].x1 = rects[i].x;
|
||||
temp->rects[i].y1 = rects[i].y;
|
||||
temp->rects[i].x2 = rects[i].x + rects[i].width;
|
||||
temp->rects[i].y2 = rects[i].y + rects[i].height;
|
||||
}
|
||||
miSetExtents (temp);
|
||||
|
||||
return temp;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* gdk_region_rectangle:
|
||||
* @rectangle: a #GdkRectangle
|
||||
@@ -1581,32 +1555,6 @@ gdk_region_equal (const GdkRegion *region1,
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/**
|
||||
* gdk_region_rect_equal:
|
||||
* @region: a #GdkRegion
|
||||
* @rectangle: a #GdkRectangle
|
||||
*
|
||||
* Finds out if a regions is the same as a rectangle.
|
||||
*
|
||||
* Returns: %TRUE if @region and @rectangle are equal.
|
||||
*
|
||||
* Since: 2.18
|
||||
*/
|
||||
gboolean
|
||||
gdk_region_rect_equal (const GdkRegion *region,
|
||||
const GdkRectangle *rectangle)
|
||||
{
|
||||
g_return_val_if_fail (region != NULL, FALSE);
|
||||
g_return_val_if_fail (rectangle != NULL, FALSE);
|
||||
|
||||
if (region->numRects != 1) return FALSE;
|
||||
else if (region->extents.x1 != rectangle->x) return FALSE;
|
||||
else if (region->extents.y1 != rectangle->y) return FALSE;
|
||||
else if (region->extents.x2 != rectangle->x + rectangle->width) return FALSE;
|
||||
else if (region->extents.y2 != rectangle->y + rectangle->height) return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/**
|
||||
* gdk_region_point_in:
|
||||
* @region: a #GdkRegion
|
||||
|
||||
@@ -77,8 +77,6 @@ void gdk_region_get_rectangles (const GdkRegion *region,
|
||||
gboolean gdk_region_empty (const GdkRegion *region);
|
||||
gboolean gdk_region_equal (const GdkRegion *region1,
|
||||
const GdkRegion *region2);
|
||||
gboolean gdk_region_rect_equal (const GdkRegion *region,
|
||||
const GdkRectangle *rectangle);
|
||||
gboolean gdk_region_point_in (const GdkRegion *region,
|
||||
int x,
|
||||
int y);
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user