summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--RepositoryExternal.mk13
-rw-r--r--configure.in10
-rwxr-xr-xset_soenv.in3
-rw-r--r--vcl/Library_vclplug_gtk.mk15
-rw-r--r--vcl/Library_vclplug_gtk3.mk1
-rw-r--r--vcl/inc/unx/gtk/gtkinst.hxx6
-rw-r--r--vcl/unx/gtk/app/gtkinst.cxx8
-rw-r--r--vcl/unx/gtk/inc/gtkprintwrapper.hxx8
8 files changed, 54 insertions, 10 deletions
diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk
index 11deeaaff838..6da9253ae1fe 100644
--- a/RepositoryExternal.mk
+++ b/RepositoryExternal.mk
@@ -645,6 +645,19 @@ $(call gb_LinkTarget_set_include,$(1),\
$(call gb_LinkTarget_add_libs,$(1),$(GTK_LIBS))
+ifeq ($(ENABLE_GTK_PRINT),TRUE)
+
+$(call gb_LinkTarget_add_defs,$(1),-DENABLE_GTK_PRINT)
+
+$(call gb_LinkTarget_set_include,$(1),\
+ $$(INCLUDE) \
+ $(GTK_PRINT_CFLAGS) \
+)
+
+$(call gb_LinkTarget_add_libs,$(1),$(GTK_PRINT_LIBS))
+
+endif
+
endef
define gb_LinkTarget__use_gthread
diff --git a/configure.in b/configure.in
index cf0d3cb013d1..d50a9eb42b4f 100644
--- a/configure.in
+++ b/configure.in
@@ -7007,7 +7007,7 @@ if test "x$enable_gtk3" = "xyes"; then
if test "$with_system_cairo" != yes; then
echo "System cairo required for gtk3 support, please use --with-system-cairo"
fi
- PKG_CHECK_MODULES(GTK3, gtk+-3.0 >= 3.2 cairo, ENABLE_GTK3="TRUE", ENABLE_GTK3="")
+ PKG_CHECK_MODULES(GTK3, gtk+-3.0 >= 3.2 gtk+-unix-print-3.0 cairo, ENABLE_GTK3="TRUE", ENABLE_GTK3="")
if test "x$ENABLE_GTK3" = "xTRUE"; then
R="gtk3"
else
@@ -7099,6 +7099,11 @@ if test "$test_gtk" = "yes"; then
[ ENABLE_SYSTRAY_GTK="" ])
fi
+ AC_MSG_CHECKING([whether to enable Gtk print dialog support])
+ PKG_CHECK_MODULES([GTK_PRINT], [gtk+-unix-print-2.0 >= 2.10.0],
+ [ENABLE_GTK_PRINT="TRUE"],
+ [ENABLE_GTK_PRINT=""])
+
AC_MSG_CHECKING([whether to enable DBUS support])
if test "$_os" != "WINNT" -a "$_os" != "Darwin" -a "$enable_dbus" = "yes"; then
ENABLE_DBUS="TRUE"
@@ -7130,6 +7135,9 @@ AC_SUBST(GTHREAD_CFLAGS)
AC_SUBST(GTHREAD_LIBS)
AC_SUBST(DBUS_CFLAGS)
AC_SUBST(DBUS_LIBS)
+AC_SUBST([ENABLE_GTK_PRINT])
+AC_SUBST([GTK_PRINT_CFLAGS])
+AC_SUBST([GTK_PRINT_LIBS])
PKG_CHECK_MODULES( LIBPNG, libpng, ENABLE_QUICKSTART_LIBPNG="TRUE", ENABLE_QUICKSTART_LIBPNG="" )
AC_SUBST(LIBPNG_LIBS)
diff --git a/set_soenv.in b/set_soenv.in
index 559ad1670c84..6c6c200ab2dd 100755
--- a/set_soenv.in
+++ b/set_soenv.in
@@ -1545,6 +1545,9 @@ ToFile( "SERVLETAPI_JAR", "@SERVLETAPI_JAR@", "e" );
ToFile( "ENABLE_DBUS", "@ENABLE_DBUS@", "e" );
ToFile( "DBUS_CFLAGS", "@DBUS_CFLAGS@", "e" );
ToFile( "DBUS_LIBS", "@DBUS_LIBS@", "e" );
+ToFile( "ENABLE_GTK_PRINT", "@ENABLE_GTK_PRINT@", "e" );
+ToFile( "GTK_PRINT_CFLAGS", "@GTK_PRINT_CFLAGS@", "e" );
+ToFile( "GTK_PRINT_LIBS", "@GTK_PRINT_LIBS@", "e" );
ToFile( "ENABLE_GCONF", "@ENABLE_GCONF@", "e" );
ToFile( "ENABLE_GNOMEVFS", "@ENABLE_GNOMEVFS@", "e" );
ToFile( "ENABLE_GSTREAMER", "@ENABLE_GSTREAMER@", "e" );
diff --git a/vcl/Library_vclplug_gtk.mk b/vcl/Library_vclplug_gtk.mk
index d6e67bf9f4e0..657844d50250 100644
--- a/vcl/Library_vclplug_gtk.mk
+++ b/vcl/Library_vclplug_gtk.mk
@@ -28,7 +28,6 @@
$(eval $(call gb_Library_Library,vclplug_gtk))
-# TODO: move the pkg-config stuff to configure
$(eval $(call gb_Library_set_include,vclplug_gtk,\
$$(INCLUDE) \
-I$(SRCDIR)/vcl/inc \
@@ -36,7 +35,6 @@ $(eval $(call gb_Library_set_include,vclplug_gtk,\
-I$(SRCDIR)/vcl/unx/gtk/inc \
-I$(SRCDIR)/solenv/inc \
-I$(OUTDIR)/inc \
- $(shell pkg-config --cflags gtk+-unix-print-2.0) \
))
$(eval $(call gb_Library_add_defs,vclplug_gtk,\
@@ -72,10 +70,6 @@ $(eval $(call gb_Library_add_linked_libs,vclplug_gtk,\
$(gb_STDLIBS) \
))
-$(eval $(call gb_Library_add_libs,vclplug_gtk,\
- $(shell pkg-config --libs gtk+-unix-print-2.0) \
-))
-
$(eval $(call gb_Library_use_externals,vclplug_gtk,\
dbus \
gtk \
@@ -105,9 +99,7 @@ $(eval $(call gb_Library_add_exception_objects,vclplug_gtk,\
vcl/unx/gtk/app/gtkdata \
vcl/unx/gtk/app/gtkinst \
vcl/unx/gtk/app/gtksys \
- vcl/unx/gtk/gdi/gtkprintwrapper \
vcl/unx/gtk/gdi/salnativewidgets-gtk \
- vcl/unx/gtk/gdi/salprn-gtk \
vcl/unx/gtk/window/gtkframe \
vcl/unx/gtk/window/gtkobject \
vcl/unx/gtk/fpicker/resourceprovider \
@@ -116,6 +108,13 @@ $(eval $(call gb_Library_add_exception_objects,vclplug_gtk,\
vcl/unx/gtk/fpicker/SalGtkFolderPicker \
))
+ifeq ($(ENABLE_GTK_PRINT),TRUE)
+$(eval $(call gb_Library_add_exception_objects,vclplug_gtk,\
+ vcl/unx/gtk/gdi/gtkprintwrapper \
+ vcl/unx/gtk/gdi/salprn-gtk \
+))
+endif
+
ifeq ($(OS),LINUX)
$(eval $(call gb_Library_add_linked_libs,vclplug_gtk,\
dl \
diff --git a/vcl/Library_vclplug_gtk3.mk b/vcl/Library_vclplug_gtk3.mk
index c5e801486015..ca50535412d3 100644
--- a/vcl/Library_vclplug_gtk3.mk
+++ b/vcl/Library_vclplug_gtk3.mk
@@ -35,7 +35,6 @@ $(eval $(call gb_Library_set_include,vclplug_gtk3,\
-I$(SRCDIR)/vcl/unx/gtk3/inc \
-I$(SRCDIR)/solenv/inc \
-I$(OUTDIR)/inc \
- $(shell pkg-config --cflags gtk+-unix-print-3.0) \
))
$(eval $(call gb_Library_add_cxxflags,vclplug_gtk3,\
diff --git a/vcl/inc/unx/gtk/gtkinst.hxx b/vcl/inc/unx/gtk/gtkinst.hxx
index d1014ecec2f6..331bcff884c3 100644
--- a/vcl/inc/unx/gtk/gtkinst.hxx
+++ b/vcl/inc/unx/gtk/gtkinst.hxx
@@ -97,6 +97,11 @@ class GtkInstance : public SvpSalInstance
class GtkInstance : public X11SalInstance
#endif
{
+#if GTK_CHECK_VERSION(3,0,0)
+ typedef SvpSalInstance Superclass_t;
+#else
+ typedef X11SalInstance Superclass_t;
+#endif
public:
GtkInstance( SalYieldMutex* pMutex );
virtual ~GtkInstance();
@@ -137,6 +142,7 @@ public:
void subtractEvent( sal_uInt16 nMask );
boost::shared_ptr<vcl::unx::GtkPrintWrapper> getPrintWrapper() const;
+
private:
std::vector<GtkSalTimer *> m_aTimers;
bool IsTimerExpired();
diff --git a/vcl/unx/gtk/app/gtkinst.cxx b/vcl/unx/gtk/app/gtkinst.cxx
index f887323ca79c..b6eacc9b3449 100644
--- a/vcl/unx/gtk/app/gtkinst.cxx
+++ b/vcl/unx/gtk/app/gtkinst.cxx
@@ -401,18 +401,26 @@ void GtkInstance::AddToRecentDocumentList(const rtl::OUString& rFileUrl, const r
SalInfoPrinter* GtkInstance::CreateInfoPrinter( SalPrinterQueueInfo* pQueueInfo,
ImplJobSetup* pSetupData )
{
+#if defined ENABLE_GTK_PRINT || GTK_CHECK_VERSION(3,0,0)
mbPrinterInit = true;
// create and initialize SalInfoPrinter
PspSalInfoPrinter* pPrinter = new GtkSalInfoPrinter;
configurePspInfoPrinter(pPrinter, pQueueInfo, pSetupData);
return pPrinter;
+#else
+ return Superclass_t::CreateInfoPrinter( pQueueInfo, pSetupData );
+#endif
}
SalPrinter* GtkInstance::CreatePrinter( SalInfoPrinter* pInfoPrinter )
{
+#if defined ENABLE_GTK_PRINT || GTK_CHECK_VERSION(3,0,0)
mbPrinterInit = true;
fprintf(stderr, "gtk printer\n");
return new GtkSalPrinter( pInfoPrinter );
+#else
+ return Superclass_t::CreatePrinter( pInfoPrinter );
+#endif
}
diff --git a/vcl/unx/gtk/inc/gtkprintwrapper.hxx b/vcl/unx/gtk/inc/gtkprintwrapper.hxx
index f625923909fd..1df133a99548 100644
--- a/vcl/unx/gtk/inc/gtkprintwrapper.hxx
+++ b/vcl/unx/gtk/inc/gtkprintwrapper.hxx
@@ -32,9 +32,15 @@
#include <boost/noncopyable.hpp>
#include <gtk/gtk.h>
+
+#if defined ENABLE_GTK_PRINT || GTK_CHECK_VERSION(3,0,0)
#include <gtk/gtkunixprint.h>
+#if !GTK_CHECK_VERSION(3,0,0)
#include <osl/module.hxx>
+#endif
+
+#endif
namespace vcl
{
@@ -43,6 +49,7 @@ namespace unx
class GtkPrintWrapper : private boost::noncopyable
{
+#if defined ENABLE_GTK_PRINT || GTK_CHECK_VERSION(3,0,0)
public:
GtkPrintWrapper();
~GtkPrintWrapper();
@@ -133,6 +140,7 @@ private:
print_unix_dialog_set_support_selection_t m_print_unix_dialog_set_support_selection;
print_unix_dialog_set_has_selection_t m_print_unix_dialog_set_has_selection;
#endif
+#endif
};
}