summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cui/source/options/personalization.cxx61
-rw-r--r--cui/source/options/personalization.hxx20
2 files changed, 80 insertions, 1 deletions
diff --git a/cui/source/options/personalization.cxx b/cui/source/options/personalization.cxx
index 53891244eeb5..906f23cf00e5 100644
--- a/cui/source/options/personalization.cxx
+++ b/cui/source/options/personalization.cxx
@@ -14,7 +14,26 @@
SvxPersonalizationTabPage::SvxPersonalizationTabPage( Window *pParent, const SfxItemSet &rSet )
: SfxTabPage( pParent, "PersonalizationTabPage", "cui/ui/personalization_tab.ui", rSet )
{
+ get( m_pNoBackground, "no_background" );
+ get( m_pDefaultBackground, "default_background" );
+ get( m_pOwnBackground, "own_background" );
+ m_pNoBackground->SetClickHdl( LINK( this, SvxPersonalizationTabPage, EnableDisableSelectionButtons ) );
+ m_pDefaultBackground->SetClickHdl( LINK( this, SvxPersonalizationTabPage, EnableDisableSelectionButtons ) );
+ m_pOwnBackground->SetClickHdl( LINK( this, SvxPersonalizationTabPage, EnableDisableSelectionButtons ) );
+
+ get( m_pSelectBackground, "select_background" );
+ m_pSelectBackground->SetClickHdl( LINK( this, SvxPersonalizationTabPage, SelectBackground ) );
+
get( m_pNoPersona, "no_persona" );
+ get( m_pDefaultPersona, "default_persona" );
+ get( m_pOwnPersona, "own_persona" );
+ m_pNoPersona->SetClickHdl( LINK( this, SvxPersonalizationTabPage, EnableDisableSelectionButtons ) );
+ m_pDefaultPersona->SetClickHdl( LINK( this, SvxPersonalizationTabPage, EnableDisableSelectionButtons ) );
+ m_pOwnPersona->SetClickHdl( LINK( this, SvxPersonalizationTabPage, EnableDisableSelectionButtons ) );
+
+ get( m_pSelectPersona, "select_persona" );
+ LINK( this, SvxPersonalizationTabPage, SelectPersona );
+ m_pSelectPersona->SetClickHdl( LINK( this, SvxPersonalizationTabPage, SelectPersona ) );
}
SvxPersonalizationTabPage::~SvxPersonalizationTabPage()
@@ -26,4 +45,46 @@ SfxTabPage* SvxPersonalizationTabPage::Create( Window *pParent, const SfxItemSet
return new SvxPersonalizationTabPage( pParent, rSet );
}
+IMPL_LINK( SvxPersonalizationTabPage, EnableDisableSelectionButtons, RadioButton*, pButton )
+{
+ PushButton *pPushButton = NULL;
+ RadioButton *pRadioButton = NULL;
+
+ if ( pButton == m_pNoBackground || pButton == m_pDefaultBackground || pButton == m_pOwnBackground )
+ {
+ pPushButton = m_pSelectBackground;
+ pRadioButton = m_pOwnBackground;
+ }
+ else if ( pButton == m_pNoPersona || pButton == m_pDefaultPersona || pButton == m_pOwnPersona )
+ {
+ pPushButton = m_pSelectPersona;
+ pRadioButton = m_pOwnPersona;
+ }
+ else
+ return 0;
+
+ if ( pRadioButton->IsChecked() && !pPushButton->IsEnabled() )
+ {
+ pPushButton->Enable();
+ pPushButton->Invalidate();
+ }
+ else if ( !pRadioButton->IsChecked() && pPushButton->IsEnabled() )
+ {
+ pPushButton->Disable();
+ pPushButton->Invalidate();
+ }
+
+ return 0;
+}
+
+IMPL_LINK( SvxPersonalizationTabPage, SelectBackground, PushButton*, /*pButton*/ )
+{
+ return 0;
+}
+
+IMPL_LINK( SvxPersonalizationTabPage, SelectPersona, PushButton*, /*pButton*/ )
+{
+ return 0;
+}
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/options/personalization.hxx b/cui/source/options/personalization.hxx
index 72c3b6be6dd4..89fc3fde28a0 100644
--- a/cui/source/options/personalization.hxx
+++ b/cui/source/options/personalization.hxx
@@ -19,13 +19,31 @@ class SvxPersonalizationTabPage : public SfxTabPage
using SfxTabPage::DeactivatePage;
private:
- RadioButton *m_pNoPersona; ///< Just the default look, without any bitmap
+ RadioButton *m_pNoBackground; ///< Just the default look, without any bitmap
+ RadioButton *m_pDefaultBackground; ///< Use the built-in bitmap for Writer background
+ RadioButton *m_pOwnBackground; ///< Use the user-defined bitmap
+ PushButton *m_pSelectBackground; ///< Let the user select in the 'own' case
+
+ RadioButton *m_pNoPersona; ///< Just the default look, without any bitmap
+ RadioButton *m_pDefaultPersona; ///< Use the built-in bitmap
+ RadioButton *m_pOwnPersona; ///< Use the user-defined bitmap
+ PushButton *m_pSelectPersona; ///< Let the user select in the 'own' case
public:
SvxPersonalizationTabPage( Window *pParent, const SfxItemSet &rSet );
~SvxPersonalizationTabPage();
static SfxTabPage* Create( Window *pParent, const SfxItemSet &rSet );
+
+private:
+ /// Maintain sane behavior of the m_pSelect(Background|Persona) buttons
+ DECL_LINK( EnableDisableSelectionButtons, RadioButton* );
+
+ /// Handle the bacground selection
+ DECL_LINK( SelectBackground, PushButton* );
+
+ /// Handle the Persona selection
+ DECL_LINK( SelectPersona, PushButton* );
};
#endif // SVX_PERSONALIZATION_HXX