summaryrefslogtreecommitdiff
path: root/sd
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2012-09-10 16:59:55 +0100
committerCaolán McNamara <caolanm@redhat.com>2012-09-28 08:48:44 +0100
commit87b5cdd5ed13f5d05fe90b11b01e3832e5725b72 (patch)
tree3ce67b9dd7f1c9378a09b0d55bafb8d416f7d894 /sd
parent644cb58ac6ea53abab37c61e49d047eab0a1735c (diff)
convert writer, draw, impress, calc and starmath printer dialogs
to new-style widget layout mostly described in .ui format Change-Id: I8ead53a246a8ac3e2d446d158f06d7e2e436ce60
Diffstat (limited to 'sd')
-rw-r--r--sd/Module_sd.mk2
-rw-r--r--sd/UI_sdraw.mk16
-rw-r--r--sd/UI_simpress.mk16
-rw-r--r--sd/source/ui/view/DocumentRenderer.cxx100
-rw-r--r--sd/uiconfig/sdraw/ui/printeroptions.ui283
-rw-r--r--sd/uiconfig/simpress/ui/printeroptions.ui300
6 files changed, 674 insertions, 43 deletions
diff --git a/sd/Module_sd.mk b/sd/Module_sd.mk
index c15646d809fa..163e6ed4c3e7 100644
--- a/sd/Module_sd.mk
+++ b/sd/Module_sd.mk
@@ -38,6 +38,8 @@ $(eval $(call gb_Module_add_targets,sd,\
Package_uiconfig \
Package_web \
Package_xml \
+ UI_sdraw \
+ UI_simpress \
))
ifneq ($(OS),DRAGONFLY)
diff --git a/sd/UI_sdraw.mk b/sd/UI_sdraw.mk
new file mode 100644
index 000000000000..c557e6683719
--- /dev/null
+++ b/sd/UI_sdraw.mk
@@ -0,0 +1,16 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_UI_UI,modules/sdraw))
+
+$(eval $(call gb_UI_add_uifiles,modules/sdraw,\
+ sd/uiconfig/sdraw/ui/printeroptions \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/sd/UI_simpress.mk b/sd/UI_simpress.mk
new file mode 100644
index 000000000000..3ddeac9192df
--- /dev/null
+++ b/sd/UI_simpress.mk
@@ -0,0 +1,16 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_UI_UI,modules/simpress))
+
+$(eval $(call gb_UI_add_uifiles,modules/simpress,\
+ sd/uiconfig/simpress/ui/printeroptions \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/sd/source/ui/view/DocumentRenderer.cxx b/sd/source/ui/view/DocumentRenderer.cxx
index 12d3bd224293..045971c75d8d 100644
--- a/sd/source/ui/view/DocumentRenderer.cxx
+++ b/sd/source/ui/view/DocumentRenderer.cxx
@@ -403,47 +403,51 @@ namespace {
void ProcessResource()
{
+ // load the writer PrinterOptions into the custom tab
+ beans::PropertyValue aOptionsUIFile;
+ aOptionsUIFile.Name = rtl::OUString("OptionsUIFile");
+ if( mbImpress )
+ aOptionsUIFile.Value <<= rtl::OUString("modules/simpress/ui/printeroptions.ui");
+ else
+ aOptionsUIFile.Value <<= rtl::OUString("modules/sdraw/ui/printeroptions.ui");
+ maProperties.push_back(aOptionsUIFile);
+
SvtModuleOptions aOpt;
String aAppGroupname( String( SdResId( _STR_IMPRESS_PRINT_UI_GROUP_NAME ) ) );
aAppGroupname.SearchAndReplace( String( RTL_CONSTASCII_USTRINGPARAM( "%s" ) ),
aOpt.GetModuleName( mbImpress ? SvtModuleOptions::E_SIMPRESS : SvtModuleOptions::E_SDRAW ) );
- AddDialogControl( vcl::PrinterOptionsHelper::getGroupControlOpt(
- aAppGroupname,
- ".HelpID:vcl:PrintDialog:TabPage:AppPage"
- ) );
+ AddDialogControl(vcl::PrinterOptionsHelper::setGroupControlOpt("tabcontrol-page2", aAppGroupname, ".HelpID:vcl:PrintDialog:TabPage:AppPage"));
- uno::Sequence< rtl::OUString > aHelpIds;
+ uno::Sequence< rtl::OUString > aHelpIds, aWidgetIds;
if( mbImpress )
{
vcl::PrinterOptionsHelper::UIControlOptions aPrintOpt;
aPrintOpt.maGroupHint = "JobPage" ;
- AddDialogControl( vcl::PrinterOptionsHelper::getSubgroupControlOpt(
+ AddDialogControl( vcl::PrinterOptionsHelper::setSubgroupControlOpt("extraimpressprintoptions",
String( SdResId(_STR_IMPRESS_PRINT_UI_PRINT_GROUP) ),
"",
- aPrintOpt )
- );
+ aPrintOpt ));
aHelpIds.realloc( 1 );
aHelpIds[0] = ".HelpID:vcl:PrintDialog:PageContentType:ListBox" ;
- AddDialogControl( vcl::PrinterOptionsHelper::getChoiceControlOpt(
+ AddDialogControl( vcl::PrinterOptionsHelper::setChoiceListControlOpt(
+ "impressdocument",
String( SdResId( _STR_IMPRESS_PRINT_UI_CONTENT ) ),
aHelpIds,
"PageContentType" ,
CreateChoice(_STR_IMPRESS_PRINT_UI_CONTENT_CHOICES),
- 0,
- "List"
- )
+ 0)
);
aHelpIds[0] = ".HelpID:vcl:PrintDialog:SlidesPerPage:ListBox" ;
vcl::PrinterOptionsHelper::UIControlOptions aContentOpt( "PageContentType" , 1 );
- AddDialogControl( vcl::PrinterOptionsHelper::getChoiceControlOpt(
+ AddDialogControl( vcl::PrinterOptionsHelper::setChoiceListControlOpt(
+ "slidesperpage",
String( SdResId( _STR_IMPRESS_PRINT_UI_SLIDESPERPAGE ) ),
aHelpIds,
"SlidesPerPage" ,
GetSlidesPerPageSequence(),
0,
- "List",
Sequence< sal_Bool >(),
aContentOpt
)
@@ -451,25 +455,25 @@ namespace {
aHelpIds[0] = ".HelpID:vcl:PrintDialog:SlidesPerPageOrder:ListBox" ;
vcl::PrinterOptionsHelper::UIControlOptions aSlidesPerPageOpt( "SlidesPerPage" , -1, sal_True );
- AddDialogControl( vcl::PrinterOptionsHelper::getChoiceControlOpt(
+ AddDialogControl( vcl::PrinterOptionsHelper::setChoiceListControlOpt(
+ "slidesperpageorder",
String( SdResId( _STR_IMPRESS_PRINT_UI_ORDER ) ),
aHelpIds,
"SlidesPerPageOrder" ,
CreateChoice(_STR_IMPRESS_PRINT_UI_ORDER_CHOICES),
0,
- "List" ,
Sequence< sal_Bool >(),
aSlidesPerPageOpt )
);
}
- AddDialogControl( vcl::PrinterOptionsHelper::getSubgroupControlOpt(
+ AddDialogControl( vcl::PrinterOptionsHelper::setSubgroupControlOpt("contents",
String( SdResId(_STR_IMPRESS_PRINT_UI_INCLUDE_CONTENT) ), "" ) );
if( mbImpress )
{
- AddDialogControl( vcl::PrinterOptionsHelper::getBoolControlOpt(
+ AddDialogControl( vcl::PrinterOptionsHelper::setBoolControlOpt("printname",
String( SdResId(_STR_IMPRESS_PRINT_UI_IS_PRINT_NAME) ),
".HelpID:vcl:PrintDialog:IsPrintName:CheckBox" ,
"IsPrintName" ,
@@ -479,7 +483,7 @@ namespace {
}
else
{
- AddDialogControl( vcl::PrinterOptionsHelper::getBoolControlOpt(
+ AddDialogControl( vcl::PrinterOptionsHelper::setBoolControlOpt("printname",
String( SdResId(_STR_DRAW_PRINT_UI_IS_PRINT_NAME) ),
".HelpID:vcl:PrintDialog:IsPrintName:CheckBox" ,
"IsPrintName" ,
@@ -488,7 +492,7 @@ namespace {
);
}
- AddDialogControl( vcl::PrinterOptionsHelper::getBoolControlOpt(
+ AddDialogControl( vcl::PrinterOptionsHelper::setBoolControlOpt("printdatetime",
String( SdResId(_STR_IMPRESS_PRINT_UI_IS_PRINT_DATE) ),
".HelpID:vcl:PrintDialog:IsPrintDateTime:CheckBox" ,
"IsPrintDateTime" ,
@@ -498,7 +502,7 @@ namespace {
if( mbImpress )
{
- AddDialogControl( vcl::PrinterOptionsHelper::getBoolControlOpt(
+ AddDialogControl( vcl::PrinterOptionsHelper::setBoolControlOpt("printhidden",
String( SdResId(_STR_IMPRESS_PRINT_UI_IS_PRINT_HIDDEN) ),
".HelpID:vcl:PrintDialog:IsPrintHidden:CheckBox" ,
"IsPrintHidden" ,
@@ -507,23 +511,27 @@ namespace {
);
}
- AddDialogControl( vcl::PrinterOptionsHelper::getSubgroupControlOpt(
+ AddDialogControl( vcl::PrinterOptionsHelper::setSubgroupControlOpt("color",
String( SdResId(_STR_IMPRESS_PRINT_UI_QUALITY) ), "" ) );
aHelpIds.realloc( 3 );
aHelpIds[0] = ".HelpID:vcl:PrintDialog:Quality:RadioButton:0" ;
aHelpIds[1] = ".HelpID:vcl:PrintDialog:Quality:RadioButton:1" ;
aHelpIds[2] = ".HelpID:vcl:PrintDialog:Quality:RadioButton:2" ;
- AddDialogControl( vcl::PrinterOptionsHelper::getChoiceControlOpt(
+ aWidgetIds.realloc( 3 );
+ aWidgetIds[0] = "originalcolors";
+ aWidgetIds[1] = "grayscale";
+ aWidgetIds[2] = "blackandwhite";
+ AddDialogControl( vcl::PrinterOptionsHelper::setChoiceRadiosControlOpt(
+ aWidgetIds,
"",
aHelpIds,
"Quality" ,
CreateChoice(_STR_IMPRESS_PRINT_UI_QUALITY_CHOICES),
- 0
- )
+ 0)
);
- AddDialogControl( vcl::PrinterOptionsHelper::getSubgroupControlOpt(
+ AddDialogControl( vcl::PrinterOptionsHelper::setSubgroupControlOpt("pagesizes",
String( SdResId(_STR_IMPRESS_PRINT_UI_PAGE_OPTIONS) ), "" ) );
aHelpIds.realloc( 4 );
@@ -531,17 +539,22 @@ namespace {
aHelpIds[1] = ".HelpID:vcl:PrintDialog:PageOptions:RadioButton:1" ;
aHelpIds[2] = ".HelpID:vcl:PrintDialog:PageOptions:RadioButton:2" ;
aHelpIds[3] = ".HelpID:vcl:PrintDialog:PageOptions:RadioButton:3" ;
+ aWidgetIds.realloc( 4 );
+ aWidgetIds[0] = "originalsize";
+ aWidgetIds[1] = "fittoprintable";
+ aWidgetIds[2] = "distributeonmultiple";
+ aWidgetIds[3] = "tilesheet";
if( mbImpress )
{
// FIXME: additional dependency on PrintProspect = false
vcl::PrinterOptionsHelper::UIControlOptions aPageOptionsOpt( "PageContentType" , 0 );
- AddDialogControl( vcl::PrinterOptionsHelper::getChoiceControlOpt(
+ AddDialogControl( vcl::PrinterOptionsHelper::setChoiceRadiosControlOpt(
+ aWidgetIds,
"",
aHelpIds,
"PageOptions" ,
CreateChoice(_STR_IMPRESS_PRINT_UI_PAGE_OPTIONS_CHOICES),
0,
- "Radio" ,
Sequence< sal_Bool >(),
aPageOptionsOpt
)
@@ -550,13 +563,13 @@ namespace {
else
{
vcl::PrinterOptionsHelper::UIControlOptions aPageOptionsOpt( "PrintProspect" , sal_False );
- AddDialogControl( vcl::PrinterOptionsHelper::getChoiceControlOpt(
+ AddDialogControl( vcl::PrinterOptionsHelper::setChoiceRadiosControlOpt(
+ aWidgetIds,
"",
aHelpIds,
"PageOptions" ,
CreateChoice(_STR_IMPRESS_PRINT_UI_PAGE_OPTIONS_CHOICES_DRAW),
0,
- "Radio" ,
Sequence< sal_Bool >(),
aPageOptionsOpt
)
@@ -565,12 +578,12 @@ namespace {
vcl::PrinterOptionsHelper::UIControlOptions aBrochureOpt;
aBrochureOpt.maGroupHint = "LayoutPage" ;
- AddDialogControl( vcl::PrinterOptionsHelper::getSubgroupControlOpt(
+ AddDialogControl( vcl::PrinterOptionsHelper::setSubgroupControlOpt("pagesides",
String( SdResId(_STR_IMPRESS_PRINT_UI_PAGE_SIDES) ), "",
aBrochureOpt ) );
// brochure printing
- AddDialogControl( vcl::PrinterOptionsHelper::getBoolControlOpt(
+ AddDialogControl( vcl::PrinterOptionsHelper::setBoolControlOpt("brochure",
String( SdResId(_STR_IMPRESS_PRINT_UI_BROCHURE) ),
".HelpID:vcl:PrintDialog:PrintProspect:CheckBox" ,
"PrintProspect" ,
@@ -584,13 +597,13 @@ namespace {
aIncludeOpt.maGroupHint = "LayoutPage" ;
aHelpIds.realloc( 1 );
aHelpIds[0] = ".HelpID:vcl:PrintDialog:PrintProspectInclude:ListBox" ;
- AddDialogControl( vcl::PrinterOptionsHelper::getChoiceControlOpt(
+ AddDialogControl( vcl::PrinterOptionsHelper::setChoiceListControlOpt(
+ "brochureinclude",
String( SdResId(_STR_IMPRESS_PRINT_UI_BROCHURE_INCLUDE) ),
aHelpIds,
"PrintProspectInclude" ,
CreateChoice(_STR_IMPRESS_PRINT_UI_BROCHURE_INCLUDE_LIST),
0,
- "List" ,
Sequence< sal_Bool >(),
aIncludeOpt
)
@@ -599,7 +612,7 @@ namespace {
// paper tray (on options page)
vcl::PrinterOptionsHelper::UIControlOptions aPaperTrayOpt;
aPaperTrayOpt.maGroupHint = "OptionsPageOptGroup" ;
- AddDialogControl( vcl::PrinterOptionsHelper::getBoolControlOpt(
+ AddDialogControl( vcl::PrinterOptionsHelper::setBoolControlOpt("printpaperfromsetup",
String( SdResId(_STR_IMPRESS_PRINT_UI_PAPER_TRAY) ),
".HelpID:vcl:PrintDialog:PrintPaperFromSetup:CheckBox" ,
"PrintPaperFromSetup" ,
@@ -611,7 +624,7 @@ namespace {
vcl::PrinterOptionsHelper::UIControlOptions aPrintRangeOpt;
aPrintRangeOpt.mbInternalOnly = sal_True;
aPrintRangeOpt.maGroupHint = "PrintRange" ;
- AddDialogControl( vcl::PrinterOptionsHelper::getSubgroupControlOpt(
+ AddDialogControl( vcl::PrinterOptionsHelper::setSubgroupControlOpt("printrange",
String( SdResId( _STR_IMPRESS_PRINT_UI_PAGE_RANGE ) ),
"",
aPrintRangeOpt )
@@ -623,7 +636,11 @@ namespace {
aHelpIds[0] = ".HelpID:vcl:PrintDialog:PrintContent:RadioButton:0" ;
aHelpIds[1] = ".HelpID:vcl:PrintDialog:PrintContent:RadioButton:1" ;
aHelpIds[2] = ".HelpID:vcl:PrintDialog:PrintContent:RadioButton:2" ;
- AddDialogControl( vcl::PrinterOptionsHelper::getChoiceControlOpt( "",
+ aWidgetIds.realloc( 3 );
+ aWidgetIds[0] = "printallpages";
+ aWidgetIds[1] = "printpages";
+ aWidgetIds[2] = "printselection";
+ AddDialogControl( vcl::PrinterOptionsHelper::setChoiceRadiosControlOpt(aWidgetIds, "",
aHelpIds,
aPrintRangeName,
CreateChoice(mbImpress
@@ -633,12 +650,9 @@ namespace {
);
// create a an Edit dependent on "Pages" selected
vcl::PrinterOptionsHelper::UIControlOptions aPageRangeOpt( aPrintRangeName, 1, sal_True );
- AddDialogControl( vcl::PrinterOptionsHelper::getEditControlOpt( "",
- ".HelpID:vcl:PrintDialog:PageRange:Edit" ,
- "PageRange" ,
- OUString::valueOf(mnCurPage + 1),
- aPageRangeOpt )
- );
+ AddDialogControl(vcl::PrinterOptionsHelper::setEditControlOpt("pagerange", "",
+ ".HelpID:vcl:PrintDialog:PageRange:Edit", "PageRange",
+ OUString::valueOf(mnCurPage + 1), aPageRangeOpt));
FreeResource();
}
diff --git a/sd/uiconfig/sdraw/ui/printeroptions.ui b/sd/uiconfig/sdraw/ui/printeroptions.ui
new file mode 100644
index 000000000000..3718af3407ec
--- /dev/null
+++ b/sd/uiconfig/sdraw/ui/printeroptions.ui
@@ -0,0 +1,283 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <!-- interface-requires gtk+ 3.0 -->
+ <object class="GtkBox" id="box">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkFrame" id="contents">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">none</property>
+ <child>
+ <object class="GtkAlignment" id="alignment1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="left_padding">12</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="GtkCheckButton" id="printname">
+ <property name="label" translatable="yes">Page name</property>
+ <property name="use_action_appearance">False</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="xalign">0</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="printdatetime">
+ <property name="label" translatable="yes">Date and time</property>
+ <property name="use_action_appearance">False</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="xalign">0</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel" id="label4">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Contents</property>
+ <property name="use_markup">True</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkFrame" id="color">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">none</property>
+ <child>
+ <object class="GtkAlignment" id="alignment2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="left_padding">12</property>
+ <child>
+ <object class="GtkBox" id="box1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkRadioButton" id="originalcolors">
+ <property name="label" translatable="yes">Original size</property>
+ <property name="use_action_appearance">False</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="xalign">0</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">grayscale</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkRadioButton" id="grayscale">
+ <property name="label" translatable="yes">Grayscale</property>
+ <property name="use_action_appearance">False</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="xalign">0</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">blackandwhite</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkRadioButton" id="blackandwhite">
+ <property name="label" translatable="yes">Black &amp; white</property>
+ <property name="use_action_appearance">False</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="xalign">0</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">originalcolors</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel" id="label5">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Color</property>
+ <property name="use_markup">True</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkFrame" id="pagesizes">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">none</property>
+ <child>
+ <object class="GtkAlignment" id="alignment3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="left_padding">12</property>
+ <child>
+ <object class="GtkBox" id="box3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkRadioButton" id="originalsize">
+ <property name="label" translatable="yes">Original size</property>
+ <property name="use_action_appearance">False</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="xalign">0</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">fittoprintable</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkRadioButton" id="fittoprintable">
+ <property name="label" translatable="yes">Fit to printable page</property>
+ <property name="use_action_appearance">False</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="xalign">0</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">distributeonmultiple</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkRadioButton" id="distributeonmultiple">
+ <property name="label" translatable="yes">Distribute on multiple sheets of paper</property>
+ <property name="use_action_appearance">False</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="xalign">0</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">tilesheet</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkRadioButton" id="tilesheet">
+ <property name="label" translatable="yes">Tile sheet of paper with repeated pages</property>
+ <property name="use_action_appearance">False</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="xalign">0</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">originalsize</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel" id="label6">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Size</property>
+ <property name="use_markup">True</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+</interface>
diff --git a/sd/uiconfig/simpress/ui/printeroptions.ui b/sd/uiconfig/simpress/ui/printeroptions.ui
new file mode 100644
index 000000000000..99117c5a3e22
--- /dev/null
+++ b/sd/uiconfig/simpress/ui/printeroptions.ui
@@ -0,0 +1,300 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <!-- interface-requires gtk+ 3.0 -->
+ <object class="GtkBox" id="box">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkFrame" id="contents">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">none</property>
+ <child>
+ <object class="GtkAlignment" id="alignment1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="left_padding">12</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="GtkCheckButton" id="printname">
+ <property name="label" translatable="yes">Slide name</property>
+ <property name="use_action_appearance">False</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="xalign">0</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="printdatetime">
+ <property name="label" translatable="yes">Date and time</property>
+ <property name="use_action_appearance">False</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="xalign">0</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="printhidden">
+ <property name="label" translatable="yes">Hidden pages</property>
+ <property name="use_action_appearance">False</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="xalign">0</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel" id="label4">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Contents</property>
+ <property name="use_markup">True</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkFrame" id="color">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">none</property>
+ <child>
+ <object class="GtkAlignment" id="alignment2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="left_padding">12</property>
+ <child>
+ <object class="GtkBox" id="box1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkRadioButton" id="originalcolors">
+ <property name="label" translatable="yes">Original size</property>
+ <property name="use_action_appearance">False</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="xalign">0</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">grayscale</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkRadioButton" id="grayscale">
+ <property name="label" translatable="yes">Grayscale</property>
+ <property name="use_action_appearance">False</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="xalign">0</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">blackandwhite</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkRadioButton" id="blackandwhite">
+ <property name="label" translatable="yes">Black &amp; white</property>
+ <property name="use_action_appearance">False</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="xalign">0</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">originalcolors</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel" id="label5">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Color</property>
+ <property name="use_markup">True</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkFrame" id="pagesizes">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">none</property>
+ <child>
+ <object class="GtkAlignment" id="alignment3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="left_padding">12</property>
+ <child>
+ <object class="GtkBox" id="box3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkRadioButton" id="originalsize">
+ <property name="label" translatable="yes">Original size</property>
+ <property name="use_action_appearance">False</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="xalign">0</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">fittoprintable</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkRadioButton" id="fittoprintable">
+ <property name="label" translatable="yes">Fit to printable page</property>
+ <property name="use_action_appearance">False</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="xalign">0</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">distributeonmultiple</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkRadioButton" id="distributeonmultiple">
+ <property name="label" translatable="yes">Distribute on multiple sheets of paper</property>
+ <property name="use_action_appearance">False</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="xalign">0</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">tilesheet</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkRadioButton" id="tilesheet">
+ <property name="label" translatable="yes">Tile sheet of paper with repeated slides</property>
+ <property name="use_action_appearance">False</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="xalign">0</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">originalsize</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel" id="label6">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Size</property>
+ <property name="use_markup">True</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+</interface>