diff options
author | Caolán McNamara <caolanm@redhat.com> | 2014-02-03 12:14:31 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2014-02-04 09:21:01 +0000 |
commit | 8f028bc6f184c7148d6b817864bfa9e533b6e813 (patch) | |
tree | d1a0af466407f82b02e32a963c26b32dfad9e7e7 /sc | |
parent | f79bfd0ac541e98ee32e089cdf94a18989ff83eb (diff) |
convert select data source dialog to .ui
Change-Id: Iecca542c2c425a34184ba2c3ae0e34d093fa6a06
Diffstat (limited to 'sc')
-rw-r--r-- | sc/UIConfig_scalc.mk | 1 | ||||
-rw-r--r-- | sc/inc/helpids.h | 1 | ||||
-rw-r--r-- | sc/inc/sc.hrc | 3 | ||||
-rw-r--r-- | sc/inc/scabstdlg.hxx | 2 | ||||
-rw-r--r-- | sc/source/ui/attrdlg/scdlgfact.cxx | 18 | ||||
-rw-r--r-- | sc/source/ui/attrdlg/scdlgfact.hxx | 2 | ||||
-rw-r--r-- | sc/source/ui/dbgui/dapidata.cxx | 46 | ||||
-rw-r--r-- | sc/source/ui/dbgui/dapitype.hrc | 6 | ||||
-rw-r--r-- | sc/source/ui/dbgui/dapitype.src | 96 | ||||
-rw-r--r-- | sc/source/ui/inc/dapidata.hxx | 22 | ||||
-rw-r--r-- | sc/source/ui/view/cellsh1.cxx | 2 | ||||
-rw-r--r-- | sc/uiconfig/scalc/ui/selectdatasource.ui | 221 |
12 files changed, 249 insertions, 171 deletions
diff --git a/sc/UIConfig_scalc.mk b/sc/UIConfig_scalc.mk index 6430d5ea174e..e0cd10795f41 100644 --- a/sc/UIConfig_scalc.mk +++ b/sc/UIConfig_scalc.mk @@ -135,6 +135,7 @@ $(eval $(call gb_UIConfig_add_uifiles,modules/scalc,\ sc/uiconfig/scalc/ui/standardfilterdialog \ sc/uiconfig/scalc/ui/scgeneralpage \ sc/uiconfig/scalc/ui/searchresults \ + sc/uiconfig/scalc/ui/selectdatasource \ sc/uiconfig/scalc/ui/selectrange \ sc/uiconfig/scalc/ui/selectsource \ sc/uiconfig/scalc/ui/sheetprintpage \ diff --git a/sc/inc/helpids.h b/sc/inc/helpids.h index bf847c64f265..48193dc2fa0b 100644 --- a/sc/inc/helpids.h +++ b/sc/inc/helpids.h @@ -134,7 +134,6 @@ #define HID_PASSWD_TABLE "SC_HID_PASSWD_TABLE" #define HID_PASSWD_DOC "SC_HID_PASSWD_DOC" -#define HID_DATAPILOT_DATABASE "SC_HID_DATAPILOT_DATABASE" #define HID_DATAPILOT_SERVICE "SC_HID_DATAPILOT_SERVICE" // Other help IDs (max.70) --------------------------------------------------- diff --git a/sc/inc/sc.hrc b/sc/inc/sc.hrc index e2def35a1845..3bdad835c746 100644 --- a/sc/inc/sc.hrc +++ b/sc/inc/sc.hrc @@ -1070,10 +1070,7 @@ #define WID_SIMPLE_REF (SC_DIALOGS_START + 126) #define RID_POPUP_CHANGES (SC_DIALOGS_START + 127) - #define RID_SCDLG_DAPISERVICE (SC_DIALOGS_START + 130) -#define RID_SCDLG_DAPIDATA (SC_DIALOGS_START + 131) - #define RID_SCDLG_DPSUBTOTAL_OPT (SC_DIALOGS_START + 134) #define RID_SCDLG_DPNUMGROUP (SC_DIALOGS_START + 135) diff --git a/sc/inc/scabstdlg.hxx b/sc/inc/scabstdlg.hxx index 9b4491c79490..0861d60fb145 100644 --- a/sc/inc/scabstdlg.hxx +++ b/sc/inc/scabstdlg.hxx @@ -347,7 +347,7 @@ public: virtual AbstractScCondFormatManagerDlg* CreateScCondFormatMgrDlg(Window* pParent, ScDocument* pDoc, const ScConditionalFormatList* pFormatList, const ScAddress& rPos, int nId ) = 0; - virtual AbstractScDataPilotDatabaseDlg * CreateScDataPilotDatabaseDlg (Window* pParent ,int nId ) = 0; + virtual AbstractScDataPilotDatabaseDlg * CreateScDataPilotDatabaseDlg(Window* pParent) = 0; virtual AbstractScDataPilotSourceTypeDlg * CreateScDataPilotSourceTypeDlg(Window* pParent, bool bEnableExternal) = 0; diff --git a/sc/source/ui/attrdlg/scdlgfact.cxx b/sc/source/ui/attrdlg/scdlgfact.cxx index 84162cfbf7e2..f9e146c2bacc 100644 --- a/sc/source/ui/attrdlg/scdlgfact.cxx +++ b/sc/source/ui/attrdlg/scdlgfact.cxx @@ -681,22 +681,10 @@ AbstractScCondFormatManagerDlg* ScAbstractDialogFactory_Impl::CreateScCondFormat return NULL; } -AbstractScDataPilotDatabaseDlg * ScAbstractDialogFactory_Impl::CreateScDataPilotDatabaseDlg (Window* pParent , - int nId ) +AbstractScDataPilotDatabaseDlg * ScAbstractDialogFactory_Impl::CreateScDataPilotDatabaseDlg(Window* pParent) { - ScDataPilotDatabaseDlg * pDlg=NULL; - switch ( nId ) - { - case RID_SCDLG_DAPIDATA : - pDlg = new ScDataPilotDatabaseDlg( pParent ); - break; - default: - break; - } - - if ( pDlg ) - return new AbstractScDataPilotDatabaseDlg_Impl( pDlg ); - return 0; + ScDataPilotDatabaseDlg * pDlg = new ScDataPilotDatabaseDlg( pParent ); + return new AbstractScDataPilotDatabaseDlg_Impl( pDlg ); } AbstractScDataPilotSourceTypeDlg* ScAbstractDialogFactory_Impl::CreateScDataPilotSourceTypeDlg( diff --git a/sc/source/ui/attrdlg/scdlgfact.hxx b/sc/source/ui/attrdlg/scdlgfact.hxx index f0176dd31765..c414cbe2274e 100644 --- a/sc/source/ui/attrdlg/scdlgfact.hxx +++ b/sc/source/ui/attrdlg/scdlgfact.hxx @@ -416,7 +416,7 @@ public: virtual AbstractScCondFormatManagerDlg* CreateScCondFormatMgrDlg(Window* pParent, ScDocument* pDoc, const ScConditionalFormatList* pFormatList, const ScAddress& rPos, int nId ); - virtual AbstractScDataPilotDatabaseDlg * CreateScDataPilotDatabaseDlg (Window* pParent ,int nId ); + virtual AbstractScDataPilotDatabaseDlg * CreateScDataPilotDatabaseDlg(Window* pParent); virtual AbstractScDataPilotSourceTypeDlg* CreateScDataPilotSourceTypeDlg(Window* pParent, bool bEnableExternal); diff --git a/sc/source/ui/dbgui/dapidata.cxx b/sc/source/ui/dbgui/dapidata.cxx index 09b40af271c6..f3eaad9067e1 100644 --- a/sc/source/ui/dbgui/dapidata.cxx +++ b/sc/source/ui/dbgui/dapidata.cxx @@ -55,20 +55,12 @@ using namespace com::sun::star; //------------------------------------------------------------------------- ScDataPilotDatabaseDlg::ScDataPilotDatabaseDlg( Window* pParent ) : - ModalDialog ( pParent, ScResId( RID_SCDLG_DAPIDATA ) ), - // - aFlFrame ( this, ScResId( FL_FRAME ) ), - aFtDatabase ( this, ScResId( FT_DATABASE ) ), - aLbDatabase ( this, ScResId( LB_DATABASE ) ), - aFtObject ( this, ScResId( FT_OBJECT ) ), - aCbObject ( this, ScResId( CB_OBJECT ) ), - aFtType ( this, ScResId( FT_OBJTYPE ) ), - aLbType ( this, ScResId( LB_OBJTYPE ) ), - aBtnOk ( this, ScResId( BTN_OK ) ), - aBtnCancel ( this, ScResId( BTN_CANCEL ) ), - aBtnHelp ( this, ScResId( BTN_HELP ) ) + ModalDialog(pParent, "SelectDataSourceDialog", + "modules/scalc/ui/selectdatasource.ui") { - FreeResource(); + get(m_pLbDatabase, "database"); + get(m_pCbObject, "datasource"); + get(m_pLbType, "type"); WaitObject aWait( this ); // initializing the database service the first time takes a while @@ -84,7 +76,7 @@ ScDataPilotDatabaseDlg::ScDataPilotDatabaseDlg( Window* pParent ) : for (long nPos = 0; nPos < nCount; nPos++) { OUString aName = pArray[nPos]; - aLbDatabase.InsertEntry( aName ); + m_pLbDatabase->InsertEntry( aName ); } } catch(uno::Exception&) @@ -92,25 +84,21 @@ ScDataPilotDatabaseDlg::ScDataPilotDatabaseDlg( Window* pParent ) : OSL_FAIL("exception in database"); } - aLbDatabase.SelectEntryPos( 0 ); - aLbType.SelectEntryPos( 0 ); + m_pLbDatabase->SelectEntryPos( 0 ); + m_pLbType->SelectEntryPos( 0 ); FillObjects(); - aLbDatabase.SetSelectHdl( LINK( this, ScDataPilotDatabaseDlg, SelectHdl ) ); - aLbType.SetSelectHdl( LINK( this, ScDataPilotDatabaseDlg, SelectHdl ) ); -} - -ScDataPilotDatabaseDlg::~ScDataPilotDatabaseDlg() -{ + m_pLbDatabase->SetSelectHdl( LINK( this, ScDataPilotDatabaseDlg, SelectHdl ) ); + m_pLbType->SetSelectHdl( LINK( this, ScDataPilotDatabaseDlg, SelectHdl ) ); } void ScDataPilotDatabaseDlg::GetValues( ScImportSourceDesc& rDesc ) { - sal_uInt16 nSelect = aLbType.GetSelectEntryPos(); + sal_uInt16 nSelect = m_pLbType->GetSelectEntryPos(); - rDesc.aDBName = aLbDatabase.GetSelectEntry(); - rDesc.aObject = aCbObject.GetText(); + rDesc.aDBName = m_pLbDatabase->GetSelectEntry(); + rDesc.aObject = m_pCbObject->GetText(); if (rDesc.aDBName.isEmpty() || rDesc.aObject.isEmpty()) rDesc.nType = sheet::DataImportMode_NONE; @@ -132,13 +120,13 @@ IMPL_LINK_NOARG(ScDataPilotDatabaseDlg, SelectHdl) void ScDataPilotDatabaseDlg::FillObjects() { - aCbObject.Clear(); + m_pCbObject->Clear(); - OUString aDatabaseName = aLbDatabase.GetSelectEntry(); + OUString aDatabaseName = m_pLbDatabase->GetSelectEntry(); if (aDatabaseName.isEmpty()) return; - sal_uInt16 nSelect = aLbType.GetSelectEntryPos(); + sal_uInt16 nSelect = m_pLbType->GetSelectEntryPos(); if ( nSelect > DP_TYPELIST_QUERY ) return; // only tables and queries @@ -193,7 +181,7 @@ void ScDataPilotDatabaseDlg::FillObjects() for( long nPos=0; nPos<nCount; nPos++ ) { OUString aName = pArray[nPos]; - aCbObject.InsertEntry( aName ); + m_pCbObject->InsertEntry( aName ); } } catch(uno::Exception&) diff --git a/sc/source/ui/dbgui/dapitype.hrc b/sc/source/ui/dbgui/dapitype.hrc index 0ed7e8532bdc..424a222ae177 100644 --- a/sc/source/ui/dbgui/dapitype.hrc +++ b/sc/source/ui/dbgui/dapitype.hrc @@ -32,11 +32,5 @@ #define ED_USER 16 #define FT_PASSWD 17 #define ED_PASSWD 18 -#define FT_DATABASE 19 -#define LB_DATABASE 20 -#define FT_OBJECT 21 -#define CB_OBJECT 22 -#define FT_OBJTYPE 23 -#define LB_OBJTYPE 24 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sc/source/ui/dbgui/dapitype.src b/sc/source/ui/dbgui/dapitype.src index 39f34a8fb27f..316093533d62 100644 --- a/sc/source/ui/dbgui/dapitype.src +++ b/sc/source/ui/dbgui/dapitype.src @@ -128,100 +128,4 @@ ModalDialog RID_SCDLG_DAPISERVICE Text [ en-US ] = "External Source"; }; - -//------------------------------------------------------------------------ - - -ModalDialog RID_SCDLG_DAPIDATA -{ - OutputSize = TRUE ; - HelpId = HID_DATAPILOT_DATABASE ; - SVLook = TRUE ; - Size = MAP_APPFONT ( 241 , 63 ) ; - Moveable = TRUE ; - Closeable = FALSE ; - OKButton BTN_OK - { - Pos = MAP_APPFONT ( 185 , 6 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - TabStop = TRUE ; - DefButton = TRUE ; - }; - CancelButton BTN_CANCEL - { - Pos = MAP_APPFONT ( 185 , 23 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - TabStop = TRUE ; - }; - HelpButton BTN_HELP - { - Pos = MAP_APPFONT ( 185 , 43 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - TabStop = TRUE ; - }; - - FixedText FT_DATABASE - { - Pos = MAP_APPFONT ( 12 , 14 ) ; - Size = MAP_APPFONT ( 52 , 8 ) ; - Text [ en-US ] = "~Database"; - }; - ListBox LB_DATABASE - { - HelpID = "sc:ListBox:RID_SCDLG_DAPIDATA:LB_DATABASE"; - Border = TRUE ; - Pos = MAP_APPFONT ( 66 , 12 ) ; - Size = MAP_APPFONT ( 110 , 80 ) ; - TabStop = TRUE ; - DropDown = TRUE ; - }; - - FixedText FT_OBJECT - { - Pos = MAP_APPFONT ( 12 , 30 ) ; - Size = MAP_APPFONT ( 52 , 8 ) ; - Text [ en-US ] = "Data so~urce"; - }; - ComboBox CB_OBJECT - { - HelpID = "sc:ComboBox:RID_SCDLG_DAPIDATA:CB_OBJECT"; - Border = TRUE ; - Pos = MAP_APPFONT ( 66 , 28 ) ; - Size = MAP_APPFONT ( 110 , 80 ) ; - TabStop = TRUE ; - DropDown = TRUE ; - }; - - FixedText FT_OBJTYPE - { - Pos = MAP_APPFONT ( 12 , 46 ) ; - Size = MAP_APPFONT ( 52 , 8 ) ; - Text [ en-US ] = "~Type"; - }; - ListBox LB_OBJTYPE - { - HelpID = "sc:ListBox:RID_SCDLG_DAPIDATA:LB_OBJTYPE"; - Border = TRUE ; - Pos = MAP_APPFONT ( 66 , 44 ) ; - Size = MAP_APPFONT ( 110 , 80 ) ; - TabStop = TRUE ; - DropDown = TRUE ; - StringList [ en-US ] = - { - < "Sheet" ; Default ; > ; - < "Query" ; Default ; > ; - < "Sql" ; Default ; > ; - < "Sql [Native]" ; Default ; > ; - }; - }; - - FixedLine FL_FRAME - { - Pos = MAP_APPFONT ( 6 , 3 ) ; - Size = MAP_APPFONT ( 173 , 8 ) ; - Text [ en-US ] = "Selection"; - }; - Text [ en-US ] = "Select Data Source"; -}; - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sc/source/ui/inc/dapidata.hxx b/sc/source/ui/inc/dapidata.hxx index 85fa4bea9813..5d1c989a4024 100644 --- a/sc/source/ui/inc/dapidata.hxx +++ b/sc/source/ui/inc/dapidata.hxx @@ -22,42 +22,28 @@ #include <vcl/button.hxx> #include <vcl/dialog.hxx> -#include <vcl/fixed.hxx> #include <vcl/lstbox.hxx> #include <vcl/combobox.hxx> -//------------------------------------------------------------------------ - struct ScImportSourceDesc; - class ScDataPilotDatabaseDlg : public ModalDialog { private: - FixedLine aFlFrame; - FixedText aFtDatabase; - ListBox aLbDatabase; - FixedText aFtObject; - ComboBox aCbObject; - FixedText aFtType; - ListBox aLbType; - OKButton aBtnOk; - CancelButton aBtnCancel; - HelpButton aBtnHelp; + ListBox* m_pLbDatabase; + ComboBox* m_pCbObject; + ListBox* m_pLbType; void FillObjects(); DECL_LINK( SelectHdl, void* ); public: - ScDataPilotDatabaseDlg( Window* pParent ); - ~ScDataPilotDatabaseDlg(); + ScDataPilotDatabaseDlg(Window* pParent); void GetValues( ScImportSourceDesc& rDesc ); }; - #endif - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sc/source/ui/view/cellsh1.cxx b/sc/source/ui/view/cellsh1.cxx index 1c4450dec9f9..aeba2eaed805 100644 --- a/sc/source/ui/view/cellsh1.cxx +++ b/sc/source/ui/view/cellsh1.cxx @@ -2576,7 +2576,7 @@ void ScCellShell::ExecuteDataPilotDialog() ::boost::scoped_ptr<AbstractScDataPilotDatabaseDlg> pDataDlg( pFact->CreateScDataPilotDatabaseDlg( - pTabViewShell->GetDialogParent(), RID_SCDLG_DAPIDATA)); + pTabViewShell->GetDialogParent())); OSL_ENSURE(pDataDlg, "Dialog create fail!"); if ( pDataDlg->Execute() == RET_OK ) diff --git a/sc/uiconfig/scalc/ui/selectdatasource.ui b/sc/uiconfig/scalc/ui/selectdatasource.ui new file mode 100644 index 000000000000..e886c8ca3010 --- /dev/null +++ b/sc/uiconfig/scalc/ui/selectdatasource.ui @@ -0,0 +1,221 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Generated with glade 3.16.1 --> +<interface> + <requires lib="gtk+" version="3.0"/> + <object class="GtkDialog" id="SelectDataSourceDialog"> + <property name="can_focus">False</property> + <property name="border_width">6</property> + <property name="title" translatable="yes">Select Data Source</property> + <property name="type_hint">dialog</property> + <child internal-child="vbox"> + <object class="GtkBox" id="dialog-vbox3"> + <property name="can_focus">False</property> + <property name="orientation">vertical</property> + <property name="spacing">12</property> + <child internal-child="action_area"> + <object class="GtkButtonBox" id="dialog-action_area3"> + <property name="can_focus">False</property> + <property name="layout_style">end</property> + <child> + <object class="GtkButton" id="ok"> + <property name="label">gtk-ok</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="can_default">True</property> + <property name="has_default">True</property> + <property name="receives_default">True</property> + <property name="use_stock">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkButton" id="cancel"> + <property name="label">gtk-cancel</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="use_stock">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkButton" id="help"> + <property name="label">gtk-help</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="use_stock">True</property> + <property name="image_position">top</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">2</property> + </packing> + </child> + </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="GtkFrame" id="Selection"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="hexpand">True</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="hexpand">True</property> + <property name="top_padding">6</property> + <property name="left_padding">12</property> + <child> + <object class="GtkGrid" id="grid1"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="hexpand">True</property> + <property name="row_spacing">6</property> + <property name="column_spacing">12</property> + <child> + <object class="GtkLabel" id="label2"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">_Database</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">database</property> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">0</property> + <property name="width">1</property> + <property name="height">1</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="label3"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">Data so_urce</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">datasource</property> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">1</property> + <property name="width">1</property> + <property name="height">1</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="label4"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">_Type</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">type</property> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">2</property> + <property name="width">1</property> + <property name="height">1</property> + </packing> + </child> + <child> + <object class="GtkComboBoxText" id="database"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="hexpand">True</property> + </object> + <packing> + <property name="left_attach">1</property> + <property name="top_attach">0</property> + <property name="width">1</property> + <property name="height">1</property> + </packing> + </child> + <child> + <object class="GtkComboBoxText" id="type"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="hexpand">True</property> + <items> + <item translatable="yes">Sheet</item> + <item translatable="yes">Query</item> + <item translatable="yes">Sql</item> + <item translatable="yes">Sql [Native]</item> + </items> + </object> + <packing> + <property name="left_attach">1</property> + <property name="top_attach">2</property> + <property name="width">1</property> + <property name="height">1</property> + </packing> + </child> + <child> + <object class="GtkComboBoxText" id="datasource"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="hexpand">True</property> + <property name="has_entry">True</property> + <child internal-child="entry"> + <object class="GtkEntry" id="comboboxtext-entry"> + <property name="can_focus">False</property> + </object> + </child> + </object> + <packing> + <property name="left_attach">1</property> + <property name="top_attach">1</property> + <property name="width">1</property> + <property name="height">1</property> + </packing> + </child> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label1"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">Selection</property> + <attributes> + <attribute name="weight" value="bold"/> + </attributes> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + </object> + </child> + <action-widgets> + <action-widget response="0">ok</action-widget> + <action-widget response="0">cancel</action-widget> + <action-widget response="0">help</action-widget> + </action-widgets> + </object> +</interface> |