summaryrefslogtreecommitdiff
path: root/sw/source/core/edit/edfmt.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sw/source/core/edit/edfmt.cxx')
-rw-r--r--sw/source/core/edit/edfmt.cxx200
1 files changed, 200 insertions, 0 deletions
diff --git a/sw/source/core/edit/edfmt.cxx b/sw/source/core/edit/edfmt.cxx
new file mode 100644
index 000000000000..e597cac10d02
--- /dev/null
+++ b/sw/source/core/edit/edfmt.cxx
@@ -0,0 +1,200 @@
+/* -*- 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.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_sw.hxx"
+
+
+
+#include "doc.hxx"
+#include "editsh.hxx"
+#include "swtable.hxx"
+#include "pam.hxx"
+#include <docary.hxx>
+#include <fchrfmt.hxx>
+#include <frmfmt.hxx>
+#include <charfmt.hxx>
+#include "ndtxt.hxx" // for GetXXXFmt
+#include "hints.hxx"
+
+/*************************************
+ * Formate
+ *************************************/
+// Char
+// OPT: inline
+
+
+sal_uInt16 SwEditShell::GetCharFmtCount() const
+{
+ return GetDoc()->GetCharFmts()->Count();
+}
+
+
+SwCharFmt& SwEditShell::GetCharFmt(sal_uInt16 nFmt) const
+{
+ return *((*(GetDoc()->GetCharFmts()))[nFmt]);
+}
+
+
+SwCharFmt* SwEditShell::GetCurCharFmt() const
+{
+ SwCharFmt *pFmt = 0;
+ SfxItemSet aSet( GetDoc()->GetAttrPool(), RES_TXTATR_CHARFMT,
+ RES_TXTATR_CHARFMT );
+ const SfxPoolItem* pItem;
+ if( GetCurAttr( aSet ) && SFX_ITEM_SET ==
+ aSet.GetItemState( RES_TXTATR_CHARFMT, sal_False, &pItem ) )
+ pFmt = ((SwFmtCharFmt*)pItem)->GetCharFmt();
+
+ return pFmt;
+}
+
+
+void SwEditShell::FillByEx(SwCharFmt* pCharFmt, sal_Bool bReset)
+{
+ if ( bReset )
+ {
+ // --> OD 2007-01-25 #i73790# - method renamed
+ pCharFmt->ResetAllFmtAttr();
+ // <--
+ }
+
+ SwPaM* pPam = GetCrsr();
+ const SwCntntNode* pCNd = pPam->GetCntntNode();
+ if( pCNd->IsTxtNode() )
+ {
+ xub_StrLen nStt, nEnd;
+ if( pPam->HasMark() )
+ {
+ const SwPosition* pPtPos = pPam->GetPoint();
+ const SwPosition* pMkPos = pPam->GetMark();
+ if( pPtPos->nNode == pMkPos->nNode ) // in the same node?
+ {
+ nStt = pPtPos->nContent.GetIndex();
+ if( nStt < pMkPos->nContent.GetIndex() )
+ nEnd = pMkPos->nContent.GetIndex();
+ else
+ {
+ nEnd = nStt;
+ nStt = pMkPos->nContent.GetIndex();
+ }
+ }
+ else
+ {
+ nStt = pMkPos->nContent.GetIndex();
+ if( pPtPos->nNode < pMkPos->nNode )
+ {
+ nEnd = nStt;
+ nStt = 0;
+ }
+ else
+ nEnd = ((SwTxtNode*)pCNd)->GetTxt().Len();
+ }
+ }
+ else
+ nStt = nEnd = pPam->GetPoint()->nContent.GetIndex();
+
+ SfxItemSet aSet( pDoc->GetAttrPool(),
+ pCharFmt->GetAttrSet().GetRanges() );
+ ((SwTxtNode*)pCNd)->GetAttr( aSet, nStt, nEnd );
+ pCharFmt->SetFmtAttr( aSet );
+ }
+ else if( pCNd->HasSwAttrSet() )
+ pCharFmt->SetFmtAttr( *pCNd->GetpSwAttrSet() );
+}
+
+// Frm
+sal_uInt16 SwEditShell::GetTblFrmFmtCount(sal_Bool bUsed) const
+{
+ return GetDoc()->GetTblFrmFmtCount(bUsed);
+}
+
+SwFrmFmt& SwEditShell::GetTblFrmFmt(sal_uInt16 nFmt, sal_Bool bUsed ) const
+{
+ return GetDoc()->GetTblFrmFmt(nFmt, bUsed );
+}
+
+String SwEditShell::GetUniqueTblName() const
+{
+ return GetDoc()->GetUniqueTblName();
+}
+
+
+SwCharFmt* SwEditShell::MakeCharFmt( const String& rName,
+ SwCharFmt* pDerivedFrom )
+{
+ if( !pDerivedFrom )
+ pDerivedFrom = GetDoc()->GetDfltCharFmt();
+
+ return GetDoc()->MakeCharFmt( rName, pDerivedFrom );
+}
+
+//----------------------------------
+// inlines in product
+
+
+SwTxtFmtColl* SwEditShell::GetTxtCollFromPool( sal_uInt16 nId )
+{
+ return GetDoc()->GetTxtCollFromPool( nId );
+}
+
+
+ // return the demanded automatic format - base-class !
+SwFmt* SwEditShell::GetFmtFromPool( sal_uInt16 nId )
+{
+ return GetDoc()->GetFmtFromPool( nId );
+}
+
+
+SwPageDesc* SwEditShell::GetPageDescFromPool( sal_uInt16 nId )
+{
+ return GetDoc()->GetPageDescFromPool( nId );
+}
+
+
+sal_Bool SwEditShell::IsUsed( const SwModify& rModify ) const
+{
+ return pDoc->IsUsed( rModify );
+}
+
+const SwFlyFrmFmt* SwEditShell::FindFlyByName( const String& rName, sal_uInt8 nNdTyp ) const
+{
+ return pDoc->FindFlyByName(rName, nNdTyp);
+}
+
+SwCharFmt* SwEditShell::FindCharFmtByName( const String& rName ) const
+{
+ return pDoc->FindCharFmtByName( rName );
+}
+
+SwTxtFmtColl* SwEditShell::FindTxtFmtCollByName( const String& rName ) const
+{
+ return pDoc->FindTxtFmtCollByName( rName );
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */