The main GDK thread lock is not portable and deprecated.
The only reason why gdk_threads_add_timeout() and
gdk_threads_add_timeout_full() exist is to allow invoking a callback
with the GDK lock held, in case 3rd party libraries still use the
deprecated gdk_threads_enter()/gdk_threads_leave() API.
Since we're removing the GDK lock, and we're releasing a new major API,
such code cannot exist any more; this means we can use the GLib API for
installing timeout callbacks.
https://bugzilla.gnome.org/show_bug.cgi?id=793124
We no longer have GtkPlug nor GtkWin32EmbedManifest for GTK+-4.x, and it
is not entirely clear at this point what would be the "best" replacement
for them, but this issue here prevents GTK+-3.89.x building on Windows.
As a result, this is a fast port to avoid using APIs that have been
removed for 4.x, and things seem to work properly (the print.c page
printed).
https://bugzilla.gnome.org/show_bug.cgi?id=773299
For that to happen the libgtk3 is embedded with a manifest that requests
common controls library 6.x, and GTK lazily calls InitCommonControlsEx()
to initialize those. Then this manifest is used to temporarily override
the process activation contest when loading comdlg32 (which contains the
code for the print dialog), ensuring that it too depends on common
controls 6.x, even if the application that uses GTK does not.
https://bugzilla.gnome.org/show_bug.cgi?id=733773
It doesn't make sense to keep them separate as GtkSizeRequest requires a
GtkWidget and GtkWidget implements GtkSizeRequest, so you can never have
one without the other.
It also makes the code a lot easier because no casts are required when
calling functions.
Also, the names would translate to gtk_widget_get_width() and people
agreed that this would be a too generic name, so a "preferred" was added
to the names.
So this patch moves the functions:
gtk_size_request_get_request_mode() => gtk_widget_get_request_mode()
gtk_size_request_get_width() => gtk_widget_get_preferred_width()
gtk_size_request_get_height() => gtk_widget_get_preferred_height()
gtk_size_request_get_size() => gtk_widget_get_preferred_size()
gtk_size_request_get_width_for_height() =>
gtk_widget_get_preferred_width_for_height()
gtk_size_request_get_height_for_width() =>
gtk_widget_get_preferred_height_for_width()
... and moves the corresponding vfuncs to the GtkWidgetClass.
The patch also renames the implementations of the vfuncs in widgets to
include the word "preferrred".
GtkPrintOperation is now able to render multiple pages per sheet by its
own. The most important changes are in these functions:
* increment_page_sequence
* prepare_data
* common_render_page
* print_pages_idle
Patch also changes set of choices for 2 pages per sheet mode when
landscape orientation is used to "Top to bottom" and "Bottom to top".
2008-08-05 Tor Lillqvist <tml@novell.com>
* gtk/gtkprintoperation-win32.c: Don't need to declare
IPrintDialogCallback with mingw64 either. It seems to come with
newer versions of the headers.
svn path=/trunk/; revision=21001
2008-07-30 Tor Lillqvist <tml@novell.com>
* gtk/gtkprintoperation-win32.c: Fix problems in handling custom
paper sizes. The DEVMODE::dmPaperWidth and dmPaperLength are in
tenths of a millimeter, and the RECT passed to CreateEnhMetaFile()
is in hundredths of a millimeter. Patch by Sven Neumann.
svn path=/trunk/; revision=20916
2008-06-30 Cody Russell <bratsche@gnome.org>
* Practically everything changed.
Change all references of GIMP Toolkit (and variations of it)
to GTK+ Toolkit, showing no mercy at all to our beloved
ancestry. (#540529)
svn path=/trunk/; revision=20709
2008-06-21 Hans Breuer <hans@breuer.org>
* gtk/gtkprintoperation-win32.c(1713) : fix 'function' : incompatible
types - from 'struct _cairo *' to 'struct _cairo_surface *' by
passing the surface to cairo_surface_show_page(), not the context
* gtk/gtkprintoperation-win32.c(866) : get rid of warning C4018:
'<' : signed/unsigned mismatch by using guint for the loop
* gtk/gtkmenu.c(gtk_menu_get_property) : property 'menu::active' is
an uint, gtk_menu_get_active() returns the widget pointer. Convert
the latter to the former by calculating the index in menu::children
Also fix some occurences of g_return_if_fail() where
g_return_val_if_fail() was meant
svn path=/trunk/; revision=20662
2008-04-03 Cody Russell <bratsche@gnome.org>
* gtk/gtkprintoperation-win32.c: Fix variable declared in the middle
of the block. (#526021, reported by Kazuki IWAMOTO)
svn path=/trunk/; revision=19974
2008-04-01 Cody Russell <bratsche@gnome.org>
* configure.in: Bump required Cairo to 1.5.2.
* gtk/gtkprintoperation-win32.c: Add support for using the new
cairo_win32_printing_surface for printing. (#488833)
svn path=/trunk/; revision=19955
2007-09-24 Tor Lillqvist <tml@novell.com>
* gtk/gtkprintoperation-win32.c (pageDlgProc): Set the
GtkWin32EmbedWidget we create here as modal. Fixes#389358.
svn path=/trunk/; revision=18860
2007-01-13 Hans Breuer <hans@breuer.org>
* gtk/gtkprintoperation-win32.c : take the custom tab label from
gtk_print_operation_set_custom_tab_label() into account (bug #390746).
svn path=/trunk/; revision=17139
2006-09-10 Matthias Clasen <mclasen@redhat.com>
* Commit a patch by Behdad to fix typos, omissions and other
errors in the symbol aliasing, and add checks for local PLT
entries. (#354687, Behdad Esfahbod)
2006-06-08 Alexander Larsson <alexl@redhat.com>
* gtk/gtkprintoperation-win32.c:
Update windows to build with new APIs and first cut
at preview work.
* gtk/gtkprintoperation-private.h:
* gtk/gtkprintoperation-unix.c:
* gtk/gtkprintoperation.c
Various updates needed when making the preview work on win32.
* tests/print-editor.c:
Print, don't preview.
2006-06-02 Alexander Larsson <alexl@redhat.com>
* gtk/Makefile.am:
Add gtkprintoperationpreview.[ch]
Set default preview command. Hardcoded for now.
* gtk/gtkmarshalers.list:
Add BOOLEAN:OBJECT,OBJECT,OBJECT
* gtk/gtkprintbackend.c:
Add preview command property.
* gtk/gtkprintcontext.[ch]:
Make less dependent on PrintOperation for output settings
Externally set cairo_t and dpi. Resettable.
Create fontmap without metrics hinting (so that print preview
text layout doesn't depend on zoom level).
* gtk/gtkprintoperation-private.h:
* gtk/gtkprintoperation-unix.c:
* gtk/gtkprintoperation.[ch]:
Initial work on print preview API and default implementation
using an external preview app.
* gtk/gtkprintoperation-win32.c:
Some needed updates. Not done, needs more work.
* gtk/gtkprintoperationpreview.[ch]:
New interface used in print preview api.
* gtk/gtkprintunixdialog.c:
Add print preview dialog.
* tests/print-editor.c:
Test using an custom print preview widget.
2006-05-23 Matthias Clasen <mclasen@redhat.com>
* gtk/gtk.symbols:
* gtk/gtkprintoperation.h:
* gtk/gtkprintoperation.c: Add a boolean show-progress
property, and show a progress dialog if it is set to TRUE.
* gtk/gtkprintoperation.c (pdf_end_run):
* gtk/gtkprintoperation-win32.c (win32_end_run):
* gtk/gtkprintoperation-unix.c (unix_end_run):
* gtk/gtkprintoperation-private.h: Add a cancelled
parameter to end_run, and call it even if the print
operation was cancelled.
2006-05-23 Alexander Larsson <alexl@redhat.com>
* gtk/gtk.symbols:
* gtk/gtkprintunixdialog.[ch]:
Add gtk_print_unix_dialog_add_custom_tab
* gtk/gtkprintoperation-unix.c:
Implement custom widgets for unix.
Fix some warnings by including cairo-ps/pdf.h
* gtk/gtkprintoperation-win32.c:
Mark string for translation.