## GnomeDbSelector

GnomeDbSelector — Individual selection of libgnomedb objects (data types, functions, ...)

##

# Synopsis

    struct      GnomeDbSelector;
    struct      GnomeDbSelectorClass;
    enum        GnomeDbSelectorFeature;
    GtkWidget*  gnome_db_selector_new           (void);
    void        gnome_db_selector_add_part      (GnomeDbSelector *sel,
                                                 const gchar *name,
                                                 GnomeDbSelectorPart *part);
    void        gnome_db_selector_add_parts_for_feature
                                                (GnomeDbSelector *sel,
                                                 GdaMetaStore *store,
                                                 GnomeDbSelectorFeature feature);

## Object Hierarchy

      GObject
       +----GInitiallyUnowned
             +----GtkObject
                   +----GtkWidget
                         +----GtkContainer
                               +----GtkTreeView
                                     +----GnomeDbSelector

## Implemented Interfaces

GnomeDbSelector implements AtkImplementorIface and GtkBuildable.

## Signal Prototypes

    "selected-object-changed"
                void        user_function      (GnomeDbSelector *dbselector,
                                                GnomeDbSelectorPart *arg1,
                                                GtkTreeStore *arg2,
                                                gpointer arg3,
                                                gpointer user_data);

## Description

This widget presents the user with a (configurable) list of objects to choose from: Data types, functions, aggregates, ...

What really gets displayed in the widget (columns and rows) depends on the parameters passed to the `gnome_db_selector_new()` function.

## Details

### struct GnomeDbSelector

    struct GnomeDbSelector;

### struct GnomeDbSelectorClass

    struct GnomeDbSelectorClass {

    	GtkTreeViewClass    parent_class;
    	void              (*selected_object_changed) (GnomeDbSelector *sel, GnomeDbSelectorPart *part,
    						      GtkTreeStore *store, GtkTreeIter *iter);
    };

### enum GnomeDbSelectorFeature

    typedef enum {
    	GNOME_DB_SELECTOR_FEATURE_NONE = 0,
    	GNOME_DB_SELECTOR_FEATURE_SCHEMAS = 1 << 0,
    	GNOME_DB_SELECTOR_FEATURE_SCHEMA_TABLES = 1 << 1,
    	GNOME_DB_SELECTOR_FEATURE_SCHEMA_VIEWS = 1 << 2,
    	GNOME_DB_SELECTOR_FEATURE_SCHEMA_DOMAINS = 1 << 3,

    	GNOME_DB_SELECTOR_FEATURE_SCHEMA_TABLE_COLUMNS = 1 << 4,
    	GNOME_DB_SELECTOR_FEATURE_SCHEMA_TABLE_CONSTRAINTS = 1 << 5,
    	GNOME_DB_SELECTOR_FEATURE_SCHEMA_TABLE_TRIGGERS = 1 << 6,

    	GNOME_DB_SELECTOR_FEATURE_SCHEMA_TABLE_DETAILS = (GNOME_DB_SELECTOR_FEATURE_SCHEMA_TABLE_COLUMNS | GNOME_DB_SELECTOR_FEATURE_SCHEMA_TABLE_CONSTRAINTS | GNOME_DB_SELECTOR_FEATURE_SCHEMA_TABLE_TRIGGERS),

    	GNOME_DB_SELECTOR_FEATURE_SCHEMA_VIEW_COLUMNS = 1 << 7,
    	GNOME_DB_SELECTOR_FEATURE_SCHEMA_VIEW_DETAILS = (GNOME_DB_SELECTOR_FEATURE_SCHEMA_VIEW_COLUMNS)
    } GnomeDbSelectorFeature;

### gnome_db_selector_new ()

    GtkWidget*  gnome_db_selector_new           (void);

Creates a new GnomeDbSelector widget. If `features` is different than GNOME_DB_SELECTOR_FEATURE_NONE then some GnomeDbSelectorPart will be created and inserted by default in the new selector widget, avoiding much hand written code.

Returns : | the new widget

### gnome_db_selector_add_part ()

    void        gnome_db_selector_add_part      (GnomeDbSelector *sel,
                                                 const gchar *name,
                                                 GnomeDbSelectorPart *part);

`sel` : | a GnomeDbSelector widget
`name` : |
`part` : | a GnomeDbSelectorPart object

### gnome_db_selector_add_parts_for_feature ()

    void        gnome_db_selector_add_parts_for_feature
                                                (GnomeDbSelector *sel,
                                                 GdaMetaStore *store,
                                                 GnomeDbSelectorFeature feature);

Adds some predefined parts to `sel` to implement some features

`sel` : | a GnomeDbSelector widget
`store` : | a GdaMetaStore object
`feature` : | a GnomeDbSelectorFeature feature

## Signals

### The "selected-object-changed" signal

    void        user_function                  (GnomeDbSelector *dbselector,
                                                GnomeDbSelectorPart *arg1,
                                                GtkTreeStore *arg2,
                                                gpointer arg3,
                                                gpointer user_data);

`dbselector` : | the object which received the signal.
`arg1` : |
`arg2` : |
`arg3` : |
`user_data` : | user data set when the signal handler was connected.