/************************************************************** * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * *************************************************************/ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_sw.hxx" #ifdef SW_DLLIMPLEMENTATION #undef SW_DLLIMPLEMENTATION #endif #include #include #include #include #include #include #include #include #include #include #ifndef _DBMGR_HXX #include #endif #include "uitool.hxx" #ifndef _CMDID_H #include #endif #ifndef _HELPID_H #include #endif #ifndef _GLOBALS_HRC #include #endif #ifndef _LABEL_HRC #include #endif //impl in envimg.cxx extern SW_DLLPUBLIC String MakeSender(); SV_IMPL_PTRARR( SwLabRecs, SwLabRec* ); void SwLabRec::SetFromItem( const SwLabItem& rItem ) { lHDist = rItem.lHDist; lVDist = rItem.lVDist; lWidth = rItem.lWidth; lHeight = rItem.lHeight; lLeft = rItem.lLeft; lUpper = rItem.lUpper; nCols = rItem.nCols; nRows = rItem.nRows; lPaperWidth = rItem.lPaperWidth; lPaperHeight = rItem.lPaperHeight; bCont = rItem.bCont; } void SwLabRec::FillItem( SwLabItem& rItem ) const { rItem.lHDist = lHDist; rItem.lVDist = lVDist; rItem.lWidth = lWidth; rItem.lHeight = lHeight; rItem.lLeft = lLeft; rItem.lUpper = lUpper; rItem.nCols = nCols; rItem.nRows = nRows; rItem.lPaperWidth = lPaperWidth; rItem.lPaperHeight = lPaperHeight; } // -------------------------------------------------------------------------- void SwLabDlg::_ReplaceGroup( const String &rMake ) { //Die alten Eintraege vernichten. pRecs->Remove( 1, pRecs->Count() - 1 ); aLabelsCfg.FillLabels(rtl::OUString(rMake), *pRecs); aLstGroup = rMake; } // -------------------------------------------------------------------------- void SwLabDlg::PageCreated(sal_uInt16 nId, SfxTabPage &rPage) { if (nId == TP_LAB_LAB) { if(m_bLabel) { ((SwLabPage*)&rPage)->SetNewDBMgr(pNewDBMgr); ((SwLabPage*)&rPage)->InitDatabaseBox(); } else ((SwLabPage*)&rPage)->SetToBusinessCard(); } else if (nId == TP_LAB_PRT) pPrtPage = (SwLabPrtPage*)&rPage; } // -------------------------------------------------------------------------- SwLabDlg::SwLabDlg(Window* pParent, const SfxItemSet& rSet, SwNewDBMgr* pDBMgr, sal_Bool bLabel) : SfxTabDialog( pParent, SW_RES(DLG_LAB), &rSet, sal_False ), pNewDBMgr(pDBMgr), pPrtPage(0), aTypeIds( 50, 10 ), aMakes ( 5, 0 ), pRecs ( new SwLabRecs() ), sBusinessCardDlg(SW_RES(ST_BUSINESSCARDDLG)), sFormat(SW_RES(ST_FIRSTPAGE_LAB)), sMedium(SW_RES(ST_FIRSTPAGE_BC)), m_bLabel(bLabel) { WaitObject aWait( pParent ); FreeResource(); GetOKButton().SetText(String(SW_RES(STR_BTN_NEW_DOC))); GetOKButton().SetHelpId(HID_LABEL_INSERT); GetOKButton().SetHelpText(aEmptyStr); // Damit generierter Hilfetext verwendet wird AddTabPage(TP_LAB_LAB, m_bLabel ? sFormat : sMedium ,SwLabPage ::Create, 0, sal_False, 0); AddTabPage(TP_VISITING_CARDS, SwVisitingCardPage::Create, 0); AddTabPage(TP_LAB_FMT, SwLabFmtPage::Create, 0); AddTabPage(TP_LAB_PRT, SwLabPrtPage::Create, 0); AddTabPage(TP_BUSINESS_DATA, SwBusinessDataPage::Create, 0 ); AddTabPage(TP_PRIVATE_DATA, SwPrivateDataPage::Create, 0); if(m_bLabel) { RemoveTabPage(TP_BUSINESS_DATA); RemoveTabPage(TP_PRIVATE_DATA); RemoveTabPage(TP_VISITING_CARDS); } else { SetText(sBusinessCardDlg); } // Benutzer-Etikette aus writer.cfg lesen SwLabItem aItem((const SwLabItem&)rSet.Get( FN_LABEL )); SwLabRec* pRec = new SwLabRec; const String aTmp( SW_RES( STR_CUSTOM ) ); pRec->aMake = pRec->aType = aTmp; pRec->SetFromItem( aItem ); sal_Bool bDouble = sal_False; for (sal_uInt16 nRecPos = 0; nRecPos < pRecs->Count(); nRecPos++) { if (pRec->aMake == pRecs->GetObject(nRecPos)->aMake && pRec->aType == pRecs->GetObject(nRecPos)->aType) { bDouble = sal_True; break; } } if (!bDouble) pRecs->C40_INSERT( SwLabRec, pRec, 0 ); else delete pRec; sal_uInt16 nLstGroup = 0; const UNO_NMSPC::Sequence& rMan = aLabelsCfg.GetManufacturers(); const rtl::OUString* pMan = rMan.getConstArray(); for(sal_Int32 nMan = 0; nMan < rMan.getLength(); nMan++) { aMakes.Insert( new String(pMan[nMan]), aMakes.Count() ); if ( pMan[nMan] == aItem.aLstMake ) nLstGroup = (sal_uInt16) nMan; } if ( aMakes.Count() ) _ReplaceGroup( *aMakes[nLstGroup] ); if (pExampleSet) pExampleSet->Put(aItem); } // -------------------------------------------------------------------------- SwLabDlg::~SwLabDlg() { delete pRecs; } // -------------------------------------------------------------------------- void SwLabDlg::GetLabItem(SwLabItem &rItem) { const SwLabItem& rActItem = (const SwLabItem&)GetExampleSet()->Get(FN_LABEL); const SwLabItem& rOldItem = (const SwLabItem&)GetInputSetImpl()->Get(FN_LABEL); if (rActItem != rOldItem) { // Wurde schon mal mit (hoffentlich) korrektem Inhalt "geputtet" rItem = rActItem; } else { rItem = rOldItem; // Im rItem stehen (vom Namen mal abgesehen) immer nur die // benutzerdefinierbaren Einstellungen. Daher richtige Werte // direkt aus dem Record besorgen: SwLabRec* pRec = GetRecord(rItem.aType, rItem.bCont); pRec->FillItem( rItem ); } } // -------------------------------------------------------------------------- SwLabRec* SwLabDlg::GetRecord(const String &rRecName, sal_Bool bCont) { SwLabRec* pRec = NULL; sal_Bool bFound = sal_False; String sCustom(SW_RES(STR_CUSTOM)); const sal_uInt16 nCount = Recs().Count(); for (sal_uInt16 i = 0; i < nCount; i++) { pRec = Recs()[i]; if (pRec->aType != sCustom && rRecName == pRec->aType && bCont == pRec->bCont) { bFound = sal_True; break; } } if (!bFound) // Benutzerdefiniert pRec = Recs()[0]; return(pRec); } // -------------------------------------------------------------------------- Printer *SwLabDlg::GetPrt() { if (pPrtPage) return (pPrtPage->GetPrt()); else return (NULL); } // -------------------------------------------------------------------------- SwLabPage::SwLabPage(Window* pParent, const SfxItemSet& rSet) : SfxTabPage(pParent, SW_RES(TP_LAB_LAB), rSet), pNewDBMgr(NULL), aItem ((const SwLabItem&) rSet.Get(FN_LABEL)), aWritingFL (this, SW_RES(FL_WRITING)), aWritingText (this, SW_RES(TXT_WRITING)), aAddrBox (this, SW_RES(BOX_ADDR )), aWritingEdit (this, SW_RES(EDT_WRITING)), aDatabaseFT (this, SW_RES(FT_DATABASE)), aDatabaseLB (this, SW_RES(LB_DATABASE)), aTableFT (this, SW_RES(FT_TABLE )), aTableLB (this, SW_RES(LB_TABLE )), aInsertBT (this, SW_RES(BTN_INSERT )), aDBFieldFT (this, SW_RES(FT_DBFIELD )), aDBFieldLB (this, SW_RES(LB_DBFIELD )), aFormatFL (this, SW_RES(FL_FORMAT )), aContButton (this, SW_RES(BTN_CONT )), aSheetButton (this, SW_RES(BTN_SHEET )), aMakeText (this, SW_RES(TXT_MAKE )), aMakeBox (this, SW_RES(BOX_MAKE )), aTypeText (this, SW_RES(TXT_TYPE )), aTypeBox (this, SW_RES(BOX_TYPE )), aHiddenSortTypeBox(this, WB_SORT|WB_HIDE), aFormatInfo (this, SW_RES(INF_FORMAT )) { WaitObject aWait( pParent ); FreeResource(); SetExchangeSupport(); // Handler installieren aAddrBox .SetClickHdl (LINK(this, SwLabPage, AddrHdl )); aDatabaseLB .SetSelectHdl(LINK(this, SwLabPage, DatabaseHdl )); aTableLB .SetSelectHdl(LINK(this, SwLabPage, DatabaseHdl )); aInsertBT .SetClickHdl (LINK(this, SwLabPage, FieldHdl )); aContButton .SetClickHdl (LINK(this, SwLabPage, PageHdl )); aSheetButton .SetClickHdl (LINK(this, SwLabPage, PageHdl )); aMakeBox .SetSelectHdl(LINK(this, SwLabPage, MakeHdl )); aTypeBox .SetSelectHdl(LINK(this, SwLabPage, TypeHdl )); InitDatabaseBox(); sal_uInt16 nLstGroup = 0; const sal_uInt16 nCount = (sal_uInt16)GetParent()->Makes().Count(); for (sal_uInt16 i = 0; i < nCount; ++i) { String &rStr = *GetParent()->Makes()[i]; aMakeBox.InsertEntry( rStr ); if ( rStr == String(aItem.aLstMake) ) nLstGroup = i; } // Reset(rSet); aMakeBox.SelectEntryPos( nLstGroup ); aMakeBox.GetSelectHdl().Call( &aMakeBox ); } // -------------------------------------------------------------------------- SwLabPage::~SwLabPage() { } /* -----------------29.09.99 09:08------------------- --------------------------------------------------*/ void lcl_ChgYPos(Window& rWin, long nDiff) { Point aTempPos(rWin.GetPosPixel()); aTempPos.Y() += nDiff; rWin.SetPosPixel(aTempPos); } void SwLabPage::SetToBusinessCard() { SetHelpId(HID_BUSINESS_FMT_PAGE); aContButton.SetHelpId(HID_BUSINESS_FMT_PAGE_CONT); aSheetButton.SetHelpId(HID_BUSINESS_FMT_PAGE_SHEET); aMakeBox.SetHelpId(HID_BUSINESS_FMT_PAGE_BRAND); aTypeBox.SetHelpId(HID_BUSINESS_FMT_PAGE_TYPE); m_bLabel = sal_False; aWritingText.Hide(); aAddrBox.Hide(); aWritingEdit.Hide(); aDatabaseFT.Hide(); aDatabaseLB.Hide(); aTableFT.Hide(); aTableLB.Hide(); aInsertBT.Hide(); aDBFieldFT.Hide(); aDBFieldLB.Hide(); aWritingFL.Hide(); //resize the form Point aFLPos(aWritingFL.GetPosPixel()); long nDiffPos = aFormatFL.GetPosPixel().Y() - aFLPos.Y(); Size aFLSz(aFormatFL.GetSizePixel()); // aFLSz.Height() += nDiffPos; aFormatFL.SetPosSizePixel(aFLPos, aFLSz); // move all controls up lcl_ChgYPos(aContButton, -nDiffPos); lcl_ChgYPos(aSheetButton, -nDiffPos); lcl_ChgYPos(aMakeText, -nDiffPos); lcl_ChgYPos(aTypeText, -nDiffPos); lcl_ChgYPos(aFormatInfo, -nDiffPos); Size aTmpSz(3, 3); aTmpSz = LogicToPixel(aTmpSz, MAP_APPFONT); lcl_ChgYPos(aMakeBox, - nDiffPos); Point aLBPos(aMakeBox.GetPosPixel()); aLBPos.Y() += aMakeBox.GetSizePixel().Height() + aTmpSz.Height(); aTypeBox.SetPosPixel(aLBPos); }; // -------------------------------------------------------------------------- IMPL_LINK( SwLabPage, AddrHdl, Button *, EMPTYARG ) { String aWriting; if ( aAddrBox.IsChecked() ) aWriting = MakeSender(); aWritingEdit.SetText( aWriting.ConvertLineEnd() ); aWritingEdit.GrabFocus(); return 0; } // -------------------------------------------------------------------------- IMPL_LINK( SwLabPage, DatabaseHdl, ListBox *, pListBox ) { sActDBName = aDatabaseLB.GetSelectEntry(); WaitObject aObj( GetParent() ); if (pListBox == &aDatabaseLB) GetNewDBMgr()->GetTableNames(&aTableLB, sActDBName); GetNewDBMgr()->GetColumnNames(&aDBFieldLB, sActDBName, aTableLB.GetSelectEntry()); return 0; } IMPL_LINK( SwLabPage, FieldHdl, Button *, EMPTYARG ) { String aStr ( '<' ); aStr += aDatabaseLB.GetSelectEntry(); aStr += '.'; aStr += aTableLB.GetSelectEntry(); aStr += '.'; aStr += aTableLB.GetEntryData(aTableLB.GetSelectEntryPos()) == 0 ? '0' : '1'; aStr += '.'; aStr += aDBFieldLB.GetSelectEntry(); aStr += '>'; aWritingEdit.ReplaceSelected(aStr); Selection aSel = aWritingEdit.GetSelection(); aWritingEdit.GrabFocus(); aWritingEdit.SetSelection(aSel); return 0; } // -------------------------------------------------------------------------- IMPL_LINK_INLINE_START( SwLabPage, PageHdl, Button *, EMPTYARG ) { aMakeBox.GetSelectHdl().Call( &aMakeBox ); return 0; } IMPL_LINK_INLINE_END( SwLabPage, PageHdl, Button *, EMPTYARG ) // -------------------------------------------------------------------------- IMPL_LINK( SwLabPage, MakeHdl, ListBox *, EMPTYARG ) { WaitObject aWait( GetParent() ); aTypeBox.Clear(); aHiddenSortTypeBox.Clear(); GetParent()->TypeIds().Remove( 0, GetParent()->TypeIds().Count() ); const String aMake = aMakeBox.GetSelectEntry(); GetParent()->ReplaceGroup( aMake ); aItem.aLstMake = aMake; const sal_Bool bCont = aContButton.IsChecked(); const sal_uInt16 nCount = GetParent()->Recs().Count(); sal_uInt16 nLstType = 0; const String sCustom(SW_RES(STR_CUSTOM)); //insert the entries into the sorted list box for ( sal_uInt16 i = 0; i < nCount; ++i ) { const String aType ( GetParent()->Recs()[i]->aType ); sal_Bool bInsert = sal_False; if ( GetParent()->Recs()[i]->aType == sCustom ) { bInsert = sal_True; aTypeBox.InsertEntry(aType ); } else if ( GetParent()->Recs()[i]->bCont == bCont ) { if ( aHiddenSortTypeBox.GetEntryPos(aType) == LISTBOX_ENTRY_NOTFOUND ) { bInsert = sal_True; aHiddenSortTypeBox.InsertEntry( aType ); } } if(bInsert) { GetParent()->TypeIds().Insert(i, GetParent()->TypeIds().Count()); if ( !nLstType && aType == String(aItem.aLstType) ) nLstType = GetParent()->TypeIds().Count(); } } for(sal_uInt16 nEntry = 0; nEntry < aHiddenSortTypeBox.GetEntryCount(); nEntry++) { aTypeBox.InsertEntry(aHiddenSortTypeBox.GetEntry(nEntry)); } if (nLstType) aTypeBox.SelectEntry(aItem.aLstType); else aTypeBox.SelectEntryPos(0); aTypeBox.GetSelectHdl().Call( &aTypeBox ); return 0; } // -------------------------------------------------------------------------- IMPL_LINK_INLINE_START( SwLabPage, TypeHdl, ListBox *, EMPTYARG ) { DisplayFormat(); aItem.aType = aTypeBox.GetSelectEntry(); return 0; } IMPL_LINK_INLINE_END( SwLabPage, TypeHdl, ListBox *, EMPTYARG ) // -------------------------------------------------------------------------- void SwLabPage::DisplayFormat() { MetricField aField(this, WinBits(0)); FieldUnit aMetric = ::GetDfltMetric(sal_False); SetMetric(aField, aMetric); aField.SetDecimalDigits(2); aField.SetMin (0); aField.SetMax (LONG_MAX); SwLabRec* pRec = GetSelectedEntryPos(); aItem.aLstType = pRec->aType; SETFLDVAL(aField, pRec->lWidth); aField.Reformat(); const String aWString = aField.GetText(); SETFLDVAL(aField, pRec->lHeight); aField.Reformat(); String aText = pRec->aType; aText.AppendAscii( RTL_CONSTASCII_STRINGPARAM( ": ")); aText += aWString; aText.AppendAscii( RTL_CONSTASCII_STRINGPARAM(" x ")); aText += aField.GetText(); aText.AppendAscii( RTL_CONSTASCII_STRINGPARAM(" (")); aText += String::CreateFromInt32( pRec->nCols ); aText.AppendAscii( RTL_CONSTASCII_STRINGPARAM(" x ")); aText += String::CreateFromInt32( pRec->nRows ); aText += ')'; aFormatInfo.SetText(aText); } // -------------------------------------------------------------------------- SwLabRec* SwLabPage::GetSelectedEntryPos() { String sSelEntry(aTypeBox.GetSelectEntry()); return GetParent()->GetRecord(sSelEntry, aContButton.IsChecked()); } // -------------------------------------------------------------------------- void SwLabPage::InitDatabaseBox() { if( GetNewDBMgr() ) { aDatabaseLB.Clear(); UNO_NMSPC::Sequence aDataNames = SwNewDBMgr::GetExistingDatabaseNames(); const rtl::OUString* pDataNames = aDataNames.getConstArray(); for (long i = 0; i < aDataNames.getLength(); i++) aDatabaseLB.InsertEntry(pDataNames[i]); String sDBName = sActDBName.GetToken( 0, DB_DELIM ); String sTableName = sActDBName.GetToken( 1, DB_DELIM ); aDatabaseLB.SelectEntry(sDBName); if( sDBName.Len() && GetNewDBMgr()->GetTableNames(&aTableLB, sDBName)) { aTableLB.SelectEntry(sTableName); GetNewDBMgr()->GetColumnNames(&aDBFieldLB, sActDBName, sTableName); } else aDBFieldLB.Clear(); } } // -------------------------------------------------------------------------- SfxTabPage* SwLabPage::Create(Window* pParent, const SfxItemSet& rSet) { return new SwLabPage(pParent, rSet); } // -------------------------------------------------------------------------- void SwLabPage::ActivatePage(const SfxItemSet& rSet) { Reset( rSet ); } // -------------------------------------------------------------------------- int SwLabPage::DeactivatePage(SfxItemSet* _pSet) { if (_pSet) FillItemSet(*_pSet); return sal_True; } // -------------------------------------------------------------------------- void SwLabPage::FillItem(SwLabItem& rItem) { rItem.bAddr = aAddrBox.IsChecked(); rItem.aWriting = aWritingEdit.GetText(); rItem.bCont = aContButton.IsChecked(); rItem.aMake = aMakeBox.GetSelectEntry(); rItem.aType = aTypeBox.GetSelectEntry(); rItem.sDBName = sActDBName; SwLabRec* pRec = GetSelectedEntryPos(); pRec->FillItem( rItem ); rItem.aLstMake = aMakeBox.GetSelectEntry(); rItem.aLstType = aTypeBox.GetSelectEntry(); } // -------------------------------------------------------------------------- sal_Bool SwLabPage::FillItemSet(SfxItemSet& rSet) { FillItem( aItem ); rSet.Put( aItem ); return sal_True; } // -------------------------------------------------------------------------- void SwLabPage::Reset(const SfxItemSet& rSet) { aItem = (const SwLabItem&) rSet.Get(FN_LABEL); String sDBName = aItem.sDBName; String aWriting( aItem.aWriting ); aAddrBox .Check ( aItem.bAddr ); aWritingEdit.SetText ( aWriting.ConvertLineEnd() ); const sal_uInt16 nCount = (sal_uInt16)GetParent()->Makes().Count(); for (sal_uInt16 i = 0; i < nCount; ++i) { String &rStr = *GetParent()->Makes()[i]; if(aMakeBox.GetEntryPos(String(rStr)) == LISTBOX_ENTRY_NOTFOUND) aMakeBox.InsertEntry( rStr ); } aMakeBox .SelectEntry( aItem.aMake ); //save the current type String sType(aItem.aType); aMakeBox.GetSelectHdl().Call( &aMakeBox ); aItem.aType = sType; //#102806# a newly added make may not be in the type ListBox already if (aTypeBox.GetEntryPos(String(aItem.aType)) == LISTBOX_ENTRY_NOTFOUND && aItem.aMake.getLength()) GetParent()->UpdateGroup( aItem.aMake ); if (aTypeBox.GetEntryPos(String(aItem.aType)) != LISTBOX_ENTRY_NOTFOUND) { aTypeBox.SelectEntry(aItem.aType); aTypeBox.GetSelectHdl().Call(&aTypeBox); } if (aDatabaseLB.GetEntryPos(sDBName) != LISTBOX_ENTRY_NOTFOUND) { aDatabaseLB.SelectEntry(sDBName); aDatabaseLB.GetSelectHdl().Call(&aDatabaseLB); } if (aItem.bCont) aContButton .Check(); else aSheetButton.Check(); } /*-- 08.07.99 14:00:02--------------------------------------------------- -----------------------------------------------------------------------*/ //----------------------------------------------------------------------------- void SwVisitingCardPage::ClearUserData() { SvLBoxEntry* pEntry = aAutoTextLB.First(); while(pEntry) { delete (String*)pEntry->GetUserData(); pEntry = aAutoTextLB.Next(pEntry); } } //----------------------------------------------------------------------------- void SwVisitingCardPage::SetUserData( sal_uInt32 nCnt, const rtl::OUString* pNames, const rtl::OUString* pValues ) { for( sal_uInt32 i = 0; i < nCnt; ++i ) { SvLBoxEntry* pEntry = aAutoTextLB.InsertEntry( pNames[ i ] ); pEntry->SetUserData( new String( pValues[ i ] )); } } //----------------------------------------------------------------------------- SwVisitingCardPage::SwVisitingCardPage(Window* pParent, const SfxItemSet& rSet) : SfxTabPage(pParent, SW_RES(TP_VISITING_CARDS), rSet), aContentFL(this, SW_RES( FL_CONTENT )), aAutoTextLB(this, SW_RES( LB_AUTO_TEXT )), aAutoTextGroupFT(this, SW_RES( FT_AUTO_TEXT_GROUP )), aAutoTextGroupLB(this, SW_RES( LB_AUTO_TEXT_GROUP )), aExampleWIN(this, SW_RES( WIN_EXAMPLE )), sVisCardGroup(SW_RES(ST_VISCARD_GROUP)), pExampleFrame(0) { FreeResource(); aAutoTextLB.SetStyle( aAutoTextLB.GetStyle() | WB_HSCROLL ); aAutoTextLB.SetSpaceBetweenEntries(0); aAutoTextLB.SetSelectionMode( SINGLE_SELECTION ); aAutoTextLB.SetHelpId(HID_BUSINESS_CARD_CONTENT); SetExchangeSupport(); aAutoTextLB.SetSelectHdl(LINK(this, SwVisitingCardPage, AutoTextSelectHdl)); aAutoTextGroupLB.SetSelectHdl(LINK(this, SwVisitingCardPage, AutoTextSelectHdl)); aExampleWIN.Hide(); aAutoTextLB.Show(); aAutoTextGroupFT.Show(); aAutoTextGroupLB.Show(); InitFrameControl(); } /*-- 08.07.99 14:00:03--------------------------------------------------- -----------------------------------------------------------------------*/ SwVisitingCardPage::~SwVisitingCardPage() { for(sal_uInt16 i = 0; i < aAutoTextGroupLB.GetEntryCount(); i++) delete (String*)aAutoTextGroupLB.GetEntryData( i ); _xAutoText = 0; ClearUserData(); delete pExampleFrame; } /*-- 08.07.99 14:00:03--------------------------------------------------- -----------------------------------------------------------------------*/ SfxTabPage* SwVisitingCardPage::Create(Window* pParent, const SfxItemSet& rSet) { return new SwVisitingCardPage(pParent, rSet); } /*-- 08.07.99 14:00:03--------------------------------------------------- -----------------------------------------------------------------------*/ void SwVisitingCardPage::ActivatePage(const SfxItemSet& rSet) { Reset( rSet ); UpdateFields(); } /*-- 08.07.99 14:00:04--------------------------------------------------- -----------------------------------------------------------------------*/ int SwVisitingCardPage::DeactivatePage(SfxItemSet* _pSet) { if (_pSet) FillItemSet(*_pSet); return LEAVE_PAGE; } /*-- 08.07.99 14:00:04--------------------------------------------------- -----------------------------------------------------------------------*/ sal_Bool SwVisitingCardPage::FillItemSet(SfxItemSet& rSet) { String* pGroup = (String*)aAutoTextGroupLB.GetEntryData( aAutoTextGroupLB.GetSelectEntryPos()); DBG_ASSERT(pGroup, "no group selected?"); if(pGroup) aLabItem.sGlossaryGroup = *pGroup; SvLBoxEntry* pSelEntry = aAutoTextLB.FirstSelected(); if(pSelEntry) aLabItem.sGlossaryBlockName = *(String*)pSelEntry->GetUserData(); rSet.Put(aLabItem); return sal_True; } /*-- 08.07.99 14:00:05--------------------------------------------------- -----------------------------------------------------------------------*/ void lcl_SelectBlock(SvTreeListBox& rAutoTextLB, const String& rBlockName) { SvLBoxEntry* pEntry = rAutoTextLB.First(); while(pEntry) { if(*(String*)pEntry->GetUserData() == rBlockName) { rAutoTextLB.Select(pEntry); rAutoTextLB.MakeVisible(pEntry); break; } pEntry = rAutoTextLB.Next(pEntry); } } //----------------------------------------------------------------------------- sal_Bool lcl_FindBlock(SvTreeListBox& rAutoTextLB, const String& rBlockName) { SvLBoxEntry* pEntry = rAutoTextLB.First(); while(pEntry) { if(*(String*)pEntry->GetUserData() == rBlockName) { rAutoTextLB.Select(pEntry); return sal_True; } pEntry = rAutoTextLB.Next(pEntry); } return sal_False; } //----------------------------------------------------------------------------- void SwVisitingCardPage::Reset(const SfxItemSet& rSet) { aLabItem = (const SwLabItem&) rSet.Get(FN_LABEL); sal_Bool bFound = sal_False; sal_uInt16 i; for(i = 0; i < aAutoTextGroupLB.GetEntryCount() && !bFound; i++) if( String(aLabItem.sGlossaryGroup) == *(String*)aAutoTextGroupLB.GetEntryData( i )) { bFound = sal_True; break; } if(!bFound) { // initially search for a group starting with "crd" which is the name of the // business card AutoTexts for(i = 0; i < aAutoTextGroupLB.GetEntryCount() && !bFound; i++) if(0 == (*(String*)aAutoTextGroupLB.GetEntryData( i )).SearchAscii( "crd") ) { bFound = sal_True; break; } } if(bFound) { if(aAutoTextGroupLB.GetSelectEntryPos() != i) { aAutoTextGroupLB.SelectEntryPos(i); AutoTextSelectHdl(&aAutoTextGroupLB); } if(lcl_FindBlock(aAutoTextLB, aLabItem.sGlossaryBlockName)) { SvLBoxEntry* pSelEntry = aAutoTextLB.FirstSelected(); if( pSelEntry && *(String*)pSelEntry->GetUserData() != String(aLabItem.sGlossaryBlockName)) { lcl_SelectBlock(aAutoTextLB, aLabItem.sGlossaryBlockName); AutoTextSelectHdl(&aAutoTextLB); } } } } /* -----------------29.09.99 08:55------------------- --------------------------------------------------*/ SwPrivateDataPage::SwPrivateDataPage(Window* pParent, const SfxItemSet& rSet) : SfxTabPage(pParent, SW_RES(TP_PRIVATE_DATA), rSet), aDataFL (this, SW_RES( FL_DATA )), aNameFT (this, SW_RES( FT_NAME )), aFirstNameED (this, SW_RES( ED_FIRSTNAME )), aNameED (this, SW_RES( ED_NAME )), aShortCutED (this, SW_RES( ED_SHORTCUT )), aName2FT (this, SW_RES( FT_NAME_2 )), aFirstName2ED (this, SW_RES( ED_FIRSTNAME_2)), aName2ED (this, SW_RES( ED_NAME_2 )), aShortCut2ED (this, SW_RES( ED_SHORTCUT_2 )), aStreetFT (this, SW_RES( FT_STREET )), aStreetED (this, SW_RES( ED_STREET )), aZipCityFT (this, SW_RES( FT_ZIPCITY )), aZipED (this, SW_RES( ED_ZIP )), aCityED (this, SW_RES( ED_CITY )), aCountryStateFT (this, SW_RES( FT_COUNTRYSTATE )), aCountryED (this, SW_RES( ED_COUNTRY )), aStateED (this, SW_RES( ED_STATE )), aTitleProfessionFT (this, SW_RES( FT_TITLEPROF )), aTitleED (this, SW_RES( ED_TITLE )), aProfessionED (this, SW_RES( ED_PROFESSION )), aPhoneFT (this, SW_RES( FT_PHONE_MOBILE )), aPhoneED (this, SW_RES( ED_PHONE )), aMobilePhoneED (this, SW_RES( ED_MOBILE )), aFaxFT (this, SW_RES( FT_FAX )), aFaxED (this, SW_RES( ED_FAX )), aWWWMailFT (this, SW_RES( FT_WWWMAIL )), aHomePageED (this, SW_RES( ED_WWW )), aMailED (this, SW_RES( ED_MAIL )) { FreeResource(); SetExchangeSupport(); } /*-- 29.09.99 08:55:57--------------------------------------------------- -----------------------------------------------------------------------*/ SwPrivateDataPage::~SwPrivateDataPage() { } /*-- 29.09.99 08:55:57--------------------------------------------------- -----------------------------------------------------------------------*/ SfxTabPage* SwPrivateDataPage::Create(Window* pParent, const SfxItemSet& rSet) { return new SwPrivateDataPage(pParent, rSet); } /*-- 29.09.99 08:55:57--------------------------------------------------- -----------------------------------------------------------------------*/ void SwPrivateDataPage::ActivatePage(const SfxItemSet& rSet) { Reset(rSet); } /*-- 29.09.99 08:55:58--------------------------------------------------- -----------------------------------------------------------------------*/ int SwPrivateDataPage::DeactivatePage(SfxItemSet* _pSet) { if (_pSet) FillItemSet(*_pSet); return LEAVE_PAGE; } /*-- 29.09.99 08:55:58--------------------------------------------------- -----------------------------------------------------------------------*/ sal_Bool SwPrivateDataPage::FillItemSet(SfxItemSet& rSet) { SwLabItem aItem = (const SwLabItem&) GetTabDialog()->GetExampleSet()->Get(FN_LABEL); aItem.aPrivFirstName = aFirstNameED .GetText(); aItem.aPrivName = aNameED .GetText( ); aItem.aPrivShortCut = aShortCutED .GetText( ); aItem.aPrivFirstName2 = aFirstName2ED .GetText(); aItem.aPrivName2 = aName2ED .GetText( ); aItem.aPrivShortCut2 = aShortCut2ED .GetText( ); aItem.aPrivStreet = aStreetED .GetText( ); aItem.aPrivZip = aZipED .GetText( ); aItem.aPrivCity = aCityED .GetText( ); aItem.aPrivCountry = aCountryED .GetText( ); aItem.aPrivState = aStateED .GetText( ); aItem.aPrivTitle = aTitleED .GetText( ); aItem.aPrivProfession= aProfessionED.GetText( ); aItem.aPrivPhone = aPhoneED .GetText( ); aItem.aPrivMobile = aMobilePhoneED.GetText( ); aItem.aPrivFax = aFaxED .GetText( ); aItem.aPrivWWW = aHomePageED .GetText( ); aItem.aPrivMail = aMailED .GetText( ); rSet.Put(aItem); return sal_True; } /*-- 29.09.99 08:55:59--------------------------------------------------- -----------------------------------------------------------------------*/ void SwPrivateDataPage::Reset(const SfxItemSet& rSet) { const SwLabItem& aItem = (const SwLabItem&) rSet.Get(FN_LABEL); aFirstNameED.SetText(aItem.aPrivFirstName); aNameED .SetText(aItem.aPrivName); aShortCutED .SetText(aItem.aPrivShortCut); aFirstName2ED.SetText(aItem.aPrivFirstName2); aName2ED .SetText(aItem.aPrivName2); aShortCut2ED .SetText(aItem.aPrivShortCut2); aStreetED .SetText(aItem.aPrivStreet); aZipED .SetText(aItem.aPrivZip); aCityED .SetText(aItem.aPrivCity); aCountryED .SetText(aItem.aPrivCountry); aStateED .SetText(aItem.aPrivState); aTitleED .SetText(aItem.aPrivTitle); aProfessionED.SetText(aItem.aPrivProfession); aPhoneED .SetText(aItem.aPrivPhone); aMobilePhoneED.SetText(aItem.aPrivMobile); aFaxED .SetText(aItem.aPrivFax); aHomePageED .SetText(aItem.aPrivWWW); aMailED .SetText(aItem.aPrivMail); } /* -----------------29.09.99 08:56------------------- --------------------------------------------------*/ SwBusinessDataPage::SwBusinessDataPage(Window* pParent, const SfxItemSet& rSet) : SfxTabPage(pParent, SW_RES(TP_BUSINESS_DATA), rSet), aDataFL (this, SW_RES( FL_DATA )), aCompanyFT (this, SW_RES( FT_COMP )), aCompanyED (this, SW_RES( ED_COMP )), aCompanyExtFT (this, SW_RES( FT_COMP_EXT )), aCompanyExtED (this, SW_RES( ED_COMP_EXT )), aSloganFT (this, SW_RES( FT_SLOGAN )), aSloganED (this, SW_RES( ED_SLOGAN )), aStreetFT (this, SW_RES( FT_STREET )), aStreetED (this, SW_RES( ED_STREET )), aZipCityFT (this, SW_RES( FT_ZIPCITY )), aZipED (this, SW_RES( ED_ZIP )), aCityED (this, SW_RES( ED_CITY )), aCountryStateFT (this, SW_RES( FT_COUNTRYSTATE )), aCountryED (this, SW_RES( ED_COUNTRY )), aStateED (this, SW_RES( ED_STATE )), aPositionFT (this, SW_RES( FT_POSITION )), aPositionED (this, SW_RES( ED_POSITION )), aPhoneFT (this, SW_RES( FT_PHONE_MOBILE )), aPhoneED (this, SW_RES( ED_PHONE )), aMobilePhoneED (this, SW_RES( ED_MOBILE )), aFaxFT (this, SW_RES( FT_FAX )), aFaxED (this, SW_RES( ED_FAX )), aWWWMailFT (this, SW_RES( FT_WWWMAIL )), aHomePageED (this, SW_RES( ED_WWW )), aMailED (this, SW_RES( ED_MAIL )) { FreeResource(); SetExchangeSupport(); } /*-- 29.09.99 08:56:06--------------------------------------------------- -----------------------------------------------------------------------*/ SwBusinessDataPage::~SwBusinessDataPage() { } /*-- 29.09.99 08:56:06--------------------------------------------------- -----------------------------------------------------------------------*/ SfxTabPage* SwBusinessDataPage::Create(Window* pParent, const SfxItemSet& rSet) { return new SwBusinessDataPage(pParent, rSet); } /*-- 29.09.99 08:56:06--------------------------------------------------- -----------------------------------------------------------------------*/ void SwBusinessDataPage::ActivatePage(const SfxItemSet& rSet) { Reset(rSet); } /*-- 29.09.99 08:56:06--------------------------------------------------- -----------------------------------------------------------------------*/ int SwBusinessDataPage::DeactivatePage(SfxItemSet* _pSet) { if (_pSet) FillItemSet(*_pSet); return LEAVE_PAGE; } /*-- 29.09.99 08:56:06--------------------------------------------------- -----------------------------------------------------------------------*/ sal_Bool SwBusinessDataPage::FillItemSet(SfxItemSet& rSet) { SwLabItem aItem = (const SwLabItem&) GetTabDialog()->GetExampleSet()->Get(FN_LABEL); aItem.aCompCompany = aCompanyED .GetText(); aItem.aCompCompanyExt= aCompanyExtED .GetText(); aItem.aCompSlogan = aSloganED .GetText(); aItem.aCompStreet = aStreetED .GetText(); aItem.aCompZip = aZipED .GetText(); aItem.aCompCity = aCityED .GetText(); aItem.aCompCountry = aCountryED .GetText(); aItem.aCompState = aStateED .GetText(); aItem.aCompPosition = aPositionED .GetText(); aItem.aCompPhone = aPhoneED .GetText(); aItem.aCompMobile = aMobilePhoneED .GetText(); aItem.aCompFax = aFaxED .GetText(); aItem.aCompWWW = aHomePageED .GetText(); aItem.aCompMail = aMailED .GetText(); rSet.Put(aItem); return sal_True; } /*-- 29.09.99 08:56:07--------------------------------------------------- -----------------------------------------------------------------------*/ void SwBusinessDataPage::Reset(const SfxItemSet& rSet) { const SwLabItem& aItem = (const SwLabItem&) rSet.Get(FN_LABEL); aCompanyED .SetText(aItem.aCompCompany); aCompanyExtED .SetText(aItem.aCompCompanyExt); aSloganED .SetText(aItem.aCompSlogan); aStreetED .SetText(aItem.aCompStreet); aZipED .SetText(aItem.aCompZip); aCityED .SetText(aItem.aCompCity); aCountryED .SetText(aItem.aCompCountry); aStateED .SetText(aItem.aCompState); aPositionED .SetText(aItem.aCompPosition); aPhoneED .SetText(aItem.aCompPhone); aMobilePhoneED .SetText(aItem.aCompMobile); aFaxED .SetText(aItem.aCompFax); aHomePageED .SetText(aItem.aCompWWW); aMailED .SetText(aItem.aCompMail); }