#70954# new number formatter dialog option SourceFormat
This commit is contained in:
parent
8b8bc1f574
commit
f1a2da716a
3 changed files with 139 additions and 30 deletions
|
@ -2,9 +2,9 @@
|
|||
*
|
||||
* $RCSfile: numfmt.cxx,v $
|
||||
*
|
||||
* $Revision: 1.11 $
|
||||
* $Revision: 1.12 $
|
||||
*
|
||||
* last change: $Author: dr $ $Date: 2001-05-16 11:52:02 $
|
||||
* last change: $Author: er $ $Date: 2001-05-29 12:32:24 $
|
||||
*
|
||||
* The Contents of this file are made available subject to the terms of
|
||||
* either of the following licenses
|
||||
|
@ -107,6 +107,10 @@ static USHORT pRanges[] =
|
|||
SID_ATTR_NUMBERFORMAT_INFO,
|
||||
SID_ATTR_NUMBERFORMAT_NOLANGUAGE,
|
||||
SID_ATTR_NUMBERFORMAT_NOLANGUAGE,
|
||||
SID_ATTR_NUMBERFORMAT_ONE_AREA,
|
||||
SID_ATTR_NUMBERFORMAT_ONE_AREA,
|
||||
SID_ATTR_NUMBERFORMAT_SOURCE,
|
||||
SID_ATTR_NUMBERFORMAT_SOURCE,
|
||||
0
|
||||
};
|
||||
|
||||
|
@ -303,6 +307,7 @@ SvxNumberFormatTabPage::SvxNumberFormatTabPage( Window* pParent,
|
|||
aEdDecimals ( this, ResId( ED_DECIMALS ) ),
|
||||
aFtLanguage ( this, ResId( FT_LANGUAGE ) ),
|
||||
aLbLanguage ( this, ResId( LB_LANGUAGE ), FALSE ),
|
||||
aCbSourceFormat ( this, ResId( CB_SOURCEFORMAT ) ),
|
||||
aFlOptions ( this, ResId( FL_OPTIONS ) ),
|
||||
aFtComment ( this, ResId( FT_COMMENT ) ),
|
||||
aStrEurope ( ResId( STR_EUROPE) ),
|
||||
|
@ -380,6 +385,10 @@ void SvxNumberFormatTabPage::Init_Impl()
|
|||
//holen
|
||||
aEdComment.Hide();
|
||||
|
||||
aCbSourceFormat.Check( FALSE );
|
||||
aCbSourceFormat.Disable();
|
||||
aCbSourceFormat.Hide();
|
||||
|
||||
// Handler verbinden
|
||||
Link aLink = LINK( this, SvxNumberFormatTabPage, SelFormatHdl_Impl );
|
||||
|
||||
|
@ -387,6 +396,7 @@ void SvxNumberFormatTabPage::Init_Impl()
|
|||
aLbFormat .SetSelectHdl( aLink );
|
||||
aLbLanguage .SetSelectHdl( aLink );
|
||||
aLbCurrency .SetSelectHdl( aLink );
|
||||
aCbSourceFormat .SetClickHdl( aLink );
|
||||
|
||||
aLink = LINK( this, SvxNumberFormatTabPage, OptHdl_Impl );
|
||||
|
||||
|
@ -482,8 +492,6 @@ void SvxNumberFormatTabPage::Reset( const SfxItemSet& rSet )
|
|||
{
|
||||
const SfxUInt32Item* pValFmtAttr = NULL;
|
||||
const SfxPoolItem* pItem = NULL;
|
||||
const SfxBoolItem* pBoolItem = NULL;
|
||||
const SfxBoolItem* pBoolLangItem = NULL;
|
||||
|
||||
USHORT nCatLbSelPos = 0;
|
||||
USHORT nFmtLbSelPos = 0;
|
||||
|
@ -501,7 +509,7 @@ void SvxNumberFormatTabPage::Reset( const SfxItemSet& rSet )
|
|||
|
||||
if(eState==SFX_ITEM_SET)
|
||||
{
|
||||
pBoolLangItem = (const SfxBoolItem*)
|
||||
const SfxBoolItem* pBoolLangItem = (const SfxBoolItem*)
|
||||
GetItem( rSet, SID_ATTR_NUMBERFORMAT_NOLANGUAGE);
|
||||
|
||||
if(pBoolLangItem!=NULL && pBoolLangItem->GetValue())
|
||||
|
@ -539,7 +547,7 @@ void SvxNumberFormatTabPage::Reset( const SfxItemSet& rSet )
|
|||
|
||||
if(eState==SFX_ITEM_SET)
|
||||
{
|
||||
pBoolItem = (const SfxBoolItem*)
|
||||
const SfxBoolItem* pBoolItem = (const SfxBoolItem*)
|
||||
GetItem( rSet, SID_ATTR_NUMBERFORMAT_ONE_AREA);
|
||||
|
||||
if(pBoolItem!=NULL)
|
||||
|
@ -549,6 +557,27 @@ void SvxNumberFormatTabPage::Reset( const SfxItemSet& rSet )
|
|||
}
|
||||
//bOneAreaFlag=TRUE; //@@ Debug-Test
|
||||
|
||||
eState = rSet.GetItemState( GetWhich( SID_ATTR_NUMBERFORMAT_SOURCE ) );
|
||||
|
||||
if ( eState == SFX_ITEM_SET )
|
||||
{
|
||||
const SfxBoolItem* pBoolItem = (const SfxBoolItem*)
|
||||
GetItem( rSet, SID_ATTR_NUMBERFORMAT_SOURCE );
|
||||
if ( pBoolItem )
|
||||
aCbSourceFormat.Check( pBoolItem->GetValue() );
|
||||
else
|
||||
aCbSourceFormat.Check( FALSE );
|
||||
aCbSourceFormat.Enable();
|
||||
aCbSourceFormat.Show();
|
||||
}
|
||||
else
|
||||
{
|
||||
BOOL bInit = FALSE; // set to TRUE for debug test
|
||||
aCbSourceFormat.Check( bInit );
|
||||
aCbSourceFormat.Enable( bInit );
|
||||
aCbSourceFormat.Show( bInit );
|
||||
}
|
||||
|
||||
// pNumItem muss von aussen gesetzt worden sein!
|
||||
DBG_ASSERT( pNumItem, "No NumberInfo, no NumberFormatter, good bye.CRASH. :-(" );
|
||||
|
||||
|
@ -632,7 +661,6 @@ void SvxNumberFormatTabPage::Reset( const SfxItemSet& rSet )
|
|||
if ( pValFmtAttr )
|
||||
{
|
||||
EditHdl_Impl( &aEdFormat ); // UpdateOptions_Impl() als Seiteneffekt
|
||||
|
||||
}
|
||||
else // DONT_KNOW
|
||||
{
|
||||
|
@ -640,6 +668,12 @@ void SvxNumberFormatTabPage::Reset( const SfxItemSet& rSet )
|
|||
Obstructing();
|
||||
}
|
||||
|
||||
if ( aCbSourceFormat.IsChecked() )
|
||||
{
|
||||
// everything disabled except SourceFormat checkbox
|
||||
EnableBySourceFormat_Impl();
|
||||
}
|
||||
|
||||
DeleteEntryList_Impl(aFmtEntryList);
|
||||
}
|
||||
|
||||
|
@ -690,6 +724,40 @@ void SvxNumberFormatTabPage::Obstructing()
|
|||
aEdFormat .GrabFocus();
|
||||
}
|
||||
|
||||
|
||||
/*************************************************************************
|
||||
#* Enable/Disable dialog parts depending on the value of the SourceFormat
|
||||
#* checkbox.
|
||||
#************************************************************************/
|
||||
void SvxNumberFormatTabPage::EnableBySourceFormat_Impl()
|
||||
{
|
||||
BOOL bEnable = !aCbSourceFormat.IsChecked();
|
||||
aFtCategory .Enable( bEnable );
|
||||
aLbCategory .Enable( bEnable );
|
||||
aFtFormat .Enable( bEnable );
|
||||
aLbCurrency .Enable( bEnable );
|
||||
aLbFormat .Enable( bEnable );
|
||||
aFtLanguage .Enable( bEnable );
|
||||
aLbLanguage .Enable( bEnable );
|
||||
aFtDecimals .Enable( bEnable );
|
||||
aEdDecimals .Enable( bEnable );
|
||||
aFtLeadZeroes .Enable( bEnable );
|
||||
aEdLeadZeroes .Enable( bEnable );
|
||||
aBtnNegRed .Enable( bEnable );
|
||||
aBtnThousand .Enable( bEnable );
|
||||
aFlOptions .Enable( bEnable );
|
||||
aFtEdFormat .Enable( bEnable );
|
||||
aEdFormat .Enable( bEnable );
|
||||
aIbAdd .Enable( bEnable );
|
||||
aIbRemove .Enable( bEnable );
|
||||
aIbInfo .Enable( bEnable );
|
||||
aFtComment .Enable( bEnable );
|
||||
aEdComment .Enable( bEnable );
|
||||
if ( !bEnable )
|
||||
aCbSourceFormat.GetFocus();
|
||||
}
|
||||
|
||||
|
||||
/*************************************************************************
|
||||
#* Methode: HideLanguage Datum:14.05.98
|
||||
#*------------------------------------------------------------------------
|
||||
|
@ -741,16 +809,15 @@ void SvxNumberFormatTabPage::HideLanguage(BOOL nFlag)
|
|||
|
||||
BOOL SvxNumberFormatTabPage::FillItemSet( SfxItemSet& rCoreAttrs )
|
||||
{
|
||||
BOOL bDataChanged = aFtLanguage.IsEnabled();
|
||||
BOOL bDeleted = FALSE;
|
||||
BOOL bDataChanged = aFtLanguage.IsEnabled() || aCbSourceFormat.IsEnabled();
|
||||
if ( bDataChanged )
|
||||
{
|
||||
const SfxItemSet& rMyItemSet = GetItemSet();
|
||||
USHORT nWhich = GetWhich( SID_ATTR_NUMBERFORMAT_VALUE );
|
||||
SfxItemState eItemState = GetItemSet().GetItemState( nWhich, FALSE );
|
||||
SfxItemState eItemState = rMyItemSet.GetItemState( nWhich, FALSE );
|
||||
|
||||
// OK angewaehlt - wurde eingegebenes Zahlenformat schon
|
||||
// uebernommen? Wenn nein Add simulieren. Bei Syntaxfehler
|
||||
// Eingabe ignorieren und Put unterbinden
|
||||
// OK chosen - Is format code input entered already taken over?
|
||||
// If not, simulate Add. Upon syntax error ignore input and prevent Put.
|
||||
String aFormat = aEdFormat.GetText();
|
||||
ULONG nCurKey = pNumFmtShell->GetCurNumFmtKey();
|
||||
|
||||
|
@ -770,25 +837,26 @@ BOOL SvxNumberFormatTabPage::FillItemSet( SfxItemSet& rCoreAttrs )
|
|||
|
||||
if(bOneAreaFlag && (nFixedCategory!=nCatLbSelPos))
|
||||
{
|
||||
if(bDataChanged) DeleteEntryList_Impl(aEntryList);
|
||||
bDeleted = pNumFmtShell->RemoveFormat( aFormat,
|
||||
if(bDataChanged)
|
||||
DeleteEntryList_Impl(aEntryList);
|
||||
BOOL bDeleted = pNumFmtShell->RemoveFormat( aFormat,
|
||||
nCatLbSelPos,
|
||||
nFmtLbSelPos,
|
||||
a2EntryList);
|
||||
if(bDeleted) DeleteEntryList_Impl(a2EntryList);
|
||||
if(bDeleted)
|
||||
DeleteEntryList_Impl(a2EntryList);
|
||||
bDataChanged=FALSE;
|
||||
}
|
||||
nCurKey = pNumFmtShell->GetCurNumFmtKey();
|
||||
}
|
||||
else if(nCurKey == NUMKEY_UNDEFINED) // Wohl was falsch gelaufen!
|
||||
{ // z.B. im Writer #70281#
|
||||
else if(nCurKey == NUMKEY_UNDEFINED)
|
||||
{ // something went wrong, e.g. in Writer #70281#
|
||||
pNumFmtShell->FindEntry(aFormat, &nCurKey);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------
|
||||
// Ausgewaehltes Format:
|
||||
// ----------------------
|
||||
|
||||
// Chosen format:
|
||||
// --------------
|
||||
if ( bDataChanged )
|
||||
{
|
||||
bDataChanged = ( nInitFormat != nCurKey );
|
||||
|
@ -804,8 +872,8 @@ BOOL SvxNumberFormatTabPage::FillItemSet( SfxItemSet& rCoreAttrs )
|
|||
}
|
||||
|
||||
// --------------------------------------------------------------
|
||||
// Liste veraenderter benutzerdefinierter Formate:
|
||||
// -----------------------------------------------
|
||||
// List of changed user defined formats:
|
||||
// -------------------------------------
|
||||
const ULONG nDelCount = pNumFmtShell->GetUpdateDataCount();
|
||||
|
||||
if ( nDelCount > 0 )
|
||||
|
@ -832,10 +900,24 @@ BOOL SvxNumberFormatTabPage::FillItemSet( SfxItemSet& rCoreAttrs )
|
|||
delete [] pDelArr;
|
||||
}
|
||||
|
||||
// FillItemSet wird nur bei OK gerufen, d.h. an dieser
|
||||
// Stelle kann der NumberFormat-Shell mitgeteilt werden,
|
||||
// dass alle neuen benutzerdefinierten Formate gueltig sind:
|
||||
//---------------------------------------------------------------
|
||||
// Whether source format is to be taken or not:
|
||||
// --------------------------------------------
|
||||
if ( aCbSourceFormat.IsEnabled() )
|
||||
{
|
||||
USHORT nWhich = GetWhich( SID_ATTR_NUMBERFORMAT_SOURCE );
|
||||
SfxItemState eItemState = rMyItemSet.GetItemState( nWhich, FALSE );
|
||||
const SfxBoolItem* pBoolItem = (const SfxBoolItem*)
|
||||
GetItem( rMyItemSet, SID_ATTR_NUMBERFORMAT_SOURCE );
|
||||
BOOL bOld = (pBoolItem ? pBoolItem->GetValue() : FALSE);
|
||||
rCoreAttrs.Put( SfxBoolItem( nWhich, aCbSourceFormat.IsChecked() ) );
|
||||
if ( !bDataChanged )
|
||||
bDataChanged = (bOld != aCbSourceFormat.IsChecked() ||
|
||||
eItemState != SFX_ITEM_SET);
|
||||
}
|
||||
|
||||
// FillItemSet is only called on OK, here we can notify the
|
||||
// NumberFormatShell that all new user defined formats are valid.
|
||||
pNumFmtShell->ValidateNewEntries();
|
||||
}
|
||||
|
||||
|
@ -1316,6 +1398,24 @@ IMPL_LINK( SvxNumberFormatTabPage, DoubleClickHdl_Impl, SvxFontListBox*, pLb )
|
|||
|
||||
IMPL_LINK( SvxNumberFormatTabPage, SelFormatHdl_Impl, void *, pLb )
|
||||
{
|
||||
if ( (CheckBox*)pLb == &aCbSourceFormat )
|
||||
{
|
||||
EnableBySourceFormat_Impl(); // enable/disable everything else
|
||||
if ( aCbSourceFormat.IsChecked() )
|
||||
return 0; // just disabled everything else
|
||||
|
||||
// Reinit options enable/disable for current selection.
|
||||
|
||||
// Current category may be UserDefined with no format entries defined.
|
||||
// And yes, aLbFormat is a SvxFontListBox with ULONG list positions,
|
||||
// implementation returns a LIST_APPEND if empty, comparison with
|
||||
// USHORT LISTBOX_ENTRY_NOTFOUND wouldn't match.
|
||||
if ( aLbFormat.GetSelectEntryPos() == LIST_APPEND )
|
||||
pLb = &aLbCategory; // continue with the current category selected
|
||||
else
|
||||
pLb = &aLbFormat; // continue with the current format selected
|
||||
}
|
||||
|
||||
short nTmpCatPos;
|
||||
|
||||
if(bOneAreaFlag)
|
||||
|
|
|
@ -2,9 +2,9 @@
|
|||
*
|
||||
* $RCSfile: numfmt.hrc,v $
|
||||
*
|
||||
* $Revision: 1.2 $
|
||||
* $Revision: 1.3 $
|
||||
*
|
||||
* last change: $Author: dr $ $Date: 2001-05-15 11:12:28 $
|
||||
* last change: $Author: er $ $Date: 2001-05-29 12:32:24 $
|
||||
*
|
||||
* The Contents of this file are made available subject to the terms of
|
||||
* either of the following licenses
|
||||
|
@ -96,6 +96,7 @@
|
|||
#define IL_ICON 32
|
||||
#define LB_CURRENCY 33
|
||||
#define STR_EUROPE 34
|
||||
#define CB_SOURCEFORMAT 35
|
||||
|
||||
#define TBX_ADDREMOVE 1
|
||||
#define IID_ADD 1
|
||||
|
|
|
@ -2,9 +2,9 @@
|
|||
*
|
||||
* $RCSfile: numfmt.src,v $
|
||||
*
|
||||
* $Revision: 1.17 $
|
||||
* $Revision: 1.18 $
|
||||
*
|
||||
* last change: $Author: kz $ $Date: 2001-05-18 11:52:05 $
|
||||
* last change: $Author: er $ $Date: 2001-05-29 12:32:24 $
|
||||
*
|
||||
* The Contents of this file are made available subject to the terms of
|
||||
* either of the following licenses
|
||||
|
@ -853,6 +853,14 @@ TabPage RID_SVXPAGE_NUMBERFORMAT
|
|||
Size = MAP_APPFONT ( 76 , 71 ) ;
|
||||
DropDown = TRUE ;
|
||||
};
|
||||
CheckBox CB_SOURCEFORMAT
|
||||
{
|
||||
Pos = MAP_APPFONT ( 178 , 42 ) ;
|
||||
Size = MAP_APPFONT ( 76 , 10 ) ;
|
||||
Text = "Q~uellenformat" ;
|
||||
Text [ ENGLISH ] = "So~urce format" ;
|
||||
Text [ english_us ] = "So~urce format" ;
|
||||
};
|
||||
Window WND_NUMBER_PREVIEW
|
||||
{
|
||||
Border = TRUE ;
|
||||
|
|
Loading…
Reference in a new issue