// -*- c++ -*-
/*  Generated by gensig from ruler.gen_h. DO NOT MODIFY!!! */
#ifndef GTKMM_RULER_HEADER
#define GTKMM_RULER_HEADER
/* $Id: ruler.gen_h,v 1.16.2.1 1999/03/20 05:00:00 terop Exp $ */

/* ruler.h
 * 
 * Copyright (C) 1998-1999 
 *
 * 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/gtkruler.h>
#include <gtk/gtkhruler.h>
#include <gtk/gtkvruler.h>

class Gtk_Ruler_Class;
class Gtk_VRuler_Class;
class Gtk_HRuler_Class;
#line 27 "ruler.gen_h"

//: Abstract Ruler
// Ruler is an abstraction used as the base for Gtk_HRuler and
// Gtk_VRuler.  Users should only instantiate those types. 
class Gtk_Ruler : public Gtk_Widget {
public:
protected:
  typedef Gtk_Ruler_Class    CppClassType;
  typedef GtkRuler           BaseObjectType;
  typedef GtkRulerClass      BaseClassType;

  virtual void *get_parent_class();

private:
  friend CppClassType;
  static CppClassType ruler_class; 
  GtkType get_type(); 

public:


  Gtk_Ruler(GtkRuler *castitem);
  
  // Sets the desired metric of the ruler.  The possible choices are:
  // <ul><li>GTK_PIXELS
  // <li>GTK_INCHES
  // <li>GTK_CENTIMETERS
  // </ul>The default metric is GTK_PIXELS.
  void set_metric(GtkMetricType metric);

  // sets the range of the ruler.  <i>upper</i> and <i>lower</i> arguments 
  // denote the extents of the Ruler.  <i>max_size</i> is the largest 
  // number displayed by the ruler.  <i>position</i> gives the initial 
  // value of the ruler.  Rulers do not have sane defaults so this function
  // should always be called. 
  void set_range(gfloat lower, gfloat upper,
		 gfloat position, gfloat max_size);
  void draw_ticks();
  void draw_pos();
protected:
  /* impl functions */
public:
  GtkRuler* gtkobj() { return GTK_RULER(gtkobject); }
  const GtkRuler* gtkobj() const { return GTK_RULER(gtkobject); }
  static bool isGtkRuler(Gtk_Object *checkcast);
#line 53 "ruler.gen_h"


protected:
  Gtk_Ruler();
};


class Gtk_VRuler : public Gtk_Ruler {
public:
protected:
  typedef Gtk_VRuler_Class    CppClassType;
  typedef GtkVRuler           BaseObjectType;
  typedef GtkVRulerClass      BaseClassType;

  virtual void *get_parent_class();

private:
  friend CppClassType;
  static CppClassType vruler_class; 
  GtkType get_type(); 

public:


  Gtk_VRuler();
  Gtk_VRuler(GtkVRuler *castitem);
protected:
  /* impl functions */
public:
  GtkVRuler* gtkobj() { return GTK_VRULER(gtkobject); }
  const GtkVRuler* gtkobj() const { return GTK_VRULER(gtkobject); }
  static bool isGtkVRuler(Gtk_Object *checkcast);
#line 66 "ruler.gen_h"

};


class Gtk_HRuler : public Gtk_Ruler {
public:
protected:
  typedef Gtk_HRuler_Class    CppClassType;
  typedef GtkHRuler           BaseObjectType;
  typedef GtkHRulerClass      BaseClassType;

  virtual void *get_parent_class();

private:
  friend CppClassType;
  static CppClassType hruler_class; 
  GtkType get_type(); 

public:


  Gtk_HRuler();
  Gtk_HRuler(GtkHRuler *castitem);
protected:
  /* impl functions */
public:
  GtkHRuler* gtkobj() { return GTK_HRULER(gtkobject); }
  const GtkHRuler* gtkobj() const { return GTK_HRULER(gtkobject); }
  static bool isGtkHRuler(Gtk_Object *checkcast);
#line 76 "ruler.gen_h"

};

#endif
