using namespace Gtkmm2ext;
using namespace sigc;
+Gdk::Color* MotionFeedback::base_color;
+
MotionFeedback::MotionFeedback (Glib::RefPtr<Gdk::Pixbuf> pix,
Type t,
boost::shared_ptr<PBD::Controllable> c,
, subwidth (subw)
, subheight (subh)
{
+ if (!base_color) {
+ base_color = new Gdk::Color ("#1a5274");
+ }
+
char value_name[1024];
print_func = default_printer;
/* shift click back to the default */
_controllable->set_value (default_value);
return true;
- }
+ } else if (Keyboard::modifier_state_equals (ev->state, Keyboard::PrimaryModifier)) {
+ /* ctrl click back to the minimum value */
+ _controllable->set_value (_controllable->lower ());
+ }
break;
case 3:
return false;
}
- if ((ev->state & (Keyboard::PrimaryModifier|Keyboard::TertiaryModifier)) == (Keyboard::PrimaryModifier|Keyboard::TertiaryModifier)) {
- scale = 0.01;
- } else if (ev->state & Keyboard::PrimaryModifier) {
- scale = 0.1;
+ if (ev->state & Keyboard::GainFineScaleModifier) {
+ if (ev->state & Keyboard::GainExtraFineScaleModifier) {
+ scale = 0.01;
+ } else {
+ scale = 0.05;
+ }
} else {
- scale = 1.0;
+ scale = 0.25;
}
switch (ev->direction) {
case GDK_SCROLL_UP:
case GDK_SCROLL_RIGHT:
- _controllable->set_value (adjust (scale * step_inc));
+ _controllable->set_value (adjust (scale * page_inc));
break;
case GDK_SCROLL_DOWN:
case GDK_SCROLL_LEFT:
- _controllable->set_value (adjust (-scale * step_inc));
+ _controllable->set_value (adjust (-scale * page_inc));
break;
}
GdkColor col2 = {0,0,0,0};
GdkColor col3 = {0,0,0,0};
- Gdk::Color base ("#b9feff");
GdkColor dark;
GdkColor bright;
ProlooksHSV* hsv;
- hsv = prolooks_hsv_new_for_gdk_color (base.gobj());
+ hsv = prolooks_hsv_new_for_gdk_color (base_color->gobj());
bright = (prolooks_hsv_to_gdk_color (hsv, &col2), col2);
prolooks_hsv_set_saturation (hsv, 0.66);
prolooks_hsv_set_value (hsv, 0.67);
cairo_pattern_destroy (knob_ripples);
}
+
+void
+MotionFeedback::set_lamp_color (const std::string& str)
+{
+ if (base_color) {
+ *base_color = Gdk::Color (str);
+ } else {
+ base_color = new Gdk::Color (str);
+ }
+}