Filter:   InfoImg
download bonobo-control.h
Language: C
Copyright: Copyright 1999, 2000 Helix Code, Inc.
LOC: 110
Project Info
libbonoboui
Server: Gnome
Type: cvs
...onoboui\libbonoboui\bonobo\
   .cvsignore
   bonobo-a11y.c
   bonobo-a11y.h
   bonobo-canvas-component.c
   bonobo-canvas-component.h
   bonobo-canvas-item.c
   bonobo-canvas-item.h
   bonobo-control-frame.c
   bonobo-control-frame.h
   bonobo-control-internal.h
   bonobo-control.c
   bonobo-control.h
   bonobo-dock-band.c
   bonobo-dock-band.h
   bonobo-dock-item-grip.c
   bonobo-dock-item-grip.h
   bonobo-dock-item.c
   bonobo-dock-item.h
   bonobo-dock-layout.c
   bonobo-dock-layout.h
   bonobo-dock.c
   bonobo-dock.h
   ...bo-embeddable-factory.h
   ...bo-file-selector-util.c
   ...bo-file-selector-util.h
   ...bo-insert-component.xpm
   bonobo-plug.c
   bonobo-plug.h
   bonobo-property-control.c
   bonobo-property-control.h
   bonobo-selector-widget.c
   bonobo-selector-widget.h
   bonobo-selector.c
   bonobo-selector.h
   bonobo-socket.c
   bonobo-socket.h
   bonobo-ui-component.c
   bonobo-ui-component.h
   bonobo-ui-config-widget.c
   bonobo-ui-config-widget.h
   bonobo-ui-container.c
   bonobo-ui-container.h
   bonobo-ui-engine-config.c
   bonobo-ui-engine-config.h
   bonobo-ui-engine-private.h
   bonobo-ui-engine.c
   bonobo-ui-engine.h
   bonobo-ui-init-gtk.c
   ...o-ui-internal-toolbar.c
   bonobo-ui-main.c
   bonobo-ui-main.h
   bonobo-ui-marshal-main.c
   bonobo-ui-marshal.list
   bonobo-ui-node-private.h
   bonobo-ui-node.c
   bonobo-ui-node.h
   bonobo-ui-preferences.c
   bonobo-ui-preferences.h
   bonobo-ui-private.h
   bonobo-ui-sync-keys.c
   bonobo-ui-sync-keys.h
   bonobo-ui-sync-menu.c
   bonobo-ui-sync-menu.h
   bonobo-ui-sync-status.c
   bonobo-ui-sync-status.h
   bonobo-ui-sync-toolbar.c
   bonobo-ui-sync-toolbar.h
   bonobo-ui-sync.c
   bonobo-ui-sync.h
   ...i-toolbar-button-item.c
   ...i-toolbar-button-item.h
   ...-toolbar-control-item.c
   ...-toolbar-control-item.h
   bonobo-ui-toolbar-item.c
   bonobo-ui-toolbar-item.h
   ...ui-toolbar-popup-item.c
   ...ui-toolbar-popup-item.h
   ...ar-toggle-button-item.c
   ...ar-toggle-button-item.h
   bonobo-ui-toolbar.c
   bonobo-ui-toolbar.h
   bonobo-ui-util.c
   bonobo-ui-util.h
   bonobo-ui-win32.c
   bonobo-ui-xml.c
   bonobo-ui-xml.h
   bonobo-widget.c
   bonobo-widget.h
   bonobo-window.c
   bonobo-window.h
   bonobo-wrapper.h
   bonobo-zoomable-frame.c
   bonobo-zoomable-frame.h
   bonobo-zoomable.c
   bonobo-zoomable.h
   ...i-2.0-uninstalled.pc.in
   libbonoboui-2.0.pc.in
   Makefile.am

/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
/**
 * Bonobo control object
 *
 * Author:
 *   Nat Friedman (nat@helixcode.com)
 *   Miguel de Icaza (miguel@helixcode.com)
 *
 * Copyright 1999, 2000 Helix Code, Inc.
 */
#ifndef _BONOBO_CONTROL_H_
#define _BONOBO_CONTROL_H_

#include <glib/gmacros.h>
#include <gtk/gtkobject.h>
#include <gtk/gtkwidget.h>
#include <gtk/gtkwindow.h>
#include <gtk/gtkmenu.h>

typedef struct _BonoboControl BonoboControl;

#include <bonobo/bonobo-plug.h>
#include <bonobo/bonobo-object.h>
#include <bonobo/bonobo-ui-container.h>
#include <bonobo/bonobo-ui-component.h>


G_BEGIN_DECLS
 
#define BONOBO_TYPE_CONTROL        (bonobo_control_get_type ())
#define BONOBO_CONTROL(o)          (G_TYPE_CHECK_INSTANCE_CAST ((o), BONOBO_TYPE_CONTROL, BonoboControl))
#define BONOBO_CONTROL_CLASS(k)    (G_TYPE_CHECK_CLASS_CAST ((k), BONOBO_TYPE_CONTROL, BonoboControlClass))
#define BONOBO_IS_CONTROL(o)       (G_TYPE_CHECK_INSTANCE_TYPE ((o), BONOBO_TYPE_CONTROL))
#define BONOBO_IS_CONTROL_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), BONOBO_TYPE_CONTROL))

typedef struct _BonoboControlPrivate BonoboControlPrivate;

struct _BonoboControl {
	BonoboObject base;

	BonoboControlPrivate *priv;
};

typedef struct {
	BonoboObjectClass      parent_class;

	POA_Bonobo_Control__epv epv;

	gpointer dummy[2];

	/* Signals. */
	void (*plug_created)   (BonoboControl *control);
	void (*disconnected)   (BonoboControl *control);
	void (*set_frame)      (BonoboControl *control);
	void (*activate)       (BonoboControl *control, gboolean state);
} BonoboControlClass;

/* The main API */
BonoboControl              *bonobo_control_new                     (GtkWidget     *widget);
GtkWidget                  *bonobo_control_get_widget              (BonoboControl *control);
void                        bonobo_control_set_automerge           (BonoboControl *control,
								    gboolean       automerge);
gboolean                    bonobo_control_get_automerge           (BonoboControl *control);

void                        bonobo_control_set_property            (BonoboControl       *control,
								    CORBA_Environment   *opt_ev,
								    const char          *first_prop,
								    ...) G_GNUC_NULL_TERMINATED;
void                        bonobo_control_get_property            (BonoboControl       *control,
								    CORBA_Environment   *opt_ev,
								    const char          *first_prop,
								    ...) G_GNUC_NULL_TERMINATED;

void                        bonobo_control_set_transient_for       (BonoboControl       *control,
								    GtkWindow           *window,
								    CORBA_Environment   *opt_ev);
void                        bonobo_control_unset_transient_for     (BonoboControl       *control,
								    GtkWindow           *window,
								    CORBA_Environment   *opt_ev);

/* "Internal" stuff */
GType                       bonobo_control_get_type                (void) G_GNUC_CONST;
BonoboControl              *bonobo_control_construct               (BonoboControl       *control,
								    GtkWidget           *widget);
BonoboPlug                 *bonobo_control_get_plug                (BonoboControl       *control);
BonoboUIComponent          *bonobo_control_get_ui_component        (BonoboControl       *control);
void                        bonobo_control_set_ui_component        (BonoboControl       *control,
								    BonoboUIComponent   *component);
Bonobo_UIContainer          bonobo_control_get_remote_ui_container (BonoboControl       *control,
								    CORBA_Environment   *opt_ev);
void                        bonobo_control_set_control_frame       (BonoboControl       *control,
								    Bonobo_ControlFrame  control_frame,
								    CORBA_Environment   *opt_ev);
Bonobo_ControlFrame         bonobo_control_get_control_frame       (BonoboControl       *control,
								    CORBA_Environment   *opt_ev);
void                        bonobo_control_set_properties          (BonoboControl       *control,
								    Bonobo_PropertyBag   pb,
								    CORBA_Environment   *opt_ev);
Bonobo_PropertyBag          bonobo_control_get_properties          (BonoboControl       *control);
Bonobo_PropertyBag          bonobo_control_get_ambient_properties  (BonoboControl       *control,
								    CORBA_Environment   *opt_ev);
void                        bonobo_control_activate_notify         (BonoboControl       *control,
								    gboolean             activated,
								    CORBA_Environment   *opt_ev);
Bonobo_Gdk_WindowId         bonobo_control_window_id_from_x11      (guint32              x11_id);
guint32                     bonobo_control_x11_from_window_id      (const CORBA_char    *id);
#define                     bonobo_control_windowid_from_x11(a) \
			    bonobo_control_window_id_from_x11(a)

/* Popup API */
#define                     BONOBO_CONTROL_POPUP_BUTTON1           "/popups/button1"
#define                     BONOBO_CONTROL_POPUP_BUTTON2           "/popups/button2"
#define                     BONOBO_CONTROL_POPUP_BUTTON3           "/popups/button3"

BonoboUIContainer          *bonobo_control_get_popup_ui_container  (BonoboControl       *control);
BonoboUIComponent          *bonobo_control_get_popup_ui_component  (BonoboControl       *control);
void                        bonobo_control_set_popup_ui_container  (BonoboControl       *control,
								    BonoboUIContainer   *ui_container);
gboolean                    bonobo_control_do_popup                (BonoboControl       *control,
								    guint                button,
								    guint32              activate_time);
gboolean                    bonobo_control_do_popup_full           (BonoboControl       *control,
								    GtkWidget           *parent_menu_shell,
								    GtkWidget           *parent_menu_item,
								    GtkMenuPositionFunc  func,
								    gpointer             data,
								    guint                button,
								    guint32              activate_time);
gboolean                    bonobo_control_do_popup_path           (BonoboControl       *control,
								    GtkWidget           *parent_menu_shell,
								    GtkWidget           *parent_menu_item,
								    GtkMenuPositionFunc  func,
								    gpointer             data,
								    guint                button,
								    const char          *popup_path,
								    guint32              activate_time);

/* Simple lifecycle helpers - using the 'disconnected' signal */
typedef void (*BonoboControlLifeCallback) (void);
void bonobo_control_life_set_purge    (long                      ms);
void bonobo_control_life_set_callback (BonoboControlLifeCallback all_dead_callback);
void bonobo_control_life_instrument   (BonoboControl            *control);
int  bonobo_control_life_get_count    (void);

G_END_DECLS

#endif /* _BONOBO_CONTROL_H_ */