From ab5ce7f1308d7f7b9acde0639eafeed6dcedc9b9 Mon Sep 17 00:00:00 2001 From: Thanatomanic Date: Fri, 15 Jun 2018 23:22:23 +0200 Subject: [PATCH] Full functional button now. Reverted a minor change from unsigned int to int. --- rtgui/histogrampanel.cc | 43 +++++++++++++++++++---------------------- 1 file changed, 20 insertions(+), 23 deletions(-) diff --git a/rtgui/histogrampanel.cc b/rtgui/histogrampanel.cc index bff8a4b3c..53ea6c459 100644 --- a/rtgui/histogrampanel.cc +++ b/rtgui/histogrampanel.cc @@ -45,7 +45,7 @@ HistogramPanel::HistogramPanel () set_halign(Gtk::ALIGN_FILL); set_name("HistogramPanel"); - histogramArea = Gtk::manage (new HistogramArea (/*this*/)); + histogramArea = Gtk::manage (new HistogramArea (this)); histogramArea->set_hexpand(true); histogramArea->set_vexpand(true); histogramRGBArea = Gtk::manage (new HistogramRGBArea ()); @@ -402,11 +402,6 @@ void HistogramPanel::reorder (Gtk::PositionType align) // DrawModeListener interface: void HistogramPanel::toggle_button_mode () { - // Does not seem to be called from HistogramArea::on_button_press_event ... why? - // - // printf("%i\n",options.histogramDrawMode); - // fflush(stdout); - if (options.histogramDrawMode == 0) showMode->set_image(*modeImage); else if (options.histogramDrawMode == 1) @@ -889,7 +884,7 @@ void HistogramArea::updateBackBuffer () // does not take into account 0 and 255 values // them are handled separately - int fullhistheight = 0; + unsigned int fullhistheight = 0; for (int i = 1; i < 255; i++) { if (needLuma && lhisttemp[i] > fullhistheight) { @@ -912,9 +907,11 @@ void HistogramArea::updateBackBuffer () fullhistheight = bhtemp[i]; } } + + int realhistheight = fullhistheight; - if (fullhistheight < winh - 2) { - fullhistheight = winh - 2; + if (realhistheight < winh - 2) { + realhistheight = winh - 2; } cr->set_antialias (Cairo::ANTIALIAS_SUBPIXEL); @@ -924,57 +921,57 @@ void HistogramArea::updateBackBuffer () int ui = 0, oi = 0; if (needBlue) { - drawCurve(cr, bhchanged, fullhistheight, w, h); + drawCurve(cr, bhchanged, realhistheight, w, h); cr->set_source_rgba (0.0, 0.0, 1.0, 0.4); cr->fill (); - drawCurve(cr, bhchanged, fullhistheight, w, h); + drawCurve(cr, bhchanged, realhistheight, w, h); cr->set_source_rgba (0.0, 0.0, 1.0, 0.9); cr->stroke (); - drawMarks(cr, bhchanged, fullhistheight, w, ui, oi); + drawMarks(cr, bhchanged, realhistheight, w, ui, oi); } if (needGreen) { - drawCurve(cr, ghchanged, fullhistheight, w, h); + drawCurve(cr, ghchanged, realhistheight, w, h); cr->set_source_rgba (0.0, 1.0, 0.0, 0.4); cr->fill (); - drawCurve(cr, ghchanged, fullhistheight, w, h); + drawCurve(cr, ghchanged, realhistheight, w, h); cr->set_source_rgba (0.0, 1.0, 0.0, 0.9); cr->stroke (); - drawMarks(cr, ghchanged, fullhistheight, w, ui, oi); + drawMarks(cr, ghchanged, realhistheight, w, ui, oi); } if (needRed) { - drawCurve(cr, rhchanged, fullhistheight, w, h); + drawCurve(cr, rhchanged, realhistheight, w, h); cr->set_source_rgba (1.0, 0.0, 0.0, 0.4); cr->fill (); - drawCurve(cr, rhchanged, fullhistheight, w, h); + drawCurve(cr, rhchanged, realhistheight, w, h); cr->set_source_rgba (1.0, 0.0, 0.0, 0.9); cr->stroke (); - drawMarks(cr, rhchanged, fullhistheight, w, ui, oi); + drawMarks(cr, rhchanged, realhistheight, w, ui, oi); } cr->set_operator(Cairo::OPERATOR_SOURCE); if (needLuma && !rawMode) { - drawCurve(cr, lhist, fullhistheight, w, h); + drawCurve(cr, lhist, realhistheight, w, h); cr->set_source_rgb (0.9, 0.9, 0.9); cr->stroke (); - drawMarks(cr, lhist, fullhistheight, w, ui, oi); + drawMarks(cr, lhist, realhistheight, w, ui, oi); } if (needChroma && !rawMode) { - drawCurve(cr, chist, fullhistheight, w, h); + drawCurve(cr, chist, realhistheight, w, h); cr->set_source_rgb (0.4, 0.4, 0.4); cr->stroke (); - drawMarks(cr, chist, fullhistheight, w, ui, oi); + drawMarks(cr, chist, realhistheight, w, ui, oi); } } @@ -1133,7 +1130,7 @@ bool HistogramArea::on_button_press_event (GdkEventButton* event) drawMode = (drawMode + 1) % 3; options.histogramDrawMode = (options.histogramDrawMode + 1) % 3; - if (myDrawModeListener) { // This doesn't seem te be work? Therefore no update of the button graphics... + if (myDrawModeListener) { myDrawModeListener->toggle_button_mode (); }