summaryrefslogtreecommitdiff
path: root/vcl/generic
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2014-03-21 09:07:42 +0000
committerCaolán McNamara <caolanm@redhat.com>2014-03-21 11:23:01 +0000
commitb3a162ccecd24c61d4d6daeb7ac9bcd1a75db7be (patch)
tree6df9399cf8f69721f390e77467ab056dda7a7d54 /vcl/generic
parent5c291a0287af46558d3ef96d18b114c371ddd31b (diff)
move the fax dialog from padmin to vcl
now we don't have to dlopen padmin to get it so we can drop that complicated stuff and don't need to be unx only Change-Id: I0e585b05a4ecf2a1c8a3ac5275185d81ada518e5
Diffstat (limited to 'vcl/generic')
-rw-r--r--vcl/generic/print/genprnpsp.cxx87
1 files changed, 67 insertions, 20 deletions
diff --git a/vcl/generic/print/genprnpsp.cxx b/vcl/generic/print/genprnpsp.cxx
index cc379e556607..a60e5b66fa4c 100644
--- a/vcl/generic/print/genprnpsp.cxx
+++ b/vcl/generic/print/genprnpsp.cxx
@@ -41,12 +41,16 @@
#include "osl/module.h"
+#include "vcl/button.hxx"
+#include "vcl/dialog.hxx"
+#include "vcl/edit.hxx"
+#include "vcl/fixed.hxx"
#include "vcl/svapp.hxx"
#include "vcl/print.hxx"
#include "vcl/pdfwriter.hxx"
#include "vcl/printerinfomanager.hxx"
#include "vcl/settings.hxx"
-
+#include "svids.hrc"
#include "saldatabasic.hxx"
#include "generic/genprn.h"
#include "generic/geninst.h"
@@ -73,8 +77,6 @@ extern "C"
{
typedef int(*setupFunction)(PrinterInfo&);
static setupFunction pSetupFunction = NULL;
-typedef int(*faxFunction)(OUString&);
-static faxFunction pFaxNrFunction = NULL;
}
static OUString getPdfDir( const PrinterInfo& rInfo )
@@ -96,6 +98,61 @@ static OUString getPdfDir( const PrinterInfo& rInfo )
return aDir;
}
+namespace
+{
+ class QueryString : public ModalDialog
+ {
+ private:
+ OKButton* m_pOKButton;
+ FixedText* m_pFixedText;
+ Edit* m_pEdit;
+ OUString& m_rReturnValue;
+
+ DECL_LINK( ClickBtnHdl, Button* );
+
+ public:
+ // parent window, Query text, initial value
+ QueryString(Window*, OUString &, OUString &);
+ };
+
+ /*
+ * QueryString
+ */
+ QueryString::QueryString(Window* pParent, OUString& rQuery, OUString& rRet)
+ : ModalDialog(pParent, "QueryDialog",
+ "vcl/ui/querydialog.ui" )
+ , m_rReturnValue( rRet )
+ {
+ get(m_pOKButton, "ok");
+ get(m_pFixedText, "label");
+ get(m_pEdit, "entry");
+
+ m_pOKButton->SetClickHdl(LINK(this, QueryString, ClickBtnHdl));
+ m_pFixedText->SetText(rQuery);
+ m_pEdit->SetText(m_rReturnValue);
+ SetText(Application::GetDisplayName());
+ }
+
+ IMPL_LINK( QueryString, ClickBtnHdl, Button*, pButton )
+ {
+ if (pButton == m_pOKButton)
+ {
+ m_rReturnValue = m_pEdit->GetText();
+ EndDialog( 1 );
+ }
+ else
+ EndDialog(0);
+ return 0;
+ }
+
+ int QueryFaxNumber(OUString& rNumber)
+ {
+ OUString aTmpString(VclResId(SV_PRINT_QUERYFAXNUMBER_TXT));
+ QueryString aQuery(NULL, aTmpString, rNumber);
+ return aQuery.Execute();
+ }
+}
+
static void getPaLib()
{
#if defined( UNX ) && !( defined( MACOSX ) || defined( IOS ) || defined( ANDROID ) )
@@ -110,10 +167,6 @@ static void getPaLib()
pSetupFunction = (setupFunction)osl_getAsciiFunctionSymbol( driverLib, "Sal_SetupPrinterDriver" );
if ( !pSetupFunction )
fprintf( stderr, "could not resolve Sal_SetupPrinterDriver\n" );
-
- pFaxNrFunction = (faxFunction)osl_getAsciiFunctionSymbol( driverLib, "Sal_queryFaxNumber" );
- if ( !pFaxNrFunction )
- fprintf( stderr, "could not resolve Sal_queryFaxNumber\n" );
}
#endif
}
@@ -308,23 +361,17 @@ static std::vector<OUString> getFaxNumbers()
{
std::vector<OUString> aFaxNumbers;
-#if defined( UNX )
- getPaLib();
- if (pFaxNrFunction)
+ OUString aNewNr;
+ if (QueryFaxNumber(aNewNr))
{
- OUString aNewNr;
- if( pFaxNrFunction( aNewNr ) )
+ sal_Int32 nIndex = 0;
+ do
{
- sal_Int32 nIndex = 0;
- do
- {
- OUString sToken = aNewNr.getToken( 0, ';', nIndex );
- aFaxNumbers.push_back(sToken);
- }
- while (nIndex >= 0);
+ OUString sToken = aNewNr.getToken( 0, ';', nIndex );
+ aFaxNumbers.push_back(sToken);
}
+ while (nIndex >= 0);
}
-#endif
return aFaxNumbers;
}