159 lines
7.2 KiB
C++
159 lines
7.2 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 .
|
|
*/
|
|
#include <cmath>
|
|
#include <tools/long.hxx>
|
|
#define SDPAGE_NO_MARGIN 0
|
|
#define SDPAGE_NARROW_VALUE 635
|
|
#define SDPAGE_MODERATE_LR 955
|
|
#define SDPAGE_NORMAL_VALUE 1000
|
|
#define SDPAGE_WIDE_VALUE1 1270
|
|
#define SDPAGE_WIDE_VALUE2 2540
|
|
#define SDPAGE_WIDE_VALUE3 1590
|
|
#define SDPAGE_UNIT_THRESHOLD 5
|
|
|
|
namespace sd::sidebar{
|
|
|
|
bool IsNone( const ::tools::Long nPageLeftMargin, const ::tools::Long nPageRightMargin,
|
|
const ::tools::Long nPageTopMargin, const ::tools::Long nPageBottomMargin )
|
|
{
|
|
return( std::abs(nPageLeftMargin - SDPAGE_NO_MARGIN) <= SDPAGE_UNIT_THRESHOLD &&
|
|
std::abs(nPageRightMargin - SDPAGE_NO_MARGIN ) <= SDPAGE_UNIT_THRESHOLD &&
|
|
std::abs(nPageTopMargin - SDPAGE_NO_MARGIN) <= SDPAGE_UNIT_THRESHOLD &&
|
|
std::abs(nPageBottomMargin - SDPAGE_NO_MARGIN) <= SDPAGE_UNIT_THRESHOLD );
|
|
}
|
|
|
|
void SetNone( ::tools::Long& nPageLeftMargin, ::tools::Long& nPageRightMargin,
|
|
::tools::Long& nPageTopMargin, ::tools::Long& nPageBottomMargin )
|
|
{
|
|
nPageLeftMargin = SDPAGE_NO_MARGIN;
|
|
nPageRightMargin = SDPAGE_NO_MARGIN;
|
|
nPageTopMargin = SDPAGE_NO_MARGIN;
|
|
nPageBottomMargin = SDPAGE_NO_MARGIN;
|
|
}
|
|
|
|
bool IsNarrow( const ::tools::Long nPageLeftMargin, const ::tools::Long nPageRightMargin,
|
|
const ::tools::Long nPageTopMargin, const ::tools::Long nPageBottomMargin )
|
|
{
|
|
return( std::abs(nPageLeftMargin - SDPAGE_NARROW_VALUE) <= SDPAGE_UNIT_THRESHOLD &&
|
|
std::abs(nPageRightMargin - SDPAGE_NARROW_VALUE) <= SDPAGE_UNIT_THRESHOLD &&
|
|
std::abs(nPageTopMargin - SDPAGE_NARROW_VALUE) <= SDPAGE_UNIT_THRESHOLD &&
|
|
std::abs(nPageBottomMargin - SDPAGE_NARROW_VALUE) <= SDPAGE_UNIT_THRESHOLD );
|
|
}
|
|
|
|
void SetNarrow( ::tools::Long& nPageLeftMargin, ::tools::Long& nPageRightMargin,
|
|
::tools::Long& nPageTopMargin, ::tools::Long& nPageBottomMargin )
|
|
{
|
|
nPageLeftMargin = SDPAGE_NARROW_VALUE;
|
|
nPageRightMargin = SDPAGE_NARROW_VALUE;
|
|
nPageTopMargin = SDPAGE_NARROW_VALUE;
|
|
nPageBottomMargin = SDPAGE_NARROW_VALUE;
|
|
}
|
|
|
|
bool IsModerate( const ::tools::Long nPageLeftMargin, const ::tools::Long nPageRightMargin,
|
|
const ::tools::Long nPageTopMargin, const ::tools::Long nPageBottomMargin )
|
|
{
|
|
return( std::abs(nPageLeftMargin - SDPAGE_MODERATE_LR) <= SDPAGE_UNIT_THRESHOLD &&
|
|
std::abs(nPageRightMargin - SDPAGE_MODERATE_LR) <= SDPAGE_UNIT_THRESHOLD &&
|
|
std::abs(nPageTopMargin - SDPAGE_WIDE_VALUE1) <= SDPAGE_UNIT_THRESHOLD &&
|
|
std::abs(nPageBottomMargin - SDPAGE_WIDE_VALUE1) <= SDPAGE_UNIT_THRESHOLD );
|
|
}
|
|
|
|
void SetModerate( ::tools::Long& nPageLeftMargin, ::tools::Long& nPageRightMargin,
|
|
::tools::Long& nPageTopMargin, ::tools::Long& nPageBottomMargin )
|
|
{
|
|
nPageLeftMargin = SDPAGE_MODERATE_LR;
|
|
nPageRightMargin = SDPAGE_MODERATE_LR;
|
|
nPageTopMargin = SDPAGE_WIDE_VALUE1;
|
|
nPageBottomMargin = SDPAGE_WIDE_VALUE1;
|
|
}
|
|
|
|
bool IsNormal075( const ::tools::Long nPageLeftMargin, const ::tools::Long nPageRightMargin,
|
|
const ::tools::Long nPageTopMargin, const ::tools::Long nPageBottomMargin )
|
|
{
|
|
return( std::abs(nPageLeftMargin - SDPAGE_NORMAL_VALUE) <= SDPAGE_UNIT_THRESHOLD &&
|
|
std::abs(nPageRightMargin - SDPAGE_NORMAL_VALUE) <= SDPAGE_UNIT_THRESHOLD &&
|
|
std::abs(nPageTopMargin - SDPAGE_NORMAL_VALUE) <= SDPAGE_UNIT_THRESHOLD &&
|
|
std::abs(nPageBottomMargin - SDPAGE_NORMAL_VALUE) <= SDPAGE_UNIT_THRESHOLD );
|
|
}
|
|
|
|
void SetNormal075( ::tools::Long& nPageLeftMargin, ::tools::Long& nPageRightMargin,
|
|
::tools::Long& nPageTopMargin, ::tools::Long& nPageBottomMargin )
|
|
{
|
|
nPageLeftMargin = SDPAGE_NORMAL_VALUE;
|
|
nPageRightMargin = SDPAGE_NORMAL_VALUE;
|
|
nPageTopMargin = SDPAGE_NORMAL_VALUE;
|
|
nPageBottomMargin = SDPAGE_NORMAL_VALUE;
|
|
}
|
|
|
|
bool IsNormal100( const ::tools::Long nPageLeftMargin, const ::tools::Long nPageRightMargin,
|
|
const ::tools::Long nPageTopMargin, const ::tools::Long nPageBottomMargin )
|
|
{
|
|
return( std::abs(nPageLeftMargin - SDPAGE_WIDE_VALUE1) <= SDPAGE_UNIT_THRESHOLD &&
|
|
std::abs(nPageRightMargin - SDPAGE_WIDE_VALUE1) <= SDPAGE_UNIT_THRESHOLD &&
|
|
std::abs(nPageTopMargin - SDPAGE_WIDE_VALUE1) <= SDPAGE_UNIT_THRESHOLD &&
|
|
std::abs(nPageBottomMargin - SDPAGE_WIDE_VALUE1) <= SDPAGE_UNIT_THRESHOLD );
|
|
}
|
|
|
|
void SetNormal100( ::tools::Long& nPageLeftMargin, ::tools::Long& nPageRightMargin,
|
|
::tools::Long& nPageTopMargin, ::tools::Long& nPageBottomMargin )
|
|
{
|
|
nPageLeftMargin = SDPAGE_WIDE_VALUE1;
|
|
nPageRightMargin = SDPAGE_WIDE_VALUE1;
|
|
nPageTopMargin = SDPAGE_WIDE_VALUE1;
|
|
nPageBottomMargin = SDPAGE_WIDE_VALUE1;
|
|
}
|
|
|
|
bool IsNormal125( const ::tools::Long nPageLeftMargin, const ::tools::Long nPageRightMargin,
|
|
const ::tools::Long nPageTopMargin, const ::tools::Long nPageBottomMargin )
|
|
{
|
|
return( std::abs(nPageLeftMargin - SDPAGE_WIDE_VALUE3) <= SDPAGE_UNIT_THRESHOLD &&
|
|
std::abs(nPageRightMargin - SDPAGE_WIDE_VALUE3) <= SDPAGE_UNIT_THRESHOLD &&
|
|
std::abs(nPageTopMargin - SDPAGE_WIDE_VALUE1) <= SDPAGE_UNIT_THRESHOLD &&
|
|
std::abs(nPageBottomMargin - SDPAGE_WIDE_VALUE1) <= SDPAGE_UNIT_THRESHOLD );
|
|
}
|
|
|
|
void SetNormal125( ::tools::Long& nPageLeftMargin, ::tools::Long& nPageRightMargin,
|
|
::tools::Long& nPageTopMargin, ::tools::Long& nPageBottomMargin )
|
|
{
|
|
nPageLeftMargin = SDPAGE_WIDE_VALUE3;
|
|
nPageRightMargin = SDPAGE_WIDE_VALUE3;
|
|
nPageTopMargin = SDPAGE_WIDE_VALUE1;
|
|
nPageBottomMargin = SDPAGE_WIDE_VALUE1;
|
|
}
|
|
|
|
bool IsWide( const ::tools::Long nPageLeftMargin, const ::tools::Long nPageRightMargin,
|
|
const ::tools::Long nPageTopMargin, const ::tools::Long nPageBottomMargin )
|
|
{
|
|
return( std::abs(nPageLeftMargin - SDPAGE_WIDE_VALUE2) <= SDPAGE_UNIT_THRESHOLD &&
|
|
std::abs(nPageRightMargin - SDPAGE_WIDE_VALUE2) <= SDPAGE_UNIT_THRESHOLD &&
|
|
std::abs(nPageTopMargin - SDPAGE_WIDE_VALUE1) <= SDPAGE_UNIT_THRESHOLD &&
|
|
std::abs(nPageBottomMargin - SDPAGE_WIDE_VALUE1) <= SDPAGE_UNIT_THRESHOLD );
|
|
}
|
|
|
|
void SetWide( ::tools::Long& nPageLeftMargin, ::tools::Long& nPageRightMargin,
|
|
::tools::Long& nPageTopMargin, ::tools::Long& nPageBottomMargin )
|
|
{
|
|
nPageLeftMargin = SDPAGE_WIDE_VALUE2;
|
|
nPageRightMargin = SDPAGE_WIDE_VALUE2;
|
|
nPageTopMargin = SDPAGE_WIDE_VALUE1;
|
|
nPageBottomMargin = SDPAGE_WIDE_VALUE1;
|
|
}
|
|
}
|
|
|
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|