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

/* $Id: fontselection.gen_h,v 1.45 2000/02/13 02:22:09 kenelson Exp $ */

/* fontselection.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--/window.h>
#include <gtk--/notebook.h>
#include <gtk--/radiobutton.h>
#include <gtk--/clist.h>
#include <gtk--/entry.h>
#include <gtk--/box.h>
#include <gtk/gtkfontsel.h>

namespace Gtk {
class FontSelection;
class FontSelection_Class;
}
namespace Gtk { Gtk::FontSelection *wrap (GtkFontSelection *o); }
namespace Gtk {
class FontSelectionDialog;
class FontSelectionDialog_Class;
}
namespace Gtk { Gtk::FontSelectionDialog *wrap (GtkFontSelectionDialog *o); }
namespace Gtk
{
class FontSelection : public Notebook {

public:
  typedef FontSelection          CppObjectType;
  typedef FontSelection_Class    CppClassType;
  typedef GtkFontSelection           BaseObjectType;
  typedef GtkFontSelectionClass      BaseClassType;

private:
  friend class FontSelection_Class;
  static CppClassType font_selection_class;

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

protected:
  void   initialize_class();
  explicit FontSelection(GtkFontSelection *castitem);

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

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

  virtual ~FontSelection();

private:

public:

  FontSelection();



  // gchar* gtk_font_selection_get_font_name(GtkFontSelection *);
  string   get_font_name       () const;



  Gdk_Font get_font() const;



  bool set_font_name(const string& fontname);

  //void  gtk_font_selection_set_filter(GtkFontSelection *,
  //  GtkFontFilterType, GtkFontType, gchar**, gchar**, gchar**, gchar**,
  //  gchar**, gchar**);
  void     set_filter          (GtkFontFilterType filter_type,
				GtkFontType	font_type,
				const SArray	&foundries,
				const SArray	&weights,
				const SArray	&slants,
				const SArray	&setwidths,
				const SArray	&spacings,
				const SArray	&charsets);



  string get_preview_text() const;



  void set_preview_text(const string& fontname);

  // Font page
  Gtk::Box* get_font_box() const;

  Gtk::Label* get_font_label() const;


  Gtk::Entry* get_font_entry() const;

  Gtk::Entry* get_font_style_entry() const;

  Gtk::Entry* get_size_entry() const;

  Gtk::Entry* get_preview_entry() const;


  Gtk::CList* get_font_list() const;

  Gtk::CList* get_font_style_list() const;

  Gtk::CList* get_size_list() const;


  Gtk::RadioButton* get_pixels_button() const;

  Gtk::RadioButton* get_points_button() const;

  Gtk::Button* get_filter_button() const;

  Gtk::Label* get_message_label() const;

  // Font info page
  Gtk::Box* get_info_box() const;

  Gtk::CList* get_info_list() const;
  Gtk::Entry* get_requested_font_name() const;

  Gtk::Entry* get_actual_font_name() const;
  // Filter page
  Gtk::Box* get_filter_box() const;

  Gtk::CheckButton* get_type_bitmaps_button() const;

  Gtk::CheckButton* get_type_scalable_button() const;

  Gtk::CheckButton* get_type_scaled_bitmaps_button() const;

  enum PropertyType { WEIGHT, SLANT, SET_WIDTH, SPACING, CHARSET, FOUNDRY };

  CList* get_filter_list(PropertyType p);

public:

protected:
  // impl functions

};

class FontSelectionDialog : public Window
{

public:
  typedef FontSelectionDialog          CppObjectType;
  typedef FontSelectionDialog_Class    CppClassType;
  typedef GtkFontSelectionDialog           BaseObjectType;
  typedef GtkFontSelectionDialogClass      BaseClassType;

private:
  friend class FontSelectionDialog_Class;
  static CppClassType font_selection_dialog_class;

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

protected:
  void   initialize_class();
  explicit FontSelectionDialog(GtkFontSelectionDialog *castitem);

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

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

  virtual ~FontSelectionDialog();

private:

public:

  FontSelectionDialog(const nstring &title=(char*)0);




  bool set_font_name(const string& fontname);

  // gchar* gtk_font_selection_dialog_get_font_name(GtkFontSelectionDialog *),
  nstring   get_font_name   () const;



  Gdk_Font get_font() const;



  string get_preview_text() const;



  void set_preview_text(const string& fontname);

  // void gtk_font_selection_dialog_set_filter(GtkFontSelectionDialog *fsd,
  //   GtkFontFilterType, GtkFontType, gchar**, gchar**, gchar**,
  //   gchar**, gchar**, gchar**);
  void     set_filter      (GtkFontFilterType filter_type,
			    GtkFontType		font_type,
                            const SArray	&foundries,
                            const SArray	&weights,
                            const SArray	&slants,
                            const SArray	&setwidths,
                            const SArray	&spacings,
                            const SArray	&charsets);

  Gtk::FontSelection* get_font_selection() const;

  Gtk::Button* get_ok_button() const;

  Gtk::Button* get_apply_button() const;

  Gtk::Button* get_cancel_button() const;

public:

protected:
  // impl functions

};


}


#endif
