summaryrefslogtreecommitdiff
path: root/sc/source/ui/attrdlg
diff options
context:
space:
mode:
authorMarkus Mohrhard <markus.mohrhard@googlemail.com>2012-06-01 05:41:51 +0200
committerMarkus Mohrhard <markus.mohrhard@googlemail.com>2012-06-11 08:01:22 +0200
commitf76aa6633452b1bc82d6742986b86f7045c3a7a0 (patch)
tree2d590799fe20328bc6d8a6eaf97d65d10d043542 /sc/source/ui/attrdlg
parent17675467b695967bcb02356be617448949ee60a5 (diff)
first part for new conditional format dialog
Change-Id: I97d025e468d6c90cdb780c3654706df20300429a
Diffstat (limited to 'sc/source/ui/attrdlg')
-rw-r--r--sc/source/ui/attrdlg/condfrmt.cxx1039
-rw-r--r--sc/source/ui/attrdlg/scdlgfact.cxx20
-rw-r--r--sc/source/ui/attrdlg/scdlgfact.hxx9
3 files changed, 29 insertions, 1039 deletions
diff --git a/sc/source/ui/attrdlg/condfrmt.cxx b/sc/source/ui/attrdlg/condfrmt.cxx
deleted file mode 100644
index ca41c8f195ff..000000000000
--- a/sc/source/ui/attrdlg/condfrmt.cxx
+++ /dev/null
@@ -1,1039 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-#include <sfx2/dispatch.hxx>
-#include <svl/stritem.hxx>
-
-#include "tabvwsh.hxx"
-#include "reffact.hxx"
-#include "conditio.hxx"
-#include "stlpool.hxx"
-#include "uiitems.hxx"
-#include "document.hxx"
-#include "scresid.hxx"
-
-#include "condfrmt.hrc"
-#include "globstr.hrc"
-
-#define _CONDFRMT_CXX
-#include "condfrmt.hxx"
-#undef _CONDFRMT_CXX
-
-#include "rangelst.hxx"
-
-//============================================================================
-// class ScConditionalFormat
-
-//----------------------------------------------------------------------------
-// Konstruktor
-
-ScConditionalFormatDlg::ScConditionalFormatDlg(
- SfxBindings* pB, SfxChildWindow* pCW, Window* pParent,
- ScDocument* pCurDoc,
- const ScConditionalFormat* pCurrentFormat )
- : ScAnyRefDlg ( pB, pCW, pParent, RID_SCDLG_CONDFORMAT ),
-
- aCbxCond1 ( this, ScResId( CBX_COND1 ) ),
- aLbCond11 ( this, ScResId( LB_COND1_1 ) ),
- aLbCond12 ( this, ScResId( LB_COND1_2 ) ),
- aEdtCond11 ( this, this, ScResId( EDT_COND1_1 ) ),
- aRbCond11 ( this, ScResId( RB_COND1_1 ), &aEdtCond11,this ),
- aFtCond1And ( this, ScResId( FT_COND1_AND ) ),
- aEdtCond12 ( this, this, ScResId( EDT_COND1_2 ) ),
- aRbCond12 ( this, ScResId( RB_COND1_2 ), &aEdtCond12,this ),
- aFtCond1Template ( this, ScResId( FT_COND1_TEMPLATE ) ),
- aLbCond1Template ( this, ScResId( LB_COND1_TEMPLATE ) ),
- aBtnNew1 ( this, ScResId( BTN_COND1_NEW ) ),
- aPreviewWin1 ( this, ScResId( WIN_CHAR_PREVIEW_COND1 ) ),
- aFlSep1 ( this, ScResId( FL_SEP1 ) ),
-
- aCbxCond2 ( this, ScResId( CBX_COND2 ) ),
- aLbCond21 ( this, ScResId( LB_COND2_1 ) ),
- aLbCond22 ( this, ScResId( LB_COND2_2 ) ),
- aEdtCond21 ( this, this, ScResId( EDT_COND2_1 ) ),
- aRbCond21 ( this, ScResId( RB_COND2_1 ), &aEdtCond21,this ),
- aFtCond2And ( this, ScResId( FT_COND2_AND ) ),
- aEdtCond22 ( this, this, ScResId( EDT_COND2_2 ) ),
- aRbCond22 ( this, ScResId( RB_COND2_2 ), &aEdtCond22,this ),
- aFtCond2Template ( this, ScResId( FT_COND2_TEMPLATE ) ),
- aLbCond2Template ( this, ScResId( LB_COND2_TEMPLATE ) ),
- aBtnNew2 ( this, ScResId( BTN_COND2_NEW ) ),
- aPreviewWin2 ( this, ScResId( WIN_CHAR_PREVIEW_COND2 ) ),
- aFlSep2 ( this, ScResId( FL_SEP2 ) ),
-
- aCbxCond3 ( this, ScResId( CBX_COND3 ) ),
- aLbCond31 ( this, ScResId( LB_COND3_1 ) ),
- aLbCond32 ( this, ScResId( LB_COND3_2 ) ),
- aEdtCond31 ( this, this, ScResId( EDT_COND3_1 ) ),
- aRbCond31 ( this, ScResId( RB_COND3_1 ), &aEdtCond31,this ),
- aFtCond3And ( this, ScResId( FT_COND3_AND ) ),
- aEdtCond32 ( this, this, ScResId( EDT_COND3_2 ) ),
- aRbCond32 ( this, ScResId( RB_COND3_2 ), &aEdtCond32,this ),
- aFtCond3Template ( this, ScResId( FT_COND3_TEMPLATE ) ),
- aLbCond3Template ( this, ScResId( LB_COND3_TEMPLATE ) ),
- aBtnNew3 ( this, ScResId( BTN_COND3_NEW ) ),
- aPreviewWin3 ( this, ScResId( WIN_CHAR_PREVIEW_COND3 ) ),
-
- aScrollBar ( this, ScResId( LB_SCROLL ) ),
- aBtnOk ( this, ScResId( BTN_OK ) ),
- aBtnCancel ( this, ScResId( BTN_CANCEL ) ),
- aBtnHelp ( this, ScResId( BTN_HELP ) ),
- aBtnAdd ( this, ScResId( BTN_ADD ) ),
-
- pEdActive ( NULL ),
- bDlgLostFocus ( false ),
-
- pDoc ( pCurDoc ),
- ppEntries ( NULL ),
- nEntryCount ( 0 ),
- nCurrentOffset ( 0 )
-{
- Point aPos;
- String aName;
- SfxStyleSheetBase* pStyle;
-
- // load entries from current format
- if ( pCurrentFormat && ( pCurrentFormat->Count() > 2 ) )
- nEntryCount = pCurrentFormat->Count() + 1;
- else
- nEntryCount = 3;
- ppEntries = new ScCondFormatEntry*[nEntryCount];
-
- const ScCondFormatEntry* pEntry;
- for (SCSIZE i=0; i<nEntryCount; i++)
- {
- if ( pCurrentFormat && ( i < pCurrentFormat->Count() ) )
- {
- pEntry = pCurrentFormat->GetEntry( i );
- ppEntries[i] = new ScCondFormatEntry( *pEntry );
- }
- else
- ppEntries[i] = NULL;
- }
-
- FreeResource();
-
- aScrollBar.SetEndScrollHdl( LINK( this, ScConditionalFormatDlg, ScrollHdl ) );
- aScrollBar.SetScrollHdl( LINK( this, ScConditionalFormatDlg, ScrollHdl ) );
- aScrollBar.SetRange( Range( 0, nEntryCount - 3 ) );
- aScrollBar.SetLineSize( 1 );
-
- // Handler setzen
- aCbxCond1.SetClickHdl ( LINK( this, ScConditionalFormatDlg, ClickCond1Hdl ) );
- aLbCond11.SetSelectHdl( LINK( this, ScConditionalFormatDlg, ChangeCond11Hdl ) );
- aLbCond12.SetSelectHdl( LINK( this, ScConditionalFormatDlg, ChangeCond12Hdl ) );
- aLbCond1Template.SetSelectHdl( LINK( this, ScConditionalFormatDlg, ChangeCond1TemplateHdl ) );
-
- aCbxCond2.SetClickHdl ( LINK( this, ScConditionalFormatDlg, ClickCond2Hdl ) );
- aLbCond21.SetSelectHdl( LINK( this, ScConditionalFormatDlg, ChangeCond21Hdl ) );
- aLbCond22.SetSelectHdl( LINK( this, ScConditionalFormatDlg, ChangeCond22Hdl ) );
- aLbCond2Template.SetSelectHdl( LINK( this, ScConditionalFormatDlg, ChangeCond2TemplateHdl ) );
-
- aCbxCond3.SetClickHdl ( LINK( this, ScConditionalFormatDlg, ClickCond3Hdl ) );
- aLbCond31.SetSelectHdl( LINK( this, ScConditionalFormatDlg, ChangeCond31Hdl ) );
- aLbCond32.SetSelectHdl( LINK( this, ScConditionalFormatDlg, ChangeCond32Hdl ) );
- aLbCond3Template.SetSelectHdl( LINK( this, ScConditionalFormatDlg, ChangeCond3TemplateHdl ) );
-
- aBtnOk.SetClickHdl ( LINK( this, ScConditionalFormatDlg, BtnHdl ) );
-//? aBtnCancel.SetClickHdl( LINK( this, ScConditionalFormatDlg, BtnHdl ) );
- aBtnAdd.SetClickHdl( LINK( this, ScConditionalFormatDlg, BtnHdl ) );
-
- Link aLink = LINK( this, ScConditionalFormatDlg, NewBtnHdl );
- aBtnNew1.SetClickHdl( aLink );
- aBtnNew2.SetClickHdl( aLink );
- aBtnNew3.SetClickHdl( aLink );
-
- aLink = LINK( this, ScConditionalFormatDlg, GetFocusHdl );
- aEdtCond11.SetGetFocusHdl( aLink );
- aEdtCond12.SetGetFocusHdl( aLink );
- aEdtCond21.SetGetFocusHdl( aLink );
- aEdtCond22.SetGetFocusHdl( aLink );
- aEdtCond31.SetGetFocusHdl( aLink );
- aEdtCond32.SetGetFocusHdl( aLink );
- aRbCond11.SetGetFocusHdl( aLink );
- aRbCond12.SetGetFocusHdl( aLink );
- aRbCond21.SetGetFocusHdl( aLink );
- aRbCond22.SetGetFocusHdl( aLink );
- aRbCond31.SetGetFocusHdl( aLink );
- aRbCond32.SetGetFocusHdl( aLink );
-
- aLink = LINK( this, ScConditionalFormatDlg, LoseFocusHdl );
- aEdtCond11.SetLoseFocusHdl( aLink );
- aEdtCond12.SetLoseFocusHdl( aLink );
- aEdtCond21.SetLoseFocusHdl( aLink );
- aEdtCond22.SetLoseFocusHdl( aLink );
- aEdtCond31.SetLoseFocusHdl( aLink );
- aEdtCond32.SetLoseFocusHdl( aLink );
- aRbCond11.SetLoseFocusHdl( aLink );
- aRbCond12.SetLoseFocusHdl( aLink );
- aRbCond21.SetLoseFocusHdl( aLink );
- aRbCond22.SetLoseFocusHdl( aLink );
- aRbCond31.SetLoseFocusHdl( aLink );
- aRbCond32.SetLoseFocusHdl( aLink );
-
- // Condition 1
- aCond1Pos1 = aLbCond12.GetPosPixel(); // Position Edit ohne Listbox
- aCond1Pos2 = aEdtCond11.GetPosPixel(); // Position Edit mit Listbox
- aRBtn1Pos1 = aRbCond11.GetPosPixel();
- aRBtn1Pos2 = aRbCond12.GetPosPixel();
- aPos = aEdtCond12.GetPosPixel();
- aPos.X() += aEdtCond12.GetSizePixel().Width(); // rechter Rand
- aCond1Size3 = aEdtCond11.GetSizePixel();
- aCond1Size2 = Size( aPos.X() - aCond1Pos2.X(), aCond1Size3.Height() );
- aCond1Size1 = Size( aPos.X() - aCond1Pos1.X(), aCond1Size3.Height() );
- aCbxCond1InitialText = aCbxCond1.GetText();
-
- aCbxCond1.Check();
- aLbCond11.SelectEntryPos( 0 );
- aLbCond12.SelectEntryPos( 0 );
- aPreviewWin1.SetDrawBaseLine( false );
- aPreviewWin1.UseResourceText( true );
-
- // Condition 2
- aCond2Pos1 = aLbCond22.GetPosPixel(); // Position Edit ohne Listbox
- aCond2Pos2 = aEdtCond21.GetPosPixel(); // Position Edit mit Listbox
- aRBtn2Pos1 = aRbCond21.GetPosPixel();
- aRBtn2Pos2 = aRbCond22.GetPosPixel();
- aPos = aEdtCond22.GetPosPixel();
- aPos.X() += aEdtCond22.GetSizePixel().Width(); // rechter Rand
- aCond2Size3 = aEdtCond21.GetSizePixel();
- aCond2Size2 = Size( aPos.X() - aCond2Pos2.X(), aCond2Size3.Height() );
- aCond2Size1 = Size( aPos.X() - aCond2Pos1.X(), aCond2Size3.Height() );
- aCbxCond2InitialText = aCbxCond2.GetText();
-
- aCbxCond2.Check( false );
- aLbCond21.SelectEntryPos( 0 );
- aLbCond22.SelectEntryPos( 0 );
- aPreviewWin2.SetDrawBaseLine( false );
- aPreviewWin2.UseResourceText( true );
-
- // Condition 3
- aCond3Pos1 = aLbCond32.GetPosPixel(); // Position Edit ohne Listbox
- aCond3Pos2 = aEdtCond31.GetPosPixel(); // Position Edit mit Listbox
- aRBtn3Pos1 = aRbCond31.GetPosPixel();
- aRBtn3Pos2 = aRbCond32.GetPosPixel();
- aPos = aEdtCond32.GetPosPixel();
- aPos.X() += aEdtCond32.GetSizePixel().Width(); // rechter Rand
- aCond3Size3 = aEdtCond31.GetSizePixel();
- aCond3Size2 = Size( aPos.X() - aCond3Pos2.X(), aCond3Size3.Height() );
- aCond3Size1 = Size( aPos.X() - aCond3Pos1.X(), aCond3Size3.Height() );
- aCbxCond3InitialText = aCbxCond3.GetText();
-
- aCbxCond3.Check( false );
- aLbCond31.SelectEntryPos( 0 );
- aLbCond32.SelectEntryPos( 0 );
- aPreviewWin3.SetDrawBaseLine( false );
- aPreviewWin3.UseResourceText( true );
-
- // Vorlagen aus pDoc holen
- SfxStyleSheetIterator aStyleIter( pDoc->GetStyleSheetPool(), SFX_STYLE_FAMILY_PARA );
- for ( pStyle = aStyleIter.First(); pStyle; pStyle = aStyleIter.Next() )
- {
- aName = pStyle->GetName();
- aLbCond1Template.InsertEntry( aName );
- aLbCond2Template.InsertEntry( aName );
- aLbCond3Template.InsertEntry( aName );
- }
-
- Refresh( nCurrentOffset );
-
- ClickCond1Hdl( NULL );
- ClickCond2Hdl( NULL );
- ClickCond3Hdl( NULL );
-
- ChangeCond12Hdl( NULL );
- ChangeCond22Hdl( NULL );
- ChangeCond32Hdl( NULL );
-
- aEdtCond11.GrabFocus();
- pEdActive = &aEdtCond11;
- //@BugID 54702 Enablen/Disablen nur noch in Basisklasse
- //SFX_APPWINDOW->Enable(); // Ref-Feld hat Focus
-// SFX_APPWINDOW->Disable();
-
- aLbCond11.SetAccessibleRelationLabeledBy( &aCbxCond1 );
- aLbCond12.SetAccessibleRelationLabeledBy( &aCbxCond1 );
- aEdtCond11.SetAccessibleRelationLabeledBy( &aCbxCond1 );
- aRbCond11.SetAccessibleRelationLabeledBy( &aCbxCond1 );
-
- aLbCond21.SetAccessibleRelationLabeledBy( &aCbxCond2 );
- aLbCond22.SetAccessibleRelationLabeledBy( &aCbxCond2 );
- aEdtCond21.SetAccessibleRelationLabeledBy( &aCbxCond2 );
- aRbCond21.SetAccessibleRelationLabeledBy( &aCbxCond2 );
-
- aLbCond31.SetAccessibleRelationLabeledBy( &aCbxCond3 );
- aLbCond32.SetAccessibleRelationLabeledBy( &aCbxCond3 );
- aEdtCond31.SetAccessibleRelationLabeledBy( &aCbxCond3 );
- aRbCond31.SetAccessibleRelationLabeledBy( &aCbxCond3 );
- aLbCond11.SetAccessibleName( ScResId(LABEL_FORMARTTING_CONDITIONS) );
- aLbCond12.SetAccessibleName( ScResId(LABEL_CONDITIONS) );
- aEdtCond11.SetAccessibleName( ScResId(LABEL_CONDITION_VALUE) );
-
- aLbCond21.SetAccessibleName( ScResId(LABEL_FORMARTTING_CONDITIONS) );
- aLbCond22.SetAccessibleName( ScResId(LABEL_CONDITIONS) );
- aEdtCond21.SetAccessibleName( ScResId(LABEL_CONDITION_VALUE) );
-
- aLbCond31.SetAccessibleName( ScResId(LABEL_FORMARTTING_CONDITIONS) );
- aLbCond32.SetAccessibleName( ScResId(LABEL_CONDITIONS) );
- aEdtCond31.SetAccessibleName( ScResId(LABEL_CONDITION_VALUE) );
-}
-
-//----------------------------------------------------------------------------
-// Destruktor
-
-ScConditionalFormatDlg::~ScConditionalFormatDlg()
-{
- for (SCSIZE i=0; i<nEntryCount; i++)
- delete ppEntries[i];
- delete[] ppEntries;
-}
-
-//----------------------------------------------------------------------------
-void ScConditionalFormatDlg::AddEntry()
-{
- ScCondFormatEntry** ppNew = new ScCondFormatEntry*[nEntryCount+1];
- for (sal_uInt16 i=0; i<nEntryCount; i++)
- ppNew[i] = ppEntries[i];
- ppNew[nEntryCount] = NULL;
- ++nEntryCount;
- delete[] ppEntries;
- ppEntries = ppNew;
- aScrollBar.SetRange( Range( 0, nEntryCount - 3 ) );
-}
-
-// -----------------------------------------------------------------------
-namespace
-{
- // -----------------------------------------------------------------------
- void CondChecked( sal_Bool bChecked, CheckBox &aCbxCond, ListBox &aLbCond1, ListBox &aLbCond2,
- formula::RefEdit &aEdtCond1, formula::RefButton &aRbCond1, FixedText &aFtCondAnd,
- formula::RefEdit &aEdtCond2, formula::RefButton &aRbCond2,
- FixedText &aFtCondTemplate, ListBox &aLbCondTemplate, PushButton &aBtnNew, SvxFontPrevWindow &aPreviewWin )
- {
- aCbxCond.Check( bChecked );
- aLbCond1.Enable( bChecked );
- aLbCond2.Enable( bChecked );
- aEdtCond1.Enable( bChecked );
- aRbCond1.Enable( bChecked );
- aFtCondAnd.Enable( bChecked );
- aEdtCond2.Enable( bChecked );
- aRbCond2.Enable( bChecked );
- aFtCondTemplate.Enable( bChecked );
- aLbCondTemplate.Enable( bChecked );
- aBtnNew.Enable( bChecked );
- aPreviewWin.Enable( bChecked );
- }
-
- // -----------------------------------------------------------------------
- String OffsetAsText( sal_uInt16 nVal )
- {
- String aValNum = ScGlobal::GetEmptyString();
- if ( nVal >= 10)
- aValNum = String::CreateFromInt32( nVal / 10 );
- aValNum += String::CreateFromAscii("~");
- aValNum += String::CreateFromInt32( nVal % 10 );
- return aValNum;
- }
-
- // -----------------------------------------------------------------------
- void RefreshEntry( sal_uInt16 nOffset, ScCondFormatEntry** ppEntries, ScAddress aCurPos, String aCbxCondInitialText,
- CheckBox &aCbxCond, ListBox &aLbCond1, ListBox &aLbCond2,
- formula::RefEdit &aEdtCond1, formula::RefButton &aRbCond1, FixedText &aFtCondAnd,
- formula::RefEdit &aEdtCond2, formula::RefButton &aRbCond2,
- FixedText &aFtCondTemplate, ListBox &aLbCondTemplate, PushButton &aBtnNew, SvxFontPrevWindow &aPreviewWin )
- {
- String aEmptyString = ScGlobal::GetEmptyString();
- String aStyleNameStandard = ScGlobal::GetRscString(STR_STYLENAME_STANDARD);
-
- String aVal = aCbxCondInitialText;
- String aOffsetAsText = OffsetAsText( nOffset + 1 );
- if ( STRING_NOTFOUND != aVal.Search( String::CreateFromAscii( "~1" ) ) )
- aVal.SearchAndReplace( String::CreateFromAscii( "~1" ), aOffsetAsText );
- else if ( STRING_NOTFOUND != aVal.Search( String::CreateFromAscii( "~2" ) ) )
- aVal.SearchAndReplace( String::CreateFromAscii( "~2" ), aOffsetAsText );
- else if ( STRING_NOTFOUND != aVal.Search( String::CreateFromAscii( "~3" ) ) )
- aVal.SearchAndReplace( String::CreateFromAscii( "~3" ), aOffsetAsText );
- aCbxCond.SetText(aVal);
-
- const ScCondFormatEntry* pEntry;
- if ( ppEntries[ nOffset + 0 ] )
- {
- CondChecked( true, aCbxCond, aLbCond1, aLbCond2, aEdtCond1, aRbCond1, aFtCondAnd, aEdtCond2, aRbCond2,
- aFtCondTemplate, aLbCondTemplate, aBtnNew, aPreviewWin );
- pEntry= ppEntries[ nOffset + 0 ];
- aEdtCond1.SetText( pEntry->GetExpression( aCurPos, 0 ) );
- aLbCondTemplate.SelectEntry( pEntry->GetStyle() );
-
- ScConditionMode eMode = pEntry->GetOperation();
- if ( eMode == SC_COND_DIRECT ) // via Formel
- aLbCond1.SelectEntryPos( 1 );
- else if ( eMode == SC_COND_NONE ) // ???
- ;
- else // via Werte
- {
- aLbCond1.SelectEntryPos( 0 );
- aLbCond2.SelectEntryPos( sal::static_int_cast<sal_uInt16>( eMode ) );
- if ( ( eMode == SC_COND_BETWEEN ) || ( eMode == SC_COND_NOTBETWEEN ) )
- aEdtCond2.SetText( pEntry->GetExpression( aCurPos, 1 ) );
- }
- }
- else
- {
- CondChecked( false, aCbxCond, aLbCond1, aLbCond2, aEdtCond1, aRbCond1, aFtCondAnd, aEdtCond2, aRbCond2,
- aFtCondTemplate, aLbCondTemplate, aBtnNew, aPreviewWin );
- aLbCond1.SelectEntryPos( 0 );
- aLbCond2.SelectEntryPos( 0 );
- aLbCondTemplate.SelectEntry( aStyleNameStandard );
- aEdtCond1.SetText( aEmptyString );
- aEdtCond2.SetText( aEmptyString );
- }
- }
-
-//----------------------------------------------------------------------------
-
- void UpdateValue( sal_uInt16 nOffset, ScDocument* pDoc, ScCondFormatEntry** ppEntries, ScAddress aCurPos,
- CheckBox &aCbxCond, ListBox &aLbCond1, ListBox &aLbCond2,
- formula::RefEdit &aEdtCond1, formula::RefEdit &aEdtCond2, ListBox &aLbCondTemplate )
- {
- ScConditionMode eOper;
- String sExpr1;
- String sExpr2;
- String sStyle;
-
- delete ppEntries[ nOffset ];
- if ( aCbxCond.IsChecked() )
- {
- if ( aLbCond1.GetSelectEntryPos() == 1 ) // via Formel
- eOper = SC_COND_DIRECT;
- else
- eOper = (ScConditionMode)aLbCond2.GetSelectEntryPos();
- sExpr1 = aEdtCond1.GetText();
- sExpr2 = aEdtCond2.GetText();
- sStyle = aLbCondTemplate.GetSelectEntry();
- ppEntries[ nOffset ] = new ScCondFormatEntry( eOper, sExpr1, sExpr2, pDoc, aCurPos, sStyle );
- }
- else
- ppEntries[ nOffset ] = NULL;
- }
-}
-
-// -----------------------------------------------------------------------
-
-void ScConditionalFormatDlg::Refresh( sal_uInt16 nOffset )
-{
- ScAddress aCurPos;
- ScTabViewShell* pViewShell = ScTabViewShell::GetActiveViewShell();
- if (pViewShell)
- {
- ScViewData* pData = pViewShell->GetViewData();
- aCurPos = ScAddress( pData->GetCurX(), pData->GetCurY(), pData->GetTabNo() );
- }
-
- RefreshEntry( nOffset + 0, ppEntries, aCurPos, aCbxCond1InitialText,
- aCbxCond1, aLbCond11, aLbCond12, aEdtCond11, aRbCond11, aFtCond1And, aEdtCond12, aRbCond12,
- aFtCond1Template, aLbCond1Template, aBtnNew1, aPreviewWin1 );
- ChangeCond11Hdl( NULL );
- ChangeCond1TemplateHdl( NULL );
-
- RefreshEntry( nOffset + 1, ppEntries, aCurPos, aCbxCond2InitialText,
- aCbxCond2, aLbCond21, aLbCond22, aEdtCond21, aRbCond21, aFtCond2And, aEdtCond22, aRbCond22,
- aFtCond2Template, aLbCond2Template, aBtnNew2, aPreviewWin2 );
- ChangeCond21Hdl( NULL );
- ChangeCond2TemplateHdl( NULL );
-
- RefreshEntry( nOffset + 2, ppEntries, aCurPos, aCbxCond3InitialText,
- aCbxCond3, aLbCond31, aLbCond32, aEdtCond31, aRbCond31, aFtCond3And, aEdtCond32, aRbCond32,
- aFtCond3Template, aLbCond3Template, aBtnNew3, aPreviewWin3 );
- ChangeCond31Hdl( NULL );
- ChangeCond3TemplateHdl( NULL );
-
- if ( nOffset == 0 )
- CondChecked( true, aCbxCond1, aLbCond11, aLbCond12, aEdtCond11, aRbCond11, aFtCond1And, aEdtCond12, aRbCond12,
- aFtCond1Template, aLbCond1Template, aBtnNew1, aPreviewWin1 );
-}
-
-//----------------------------------------------------------------------------
-
-void ScConditionalFormatDlg::UpdateValueList( sal_uInt16 nOffset )
-{
- ScAddress aCurPos;
-
- ScTabViewShell* pViewShell = ScTabViewShell::GetActiveViewShell();
- if (pViewShell)
- {
- ScViewData* pData = pViewShell->GetViewData();
- aCurPos = ScAddress( pData->GetCurX(), pData->GetCurY(), pData->GetTabNo() );
- }
-
- UpdateValue( nOffset + 0, pDoc, ppEntries, aCurPos,
- aCbxCond1, aLbCond11, aLbCond12, aEdtCond11, aEdtCond12, aLbCond1Template );
-
- UpdateValue( nOffset + 1, pDoc, ppEntries, aCurPos,
- aCbxCond2, aLbCond21, aLbCond22, aEdtCond21, aEdtCond22, aLbCond2Template );
-
- UpdateValue( nOffset + 2, pDoc, ppEntries, aCurPos,
- aCbxCond3, aLbCond31, aLbCond32, aEdtCond31, aEdtCond32, aLbCond3Template );
-}
-
-//----------------------------------------------------------------------------
-
-void ScConditionalFormatDlg::SetReference( const ScRange& rRef, ScDocument* pDocP )
-{
- if ( pEdActive )
- {
- if ( rRef.aStart != rRef.aEnd )
- RefInputStart(pEdActive);
-
- String aStr;
- rRef.Format( aStr, SCR_ABS_3D, pDocP, pDocP->GetAddressConvention () );
- String aVal( pEdActive->GetText() );
- Selection aSel( pEdActive->GetSelection() );
- aSel.Justify();
- aVal.Erase( (xub_StrLen)aSel.Min(), (xub_StrLen)aSel.Len() );
- aVal.Insert( aStr, (xub_StrLen)aSel.Min() );
- Selection aNewSel( aSel.Min(), aSel.Min()+aStr.Len() );
- pEdActive->SetRefString( aVal );
- pEdActive->SetSelection( aNewSel );
-// pEdActive->SetModifyFlag();
- }
-}
-
-//----------------------------------------------------------------------------
-
-void ScConditionalFormatDlg::AddRefEntry()
-{
- if ( pEdActive )
- {
- String aVal = pEdActive->GetText();
- aVal += ';';
- pEdActive->SetText(aVal);
-
- xub_StrLen nLen = aVal.Len();
- pEdActive->SetSelection( Selection( nLen, nLen ) );
-// pEdActive->SetModifyFlag();
- }
-}
-
-//----------------------------------------------------------------------------
-
-sal_Bool ScConditionalFormatDlg::IsRefInputMode() const
-{
- return (pEdActive != NULL);
-}
-
-//----------------------------------------------------------------------------
-
-void ScConditionalFormatDlg::SetActive()
-{
- if ( bDlgLostFocus )
- {
- bDlgLostFocus = false;
- if( pEdActive )
- pEdActive->GrabFocus();
- }
- else
- GrabFocus();
-
- RefInputDone();
-}
-
-//----------------------------------------------------------------------------
-// Holt die ausgewaehlte bedingte Formatierung ab
-
-void ScConditionalFormatDlg::GetConditionalFormat( ScConditionalFormat& rCndFmt )
-{
- ScTabViewShell* pViewShell = ScTabViewShell::GetActiveViewShell();
- if (pViewShell)
- {
- ScViewData* pData = pViewShell->GetViewData();
- ScRangeListRef rRanges;
- pData->GetMultiArea( rRanges );
- rCndFmt.AddRangeInfo( rRanges );
- }
-
- UpdateValueList( nCurrentOffset );
- for (SCSIZE i=0; i<nEntryCount; i++)
- if ( ppEntries[i] )
- rCndFmt.AddEntry( *ppEntries[i] );
-}
-
-//----------------------------------------------------------------------------
-// Zerstoert den Dialog
-
-sal_Bool ScConditionalFormatDlg::Close()
-{
- return DoClose( ScCondFormatDlgWrapper::GetChildWindowId() );
-}
-
-//----------------------------------------------------------------------------
-// Handler:
-
-//----------------------------------------------------------------------------
-IMPL_LINK_NOARG(ScConditionalFormatDlg, ScrollHdl)
-{
- SliderMoved();
- return 0;
-}
-
-void ScConditionalFormatDlg::SliderMoved()
-{
- sal_uInt16 nOffset = GetSliderPos();
- if ( nOffset != nCurrentOffset )
- {
- UpdateValueList( nCurrentOffset );
- Refresh( nOffset );
- }
- nCurrentOffset = nOffset;
-}
-sal_uInt16 ScConditionalFormatDlg::GetSliderPos()
-{
- return (sal_uInt16) aScrollBar.GetThumbPos();
-}
-
-//----------------------------------------------------------------------------
-// Enabled/Disabled Condition1-Controls
-
-IMPL_LINK_NOARG(ScConditionalFormatDlg, ClickCond1Hdl)
-{
- sal_Bool bChecked = aCbxCond1.IsChecked();
- CondChecked( bChecked, aCbxCond1, aLbCond11, aLbCond12, aEdtCond11, aRbCond11, aFtCond1And, aEdtCond12, aRbCond12,
- aFtCond1Template, aLbCond1Template, aBtnNew1, aPreviewWin1 );
- return( 0L );
-}
-
-//----------------------------------------------------------------------------
-// Zellwert/Formel
-
-IMPL_LINK_NOARG(ScConditionalFormatDlg, ChangeCond11Hdl)
-{
- sal_uInt16 nPos = aLbCond11.GetSelectEntryPos();
-
- if( nPos == 0 ) // Zellwert
- {
- aLbCond12.Show();
- aEdtCond11.SetPosPixel( aCond1Pos2 );
- }
- else // Formel
- {
- aLbCond12.Hide();
- aFtCond1And.Hide();
- aEdtCond12.Hide();
- aRbCond12.Hide();
- aRbCond11.SetPosPixel( aRBtn1Pos2 );
- aEdtCond11.SetPosSizePixel( aCond1Pos1, aCond1Size1 );
- aEdtCond11.Show();
- aRbCond11.Show();
- }
-
- ChangeCond12Hdl( NULL );
-
- return( 0L );
-}
-
-//----------------------------------------------------------------------------
-// zwischen, gleich, groesser, ...
-
-IMPL_LINK_NOARG(ScConditionalFormatDlg, ChangeCond12Hdl)
-{
- if( aLbCond12.IsVisible() )
- {
- sal_uInt16 nPos = aLbCond12.GetSelectEntryPos();
-
- aEdtCond11.Show();
- aRbCond11.Show();
- if( nPos > 7 )
- {
- aEdtCond11.Hide();
- aRbCond11.Hide();
- aFtCond1And.Hide();
- aEdtCond12.Hide();
- aRbCond12.Hide();
- }
- else if( nPos == 6 || nPos == 7 ) // zwischen, n. zwischen
- {
- aEdtCond11.SetSizePixel( aCond1Size3 );
- aRbCond11.SetPosPixel( aRBtn1Pos1 );
- aFtCond1And.Show();
- aEdtCond12.Show();
- aRbCond12.Show();
- }
- else // gleich, n. gleich ...
- {
- aEdtCond12.Hide();
- aRbCond12.Hide();
- aFtCond1And.Hide();
- aRbCond11.SetPosPixel( aRBtn1Pos2 );
- aEdtCond11.SetSizePixel( aCond1Size2 );
- }
- }
-
- return( 0L );
-}
-
-//----------------------------------------------------------------------------
-
-IMPL_LINK_NOARG(ScConditionalFormatDlg, ChangeCond1TemplateHdl)
-{
- String aStyleName = aLbCond1Template.GetSelectEntry();
- SfxStyleSheetBase* pStyleSheet = pDoc->GetStyleSheetPool()->Find( aStyleName, SFX_STYLE_FAMILY_PARA );
- if ( pStyleSheet )
- {
- const SfxItemSet& rSet = pStyleSheet->GetItemSet();
- aPreviewWin1.Init( rSet );
- aPreviewWin1.Show();
- }
- else
- aPreviewWin1.Hide();
- return( 0L );
-}
-
-//----------------------------------------------------------------------------
-// Enabled/Disabled Condition2-Controls
-
-IMPL_LINK_NOARG(ScConditionalFormatDlg, ClickCond2Hdl)
-{
- sal_Bool bChecked = aCbxCond2.IsChecked();
- CondChecked( bChecked, aCbxCond2, aLbCond21, aLbCond22, aEdtCond21, aRbCond21, aFtCond2And, aEdtCond22, aRbCond22,
- aFtCond2Template, aLbCond2Template, aBtnNew2, aPreviewWin2 );
- return( 0L );
-}
-
-//----------------------------------------------------------------------------
-// Zellwert/Formel
-
-IMPL_LINK_NOARG(ScConditionalFormatDlg, ChangeCond21Hdl)
-{
- sal_uInt16 nPos = aLbCond21.GetSelectEntryPos();
-
- if( nPos == 0 ) // Zellwert
- {
- aLbCond22.Show();
- aEdtCond21.SetPosPixel( aCond2Pos2 );
- }
- else // Formel
- {
- aLbCond22.Hide();
- aFtCond2And.Hide();
- aEdtCond22.Hide();
- aRbCond22.Hide();
- aRbCond21.SetPosPixel( aRBtn2Pos2 );
- aEdtCond21.SetPosSizePixel( aCond2Pos1, aCond2Size1 );
- aEdtCond21.Show();
- aRbCond21.Show();
- }
-
- ChangeCond22Hdl( NULL );
-
- return( 0L );
-}
-
-//----------------------------------------------------------------------------
-// zwischen, gleich, groesser, ...
-
-IMPL_LINK_NOARG(ScConditionalFormatDlg, ChangeCond22Hdl)
-{
- if( aLbCond22.IsVisible() )
- {
- sal_uInt16 nPos = aLbCond22.GetSelectEntryPos();
-
- aEdtCond21.Show();
- aRbCond21.Show();
- if( nPos > 7 )
- {
- aEdtCond21.Hide();
- aRbCond21.Hide();
- aFtCond2And.Hide();
- aEdtCond22.Hide();
- aRbCond22.Hide();
- }
- else if( nPos == 6 || nPos == 7 ) // zwischen, n. zwischen
- {
- aEdtCond21.SetSizePixel( aCond2Size3 );
- aRbCond21.SetPosPixel( aRBtn2Pos1 );
- aFtCond2And.Show();
- aEdtCond22.Show();
- aRbCond22.Show();
- }
- else // gleich, n. gleich ...
- {
- aEdtCond22.Hide();
- aRbCond22.Hide();
- aFtCond2And.Hide();
- aRbCond21.SetPosPixel( aRBtn2Pos2 );
- aEdtCond21.SetSizePixel( aCond2Size2 );
- }
- }
-
- return( 0L );
-}
-
-//----------------------------------------------------------------------------
-
-IMPL_LINK_NOARG(ScConditionalFormatDlg, ChangeCond2TemplateHdl)
-{
- String aStyleName = aLbCond2Template.GetSelectEntry();
- SfxStyleSheetBase* pStyleSheet = pDoc->GetStyleSheetPool()->Find( aStyleName, SFX_STYLE_FAMILY_PARA );
- if ( pStyleSheet )
- {
- const SfxItemSet& rSet = pStyleSheet->GetItemSet();
- aPreviewWin2.Init( rSet );
- aPreviewWin2.Show();
- }
- else
- aPreviewWin2.Hide();
- return( 0L );
-}
-
-//----------------------------------------------------------------------------
-// Enabled/Disabled Condition3-Controls
-
-IMPL_LINK_NOARG(ScConditionalFormatDlg, ClickCond3Hdl)
-{
- sal_Bool bChecked = aCbxCond3.IsChecked();
- CondChecked( bChecked, aCbxCond3, aLbCond31, aLbCond32, aEdtCond31, aRbCond31, aFtCond3And, aEdtCond32, aRbCond32,
- aFtCond3Template, aLbCond3Template, aBtnNew3, aPreviewWin3 );
- if ( bChecked && ( ( nCurrentOffset + 3 ) == nEntryCount ) )
- AddEntry();
- return( 0L );
-}
-
-//----------------------------------------------------------------------------
-// Zellwert/Formel
-
-IMPL_LINK_NOARG(ScConditionalFormatDlg, ChangeCond31Hdl)
-{
- sal_uInt16 nPos = aLbCond31.GetSelectEntryPos();
-
- if( nPos == 0 ) // Zellwert
- {
- aLbCond32.Show();
- aEdtCond31.SetPosPixel( aCond3Pos2 );
- }
- else // Formel
- {
- aLbCond32.Hide();
- aFtCond3And.Hide();
- aEdtCond32.Hide();
- aRbCond32.Hide();
- aRbCond31.SetPosPixel( aRBtn3Pos2 );
- aEdtCond31.SetPosSizePixel( aCond3Pos1, aCond3Size1 );
- aEdtCond31.Show();
- aRbCond31.Show();
- }
-
- ChangeCond32Hdl( NULL );
-
- return( 0L );
-}
-
-//----------------------------------------------------------------------------
-// zwischen, gleich, groesser, ...
-
-IMPL_LINK_NOARG(ScConditionalFormatDlg, ChangeCond32Hdl)
-{
- if( aLbCond32.IsVisible() )
- {
- sal_uInt16 nPos = aLbCond32.GetSelectEntryPos();
-
- aEdtCond31.Show();
- aRbCond31.Show();
- if( nPos > 7 )
- {
- aEdtCond31.Hide();
- aRbCond31.Hide();
- aFtCond3And.Hide();
- aEdtCond32.Hide();
- aRbCond32.Hide();
- }
- else if( nPos == 6 || nPos == 7 ) // zwischen, n. zwischen
- {
- aEdtCond31.SetSizePixel( aCond3Size3 );
- aRbCond31.SetPosPixel( aRBtn3Pos1 );
- aFtCond3And.Show();
- aEdtCond32.Show();
- aRbCond32.Show();
- }
- else // gleich, n. gleich ...
- {
- aEdtCond32.Hide();
- aRbCond32.Hide();
- aFtCond3And.Hide();
- aRbCond31.SetPosPixel( aRBtn3Pos2 );
- aEdtCond31.SetSizePixel( aCond3Size2 );
- }
- }
-
- return( 0L );
-}
-
-//----------------------------------------------------------------------------
-
-IMPL_LINK_NOARG(ScConditionalFormatDlg, ChangeCond3TemplateHdl)
-{
- String aStyleName = aLbCond3Template.GetSelectEntry();
- SfxStyleSheetBase* pStyleSheet = pDoc->GetStyleSheetPool()->Find( aStyleName, SFX_STYLE_FAMILY_PARA );
- if ( pStyleSheet )
- {
- const SfxItemSet& rSet = pStyleSheet->GetItemSet();
- aPreviewWin3.Init( rSet );
- aPreviewWin3.Show();
- }
- else
- aPreviewWin3.Hide();
- return( 0L );
-}
-
-//----------------------------------------------------------------------------
-
-IMPL_LINK( ScConditionalFormatDlg, GetFocusHdl, Control*, pCtrl )
-{
- if( (pCtrl == (Control*)&aEdtCond11) || (pCtrl == (Control*)&aRbCond11) )
- pEdActive = &aEdtCond11;
- else if( (pCtrl == (Control*)&aEdtCond12) || (pCtrl == (Control*)&aRbCond12) )
- pEdActive = &aEdtCond12;
- else if( (pCtrl == (Control*)&aEdtCond21) || (pCtrl == (Control*)&aRbCond21) )
- pEdActive = &aEdtCond21;
- else if( (pCtrl == (Control*)&aEdtCond22) || (pCtrl == (Control*)&aRbCond22) )
- pEdActive = &aEdtCond22;
- else if( (pCtrl == (Control*)&aEdtCond31) || (pCtrl == (Control*)&aRbCond31) )
- pEdActive = &aEdtCond31;
- else if( (pCtrl == (Control*)&aEdtCond32) || (pCtrl == (Control*)&aRbCond32) )
- pEdActive = &aEdtCond32;
- else
- pEdActive = NULL;
-
- if( pEdActive )
- pEdActive->SetSelection( Selection( 0, SELECTION_MAX ) );
-
- return 0;
-}
-
-//----------------------------------------------------------------------------
-
-IMPL_LINK_NOARG(ScConditionalFormatDlg, LoseFocusHdl)
-{
- bDlgLostFocus = !IsActive();
- return 0;
-}
-
-//----------------------------------------------------------------------------
-// [OK], [Cancel]
-
-IMPL_LINK( ScConditionalFormatDlg, BtnHdl, PushButton*, pBtn )
-{
- if ( pBtn == &aBtnOk )
- {
- ScConditionalFormat aCondFrmt( 0, pDoc );
- GetConditionalFormat( aCondFrmt );
- ScCondFrmtItem aOutItem( FID_CONDITIONAL_FORMAT, aCondFrmt );
-
- SetDispatcherLock( false );
- SwitchToDocument();
- GetBindings().GetDispatcher()->Execute( FID_CONDITIONAL_FORMAT,
- SFX_CALLMODE_SLOT | SFX_CALLMODE_RECORD,
- &aOutItem, 0L, 0L );
- Close();
- }
-
- else if ( pBtn == &aBtnAdd )
- {
- AddEntry();
- aScrollBar.SetThumbPos( nEntryCount - 3 );
- SliderMoved();
- aEdtCond31.GrabFocus();
- pEdActive = &aEdtCond31;
- }
-
- else if ( pBtn == &aBtnCancel )
- Close();
-
- return( 0L );
-}
-
-//----------------------------------------------------------------------------
-
-IMPL_LINK( ScConditionalFormatDlg, NewBtnHdl, PushButton*, pBtn )
-{
- SfxUInt16Item aFamilyItem( SID_STYLE_FAMILY, SFX_STYLE_FAMILY_PARA );
- SfxStringItem aRefItem( SID_STYLE_REFERENCE, ScGlobal::GetRscString(STR_STYLENAME_STANDARD) );
-
- // unlock the dispatcher so SID_STYLE_NEW can be executed
- // (SetDispatcherLock would affect all Calc documents)
- SfxDispatcher* pDisp = GetBindings().GetDispatcher();
- sal_Bool bLocked = pDisp->IsLocked();
- if (bLocked)
- pDisp->Lock(false);
-
- // Execute the "new style" slot, complete with undo and all necessary updates.
- // The return value (SfxUInt16Item) is ignored, look for new styles instead.
- pDisp->Execute( SID_STYLE_NEW, SFX_CALLMODE_SYNCHRON | SFX_CALLMODE_RECORD | SFX_CALLMODE_MODAL,
- &aFamilyItem,
- &aRefItem,
- 0L );
-
- if (bLocked)
- pDisp->Lock(sal_True);
-
- // Find the new style and add it into the style list boxes
- String aNewStyle;
- SfxStyleSheetIterator aStyleIter( pDoc->GetStyleSheetPool(), SFX_STYLE_FAMILY_PARA );
- for ( SfxStyleSheetBase* pStyle = aStyleIter.First(); pStyle; pStyle = aStyleIter.Next() )
- {
- String aName = pStyle->GetName();
- if ( aLbCond1Template.GetEntryPos(aName) == LISTBOX_ENTRY_NOTFOUND ) // all lists contain the same entries
- {
- aLbCond1Template.InsertEntry( aName );
- aLbCond2Template.InsertEntry( aName );
- aLbCond3Template.InsertEntry( aName );
- // if there are several new styles (from API or a different view),
- // assume the last one is the result of the dialog
- aNewStyle = aName;
- }
- }
-
- // select the new style in the list box for which the button was pressed
- if ( aNewStyle.Len() )
- {
- ListBox* pListBox = &aLbCond1Template;
- if ( pBtn == &aBtnNew2 )
- pListBox = &aLbCond2Template;
- else if ( pBtn == &aBtnNew3 )
- pListBox = &aLbCond3Template;
-
- pListBox->SelectEntry( aNewStyle );
-
- ChangeCond1TemplateHdl( NULL );
- ChangeCond2TemplateHdl( NULL );
- ChangeCond3TemplateHdl( NULL );
- }
-
- return 0;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/attrdlg/scdlgfact.cxx b/sc/source/ui/attrdlg/scdlgfact.cxx
index 1b78cfba122c..649e4d347142 100644
--- a/sc/source/ui/attrdlg/scdlgfact.cxx
+++ b/sc/source/ui/attrdlg/scdlgfact.cxx
@@ -80,6 +80,7 @@
#include "tpcompatibility.hxx"
#include "tpdefaults.hxx"
#include "colorformat.hxx"
+#include "condformatdlg.hxx"
// ause
#include "editutil.hxx"
@@ -88,6 +89,7 @@ IMPL_ABSTDLG_BASE(VclAbstractDialog_Impl);
IMPL_ABSTDLG_BASE(AbstractScImportAsciiDlg_Impl);
IMPL_ABSTDLG_BASE(AbstractScAutoFormatDlg_Impl);
IMPL_ABSTDLG_BASE(AbstractScColRowLabelDlg_Impl);
+IMPL_ABSTDLG_BASE(AbstractScCondFormatDlg_Impl);
IMPL_ABSTDLG_BASE(AbstractScDataBarSettingsDlg_Impl);
IMPL_ABSTDLG_BASE(AbstractScDataPilotDatabaseDlg_Impl);
IMPL_ABSTDLG_BASE(AbstractScDataPilotSourceTypeDlg_Impl);
@@ -768,6 +770,24 @@ VclAbstractDialog * ScAbstractDialogFactory_Impl::CreateScSortWarningDlg( Window
}
+AbstractScCondFormatDlg* ScAbstractDialogFactory_Impl::CreateScCondFormatDlg(Window* pParent, ScDocument* pDoc, ScConditionalFormat* pFormat,
+ const ScRangeList& rRange, int nId)
+{
+ ScCondFormatDlg* pDlg = NULL;
+ switch( nId )
+ {
+ case RID_SCDLG_CONDFORMAT:
+ pDlg = new ScCondFormatDlg( pParent, pDoc, pFormat, rRange );
+ break;
+ default:
+ break;
+ }
+ if(pDlg)
+ return new AbstractScCondFormatDlg_Impl( pDlg );
+
+ return NULL;
+}
+
AbstractScDataBarSettingsDlg* ScAbstractDialogFactory_Impl::CreateScDataBarSetttingsDlg(Window* pParent, int nId)
{
ScDataBarSettingsDlg* pDlg = NULL;
diff --git a/sc/source/ui/attrdlg/scdlgfact.hxx b/sc/source/ui/attrdlg/scdlgfact.hxx
index 2fb0a12c6f3d..04aa60537cb3 100644
--- a/sc/source/ui/attrdlg/scdlgfact.hxx
+++ b/sc/source/ui/attrdlg/scdlgfact.hxx
@@ -67,6 +67,7 @@ class SfxTabDialog;
class ScSortWarningDlg;
class ScTextImportOptionsDlg;
class ScDataBarSettingsDlg;
+class ScCondFormatDlg;
#define DECL_ABSTDLG_BASE(Class,DialogClass) \
DialogClass* pDlg; \
@@ -138,6 +139,11 @@ class AbstractScColRowLabelDlg_Impl : public AbstractScColRowLabelDlg //add for
virtual sal_Bool IsRow();
};
+class AbstractScCondFormatDlg_Impl : public AbstractScCondFormatDlg
+{
+ DECL_ABSTDLG_BASE(AbstractScCondFormatDlg_Impl, ScCondFormatDlg)
+};
+
class AbstractScDataBarSettingsDlg_Impl : public AbstractScDataBarSettingsDlg
{
DECL_ABSTDLG_BASE(AbstractScDataBarSettingsDlg_Impl, ScDataBarSettingsDlg)
@@ -421,6 +427,9 @@ public:
virtual VclAbstractDialog * CreateScSortWarningDlg( Window* pParent, const String& rExtendText, const String& rCurrentText, int nId );
+ virtual AbstractScCondFormatDlg* CreateScCondFormatDlg(Window* pParent, ScDocument* pDoc, ScConditionalFormat* pFormat,
+ const ScRangeList& rRange, int nId ); //add for ScDataBarSettingsDlg
+
virtual AbstractScDataBarSettingsDlg* CreateScDataBarSetttingsDlg (Window* pParent ,int nId ); //add for ScDataBarSettingsDlg
virtual AbstractScDataPilotDatabaseDlg * CreateScDataPilotDatabaseDlg (Window* pParent ,int nId ); //add for ScDataPilotDatabaseDlg