Sophie

Sophie

distrib > Mandriva > 9.1 > ppc > media > main > by-pkgid > ca81b57b553ae75608ba0fc5e7925e4e > files > 474

libgtkmm1.2-devel-1.2.10-1mdk.ppc.rpm

/* $Id: button.gen_h,v 1.55 2001/07/15 13:33:38 murrayc Exp $ */

/* box.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--/bin.h>
#include <gtk/gtkbutton.h>


namespace Gtk {
  //: Toplevel Button
  //- The button widget is a rectangular clickable widget. You can
  //- decorate it with images, text, or whatever you like.
class Button : public Bin {


public:
  typedef Button          CppObjectType;
  typedef GtkButton            BaseObjectType;

public:
  //: Returns the underlaying gtk+ object.
  GtkButton* gtkobj();
  const GtkButton* gtkobj() const;

  //: Returns true if object is this type.
  static bool isA(Gtk::Object *object);

  virtual ~Button();

private:

public:
  //: Create an empty button.
  //- With an empty button, you can {Gtk_Button::add()} a widget
  //- such as a {Gtk::Pixmap::} or {Gtk::Box::}.
  //-
  //- If you just wish to add a {Gtk::Label::},
  //- you may want to
  //- use the {Button(const string &label)} ctor
  //- directly instead.
  Button();



  //: Simple Push Button with label.
  //- Create a button with the given label inside. You won't be able
  //- to add a widget in this button since it already has a {\class Gtk_Label}
  //- in it.
  explicit Button(const string &label,gfloat x=0.5,gfloat y=0.5);

  //: Set the button's relief style.
  //- This effects how the button looks. GtkReliefStyle can be one of {\enum GTK_RELIEF_NORMAL},
  //- {\enum GTK_RELIEF_HALF}, or {\enum GTK_RELIEF_NONE}.
  //- {\example
  //- //This program shows the differences in button styles.
  //-
  //- #include <gtk--/button.h>
  //- #include <gtk--/window.h>
  //- #include <gtk--/box.h>
  //- #include <gtk--/main.h>
  //-
  //- //This custom window will contain 3 buttons, one of
  //- //each style.
  //- class custom_window : public Gtk::Window
  //- {
  //-   Gtk::Button normal, half, none;
  //-   Gtk::HBox some_hbox;
  //-   public:
  //-     custom_window();
  //- };
  //-
  //- //The constructor. Creates the window adds the buttons,
  //- //and sets their style.
  //- custom_window::custom_window()
  //- : Gtk::Window(GTK_WINDOW_TOPLEVEL), some_hbox(true, 2),
  //-   normal("Normal"), half("Half"), none("None")
  //- {
  //-   normal.set_relief(GTK_RELIEF_NORMAL);
  //-   half.set_relief(GTK_RELIEF_HALF);
  //-   none.set_relief(GTK_RELIEF_NONE);
  //-   some_hbox.pack_start(normal, true, true, 0);
  //-   some_hbox.pack_start(half, true, true, 0);
  //-   some_hbox.pack_start(none, true, true, 0);
  //-   add(some_hbox);
  //-   show_all();
  //- }
  //-
  //- int main(int argc, char *argv[])
  //- {
  //-   Gtk::Main main_runner(argc, argv);
  //-   custom_window some_window;
  //-   main_runner.run();
  //- }
  //- }


  void set_relief(GtkReliefStyle newstyle);

  //: Return the button's relief style. (see {Gtk_Button::set_relief()})


  GtkReliefStyle get_relief() const;

  //: Emited on button press.
  //- Triggered when the button is pressed (e.g. the mouse button is
  //- still down, it hasn't been released yet, see next signal)




    emitable signal void pressed();

  //: Triggered when the user has released the mouse button




    emitable signal void released();

  //: Emitted on button press and release.
  //- Triggered when the user has pressed and released the mouse button
  //- This is the signal you most likely want to connect.




    emitable signal void clicked();

  //: Triggered when the mouse cursor enters the button




    emitable signal void enter();

  //: Triggered when the mouse cursor leaves the button




    emitable signal void leave();

protected:
  // impl functions
    virtual void pressed_impl();
    virtual void released_impl();
    virtual void clicked_impl();
    virtual void enter_impl();
    virtual void leave_impl();

};


//+ PROPERTIES(Gtk_Button)
//. name: relief
//. type: guint:2
//. get: {get_relief()}
//. set: {set_relief()}
//. desc: Can be set to one of the following values :
//.  {\enum GTK_RELIEF_NORMAL}, {\enum GTK_RELIEF_HALF}, {\enum GTK_RELIEF_NONE}

}