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

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

/* plug.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/gtkplug.h>

namespace Gtk {
class Plug;
class Plug_Class;
}
namespace Gtk { Gtk::Plug *wrap (GtkPlug *o); }
namespace Gtk
{
//: Toplevel for embedding into other processes.
//- Together with {\class Gtk::Socket}, {\class Gtk::Plug} provides the ability to
//- embed widgets from one process into another process in a fashion that is
//- transparent to the user. One process creates a {\class Gtk::Socket} widget and,
//- passes the XID of that widgets window to the other process, which then creates
//- a {\class Gtk::Plug} window with that XID. Any widgets contained in the
//- {\class Gtk::Plug} then will appear inside the first applications window.
class Plug : public Window
{

public:
  typedef Plug          CppObjectType;
  typedef Plug_Class    CppClassType;
  typedef GtkPlug           BaseObjectType;
  typedef GtkPlugClass      BaseClassType;

private:
  friend class Plug_Class;
  static CppClassType plug_class;

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

protected:
  void   initialize_class();
  explicit Plug(GtkPlug *castitem);

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

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

  virtual ~Plug();

private:

public:

  Plug (guint32 socket_id);

public:

protected:
  // impl functions

};

}


//+ PROPERTIES(Gtk_Plug)
//. name: socket_window
//. type: GdkWindow*
//. get:
//. set:
//. desc:

//. name: same_app
//. type: gint
//. get:
//. set:
//. desc:

#endif
