along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- $Id: fastmeter.h 570 2006-06-07 21:21:21Z sampo $
*/
#ifndef __gtkmm2ext_pixfader_h__
class PixFader : public Gtk::DrawingArea {
public:
- PixFader (Glib::RefPtr<Gdk::Pixbuf> base,
- Glib::RefPtr<Gdk::Pixbuf> handle,
- Gtk::Adjustment& adjustment);
+ PixFader (Glib::RefPtr<Gdk::Pixbuf> belt_image, Gtk::Adjustment& adjustment, int orientation);
virtual ~PixFader ();
protected:
bool on_motion_notify_event (GdkEventMotion*);
bool on_scroll_event (GdkEventScroll* ev);
- private:
- Glib::RefPtr<Gdk::Pixbuf> base_pixbuf;
- Glib::RefPtr<Gdk::Pixbuf> handle_pixbuf;
- gint pixheight;
+ enum Orientation {
+ VERT=1,
+ HORIZ=2,
+ };
- GdkRectangle pixrect;
+ private:
+ Glib::RefPtr<Gdk::Pixbuf> pixbuf;
+ int span, girth;
+ int _orien;
+
+ GdkRectangle view;
GdkWindow* grab_window;
- double grab_y;
+ double grab_loc;
double grab_start;
int last_drawn;
bool dragging;
float default_value;
- int unity_y;
+ int unity_loc;
void adjustment_changed ();
- int display_height () {
- return (int) floor (pixheight * (1.0 - (adjustment.get_upper() - adjustment.get_value ()) / ((adjustment.get_upper() - adjustment.get_lower()))));
- }
+ int display_span ();
+
+ static int fine_scale_modifier;
+ static int extra_fine_scale_modifier;
};