// -*- c++ -*-
//  Generated by gtkmmproc from ./../mdi-child.gen_h -- DO NOT MODIFY!
#ifndef _GNOMEMM_MDI_CHILD_H
#define _GNOMEMM_MDI_CHILD_H

/* $Id: mdi-child.gen_h,v 1.17 2001/05/10 00:07:03 murrayc Exp $ */


/* mdi-child.gen_h
 *
 * Copyright (C) 1999, 2001 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--/object.h>
#include <gtk--/widget.h>
#include <gnome--/app.h>
#include <libgnomeui/gnome-mdi-child.h>

namespace Gnome {
class MDIChild;
class MDIChild_Class;
}
namespace Gtk { Gnome::MDIChild *wrap (GnomeMDIChild *o); }
namespace Gnome
{
class MDI;
class MDIChild : public Gtk::Object
{

public:
  typedef MDIChild          CppObjectType;
  typedef MDIChild_Class    CppClassType;
  typedef GnomeMDIChild           BaseObjectType;
  typedef GnomeMDIChildClass      BaseClassType;

private:
  friend class MDIChild_Class;
  static CppClassType mdi_child_class;

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

protected:
  void   initialize_class();
  explicit MDIChild(GnomeMDIChild *castitem);

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

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

  virtual ~MDIChild();

private:

public:
  MDIChild();




  void set_name(const Gtk::string& name);

  Gtk::string get_name() const;
  //: Set the template from which child menus will be created.
  // wrapper for gnome_mdi_child_set_menu_template
  void create_menus(const UI::Array<UI::SubTree>& menu_tmpl);

  // parent is set by adding child to MDI
  Gnome::MDI* get_parent() const;

  // Returns a default view.
  Gtk::Widget* get_active();

  //void set_active(); //FIXME: Not implemented? Should the child remember a view?
  void set_active(Gtk::Widget& view);

  void update();

  // Creates a view
  Gtk::Widget* create_view();
  Gtk::Widget* create_toplevel_view();

  //void remove_view(); //FIXME: Not implemented? //What view?
  bool remove_view(Gtk::Widget& view, bool force = false);

  void set_config_string(const Gtk::string& config_string);

protected:
  //: Create a view of this widget.
  //- This must be derived
  virtual Gtk::Widget* create_view_impl();

  //: Create a custom title for this child
  //- override this if you want the child to have something other
  //- than the child name.
  virtual Gtk::Widget* create_title_impl();
  virtual void update_title_impl(Gtk::Widget&);

private:
  UI::Array<UI::SubTree> menus_;
  Gtk::string config_string_; //Set this in derived instances.
  //static GnomeMDIChildLabelFunc default_set_label_impl;

//This goes into MDIChild_Class:

public:

protected:
  // impl functions

};



}

#endif
