fceux/src/drivers/Qt/ColorMenu.h

63 lines
1.1 KiB
C++

// ColorMenu.h
//
#pragma once
#include <QWidget>
#include <QWidgetAction>
#include <QAction>
#include <QColor>
#include <QDialog>
#include <QColorDialog>
#include <QCloseEvent>
class ColorMenuPickerDialog_t : public QDialog
{
Q_OBJECT
public:
ColorMenuPickerDialog_t( QColor *c, const char *titleText, QWidget *parent = 0);
~ColorMenuPickerDialog_t(void);
protected:
void closeEvent(QCloseEvent *event);
private:
QColorDialog *colorDialog;
QColor *colorPtr;
QColor origColor;
public slots:
void closeWindow(void);
private slots:
void colorChanged( const QColor &color );
void colorAccepted(void);
void colorRejected(void);
void resetColor(void);
};
class ColorMenuItem : public QAction
{
Q_OBJECT
public:
ColorMenuItem( QString txt, const char *confName, QWidget *parent = 0);
~ColorMenuItem(void);
void connectColor( QColor *c );
protected:
QString title;
QColor *colorPtr;
QColor lastColor;
ColorMenuPickerDialog_t *picker;
const char *confName;
void setImageColor( QColor c );
public slots:
void openColorPicker(void);
void pickerClosed(int ret);
signals:
void colorChanged( QColor &c );
};