summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Mohrhard <markus.mohrhard@googlemail.com>2012-07-16 04:21:40 +0200
committerFridrich Štrba <fridrich.strba@bluewin.ch>2012-07-16 10:24:46 +0200
commitffdee69b8e653085e4681c264682cfb71761f8db (patch)
tree68aa6e7571e1bbef23320e76a2b4f7d637840bd5
parente535c1f6d4d14c27b8d963758184b2fd025d10a9 (diff)
disable edit field for min and max type, fdo#51834
Change-Id: Id77c58f333bfab5446cf96d24cd9ccfc18802862 Signed-off-by: Fridrich Štrba <fridrich.strba@bluewin.ch>
-rw-r--r--sc/source/ui/condformat/condformatdlg.cxx40
-rw-r--r--sc/source/ui/inc/condformatdlg.hxx1
2 files changed, 41 insertions, 0 deletions
diff --git a/sc/source/ui/condformat/condformatdlg.cxx b/sc/source/ui/condformat/condformatdlg.cxx
index 9ba146d1e5ef..643efdba3ab1 100644
--- a/sc/source/ui/condformat/condformatdlg.cxx
+++ b/sc/source/ui/condformat/condformatdlg.cxx
@@ -173,6 +173,10 @@ ScCondFrmtEntry::ScCondFrmtEntry(Window* pParent, ScDocument* pDoc):
SwitchToType(COLLAPSED);
SetHeight();
SetCondType();
+
+ EntryTypeHdl(&maLbEntryTypeMin);
+ EntryTypeHdl(&maLbEntryTypeMiddle);
+ EntryTypeHdl(&maLbEntryTypeMax);
}
ScCondFrmtEntry::ScCondFrmtEntry(Window* pParent, ScDocument* pDoc, const ScFormatEntry* pFormatEntry):
@@ -297,6 +301,10 @@ ScCondFrmtEntry::ScCondFrmtEntry(Window* pParent, ScDocument* pDoc, const ScForm
maClickHdl = LINK( pParent, ScCondFormatList, EntrySelectHdl );
SwitchToType(COLLAPSED);
SetHeight();
+
+ EntryTypeHdl(&maLbEntryTypeMin);
+ EntryTypeHdl(&maLbEntryTypeMiddle);
+ EntryTypeHdl(&maLbEntryTypeMax);
}
ScCondFrmtEntry::~ScCondFrmtEntry()
@@ -307,6 +315,12 @@ void ScCondFrmtEntry::Init()
{
maLbType.SetSelectHdl( LINK( this, ScCondFrmtEntry, TypeListHdl ) );
maLbColorFormat.SetSelectHdl( LINK( this, ScCondFrmtEntry, ColFormatTypeHdl ) );
+ maLbEntryTypeMin.SetSelectHdl( LINK( this, ScCondFrmtEntry, EntryTypeHdl ) );
+ maLbEntryTypeMax.SetSelectHdl( LINK( this, ScCondFrmtEntry, EntryTypeHdl ) );
+ maLbEntryTypeMiddle.SetSelectHdl( LINK( this, ScCondFrmtEntry, EntryTypeHdl ) );
+
+
+
SfxStyleSheetIterator aStyleIter( mpDoc->GetStyleSheetPool(), SFX_STYLE_FAMILY_PARA );
for ( SfxStyleSheetBase* pStyle = aStyleIter.First(); pStyle; pStyle = aStyleIter.Next() )
{
@@ -813,6 +827,31 @@ IMPL_LINK_NOARG(ScCondFrmtEntry, ColFormatTypeHdl)
return 0;
}
+IMPL_LINK( ScCondFrmtEntry, EntryTypeHdl, ListBox*, pBox )
+{
+ bool bEnableEdit = true;
+ sal_Int32 nPos = pBox->GetSelectEntryPos();
+ if(nPos == 0 || nPos == 1)
+ {
+ bEnableEdit = false;
+ }
+
+ Edit* pEd = NULL;
+ if(pBox == &maLbEntryTypeMin)
+ pEd = &maEdMin;
+ else if(pBox == &maLbEntryTypeMiddle)
+ pEd = &maEdMiddle;
+ else if(pBox == &maLbEntryTypeMax)
+ pEd = &maEdMax;
+
+ if(bEnableEdit)
+ pEd->Enable();
+ else
+ pEd->Disable();
+
+ return 0;
+}
+
IMPL_LINK_NOARG(ScCondFrmtEntry, StyleSelectHdl)
{
if(maLbStyle.GetSelectEntryPos() == 0)
@@ -906,6 +945,7 @@ IMPL_LINK_NOARG( ScCondFrmtEntry, ConditionTypeSelectHdl )
{
maEdVal2.Hide();
}
+
return 0;
}
diff --git a/sc/source/ui/inc/condformatdlg.hxx b/sc/source/ui/inc/condformatdlg.hxx
index 35e24da2f36c..298b357ad778 100644
--- a/sc/source/ui/inc/condformatdlg.hxx
+++ b/sc/source/ui/inc/condformatdlg.hxx
@@ -124,6 +124,7 @@ private:
DECL_LINK( OptionBtnHdl, void* );
DECL_LINK( DataBarTypeSelectHdl, void* );
DECL_LINK( ConditionTypeSelectHdl, void* );
+ DECL_LINK( EntryTypeHdl, ListBox* );
public:
ScCondFrmtEntry( Window* pParent, ScDocument* pDoc );