</ul>
<li><b>Elements</b></li>
<ul>
-<li><b>Fill</b> - allows to select the color of surface of elements
+<li><b>Surface color</b> - allows to select the color of surface of elements
(seen in Shading mode). Click on the colored line to access to the
\ref select_color_and_font_page "Select Color" dialog box.</li>
+<li><b>Back surface color</b> - allows to select the color of interior surface
+of elements. Use slider to select this color. This color generated on base
+of the <b>Surface color</b> by changing it's brightness and saturation.</li>
<li><b>Outline</b> - allows to select the color of borders of
elements. Click on the colored line to access to the
\ref select_color_and_font_page "Select Color" dialog box.</li>
-<li><b>Back Face</b> - allows to select the color of interior surface
-of elements. Click on the colored line to access to the
-\ref select_color_and_font_page "Select Color" dialog box.</li>
<li><b>Width</b> - allows to define the width of lines (edges and borders of elements).</li>
<li><b>Shrink coef.</b> - allows to define relative space of elements
compared to gaps between them in shrink mode.</li>
#include <stdarg.h>
#include <clocale>
+#define BICOLOR_CHANGE_HUE
+
/*!
\class Qtx
\brief A set of helpful utility functions.
int val = qMin( 255, qMax( cs.value() + delta, 0 ) );
int sat = qMin( 255, qMax( cs.saturation() + delta-(val-cs.value()), 0 ) );
#ifdef BICOLOR_CHANGE_HUE
- int hue = qMin( 359, qMax( cs.hue() + delta-(val-cs.value())-(sat-cs.saturation()), 0 ) );
+ const int BICOLOR_HUE_MAXDELTA = 40;
+ int dh = delta-(val-cs.value())-(sat-cs.saturation());
+ dh = qMin( BICOLOR_HUE_MAXDELTA, qAbs( dh ) ) * ( dh > 0 ? 1 : -1 );
+ //int hue = qMin( 359, qMax( cs.hue() + delta-(val-cs.value())-(sat-cs.saturation()), 0 ) );
+ //int hue = qMin( 359, qMax( cs.hue() + delta-(val-cs.value())-ds, 0 ) );
+ int hue = cs.hue() + dh;
+ if ( hue < 0 ) hue = 360 - hue;
#else
int hue = cs.hue();
#endif