summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorMichael Meeks <michael.meeks@suse.com>2011-09-29 11:37:24 +0100
committerMichael Meeks <michael.meeks@suse.com>2011-10-25 13:41:45 +0100
commita77fff188b96169f74224ab118c75f4c9f14fa36 (patch)
treeb8f9057ee44acd928007d4e79664a9868b5681df /vcl
parenta39f4e5b57f5e518cc1ba09d5801da07b52fbaa5 (diff)
break headless coupling to X dependent backend
Diffstat (limited to 'vcl')
-rw-r--r--vcl/Library_vclplug_svp.mk9
-rw-r--r--vcl/inc/saldatabasic.hxx1
-rw-r--r--vcl/inc/salinst.hxx7
-rw-r--r--vcl/inc/unx/headless/svpinst.hxx1
-rw-r--r--vcl/inc/unx/salinst.h3
-rw-r--r--vcl/unx/generic/app/salinst.cxx9
-rw-r--r--vcl/unx/generic/gdi/salprnpsp.cxx11
-rw-r--r--vcl/unx/headless/svpprn.cxx21
8 files changed, 42 insertions, 20 deletions
diff --git a/vcl/Library_vclplug_svp.mk b/vcl/Library_vclplug_svp.mk
index c2e2e3ce46f1..40a01f6d2f12 100644
--- a/vcl/Library_vclplug_svp.mk
+++ b/vcl/Library_vclplug_svp.mk
@@ -41,6 +41,7 @@ $(eval $(call gb_Library_add_cxxflags,vclplug_svp,\
))
$(eval $(call gb_Library_add_defs,vclplug_svp,\
+ -D_XSALSET_LIBNAME=\"$(call gb_Library_get_runtime_filename,spa)\" \
-DVCLPLUG_SVP_IMPLEMENTATION \
))
@@ -51,7 +52,6 @@ $(eval $(call gb_Library_add_api,vclplug_svp,\
$(eval $(call gb_Library_add_linked_libs,vclplug_svp,\
vcl \
- vclplug_gen \
tl \
utl \
sot \
@@ -89,6 +89,13 @@ $(eval $(call gb_Library_add_exception_objects,vclplug_svp,\
vcl/unx/headless/svppspgraphics \
vcl/unx/headless/svptext \
vcl/unx/headless/svpvd \
+ vcl/unx/generic/gdi/salprnpsp \
+ vcl/unx/generic/printergfx/bitmap_gfx \
+ vcl/unx/generic/printergfx/common_gfx \
+ vcl/unx/generic/printergfx/glyphset \
+ vcl/unx/generic/printergfx/printerjob \
+ vcl/unx/generic/printergfx/psputil \
+ vcl/unx/generic/printergfx/text_gfx \
))
ifeq ($(OS),LINUX)
diff --git a/vcl/inc/saldatabasic.hxx b/vcl/inc/saldatabasic.hxx
index 9d4eb0fc73f9..dc040eb704f1 100644
--- a/vcl/inc/saldatabasic.hxx
+++ b/vcl/inc/saldatabasic.hxx
@@ -49,7 +49,6 @@ public:
SalData();
virtual ~SalData();
-
};
// -=-= inlines =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
diff --git a/vcl/inc/salinst.hxx b/vcl/inc/salinst.hxx
index 194e61ac0cf5..408708bc806a 100644
--- a/vcl/inc/salinst.hxx
+++ b/vcl/inc/salinst.hxx
@@ -110,7 +110,10 @@ public:
virtual void GetPrinterQueueInfo( ImplPrnQueueList* pList ) = 0;
virtual void GetPrinterQueueState( SalPrinterQueueInfo* pInfo ) = 0;
virtual void DeletePrinterQueueInfo( SalPrinterQueueInfo* pInfo ) = 0;
- virtual String GetDefaultPrinter() = 0;
+ virtual String GetDefaultPrinter() = 0;
+
+ // used only by the unix / headless backends to de-couple code
+ virtual void PostPrintersChanged() {}
// SalTimer
virtual SalTimer* CreateSalTimer() = 0;
@@ -123,7 +126,7 @@ public:
// YieldMutex
virtual osl::SolarMutex* GetYieldMutex() = 0;
- virtual sal_uLong ReleaseYieldMutex() = 0;
+ virtual sal_uLong ReleaseYieldMutex() = 0;
virtual void AcquireYieldMutex( sal_uLong nCount ) = 0;
// return true, if yield mutex is owned by this thread, else false
virtual bool CheckYieldMutex() = 0;
diff --git a/vcl/inc/unx/headless/svpinst.hxx b/vcl/inc/unx/headless/svpinst.hxx
index 6fcafe0c7f66..b61911ebc089 100644
--- a/vcl/inc/unx/headless/svpinst.hxx
+++ b/vcl/inc/unx/headless/svpinst.hxx
@@ -165,6 +165,7 @@ public:
virtual void GetPrinterQueueState( SalPrinterQueueInfo* pInfo );
virtual void DeletePrinterQueueInfo( SalPrinterQueueInfo* pInfo );
virtual String GetDefaultPrinter();
+ virtual void PostPrintersChanged();
// SalTimer
virtual SalTimer* CreateSalTimer();
diff --git a/vcl/inc/unx/salinst.h b/vcl/inc/unx/salinst.h
index 4d264f7c9f45..dd1c942f01bf 100644
--- a/vcl/inc/unx/salinst.h
+++ b/vcl/inc/unx/salinst.h
@@ -88,7 +88,8 @@ public:
virtual void GetPrinterQueueInfo( ImplPrnQueueList* pList );
virtual void GetPrinterQueueState( SalPrinterQueueInfo* pInfo );
virtual void DeletePrinterQueueInfo( SalPrinterQueueInfo* pInfo );
- virtual String GetDefaultPrinter();
+ virtual String GetDefaultPrinter();
+ virtual void PostPrintersChanged();
virtual SalTimer* CreateSalTimer();
virtual SalI18NImeStatus* CreateI18NImeStatus();
diff --git a/vcl/unx/generic/app/salinst.cxx b/vcl/unx/generic/app/salinst.cxx
index dfddcd990a41..07ad6f304d3a 100644
--- a/vcl/unx/generic/app/salinst.cxx
+++ b/vcl/unx/generic/app/salinst.cxx
@@ -449,4 +449,13 @@ void X11SalInstance::AddToRecentDocumentList(const rtl::OUString& rFileUrl, cons
add_to_recently_used_file_list(rFileUrl, rMimeType);
}
+void X11SalInstance::PostPrintersChanged()
+{
+ SalDisplay* pDisp = GetX11SalData()->GetDisplay();
+ const std::list< SalFrame* >& rList = pDisp->getFrames();
+ for( std::list< SalFrame* >::const_iterator it = rList.begin();
+ it != rList.end(); ++it )
+ pDisp->SendInternalEvent( *it, NULL, SALEVENT_PRINTERCHANGED );
+}
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/unx/generic/gdi/salprnpsp.cxx b/vcl/unx/generic/gdi/salprnpsp.cxx
index 011900360da0..790e9183e0f1 100644
--- a/vcl/unx/generic/gdi/salprnpsp.cxx
+++ b/vcl/unx/generic/gdi/salprnpsp.cxx
@@ -1412,14 +1412,9 @@ int x11::PrinterUpdate::nActiveJobs = 0;
void x11::PrinterUpdate::doUpdate()
{
::psp::PrinterInfoManager& rManager( ::psp::PrinterInfoManager::get() );
- if( rManager.checkPrintersChanged( false ) )
- {
- SalDisplay* pDisp = GetX11SalData()->GetDisplay();
- const std::list< SalFrame* >& rList = pDisp->getFrames();
- for( std::list< SalFrame* >::const_iterator it = rList.begin();
- it != rList.end(); ++it )
- pDisp->SendInternalEvent( *it, NULL, SALEVENT_PRINTERCHANGED );
- }
+ SalInstance *pInst = GetSalData()->m_pInstance;
+ if( pInst && rManager.checkPrintersChanged( false ) )
+ pInst->PostPrintersChanged();
}
// -----------------------------------------------------------------------
diff --git a/vcl/unx/headless/svpprn.cxx b/vcl/unx/headless/svpprn.cxx
index 64929876de17..df159987ca35 100644
--- a/vcl/unx/headless/svpprn.cxx
+++ b/vcl/unx/headless/svpprn.cxx
@@ -40,6 +40,7 @@
#include "jobset.h"
#include "print.h"
#include "salptype.hxx"
+#include "saldatabasic.hxx"
#include "unx/headless/svpprn.hxx"
#include "unx/headless/svppspgraphics.hxx"
@@ -303,6 +304,16 @@ String SvpSalInstance::GetDefaultPrinter()
// -----------------------------------------------------------------------
+void SvpSalInstance::PostPrintersChanged()
+{
+ const std::list< SalFrame* >& rList = SvpSalInstance::s_pDefaultInstance->getFrames();
+ for( std::list< SalFrame* >::const_iterator it = rList.begin();
+ it != rList.end(); ++it )
+ SvpSalInstance::s_pDefaultInstance->PostEvent( *it, NULL, SALEVENT_PRINTERCHANGED );
+}
+
+// -----------------------------------------------------------------------
+
sal_Bool SvpSalInfoPrinter::Setup( SalFrame*, ImplJobSetup* )
{
return sal_False;
@@ -334,13 +345,9 @@ int svp::PrinterUpdate::nActiveJobs = 0;
void svp::PrinterUpdate::doUpdate()
{
::psp::PrinterInfoManager& rManager( ::psp::PrinterInfoManager::get() );
- if( rManager.checkPrintersChanged( false ) && SvpSalInstance::s_pDefaultInstance )
- {
- const std::list< SalFrame* >& rList = SvpSalInstance::s_pDefaultInstance->getFrames();
- for( std::list< SalFrame* >::const_iterator it = rList.begin();
- it != rList.end(); ++it )
- SvpSalInstance::s_pDefaultInstance->PostEvent( *it, NULL, SALEVENT_PRINTERCHANGED );
- }
+ SalInstance *pInst = GetSalData()->m_pInstance;
+ if( pInst && rManager.checkPrintersChanged( false ) )
+ pInst->PostPrintersChanged();
}
// -----------------------------------------------------------------------