diff options
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/UIConfig_vcl.mk | 1 | ||||
-rw-r--r-- | vcl/source/app/salvtables.cxx | 5 | ||||
-rw-r--r-- | vcl/source/control/roadmapwizard.cxx | 6 | ||||
-rw-r--r-- | vcl/source/control/wizardmachine.cxx | 4 | ||||
-rw-r--r-- | vcl/uiconfig/ui/wizard.ui | 17 | ||||
-rw-r--r-- | vcl/unx/gtk3/gtk3gtkinst.cxx | 17 |
6 files changed, 43 insertions, 7 deletions
diff --git a/vcl/UIConfig_vcl.mk b/vcl/UIConfig_vcl.mk index 3184aaee5293..638fc9a537ae 100644 --- a/vcl/UIConfig_vcl.mk +++ b/vcl/UIConfig_vcl.mk @@ -11,6 +11,7 @@ $(eval $(call gb_UIConfig_UIConfig,vcl)) $(eval $(call gb_UIConfig_add_uifiles,vcl,\ vcl/uiconfig/ui/aboutbox \ + vcl/uiconfig/ui/wizard \ vcl/uiconfig/ui/cupspassworddialog \ vcl/uiconfig/ui/editmenu \ vcl/uiconfig/ui/errornocontentdialog \ diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx index e0f3ad3f35c3..547bac4170c1 100644 --- a/vcl/source/app/salvtables.cxx +++ b/vcl/source/app/salvtables.cxx @@ -1653,6 +1653,11 @@ public: } } + virtual void set_page_side_help_id(const OString& rHelpId) override + { + m_xWizard->SetRoadmapHelpId(rHelpId); + } + weld::Button* weld_widget_for_response(int nResponse) override; virtual ~SalInstanceAssistant() override diff --git a/vcl/source/control/roadmapwizard.cxx b/vcl/source/control/roadmapwizard.cxx index 2d29a71aa47a..66f098e31cb9 100644 --- a/vcl/source/control/roadmapwizard.cxx +++ b/vcl/source/control/roadmapwizard.cxx @@ -170,12 +170,12 @@ namespace vcl m_pImpl->pRoadmap->SetHelpId( _rId ); } - void RoadmapWizard::SetRoadmapInteractive( bool _bInteractive ) + void RoadmapWizardMachine::SetRoadmapHelpId(const OString& rId) { - m_pImpl->pRoadmap->SetRoadmapInteractive( _bInteractive ); + m_xAssistant->set_page_side_help_id(rId); } - void RoadmapWizardMachine::SetRoadmapInteractive( bool _bInteractive ) + void RoadmapWizard::SetRoadmapInteractive( bool _bInteractive ) { m_pImpl->pRoadmap->SetRoadmapInteractive( _bInteractive ); } diff --git a/vcl/source/control/wizardmachine.cxx b/vcl/source/control/wizardmachine.cxx index 8a1a92a707f2..8f291ce40c38 100644 --- a/vcl/source/control/wizardmachine.cxx +++ b/vcl/source/control/wizardmachine.cxx @@ -685,7 +685,7 @@ namespace vcl } WizardMachine::WizardMachine(weld::Window* pParent, WizardButtonFlags nButtonFlags) - : AssistantController(pParent, "dbaccess/ui/databasewizard.ui", "DatabaseWizard") + : AssistantController(pParent, "vcl/ui/wizard.ui", "Wizard") , m_nCurState(0) , m_pFirstPage(nullptr) , m_xFinish(m_xAssistant->weld_widget_for_response(static_cast<int>(WizardButtonFlags::FINISH))) @@ -892,7 +892,7 @@ namespace vcl bool WizardMachine::onFinish() { - return Finish( RET_OK ); + return Finish(static_cast<int>(WizardButtonFlags::FINISH)); } IMPL_LINK_NOARG(WizardMachine, OnFinish, weld::Button&, void) diff --git a/vcl/uiconfig/ui/wizard.ui b/vcl/uiconfig/ui/wizard.ui new file mode 100644 index 000000000000..e1f68da9e66a --- /dev/null +++ b/vcl/uiconfig/ui/wizard.ui @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Generated with glade 3.22.1 --> +<interface domain="vcl"> + <requires lib="gtk+" version="3.20"/> + <object class="GtkAssistant" id="Wizard"> + <property name="can_focus">True</property> + <property name="border_width">6</property> + <property name="modal">True</property> + <property name="default_width">0</property> + <property name="default_height">0</property> + <property name="type_hint">dialog</property> + <property name="use_header_bar">0</property> + <child> + <placeholder/> + </child> + </object> +</interface> diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx index 45f6ae5a9813..4045e1c3c91c 100644 --- a/vcl/unx/gtk3/gtk3gtkinst.cxx +++ b/vcl/unx/gtk3/gtk3gtkinst.cxx @@ -3012,10 +3012,16 @@ struct DialogRunner static void signal_response(GtkDialog*, gint nResponseId, gpointer data); static void signal_cancel(GtkDialog*, gpointer data); - static gboolean signal_delete(GtkDialog*, GdkEventAny*, gpointer data) + static gboolean signal_delete(GtkDialog* pDialog, GdkEventAny*, gpointer data) { DialogRunner* pThis = static_cast<DialogRunner*>(data); - pThis->loop_quit(); + if (GTK_IS_ASSISTANT(pThis->m_pDialog)) + { + // An assistant isn't a dialog, but we want to treat it like one + signal_response(pDialog, GTK_RESPONSE_DELETE_EVENT, data); + } + else + pThis->loop_quit(); return true; /* Do not destroy */ } @@ -3835,6 +3841,13 @@ public: return m_aPages.back().get(); } + virtual void set_page_side_help_id(const OString& rHelpId) override + { + if (!m_pSidebar) + return; + ::set_help_id(m_pSidebar, rHelpId); + } + virtual GtkButton* get_widget_for_response(int nGtkResponse) override { GtkButton* pButton = nullptr; |