2010-10-27 13:11:31 +01:00
|
|
|
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
re-base on ALv2 code. Includes (at least) relevant parts of:
linecap: Reintegrating finished LineCap feature
Patch contributed by Regina Henschel
http://svn.apache.org/viewvc?view=revision&revision=1232507
Patches contributed by Sven Jacobi
impress212: #i81610# fixed animation export
http://svn.apache.org/viewvc?view=revision&revision=1167620
impress212: drawinglayer gbuild environment changes
http://svn.apache.org/viewvc?view=revision&revision=1167627
http://svn.apache.org/viewvc?view=revision&revision=1167628
impress212: DffPropSet -> minor code improvements, removing table
http://svn.apache.org/viewvc?view=revision&revision=1167634
impress212: #158494# fixed excel import (text rotation)
http://svn.apache.org/viewvc?view=revision&revision=1167638
Patches contributed by Armin Le Grand
Svg: Reintegrated Svg replacement from /branches/alg/svgreplavement
http://svn.apache.org/viewvc?view=revision&revision=1220836
#118728# changed indentifying definitions for Svg file detection
http://svn.apache.org/viewvc?view=revision&revision=1229961
#118838# LineGeometry creation for complicated cases optimized to
create single Polygons
http://svn.apache.org/viewvc?view=revision&revision=1236232
#119176# corrected file type detection for SVG for svg files
without xml header
http://svn.apache.org/viewvc?view=revision&revision=1309445
#118728# Extended Svg file detection
http://svn.apache.org/viewvc?view=revision&revision=1230531
#118529# solve break converters and convert commands for OLEs and images
http://svn.apache.org/viewvc?view=revision&revision=1186168
svg: added WaE changes from branch svgreplacement to trunc
http://svn.apache.org/viewvc?view=revision&revision=1222974
svg: corrected missing member initialization
http://svn.apache.org/viewvc?view=revision&revision=1226134
fix for #118525#: Using primitives for chart sub-geometry visualisation
http://svn.apache.org/viewvc?view=revision&revision=1226879
#118898# Adapted ImpGraphic::ImplGetBitmap to correctly convert
metafiles to bitmapEx ...
http://svn.apache.org/viewvc?view=revision&revision=1293316
fix for #118525#: removed no longer used variable maOriginalMapMode, one
more exception eliminated
http://svn.apache.org/viewvc?view=revision&revision=1227097
#16758# Added buffering to the VDev usages of the VclProcessor2D derivates...
http://svn.apache.org/viewvc?view=revision&revision=1229521
#116758# Secured VDev buffer device to Vcl deinit
http://svn.apache.org/viewvc?view=revision&revision=1230574
#116758# added remembering allocated VDevs for VDevBuffer to be able to also
delete these when vcl goes down; it should never happen, but You never know
http://svn.apache.org/viewvc?view=revision&revision=1230927
#118730# Changed SvgClipPathNode to use MaskPrimitive2D for primitive
representation instead of TransparencePrimitive2D
http://svn.apache.org/viewvc?view=revision&revision=1231198
#118822# secured 3D geometry creation (slices) by subdividing the 2D
source polyPolygon early
http://svn.apache.org/viewvc?view=revision&revision=1234749
#118829# enhanced Svg gradient quality, obstacles avoided
http://svn.apache.org/viewvc?view=revision&revision=1235361
#118834# Unified usage of TextBreakupHelper as single tooling class
for i18n text primitive breakup
http://svn.apache.org/viewvc?view=revision&revision=1236110
#118853# added square pixel size limit to conversion of
TransparencePrimitive2D to Metafile action
http://svn.apache.org/viewvc?view=revision&revision=1237656
#118824# coreccted mirroring and boundrect when the graphicmanager
is used for bitmap output
http://svn.apache.org/viewvc?view=revision&revision=1240097
#115092# Corrected VclProcessor2D::RenderPolygonStrokePrimitive2D for
various optimization scenarios
http://svn.apache.org/viewvc?view=revision&revision=1241434
#118783# Corrected errors in ID strings, corrected Svg line/fill export,
corrected polygon close state
http://svn.apache.org/viewvc?view=revision&revision=1232006
#118796# corrected null-pointer usage in SVG text exporter
http://svn.apache.org/viewvc?view=revision&revision=1240262
#118729# Use GraphicStreamUrl and GraphicUrl to allow multi image
import with linked graphics, too
http://svn.apache.org/viewvc?view=revision&revision=1229962
#118898# corrected error in GDIMetaFile::GetBoundRect in handling
MetaFloatTransparentAction
http://svn.apache.org/viewvc?view=revision&revision=1293349
#118855# Corrected handling of possibly created empty clipRegions
after PolyPolygon clipping
http://svn.apache.org/viewvc?view=revision&revision=1237725
#115962# Better (but not yet optimal, see comments in task) handling
of MetaFloatTransparentAction in PDF export
http://svn.apache.org/viewvc?view=revision&revision=1241078
IP clearance: #118466# This patch removes librsvg, libcroco, libgsf, ...
http://svn.apache.org/viewvc?view=revision&revision=1200879
118779# Added svg content streaming in/out to ImpGraphic stream operators
http://svn.apache.org/viewvc?view=revision&revision=1231908
linecap: correctons for WaE and mac drawing
http://svn.apache.org/viewvc?view=revision&revision=1232793
svg: uses current system Dpi for Svg replacement image creation
http://svn.apache.org/viewvc?view=revision&revision=1233948
Patches contributed by Mathias Bauer (and others)
gnumake4 work variously
http://svn.apache.org/viewvc?view=revision&revision=1394326
http://svn.apache.org/viewvc?view=revision&revision=1396797
http://svn.apache.org/viewvc?view=revision&revision=1397315
http://svn.apache.org/viewvc?view=revision&revision=1394326
Remove duplicate header includes.
cws mba34issues01: #i117720#: convert assertion into warning
http://svn.apache.org/viewvc?view=revision&revision=1172352
118485 - Styles for OLEs are not saved. Submitted by Armin Le Grand.
http://svn.apache.org/viewvc?view=revision&revision=1182166
cws mba34issues01: #i117714#: remove assertion
http://svn.apache.org/viewvc?view=revision&revision=1172357
Patch contributed by Jurgen Schmidt
add some additional checks to ensure proper reading operations
http://svn.apache.org/viewvc?view=revision&revision=1209022
mostly prefer our stream / bounds checking work.
Patches contributed by Herbert Duerr
#i118816# add clarifying comment regarding Font::*Color*() methods
http://svn.apache.org/viewvc?view=revision&revision=1233833
extend macro->string handling for empty strings
http://svn.apache.org/viewvc?view=revision&revision=1175801
avoid magic constants for SALCOLOR_NONE
http://svn.apache.org/viewvc?view=revision&revision=1177543
initialize slant properly in ImplFontMetricData constructor (author=iorsh)
http://svn.apache.org/viewvc?view=revision&revision=1177551
#i118675# make check for extension updates more stable
http://svn.apache.org/viewvc?view=revision&revision=1214797
#a118617# remove VBasicEventListener.dll binary
There are no known users depending on its CLSID
http://svn.apache.org/viewvc?view=revision&revision=1203697
Patches contributed by Ariel Constenla-Haile
Fix build breaker on Linux/gcc
http://svn.apache.org/viewvc?view=revision&revision=1221104
Fix crash when trying to instantiate css.graphic.GraphicRasterizer_RSVG
http://svn.apache.org/viewvc?view=revision&revision=1215559
Patches contributed by Oliver-Rainer Wittmann
sw34bf06: #i117962# - method <SwFlyFrm::IsPaint(..)> - consider
instances of <SwFlyDrawObj>
http://svn.apache.org/viewvc?view=revision&revision=1172120
sw34bf06: #i117783# - Writer's implementation of XPagePrintable -
apply print settings to new printing routines
http://svn.apache.org/viewvc?view=revision&revision=1172115
gnumake4 work variously from Hans-Joachim Lankenau
http://svn.apache.org/viewvc?view=revision&revision=1397315
http://svn.apache.org/viewvc?view=revision&revision=1396797
http://svn.apache.org/viewvc?view=revision&revision=1396782
http://svn.apache.org/viewvc?view=revision&revision=1394707
plus some amount of re-splitting of legacy headers.
Patch contributed by Pavel Janik
WaE: Remove unused variables.
http://svn.apache.org/viewvc?view=revision&revision=1230697
Patches contributed by Takashi Ono
mingwport35: i#117795: MinGW port fix for vcl2gnumake
http://svn.apache.org/viewvc?view=revision&revision=1172091
mingwport35: i#117795: MinGW port fix for vcl2gnumake
http://svn.apache.org/viewvc?view=revision&revision=1172091
Patch contributed by Christian Lippka
impress212: #i98044# re enable Text menu for outline and title shapes
http://svn.apache.org/viewvc?view=revision&revision=1167639
Patch contributed by Andre Fischer
118674: Made category B code optional and disabled by default.
http://svn.apache.org/viewvc?view=revision&revision=1215131
118881: Ignore empty paragraphs after bullets.
http://svn.apache.org/viewvc?view=revision&revision=1296205
Patches contributed by Philipp Lohmann
ooo340fixes: #i117780# use rtl allocator
http://svn.apache.org/viewvc?view=revision&revision=1172087
ooo34gsl02: #i117807# fix an off by one error (index actually
inside the pfb section header)
http://svn.apache.org/viewvc?view=revision&revision=1167576
various cleanups, related compilation fixes, warning cleanups, re-working
of obsolete stl template pieces to use boost instead, changed string
classes, re-adapt KDE about data, about dialog, fixing warnings,
and other fixes & improvements.
Disable svg import / render for about/ branding code-paths for now.
Restore full icon theme set.
Remove OS/2 conditionals and sources.
Remove conflicting gtk/full-screen monitors support.
Retain existing svg rasterizer files - temporarily disabled.
Standardize stringificaiton and fixup dllpostfix issues.
Rename SvgGradientHelper::== to equalTo to avoid overloading issues.
Use the flat GdiPlus API for LineCaps calls.
2012-10-09 12:22:23 +01:00
|
|
|
/*
|
|
|
|
* This file is part of the LibreOffice project.
|
|
|
|
*
|
|
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
|
*
|
|
|
|
* This file incorporates work covered by the following license notice:
|
|
|
|
*
|
|
|
|
* 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 .
|
|
|
|
*/
|
2013-11-05 09:20:14 +01:00
|
|
|
#ifndef INCLUDED_EDITENG_OUTLINER_HXX
|
|
|
|
#define INCLUDED_EDITENG_OUTLINER_HXX
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2010-01-06 19:26:54 +01:00
|
|
|
#include <editeng/editdata.hxx>
|
2015-03-24 16:05:55 +02:00
|
|
|
#include <editeng/editstat.hxx>
|
2013-04-10 08:20:16 +00:00
|
|
|
#include <editeng/numitem.hxx>
|
2013-04-05 18:40:39 +02:00
|
|
|
#include <i18nlangtag/lang.h>
|
2013-09-23 07:19:08 +01:00
|
|
|
#include <rtl/ustring.hxx>
|
2014-07-16 21:22:34 +02:00
|
|
|
#include <svl/SfxBroadcaster.hxx>
|
2015-04-15 09:36:39 +02:00
|
|
|
#include <svl/languageoptions.hxx>
|
2013-09-23 07:19:08 +01:00
|
|
|
#include <tools/gen.hxx>
|
2007-04-11 15:04:10 +00:00
|
|
|
#include <tools/color.hxx>
|
2012-08-08 12:00:39 +02:00
|
|
|
#include <tools/contnr.hxx>
|
2007-04-11 15:04:10 +00:00
|
|
|
#include <vcl/graph.hxx>
|
2015-03-19 13:54:12 +02:00
|
|
|
#include <vcl/outdev.hxx>
|
2007-04-11 15:04:10 +00:00
|
|
|
#include <tools/link.hxx>
|
|
|
|
#include <rsc/rscsfx.hxx>
|
2013-11-09 14:13:31 -06:00
|
|
|
#include <editeng/editengdllapi.h>
|
2012-01-03 15:12:33 +01:00
|
|
|
#include <com/sun/star/lang/Locale.hpp>
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2009-12-15 21:55:40 +01:00
|
|
|
#include <svtools/grfmgr.hxx>
|
2008-08-19 21:27:04 +00:00
|
|
|
|
2013-10-22 15:58:57 +03:00
|
|
|
#include <tools/rtti.hxx>
|
2015-03-12 13:08:49 +01:00
|
|
|
#define LOK_USE_UNSTABLE_API
|
2015-03-13 09:14:16 +01:00
|
|
|
#include <LibreOfficeKit/LibreOfficeKitTypes.h>
|
2007-04-11 15:04:10 +00:00
|
|
|
#include <vector>
|
|
|
|
|
|
|
|
class OutlinerEditEng;
|
|
|
|
class Outliner;
|
|
|
|
class EditView;
|
|
|
|
class EditUndo;
|
|
|
|
class ParagraphList;
|
|
|
|
class OutlinerParaObject;
|
|
|
|
class SvStream;
|
|
|
|
class SvxBulletItem;
|
|
|
|
class SvxFont;
|
|
|
|
class SvxSearchItem;
|
|
|
|
class SvxFieldItem;
|
2014-09-23 11:20:40 +02:00
|
|
|
namespace vcl { class Window; }
|
2007-04-11 15:04:10 +00:00
|
|
|
class KeyEvent;
|
|
|
|
class MouseEvent;
|
|
|
|
class Pointer;
|
|
|
|
class CommandEvent;
|
|
|
|
class MapMode;
|
|
|
|
class OutputDevice;
|
2014-09-28 07:51:19 +02:00
|
|
|
namespace tools { class PolyPolygon; }
|
2007-04-11 15:04:10 +00:00
|
|
|
class SfxStyleSheetPool;
|
|
|
|
class SfxStyleSheet;
|
|
|
|
class SfxItemPool;
|
|
|
|
class SfxItemSet;
|
|
|
|
class SvxNumBulletItem;
|
|
|
|
class SvxNumberFormat;
|
|
|
|
class SvxLRSpaceItem;
|
|
|
|
class EditEngine;
|
|
|
|
class SvKeyValueIterator;
|
|
|
|
class SvxForbiddenCharactersTable;
|
2010-10-20 14:54:59 +02:00
|
|
|
|
|
|
|
namespace svl
|
|
|
|
{
|
|
|
|
class IUndoManager;
|
|
|
|
}
|
|
|
|
|
2007-04-11 15:04:10 +00:00
|
|
|
#include <com/sun/star/uno/Reference.h>
|
|
|
|
|
2010-10-15 12:10:06 -05:00
|
|
|
#include <rtl/ref.hxx>
|
2010-01-06 19:26:54 +01:00
|
|
|
#include <editeng/svxfont.hxx>
|
|
|
|
#include <editeng/eedata.hxx>
|
|
|
|
#include <editeng/paragraphdata.hxx>
|
2015-02-27 11:49:51 +02:00
|
|
|
#include <o3tl/typed_flags_set.hxx>
|
2008-08-19 21:27:04 +00:00
|
|
|
|
|
|
|
class SvxFieldData;
|
2014-02-25 19:06:16 +01:00
|
|
|
|
2007-04-11 15:04:10 +00:00
|
|
|
|
|
|
|
namespace com { namespace sun { namespace star { namespace linguistic2 {
|
|
|
|
class XSpellChecker1;
|
|
|
|
class XHyphenator;
|
|
|
|
}}}}
|
|
|
|
namespace svx{
|
|
|
|
struct SpellPortion;
|
|
|
|
typedef std::vector<SpellPortion> SpellPortions;
|
|
|
|
}
|
|
|
|
|
|
|
|
namespace basegfx { class B2DPolyPolygon; }
|
|
|
|
|
2011-02-16 16:34:02 -05:00
|
|
|
// internal use only!
|
2015-02-27 11:49:51 +02:00
|
|
|
enum class ParaFlag
|
|
|
|
{
|
|
|
|
NONE = 0x0000,
|
|
|
|
HOLDDEPTH = 0x4000,
|
|
|
|
SETBULLETTEXT = 0x8000,
|
|
|
|
ISPAGE = 0x0100,
|
|
|
|
};
|
|
|
|
namespace o3tl
|
|
|
|
{
|
|
|
|
template<> struct typed_flags<ParaFlag> : is_typed_flags<ParaFlag, 0xc100> {};
|
|
|
|
}
|
2007-04-11 15:04:10 +00:00
|
|
|
|
|
|
|
// Undo-Action-Ids
|
|
|
|
#define OLUNDO_DEPTH EDITUNDO_USER
|
|
|
|
// #define OLUNDO_HEIGHT EDITUNDO_USER+1
|
|
|
|
#define OLUNDO_EXPAND EDITUNDO_USER+2
|
|
|
|
#define OLUNDO_COLLAPSE EDITUNDO_USER+3
|
|
|
|
// #define OLUNDO_REMOVE EDITUNDO_USER+4
|
|
|
|
#define OLUNDO_ATTR EDITUNDO_USER+5
|
|
|
|
#define OLUNDO_INSERT EDITUNDO_USER+6
|
|
|
|
// #define OLUNDO_MOVEPARAGRAPHS EDITUNDO_USER+7
|
|
|
|
|
2008-10-01 06:50:54 +00:00
|
|
|
class Paragraph : protected ParagraphData
|
2007-04-11 15:04:10 +00:00
|
|
|
{
|
|
|
|
private:
|
|
|
|
friend class Outliner;
|
|
|
|
friend class ParagraphList;
|
|
|
|
friend class OutlinerView;
|
|
|
|
friend class OutlinerParaObject;
|
|
|
|
friend class OutlinerEditEng;
|
|
|
|
friend class OutlinerUndoCheckPara;
|
2008-06-06 11:21:04 +00:00
|
|
|
friend class OutlinerUndoChangeParaFlags;
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2015-02-07 12:13:35 +01:00
|
|
|
Paragraph& operator=(const Paragraph& rPara ) SAL_DELETED_FUNCTION;
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2015-02-27 11:49:51 +02:00
|
|
|
ParaFlag nFlags;
|
|
|
|
OUString aBulText;
|
2007-04-11 15:04:10 +00:00
|
|
|
Size aBulSize;
|
2014-02-25 14:19:24 +02:00
|
|
|
bool bVisible;
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2014-02-25 14:19:24 +02:00
|
|
|
bool IsVisible() const { return bVisible; }
|
2013-04-07 12:06:47 +02:00
|
|
|
void SetText( const OUString& rText ) { aBulText = rText; aBulSize.Width() = -1; }
|
2007-04-11 15:04:10 +00:00
|
|
|
void Invalidate() { aBulSize.Width() = -1; }
|
2008-06-06 11:21:04 +00:00
|
|
|
void SetDepth( sal_Int16 nNewDepth ) { nDepth = nNewDepth; aBulSize.Width() = -1; }
|
2013-04-07 12:06:47 +02:00
|
|
|
const OUString& GetText() const { return aBulText; }
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2008-06-06 11:21:04 +00:00
|
|
|
Paragraph( sal_Int16 nDepth );
|
2015-02-07 12:13:35 +01:00
|
|
|
Paragraph( const Paragraph& ) SAL_DELETED_FUNCTION;
|
2008-10-01 06:50:54 +00:00
|
|
|
Paragraph( const ParagraphData& );
|
2007-04-11 15:04:10 +00:00
|
|
|
~Paragraph();
|
|
|
|
|
2008-06-06 11:21:04 +00:00
|
|
|
sal_Int16 GetDepth() const { return nDepth; }
|
|
|
|
|
|
|
|
sal_Int16 GetNumberingStartValue() const { return mnNumberingStartValue; }
|
|
|
|
void SetNumberingStartValue( sal_Int16 nNumberingStartValue );
|
|
|
|
|
2014-02-25 14:19:24 +02:00
|
|
|
bool IsParaIsNumberingRestart() const { return mbParaIsNumberingRestart; }
|
|
|
|
void SetParaIsNumberingRestart( bool bParaIsNumberingRestart );
|
2008-06-06 11:21:04 +00:00
|
|
|
|
2015-02-27 11:49:51 +02:00
|
|
|
void SetFlag( ParaFlag nFlag ) { nFlags |= nFlag; }
|
|
|
|
void RemoveFlag( ParaFlag nFlag ) { nFlags &= ~nFlag; }
|
|
|
|
bool HasFlag( ParaFlag nFlag ) const { return bool(nFlags & nFlag); }
|
2007-04-11 15:04:10 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
struct ParaRange
|
|
|
|
{
|
2013-05-08 18:12:32 +02:00
|
|
|
sal_Int32 nStartPara;
|
|
|
|
sal_Int32 nEndPara;
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2013-05-08 18:12:32 +02:00
|
|
|
ParaRange( sal_Int32 nS, sal_Int32 nE ) { nStartPara = nS, nEndPara = nE; }
|
2007-04-11 15:04:10 +00:00
|
|
|
|
|
|
|
void Adjust();
|
2014-02-02 22:16:48 -06:00
|
|
|
sal_Int32 Len() const { return 1 + ( ( nEndPara > nStartPara ) ? (nEndPara-nStartPara) : (nStartPara-nEndPara) ); }
|
2007-04-11 15:04:10 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
inline void ParaRange::Adjust()
|
|
|
|
{
|
|
|
|
if ( nStartPara > nEndPara )
|
|
|
|
{
|
2013-05-08 18:12:32 +02:00
|
|
|
sal_Int32 nTmp = nStartPara;
|
2007-04-11 15:04:10 +00:00
|
|
|
nStartPara = nEndPara;
|
|
|
|
nEndPara = nTmp;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2010-01-06 19:26:54 +01:00
|
|
|
class EDITENG_DLLPUBLIC OutlinerView
|
2007-04-11 15:04:10 +00:00
|
|
|
{
|
|
|
|
friend class Outliner;
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
Outliner* pOwner;
|
|
|
|
EditView* pEditView;
|
|
|
|
|
2015-03-24 14:38:03 +02:00
|
|
|
enum class MouseTarget {
|
|
|
|
Text = 0,
|
|
|
|
Bullet = 1,
|
|
|
|
Hypertext = 2, // Outside OutputArea
|
|
|
|
Outside = 3, // Outside OutputArea
|
|
|
|
DontKnow = 4
|
2007-04-11 15:04:10 +00:00
|
|
|
};
|
|
|
|
|
2014-02-25 14:19:24 +02:00
|
|
|
EDITENG_DLLPRIVATE void ImplExpandOrCollaps( sal_Int32 nStartPara, sal_Int32 nEndPara, bool bExpand );
|
2010-01-06 19:26:54 +01:00
|
|
|
|
2013-05-08 18:12:32 +02:00
|
|
|
EDITENG_DLLPRIVATE sal_Int32 ImpCheckMousePos( const Point& rPosPixel, MouseTarget& reTarget);
|
|
|
|
EDITENG_DLLPRIVATE void ImpToggleExpand( Paragraph* pParentPara );
|
2014-02-25 14:19:24 +02:00
|
|
|
EDITENG_DLLPRIVATE ParaRange ImpGetSelectedParagraphs( bool bIncludeHiddenChildren );
|
2010-01-06 19:26:54 +01:00
|
|
|
|
2013-05-08 18:12:32 +02:00
|
|
|
EDITENG_DLLPRIVATE sal_Int32 ImpInitPaste( sal_Int32& rStart );
|
|
|
|
EDITENG_DLLPRIVATE void ImpPasted( sal_Int32 nStart, sal_Int32 nPrevParaCount, sal_Int32 nSize);
|
2014-02-25 14:19:24 +02:00
|
|
|
EDITENG_DLLPRIVATE sal_Int32 ImpCalcSelectedPages( bool bIncludeFirstSelected );
|
2007-04-11 15:04:10 +00:00
|
|
|
|
|
|
|
public:
|
2014-09-23 11:20:40 +02:00
|
|
|
OutlinerView( Outliner* pOut, vcl::Window* pWindow );
|
2007-04-11 15:04:10 +00:00
|
|
|
virtual ~OutlinerView();
|
|
|
|
|
|
|
|
EditView& GetEditView() const { return *pEditView; }
|
|
|
|
|
|
|
|
void Scroll( long nHorzScroll, long nVertScroll );
|
|
|
|
|
2012-05-03 10:59:32 +00:00
|
|
|
void Paint( const Rectangle& rRect, OutputDevice* pTargetDevice = 0 );
|
2014-09-23 11:20:40 +02:00
|
|
|
bool PostKeyEvent( const KeyEvent& rKEvt, vcl::Window* pFrameWin = NULL );
|
2014-02-25 14:19:24 +02:00
|
|
|
bool MouseButtonDown( const MouseEvent& );
|
|
|
|
bool MouseButtonUp( const MouseEvent& );
|
2014-10-07 16:52:11 +01:00
|
|
|
void ReleaseMouse();
|
2014-02-25 14:19:24 +02:00
|
|
|
bool MouseMove( const MouseEvent& );
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2014-02-25 14:19:24 +02:00
|
|
|
void ShowCursor( bool bGotoCursor = true );
|
2007-04-11 15:04:10 +00:00
|
|
|
void HideCursor();
|
|
|
|
|
|
|
|
Outliner* GetOutliner() const { return pOwner; }
|
|
|
|
|
2014-09-23 11:20:40 +02:00
|
|
|
void SetWindow( vcl::Window* pWindow );
|
|
|
|
vcl::Window* GetWindow() const;
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2014-02-25 14:19:24 +02:00
|
|
|
void SetReadOnly( bool bReadOnly );
|
|
|
|
bool IsReadOnly() const;
|
2007-04-11 15:04:10 +00:00
|
|
|
|
|
|
|
void SetOutputArea( const Rectangle& rRect );
|
|
|
|
Rectangle GetOutputArea() const;
|
|
|
|
|
|
|
|
Rectangle GetVisArea() const;
|
|
|
|
|
2011-03-09 12:57:55 -04:30
|
|
|
void CreateSelectionList (std::vector<Paragraph*> &aSelList) ;
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2011-02-16 16:34:02 -05:00
|
|
|
// Retruns the number of selected paragraphs
|
2013-05-08 18:12:32 +02:00
|
|
|
sal_Int32 Select( Paragraph* pParagraph,
|
2014-02-25 14:19:24 +02:00
|
|
|
bool bSelect = true,
|
|
|
|
bool bWChildren = true);
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2013-08-13 20:41:52 +01:00
|
|
|
OUString GetSelected() const;
|
2013-05-08 18:12:32 +02:00
|
|
|
void SelectRange( sal_Int32 nFirst, sal_Int32 nCount );
|
2007-04-11 15:04:10 +00:00
|
|
|
void SetAttribs( const SfxItemSet& );
|
|
|
|
void Indent( short nDiff );
|
2011-02-16 16:34:02 -05:00
|
|
|
void AdjustDepth( short nDX ); // Later replace with Indent!
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2014-02-25 14:19:24 +02:00
|
|
|
bool AdjustHeight( long nDY );
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2014-02-25 14:19:24 +02:00
|
|
|
sal_uLong Read( SvStream& rInput, const OUString& rBaseURL, EETextFormat eFormat, bool bSelect = false, SvKeyValueIterator* pHTTPHeaderAttrs = NULL );
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2014-02-25 14:19:24 +02:00
|
|
|
void InsertText( const OUString& rNew, bool bSelect = false );
|
2007-04-11 15:04:10 +00:00
|
|
|
void InsertText( const OutlinerParaObject& rParaObj );
|
|
|
|
void Expand();
|
|
|
|
void Collapse();
|
|
|
|
void ExpandAll();
|
|
|
|
void CollapseAll();
|
|
|
|
|
|
|
|
void SetBackgroundColor( const Color& rColor );
|
|
|
|
Color GetBackgroundColor();
|
|
|
|
|
2015-02-19 14:38:53 +01:00
|
|
|
/// Set if we are doing tiled rendering.
|
|
|
|
void setTiledRendering(bool bTiledRendering);
|
2015-03-12 13:08:49 +01:00
|
|
|
/// @see vcl::ITiledRenderable::registerCallback().
|
|
|
|
void registerLibreOfficeKitCallback(LibreOfficeKitCallback pCallback, void* pLibreOfficeKitData);
|
2015-02-19 14:38:53 +01:00
|
|
|
|
2007-04-11 15:04:10 +00:00
|
|
|
SfxItemSet GetAttribs();
|
|
|
|
|
|
|
|
void Cut();
|
|
|
|
void Copy();
|
|
|
|
void Paste();
|
|
|
|
void PasteSpecial();
|
|
|
|
|
2012-03-29 01:43:30 -04:00
|
|
|
const SfxStyleSheet* GetStyleSheet() const;
|
2012-03-29 09:53:19 +02:00
|
|
|
SfxStyleSheet* GetStyleSheet();
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2015-03-24 16:23:31 +02:00
|
|
|
void SetControlWord( EVControlBits nWord );
|
|
|
|
EVControlBits GetControlWord() const;
|
2007-04-11 15:04:10 +00:00
|
|
|
|
|
|
|
void SetAnchorMode( EVAnchorMode eMode );
|
|
|
|
EVAnchorMode GetAnchorMode() const;
|
|
|
|
|
|
|
|
Pointer GetPointer( const Point& rPosPixel );
|
|
|
|
void Command( const CommandEvent& rCEvt );
|
|
|
|
|
2014-02-25 14:19:24 +02:00
|
|
|
EESpellState StartSpeller( bool bMultipleDoc = false );
|
2007-04-11 15:04:10 +00:00
|
|
|
EESpellState StartThesaurus();
|
2014-02-25 14:19:24 +02:00
|
|
|
sal_Int32 StartSearchAndReplace( const SvxSearchItem& rSearchItem );
|
2007-04-11 15:04:10 +00:00
|
|
|
|
|
|
|
// for text conversion
|
2014-09-16 10:09:58 +02:00
|
|
|
void StartTextConversion( LanguageType nSrcLang, LanguageType nDestLang, const vcl::Font *pDestFont, sal_Int32 nOptions, bool bIsInteractive, bool bMultipleDoc );
|
2007-04-11 15:04:10 +00:00
|
|
|
|
|
|
|
void TransliterateText( sal_Int32 nTransliterationMode );
|
|
|
|
|
2015-04-15 09:36:39 +02:00
|
|
|
ESelection GetSelection();
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2015-04-15 09:36:39 +02:00
|
|
|
SvtScriptType GetSelectedScriptType() const;
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2013-03-12 09:25:32 +02:00
|
|
|
void SetVisArea( const Rectangle& rRect );
|
2007-04-11 15:04:10 +00:00
|
|
|
void SetSelection( const ESelection& );
|
|
|
|
|
2014-02-25 14:19:24 +02:00
|
|
|
void RemoveAttribs( bool bRemoveParaAttribs = false, sal_uInt16 nWhich = 0, bool bKeepLanguages = false );
|
|
|
|
void RemoveAttribsKeepLanguages( bool bRemoveParaAttribs );
|
|
|
|
bool HasSelection() const;
|
2007-04-11 15:04:10 +00:00
|
|
|
|
|
|
|
void InsertField( const SvxFieldItem& rFld );
|
|
|
|
const SvxFieldItem* GetFieldUnderMousePointer() const;
|
|
|
|
const SvxFieldItem* GetFieldAtSelection() const;
|
|
|
|
|
2013-05-29 08:10:49 +00:00
|
|
|
/** enables bullets for the selected paragraphs if the bullets/numbering of the first paragraph is off
|
|
|
|
or disables bullets/numbering for the selected paragraphs if the bullets/numbering of the first paragraph is on
|
2008-06-06 11:21:04 +00:00
|
|
|
*/
|
2013-05-29 08:10:49 +00:00
|
|
|
void ToggleBullets();
|
|
|
|
|
|
|
|
void ToggleBulletsNumbering(
|
|
|
|
const bool bToggle,
|
|
|
|
const bool bHandleBullets,
|
|
|
|
const SvxNumRule* pNumRule = NULL );
|
|
|
|
|
|
|
|
/** apply bullets/numbering for paragraphs
|
|
|
|
|
|
|
|
@param boolean bHandleBullets
|
|
|
|
true: handle bullets
|
|
|
|
false: handle numbering
|
|
|
|
|
|
|
|
@param pNewNumRule
|
|
|
|
numbering rule which needs to be applied. can be 0.
|
|
|
|
|
|
|
|
@param boolean bAtSelection
|
|
|
|
true: apply bullets/numbering at selected paragraphs
|
|
|
|
false: apply bullets/numbering at all paragraphs
|
|
|
|
*/
|
|
|
|
void ApplyBulletsNumbering(
|
|
|
|
const bool bHandleBullets,
|
|
|
|
const SvxNumRule* pNewNumRule,
|
|
|
|
const bool bCheckCurrentNumRuleBeforeApplyingNewNumRule,
|
|
|
|
const bool bAtSelection = false );
|
|
|
|
|
|
|
|
/** switch off bullets/numbering for paragraphs
|
|
|
|
|
|
|
|
@param boolean bAtSelection
|
|
|
|
true: switch off bullets/numbering at selected paragraphs
|
|
|
|
false: switch off bullets/numbering at all paragraphs
|
|
|
|
*/
|
|
|
|
void SwitchOffBulletsNumbering(
|
|
|
|
const bool bAtSelection = false );
|
|
|
|
|
2008-11-20 14:55:36 +00:00
|
|
|
/** enables numbering for the selected paragraphs that are not enabled and ignore all selected
|
|
|
|
paragraphs that already have numbering enabled.
|
|
|
|
*/
|
|
|
|
void EnableBullets();
|
|
|
|
|
2014-02-25 14:19:24 +02:00
|
|
|
bool IsCursorAtWrongSpelledWord( bool bMarkIfWrong = false );
|
|
|
|
bool IsWrongSpelledWordAtPos( const Point& rPosPixel, bool bMarkIfWrong = false );
|
2015-04-30 10:20:00 +02:00
|
|
|
void ExecuteSpellPopup( const Point& rPosPixel, Link<>* pCallBack = 0 );
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2011-01-13 14:12:48 +01:00
|
|
|
void SetInvalidateMore( sal_uInt16 nPixel );
|
2013-09-06 16:31:38 +02:00
|
|
|
sal_uInt16 GetInvalidateMore() const;
|
2009-06-17 10:58:14 +00:00
|
|
|
|
2013-09-06 16:31:38 +02:00
|
|
|
OUString GetSurroundingText() const;
|
|
|
|
Selection GetSurroundingTextSelection() const;
|
2007-04-11 15:04:10 +00:00
|
|
|
};
|
|
|
|
|
2009-11-25 16:50:10 +00:00
|
|
|
|
|
|
|
// some thesaurus functionality to avoid code duplication in different projects...
|
2013-08-11 21:36:15 +04:00
|
|
|
bool EDITENG_DLLPUBLIC GetStatusValueForThesaurusFromContext( OUString &rStatusVal, LanguageType &rLang, const EditView &rEditView );
|
2013-09-06 16:31:38 +02:00
|
|
|
void EDITENG_DLLPUBLIC ReplaceTextWithSynonym( EditView &rEditView, const OUString &rSynonmText );
|
2009-11-25 16:50:10 +00:00
|
|
|
|
2010-12-27 08:04:47 -08:00
|
|
|
typedef ::std::vector< OutlinerView* > ViewList;
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2010-01-06 19:26:54 +01:00
|
|
|
class EDITENG_DLLPUBLIC DrawPortionInfo
|
2007-04-11 15:04:10 +00:00
|
|
|
{
|
|
|
|
public:
|
2008-08-19 21:27:04 +00:00
|
|
|
const Point& mrStartPos;
|
2013-09-06 16:31:38 +02:00
|
|
|
const OUString maText;
|
2014-02-02 22:16:48 -06:00
|
|
|
sal_Int32 mnTextStart;
|
|
|
|
sal_Int32 mnTextLen;
|
2013-05-08 18:12:32 +02:00
|
|
|
sal_Int32 mnPara;
|
2014-02-02 22:16:48 -06:00
|
|
|
sal_Int32 mnIndex;
|
2008-08-19 21:27:04 +00:00
|
|
|
const SvxFont& mrFont;
|
2014-07-18 18:21:12 +02:00
|
|
|
const long* mpDXArray;
|
2008-08-19 21:27:04 +00:00
|
|
|
|
|
|
|
const EEngineData::WrongSpellVector* mpWrongSpellVector;
|
|
|
|
const SvxFieldData* mpFieldData;
|
|
|
|
const ::com::sun::star::lang::Locale* mpLocale;
|
2009-01-05 17:49:45 +00:00
|
|
|
const Color maOverlineColor;
|
2008-08-19 21:27:04 +00:00
|
|
|
const Color maTextLineColor;
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2011-01-13 14:12:48 +01:00
|
|
|
sal_uInt8 mnBiDiLevel;
|
2008-08-19 21:27:04 +00:00
|
|
|
|
2010-09-14 15:28:33 +02:00
|
|
|
bool mbFilled;
|
|
|
|
long mnWidthToFill;
|
|
|
|
|
2008-08-19 21:27:04 +00:00
|
|
|
// bitfield
|
2014-01-14 21:09:59 +01:00
|
|
|
bool mbEndOfLine : 1;
|
|
|
|
bool mbEndOfParagraph : 1;
|
|
|
|
bool mbEndOfBullet : 1;
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2011-01-13 14:12:48 +01:00
|
|
|
sal_uInt8 GetBiDiLevel() const { return mnBiDiLevel; }
|
2014-02-25 14:19:24 +02:00
|
|
|
bool IsRTL() const { return mnBiDiLevel % 2 == 1; }
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2008-08-19 21:27:04 +00:00
|
|
|
DrawPortionInfo(
|
|
|
|
const Point& rPos,
|
2013-09-06 16:31:38 +02:00
|
|
|
const OUString& rTxt,
|
2014-02-02 22:16:48 -06:00
|
|
|
sal_Int32 nTxtStart,
|
|
|
|
sal_Int32 nTxtLen,
|
2008-08-19 21:27:04 +00:00
|
|
|
const SvxFont& rFnt,
|
2013-05-08 18:12:32 +02:00
|
|
|
sal_Int32 nPar,
|
2014-02-02 22:16:48 -06:00
|
|
|
sal_Int32 nIdx,
|
2014-07-18 18:21:12 +02:00
|
|
|
const long* pDXArr,
|
2008-08-19 21:27:04 +00:00
|
|
|
const EEngineData::WrongSpellVector* pWrongSpellVector,
|
|
|
|
const SvxFieldData* pFieldData,
|
|
|
|
const ::com::sun::star::lang::Locale* pLocale,
|
2009-01-05 17:49:45 +00:00
|
|
|
const Color& rOverlineColor,
|
2008-08-19 21:27:04 +00:00
|
|
|
const Color& rTextLineColor,
|
2011-01-13 14:12:48 +01:00
|
|
|
sal_uInt8 nBiDiLevel,
|
2010-09-14 15:28:33 +02:00
|
|
|
bool bFilled,
|
|
|
|
long nWidthToFill,
|
2008-08-19 21:27:04 +00:00
|
|
|
bool bEndOfLine,
|
|
|
|
bool bEndOfParagraph,
|
|
|
|
bool bEndOfBullet)
|
|
|
|
: mrStartPos(rPos),
|
2013-09-06 16:31:38 +02:00
|
|
|
maText(rTxt),
|
2008-08-19 21:27:04 +00:00
|
|
|
mnTextStart(nTxtStart),
|
|
|
|
mnTextLen(nTxtLen),
|
|
|
|
mnPara(nPar),
|
|
|
|
mnIndex(nIdx),
|
|
|
|
mrFont(rFnt),
|
|
|
|
mpDXArray(pDXArr),
|
|
|
|
mpWrongSpellVector(pWrongSpellVector),
|
|
|
|
mpFieldData(pFieldData),
|
|
|
|
mpLocale(pLocale),
|
2009-01-05 17:49:45 +00:00
|
|
|
maOverlineColor(rOverlineColor),
|
2008-08-19 21:27:04 +00:00
|
|
|
maTextLineColor(rTextLineColor),
|
|
|
|
mnBiDiLevel(nBiDiLevel),
|
2010-09-14 15:28:33 +02:00
|
|
|
mbFilled( bFilled ),
|
|
|
|
mnWidthToFill( nWidthToFill ),
|
2008-08-19 21:27:04 +00:00
|
|
|
mbEndOfLine(bEndOfLine),
|
|
|
|
mbEndOfParagraph(bEndOfParagraph),
|
|
|
|
mbEndOfBullet(bEndOfBullet)
|
|
|
|
{}
|
|
|
|
};
|
|
|
|
|
2010-01-06 19:26:54 +01:00
|
|
|
class EDITENG_DLLPUBLIC DrawBulletInfo
|
2008-08-19 21:27:04 +00:00
|
|
|
{
|
|
|
|
public:
|
|
|
|
const GraphicObject maBulletGraphicObject;
|
|
|
|
Point maBulletPosition;
|
|
|
|
Size maBulletSize;
|
|
|
|
|
|
|
|
DrawBulletInfo(
|
|
|
|
const GraphicObject& rBulletGraphicObject,
|
|
|
|
const Point& rBulletPosition,
|
|
|
|
const Size& rBulletSize)
|
|
|
|
: maBulletGraphicObject(rBulletGraphicObject),
|
|
|
|
maBulletPosition(rBulletPosition),
|
|
|
|
maBulletSize(rBulletSize)
|
|
|
|
{}
|
2007-04-11 15:04:10 +00:00
|
|
|
};
|
|
|
|
|
2010-01-06 19:26:54 +01:00
|
|
|
struct EDITENG_DLLPUBLIC PaintFirstLineInfo
|
2008-06-06 11:21:04 +00:00
|
|
|
{
|
2013-05-08 18:12:32 +02:00
|
|
|
sal_Int32 mnPara;
|
2008-06-06 11:21:04 +00:00
|
|
|
const Point& mrStartPos;
|
|
|
|
long mnBaseLineY;
|
|
|
|
const Point& mrOrigin;
|
|
|
|
short mnOrientation;
|
2015-03-19 13:54:12 +02:00
|
|
|
VclPtr<OutputDevice> mpOutDev;
|
2008-06-06 11:21:04 +00:00
|
|
|
|
2013-05-08 18:12:32 +02:00
|
|
|
PaintFirstLineInfo( sal_Int32 nPara, const Point& rStartPos, long nBaseLineY, const Point& rOrigin, short nOrientation, OutputDevice* pOutDev )
|
2008-06-06 11:21:04 +00:00
|
|
|
: mnPara( nPara ), mrStartPos( rStartPos ), mnBaseLineY( nBaseLineY ), mrOrigin( rOrigin ), mnOrientation( nOrientation ), mpOutDev( pOutDev )
|
|
|
|
{}
|
|
|
|
};
|
|
|
|
|
2007-04-11 15:04:10 +00:00
|
|
|
class SdrPage;
|
|
|
|
|
|
|
|
class EditFieldInfo
|
|
|
|
{
|
|
|
|
private:
|
|
|
|
Outliner* pOutliner;
|
|
|
|
const SvxFieldItem& rFldItem;
|
|
|
|
|
|
|
|
Color* pTxtColor;
|
|
|
|
Color* pFldColor;
|
|
|
|
|
2013-08-30 17:14:17 +02:00
|
|
|
OUString aRepresentation;
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2013-05-08 18:12:32 +02:00
|
|
|
sal_Int32 nPara;
|
2014-02-02 22:16:48 -06:00
|
|
|
sal_Int32 nPos;
|
2014-02-25 14:19:24 +02:00
|
|
|
bool bSimpleClick;
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2015-02-07 12:13:35 +01:00
|
|
|
EditFieldInfo( const EditFieldInfo& ) SAL_DELETED_FUNCTION;
|
2007-04-11 15:04:10 +00:00
|
|
|
|
|
|
|
SdrPage* mpSdrPage;
|
|
|
|
|
|
|
|
public:
|
2014-02-02 22:16:48 -06:00
|
|
|
EditFieldInfo( Outliner* pOutl, const SvxFieldItem& rFItem, sal_Int32 nPa, sal_Int32 nPo )
|
2007-04-11 15:04:10 +00:00
|
|
|
: rFldItem( rFItem )
|
|
|
|
{
|
|
|
|
pOutliner = pOutl;
|
|
|
|
nPara = nPa; nPos = nPo;
|
2014-02-25 14:19:24 +02:00
|
|
|
pTxtColor = 0; pFldColor = 0; bSimpleClick = false;
|
2007-04-11 15:04:10 +00:00
|
|
|
mpSdrPage = 0;
|
|
|
|
}
|
|
|
|
~EditFieldInfo()
|
|
|
|
{
|
|
|
|
delete pTxtColor;
|
|
|
|
delete pFldColor;
|
|
|
|
}
|
|
|
|
|
|
|
|
Outliner* GetOutliner() const { return pOutliner; }
|
|
|
|
|
|
|
|
const SvxFieldItem& GetField() const { return rFldItem; }
|
|
|
|
|
2015-05-20 13:05:49 +02:00
|
|
|
Color* GetTextColor() const { return pTxtColor; }
|
|
|
|
void SetTextColor( const Color& rColor )
|
2007-04-11 15:04:10 +00:00
|
|
|
{ delete pTxtColor; pTxtColor = new Color( rColor ); }
|
|
|
|
|
2015-05-20 13:05:49 +02:00
|
|
|
Color* GetFieldColor() const { return pFldColor; }
|
|
|
|
void SetFieldColor( const Color& rColor )
|
2007-04-11 15:04:10 +00:00
|
|
|
{ delete pFldColor; pFldColor = new Color( rColor ); }
|
2015-05-20 13:05:49 +02:00
|
|
|
void ClearFieldColor()
|
2007-04-11 15:04:10 +00:00
|
|
|
{ delete pFldColor; pFldColor = 0; }
|
|
|
|
|
2014-02-25 14:19:24 +02:00
|
|
|
sal_Int32 GetPara() const { return nPara; }
|
|
|
|
sal_Int32 GetPos() const { return nPos; }
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2014-02-25 14:19:24 +02:00
|
|
|
bool IsSimpleClick() const { return bSimpleClick; }
|
|
|
|
void SetSimpleClick( bool bSimple ) { bSimpleClick = bSimple; }
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2013-08-30 17:14:17 +02:00
|
|
|
const OUString& GetRepresentation() const { return aRepresentation; }
|
|
|
|
OUString& GetRepresentation() { return aRepresentation; }
|
|
|
|
void SetRepresentation( const OUString& rStr ){ aRepresentation = rStr; }
|
2007-04-11 15:04:10 +00:00
|
|
|
|
|
|
|
void SetSdrPage( SdrPage* pPage ) { mpSdrPage = pPage; }
|
|
|
|
SdrPage* GetSdrPage() const { return mpSdrPage; }
|
|
|
|
};
|
|
|
|
|
|
|
|
struct EBulletInfo
|
|
|
|
{
|
2014-02-25 14:19:24 +02:00
|
|
|
bool bVisible;
|
2013-09-06 16:31:38 +02:00
|
|
|
sal_uInt16 nType; // see SvxNumberType
|
|
|
|
OUString aText;
|
2007-04-11 15:04:10 +00:00
|
|
|
SvxFont aFont;
|
|
|
|
Graphic aGraphic;
|
2013-05-08 18:12:32 +02:00
|
|
|
sal_Int32 nParagraph;
|
2007-04-11 15:04:10 +00:00
|
|
|
Rectangle aBounds;
|
|
|
|
|
2014-02-25 14:19:24 +02:00
|
|
|
EBulletInfo() : bVisible( false ), nType( 0 ), nParagraph( EE_PARA_NOT_FOUND ) {}
|
2007-04-11 15:04:10 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
#define OUTLINERMODE_DONTKNOW 0x0000
|
|
|
|
#define OUTLINERMODE_TEXTOBJECT 0x0001
|
|
|
|
#define OUTLINERMODE_TITLEOBJECT 0x0002
|
|
|
|
#define OUTLINERMODE_OUTLINEOBJECT 0x0003
|
|
|
|
#define OUTLINERMODE_OUTLINEVIEW 0x0004
|
|
|
|
|
|
|
|
#define OUTLINERMODE_USERMASK 0x00FF
|
|
|
|
|
|
|
|
#define OUTLINERMODE_SUBTITLE (0x0100|OUTLINERMODE_TEXTOBJECT)
|
|
|
|
#define OUTLINERMODE_NOTE (0x0200|OUTLINERMODE_TEXTOBJECT)
|
|
|
|
|
2010-01-06 19:26:54 +01:00
|
|
|
class EDITENG_DLLPUBLIC Outliner : public SfxBroadcaster
|
2007-04-11 15:04:10 +00:00
|
|
|
{
|
|
|
|
friend class OutlinerView;
|
|
|
|
friend class OutlinerEditEng;
|
|
|
|
friend class OutlinerParaObject;
|
|
|
|
friend class OLUndoExpand;
|
|
|
|
friend class OutlinerUndoChangeDepth;
|
|
|
|
friend class OutlinerUndoCheckPara;
|
2008-06-06 11:21:04 +00:00
|
|
|
friend class OutlinerUndoChangeParaFlags;
|
2007-04-11 15:04:10 +00:00
|
|
|
|
|
|
|
OutlinerEditEng* pEditEngine;
|
|
|
|
|
|
|
|
ParagraphList* pParaList;
|
|
|
|
ViewList aViewList;
|
|
|
|
|
|
|
|
Paragraph* pHdlParagraph;
|
2013-05-08 18:12:32 +02:00
|
|
|
sal_Int32 mnFirstSelPage;
|
2015-04-30 10:20:00 +02:00
|
|
|
Link<> aDrawPortionHdl;
|
|
|
|
Link<> aDrawBulletHdl;
|
|
|
|
Link<> aExpandHdl;
|
|
|
|
Link<> aParaInsertedHdl;
|
|
|
|
Link<> aParaRemovingHdl;
|
|
|
|
Link<> aDepthChangedHdl;
|
|
|
|
Link<> aWidthArrReqHdl;
|
|
|
|
Link<> aBeginMovingHdl;
|
|
|
|
Link<> aEndMovingHdl;
|
|
|
|
Link<> aIndentingPagesHdl;
|
|
|
|
Link<> aRemovingPagesHdl;
|
|
|
|
Link<> aFieldClickedHdl;
|
|
|
|
Link<> aCalcFieldValueHdl;
|
|
|
|
Link<> maPaintFirstLineHdl;
|
|
|
|
Link<> maBeginPasteOrDropHdl;
|
|
|
|
Link<> maEndPasteOrDropHdl;
|
2008-06-06 11:21:04 +00:00
|
|
|
|
2013-05-08 18:12:32 +02:00
|
|
|
sal_Int32 nDepthChangedHdlPrevDepth;
|
2015-02-27 11:49:51 +02:00
|
|
|
ParaFlag mnDepthChangeHdlPrevFlags;
|
2008-06-06 11:21:04 +00:00
|
|
|
sal_Int16 nMaxDepth;
|
|
|
|
const sal_Int16 nMinDepth;
|
2013-05-08 18:12:32 +02:00
|
|
|
sal_Int32 nFirstPage;
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2014-02-25 14:19:24 +02:00
|
|
|
sal_uInt16 nOutlinerMode;
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2014-02-25 14:19:24 +02:00
|
|
|
bool bIsExpanding; // Only valid in Expand/Collaps-Hdl, reset
|
|
|
|
bool bFirstParaIsEmpty;
|
|
|
|
sal_uInt8 nBlockInsCallback;
|
|
|
|
bool bStrippingPortions;
|
|
|
|
bool bPasting;
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2011-01-13 14:12:48 +01:00
|
|
|
sal_uLong nDummy;
|
2007-04-11 15:04:10 +00:00
|
|
|
|
|
|
|
DECL_LINK( ParaVisibleStateChangedHdl, Paragraph* );
|
2012-03-01 23:55:47 +01:00
|
|
|
DECL_LINK( BeginMovingParagraphsHdl, void* );
|
2007-04-11 15:04:10 +00:00
|
|
|
DECL_LINK( EndMovingParagraphsHdl, MoveParagraphsInfo* );
|
|
|
|
DECL_LINK( BeginPasteOrDropHdl, PasteOrDropInfos* );
|
|
|
|
DECL_LINK( EndPasteOrDropHdl, PasteOrDropInfos* );
|
|
|
|
DECL_LINK( EditEngineNotifyHdl, EENotify* );
|
2013-05-08 18:12:32 +02:00
|
|
|
void ImplCheckParagraphs( sal_Int32 nStart, sal_Int32 nEnd );
|
2013-05-29 08:10:49 +00:00
|
|
|
bool ImplHasNumberFormat( sal_Int32 nPara ) const;
|
2013-05-08 18:12:32 +02:00
|
|
|
Size ImplGetBulletSize( sal_Int32 nPara );
|
|
|
|
sal_uInt16 ImplGetNumbering( sal_Int32 nPara, const SvxNumberFormat* pParaFmt );
|
2014-02-25 14:19:24 +02:00
|
|
|
void ImplCalcBulletText( sal_Int32 nPara, bool bRecalcLevel, bool bRecalcChildren );
|
2013-09-06 16:31:38 +02:00
|
|
|
OUString ImplGetBulletText( sal_Int32 nPara );
|
2013-05-08 18:12:32 +02:00
|
|
|
void ImplCheckNumBulletItem( sal_Int32 nPara );
|
2014-02-25 14:19:24 +02:00
|
|
|
void ImplInitDepth( sal_Int32 nPara, sal_Int16 nDepth, bool bCreateUndo, bool bUndoAction = false );
|
2013-05-08 18:12:32 +02:00
|
|
|
void ImplSetLevelDependendStyleSheet( sal_Int32 nPara, SfxStyleSheet* pLevelStyle = NULL );
|
2011-01-13 14:12:48 +01:00
|
|
|
|
2014-02-25 14:19:24 +02:00
|
|
|
void ImplBlockInsertionCallbacks( bool b );
|
2011-01-13 14:12:48 +01:00
|
|
|
|
2014-02-25 14:19:24 +02:00
|
|
|
void ImplCheckStyleSheet( sal_Int32 nPara, bool bReplaceExistingStyle );
|
2013-05-08 18:12:32 +02:00
|
|
|
void ImpRecalcBulletIndent( sal_Int32 nPara );
|
2011-01-13 14:12:48 +01:00
|
|
|
|
2013-05-08 18:12:32 +02:00
|
|
|
const SvxBulletItem& ImpGetBullet( sal_Int32 nPara, sal_uInt16& );
|
|
|
|
void ImpFilterIndents( sal_Int32 nFirstPara, sal_Int32 nLastPara );
|
|
|
|
bool ImpConvertEdtToOut( sal_Int32 nPara, EditView* pView = 0 );
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2013-05-08 18:12:32 +02:00
|
|
|
void ImpTextPasted( sal_Int32 nStartPara, sal_Int32 nCount );
|
|
|
|
long ImpCalcMaxBulletWidth( sal_Int32 nPara, const SvxBulletItem& rBullet );
|
2014-09-16 10:09:58 +02:00
|
|
|
vcl::Font ImpCalcBulletFont( sal_Int32 nPara ) const;
|
2014-02-25 14:19:24 +02:00
|
|
|
Rectangle ImpCalcBulletArea( sal_Int32 nPara, bool bAdjust, bool bReturnPaperPos );
|
2013-05-08 18:12:32 +02:00
|
|
|
long ImpGetTextIndent( sal_Int32 nPara );
|
2014-02-25 14:19:24 +02:00
|
|
|
bool ImpCanIndentSelectedPages( OutlinerView* pCurView );
|
|
|
|
bool ImpCanDeleteSelectedPages( OutlinerView* pCurView );
|
|
|
|
bool ImpCanDeleteSelectedPages( OutlinerView* pCurView, sal_Int32 nFirstPage, sal_Int32 nPages );
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2015-01-21 12:15:26 +02:00
|
|
|
sal_uInt16 ImplGetOutlinerMode() const { return nOutlinerMode & OUTLINERMODE_USERMASK; }
|
2008-06-06 11:21:04 +00:00
|
|
|
void ImplCheckDepth( sal_Int16& rnDepth ) const;
|
2007-04-11 15:04:10 +00:00
|
|
|
|
|
|
|
protected:
|
2013-05-08 18:12:32 +02:00
|
|
|
void ParagraphInserted( sal_Int32 nParagraph );
|
|
|
|
void ParagraphDeleted( sal_Int32 nParagraph );
|
|
|
|
void ParaAttribsChanged( sal_Int32 nParagraph );
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2015-01-21 12:15:26 +02:00
|
|
|
void StyleSheetChanged( SfxStyleSheet* pStyle );
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2014-06-13 13:55:14 +01:00
|
|
|
void InvalidateBullet(sal_Int32 nPara);
|
|
|
|
void PaintBullet( sal_Int32 nPara, const Point& rStartPos,
|
2007-04-11 15:04:10 +00:00
|
|
|
const Point& rOrigin, short nOrientation,
|
|
|
|
OutputDevice* pOutDev );
|
|
|
|
|
2008-06-06 11:21:04 +00:00
|
|
|
// used by OutlinerEditEng. Allows Outliner objects to provide
|
|
|
|
// bullet access to the EditEngine.
|
2015-01-20 12:38:10 +02:00
|
|
|
const SvxNumberFormat* GetNumberFormat( sal_Int32 nPara ) const;
|
2008-06-06 11:21:04 +00:00
|
|
|
|
2007-04-11 15:04:10 +00:00
|
|
|
public:
|
|
|
|
|
2011-01-13 14:12:48 +01:00
|
|
|
Outliner( SfxItemPool* pPool, sal_uInt16 nOutlinerMode );
|
2007-04-11 15:04:10 +00:00
|
|
|
virtual ~Outliner();
|
|
|
|
|
2011-01-13 14:12:48 +01:00
|
|
|
void Init( sal_uInt16 nOutlinerMode );
|
2015-01-21 12:15:26 +02:00
|
|
|
sal_uInt16 GetMode() const { return nOutlinerMode; }
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2014-02-25 14:19:24 +02:00
|
|
|
void SetVertical( bool bVertical );
|
2014-01-22 11:29:27 +01:00
|
|
|
bool IsVertical() const;
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2014-02-25 14:19:24 +02:00
|
|
|
void SetFixedCellHeight( bool bUseFixedCellHeight );
|
2007-04-11 15:04:10 +00:00
|
|
|
|
|
|
|
void SetDefaultHorizontalTextDirection( EEHorizontalTextDirection eHTextDir );
|
|
|
|
EEHorizontalTextDirection GetDefaultHorizontalTextDirection() const;
|
|
|
|
|
2015-04-15 09:36:39 +02:00
|
|
|
SvtScriptType GetScriptType( const ESelection& rSelection ) const;
|
2014-02-02 22:16:48 -06:00
|
|
|
LanguageType GetLanguage( sal_Int32 nPara, sal_Int32 nPos ) const;
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2011-01-13 14:12:48 +01:00
|
|
|
void SetAsianCompressionMode( sal_uInt16 nCompressionMode );
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2014-02-25 14:19:24 +02:00
|
|
|
void SetKernAsianPunctuation( bool bEnabled );
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2014-02-25 14:19:24 +02:00
|
|
|
void SetAddExtLeading( bool b );
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2010-12-27 08:04:47 -08:00
|
|
|
size_t InsertView( OutlinerView* pView, size_t nIndex = size_t(-1) );
|
2007-04-11 15:04:10 +00:00
|
|
|
OutlinerView* RemoveView( OutlinerView* pView );
|
2010-12-27 08:04:47 -08:00
|
|
|
OutlinerView* RemoveView( size_t nIndex );
|
|
|
|
OutlinerView* GetView( size_t nIndex ) const;
|
|
|
|
size_t GetViewCount() const;
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2013-08-14 13:44:38 +01:00
|
|
|
Paragraph* Insert( const OUString& rText, sal_Int32 nAbsPos = EE_PARA_APPEND, sal_Int16 nDepth = 0 );
|
2007-04-11 15:04:10 +00:00
|
|
|
void SetText( const OutlinerParaObject& );
|
|
|
|
void AddText( const OutlinerParaObject& );
|
2013-08-14 13:44:38 +01:00
|
|
|
void SetText( const OUString& rText, Paragraph* pParagraph );
|
|
|
|
OUString GetText( Paragraph* pPara, sal_Int32 nParaCount=1 ) const;
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2013-05-08 18:12:32 +02:00
|
|
|
OutlinerParaObject* CreateParaObject( sal_Int32 nStartPara = 0, sal_Int32 nParaCount = EE_PARA_ALL ) const;
|
2007-04-11 15:04:10 +00:00
|
|
|
|
|
|
|
const SfxItemSet& GetEmptyItemSet() const;
|
|
|
|
|
|
|
|
void SetRefMapMode( const MapMode& );
|
|
|
|
MapMode GetRefMapMode() const;
|
|
|
|
|
|
|
|
void SetBackgroundColor( const Color& rColor );
|
|
|
|
Color GetBackgroundColor() const;
|
|
|
|
|
2014-02-25 14:19:24 +02:00
|
|
|
void SetMaxDepth( sal_Int16 nDepth, bool bCheckParas = false );
|
|
|
|
sal_Int16 GetMaxDepth() const { return nMaxDepth; }
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2014-02-25 14:19:24 +02:00
|
|
|
void SetUpdateMode( bool bUpdate );
|
|
|
|
bool GetUpdateMode() const;
|
2007-04-11 15:04:10 +00:00
|
|
|
|
|
|
|
void Clear();
|
|
|
|
|
2014-02-25 14:19:24 +02:00
|
|
|
void RemoveAttribs( const ESelection& rSelection, bool bRemoveParaAttribs, sal_uInt16 nWhich );
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2013-05-08 18:12:32 +02:00
|
|
|
sal_Int32 GetParagraphCount() const;
|
|
|
|
Paragraph* GetParagraph( sal_Int32 nAbsPos ) const;
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2014-02-25 14:19:24 +02:00
|
|
|
bool HasParent( Paragraph* pParagraph ) const;
|
|
|
|
bool HasChildren( Paragraph* pParagraph ) const;
|
2013-05-08 18:12:32 +02:00
|
|
|
sal_Int32 GetChildCount( Paragraph* pParent ) const;
|
2014-02-25 14:19:24 +02:00
|
|
|
bool IsExpanded( Paragraph* pPara ) const;
|
|
|
|
Paragraph* GetParent( Paragraph* pParagraph ) const;
|
|
|
|
sal_Int32 GetAbsPos( Paragraph* pPara );
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2013-05-08 18:12:32 +02:00
|
|
|
sal_Int16 GetDepth( sal_Int32 nPara ) const;
|
2008-06-06 11:21:04 +00:00
|
|
|
void SetDepth( Paragraph* pParagraph, sal_Int16 nNewDepth );
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2015-04-10 14:12:10 +02:00
|
|
|
static bool IsVisible( Paragraph* pPara ) { return pPara->IsVisible(); }
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2014-02-25 14:19:24 +02:00
|
|
|
void EnableUndo( bool bEnable );
|
|
|
|
bool IsUndoEnabled() const;
|
2011-01-13 14:12:48 +01:00
|
|
|
void UndoActionStart( sal_uInt16 nId );
|
|
|
|
void UndoActionEnd( sal_uInt16 nId );
|
2007-04-11 15:04:10 +00:00
|
|
|
void InsertUndo( EditUndo* pUndo );
|
2014-02-25 14:19:24 +02:00
|
|
|
bool IsInUndo();
|
2007-04-11 15:04:10 +00:00
|
|
|
|
|
|
|
void ClearModifyFlag();
|
2014-02-25 14:19:24 +02:00
|
|
|
bool IsModified() const;
|
2007-04-11 15:04:10 +00:00
|
|
|
|
|
|
|
Paragraph* GetHdlParagraph() const { return pHdlParagraph; }
|
2014-02-25 14:19:24 +02:00
|
|
|
bool IsExpanding() const { return bIsExpanding; }
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2015-01-21 12:15:26 +02:00
|
|
|
void ExpandHdl();
|
2015-04-30 10:20:00 +02:00
|
|
|
void SetExpandHdl( const Link<>& rLink ) { aExpandHdl = rLink; }
|
|
|
|
Link<> GetExpandHdl() const { return aExpandHdl; }
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2015-01-21 12:15:26 +02:00
|
|
|
void ParagraphInsertedHdl();
|
2015-04-30 10:20:00 +02:00
|
|
|
void SetParaInsertedHdl(const Link<>& rLink){aParaInsertedHdl=rLink;}
|
|
|
|
Link<> GetParaInsertedHdl() const { return aParaInsertedHdl; }
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2015-01-21 12:15:26 +02:00
|
|
|
void ParagraphRemovingHdl();
|
2015-04-30 10:20:00 +02:00
|
|
|
void SetParaRemovingHdl(const Link<>& rLink){aParaRemovingHdl=rLink;}
|
|
|
|
Link<> GetParaRemovingHdl() const { return aParaRemovingHdl; }
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2015-01-21 12:15:26 +02:00
|
|
|
void DepthChangedHdl();
|
2015-04-30 10:20:00 +02:00
|
|
|
void SetDepthChangedHdl(const Link<>& rLink){aDepthChangedHdl=rLink;}
|
|
|
|
Link<> GetDepthChangedHdl() const { return aDepthChangedHdl; }
|
2013-05-08 18:12:32 +02:00
|
|
|
sal_Int16 GetPrevDepth() const { return static_cast<sal_Int16>(nDepthChangedHdlPrevDepth); }
|
2015-02-27 11:49:51 +02:00
|
|
|
ParaFlag GetPrevFlags() const { return mnDepthChangeHdlPrevFlags; }
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2015-04-27 17:56:06 +02:00
|
|
|
bool RemovingPagesHdl( OutlinerView* );
|
2015-04-30 10:20:00 +02:00
|
|
|
void SetRemovingPagesHdl(const Link<>& rLink){aRemovingPagesHdl=rLink;}
|
|
|
|
Link<> GetRemovingPagesHdl() const { return aRemovingPagesHdl; }
|
2015-01-21 12:15:26 +02:00
|
|
|
long IndentingPagesHdl( OutlinerView* );
|
2015-04-30 10:20:00 +02:00
|
|
|
void SetIndentingPagesHdl(const Link<>& rLink){aIndentingPagesHdl=rLink;}
|
|
|
|
Link<> GetIndentingPagesHdl() const { return aIndentingPagesHdl; }
|
2011-02-16 16:34:02 -05:00
|
|
|
// valid only in the two upper handlers
|
2013-05-08 18:12:32 +02:00
|
|
|
sal_Int32 GetSelPageCount() const { return nDepthChangedHdlPrevDepth; }
|
2011-02-16 16:34:02 -05:00
|
|
|
|
|
|
|
// valid only in the two upper handlers
|
2013-05-08 18:12:32 +02:00
|
|
|
sal_Int32 GetFirstSelPage() const { return mnFirstSelPage; }
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2015-04-30 10:20:00 +02:00
|
|
|
void SetCalcFieldValueHdl(const Link<>& rLink ) { aCalcFieldValueHdl= rLink; }
|
|
|
|
Link<> GetCalcFieldValueHdl() const { return aCalcFieldValueHdl; }
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2015-04-30 10:20:00 +02:00
|
|
|
void SetFieldClickedHdl(const Link<>& rLink ) { aFieldClickedHdl= rLink; }
|
|
|
|
Link<> GetFieldClickedHdl() const { return aFieldClickedHdl; }
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2015-04-30 10:20:00 +02:00
|
|
|
void SetDrawPortionHdl(const Link<>& rLink){aDrawPortionHdl=rLink;}
|
|
|
|
Link<> GetDrawPortionHdl() const { return aDrawPortionHdl; }
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2015-04-30 10:20:00 +02:00
|
|
|
void SetDrawBulletHdl(const Link<>& rLink){aDrawBulletHdl=rLink;}
|
|
|
|
Link<> GetDrawBulletHdl() const { return aDrawBulletHdl; }
|
2008-08-19 21:27:04 +00:00
|
|
|
|
2015-04-30 10:20:00 +02:00
|
|
|
void SetPaintFirstLineHdl(const Link<>& rLink) { maPaintFirstLineHdl = rLink; }
|
|
|
|
Link<> GetPaintFirstLineHdl() const { return maPaintFirstLineHdl; }
|
2008-06-06 11:21:04 +00:00
|
|
|
|
2015-04-30 10:20:00 +02:00
|
|
|
void SetModifyHdl( const Link<>& rLink );
|
|
|
|
Link<> GetModifyHdl() const;
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2015-04-30 10:20:00 +02:00
|
|
|
void SetNotifyHdl( const Link<>& rLink );
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2015-04-30 10:20:00 +02:00
|
|
|
void SetStatusEventHdl( const Link<>& rLink );
|
|
|
|
Link<> GetStatusEventHdl() const;
|
2007-04-11 15:04:10 +00:00
|
|
|
|
|
|
|
void Draw( OutputDevice* pOutDev, const Rectangle& rOutRect );
|
|
|
|
void Draw( OutputDevice* pOutDev, const Point& rStartPos, short nOrientation = 0 );
|
|
|
|
|
|
|
|
const Size& GetPaperSize() const;
|
|
|
|
void SetPaperSize( const Size& rSize );
|
|
|
|
|
2013-05-08 18:12:32 +02:00
|
|
|
void SetFirstPageNumber( sal_Int32 n ) { nFirstPage = n; }
|
|
|
|
sal_Int32 GetFirstPageNumber() const { return nFirstPage; }
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2015-01-21 12:15:26 +02:00
|
|
|
void SetPolygon( const basegfx::B2DPolyPolygon& rPolyPolygon );
|
|
|
|
void SetPolygon( const basegfx::B2DPolyPolygon& rPolyPolygon, const basegfx::B2DPolyPolygon* pLinePolyPolygon);
|
|
|
|
void ClearPolygon();
|
2007-04-11 15:04:10 +00:00
|
|
|
|
|
|
|
const Size& GetMinAutoPaperSize() const;
|
|
|
|
void SetMinAutoPaperSize( const Size& rSz );
|
|
|
|
|
|
|
|
const Size& GetMaxAutoPaperSize() const;
|
|
|
|
void SetMaxAutoPaperSize( const Size& rSz );
|
|
|
|
|
2011-01-13 14:12:48 +01:00
|
|
|
void SetDefTab( sal_uInt16 nTab );
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2014-02-25 14:19:24 +02:00
|
|
|
bool IsFlatMode() const;
|
|
|
|
void SetFlatMode( bool bFlat );
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2014-02-25 14:19:24 +02:00
|
|
|
void EnableAutoColor( bool b );
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2014-02-25 14:19:24 +02:00
|
|
|
void ForceAutoColor( bool b );
|
|
|
|
bool IsForceAutoColor() const;
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2013-05-08 18:12:32 +02:00
|
|
|
EBulletInfo GetBulletInfo( sal_Int32 nPara );
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2015-01-21 12:15:26 +02:00
|
|
|
void SetWordDelimiters( const OUString& rDelimiters );
|
|
|
|
OUString GetWordDelimiters() const;
|
|
|
|
OUString GetWord( sal_Int32 nPara, sal_Int32 nIndex );
|
2007-04-11 15:04:10 +00:00
|
|
|
|
|
|
|
void StripPortions();
|
|
|
|
|
2015-01-20 12:38:10 +02:00
|
|
|
void DrawingText( const Point& rStartPos, const OUString& rText,
|
2014-07-18 18:21:12 +02:00
|
|
|
sal_Int32 nTextStart, sal_Int32 nTextLen,
|
|
|
|
const long* pDXArray, const SvxFont& rFont,
|
|
|
|
sal_Int32 nPara, sal_Int32 nIndex, sal_uInt8 nRightToLeft,
|
|
|
|
const EEngineData::WrongSpellVector* pWrongSpellVector,
|
|
|
|
const SvxFieldData* pFieldData,
|
|
|
|
bool bEndOfLine,
|
|
|
|
bool bEndOfParagraph,
|
|
|
|
bool bEndOfBullet,
|
|
|
|
const ::com::sun::star::lang::Locale* pLocale,
|
|
|
|
const Color& rOverlineColor,
|
|
|
|
const Color& rTextLineColor);
|
|
|
|
|
2015-01-20 12:38:10 +02:00
|
|
|
void DrawingTab( const Point& rStartPos, long nWidth, const OUString& rChar,
|
2014-07-18 18:21:12 +02:00
|
|
|
const SvxFont& rFont, sal_Int32 nPara, sal_Int32 nIndex, sal_uInt8 nRightToLeft,
|
|
|
|
bool bEndOfLine,
|
|
|
|
bool bEndOfParagraph,
|
|
|
|
const Color& rOverlineColor,
|
|
|
|
const Color& rTextLineColor);
|
2010-09-14 15:28:33 +02:00
|
|
|
|
2007-04-11 15:04:10 +00:00
|
|
|
Size CalcTextSize();
|
2011-03-30 17:42:19 +02:00
|
|
|
Size CalcTextSizeNTP();
|
2007-04-11 15:04:10 +00:00
|
|
|
|
|
|
|
void SetStyleSheetPool( SfxStyleSheetPool* pSPool );
|
|
|
|
SfxStyleSheetPool* GetStyleSheetPool();
|
|
|
|
|
2014-02-25 14:19:24 +02:00
|
|
|
bool IsInSelectionMode() const;
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2013-05-08 18:12:32 +02:00
|
|
|
void SetStyleSheet( sal_Int32 nPara, SfxStyleSheet* pStyle );
|
|
|
|
SfxStyleSheet* GetStyleSheet( sal_Int32 nPara );
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2013-05-08 18:12:32 +02:00
|
|
|
void SetParaAttribs( sal_Int32 nPara, const SfxItemSet& );
|
|
|
|
SfxItemSet GetParaAttribs( sal_Int32 nPara );
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2013-05-08 18:12:32 +02:00
|
|
|
void Remove( Paragraph* pPara, sal_Int32 nParaCount );
|
2014-02-25 14:19:24 +02:00
|
|
|
bool Expand( Paragraph* );
|
|
|
|
bool Collapse( Paragraph* );
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2015-02-27 11:49:51 +02:00
|
|
|
void SetParaFlag( Paragraph* pPara, ParaFlag nFlag );
|
2015-04-10 14:12:10 +02:00
|
|
|
static bool HasParaFlag( const Paragraph* pPara, ParaFlag nFlag );
|
2008-07-30 13:15:33 +00:00
|
|
|
|
2011-02-16 16:34:02 -05:00
|
|
|
// Returns an array containing the widths of the Bullet Indentations
|
|
|
|
// Last value must be -1. Is deleted by the outliner.
|
2015-04-30 10:20:00 +02:00
|
|
|
Link<> GetWidthArrReqHdl() const{ return aWidthArrReqHdl; }
|
|
|
|
void SetWidthArrReqHdl(const Link<>& rLink){aWidthArrReqHdl=rLink; }
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2015-03-24 16:05:55 +02:00
|
|
|
void SetControlWord( EEControlBits nWord );
|
|
|
|
EEControlBits GetControlWord() const;
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2015-04-30 10:20:00 +02:00
|
|
|
Link<> GetBeginMovingHdl() const { return aBeginMovingHdl; }
|
|
|
|
void SetBeginMovingHdl(const Link<>& rLink) {aBeginMovingHdl=rLink;}
|
|
|
|
Link<> GetEndMovingHdl() const {return aEndMovingHdl;}
|
|
|
|
void SetEndMovingHdl( const Link<>& rLink){aEndMovingHdl=rLink;}
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2013-05-08 18:12:32 +02:00
|
|
|
sal_uLong GetLineCount( sal_Int32 nParagraph ) const;
|
2014-02-02 22:16:48 -06:00
|
|
|
sal_Int32 GetLineLen( sal_Int32 nParagraph, sal_Int32 nLine ) const;
|
|
|
|
sal_uLong GetLineHeight( sal_Int32 nParagraph, sal_Int32 nLine = 0 );
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2013-09-06 16:31:38 +02:00
|
|
|
sal_uLong Read( SvStream& rInput, const OUString& rBaseURL, sal_uInt16, SvKeyValueIterator* pHTTPHeaderAttrs = NULL );
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2012-08-09 08:42:27 +00:00
|
|
|
::svl::IUndoManager& GetUndoManager();
|
|
|
|
::svl::IUndoManager* SetUndoManager(::svl::IUndoManager* pNew);
|
2007-04-11 15:04:10 +00:00
|
|
|
|
|
|
|
void QuickSetAttribs( const SfxItemSet& rSet, const ESelection& rSel );
|
|
|
|
void QuickInsertField( const SvxFieldItem& rFld, const ESelection& rSel );
|
|
|
|
void QuickInsertLineBreak( const ESelection& rSel );
|
|
|
|
|
2011-02-16 16:34:02 -05:00
|
|
|
// Only for EditEngine mode
|
2013-08-14 13:44:38 +01:00
|
|
|
void QuickInsertText( const OUString& rText, const ESelection& rSel );
|
2007-04-11 15:04:10 +00:00
|
|
|
void QuickDelete( const ESelection& rSel );
|
2014-09-03 19:38:22 +02:00
|
|
|
void RemoveCharAttribs( sal_Int32 nPara, sal_uInt16 nWhich = 0 );
|
2014-02-25 14:19:24 +02:00
|
|
|
void QuickFormatDoc( bool bFull = false );
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2014-02-25 14:19:24 +02:00
|
|
|
bool UpdateFields();
|
|
|
|
void RemoveFields( bool bKeepFieldText, TypeId aType = NULL );
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2015-01-21 12:15:26 +02:00
|
|
|
void FieldClicked( const SvxFieldItem& rField, sal_Int32 nPara, sal_Int32 nPos );
|
|
|
|
void FieldSelected( const SvxFieldItem& rField, sal_Int32 nPara, sal_Int32 nPos );
|
2014-02-02 22:16:48 -06:00
|
|
|
virtual OUString CalcFieldValue( const SvxFieldItem& rField, sal_Int32 nPara, sal_Int32 nPos, Color*& rTxtColor, Color*& rFldColor );
|
2007-04-11 15:04:10 +00:00
|
|
|
|
|
|
|
void SetSpeller( ::com::sun::star::uno::Reference<
|
|
|
|
::com::sun::star::linguistic2::XSpellChecker1 > &xSpeller );
|
|
|
|
::com::sun::star::uno::Reference<
|
|
|
|
::com::sun::star::linguistic2::XSpellChecker1 >
|
|
|
|
GetSpeller();
|
|
|
|
void SetHyphenator( ::com::sun::star::uno::Reference<
|
|
|
|
::com::sun::star::linguistic2::XHyphenator >& xHyph );
|
|
|
|
|
2015-04-10 14:12:10 +02:00
|
|
|
static void SetForbiddenCharsTable( rtl::Reference<SvxForbiddenCharactersTable> xForbiddenChars );
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2014-05-04 23:14:29 +02:00
|
|
|
// Deprecated
|
2007-04-11 15:04:10 +00:00
|
|
|
void SetDefaultLanguage( LanguageType eLang );
|
|
|
|
LanguageType GetDefaultLanguage() const;
|
|
|
|
|
|
|
|
void CompleteOnlineSpelling();
|
|
|
|
|
|
|
|
EESpellState HasSpellErrors();
|
2014-02-25 14:19:24 +02:00
|
|
|
bool HasText( const SvxSearchItem& rSearchItem );
|
|
|
|
virtual bool SpellNextDocument();
|
2007-04-11 15:04:10 +00:00
|
|
|
|
|
|
|
// for text conversion
|
2014-02-25 14:19:24 +02:00
|
|
|
bool HasConvertibleTextPortion( LanguageType nLang );
|
|
|
|
virtual bool ConvertNextDocument();
|
2007-04-11 15:04:10 +00:00
|
|
|
|
|
|
|
void SetEditTextObjectPool( SfxItemPool* pPool );
|
|
|
|
SfxItemPool* GetEditTextObjectPool() const;
|
|
|
|
|
|
|
|
void SetRefDevice( OutputDevice* pRefDev );
|
|
|
|
OutputDevice* GetRefDevice() const;
|
|
|
|
|
2011-01-13 14:12:48 +01:00
|
|
|
sal_uLong GetTextHeight() const;
|
2013-05-08 18:12:32 +02:00
|
|
|
sal_uLong GetTextHeight( sal_Int32 nParagraph ) const;
|
|
|
|
Point GetDocPosTopLeft( sal_Int32 nParagraph );
|
2007-04-11 15:04:10 +00:00
|
|
|
Point GetDocPos( const Point& rPaperPos ) const;
|
2014-02-25 14:19:24 +02:00
|
|
|
bool IsTextPos( const Point& rPaperPos, sal_uInt16 nBorder = 0 );
|
|
|
|
bool IsTextPos( const Point& rPaperPos, sal_uInt16 nBorder, bool* pbBulletPos );
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2011-01-13 14:12:48 +01:00
|
|
|
void SetGlobalCharStretching( sal_uInt16 nX = 100, sal_uInt16 nY = 100 );
|
2013-03-09 22:02:47 +04:00
|
|
|
void GetGlobalCharStretching( sal_uInt16& rX, sal_uInt16& rY ) const;
|
2007-04-11 15:04:10 +00:00
|
|
|
void EraseVirtualDevice();
|
|
|
|
|
2014-02-25 14:19:24 +02:00
|
|
|
bool ShouldCreateBigTextObject() const;
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2014-12-05 09:58:23 +01:00
|
|
|
const EditEngine& GetEditEngine() const;
|
2007-04-11 15:04:10 +00:00
|
|
|
|
|
|
|
// this is needed for StarOffice Api
|
2013-05-08 18:12:32 +02:00
|
|
|
void SetLevelDependendStyleSheet( sal_Int32 nPara );
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2011-01-13 14:12:48 +01:00
|
|
|
sal_uInt16 GetOutlinerMode() const { return nOutlinerMode & OUTLINERMODE_USERMASK; }
|
2007-04-11 15:04:10 +00:00
|
|
|
|
2014-02-25 14:19:24 +02:00
|
|
|
void StartSpelling(EditView& rEditView, bool bMultipleDoc);
|
2011-02-16 16:34:02 -05:00
|
|
|
// spell and return a sentence
|
2015-04-30 07:15:55 +03:00
|
|
|
bool SpellSentence(EditView& rEditView, svx::SpellPortions& rToFill, bool bIsGrammarChecking );
|
2008-12-15 12:01:46 +00:00
|
|
|
// put spell position to start of current sentence
|
|
|
|
void PutSpellingToSentenceStart( EditView& rEditView );
|
2011-02-16 16:34:02 -05:00
|
|
|
// applies a changed sentence
|
2015-04-30 07:15:55 +03:00
|
|
|
void ApplyChangedSentence(EditView& rEditView, const svx::SpellPortions& rNewPortions, bool bRecheck );
|
2007-04-11 15:04:10 +00:00
|
|
|
|
|
|
|
/** sets a link that is called at the beginning of a drag operation at an edit view */
|
2015-04-30 10:20:00 +02:00
|
|
|
void SetBeginDropHdl( const Link<>& rLink );
|
2007-04-11 15:04:10 +00:00
|
|
|
|
|
|
|
/** sets a link that is called at the end of a drag operation at an edit view */
|
2015-04-30 10:20:00 +02:00
|
|
|
void SetEndDropHdl( const Link<>& rLink );
|
2008-06-06 11:21:04 +00:00
|
|
|
|
|
|
|
/** sets a link that is called before a drop or paste operation. */
|
2015-04-30 10:20:00 +02:00
|
|
|
void SetBeginPasteOrDropHdl( const Link<>& rLink );
|
|
|
|
Link<> GetBeginPasteOrDropHdl() const { return maBeginPasteOrDropHdl; }
|
2008-06-06 11:21:04 +00:00
|
|
|
|
|
|
|
/** sets a link that is called after a drop or paste operation. */
|
2015-04-30 10:20:00 +02:00
|
|
|
void SetEndPasteOrDropHdl( const Link<>& rLink );
|
|
|
|
Link<> GetEndPasteOrDropHdl() const { return maEndPasteOrDropHdl; }
|
2008-06-06 11:21:04 +00:00
|
|
|
|
2015-01-20 12:38:10 +02:00
|
|
|
sal_Int16 GetNumberingStartValue( sal_Int32 nPara );
|
|
|
|
void SetNumberingStartValue( sal_Int32 nPara, sal_Int16 nNumberingStartValue );
|
2008-06-06 11:21:04 +00:00
|
|
|
|
2015-01-20 12:38:10 +02:00
|
|
|
bool IsParaIsNumberingRestart( sal_Int32 nPara );
|
|
|
|
void SetParaIsNumberingRestart( sal_Int32 nPara, bool bParaIsNumberingRestart );
|
2013-04-10 08:20:16 +00:00
|
|
|
|
2013-05-29 08:10:49 +00:00
|
|
|
/** determine the bullets/numbering status of the given paragraphs
|
|
|
|
|
|
|
|
@param nParaStart
|
|
|
|
index of paragraph at which the check starts
|
|
|
|
|
|
|
|
@param nParaEnd
|
|
|
|
index of paragraph at which the check ends
|
|
|
|
|
|
|
|
@returns
|
|
|
|
0 : all paragraphs have bullets
|
|
|
|
1 : all paragraphs have numbering
|
|
|
|
2 : otherwise
|
|
|
|
*/
|
|
|
|
sal_Int32 GetBulletsNumberingStatus(
|
|
|
|
const sal_Int32 nParaStart,
|
|
|
|
const sal_Int32 nParaEnd ) const;
|
|
|
|
|
|
|
|
// convenient method to determine the bullets/numbering status for all paragraphs
|
|
|
|
sal_Int32 GetBulletsNumberingStatus() const;
|
2007-04-11 15:04:10 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
2010-10-27 13:11:31 +01:00
|
|
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|