[Libreoffice-commits] core.git: 3 commits - include/tools sc/uiconfig tools/qa tools/source
Tomaž Vajngerl
tomaz.vajngerl at collabora.co.uk
Wed May 6 22:12:10 PDT 2015
include/tools/color.hxx | 10 ++++++++
sc/uiconfig/scalc/ui/pivottablelayoutdialog.ui | 7 +++++
tools/qa/cppunit/test_color.cxx | 22 ++++++++++++++++++
tools/source/generic/color.cxx | 30 +++++++++++++++++++++++++
4 files changed, 68 insertions(+), 1 deletion(-)
New commits:
commit 5984cc83fe756f7483d1ac582b8adbef5042be8b
Author: Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
Date: Thu May 7 13:55:59 2015 +0900
Add ability to change tint/shade of a color.
Change-Id: I6933393732d23fe9386cb8b768676887c026bd39
diff --git a/include/tools/color.hxx b/include/tools/color.hxx
index f940dbc..c382f87 100644
--- a/include/tools/color.hxx
+++ b/include/tools/color.hxx
@@ -161,6 +161,16 @@ public:
void IncreaseLuminance(sal_uInt8 cLumInc);
void DecreaseLuminance(sal_uInt8 cLumDec);
+ /**
+ * Apply tint or shade to a color.
+ *
+ * The input value is the percentage (in 100th of percent) of how much the
+ * color changes towards the black (shade) or white (tint). If the value
+ * is positive, the color is tinted, if the value is negative, the color is
+ * shaded.
+ **/
+ void ApplyTintOrShade(sal_Int16 n100thPercent);
+
void DecreaseContrast(sal_uInt8 cContDec);
void Invert();
diff --git a/tools/source/generic/color.cxx b/tools/source/generic/color.cxx
index 741cb15..453feae 100644
--- a/tools/source/generic/color.cxx
+++ b/tools/source/generic/color.cxx
@@ -29,6 +29,8 @@
#include <tools/rcid.h>
#include <tools/resid.hxx>
#include <tools/rc.h>
+#include <tools/helpers.hxx>
+#include <basegfx/color/bcolortools.hxx>
static inline long _FRound( double fVal )
{
@@ -113,6 +115,34 @@ bool Color::IsBright() const
return GetLuminance() >= 245;
}
+void Color::ApplyTintOrShade(sal_Int16 n100thPercent)
+{
+ if (n100thPercent > 0)
+ {
+ basegfx::BColor aBColor = basegfx::tools::rgb2hsl(getBColor());
+
+ double fFactor = std::abs(n100thPercent) / 10000.0;
+ aBColor.setBlue(aBColor.getBlue() * fFactor + (100.0 - aBColor.getBlue()));
+ aBColor = basegfx::tools::hsl2rgb(aBColor);
+
+ SetRed(sal_uInt8((aBColor.getRed() * 255.0) + 0.5));
+ SetGreen(sal_uInt8((aBColor.getGreen() * 255.0) + 0.5));
+ SetBlue(sal_uInt8((aBColor.getBlue() * 255.0) + 0.5));
+ }
+ else if (n100thPercent < 0)
+ {
+ basegfx::BColor aBColor = basegfx::tools::rgb2hsl(getBColor());
+
+ double fFactor = std::abs(n100thPercent) / 10000.0;
+ aBColor.setBlue(aBColor.getBlue() * fFactor);
+ aBColor = basegfx::tools::hsl2rgb(aBColor);
+
+ SetRed(sal_uInt8((aBColor.getRed() * 255.0) + 0.5));
+ SetGreen(sal_uInt8((aBColor.getGreen() * 255.0) + 0.5));
+ SetBlue(sal_uInt8((aBColor.getBlue() * 255.0) + 0.5));
+ }
+}
+
// color space conversion
void Color::RGBtoHSB( sal_uInt16& nHue, sal_uInt16& nSat, sal_uInt16& nBri ) const
commit 6719b36a66171f59b383ccc5e7497d208bd566aa
Author: Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
Date: Thu May 7 13:54:27 2015 +0900
Make pivot table resizable again to make it easier to work with.
Change-Id: I205f7348993031e0dd72c74531ca67e3e87e809c
diff --git a/sc/uiconfig/scalc/ui/pivottablelayoutdialog.ui b/sc/uiconfig/scalc/ui/pivottablelayoutdialog.ui
index 89d4b82..ddaf807 100644
--- a/sc/uiconfig/scalc/ui/pivottablelayoutdialog.ui
+++ b/sc/uiconfig/scalc/ui/pivottablelayoutdialog.ui
@@ -7,7 +7,6 @@
<property name="can_focus">False</property>
<property name="border_width">6</property>
<property name="title" translatable="yes">Pivot Table Layout</property>
- <property name="resizable">False</property>
<property name="type_hint">dialog</property>
<child internal-child="vbox">
<object class="GtkBox" id="dialog-vbox1">
@@ -97,6 +96,8 @@
<object class="GtkBox" id="box4">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
@@ -199,6 +200,8 @@
<object class="GtkBox" id="box6">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
@@ -248,6 +251,8 @@
<object class="GtkBox" id="box7">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
commit c89e590fb0bbf387e3d43f1cc9c26c7a4c429f64
Author: Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
Date: Fri Apr 24 12:36:48 2015 +0900
extend color test - check read & write from stream
Change-Id: Iac3c8d30acff0984a98a4b705957c0361a5ead2f
diff --git a/tools/qa/cppunit/test_color.cxx b/tools/qa/cppunit/test_color.cxx
index 6846fad..99f311f 100644
--- a/tools/qa/cppunit/test_color.cxx
+++ b/tools/qa/cppunit/test_color.cxx
@@ -13,6 +13,7 @@
#include "cppunit/extensions/HelperMacros.h"
#include "cppunit/plugin/TestPlugIn.h"
#include <tools/color.hxx>
+#include <tools/stream.hxx>
namespace
{
@@ -21,9 +22,11 @@ class Test: public CppUnit::TestFixture
{
public:
void test_asRGBColor();
+ void test_readAndWriteStream();
CPPUNIT_TEST_SUITE(Test);
CPPUNIT_TEST(test_asRGBColor);
+ CPPUNIT_TEST(test_readAndWriteStream);
CPPUNIT_TEST_SUITE_END();
};
@@ -54,6 +57,25 @@ void Test::test_asRGBColor()
CPPUNIT_ASSERT_EQUAL(aColor.AsRGBHexString(), OUString("ffffff"));
}
+void Test::test_readAndWriteStream()
+{
+ {
+ SvMemoryStream aStream;
+ Color aWriteColor(0x12, 0x34, 0x56);
+ Color aReadColor;
+
+ WriteColor(aStream, aWriteColor);
+
+ aStream.Seek(STREAM_SEEK_TO_BEGIN);
+
+ ReadColor(aStream, aReadColor);
+
+ CPPUNIT_ASSERT_EQUAL(sal_uInt8(0x12), aReadColor.GetRed());
+ CPPUNIT_ASSERT_EQUAL(sal_uInt8(0x34), aReadColor.GetGreen());
+ CPPUNIT_ASSERT_EQUAL(sal_uInt8(0x56), aReadColor.GetBlue());
+ }
+}
+
CPPUNIT_TEST_SUITE_REGISTRATION(Test);
}
More information about the Libreoffice-commits
mailing list