// -*- c++ -*-
//  Generated by gtkmmproc from ./../range.gen_h -- DO NOT MODIFY!
#ifndef _GTKMM_RANGE_H
#define _GTKMM_RANGE_H

/* $Id: range.h,v 1.2 2003/06/17 16:37:41 pbd Exp $ */

/* range.h
 *
 * Copyright (C) 1998-1999 The Gtk-- Development Team
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Library General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Library General Public License for more details.
 *
 * You should have received a copy of the GNU Library General Public
 * License along with this library; if not, write to the Free
 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */

#include <gtk--/widget.h>
#include <gtk/gtkrange.h>

namespace Gtk {
class Range;
class Range_Class;
}
namespace Gtk { Gtk::Range *wrap (GtkRange *o); }
namespace Gtk
{
class Adjustment;

class Range : public Widget {

public:
  typedef Range          CppObjectType;
  typedef Range_Class    CppClassType;
  typedef GtkRange           BaseObjectType;
  typedef GtkRangeClass      BaseClassType;

private:
  friend class Range_Class;
  static CppClassType range_class;

  Range(const Range&);
  Range& operator=(const Range&); // not implemented

protected:
  void   initialize_class();
  explicit Range(GtkRange *castitem);

public:
  static GtkType get_type();
  GtkRange* gtkobj()             { return (GtkRange*)(gtkobject); }
  const GtkRange* gtkobj() const { return (GtkRange*)(gtkobject); }
  static bool isA(Object *checkcast);

  // Hook for proxies
  static const char* const signal_names[];

  virtual ~Range();

private:

public:

  Gtk::Adjustment* get_adjustment() const;





  void set_adjustment(Gtk::Adjustment& adjustment);



  void set_adjustment(Gtk::Adjustment* adjustment=0);


  void set_update_policy(GtkUpdateType policy);


  void draw_background();

  void clear_background();

  void draw_trough();

  void draw_slider();

  void draw_step_forw();

  void draw_step_back();

  void slider_update();


  gint trough_click(gint p0,gint p1,gfloat* p2);

  void default_hslider_update();


  void default_vslider_update();


  void default_htrough_click(gint x,gint y,gfloat* jump_perc);


  void default_vtrough_click(gint x,gint y,gfloat* jump_perc);


  void default_hmotion(gint xdelta,gint ydelta);


  void default_vmotion(gint xdelta,gint ydelta);


protected:
  Range();

public:

  union
    {
      CppObjectType * range_self;
    };

protected:
  // impl functions
    virtual void draw_background_impl();
    virtual void clear_background_impl();
    virtual void draw_trough_impl();
    virtual void draw_slider_impl();
    virtual void draw_step_forw_impl();
    virtual void draw_step_back_impl();
    virtual void slider_update_impl();
    virtual gint trough_click_impl(gint p0,gint p1,gfloat* p2);
    virtual void motion_impl(gint p0,gint p1);
    virtual gint trough_keys_impl(GdkEventKey* p0,GtkScrollType* p1,GtkTroughType* p2);
    virtual gint timer_impl();

};

}


//+ PROPERTIES(Gtk_Range)
//. name: trough
//. type: GdkWindow*
//. get:
//. set:
//. desc:

//. name: slider
//. type: GdkWindow*
//. get:
//. set:
//. desc:

//. name: step_forw
//. type: GdkWindow*
//. get:
//. set:
//. desc:

//. name: step_back
//. type: GdkWindow*
//. get:
//. set:
//. desc:

//. name: x_click_point
//. type: gint16
//. get:
//. set:
//. desc:

//. name: y_click_point
//. type: gint16
//. get:
//. set:
//. desc:

//. name: button
//. type: guint8
//. get:
//. set:
//. desc:

//. name: digits
//. type: gint8
//. get:
//. set:
//. desc:

//. name: policy
//. type: guint:2
//. get:
//. set:
//. desc:

//. name: scroll_type
//. type: guint:3
//. get:
//. set:
//. desc:

//. name: in_child
//. type: guint:3
//. get:
//. set:
//. desc:

//. name: click_child
//. type: guint:3
//. get:
//. set:
//. desc:

//. name: need_timer
//. type: guint:1
//. get:
//. set:
//. desc:

//. name: timer
//. type: guint32
//. get:
//. set:
//. desc:

//. name: old_value
//. type: gfloat
//. get:
//. set:
//. desc:

//. name: old_lower
//. type: gfloat
//. get:
//. set:
//. desc:

//. name: old_upper
//. type: gfloat
//. get:
//. set:
//. desc:

//. name: old_page_size
//. type: gfloat
//. get:
//. set:
//. desc:

//. name: adjustment
//. type: GtkAdjustment*
//. get:
//. set:
//. desc:

#endif
