// -*- c++ -*-
//  Generated by gtkmmproc from ./../dentry-edit.gen_h -- DO NOT MODIFY!
#ifndef _GNOMEMM_DENTRY_EDIT_H
#define _GNOMEMM_DENTRY_EDIT_H

/* $Id: dentry-edit.gen_h,v 1.11 2000/08/29 18:09:01 kenelson Exp $ */


/* dentry-edit.gen_h
 *
 * Copyright (C) 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--/widget.h>
#include <libgnome/gnome-defs.h>
#include <libgnome/gnome-dentry.h>
#include <libgnomeui/gnome-dentry-edit.h>

namespace Gnome {
class DEntryEdit;
class DEntryEdit_Class;
}
namespace Gtk { Gnome::DEntryEdit *wrap (GnomeDEntryEdit *o); }
namespace Gnome
{
class DesktopEntry : public GnomeDesktopEntry
{
public:
  DesktopEntry(const Gtk::string &name, const Gtk::SArray &exec);
  DesktopEntry(const DesktopEntry &source);
  DesktopEntry(const Gtk::string &file,
		     int flags = 0,
		     bool unconditional = true);
  DesktopEntry(const Gtk::string &file);

  ~DesktopEntry();

  void set_name            (const Gtk::string &name);
  void set_comment         (const Gtk::string &comment);
  void set_tryexec         (const Gtk::string &tryexec);
  void set_icon            (const Gtk::string &icon);
  void set_docpath         (const Gtk::string &docpath);
  void set_terminal_needed (bool terminal) { gtkobj()->terminal = terminal; }
  void set_type            (const Gtk::string &type);
  void set_location        (const Gtk::string &location);
  void set_geometry        (const Gtk::string &geometry);

  Gtk::string get_geometry        () const { return gtkobj()->geometry; }
  Gtk::string get_location        () const { return gtkobj()->location; }
  Gtk::string get_type            () const { return gtkobj()->type; }
  bool   is_terminal_needed  () const { return gtkobj()->terminal; }
  Gtk::string get_docpath         () const { return gtkobj()->docpath; }
  Gtk::string get_icon            () const { return gtkobj()->icon; }
  Gtk::string get_tryexec         () const { return gtkobj()->tryexec; }
  Gtk::string get_comment         () const { return gtkobj()->comment; }
  Gtk::string get_name            () const { return gtkobj()->name; }
  bool   has_multiple_args   () const { return gtkobj()->multiple_args; }
  bool   is_kde              () const { return gtkobj()->is_kde; }

  // There are no 'load()' methods - they are wrapped by the ctors
  void save() const;

  void launch() const;
  void launch_with_args(const Gtk::SArray &args);

  GnomeDesktopEntry* gtkobj() { return this; }
  const GnomeDesktopEntry* gtkobj() const { return this; }
};

//////////////////////////////////////////////////////////////////////////////

class DEntryEdit : public Gtk::Object
{

public:
  typedef DEntryEdit          CppObjectType;
  typedef DEntryEdit_Class    CppClassType;
  typedef GnomeDEntryEdit           BaseObjectType;
  typedef GnomeDEntryEditClass      BaseClassType;

private:
  friend class DEntryEdit_Class;
  static CppClassType dentry_edit_class;

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

protected:
  void   initialize_class();
  explicit DEntryEdit(GnomeDEntryEdit *castitem);

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

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

  virtual ~DEntryEdit();

private:

public:
  DEntryEdit();




  void load_file(const Gtk::string& path);


  void clear();

  void set_dentry (const DesktopEntry &dentry);
  DesktopEntry* get_dentry();

  Gtk::string get_icon() const;
  Gtk::string get_name() const;

  Gtk::Widget* get_name_entry    ();
  Gtk::Widget* get_comment_entry ();
  Gtk::Widget* get_exec_entry    ();
  Gtk::Widget* get_tryexec_entry ();
  Gtk::Widget* get_doc_entry     ();
  Gtk::Widget* get_icon_entry    ();

public:

  union
    {
      CppObjectType * dentry_edit_self;
      Gtk::ProxySignal0<void,CppObjectType,BaseObjectType,0> changed;
      Gtk::ProxySignal0<void,CppObjectType,BaseObjectType,1> icon_changed;
      Gtk::ProxySignal0<void,CppObjectType,BaseObjectType,2> name_changed;
    };

protected:
  // impl functions
    virtual void changed_impl();
    virtual void icon_changed_impl();
    virtual void name_changed_impl();

};



}


#endif
