example usage
This commit is contained in:
parent
22c8f15d33
commit
e8ebc0965d
|
@ -26,6 +26,7 @@
|
||||||
#include <QskScaleTickmarks.h>
|
#include <QskScaleTickmarks.h>
|
||||||
#include <QskTextLabel.h>
|
#include <QskTextLabel.h>
|
||||||
#include <QskAnimator.h>
|
#include <QskAnimator.h>
|
||||||
|
#include <QskTickmarksMetrics.h>
|
||||||
|
|
||||||
#include <QGuiApplication>
|
#include <QGuiApplication>
|
||||||
|
|
||||||
|
@ -84,10 +85,12 @@ class ContentBox : public QskBox
|
||||||
struct Tickmarks final : public QskControl
|
struct Tickmarks final : public QskControl
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
QSK_SUBCONTROLS(Ticks)
|
||||||
using QskControl::QskControl;
|
using QskControl::QskControl;
|
||||||
QskTickmarksMetrics metrics;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
QSK_SUBCONTROL(Tickmarks, Ticks)
|
||||||
|
|
||||||
class TickmarksSkinlet final : public QskSkinlet
|
class TickmarksSkinlet final : public QskSkinlet
|
||||||
{
|
{
|
||||||
Q_GADGET
|
Q_GADGET
|
||||||
|
@ -124,8 +127,9 @@ class TickmarksSkinlet final : public QskSkinlet
|
||||||
tickmarks.setMediumTicks(medium);
|
tickmarks.setMediumTicks(medium);
|
||||||
tickmarks.setMinorTicks(minor);
|
tickmarks.setMinorTicks(minor);
|
||||||
|
|
||||||
|
const auto metric = q->tickmarksMetricsHint(Tickmarks::Ticks);
|
||||||
tickmarksNode->update(
|
tickmarksNode->update(
|
||||||
Qt::darkGray, rect, { -100, +100 }, tickmarks, 1, Qt::Horizontal, Qt::AlignBottom, q->metrics );
|
Qt::darkGray, rect, { -100, +100 }, tickmarks, 1, Qt::Horizontal, Qt::AlignBottom, metric );
|
||||||
|
|
||||||
return tickmarksNode;
|
return tickmarksNode;
|
||||||
}
|
}
|
||||||
|
@ -150,9 +154,7 @@ class Window : public QskWindow
|
||||||
{
|
{
|
||||||
(void) new QskTextLabel("Custom", layout);
|
(void) new QskTextLabel("Custom", layout);
|
||||||
auto* const tickmarks = new Tickmarks(layout);
|
auto* const tickmarks = new Tickmarks(layout);
|
||||||
tickmarks->metrics.setMajorRatio( 1.0 );
|
tickmarks->setTickmarksMetricsHint(Tickmarks::Ticks, { 0.2, 0.5, 1.0 } );
|
||||||
tickmarks->metrics.setMediumRatio( 0.5 );
|
|
||||||
tickmarks->metrics.setMinorRatio( 0.2 );
|
|
||||||
auto* const skinlet = new TickmarksSkinlet;
|
auto* const skinlet = new TickmarksSkinlet;
|
||||||
tickmarks->setSkinlet(skinlet);
|
tickmarks->setSkinlet(skinlet);
|
||||||
skinlet->setOwnedBySkinnable(true);
|
skinlet->setOwnedBySkinnable(true);
|
||||||
|
@ -160,9 +162,7 @@ class Window : public QskWindow
|
||||||
{
|
{
|
||||||
(void) new QskTextLabel("Custom (Major only)", layout);
|
(void) new QskTextLabel("Custom (Major only)", layout);
|
||||||
auto* const tickmarks = new Tickmarks(layout);
|
auto* const tickmarks = new Tickmarks(layout);
|
||||||
tickmarks->metrics.setMajorRatio( 1.0 );
|
tickmarks->setTickmarksMetricsHint(Tickmarks::Ticks, { 0.0, 0.0, 1.0 } );
|
||||||
tickmarks->metrics.setMediumRatio( 0.0 );
|
|
||||||
tickmarks->metrics.setMinorRatio( 0.0 );
|
|
||||||
auto* const skinlet = new TickmarksSkinlet;
|
auto* const skinlet = new TickmarksSkinlet;
|
||||||
tickmarks->setSkinlet(skinlet);
|
tickmarks->setSkinlet(skinlet);
|
||||||
skinlet->setOwnedBySkinnable(true);
|
skinlet->setOwnedBySkinnable(true);
|
||||||
|
@ -170,9 +170,7 @@ class Window : public QskWindow
|
||||||
{
|
{
|
||||||
(void) new QskTextLabel("Custom (Major + Minor only)", layout);
|
(void) new QskTextLabel("Custom (Major + Minor only)", layout);
|
||||||
auto* const tickmarks = new Tickmarks(layout);
|
auto* const tickmarks = new Tickmarks(layout);
|
||||||
tickmarks->metrics.setMajorRatio( 1.0 );
|
tickmarks->setTickmarksMetricsHint(Tickmarks::Ticks, { 0.2, 0.0, 1.0 } );
|
||||||
tickmarks->metrics.setMediumRatio( 0.0 );
|
|
||||||
tickmarks->metrics.setMinorRatio( 0.2 );
|
|
||||||
auto* const skinlet = new TickmarksSkinlet;
|
auto* const skinlet = new TickmarksSkinlet;
|
||||||
tickmarks->setSkinlet(skinlet);
|
tickmarks->setSkinlet(skinlet);
|
||||||
skinlet->setOwnedBySkinnable(true);
|
skinlet->setOwnedBySkinnable(true);
|
||||||
|
@ -195,10 +193,12 @@ class Window : public QskWindow
|
||||||
|
|
||||||
void advance( qreal value ) override
|
void advance( qreal value ) override
|
||||||
{
|
{
|
||||||
tickmarks.metrics.setMinorRatio( 0.1 + 0.1 * qFastSin(value * 2 * M_PI));
|
const QskTickmarksMetrics metrics {
|
||||||
tickmarks.metrics.setMediumRatio( 0.25 + 0.25 * qFastSin(value * 2 * M_PI));
|
( 0.1 + 0.1 * qFastSin( value * 2 * M_PI ) ),
|
||||||
tickmarks.metrics.setMajorRatio( 0.5 + 0.5 * qFastSin(value * 2 * M_PI));
|
( 0.25 + 0.25 * qFastSin( value * 2 * M_PI ) ),
|
||||||
tickmarks.update();
|
( 0.5 + 0.5 * qFastSin( value * 2 * M_PI ) )
|
||||||
|
};
|
||||||
|
tickmarks.setTickmarksMetricsHint(Tickmarks::Ticks, metrics);
|
||||||
}
|
}
|
||||||
|
|
||||||
Tickmarks& tickmarks;
|
Tickmarks& tickmarks;
|
||||||
|
|
Loading…
Reference in New Issue