diff options
author | Michael Stahl <mstahl@redhat.com> | 2014-05-26 17:43:14 +0200 |
---|---|---|
committer | Michael Stahl <mstahl@redhat.com> | 2014-05-27 11:13:02 +0200 |
commit | 35029b250318b3a4f02cef5194abdd3f68311c43 (patch) | |
tree | 5026ab2dab620dcdcae84e574483ce3c325e5a78 /sw/source/uibase/sidebar/PageMarginControl.hxx | |
parent | f8d26c68e48e52265d4f20a1527bf52828c046ad (diff) |
sw: move sw/source/core/uibase to sw/source/uibase
It's too confusing to have UI code inside of core; the important part is
that it's separated from the optional UI code in swui library.
Change-Id: I640a52723d5802faf08f3b8eaa03cd937fd93449
Diffstat (limited to 'sw/source/uibase/sidebar/PageMarginControl.hxx')
-rw-r--r-- | sw/source/uibase/sidebar/PageMarginControl.hxx | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/sw/source/uibase/sidebar/PageMarginControl.hxx b/sw/source/uibase/sidebar/PageMarginControl.hxx new file mode 100644 index 000000000000..ee57102dd941 --- /dev/null +++ b/sw/source/uibase/sidebar/PageMarginControl.hxx @@ -0,0 +1,121 @@ +/* -*- 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 . + */ +#ifndef INCLUDED_SW_SOURCE_CORE_UIBASE_SIDEBAR_PAGEMARGINCONTROL_HXX +#define INCLUDED_SW_SOURCE_CORE_UIBASE_SIDEBAR_PAGEMARGINCONTROL_HXX + +#include <svx/sidebar/PopupControl.hxx> + +#include <tools/fldunit.hxx> +#include <svl/poolitem.hxx> +#include <svx/rulritem.hxx> +#include <unotools/viewoptions.hxx> +#include <vcl/fixed.hxx> +#include <vcl/field.hxx> +#include <svtools/unitconv.hxx> +#include <vector> + +#define SWPAGE_NARROW_VALUE 720 +#define SWPAGE_NORMAL_VALUE 1136 +#define SWPAGE_WIDE_VALUE1 1440 +#define SWPAGE_WIDE_VALUE2 2880 +#define SWPAGE_WIDE_VALUE3 1800 + +namespace svx { namespace sidebar { + class ValueSetWithTextControl; +} } + +static const long MINBODY = 284; //0.5 cm in twips + +namespace sw { namespace sidebar { + +class PagePropertyPanel; + +class PageMarginControl + : public ::svx::sidebar::PopupControl +{ +public: + PageMarginControl( + Window* pParent, + PagePropertyPanel& rPanel, + const SvxLongLRSpaceItem& aPageLRMargin, + const SvxLongULSpaceItem& aPageULMargin, + const bool bMirrored, + const Size aPageSize, + const bool bLandscape, + const FieldUnit eFUnit, + const SfxMapUnit eUnit ); + virtual ~PageMarginControl(void); + +private: + ::svx::sidebar::ValueSetWithTextControl* mpMarginValueSet; + + FixedText maCustom; + FixedText maLeft; + FixedText maInner; + MetricField maLeftMarginEdit; + FixedText maRight; + FixedText maOuter; + MetricField maRightMarginEdit; + FixedText maTop; + MetricField maTopMarginEdit; + FixedText maBottom; + MetricField maBottomMarginEdit; + + // hidden metric field + MetricField maWidthHeightField; + + long mnPageLeftMargin; + long mnPageRightMargin; + long mnPageTopMargin; + long mnPageBottomMargin; + bool mbMirrored; + + const SfxMapUnit meUnit; + + bool mbUserCustomValuesAvailable; + long mnUserCustomPageLeftMargin; + long mnUserCustomPageRightMargin; + long mnUserCustomPageTopMargin; + long mnUserCustomPageBottomMargin; + bool mbUserCustomMirrored; + + bool mbCustomValuesUsed; + + PagePropertyPanel& mrPagePropPanel; + + DECL_LINK( ImplMarginHdl, void* ); + DECL_LINK( ModifyLRMarginHdl, MetricField* ); + DECL_LINK( ModifyULMarginHdl, MetricField* ); + + void SetMetricFieldMaxValues( const Size aPageSize ); + + bool GetUserCustomValues(); + void StoreUserCustomValues(); + + void FillValueSet( + const bool bLandscape, + const bool bUserCustomValuesAvailable ); + void SelectValueSetItem(); +}; + +} } // end of namespace sw::sidebar + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |