diff options
author | Jan Holesovsky <kendy@suse.cz> | 2012-11-30 09:44:17 +0100 |
---|---|---|
committer | Jan Holesovsky <kendy@suse.cz> | 2012-11-30 17:18:57 +0100 |
commit | 4e31658c6998b401c302836ce2aa8015eb64633b (patch) | |
tree | 799458fbfbb3f91fc66576362f3b8590d4543347 /cui/source/options | |
parent | 4102ed7c5018c9fadb445d0ea49e29d1af75194a (diff) |
Personas: Enable / disable the push buttons according to radio buttons.
Change-Id: Iece525f43238a3494b8a76d5a3d84886cd5c1317
Diffstat (limited to 'cui/source/options')
-rw-r--r-- | cui/source/options/personalization.cxx | 61 | ||||
-rw-r--r-- | cui/source/options/personalization.hxx | 20 |
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 |