Kaydet (Commit) 4e31658c authored tarafından Jan Holesovsky's avatar Jan Holesovsky

Personas: Enable / disable the push buttons according to radio buttons.

Change-Id: Iece525f43238a3494b8a76d5a3d84886cd5c1317
üst 4102ed7c
......@@ -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: */
......@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment