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

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

/* inputdialog.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--/dialog.h>
#include <gtk--/optionmenu.h>
#include <gtk--/item.h>
#include <gtk--/list.h>
#include <gtk--/button.h>
#include <gtk/gtkinputdialog.h>

namespace Gtk {
class InputDialog;
class InputDialog_Class;
}
namespace Gtk { Gtk::InputDialog *wrap (GtkInputDialog *o); }
namespace Gtk
{
//: Configure devices for the XInput extension.
//- {\class Gtk::InputDialog} displays a dialog which allows the user to
//- configure XInput extension devices. For each device, they can control
//- the mode of the device (disabled, screen-relative, or
//- window-relative), the mapping of axes to coordinates, and the mapping
//- of the devices macro keys to key press events.
//-
//- {\class Gtk::InputDialog} contains two buttons to which the
//- application can connect; one for closing the dialog, and one for
//- saving the changes. No actions are bound to these by default. The
//- changes that the user makes take effect immediately.
class InputDialog : public Dialog
{

public:
  typedef InputDialog          CppObjectType;
  typedef InputDialog_Class    CppClassType;
  typedef GtkInputDialog           BaseObjectType;
  typedef GtkInputDialogClass      BaseClassType;

private:
  friend class InputDialog_Class;
  static CppClassType input_dialog_class;

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

protected:
  void   initialize_class();
  explicit InputDialog(GtkInputDialog *castitem);

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

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

  virtual ~InputDialog();

private:

public:

  //: This signal is emitted when the user changes the mode of a device
  //: from {\enum GDK_MODE_DISABLED} to a {\enum GDK_MODE_SCREEN} or
  //: {\enum GDK_MODE_WINDOW}.

  //: This signal is emitted when the user changes the mode of a device
  //: from a {\enum GDK_MODE_SCREEN} or {\enum GDK_MODE_WINDOW} to
  //: {\enum GDK_MODE_ENABLED}.


  InputDialog();

//  Gtk_List* get_axis_list()             { return &axis_list_; }
//  Gtk_Item** get_axis_items()           { return axis_items_; }

  Gtk::OptionMenu* get_mode_optionmenu() const;

  Gtk::Button* get_close_button() const;

  Gtk::Button* get_save_button() const;

  //const Gtk_List* get_axis_list() const             { return &axis_list_; }
  //const Gtk_Item* const * get_axis_items() const     { return axis_items_; }

public:

  union
    {
      CppObjectType * input_dialog_self;
      Gtk::ProxySignal1<void,guint32,CppObjectType,BaseObjectType,0> enable_device;
      Gtk::ProxySignal1<void,guint32,CppObjectType,BaseObjectType,1> disable_device;
    };

protected:
  // impl functions
    virtual void enable_device_impl(guint32 p0);
    virtual void disable_device_impl(guint32 p0);

};

}


//+ PROPERTIES(Gtk_InputDialog)
//. name: axis_list
//. type: Gtk_Widget*
//. get:
//. set:
//. desc:

//. name: axis_listbox
//. type: Gtk_Widget*
//. get:
//. set:
//. desc:

//. name: mode_optionmenu
//. type: Gtk_Widget*
//. get:
//. set:
//. desc:

//. name: close_button
//. type: Gtk_Widget*
//. get:
//. set:
//. desc:

//. name: save_button
//. type: Gtk_Widget*
//. get:
//. set:
//. desc:

//. name: axis_items[GDK_AXIS_LAST]
//. type: Gtk_Widget*
//. get:
//. set:
//. desc:

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

//. name: keys_list
//. type: Gtk_Widget*
//. get:
//. set:
//. desc:

//. name: keys_listbox
//. type: Gtk_Widget*
//. get:
//. set:
//. desc:

#endif
