office-gobmx/sw/inc/formatwraptextatflystart.hxx
Miklos Vajna b1b0cc1b0b sw floattable: add per-frame wrap-on-all-pages mode
Currently the wrap-on-all pages mode is off by default and a
document-level setting can enable it for all split flys.

Allowing this at a per-frame level (and not only per-doc level) is
suggested in <https://issues.oasis-open.org/browse/OFFICE-4150>. Given
that this floating table proposal is coming from us, it makes sense to
also support this additional attribute from the proposal, even if it's
not supported by Word.

Fix this by adding a new SwFormatWrapTextAtFlyStart property on fly
frames: this is meant to be enabled when wrap-on-all-pages is wanted for
this fly, but it's disabled at a per-doc level.

Unlike SwFormatFlySplit, this is meant to be easy at a layout level,
since SwFlyAtContentFrame::IsWrapOnAllPages() is already a per-frame
function, it is just backed with a per-doc setting.

Change-Id: I8f562102c2bc366a36c08895b681c4a2ab256bd9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159847
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
2023-11-23 09:54:27 +01:00

50 lines
1.7 KiB
C++

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* 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 .
*/
#pragma once
#include <svl/eitem.hxx>
#include "swdllapi.h"
#include "hintids.hxx"
#include "format.hxx"
/// Determines if text wraps around a split fly on all pages (i.e. wrap text at fly start) or only
/// on the last page.
class SW_DLLPUBLIC SwFormatWrapTextAtFlyStart final : public SfxBoolItem
{
public:
SwFormatWrapTextAtFlyStart(bool bAtStart = false);
SwFormatWrapTextAtFlyStart* Clone(SfxItemPool* pPool = nullptr) const override;
void dumpAsXml(xmlTextWriterPtr pWriter) const override;
};
inline const SwFormatWrapTextAtFlyStart& SwAttrSet::GetWrapTextAtFlyStart(bool bInP) const
{
return Get(RES_WRAP_TEXT_AT_FLY_START, bInP);
}
inline const SwFormatWrapTextAtFlyStart& SwFormat::GetWrapTextAtFlyStart(bool bInP) const
{
return m_aSet.GetWrapTextAtFlyStart(bInP);
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */