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

// -*- C++ -*-
/* $Id: appbar.gen_h,v 1.20 2001/02/17 15:48:25 murrayc Exp $ */

/* appbar.h
 *
 * Copyright (C) 1998 EMC Capital Management Inc.
 * Developed by Havoc Pennington <hp@pobox.com>
 *
 * 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 <libgnomeui/gnome-appbar.h>
#include <gtk--/box.h>
#include <gtk--/progressbar.h>

namespace Gnome {
class AppBar;
class AppBar_Class;
}
namespace Gtk { Gnome::AppBar *wrap (GnomeAppBar *o); }
namespace Gnome
{

class AppBar : public Gtk::HBox
{

public:
  typedef AppBar          CppObjectType;
  typedef AppBar_Class    CppClassType;
  typedef GnomeAppBar           BaseObjectType;
  typedef GnomeAppBarClass      BaseClassType;

private:
  friend class AppBar_Class;
  static CppClassType appbar_class;

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

protected:
  void   initialize_class();
  explicit AppBar(GnomeAppBar *castitem);

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

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

  virtual ~AppBar();

private:

public:

   //: Create a AppBar.
  //- interactivity can be GNOME_PREFERENCES_NEVER, GNOME_PREFERENCES_USER,
  //- GNOME_PREFERENCES_ALWAYS.
  AppBar(bool has_progress = false,
				 bool has_status = true ,
				 GnomePreferencesType interactivity = GNOME_PREFERENCES_NEVER);





  //: Get the progress bar.
  //- Not setable internal.  Use this to set the current progress
  //- precentage.
  Gtk::ProgressBar* get_progress() const;


/* Status message stack. */

  Gtk::nstring get_default() const;
  void set_default(const Gtk::string& default_status);


  //: Replaces the current status with a new one.

  void set_status(const Gtk::string& status);

  //: Places a new status message in the bar.
  //- Temporarily sets status message.  It is cleared by {refresh()}
  //- or set.  Does not affect the stack.

  void push(const Gtk::string& status);

  //: Removes last status message.
  //- This is okay to call on empty stack.  The previous message is
  //- displayed.

  void pop();

  //: Remove status on the stack.

  void clear_stack();

  // useless sugar set_progress removed.

  //: Reflect the current state of stack/default.
  //- Useful to force a {set_status()} to disappear.

  void refresh();


/* prompting the user */
  //: Get string of current prompt.
  Gtk::nstring get_prompt() const;

  //: Prompt user for input.
  //- Put a prompt in the appbar and wait for a response. When the
  //- user responds or cancels, a user_response signal is emitted.

  void prompt(const Gtk::string& message,bool modal=true);

  //: Remove any prompt.



  //: Get the response to the prompt, if any.
  Gtk::string get_response() const;

  //: Indicates use hit return or canceled.

public:

  union
    {
      CppObjectType * appbar_self;
      Gtk::EmitProxySignal0<void,CppObjectType,BaseObjectType,0,&gnome_appbar_clear_prompt> clear_prompt;
      Gtk::ProxySignal0<void,CppObjectType,BaseObjectType,1> user_response;
    };

protected:
  // impl functions
    virtual void clear_prompt_impl();
    virtual void user_response_impl();

};

}


#endif
