office-gobmx/svx/sdi/svxitems.sdi
László Németh 7a1d4b7d1d tdf#149420 sw offapi xmloff: add hyphenation zone
Add hyphenation zone support, i.e. allow the specified
amount of extra space in lines instead of forcing hyphenation.
It's for limiting hyphenation, used especially with
not justified paragraph alignment.

Note: this is an OOXML interoperability feature,
used also in DTP software and CSS.

* Add checkbox to Text Flow in paragraph dialog
* Store property in paragraph model (com::sun::style::ParagraphProperties::ParaHyphenationZone)
* Add ODF import/export
* Add ODF unit test
* Add layout test

Note: extend SvxHyphenZoneItem::GetPresentation() with
missing No CAPS and No last word hyphenation options.

Note: fix OSL_ENSURE condition in SwTextFormatInfo::GetHyphValues().

Follow-up to commit 29359fc15c
"tdf#149324 sw offapi xmloff: add option to not hyphenate short words".

Change-Id: Ib8eff6ea98a9aa5ca6cb9d17faa0bbb789687ce9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135247
Tested-by: Jenkins
Reviewed-by: László Németh <nemeth@numbertext.org>
2022-06-02 09:57:39 +02:00

461 lines
12 KiB
Text

/*
* 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 .
*/
enum SvxCellHorJustifyEnum
{
SVX_HOR_JUSTIFY_STANDARD,
SVX_HOR_JUSTIFY_LEFT,
SVX_HOR_JUSTIFY_CENTER,
SVX_HOR_JUSTIFY_RIGHT,
SVX_HOR_JUSTIFY_BLOCK,
SVX_HOR_JUSTIFY_REPEAT
};
enum SvxCellVerJustifyEnum
{
SVX_VER_JUSTIFY_STANDARD,
SVX_VER_JUSTIFY_TOP,
SVX_VER_JUSTIFY_CENTER,
SVX_VER_JUSTIFY_BOTTOM
};
enum SvxCellOrientationEnum
{
SVX_ORIENTATION_STANDARD,
SVX_ORIENTATION_TOPBOTTOM,
SVX_ORIENTATION_BOTTOMTOP,
SVX_ORIENTATION_STACKED
};
enum SvxAdjust
{
SVX_ADJUST_LEFT,
SVX_ADJUST_RIGHT,
SVX_ADJUST_BLOCK,
SVX_ADJUST_CENTER,
SVX_ADJUST_BLOCKLINE,
SVX_ADJUST_END
};
struct SvxAdjustStruct
{
SvxAdjust ParagraphAdjustment MID_PARA_ADJUST;
SvxAdjust LastLineAdjustment MID_LAST_LINE_ADJUST;
BOOL ExpandSingleWord MID_EXPAND_SINGLE;
};
item SvxAdjustStruct SvxAdjustItem;
enum SvxCaseMap
{
SVX_CASEMAP_NOT_MAPPED,
SVX_CASEMAP_UPPERCASE,
SVX_CASEMAP_LOWERCASE,
SVX_CASEMAP_TITLE,
SVX_CASEMAP_SMALLCAPS,
SVX_CASEMAP_END
};
item SvxCaseMap SvxCaseMapItem;
enum CharSet
{
CHARSET_DONTKNOW,
CHARSET_ANSI,
CHARSET_MAC,
CHARSET_IBMPC_437,
CHARSET_IBMPC_850,
CHARSET_IBMPC_860,
CHARSET_IBMPC_861,
CHARSET_IBMPC_863,
CHARSET_IBMPC_865,
CHARSET_SYSTEM,
CHARSET_SYMBOL
};
enum FontFamily
{
FAMILY_DONTKNOW,
FAMILY_DECORATIVE,
FAMILY_MODERN,
FAMILY_ROMAN,
FAMILY_SCRIPT,
FAMILY_SWISS,
FAMILY_SYSTEM
};
enum FontPitch
{
PITCH_DONTKNOW,
PITCH_FIXED,
PITCH_VARIABLE
};
struct SvxFont
{
String StyleName MID_FONT_STYLE_NAME;
FontPitch Pitch MID_FONT_PITCH; // INT16
CharSet CharSet MID_FONT_CHAR_SET; // INT16
FontFamily Family MID_FONT_FAMILY; // INT16
String FamilyName MID_FONT_FAMILY_NAME;
};
item SvxFont SvxFontItem;
enum FontWeight
{
WEIGHT_DONTKNOW,
WEIGHT_THIN,
WEIGHT_ULTRALIGHT,
WEIGHT_LIGHT,
WEIGHT_SEMILIGHT,
WEIGHT_NORMAL,
WEIGHT_MEDIUM,
WEIGHT_SEMIBOLD,
WEIGHT_BOLD,
WEIGHT_ULTRABOLD,
WEIGHT_BLACK
};
item FontWeight SvxWeightItem;
enum FontUnderline
{
UNDERLINE_NONE,
UNDERLINE_SINGLE,
UNDERLINE_DOUBLE,
UNDERLINE_DOTTED
};
enum FontStrikeout
{
STRIKEOUT_NONE,
STRIKEOUT_SINGLE,
STRIKEOUT_DOUBLE
};
enum FontItalic
{
ITALIC_NONE,
ITALIC_OBLIQUE,
ITALIC_NORMAL
};
item FontItalic SvxPostureItem;
enum SvxShadowLocation
{
SVX_SHADOW_NONE,
SVX_SHADOW_TOPLEFT,
SVX_SHADOW_TOPRIGHT,
SVX_SHADOW_BOTTOMLEFT,
SVX_SHADOW_BOTTOMRIGHT,
SVX_SHADOW_END
};
item SvxShadowLocation SvxShadowLocationItem;
item INT16 SvxCharScaleWidthItem;
item INT16 SvxParaVertAlignItem;
item INT16 SvxCharReliefItem;
item BOOL SvxBlinkItem;
item BOOL SvxAutoKernItem;
item INT32 SvxColorItem;
item BOOL SvxContourItem;
item INT16 SvxFormatBreakItem; // enum
item BOOL SvxFormatKeepItem;
item BOOL SvxFormatSplitItem;
item INT16 SvxKerningItem;
item INT16 SvxLanguageItem;
item BYTE SvxOrphansItem;
item BYTE SvxPaperBinItem;
item String SvxPostItAuthorItem;
item String SvxPostItDateItem;
item String SvxPostItTextItem;
item INT32 SvxPostItIdItem;
item FontItalic SvxPostureItem; // enum
item BOOL SvxPrintItem;
item UINT16 SvxPropSizeItem; // derived from UInt16Item
item BOOL SvxShadowedItem;
item BYTE SvxWidowsItem;
item BOOL SvxWordLineModeItem;
item SvxCellHorJustifyEnum SvxHorJustifyItem;
item SvxCellVerJustifyEnum SvxVerJustifyItem;
item SvxCellOrientationEnum SvxOrientationItem;
item BOOL SdrOnOffItem;
item INT32 SdrAngleItem; // derived from SfxInt32Item
item INT16 SdrTextFitToSizeTypeItem; // enum
item String SfxStringListItem; // serialized into one concatenated string
item double SvxDoubleItem;
item String OfaXColorListItem;
item String SvxDashListItem;
item String SvxLineEndListItem;
item String SvxColorListItem;
item String SvxGradientListItem;
item String SvxHatchListItem;
item String SvxBitmapListItem;
item String SvxPatternListItem;
item String SfxLockBytesItem;
item String SvxFontListItem;
item String avmedia_MediaItem;
item INT32 XColorItem;
item INT16 SdrPercentItem;
item INT32 SdrMetricItem;
item BYTE SfxGlobalNameItem;
struct SvxCrossedOut
{
FontStrikeout Kind MID_CROSS_OUT;
};
item SvxCrossedOut SvxCrossedOutItem;
struct SvxTextLine
{
FontUnderline LineStyle MID_TL_STYLE;
BOOL HasColor MID_TL_HASCOLOR;
INT32 Color MID_TL_COLOR;
};
item SvxTextLine SvxUnderlineItem;
item SvxTextLine SvxOverlineItem;
struct SvxBrush
{
BOOL Transparent MID_GRAPHIC_TRANSPARENT;
INT32 BackColor MID_BACK_COLOR;
String Filtername MID_GRAPHIC_FILTER;
INT16 Position MID_GRAPHIC_POSITION;
};
item SvxBrush SvxBrushItem;
struct SvxEscapement
{
INT16 Escapement MID_ESC;
BYTE Height MID_ESC_HEIGHT;
BOOL Auto MID_AUTO_ESC;
};
item SvxEscapement SvxEscapementItem;
struct SvxFontHeight
{
float Height MID_FONTHEIGHT; // may be converted to INT32
INT16 Prop MID_FONTHEIGHT_PROP;
float Diff MID_FONTHEIGHT_DIFF; // may be converted to INT32
};
item SvxFontHeight SvxFontHeightItem;
struct SvxHyphenZone
{
BOOL Hyphen MID_IS_HYPHEN;
INT16 MinLead MID_HYPHEN_MIN_LEAD;
INT16 MinTrail MID_HYPHEN_MIN_TRAIL;
INT16 MaxHyphens MID_HYPHEN_MAX_HYPHENS;
INT16 MinWordLength MID_HYPHEN_MIN_WORD_LENGTH;
INT16 HyphenZone MID_HYPHEN_ZONE;
};
item SvxHyphenZone SvxHyphenZoneItem;
struct SvxLine
{
INT32 LineFGColor MID_FG_COLOR;
INT32 LineOutWidth MID_OUTER_WIDTH;
INT32 LineInWidth MID_INNER_WIDTH;
INT32 LineDistance MID_DISTANCE;
};
item SvxLine SvxLineItem;
struct SvxLRSpace
{
INT32 LeftMargin MID_L_MARGIN; // % or direct
INT32 TextLeftMargin MID_TXT_LMARGIN;
INT32 RightMargin MID_R_MARGIN; // % or direct
INT16 LeftRelMargin MID_L_REL_MARGIN;
INT16 RightRelMargin MID_R_REL_MARGIN;
INT32 FirstLineIndent MID_FIRST_LINE_INDENT; // % or direct
INT32 FirstLineRelIdent MID_FIRST_LINE_REL_INDENT;
BOOL AutoFirst MID_FIRST_AUTO;
};
item SvxLRSpace SvxLRSpaceItem;
struct SvxLineSpacing
{
INT16 Mode MID_LINESPACE;
INT16 Height MID_HEIGHT;
};
item SvxLineSpacing SvxLineSpacingItem;
struct SvxPage
{
BOOL Landscape MID_PAGE_ORIENTATION;
INT16 Layout MID_PAGE_LAYOUT;
INT16 NumType MID_PAGE_NUMTYPE;
};
item SvxPage SvxPageItem;
struct SvxPagePosSize
{
INT32 XPos MID_X; // ???
INT32 YPos MID_Y; // ???
INT32 Width MID_WIDTH; // ???
INT32 Height MID_HEIGHT; // ???
};
item SvxPagePosSize SvxPagePosSizeItem;
struct SvxShadow
{
SvxShadowLocation Location MID_LOCATION;
INT16 Width MID_WIDTH;
BOOL IsTransparent MID_TRANSPARENT;
INT32 Color MID_BG_COLOR;
};
item SvxShadow SvxShadowItem;
struct SvxULSpace
{
INT32 TopMargin MID_UP_MARGIN; // % or direct
INT32 BottomMargin MID_LO_MARGIN; // % or direct
BOOL ContextMargin MID_CTX_MARGIN;
INT16 TopRelMargin MID_UP_REL_MARGIN;
INT16 BottomRelMargin MID_LO_REL_MARGIN;
};
item SvxULSpace SvxULSpaceItem
struct SvxLongLRSpace
{
INT32 Left MID_LEFT; // ???
INT32 Right MID_RIGHT; // ???
};
item SvxLongLRSpace SvxLongLRSpaceItem;
struct SvxLongULSpace
{
INT32 Upper MID_UPPER; // ???
INT32 Lower MID_LOWER; // ???
};
item SvxLongULSpace SvxLongULSpaceItem;
struct SvxHyperlink
{
String Text MID_HLINK_TEXT;
String URL MID_HLINK_URL;
String Target MID_HLINK_TARGET;
String Name MID_HLINK_NAME;
INT32 Type MID_HLINK_TYPE;
};
item SvxHyperlink SvxHyperlinkItem;
struct PageModel
{
BOOL Auto MID_AUTO;
String Name MID_NAME;
};
item PageModel SvxPageModelItem;
struct SvxProtect
{
BOOL Content MID_PROTECT_CONTENT;
BOOL Size MID_PROTECT_SIZE;
BOOL Position MID_PROTECT_POSITION;
};
item SvxProtect SvxProtectItem;
struct SvxRulerObject
{
INT32 StartX MID_START_X;
INT32 StartY MID_START_Y;
INT32 EndX MID_END_X;
INT32 EndY MID_END_Y;
BOOL Limited MID_LIMIT;
};
item SvxRulerObject SvxObjectItem;
item String LineBorder; // dummy for sequence
struct SvxBox
{
LineBorder LeftBorder MID_LEFT_BORDER;
INT32 LeftDistance LEFT_BORDER_DISTANCE;
LineBorder RightBorder MID_RIGHT_BORDER;
INT32 RightDistance RIGHT_BORDER_DISTANCE;
LineBorder TopBorder MID_TOP_BORDER;
INT32 TopDistance TOP_BORDER_DISTANCE;
LineBorder BottomBorder MID_BOTTOM_BORDER;
INT32 BottomDistance BOTTOM_BORDER_DISTANCE;
};
item SvxBox SvxBoxItem;
struct SvxBoxInfo
{
LineBorder Horizontal MID_HORIZONTAL;
LineBorder Vertical MID_VERTICAL;
INT16 Flags MID_FLAGS;
INT16 ValidFlags MID_VALIDFLAGS;
INT32 DefaultDistance MID_DISTANCE;
};
item SvxBoxInfo SvxBoxInfoItem;
item String SvxColumns; // dummy for sequence
struct SvxColumnDescription
{
SvxColumns Columns MID_COLUMNARRAY; // currently not implemented
INT32 Left MID_LEFT;
INT32 Right MID_RIGHT;
INT32 Actual MID_ACTUAL;
BOOL Orthogonal MID_ORTHO;
BOOL Table MID_TABLE;
};
item SvxColumnDescription SvxColumnItem;
struct SvxTabStop
{
String TabStops MID_TABSTOPS; // dummy, will be represented by array of structs
//INT32 StandardTabStop MID_STD_TAB;
};
item SvxTabStop SvxTabStopItem;
struct SvxCharRotate
{
INT16 Rotation MID_ROTATE;
BOOL FitToLine MID_FITTOLINE;
};
item SvxCharRotate SvxCharRotateItem;
item String SfxSetItem; // dummy
item INT16 SvxRotateModeItem; // enum
struct SvxMargin
{
INT32 LeftMargin MID_MARGIN_L_MARGIN;
INT32 RightMargin MID_MARGIN_R_MARGIN;
INT32 UpperMargin MID_MARGIN_UP_MARGIN;
INT32 LowerMargin MID_MARGIN_LO_MARGIN;
};
item SvxMargin SvxMarginItem;
struct SvxEmphasisMark
{
INT32 Emphasis MID_EMPHASIS;
};
item SvxEmphasisMark SvxEmphasisMarkItem;
item String SvxSmartTagItem; // dummy for sequence
item String Points; // dummy for sequence
struct ZoomSlider
{
INT16 CurrentZoom MID_ZOOMSLIDER_CURRENTZOOM;
Points SnappingPoints MID_ZOOMSLIDER_SNAPPINGPOINTS;
INT16 SvxMinZoom MID_ZOOMSLIDER_MINZOOM;
INT16 SvxMaxZoom MID_ZOOMSLIDER_MAXZOOM;
};
item ZoomSlider SvxZoomSliderItem;
item String SvxGalleryItem; // dummy for sequence