Proper check for rawzor libraries.
[rawtherapee-fixes.git] / rtgui / adjuster.h
blobc0222dde4c996cddc5892a554b0dea3082c9f7f4
1 /*
2 * This file is part of RawTherapee.
4 * Copyright (c) 2004-2010 Gabor Horvath <hgabor@rawtherapee.com>
6 * RawTherapee is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
11 * RawTherapee is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
19 #ifndef _ADJUSTER_H_
20 #define _ADJUSTER_H_
22 #include <gtkmm.h>
23 #include <editedstate.h>
25 class Adjuster;
26 class AdjusterListener {
28 public:
29 virtual void adjusterChanged (Adjuster* a, double newval) {}
33 class Adjuster : public Gtk::VBox {
35 protected:
36 Gtk::HBox* hbox;
37 Gtk::Label* label;
38 Gtk::HScale* slider;
39 Gtk::SpinButton* spin;
40 Gtk::Button* reset;
41 AdjusterListener* adjusterListener;
42 sigc::connection delayConnection;
43 sigc::connection spinChange;
44 sigc::connection sliderChange;
45 sigc::connection editedChange;
46 bool listenerReady;
47 double defaultVal;
48 EditedState editedState;
49 EditedState defEditedState;
50 int digits;
51 Gtk::CheckButton* editedCheckBox;
52 bool afterReset;
54 double shapeValue (double a);
55 void refreshLabelStyle ();
57 public:
59 static int delay;
61 Adjuster (Glib::ustring label, double vmin, double vmax, double vstep, double vdefault, bool editedCheckBox=false);
62 virtual ~Adjuster ();
63 void setAdjusterListener (AdjusterListener* alistener);
65 double getValue ();
66 void setValue (double a);
67 void setLimits (double vmin, double vmax, double vstep, double vdefault);
68 void setEnabled (bool enabled);
69 void setDefault (double def);
70 void setEditedState (EditedState eState);
71 EditedState getEditedState ();
72 void setDefaultEditedState (EditedState eState);
73 void showEditedCB ();
76 void spinChanged ();
77 void sliderChanged ();
78 bool notifyListener ();
79 void resetPressed ();
80 void editedToggled ();
83 #endif