Program Listing for File canvascontrolwidget.h

Return to documentation for file (src/widget/canvascontrolwidget.h)

#ifndef CANVASCONTROLWIDGET_H
#define CANVASCONTROLWIDGET_H

#include <QButtonGroup>
#include <QWidget>
#include "controller/palettecontroller.h"
#include "core/point.h"
#include "widget/maestrocontrolwidget.h"

namespace Ui {
    class CanvasControlWidget;
}

namespace PixelMaestroStudio {
    class CanvasControlWidget : public QWidget {
        Q_OBJECT

        public:
            explicit CanvasControlWidget(QWidget *parent = nullptr);
            ~CanvasControlWidget();

            uint8_t get_selected_color_index() const;
            bool get_painting_enabled() const;
            bool get_replace_enabled() const;
            void initialize();
            void refresh();
            void refresh_palettes();
            void set_canvas_origin(Point& coordinates);

        public slots:
            void on_drawButton_clicked();

        protected:
            bool eventFilter(QObject *watched, QEvent *event);

        private slots:
            void on_canvas_color_clicked();
            void on_enableCheckBox_toggled(bool checked);

            void on_loadImageButton_clicked();

            void on_circleToolButton_toggled(bool checked);

            void on_lineToolButton_toggled(bool checked);

            void on_triangleToolButton_toggled(bool checked);

            void on_rectToolButton_toggled(bool checked);

            void on_textToolButton_toggled(bool checked);

            void on_editPaletteButton_clicked();

            void on_playbackPreviousToolButton_clicked();

            void on_playbackStartStopToolButton_toggled(bool checked);

            void on_playbackNextToolButton_clicked();

            void on_frameCountSpinBox_editingFinished();

            void on_currentFrameSpinBox_editingFinished();

            void on_frameIntervalSlider_valueChanged(int value);

            void on_clearButton_clicked();

            void on_brushToolButton_toggled(bool checked);

            void on_replaceToolButton_toggled(bool checked);

            void on_paletteComboBox_activated(int index);

            void on_frameTimeEdit_editingFinished();

        private:
            uint8_t selected_color_index_ = 255;

            Colors::RGB canvas_rgb_color_;

            QButtonGroup canvas_palette_color_group_;

            QButtonGroup canvas_shape_type_group_;

            MaestroControlWidget& maestro_control_widget_;
            Ui::CanvasControlWidget *ui;

            void add_palette_to_selection(const Palette& palette);
            void populate_palette_canvas_color_selection(PaletteController::PaletteWrapper& palette_wrapper);
            void set_controls_enabled(bool enabled);
            void set_frame_interval();
            void set_circle_controls_enabled(bool enabled);
            void set_replace_controls_enabled(bool enabled);
            void set_line_controls_enabled(bool enabled);
            void set_brush_controls_enabled(bool enabled);
            void set_rect_controls_enabled(bool enabled);
            void set_text_controls_enabled(bool enabled);
            void set_triangle_controls_enabled(bool enabled);
    };
}

#endif // CANVASCONTROLWIDGET_H