Files
odfstudio/editeng/Library_editeng.mk
Armin Le Grand (Collabora) 782131d3a3 StripPortions: Move tooling closer to EditEngine/Outliner
EditEngine/Outliner::StripPortions is used with some lambda
callbacks to convert Text to Primitives. The tooling for this
is currently located in svx due to historical reasons (when I
initially did that).

An EditEngine/Outliner gets configured, this is dependent
of the object type to handle (see TextBreakupHandler in svx
and other places).

Then the OutlinerParaObject gets set - the model data.
EditEngine::StripPortions then initially uses
ImpEditEngine::Paint which layouts all that and formats it.
For all Text (or Graphics e.g. Bullets) those callbacks are
used - if given. If not given it *still* does a direct paint
to a given OutputDevice to stay compatible with legacy
usages.

Thus ImpEditEngine::Paint is currently kind of an hybrid: It
needs to be capable of both: For Primitive creation it
extracts data to DrawPortionInfo or DrawBulletInfo and calls
the lambda callback where (e.g. in svx) the Primitives are
created as needed based on that data.
For Paint that data is used to Paint using the given
OutputDevice.

This means up to now for doing changes both had to be
supported in that method which of course hosts the danger
of getting unequal outputs when not being very careful.

The DirectPaint is now rarely used (AFAIK only in some UI
elements, e.g. WeldEditView stuff).

The goal is to go in a direction where it would be possible
to do those remaining Paint calls direcly inside ImpEditEngine
using primitives, or - alternatively - change all remaining
places to use a unified StripPortions method and send the
result to a PrimitiveRenderer or buffer/resue it.

This change is a 1st step to get the preconditions but does
not change functionality yet. It moves that tooling to where
it is used.

Change-Id: I7225eab9a0dfd3d50cd3d1d8fe386dfb99ec42ef
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/186045
Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
Tested-by: Jenkins
2025-06-06 11:37:06 +02:00

177 lines
5.7 KiB
Makefile

# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
#
# 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 .
#
$(eval $(call gb_Library_Library,editeng))
$(eval $(call gb_Library_set_include,editeng,\
$$(INCLUDE) \
-I$(SRCDIR)/editeng/inc \
-I$(SRCDIR)/editeng/source/editeng \
))
$(eval $(call gb_Library_use_custom_headers,editeng,editeng/generated))
$(eval $(call gb_Library_set_precompiled_header,editeng,editeng/inc/pch/precompiled_editeng))
$(eval $(call gb_Library_add_defs,editeng,\
-DEDITENG_DLLIMPLEMENTATION \
))
$(eval $(call gb_Library_use_sdk_api,editeng))
ifneq ($(ENABLE_WASM_STRIP_ACCESSIBILITY),TRUE)
$(eval $(call gb_Library_add_exception_objects,editeng,\
editeng/source/accessibility/AccessibleContextBase \
editeng/source/accessibility/AccessibleEditableTextPara \
editeng/source/accessibility/AccessibleHyperlink \
editeng/source/accessibility/AccessibleImageBullet \
editeng/source/accessibility/AccessibleParaManager \
editeng/source/accessibility/AccessibleSelectionBase \
editeng/source/accessibility/AccessibleStaticTextBase \
editeng/source/accessibility/AccessibleStringWrap \
))
endif
$(eval $(call gb_Library_add_exception_objects,editeng,\
editeng/source/editeng/ContentNode \
editeng/source/editeng/editattr \
editeng/source/editeng/editdata \
editeng/source/editeng/editdbg \
editeng/source/editeng/editdoc \
editeng/source/editeng/editeng \
editeng/source/editeng/EditLine \
editeng/source/editeng/editobj \
editeng/source/editeng/editsel \
editeng/source/editeng/editundo \
editeng/source/editeng/editview \
editeng/source/editeng/edtspell \
editeng/source/editeng/eehtml \
editeng/source/editeng/eeobj \
editeng/source/editeng/eerdll \
editeng/source/editeng/eertfpar \
editeng/source/editeng/fieldupdater \
editeng/source/editeng/impedit \
editeng/source/editeng/impedit2 \
editeng/source/editeng/impedit3 \
editeng/source/editeng/impedit4 \
editeng/source/editeng/impedit5 \
editeng/source/editeng/misspellrange \
editeng/source/editeng/section \
editeng/source/editeng/StripPortionsHelper \
editeng/source/editeng/textconv \
editeng/source/editeng/TextPortionList \
editeng/source/items/borderline \
editeng/source/items/bulitem \
editeng/source/items/CustomPropertyField \
editeng/source/items/charhiddenitem \
editeng/source/items/flditem \
editeng/source/items/frmitems \
editeng/source/items/itemtype \
editeng/source/items/justifyitem \
editeng/source/items/numitem \
editeng/source/items/legacyitem \
editeng/source/items/optitems \
editeng/source/items/paperinf \
editeng/source/items/paraitem \
editeng/source/items/rubyitem \
editeng/source/items/svdfield \
editeng/source/items/svxfont \
editeng/source/items/textitem \
editeng/source/items/writingmodeitem \
editeng/source/items/xmlcnitm \
editeng/source/misc/acorrcfg \
editeng/source/misc/edtdlg \
editeng/source/misc/forbiddencharacterstable \
editeng/source/misc/hangulhanja \
editeng/source/misc/splwrap \
editeng/source/misc/svxacorr \
editeng/source/misc/SvXMLAutoCorrectTokenHandler \
editeng/source/misc/SvXMLAutoCorrectExport \
editeng/source/misc/SvXMLAutoCorrectImport \
editeng/source/misc/swafopt \
editeng/source/misc/txtrange \
editeng/source/misc/unolingu \
editeng/source/misc/urlfieldhelper \
editeng/source/outliner/outleeng \
editeng/source/outliner/outlin2 \
editeng/source/outliner/outliner \
editeng/source/outliner/outlobj \
editeng/source/outliner/outlundo \
editeng/source/outliner/outlvw \
editeng/source/outliner/overflowingtxt \
editeng/source/outliner/paralist \
editeng/source/rtf/rtfitem \
editeng/source/rtf/svxrtf \
editeng/source/uno/unoedhlp \
editeng/source/uno/unoedprx \
editeng/source/uno/unoedsrc \
editeng/source/uno/unofdesc \
editeng/source/uno/unofield \
editeng/source/uno/UnoForbiddenCharsTable \
editeng/source/uno/unofored \
editeng/source/uno/unoforou \
editeng/source/uno/unoipset \
editeng/source/uno/unonrule \
editeng/source/uno/unopracc \
editeng/source/uno/unotext \
editeng/source/uno/unotext2 \
editeng/source/uno/unoviwou \
editeng/source/xml/xmltxtexp \
editeng/source/xml/xmltxtimp \
editeng/source/lookuptree/Trie \
))
# add libraries to be linked to editeng; again these names need to be given as
# specified in Repository.mk
$(eval $(call gb_Library_use_libraries,editeng,\
xo \
basegfx \
docmodel \
drawinglayercore \
drawinglayer \
lng \
svt \
tk \
vcl \
svl \
sot \
sfx \
utl \
tl \
comphelper \
ucbhelper \
cppuhelper \
cppu \
sal \
salhelper \
sax \
i18nlangtag \
i18nutil \
))
$(eval $(call gb_Library_use_externals,editeng,\
boost_headers \
icuuc \
icu_headers \
libxml2 \
yrs \
))
# vim: set noet sw=4 ts=4: