File indexing completed on 2024-04-21 03:42:10

0001 /*
0002     KmPlot - a math. function plotter for the KDE-Desktop
0003 
0004     SPDX-FileCopyrightText: 2006 David Saxton <david@bluehaze.org>
0005 
0006     This file is part of the KDE Project.
0007     KmPlot is part of the KDE-EDU Project.
0008 
0009     SPDX-License-Identifier: GPL-2.0-or-later
0010 */
0011 
0012 #ifndef PLOTSTYLEWIDGET_H
0013 #define PLOTSTYLEWIDGET_H
0014 
0015 #include "function.h"
0016 
0017 #include <QGroupBox>
0018 
0019 class QDialog;
0020 class KColorButton;
0021 class PlotAppearance;
0022 class PlotStyleDialogWidget;
0023 
0024 class PlotStyleWidget : public QGroupBox
0025 {
0026     Q_OBJECT
0027 public:
0028     explicit PlotStyleWidget(QWidget *parent);
0029 
0030     /**
0031      * Initializes the contents of the widgets to the settings in \p plot.
0032      * \p type is used to determine which widgets should be shown / hidden.
0033      */
0034     void init(const PlotAppearance &plot, Function::Type type);
0035     /**
0036      * \return A plot with appearance configured by this widget.
0037      * \param visible Whether the plot is visible (this widget does not
0038      * control that aspect of a Plot).
0039      */
0040     PlotAppearance plot(bool visible);
0041     /**
0042      * \return the currently selected style.
0043      */
0044     Qt::PenStyle style() const;
0045     /**
0046      * Sets the currently selected style.
0047      */
0048     void setStyle(Qt::PenStyle style);
0049 
0050 protected slots:
0051     /**
0052      * Called when the user clicks on the "Advanced" button.
0053      */
0054     void advancedOptions();
0055 
0056 protected:
0057     KColorButton *m_color;
0058     QDialog *m_dialog;
0059     PlotStyleDialogWidget *m_dialogWidget;
0060 };
0061 
0062 #endif