diff options
author | Olivier Hallot <olivier.hallot@alta.org.br> | 2013-02-09 22:52:54 -0200 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2013-02-12 00:30:45 +0000 |
commit | ed51d060fa10b2664abc24b22c20529de30dff64 (patch) | |
tree | d1e6070379f4607f4ba35082994b5e488d2b502a | |
parent | 07c99eff32c4c60786c001c2e51c35b7f1d9268f (diff) |
Widget for Calc protect cell tab page
* 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 <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r-- | cui/UI_cui.mk | 1 | ||||
-rw-r--r-- | cui/uiconfig/ui/cellprotectionpage.ui | 208 | ||||
-rw-r--r-- | sc/source/ui/attrdlg/tabpages.cxx | 106 | ||||
-rw-r--r-- | sc/source/ui/inc/attrdlg.hrc | 12 | ||||
-rw-r--r-- | sc/source/ui/inc/tabpages.hxx | 18 | ||||
-rw-r--r-- | sc/source/ui/src/attrdlg.src | 70 |
6 files changed, 266 insertions, 149 deletions
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 @@ +<?xml version="1.0" encoding="UTF-8"?> +<interface> + <!-- interface-requires gtk+ 3.0 --> + <object class="GtkGrid" id="ProtectionPage"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="border_width">6</property> + <property name="row_spacing">12</property> + <property name="column_spacing">6</property> + <child> + <object class="GtkFrame" id="FrameProtection"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="events">GDK_EXPOSURE_MASK</property> + <property name="hexpand">True</property> + <property name="label_xalign">0</property> + <property name="shadow_type">none</property> + <child> + <object class="GtkAlignment" id="protection1"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="hexpand">True</property> + <property name="vexpand">True</property> + <property name="left_padding">12</property> + <child> + <object class="GtkGrid" id="grid1"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <child> + <object class="GtkBox" id="box1"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">vertical</property> + <child> + <object class="GtkCheckButton" id="checkHideAll"> + <property name="label" translatable="yes">Hide _all</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="has_tooltip">True</property> + <property name="use_underline">True</property> + <property name="xalign">0</property> + <property name="always_show_image">True</property> + <property name="inconsistent">True</property> + <property name="draw_indicator">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkCheckButton" id="checkProtected"> + <property name="label" translatable="yes">_Protected</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="margin_left">25</property> + <property name="use_underline">True</property> + <property name="xalign">0</property> + <property name="active">True</property> + <property name="inconsistent">True</property> + <property name="draw_indicator">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkCheckButton" id="checkHideFormula"> + <property name="label" translatable="yes">Hide _formula</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="margin_left">25</property> + <property name="use_underline">True</property> + <property name="xalign">0</property> + <property name="inconsistent">True</property> + <property name="draw_indicator">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">2</property> + </packing> + </child> + </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="label1"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="margin_left">50</property> + <property name="label" translatable="yes">Cell protection is only effective after the current sheet has been protected. + +Select 'Protect Document' from the 'Tools' menu, and specify 'Sheet'.</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> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="LabelProtection"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">Protection</property> + <attributes> + <attribute name="weight" value="bold"/> + </attributes> + </object> + </child> + </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="GtkFrame" id="framePrint"> + <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="alignment1"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="left_padding">12</property> + <child> + <object class="GtkGrid" id="grid2"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <child> + <object class="GtkCheckButton" id="checkHidePrinting"> + <property name="label" translatable="yes">Hide _when printing</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="use_underline">True</property> + <property name="xalign">0</property> + <property name="inconsistent">True</property> + <property name="draw_indicator">True</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="label4"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="halign">start</property> + <property name="margin_left">12</property> + <property name="label" translatable="yes">The cells selected will be omitted when printing.</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> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label3"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">Print</property> + <attributes> + <attribute name="weight" value="bold"/> + </attributes> + </object> + </child> + </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> + </object> +</interface> 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" ; - }; -}; |