From ed51d060fa10b2664abc24b22c20529de30dff64 Mon Sep 17 00:00:00 2001 From: Olivier Hallot Date: Sat, 9 Feb 2013 22:52:54 -0200 Subject: Widget for Calc protect cell tab page MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Translated some German comments to English (thanks to David E. Jourdain) * Moved tab page .ui from sc/ to cui/ * Need to address text alignment on the right Change-Id: I332c263bce7c8f743c60bbe79e23641e9f037474 Reviewed-on: https://gerrit.libreoffice.org/2075 Reviewed-by: Caolán McNamara Tested-by: Caolán McNamara --- cui/UI_cui.mk | 1 + cui/uiconfig/ui/cellprotectionpage.ui | 208 ++++++++++++++++++++++++++++++++++ sc/source/ui/attrdlg/tabpages.cxx | 106 +++++++++-------- sc/source/ui/inc/attrdlg.hrc | 12 -- sc/source/ui/inc/tabpages.hxx | 18 +-- sc/source/ui/src/attrdlg.src | 70 ------------ 6 files changed, 266 insertions(+), 149 deletions(-) create mode 100644 cui/uiconfig/ui/cellprotectionpage.ui diff --git a/cui/UI_cui.mk b/cui/UI_cui.mk index 820dcf2836e5..58dcb6d65878 100644 --- a/cui/UI_cui.mk +++ b/cui/UI_cui.mk @@ -13,6 +13,7 @@ $(eval $(call gb_UI_add_uifiles,cui,\ cui/uiconfig/ui/backgroundpage \ cui/uiconfig/ui/borderpage \ cui/uiconfig/ui/charnamepage \ + cui/uiconfig/ui/cellprotectionpage \ cui/uiconfig/ui/colorpage \ cui/uiconfig/ui/gradientpage \ cui/uiconfig/ui/colorconfigwin \ diff --git a/cui/uiconfig/ui/cellprotectionpage.ui b/cui/uiconfig/ui/cellprotectionpage.ui new file mode 100644 index 000000000000..e9762e22727f --- /dev/null +++ b/cui/uiconfig/ui/cellprotectionpage.ui @@ -0,0 +1,208 @@ + + + + + True + False + 6 + 12 + 6 + + + True + False + GDK_EXPOSURE_MASK + True + 0 + none + + + True + False + True + True + 12 + + + True + False + + + True + False + vertical + + + Hide _all + True + True + False + True + True + 0 + True + True + True + + + False + True + 0 + + + + + _Protected + True + True + False + 25 + True + 0 + True + True + True + + + False + True + 1 + + + + + Hide _formula + True + True + False + 25 + True + 0 + True + True + + + False + True + 2 + + + + + 0 + 0 + 1 + 1 + + + + + True + False + 50 + Cell protection is only effective after the current sheet has been protected. + +Select 'Protect Document' from the 'Tools' menu, and specify 'Sheet'. + + + 1 + 0 + 1 + 1 + + + + + + + + + True + False + Protection + + + + + + + + 0 + 0 + 1 + 1 + + + + + True + False + True + 0 + none + + + True + False + 12 + + + True + False + + + Hide _when printing + True + True + False + True + 0 + True + True + + + 0 + 0 + 1 + 1 + + + + + True + False + start + 12 + The cells selected will be omitted when printing. + + + 1 + 0 + 1 + 1 + + + + + + + + + True + False + Print + + + + + + + + 0 + 1 + 1 + 1 + + + + diff --git a/sc/source/ui/attrdlg/tabpages.cxx b/sc/source/ui/attrdlg/tabpages.cxx index 3b43bd6b4125..b0eca20ccfca 100644 --- a/sc/source/ui/attrdlg/tabpages.cxx +++ b/sc/source/ui/attrdlg/tabpages.cxx @@ -21,7 +21,6 @@ #undef SC_DLLIMPLEMENTATION - #include "global.hxx" #include "document.hxx" #include "attrib.hxx" @@ -47,30 +46,27 @@ static sal_uInt16 pProtectionRanges[] = ScTabPageProtection::ScTabPageProtection( Window* pParent, const SfxItemSet& rCoreAttrs ) : SfxTabPage ( pParent, - ScResId( RID_SCPAGE_PROTECTION ), - rCoreAttrs ), - // - aFlProtect ( this, ScResId( FL_PROTECTION ) ), - aBtnHideCell ( this, ScResId( BTN_HIDE_ALL ) ), - aBtnProtect ( this, ScResId( BTN_PROTECTED ) ), - aBtnHideFormula ( this, ScResId( BTN_HIDE_FORMULAR ) ), - aTxtHint ( this, ScResId( FT_HINT ) ), - aFlPrint ( this, ScResId( FL_PRINT ) ), - aBtnHidePrint ( this, ScResId( BTN_HIDE_PRINT ) ), - aTxtHint2 ( this, ScResId( FT_HINT2 ) ) -{ - // diese Page braucht ExchangeSupport + "ProtectionPage", + "cui/ui/cellprotectionpage.ui", + rCoreAttrs ) + + { + get(m_pBtnHideCell,"checkHideAll"); + get(m_pBtnProtect,"checkProtected"); + get(m_pBtnHideFormula,"checkHideFormula"); + get(m_pBtnHidePrint,"checkHidePrinting"); + + // This Page need ExchangeSupport SetExchangeSupport(); - // States werden in Reset gesetzt + // States will be set in Reset bTriEnabled = bDontCare = bProtect = bHideForm = bHideCell = bHidePrint = false; - aBtnProtect.SetClickHdl( LINK( this, ScTabPageProtection, ButtonClickHdl ) ); - aBtnHideCell.SetClickHdl( LINK( this, ScTabPageProtection, ButtonClickHdl ) ); - aBtnHideFormula.SetClickHdl( LINK( this, ScTabPageProtection, ButtonClickHdl ) ); - aBtnHidePrint.SetClickHdl( LINK( this, ScTabPageProtection, ButtonClickHdl ) ); + m_pBtnProtect->SetClickHdl( LINK( this, ScTabPageProtection, ButtonClickHdl ) ); + m_pBtnHideCell->SetClickHdl( LINK( this, ScTabPageProtection, ButtonClickHdl ) ); + m_pBtnHideFormula->SetClickHdl( LINK( this, ScTabPageProtection, ButtonClickHdl ) ); + m_pBtnHidePrint->SetClickHdl( LINK( this, ScTabPageProtection, ButtonClickHdl ) ); - FreeResource(); } // ----------------------------------------------------------------------- @@ -88,8 +84,7 @@ sal_uInt16* ScTabPageProtection::GetRanges() // ----------------------------------------------------------------------- -SfxTabPage* ScTabPageProtection::Create( Window* pParent, - const SfxItemSet& rAttrSet ) +SfxTabPage* ScTabPageProtection::Create( Window* pParent, const SfxItemSet& rAttrSet ) { return ( new ScTabPageProtection( pParent, rAttrSet ) ); } @@ -98,25 +93,26 @@ SfxTabPage* ScTabPageProtection::Create( Window* pParent, void ScTabPageProtection::Reset( const SfxItemSet& rCoreAttrs ) { - // Variablen initialisieren + // Initialize variables sal_uInt16 nWhich = GetWhich( SID_SCATTR_PROTECTION ); const ScProtectionAttr* pProtAttr = NULL; SfxItemState eItemState = rCoreAttrs.GetItemState( nWhich, false, (const SfxPoolItem**)&pProtAttr ); - // handelt es sich um ein Default-Item? + // Is this a Default-Item? if ( eItemState == SFX_ITEM_DEFAULT ) pProtAttr = (const ScProtectionAttr*)&(rCoreAttrs.Get(nWhich)); - // bei SFX_ITEM_DONTCARE auf 0 lassen + // At SFX_ITEM_DONTCARE let to 0 - bTriEnabled = ( pProtAttr == NULL ); // TriState, wenn DontCare + bTriEnabled = ( pProtAttr == NULL ); // TriState, when DontCare bDontCare = bTriEnabled; if (bTriEnabled) { - // Defaults, die erscheinen wenn ein TriState weggeklickt wird: - // (weil alles zusammen ein Attribut ist, kann auch nur alles zusammen - // auf DontCare stehen - #38543#) + // Defaults wich appear when a TriState will be clicked away: + // (because everything combined is an attribute, and also only + // everything combined as DontCare can be available - #38543#) + bProtect = sal_True; bHideForm = bHideCell = bHidePrint = false; } @@ -128,12 +124,12 @@ void ScTabPageProtection::Reset( const SfxItemSet& rCoreAttrs ) bHidePrint = pProtAttr->GetHidePrint(); } - // Controls initialisieren + // Start Controls - aBtnProtect .EnableTriState( bTriEnabled ); - aBtnHideCell .EnableTriState( bTriEnabled ); - aBtnHideFormula .EnableTriState( bTriEnabled ); - aBtnHidePrint .EnableTriState( bTriEnabled ); + m_pBtnProtect->EnableTriState( bTriEnabled ); + m_pBtnHideCell->EnableTriState( bTriEnabled ); + m_pBtnHideFormula->EnableTriState( bTriEnabled ); + m_pBtnHidePrint->EnableTriState( bTriEnabled ); UpdateButtons(); } @@ -157,7 +153,7 @@ sal_Bool ScTabPageProtection::FillItemSet( SfxItemSet& rCoreAttrs ) aProtAttr.SetHidePrint( bHidePrint ); if ( bTriEnabled ) - bAttrsChanged = sal_True; // DontCare -> richtiger Wert + bAttrsChanged = sal_True; // DontCare -> properly value else bAttrsChanged = !pOldItem || !( aProtAttr == *(const ScProtectionAttr*)pOldItem ); } @@ -184,23 +180,23 @@ int ScTabPageProtection::DeactivatePage( SfxItemSet* pSetP ) //------------------------------------------------------------------------ -IMPL_LINK( ScTabPageProtection, ButtonClickHdl, TriStateBox*, pBox ) +IMPL_LINK( ScTabPageProtection, ButtonClickHdl, CheckBox*, pBox ) { TriState eState = pBox->GetState(); if ( eState == STATE_DONTKNOW ) - bDontCare = sal_True; // alles zusammen auf DontCare + bDontCare = sal_True; // everything combined at DontCare else { - bDontCare = false; // DontCare ueberall aus - sal_Bool bOn = ( eState == STATE_CHECK ); // ausgewaehlter Wert + bDontCare = false; // DontCare from everywhere + sal_Bool bOn = ( eState == STATE_CHECK ); // from a selected value - if ( pBox == &aBtnProtect ) + if ( pBox == m_pBtnProtect ) bProtect = bOn; - else if ( pBox == &aBtnHideCell ) + else if ( pBox == m_pBtnHideCell ) bHideCell = bOn; - else if ( pBox == &aBtnHideFormula ) + else if ( pBox == m_pBtnHideFormula ) bHideForm = bOn; - else if ( pBox == &aBtnHidePrint ) + else if ( pBox == m_pBtnHidePrint ) bHidePrint = bOn; else { @@ -208,7 +204,7 @@ IMPL_LINK( ScTabPageProtection, ButtonClickHdl, TriStateBox*, pBox ) } } - UpdateButtons(); // TriState und Enable-Logik + UpdateButtons(); // TriState and Logic-Enable return 0; } @@ -219,23 +215,23 @@ void ScTabPageProtection::UpdateButtons() { if ( bDontCare ) { - aBtnProtect.SetState( STATE_DONTKNOW ); - aBtnHideCell.SetState( STATE_DONTKNOW ); - aBtnHideFormula.SetState( STATE_DONTKNOW ); - aBtnHidePrint.SetState( STATE_DONTKNOW ); + m_pBtnProtect->SetState( STATE_DONTKNOW ); + m_pBtnHideCell->SetState( STATE_DONTKNOW ); + m_pBtnHideFormula->SetState( STATE_DONTKNOW ); + m_pBtnHidePrint->SetState( STATE_DONTKNOW ); } else { - aBtnProtect.SetState( bProtect ? STATE_CHECK : STATE_NOCHECK ); - aBtnHideCell.SetState( bHideCell ? STATE_CHECK : STATE_NOCHECK ); - aBtnHideFormula.SetState( bHideForm ? STATE_CHECK : STATE_NOCHECK ); - aBtnHidePrint.SetState( bHidePrint ? STATE_CHECK : STATE_NOCHECK ); + m_pBtnProtect->SetState( bProtect ? STATE_CHECK : STATE_NOCHECK ); + m_pBtnHideCell->SetState( bHideCell ? STATE_CHECK : STATE_NOCHECK ); + m_pBtnHideFormula->SetState( bHideForm ? STATE_CHECK : STATE_NOCHECK ); + m_pBtnHidePrint->SetState( bHidePrint ? STATE_CHECK : STATE_NOCHECK ); } - sal_Bool bEnable = ( aBtnHideCell.GetState() != STATE_CHECK ); + sal_Bool bEnable = ( m_pBtnHideCell->GetState() != STATE_CHECK ); { - aBtnProtect.Enable( bEnable ); - aBtnHideFormula.Enable( bEnable ); + m_pBtnProtect->Enable( bEnable ); + m_pBtnHideFormula->Enable( bEnable ); } } diff --git a/sc/source/ui/inc/attrdlg.hrc b/sc/source/ui/inc/attrdlg.hrc index 4c3675679c7d..70fdaec7e532 100644 --- a/sc/source/ui/inc/attrdlg.hrc +++ b/sc/source/ui/inc/attrdlg.hrc @@ -26,15 +26,3 @@ #define TP_PROTECTION 6 #define TP_FONTEFF 7 #define TP_ASIAN 8 - -//================================================ -// Protected cell TabPage: - -#define BTN_PROTECTED 1 -#define BTN_HIDE_FORMULAR 2 -#define BTN_HIDE_ALL 3 -#define FT_HINT 4 -#define FL_PROTECTION 5 -#define BTN_HIDE_PRINT 6 -#define FT_HINT2 7 -#define FL_PRINT 8 diff --git a/sc/source/ui/inc/tabpages.hxx b/sc/source/ui/inc/tabpages.hxx index 622cb92e7640..f6c9ce7b6b00 100644 --- a/sc/source/ui/inc/tabpages.hxx +++ b/sc/source/ui/inc/tabpages.hxx @@ -45,17 +45,11 @@ private: ~ScTabPageProtection(); private: - FixedLine aFlProtect; - TriStateBox aBtnHideCell; - TriStateBox aBtnProtect; - TriStateBox aBtnHideFormula; - FixedInfo aTxtHint; - - FixedLine aFlPrint; - TriStateBox aBtnHidePrint; - FixedInfo aTxtHint2; - - // current status: + CheckBox* m_pBtnHideCell; + CheckBox* m_pBtnProtect; + CheckBox* m_pBtnHideFormula; + CheckBox* m_pBtnHidePrint; + // current status: sal_Bool bTriEnabled; // if before - DontCare sal_Bool bDontCare; // all in TriState sal_Bool bProtect; // secure individual settings for TriState @@ -64,7 +58,7 @@ private: sal_Bool bHidePrint; // Handler: - DECL_LINK( ButtonClickHdl, TriStateBox* pBox ); + DECL_LINK( ButtonClickHdl, CheckBox* pBox ); void UpdateButtons(); }; diff --git a/sc/source/ui/src/attrdlg.src b/sc/source/ui/src/attrdlg.src index c3ff94a335a9..eeededa88ff1 100644 --- a/sc/source/ui/src/attrdlg.src +++ b/sc/source/ui/src/attrdlg.src @@ -87,73 +87,3 @@ TabDialog RID_SCDLG_ATTR }; }; }; - - //================================================ - // Zellschutz-TabPage: - -TabPage RID_SCPAGE_PROTECTION -{ - Hide = TRUE ; - SVLook = TRUE ; - HelpId = HID_SCPAGE_PROTECTION ; - Pos = MAP_APPFONT ( 0 , 0 ) ; - Size = MAP_APPFONT ( TP_WIDTH , TP_HEIGHT ) ; - TriStateBox BTN_PROTECTED - { - HelpID = "sc:TriStateBox:RID_SCPAGE_PROTECTION:BTN_PROTECTED"; - Pos = MAP_APPFONT ( 22 , 28 ) ; - Size = MAP_APPFONT ( 90 , 10 ) ; - Text [ en-US ] = "~Protected" ; - TabStop = TRUE ; - }; - TriStateBox BTN_HIDE_FORMULAR - { - HelpID = "sc:TriStateBox:RID_SCPAGE_PROTECTION:BTN_HIDE_FORMULAR"; - Pos = MAP_APPFONT ( 22 , 42 ) ; - Size = MAP_APPFONT ( 90 , 10 ) ; - Text [ en-US ] = "Hide ~formula" ; - TabStop = TRUE ; - }; - TriStateBox BTN_HIDE_ALL - { - HelpID = "sc:TriStateBox:RID_SCPAGE_PROTECTION:BTN_HIDE_ALL"; - Pos = MAP_APPFONT ( 12 , 14 ) ; - Size = MAP_APPFONT ( 100 , 10 ) ; - Text [ en-US ] = "Hide ~all" ; - TabStop = TRUE ; - }; - FixedText FT_HINT - { - Pos = MAP_APPFONT ( 114 , 14 ) ; - Size = MAP_APPFONT ( 137 , 56 ) ; - WordBreak = TRUE ; - Text [ en-US ] = "Cell protection is only effective after the current sheet has been protected. \n\nSelect 'Protect Document' from the 'Tools' menu, and specify 'Sheet'." ; - }; - FixedLine FL_PROTECTION - { - Pos = MAP_APPFONT ( 6 , 3 ) ; - Size = MAP_APPFONT ( 248 , 8 ) ; - Text [ en-US ] = "Protection" ; - }; - TriStateBox BTN_HIDE_PRINT - { - HelpID = "sc:TriStateBox:RID_SCPAGE_PROTECTION:BTN_HIDE_PRINT"; - Pos = MAP_APPFONT ( 12 , 87 ) ; - Size = MAP_APPFONT ( 100 , 10 ) ; - Text [ en-US ] = "Hide ~when printing" ; - TabStop = TRUE ; - }; - FixedText FT_HINT2 - { - Pos = MAP_APPFONT ( 114 , 87 ) ; - Size = MAP_APPFONT ( 137 , 24 ) ; - WordBreak = TRUE ; - Text [ en-US ] = "The cells selected will be omitted when printing." ; - }; - FixedLine FL_PRINT - { - Pos = MAP_APPFONT ( 6 , 76 ) ; - Size = MAP_APPFONT ( 248 , 8 ) ; - Text [ en-US ] = "Print" ; - }; -}; -- cgit