Advance Wayland and KDE package bring-up
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
@@ -0,0 +1,194 @@
|
||||
/*
|
||||
This file is part of the KDE libraries
|
||||
SPDX-FileCopyrightText: 1997 Martin Jones <mjones@kde.org>
|
||||
|
||||
SPDX-License-Identifier: LGPL-2.0-or-later
|
||||
*/
|
||||
//-----------------------------------------------------------------------------
|
||||
// Selector widgets for KDE Color Selector, but probably useful for other
|
||||
// stuff also.
|
||||
|
||||
#ifndef KSELECTOR_H
|
||||
#define KSELECTOR_H
|
||||
|
||||
#include <kwidgetsaddons_export.h>
|
||||
|
||||
#include <QAbstractSlider>
|
||||
#include <QGradient>
|
||||
#include <QWidget>
|
||||
#include <memory>
|
||||
|
||||
/**
|
||||
* @class KSelector kselector.h KSelector
|
||||
*
|
||||
* KSelector is the base class for other widgets which
|
||||
* provides the ability to choose from a one-dimensional
|
||||
* range of values. An example is the KGradientSelector
|
||||
* which allows to choose from a range of colors.
|
||||
*
|
||||
* A custom drawing routine for the widget surface has
|
||||
* to be provided by the subclass.
|
||||
*/
|
||||
class KWIDGETSADDONS_EXPORT KSelector : public QAbstractSlider
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_PROPERTY(int value READ value WRITE setValue)
|
||||
Q_PROPERTY(int minValue READ minimum WRITE setMinimum)
|
||||
Q_PROPERTY(int maxValue READ maximum WRITE setMaximum)
|
||||
Q_PROPERTY(bool indent READ indent WRITE setIndent)
|
||||
Q_PROPERTY(Qt::ArrowType arrowDirection READ arrowDirection WRITE setArrowDirection)
|
||||
public:
|
||||
/**
|
||||
* Constructs a horizontal one-dimensional selection widget.
|
||||
*/
|
||||
explicit KSelector(QWidget *parent = nullptr);
|
||||
/**
|
||||
* Constructs a one-dimensional selection widget with
|
||||
* a given orientation.
|
||||
*/
|
||||
explicit KSelector(Qt::Orientation o, QWidget *parent = nullptr);
|
||||
/*
|
||||
* Destructs the widget.
|
||||
*/
|
||||
~KSelector() override;
|
||||
|
||||
/**
|
||||
* @return the rectangle on which subclasses should draw.
|
||||
*/
|
||||
QRect contentsRect() const;
|
||||
|
||||
/**
|
||||
* Sets the indent option of the widget to i.
|
||||
* This determines whether a shaded frame is drawn.
|
||||
*/
|
||||
void setIndent(bool i);
|
||||
|
||||
/**
|
||||
* @return whether the indent option is set.
|
||||
*/
|
||||
bool indent() const;
|
||||
|
||||
/**
|
||||
* Sets the arrow direction.
|
||||
*/
|
||||
void setArrowDirection(Qt::ArrowType direction);
|
||||
|
||||
/**
|
||||
* @return the current arrow direction
|
||||
*/
|
||||
Qt::ArrowType arrowDirection() const;
|
||||
|
||||
protected:
|
||||
/**
|
||||
* Override this function to draw the contents of the control.
|
||||
* The default implementation does nothing.
|
||||
*
|
||||
* Draw only within contentsRect().
|
||||
*/
|
||||
virtual void drawContents(QPainter *);
|
||||
/**
|
||||
* Override this function to draw the cursor which
|
||||
* indicates the current value.
|
||||
*/
|
||||
virtual void drawArrow(QPainter *painter, const QPoint &pos);
|
||||
|
||||
void paintEvent(QPaintEvent *) override;
|
||||
void mousePressEvent(QMouseEvent *e) override;
|
||||
void mouseMoveEvent(QMouseEvent *e) override;
|
||||
void mouseReleaseEvent(QMouseEvent *e) override;
|
||||
void wheelEvent(QWheelEvent *) override;
|
||||
|
||||
private:
|
||||
KWIDGETSADDONS_NO_EXPORT QPoint calcArrowPos(int val);
|
||||
KWIDGETSADDONS_NO_EXPORT void moveArrow(const QPoint &pos);
|
||||
|
||||
private:
|
||||
friend class KSelectorPrivate;
|
||||
std::unique_ptr<class KSelectorPrivate> const d;
|
||||
|
||||
Q_DISABLE_COPY(KSelector)
|
||||
};
|
||||
|
||||
/**
|
||||
* @class KGradientSelector kselector.h KGradientSelector
|
||||
*
|
||||
* The KGradientSelector widget allows the user to choose
|
||||
* from a one-dimensional range of colors which is given as a
|
||||
* gradient between two colors provided by the programmer.
|
||||
*
|
||||
* \image html kgradientselector.png "KGradientSelector Widget"
|
||||
*/
|
||||
class KWIDGETSADDONS_EXPORT KGradientSelector : public KSelector
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
Q_PROPERTY(QColor firstColor READ firstColor WRITE setFirstColor)
|
||||
Q_PROPERTY(QColor secondColor READ secondColor WRITE setSecondColor)
|
||||
Q_PROPERTY(QString firstText READ firstText WRITE setFirstText)
|
||||
Q_PROPERTY(QString secondText READ secondText WRITE setSecondText)
|
||||
|
||||
public:
|
||||
/**
|
||||
* Constructs a horizontal color selector which
|
||||
* contains a gradient between white and black.
|
||||
*/
|
||||
explicit KGradientSelector(QWidget *parent = nullptr);
|
||||
/**
|
||||
* Constructs a colors selector with orientation o which
|
||||
* contains a gradient between white and black.
|
||||
*/
|
||||
explicit KGradientSelector(Qt::Orientation o, QWidget *parent = nullptr);
|
||||
/**
|
||||
* Destructs the widget.
|
||||
*/
|
||||
~KGradientSelector() override;
|
||||
|
||||
/**
|
||||
* Sets the colors that make up the gradient. Any previously set colors
|
||||
* are removed.
|
||||
* @since 4.5
|
||||
*/
|
||||
void setStops(const QGradientStops &stops);
|
||||
|
||||
/**
|
||||
* Get the colors that make up the gradient.
|
||||
* @since 4.5
|
||||
*/
|
||||
QGradientStops stops() const;
|
||||
|
||||
/**
|
||||
* Sets the two colors which span the gradient.
|
||||
*/
|
||||
void setColors(const QColor &col1, const QColor &col2);
|
||||
void setText(const QString &t1, const QString &t2);
|
||||
|
||||
/**
|
||||
* Set each color on its own.
|
||||
*/
|
||||
void setFirstColor(const QColor &col);
|
||||
void setSecondColor(const QColor &col);
|
||||
|
||||
/**
|
||||
* Set each description on its own
|
||||
*/
|
||||
void setFirstText(const QString &t);
|
||||
void setSecondText(const QString &t);
|
||||
|
||||
QColor firstColor() const;
|
||||
QColor secondColor() const;
|
||||
|
||||
QString firstText() const;
|
||||
QString secondText() const;
|
||||
|
||||
protected:
|
||||
void drawContents(QPainter *) override;
|
||||
virtual QSize minimumSize() const;
|
||||
|
||||
private:
|
||||
friend class KGradientSelectorPrivate;
|
||||
std::unique_ptr<class KGradientSelectorPrivate> const d;
|
||||
|
||||
Q_DISABLE_COPY(KGradientSelector)
|
||||
};
|
||||
|
||||
#endif // KSELECTOR_H
|
||||
Reference in New Issue
Block a user