// -*- c++ -*-
/*  Generated by gensig from style.gen_h. DO NOT MODIFY!!! */
#ifndef GTKMM_STYLE_HEADER
#define GTKMM_STYLE_HEADER
/* $Id: style.gen_h,v 1.25.2.4 1999/09/12 13:59:46 tdukes Exp $ */

/* style.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--config.h>
#include <gtk/gtkstyle.h>
#include <gdk--.h>
#include <gtk--/base.h>
#include <string>

#ifdef GTKMM_CXX_HAVE_NAMESPACES
namespace std{}
using namespace std;
#endif /* GTKMM_CXX_HAVE_NAMESPACES */

class Gtk_RC;
class Gtk_RCStyle;
class Gtk_Widget;

#line 37 "style.gen_h"

class Gtk_Style
{
  friend Gtk_RC;
  friend Gtk_RCStyle;
  friend Gtk_Widget;
  
public:
  Gtk_Style();
  Gtk_Style(GtkStyle *castitem);
  virtual ~Gtk_Style();

  Gtk_ObjectHandle<Gtk_Style> attach(Gdk_Window &window);
  void       detach();
  Gtk_Style* ref();
  void       unref();
  Gtk_ObjectHandle<Gtk_Style> copy() const;
  
  void set_background(Gdk_Window window, GtkStateType state_type);
#line 57 "style.gen_h"
  void apply_default_background(Gdk_Window &window,
				bool set_bg,
				GtkStateType state_type,
				const Gdk_Rectangle &area,
				gint          x, 
				gint          y, 
				gint          width, 
				gint          height);
  Gdk_Font get_font ();
  void     set_font ( Gdk_Font &font_in );
#line 68 "style.gen_h"
  void set_bg ( GtkStateType state_type, GdkColor &new_color );
  void set_light ( GtkStateType state_type, GdkColor &new_color );
  void set_dark ( GtkStateType state_type, GdkColor &new_color );
  void set_mid ( GtkStateType state_type, GdkColor &new_color );
  void set_base ( GtkStateType state_type, GdkColor &new_color );
  void set_fg ( GtkStateType state_type, GdkColor &new_color );
  void set_text ( GtkStateType state_type, GdkColor &new_color );

  void set_bg ( GtkStateType state_type, Gdk_Color &new_color );
  void set_light ( GtkStateType state_type, Gdk_Color &new_color );
  void set_dark ( GtkStateType state_type, Gdk_Color &new_color );
  void set_mid ( GtkStateType state_type, Gdk_Color &new_color );
  void set_base ( GtkStateType state_type, Gdk_Color &new_color );
  void set_fg ( GtkStateType state_type, Gdk_Color &new_color );
  void set_text ( GtkStateType state_type, Gdk_Color &new_color );

  void draw_hline               (Gdk_Window     &window,
				 GtkStateType   state_type,
				 gint           x1,
				 gint           x2,
				 gint           y);

  void draw_vline               (Gdk_Window     &window,
				 GtkStateType   state_type,
				 gint           y1,
				 gint           y2,
				 gint           x);

  void draw_shadow              (Gdk_Window     &window,
				 GtkStateType   state_type,
				 GtkShadowType  shadow_type,
				 gint           x,
				 gint           y,
				 gint           width,
				 gint           height);

  void draw_polygon             (Gdk_Window     &window,
				 GtkStateType   state_type,
				 GtkShadowType  shadow_type,
				 GdkPoint      *points,
				 gint           npoints,
				 gint           fill);

  void draw_arrow               (Gdk_Window     &window,
				 GtkStateType   state_type,
				 GtkShadowType  shadow_type,
				 GtkArrowType   arrow_type,
				 gint           fill,
				 gint           x,
				 gint           y,
				 gint           width,
				 gint           height);

  void draw_diamond             (Gdk_Window     &window,
				 GtkStateType   state_type,
				 GtkShadowType  shadow_type,
				 gint           x,
				 gint           y,
				 gint           width,
				 gint           height);

  void draw_oval                (Gdk_Window     &window,
				 GtkStateType   state_type,
				 GtkShadowType  shadow_type,
				 gint           x,
				 gint           y,
				 gint           width,
				 gint           height);

  void draw_string              (Gdk_Window     &window,
				 GtkStateType   state_type,
				 gint           x,
				 gint           y,
				 const _gtk_string &string);

  const GtkStyle* gtkobj() const { return gtkstyle; }
  GtkStyle* gtkobj() { return gtkstyle; }
protected:
  GtkStyle *gtkstyle;
};

#endif
