Spot enlightening when mouse is over not yet selected spot
This commit is contained in:
parent
8d5e2ccb0c
commit
c22a5ec36e
@ -264,6 +264,20 @@ void ControlSpotPanel::render_id(
|
||||
Gtk::CellRendererText *ct = static_cast<Gtk::CellRendererText *>(cell);
|
||||
int value = row[spots_.id];
|
||||
ct->property_text() = std::to_string(value);
|
||||
// Render background color
|
||||
Gdk::RGBA color;
|
||||
if (row[spots_.mouseover]) { // Orange
|
||||
color.set_red(1.);
|
||||
color.set_green(100. / 255.);
|
||||
color.set_blue(0.);
|
||||
color.set_alpha(1.);
|
||||
} else { // Transparent black
|
||||
color.set_red(0.);
|
||||
color.set_green(0.);
|
||||
color.set_blue(0.);
|
||||
color.set_alpha(0.);
|
||||
}
|
||||
ct->property_background_rgba() = color;
|
||||
}
|
||||
|
||||
void ControlSpotPanel::render_name(
|
||||
@ -273,6 +287,20 @@ void ControlSpotPanel::render_name(
|
||||
Gtk::CellRendererText *ct = static_cast<Gtk::CellRendererText *>(cell);
|
||||
auto value = row[spots_.name];
|
||||
ct->property_text() = value;
|
||||
Gdk::RGBA color;
|
||||
// Render background color
|
||||
if (row[spots_.mouseover]) { // Orange
|
||||
color.set_red(1.);
|
||||
color.set_green(100. / 255.);
|
||||
color.set_blue(0.);
|
||||
color.set_alpha(1.);
|
||||
} else { // Transparent black
|
||||
color.set_red(0.);
|
||||
color.set_green(0.);
|
||||
color.set_blue(0.);
|
||||
color.set_alpha(0.);
|
||||
}
|
||||
ct->property_background_rgba() = color;
|
||||
}
|
||||
|
||||
void ControlSpotPanel::render_isvisible(
|
||||
@ -287,6 +315,21 @@ void ControlSpotPanel::render_isvisible(
|
||||
} else {
|
||||
ct->property_text() = M("TP_LOCALLAB_ROW_NVIS");
|
||||
}
|
||||
|
||||
// Render background color
|
||||
Gdk::RGBA color;
|
||||
if (row[spots_.mouseover]) { // Orange
|
||||
color.set_red(1.);
|
||||
color.set_green(100. / 255.);
|
||||
color.set_blue(0.);
|
||||
color.set_alpha(1.);
|
||||
} else { // Transparent black
|
||||
color.set_red(0.);
|
||||
color.set_green(0.);
|
||||
color.set_blue(0.);
|
||||
color.set_alpha(0.);
|
||||
}
|
||||
ct->property_background_rgba() = color;
|
||||
}
|
||||
|
||||
void ControlSpotPanel::on_button_add()
|
||||
@ -1329,14 +1372,29 @@ bool ControlSpotPanel::mouseOver(int modifierKey)
|
||||
return false;
|
||||
}
|
||||
|
||||
// Get selected row
|
||||
const auto selIter = s->get_selected();
|
||||
Gtk::TreeModel::Row selRow = *selIter;
|
||||
|
||||
int object_ = editProvider_->object;
|
||||
|
||||
if (object_ != lastObject_) {
|
||||
if (object_ == -1) {
|
||||
// Reset mouseOver preview for visibleGeometry
|
||||
for (int it_ = 0; it_ < (int) EditSubscriber::visibleGeometry.size(); it_++) {
|
||||
EditSubscriber::visibleGeometry.at(it_)->state = Geometry::NORMAL;
|
||||
}
|
||||
|
||||
// Reset mouseOver preview for TreeView
|
||||
Gtk::TreeModel::Children children = treemodel_->children();
|
||||
Gtk::TreeModel::Children::iterator iter;
|
||||
|
||||
for (iter = children.begin(); iter != children.end(); iter++) {
|
||||
Gtk::TreeModel::Row row = *iter;
|
||||
row[spots_.mouseover] = false;
|
||||
}
|
||||
|
||||
// Actualize lastObject_
|
||||
lastObject_ = object_;
|
||||
return false;
|
||||
}
|
||||
@ -1344,6 +1402,18 @@ bool ControlSpotPanel::mouseOver(int modifierKey)
|
||||
int curveId_ = object_ / 10 + 1;
|
||||
int rem = object_ % 10;
|
||||
|
||||
// Manage mouseOver preview for TreeView
|
||||
Gtk::TreeModel::Children children = treemodel_->children();
|
||||
Gtk::TreeModel::Children::iterator iter;
|
||||
for (iter = children.begin(); iter != children.end(); iter++) {
|
||||
Gtk::TreeModel::Row row = *iter;
|
||||
if (row[spots_.curveid] == curveId_ && *row != *selRow) {
|
||||
row[spots_.mouseover] = true;
|
||||
} else {
|
||||
row[spots_.mouseover] = false;
|
||||
}
|
||||
}
|
||||
|
||||
for (int it_ = 0; it_ < (int) EditSubscriber::visibleGeometry.size(); it_++) {
|
||||
if ((it_ < ((curveId_ - 1) * 10)) || (it_ > ((curveId_ - 1) * 10) + 9)) { // it_ does not belong to cursor pointed curve
|
||||
EditSubscriber::visibleGeometry.at(it_)->state = Geometry::NORMAL;
|
||||
@ -1723,6 +1793,7 @@ void ControlSpotPanel::addControlSpot(SpotRow* newSpot)
|
||||
|
||||
disableParamlistener(true);
|
||||
Gtk::TreeModel::Row row = * (treemodel_->append());
|
||||
row[spots_.mouseover] = false;
|
||||
row[spots_.id] = newSpot->id;
|
||||
row[spots_.name] = newSpot->name;
|
||||
row[spots_.isvisible] = newSpot->isvisible;
|
||||
@ -2063,6 +2134,7 @@ void ControlSpotPanel::setBatchMode(bool batchMode)
|
||||
|
||||
ControlSpotPanel::ControlSpots::ControlSpots()
|
||||
{
|
||||
add(mouseover);
|
||||
add(id);
|
||||
add(name);
|
||||
add(isvisible);
|
||||
|
@ -260,6 +260,7 @@ private:
|
||||
public:
|
||||
ControlSpots();
|
||||
|
||||
Gtk::TreeModelColumn<bool> mouseover; // Used to manage spot enlightening when mouse over
|
||||
Gtk::TreeModelColumn<int> id; // Control spot id
|
||||
Gtk::TreeModelColumn<Glib::ustring> name;
|
||||
Gtk::TreeModelColumn<bool> isvisible;
|
||||
|
Loading…
x
Reference in New Issue
Block a user