You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
108 lines
3.8 KiB
108 lines
3.8 KiB
/***************************************************************************
|
|
gradientselection.h - description
|
|
-------------------
|
|
begin : Wed Jul 12 2000
|
|
copyright : (C) 2000 by Artur Rataj
|
|
email : art@zeus.polsl.gliwice.pl
|
|
***************************************************************************/
|
|
|
|
/***************************************************************************
|
|
* *
|
|
* This program is free software; you can redistribute it and/or modify *
|
|
* it under the terms of the GNU General Public License as published by *
|
|
* the Free Software Foundation; either version 2 of the License, or *
|
|
* (at your option) any later version. *
|
|
* *
|
|
***************************************************************************/
|
|
|
|
#ifndef GRADIENTSELECTION_H
|
|
#define GRADIENTSELECTION_H
|
|
|
|
#include <tqwidget.h>
|
|
#include <tqcheckbox.h>
|
|
#include <tqpushbutton.h>
|
|
#include <tqbuttongroup.h>
|
|
|
|
#include "kxycolorselector.h"
|
|
#include "kzcolorselector.h"
|
|
#include "color.h"
|
|
|
|
/** A widget for selecting colors from gradients
|
|
* @author Artur Rataj
|
|
*/
|
|
class GradientSelection : public TQWidget {
|
|
Q_OBJECT
|
|
|
|
|
|
public:
|
|
/** Constructs the widget */
|
|
GradientSelection(TQWidget *parent=0, const char *name=0);
|
|
~GradientSelection();
|
|
/** Enables or disables the color synchronize button */
|
|
void enableSynchronizeColorButton(bool enable);
|
|
|
|
signals:
|
|
/** A signal that a color value has changed by edition */
|
|
void valueChanged(Color*);
|
|
/** Synchronizes the widget color */
|
|
void synchronizeColor();
|
|
|
|
public slots:
|
|
/** Sets a color */
|
|
void slotSetValue(Color* color);
|
|
/** Whether to ignore the set value slot. Default is false. */
|
|
void slotIgnoreSetValue(bool ignore);
|
|
|
|
protected:
|
|
/** Components indices. If the gradient selector shows one of them,
|
|
* the two components selector should be in a mode indicated by a value
|
|
* of the appropriate index
|
|
*/
|
|
enum { H_COMPONENT = KXYColorSelector::TYPE_VS,
|
|
S_COMPONENT = KXYColorSelector::TYPE_HV,
|
|
V_COMPONENT = KXYColorSelector::TYPE_HS };
|
|
|
|
/** Variable global component checkbox */
|
|
TQCheckBox* variableCheckBox;
|
|
/** Synchronize color button */
|
|
TQPushButton* synchronizeColorButton;
|
|
/** HSV buttons button group widget */
|
|
TQButtonGroup hsvButtons;
|
|
/** The two components selector */
|
|
KXYColorSelector* xyColorSelector;
|
|
/** The gradient selector */
|
|
KZColorSelector* zColorSelector;
|
|
/** Whether the two component color selector global component is variable */
|
|
bool variableGlobalComponent;
|
|
/** Whether to ignore the set value slot */
|
|
bool ignoreSetValue;
|
|
/** The selected color */
|
|
Color color;
|
|
/** The selected color H component */
|
|
int hComponent;
|
|
/** The selected color S component */
|
|
int sComponent;
|
|
/** The selected color V component */
|
|
int vComponent;
|
|
/** The gradient selector component index */
|
|
int zColorSelectorComponentIndex;
|
|
/** Updates two component selector colors */
|
|
void updateXyColorSelector(const bool modeChanged);
|
|
/** Updates gradient selector colors */
|
|
void updateZColorSelector();
|
|
|
|
protected slots:
|
|
/** Sets color selection mode */
|
|
void slotSetColorSelectionMode(int mode);
|
|
/** Sets if the two component selector has a variable global component */
|
|
void slotSetVariableGlobalComponent(bool variable);
|
|
/** Notifies that the two component color selector pointer position changed */
|
|
void slotXyColorSelectorPosChanged(int x, int y);
|
|
/** Notifies that the gradient color selector pointer position changed */
|
|
void slotZColorSelectorPosChanged(int y);
|
|
/** sends synchronizeColor signal */
|
|
void slotSynchronizeColor();
|
|
};
|
|
|
|
#endif
|