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