本文整理汇总了C++中ColorPicker类的典型用法代码示例。如果您正苦于以下问题:C++ ColorPicker类的具体用法?C++ ColorPicker怎么用?C++ ColorPicker使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了ColorPicker类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: QLabel
void ItemHandlerColor::Handle (const QDomElement& item, QWidget *pwidget)
{
QGridLayout *lay = qobject_cast<QGridLayout*> (pwidget->layout ());
QString labelString = XSD_->GetLabel (item);
QLabel *label = new QLabel (labelString);
label->setWordWrap (false);
ColorPicker *picker = new ColorPicker (labelString);
picker->setObjectName (item.attribute ("property"));
picker->SetCurrentColor (XSD_->GetValue (item).value<QColor> ());
connect (picker,
SIGNAL (currentColorChanged (const QColor&)),
this,
SLOT (updatePreferences ()));
picker->setProperty ("ItemHandler",
QVariant::fromValue<QObject*> (this));
int row = lay->rowCount ();
lay->setColumnMinimumWidth (0, 10);
lay->setColumnStretch (0, 1);
lay->setColumnStretch (1, 10);
lay->addWidget (label, row, 0);
lay->addWidget (picker, row, 1, Qt::AlignLeft);
}
示例2: sp_color_picker_color_mod
void sp_color_picker_color_mod(SPColorSelector *csel, GObject *cp)
{
if (_in_use) {
return;
} else {
_in_use = true;
}
SPColor color;
float alpha = 0;
csel->base->getColorAlpha(color, alpha);
guint32 rgba = color.toRGBA32( alpha );
ColorPicker *ptr = reinterpret_cast<ColorPicker *>(cp);
(ptr->_preview).setRgba32 (rgba);
if (ptr->_undo && SP_ACTIVE_DESKTOP)
DocumentUndo::done(sp_desktop_document(SP_ACTIVE_DESKTOP), SP_VERB_NONE,
/* TODO: annotate */ "color-picker.cpp:130");
ptr->on_changed (rgba);
_in_use = false;
ptr->_changed_signal.emit (rgba);
ptr->_rgba = rgba;
}
示例3: QWidget
EffectSettingsWidget::EffectSettingsWidget(const QList<EffectParameter> ¶meters, QWidget *parent)
: QWidget(parent)
, m_parameters(parameters)
{
QFormLayout *layout = new QFormLayout;
foreach (EffectParameter parameter, parameters) {
switch (parameter.type()) {
case QVariant::Int:
{
QSlider *slider = new QSlider(Qt::Horizontal);
slider->setRange(parameter.minimum().toInt(), parameter.maximum().toInt());
slider->setValue(parameter.defaultValue().toInt());
slider->setSingleStep(parameter.step().toInt());
layout->addRow(parameter.name(), slider);
m_selectors.append(slider);
}
break;
case QVariant::Color:
{
ColorPicker *picker = new ColorPicker;
picker->setColor(qvariant_cast<QColor>(parameter.defaultValue()));
layout->addRow(parameter.name(), picker);
m_selectors.append(picker);
}
break;
default:
m_selectors.append(0);
}
}
setLayout(layout);
}
示例4: qWarning
QVariant ItemHandlerColor::GetValue (QObject *object) const
{
ColorPicker *colorPicker = qobject_cast<ColorPicker*> (object);
if (!colorPicker)
{
qWarning () << Q_FUNC_INFO
<< "not a ColorPicker"
<< object;
return QVariant ();
}
return colorPicker->GetCurrentColor ();
}
示例5: ColorPicker
bool ColorSample::OnMouseButtonDown(int x, int y, Uint8 button)
{
ColorPicker *colorPicker = new ColorPicker(r, g, b);
if(colorPicker->Wait() == OK_BUTTON)
{
setColor(colorPicker->getRed(), colorPicker->getGreen(), colorPicker->getBlue());
PostMessage(parent, COLOR_CHANGED);
}
delete colorPicker;
return false;
}
示例6: writer
void MaskContentCommand::onExecute(Context* context)
{
Document* document;
{
ContextWriter writer(context);
document = writer.document();
Cel* cel = writer.cel(); // Get current cel (can be NULL)
if (!cel)
return;
gfx::Color color;
if (writer.layer()->isBackground()) {
ColorPicker picker;
picker.pickColor(*writer.site(),
gfx::PointF(0.0, 0.0),
current_editor->projection(),
ColorPicker::FromComposition);
color = color_utils::color_for_layer(picker.color(), writer.layer());
}
else
color = cel->image()->maskColor();
Mask newMask;
gfx::Rect imgBounds = cel->image()->bounds();
if (algorithm::shrink_bounds(cel->image(), imgBounds, color)) {
newMask.replace(imgBounds.offset(cel->bounds().origin()));
}
else {
newMask.replace(cel->bounds());
}
Transaction transaction(writer.context(), "Select Content", DoesntModifyDocument);
transaction.execute(new cmd::SetMask(document, &newMask));
transaction.commit();
document->resetTransformation();
document->generateMaskBoundaries();
}
// Select marquee tool
if (tools::Tool* tool = App::instance()->toolBox()
->getToolById(tools::WellKnownTools::RectangularMarquee)) {
ToolBar::instance()->selectTool(tool);
}
update_screen_for_document(document);
}
示例7: onExecute
void EyedropperCommand::onExecute(Context* context)
{
Widget* widget = ui::Manager::getDefault()->getMouse();
if (!widget || widget->type() != editor_type())
return;
Editor* editor = static_cast<Editor*>(widget);
Sprite* sprite = editor->sprite();
if (!sprite)
return;
// Discard current image brush
{
Command* discardBrush = CommandsModule::instance()->getCommandByName(CommandId::DiscardBrush);
context->executeCommand(discardBrush);
}
// Pixel position to get
gfx::Point pixelPos = editor->screenToEditor(ui::get_mouse_position());
// Check if we've to grab alpha channel or the merged color.
Preferences& pref = Preferences::instance();
bool grabAlpha = pref.editor.grabAlpha();
ColorPicker picker;
picker.pickColor(editor->getSite(),
pixelPos,
grabAlpha ?
ColorPicker::FromActiveLayer:
ColorPicker::FromComposition);
if (grabAlpha) {
tools::ToolBox* toolBox = App::instance()->getToolBox();
for (auto tool : *toolBox)
pref.tool(tool).opacity(picker.alpha());
}
if (m_background)
pref.colorBar.bgColor(picker.color());
else
pref.colorBar.fgColor(picker.color());
}
示例8: jmouse_y
bool StandbyState::onUpdateStatusBar(Editor* editor)
{
tools::Ink* ink = editor->getCurrentEditorInk();
const Sprite* sprite = editor->sprite();
int x, y;
editor->screenToEditor(jmouse_x(0), jmouse_y(0), &x, &y);
if (!sprite) {
StatusBar::instance()->clearText();
}
// For eye-dropper
else if (ink->isEyedropper()) {
bool grabAlpha = UIContext::instance()->settings()->getGrabAlpha();
ColorPicker picker;
picker.pickColor(editor->getDocumentLocation(), x, y,
grabAlpha ?
ColorPicker::FromActiveLayer:
ColorPicker::FromComposition);
char buf[256];
usprintf(buf, "- Pos %d %d", x, y);
StatusBar::instance()->showColor(0, buf, picker.color(), picker.alpha());
}
else {
Mask* mask =
(editor->document()->isMaskVisible() ?
editor->document()->mask(): NULL);
StatusBar::instance()->setStatusText(0,
"Pos %d %d, Size %d %d, Frame %d [%d msecs]",
x, y,
(mask ? mask->bounds().w: sprite->width()),
(mask ? mask->bounds().h: sprite->height()),
editor->frame()+1,
sprite->getFrameDuration(editor->frame()));
}
return true;
}
示例9: if
bool StandbyState::onUpdateStatusBar(Editor* editor)
{
tools::Ink* ink = editor->getCurrentEditorInk();
const Sprite* sprite = editor->sprite();
gfx::Point spritePos = editor->screenToEditor(ui::get_mouse_position());
if (!sprite) {
StatusBar::instance()->clearText();
}
// For eye-dropper
else if (ink->isEyedropper()) {
bool grabAlpha = Preferences::instance().editor.grabAlpha();
ColorPicker picker;
picker.pickColor(editor->getSite(),
spritePos,
grabAlpha ?
ColorPicker::FromActiveLayer:
ColorPicker::FromComposition);
char buf[256];
sprintf(buf, "- Pos %d %d", spritePos.x, spritePos.y);
StatusBar::instance()->showColor(0, buf, picker.color(), picker.alpha());
}
else {
Mask* mask =
(editor->document()->isMaskVisible() ?
editor->document()->mask(): NULL);
StatusBar::instance()->setStatusText(0,
"Pos %d %d, Size %d %d, Frame %d [%d msecs]",
spritePos.x, spritePos.y,
(mask ? mask->bounds().w: sprite->width()),
(mask ? mask->bounds().h: sprite->height()),
editor->frame()+1,
sprite->frameDuration(editor->frame()));
}
return true;
}
示例10: QDialog
TuneColorDialog::TuneColorDialog(int hue,int sat,int gamma,QWidget *parent) : QDialog(parent)
{
setWindowTitle(tr("Tune the color of the HTML output"));
QGridLayout *layout = new QGridLayout(this);
m_image = new QImage(QString::fromAscii(":/images/tunecolor.png"));
m_imageLab = new QLabel;
updateImage(hue,sat,gamma);
layout->addWidget(new QLabel(tr("Example output: use the sliders on the right to adjust the color")),0,0);
layout->addWidget(m_imageLab,1,0);
QHBoxLayout *buttonsLayout = new QHBoxLayout;
QPushButton *okButton = new QPushButton(tr("Ok"));
connect(okButton,SIGNAL(clicked()),SLOT(accept()));
okButton->setDefault(true);
QPushButton *cancelButton = new QPushButton(tr("Cancel"));
connect(cancelButton,SIGNAL(clicked()),SLOT(reject()));
ColorPicker *huePicker = new ColorPicker(ColorPicker::Hue);
huePicker->setCol(hue,sat,gamma);
huePicker->setFixedWidth(20);
layout->addWidget(huePicker,1,1);
ColorPicker *satPicker = new ColorPicker(ColorPicker::Saturation);
satPicker->setCol(hue,sat,gamma);
satPicker->setFixedWidth(20);
layout->addWidget(satPicker,1,2);
ColorPicker *gamPicker = new ColorPicker(ColorPicker::Gamma);
gamPicker->setCol(hue,sat,gamma);
gamPicker->setFixedWidth(20);
layout->addWidget(gamPicker,1,3);
connect(huePicker,SIGNAL(newHsv(int,int,int)),satPicker,SLOT(setCol(int,int,int)));
connect(satPicker,SIGNAL(newHsv(int,int,int)),huePicker,SLOT(setCol(int,int,int)));
connect(huePicker,SIGNAL(newHsv(int,int,int)),gamPicker,SLOT(setCol(int,int,int)));
connect(satPicker,SIGNAL(newHsv(int,int,int)),gamPicker,SLOT(setCol(int,int,int)));
connect(gamPicker,SIGNAL(newHsv(int,int,int)),satPicker,SLOT(setCol(int,int,int)));
connect(gamPicker,SIGNAL(newHsv(int,int,int)),huePicker,SLOT(setCol(int,int,int)));
connect(huePicker,SIGNAL(newHsv(int,int,int)),this,SLOT(updateImage(int,int,int)));
connect(satPicker,SIGNAL(newHsv(int,int,int)),this,SLOT(updateImage(int,int,int)));
connect(gamPicker,SIGNAL(newHsv(int,int,int)),this,SLOT(updateImage(int,int,int)));
buttonsLayout->addStretch();
buttonsLayout->addWidget(okButton);
buttonsLayout->addWidget(cancelButton);
layout->addLayout(buttonsLayout,5,0,1,4);
}
示例11: onExecute
void EyedropperCommand::onExecute(Context* context)
{
Widget* widget = ui::Manager::getDefault()->getMouse();
if (!widget || widget->type != editor_type())
return;
Editor* editor = static_cast<Editor*>(widget);
Sprite* sprite = editor->sprite();
if (!sprite)
return;
// pixel position to get
gfx::Point pixelPos = editor->screenToEditor(ui::get_mouse_position());
// Check if we've to grab alpha channel or the merged color.
ISettings* settings = UIContext::instance()->settings();
bool grabAlpha = settings->getGrabAlpha();
ColorPicker picker;
picker.pickColor(editor->getSite(),
pixelPos,
grabAlpha ?
ColorPicker::FromActiveLayer:
ColorPicker::FromComposition);
if (grabAlpha) {
tools::ToolBox* toolBox = App::instance()->getToolBox();
for (tools::ToolIterator it=toolBox->begin(), end=toolBox->end(); it!=end; ++it) {
settings->getToolSettings(*it)->setOpacity(picker.alpha());
}
}
if (m_background)
settings->setBgColor(picker.color());
else
settings->setFgColor(picker.color());
}
示例12: onMouseDown
bool StandbyState::onMouseDown(Editor* editor, MouseMessage* msg)
{
if (editor->hasCapture())
return true;
UIContext* context = UIContext::instance();
tools::Ink* clickedInk = editor->getCurrentEditorInk();
Site site;
editor->getSite(&site);
app::Document* document = static_cast<app::Document*>(site.document());
Layer* layer = site.layer();
// When an editor is clicked the current view is changed.
context->setActiveView(editor->getDocumentView());
// Start scroll loop
if (checkForScroll(editor, msg) || checkForZoom(editor, msg))
return true;
// Move cel X,Y coordinates
if (clickedInk->isCelMovement()) {
// Handle "Auto Select Layer"
if (editor->isAutoSelectLayer()) {
gfx::Point cursor = editor->screenToEditor(msg->position());
ColorPicker picker;
picker.pickColor(site, cursor, ColorPicker::FromComposition);
if (layer != picker.layer()) {
layer = picker.layer();
if (layer) {
editor->setLayer(layer);
editor->flashCurrentLayer();
}
}
}
if ((layer) &&
(layer->type() == ObjectType::LayerImage)) {
// TODO we should be able to move the `Background' with tiled mode
if (layer->isBackground()) {
StatusBar::instance()->showTip(1000,
"The background layer cannot be moved");
}
else if (!layer->isVisible()) {
StatusBar::instance()->showTip(1000,
"Layer '%s' is hidden", layer->name().c_str());
}
else if (!layer->isMovable() || !layer->isEditable()) {
StatusBar::instance()->showTip(1000,
"Layer '%s' is locked", layer->name().c_str());
}
else {
// Change to MovingCelState
editor->setState(EditorStatePtr(new MovingCelState(editor, msg)));
}
}
return true;
}
// Call the eyedropper command
if (clickedInk->isEyedropper()) {
callEyedropper(editor);
return true;
}
if (clickedInk->isSelection()) {
// Transform selected pixels
if (document->isMaskVisible() && m_decorator->getTransformHandles(editor)) {
TransformHandles* transfHandles = m_decorator->getTransformHandles(editor);
// Get the handle covered by the mouse.
HandleType handle = transfHandles->getHandleAtPoint(editor,
msg->position(),
document->getTransformation());
if (handle != NoHandle) {
int x, y, opacity;
Image* image = site.image(&x, &y, &opacity);
if (layer && image) {
if (!layer->isEditable()) {
StatusBar::instance()->showTip(1000,
"Layer '%s' is locked", layer->name().c_str());
return true;
}
// Change to MovingPixelsState
transformSelection(editor, msg, handle);
}
return true;
}
}
// Move selected pixels
if (layer && editor->isInsideSelection() && msg->left()) {
if (!layer->isEditable()) {
StatusBar::instance()->showTip(1000,
"Layer '%s' is locked", layer->name().c_str());
return true;
//.........这里部分代码省略.........
示例13: onMouseDown
bool StandbyState::onMouseDown(Editor* editor, MouseMessage* msg)
{
if (editor->hasCapture())
return true;
UIContext* context = UIContext::instance();
tools::Ink* clickedInk = editor->getCurrentEditorInk();
Site site;
editor->getSite(&site);
app::Document* document = static_cast<app::Document*>(site.document());
Layer* layer = site.layer();
// When an editor is clicked the current view is changed.
context->setActiveView(editor->getDocumentView());
// Start scroll loop
if (checkForScroll(editor, msg) || checkForZoom(editor, msg))
return true;
// Move cel X,Y coordinates
if (clickedInk->isCelMovement()) {
// Handle "Auto Select Layer"
if (editor->isAutoSelectLayer()) {
gfx::Point cursor = editor->screenToEditor(msg->position());
ColorPicker picker;
picker.pickColor(site, cursor, ColorPicker::FromComposition);
DocumentRange range = App::instance()->getMainWindow()->getTimeline()->range();
// Change layer only when the layer is diffrent from current one, and
// the range we selected is not with multiple cels.
bool layerChanged = (layer != picker.layer());
bool rangeEnabled = range.enabled();
bool rangeSingleCel = ((range.type() == DocumentRange::kCels) &&
(range.layers() == 1) && (range.frames() == 1));
if (layerChanged && (!rangeEnabled || rangeSingleCel)) {
layer = picker.layer();
if (layer) {
editor->setLayer(layer);
editor->flashCurrentLayer();
}
}
}
if ((layer) &&
(layer->type() == ObjectType::LayerImage)) {
// TODO we should be able to move the `Background' with tiled mode
if (layer->isBackground()) {
StatusBar::instance()->showTip(1000,
"The background layer cannot be moved");
}
else if (!layer->isVisible()) {
StatusBar::instance()->showTip(1000,
"Layer '%s' is hidden", layer->name().c_str());
}
else if (!layer->isMovable() || !layer->isEditable()) {
StatusBar::instance()->showTip(1000,
"Layer '%s' is locked", layer->name().c_str());
}
else if (!layer->cel(editor->frame())) {
StatusBar::instance()->showTip(1000,
"Cel is empty, nothing to move");
}
else {
// Change to MovingCelState
editor->setState(EditorStatePtr(new MovingCelState(editor, msg)));
}
}
return true;
}
// Call the eyedropper command
if (clickedInk->isEyedropper()) {
editor->captureMouse();
callEyedropper(editor);
return true;
}
if (clickedInk->isSelection()) {
// Transform selected pixels
if (editor->isActive() &&
document->isMaskVisible() &&
m_decorator->getTransformHandles(editor)) {
TransformHandles* transfHandles = m_decorator->getTransformHandles(editor);
// Get the handle covered by the mouse.
HandleType handle = transfHandles->getHandleAtPoint(editor,
msg->position(),
document->getTransformation());
if (handle != NoHandle) {
int x, y, opacity;
Image* image = site.image(&x, &y, &opacity);
if (layer && image) {
if (!layer->isEditable()) {
StatusBar::instance()->showTip(1000,
"Layer '%s' is locked", layer->name().c_str());
//.........这里部分代码省略.........
示例14: switch
bool ColorButton::onProcessMessage(Message* msg)
{
switch (msg->type()) {
case kCloseMessage:
if (m_window && m_window->isVisible())
m_window->closeWindow(NULL);
break;
case kMouseEnterMessage:
StatusBar::instance()->showColor(0, "", m_color);
break;
case kMouseLeaveMessage:
StatusBar::instance()->clearText();
break;
case kMouseMoveMessage:
if (hasCapture()) {
gfx::Point mousePos = static_cast<MouseMessage*>(msg)->position();
Widget* picked = getManager()->pick(mousePos);
app::Color color = m_color;
if (picked && picked != this) {
// Pick a color from another color-button
if (ColorButton* pickedColBut = dynamic_cast<ColorButton*>(picked)) {
color = pickedColBut->getColor();
}
// Pick a color from the color-bar
else if (picked->type() == palette_view_type()) {
color = ((PaletteView*)picked)->getColorByPosition(mousePos);
}
// Pick a color from a editor
else if (picked->type() == editor_type()) {
Editor* editor = static_cast<Editor*>(picked);
Site site = editor->getSite();
if (site.sprite()) {
gfx::Point editorPos = editor->screenToEditor(mousePos);
ColorPicker picker;
picker.pickColor(site, editorPos, ColorPicker::FromComposition);
color = picker.color();
}
}
}
// Did the color change?
if (color != m_color) {
setColor(color);
}
}
break;
case kSetCursorMessage:
if (hasCapture()) {
ui::set_mouse_cursor(kEyedropperCursor);
return true;
}
break;
}
return ButtonBase::onProcessMessage(msg);
}
示例15: AddColorPicker
//==== Add Color Picker ====//
void GroupLayout::AddColorPicker( ColorPicker& picker )
{
assert( m_Group && m_Screen );
//==== Button ====//
Fl_Button* colorButton = new Fl_Button( m_X, m_Y, m_ButtonWidth, m_StdHeight * 2, "Color:" );
colorButton->box( FL_THIN_UP_BOX );
colorButton->labelfont( 1 );
colorButton->labelsize( 12 );
colorButton->labelcolor( FL_BLACK );
m_Group->add( colorButton );
AddX( m_ButtonWidth );
//==== Current Color Button ====//
Fl_Button* primColorButton = new Fl_Button( m_X, m_Y, m_ButtonWidth / 2, m_StdHeight * 2 );
primColorButton->box( FL_THIN_DOWN_BOX );
primColorButton->color( ( Fl_Color )2 );
m_Group->add( primColorButton );
AddX( m_ButtonWidth / 2 + 2 );
//==== Sliders ====//
int ch = 2 * m_StdHeight / 3;
int cw = m_StdHeight;
int sw = FitWidth( m_ButtonWidth + m_ButtonWidth / 2 + 2 + 4 * cw, m_SliderWidth );
Fl_Slider* sliders[3];
for ( int i = 0 ; i < 3 ; i++ )
{
sliders[i] = new Fl_Value_Slider( m_X, m_Y + i * ch, sw, ch );
sliders[i]->type( 5 );
sliders[i]->color( FL_BACKGROUND2_COLOR );
sliders[i]->selection_color( ( Fl_Color )1 );
sliders[i]->maximum( 255 );
sliders[i]->step( 1 );
m_Group->add( sliders[i] );
}
sliders[0]->selection_color( ( Fl_Color )1 );
sliders[1]->selection_color( ( Fl_Color )2 );
sliders[2]->selection_color( ( Fl_Color )4 );
AddX( sw + 2 );
//==== Color Buttons ====//
vector< Fl_Button* > cvec;
int color_index = 0;
for ( int i = 0 ; i < 4 ; i++ )
{
for ( int j = 0 ; j < 3 ; j++ )
{
Fl_Button* b = new Fl_Button( m_X + i * cw, m_Y + j * ch, cw, ch );
vec3d rgb = picker.GetIndexRGB( color_index );
Fl_Color c = fl_rgb_color( ( int )rgb[0], ( int )rgb[1], ( int )rgb[2] );
b->color( c );
m_Group->add( b );
cvec.push_back( b );
color_index++;
}
}
AddX( 3 * cw );
picker.Init( m_Screen, colorButton, primColorButton, cvec, sliders );
AddY( m_StdHeight * 2 );
NewLineX();
}