Kaydet (Commit) 6a2fbb82 authored tarafından Ptyl Dragon's avatar Ptyl Dragon

added callback for render

Change-Id: I56f47926eeff6ab57903c8eedf6528465fc41c9e
üst 679faffc
...@@ -21,67 +21,32 @@ ...@@ -21,67 +21,32 @@
#include <vcl/vclmain.hxx> #include <vcl/vclmain.hxx>
#include <vcl/field.hxx> #include <vcl/field.hxx>
#include <vcl/button.hxx> #include <vcl/button.hxx>
#include <sfx2/filedlghelper.hxx>
#include <com/sun/star/ui/dialogs/TemplateDescription.hpp>
#include <com/sun/star/ui/dialogs/XFilePicker.hpp>
#include <com/sun/star/uno/XInterface.hpp>
#include <com/sun/star/frame/XComponentLoader.hpp>
#include <com/sun/star/frame/Desktop.hpp>
#include <com/sun/star/lang/XComponent.hpp>
#include <com/sun/star/beans/XPropertySet.hpp>
using namespace ::com::sun::star;
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::ui::dialogs;
using namespace ::sfx2;
class TiledRenderingApp : public Application class UIPreviewApp : public Application
{ {
private:
uno::Reference<uno::XComponentContext> xContext;
uno::Reference<lang::XMultiComponentFactory> xFactory;
uno::Reference<lang::XMultiServiceFactory> xSFactory;
uno::Reference<uno::XInterface> xDesktop;
uno::Reference<frame::XComponentLoader> xLoader;
uno::Reference<lang::XComponent> xComponent;
public: public:
virtual void Init(); virtual void Init();
virtual int Main(); virtual int Main();
void Open(OUString & aFileUrl);
}; };
using namespace com::sun::star;
class TiledRenderingDialog: public ModalDialog{ class TiledRenderingDialog: public ModalDialog{
private:
TiledRenderingApp * app;
public: public:
TiledRenderingDialog(TiledRenderingApp * app_) : TiledRenderingDialog() : ModalDialog(DIALOG_NO_PARENT, "TiledRendering", "qa/sw/ui/tiledrendering.ui"){
ModalDialog(DIALOG_NO_PARENT, "TiledRendering", "qa/sw/ui/tiledrendering.ui"),
app(app_)
{
PushButton * renderButton; PushButton * renderButton;
get(renderButton,"buttonRenderTile"); get(renderButton,"buttonRenderTile");
renderButton->SetClickHdl( LINK( this, TiledRenderingDialog, RenderHdl)); renderButton->SetClickHdl( LINK( this, TiledRenderingDialog, RenderHdl));
PushButton * chooseDocumentButton;
get(chooseDocumentButton,"buttonChooseDocument");
chooseDocumentButton->SetClickHdl( LINK( this, TiledRenderingDialog, ChooseDocumentHdl));
SetStyle(GetStyle()|WB_CLOSEABLE);
}
virtual ~TiledRenderingDialog()
{
} }
virtual ~TiledRenderingDialog(){}
DECL_LINK ( RenderHdl, Button * ); DECL_LINK ( RenderHdl, Button * );
DECL_LINK ( ChooseDocumentHdl, Button * );
sal_Int32 ExtractInt(const char * name) sal_Int32 extractInt(const char * name){
{
NumericField * pField; NumericField * pField;
get(pField,name); get(pField,name);
OUString aString(pField->GetText()); OUString aString(pField->GetText());
SAL_INFO("TiledRenderingDialog","param " << name << " returned " << aString);
return aString.toInt32(); return aString.toInt32();
} }
...@@ -89,77 +54,90 @@ public: ...@@ -89,77 +54,90 @@ public:
IMPL_LINK ( TiledRenderingDialog, RenderHdl, Button *, EMPTYARG ) IMPL_LINK ( TiledRenderingDialog, RenderHdl, Button *, EMPTYARG )
{ {
ExtractInt("spinContextWidth"); extractInt("spinContextWidth");
ExtractInt("spinContextHeight"); extractInt("spinContextHeight");
ExtractInt("spinTilePosX"); extractInt("spinTilePosX");
ExtractInt("spinTilePosY"); extractInt("spinTilePosY");
ExtractInt("spinTileWidth"); extractInt("spinTileWidth");
ExtractInt("spinTileHeight"); extractInt("spinTileHeight");
return 1;
}
IMPL_LINK ( TiledRenderingDialog, ChooseDocumentHdl, Button *, EMPTYARG )
{
FileDialogHelper aDlgHelper( TemplateDescription::FILEOPEN_SIMPLE, 0 );
uno::Reference < XFilePicker > xFP = aDlgHelper.GetFilePicker();
if( aDlgHelper.Execute() == ERRCODE_NONE )
{
OUString aFileUrl =xFP->getFiles().getConstArray()[0];
app->Open(aFileUrl);
}
return 1; return 1;
} }
void TiledRenderingApp::Open(OUString & aFileUrl){ void UIPreviewApp::Init()
static const OUString TARGET("_default");
static const Sequence<beans::PropertyValue> PROPS (0);
if(xComponent.get())
{
xComponent->dispose();
xComponent.clear();
}
xComponent.set(xLoader->loadComponentFromURL(aFileUrl,TARGET,0,PROPS));
}
void TiledRenderingApp::Init()
{ {
xContext.set(cppu::defaultBootstrap_InitialComponentContext()); uno::Reference<uno::XComponentContext> xContext =
xFactory.set(xContext->getServiceManager()); cppu::defaultBootstrap_InitialComponentContext();
xSFactory.set(uno::Reference<lang::XMultiServiceFactory> (xFactory, uno::UNO_QUERY_THROW)); uno::Reference<lang::XMultiComponentFactory> xFactory =
xContext->getServiceManager();
uno::Reference<lang::XMultiServiceFactory> xSFactory =
uno::Reference<lang::XMultiServiceFactory> (xFactory, uno::UNO_QUERY_THROW);
comphelper::setProcessServiceFactory(xSFactory); comphelper::setProcessServiceFactory(xSFactory);
// Create UCB (for backwards compatibility, in case some code still uses // Create UCB (for backwards compatibility, in case some code still uses
// plain createInstance w/o args directly to obtain an instance): // plain createInstance w/o args directly to obtain an instance):
::ucb::UniversalContentBroker::create(comphelper::getProcessComponentContext() ); ::ucb::UniversalContentBroker::create(
comphelper::getProcessComponentContext() );
xDesktop.set(xFactory->createInstanceWithContext(OUString("com.sun.star.frame.Desktop"), xContext));
xLoader.set(frame::Desktop::create(xContext));
} }
int TiledRenderingApp::Main() int UIPreviewApp::Main()
{ {
if(GetCommandLineParamCount()>0) //std::vector<OUString> uifiles;
{ //for (sal_uInt16 i = 0; i < GetCommandLineParamCount(); ++i)
OUString aFileUrl; //{
osl::File::getFileURLFromSystemPath(GetCommandLineParam(0), aFileUrl); // OUString aFileUrl;
Open(aFileUrl); // osl::File::getFileURLFromSystemPath(GetCommandLineParam(i), aFileUrl);
} // uifiles.push_back(aFileUrl);
//}
//if (uifiles.empty())
//{
// fprintf(stderr, "Usage: ui-previewer file.ui\n");
// return EXIT_FAILURE;
//}
// turn on tooltips
Help::EnableQuickHelp(); Help::EnableQuickHelp();
try try
{ {
TiledRenderingDialog pDialog(this);
TiledRenderingDialog pDialog;
pDialog.Execute(); pDialog.Execute();
/*
{
VclBuilder aBuilder(pDialog, OUString(), "sw/qa/tiledrendering/tiledrendering.ui");
Dialog *pRealDialog = dynamic_cast<Dialog*>(aBuilder.get_widget_root());
if (!pRealDialog)
pRealDialog = pDialog;
if (pRealDialog)
{
pRealDialog->SetText(OUString("LibreOffice ui-previewer"));
pRealDialog->SetStyle(pDialog->GetStyle()|WB_CLOSEABLE);
pRealDialog->Execute();
}
}*/
} }
catch (const uno::Exception &e) catch (const uno::Exception &e)
{ {
fprintf(stderr, "fatal error: %s\n", OUStringToOString(e.Message, osl_getThreadTextEncoding()).getStr()); fprintf(stderr, "fatal error: %s\n", OUStringToOString(e.Message, osl_getThreadTextEncoding()).getStr());
} }
return EXIT_SUCCESS; return EXIT_SUCCESS;
} }
void render(){
}
void vclmain::createApplication() void vclmain::createApplication()
{ {
static TiledRenderingApp aApp; static UIPreviewApp aApp;
} }
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<!-- interface-requires gtk+ 3.0 -->
<object class="GtkWindow" id="window1">
<property name="can_focus">False</property>
<child>
<object class="GtkBox" id="box1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkBox" id="box2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkBox" id="box3">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkBox" id="box4">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel" id="labelContentWidth">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">contentWidth</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="labelContentHeight">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">contentHeight</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="labelTilePosX">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">tilePosX</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="labelTilePoxY">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">tilePosY</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="labelTileWidth">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">tileWidth</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">4</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="labelTileHeight">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">tileHeight</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">5</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box5">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkSpinButton" id="spinContextWidth">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="invisible_char"></property>
<property name="progress_pulse_step">1</property>
<property name="numeric">True</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="spinContextHeight">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="invisible_char"></property>
<property name="progress_pulse_step">1</property>
<property name="numeric">True</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="spinTilePosX">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="invisible_char"></property>
<property name="progress_pulse_step">1</property>
<property name="numeric">True</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="spinTilePosY">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="invisible_char"></property>
<property name="progress_pulse_step">1</property>
<property name="numeric">True</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="spinTileWidth">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="invisible_char"></property>
<property name="progress_pulse_step">1</property>
<property name="numeric">True</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">4</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="spinTileHeight">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="invisible_char"></property>
<property name="width_chars">1</property>
<property name="progress_pulse_step">1</property>
<property name="numeric">True</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">5</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box6">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkButton" id="buttonRenderTile">
<property name="label" translatable="yes">render tile</property>
<property name="use_action_appearance">False</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_action_appearance">False</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack_type">end</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="buttonChooseDocument">
<property name="label" translatable="yes">choose document</property>
<property name="use_action_appearance">False</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_action_appearance">False</property>
<property name="xalign">0.50999999046325684</property>
<property name="yalign">0.47999998927116394</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkImage" id="image1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="stock">gtk-missing-image</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
</object>
</interface>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment