## gok-control gok-control |

## Synopsis

    enum                ControlTypes;
    enum                ControlFillwiths;
    enum                ControlHandlers;
    GokControl*         gok_control_new                     (void);
    void                gok_control_delete_all              (GokControl *pControl);
    gint                gok_control_get_control_type        (gchar *NameControlType);
    gint                gok_control_get_handler_type        (gchar *NameControlType);
    void                gok_control_button_handler          (GtkButton *button,
                                                             gpointer user_data);
    void                gok_control_add_handler             (GtkWidget *pWidget,
                                                             gint HandlerType);
    void                gok_control_button_callback_open    (void);
    void                gok_control_button_callback_close   (void);

## Description

## Details

### enum ControlTypes

    typedef enum {
    CONTROL_TYPE_LABEL,
    CONTROL_TYPE_HBOX,
    CONTROL_TYPE_VBOX,
    CONTROL_TYPE_COMBOBOX,
    CONTROL_TYPE_SEPERATOR,
    CONTROL_TYPE_FRAME,
    CONTROL_TYPE_BUTTON,
    CONTROL_TYPE_CHECKBUTTON,
    CONTROL_TYPE_RADIOBUTTON,
    CONTROL_TYPE_SPINBUTTON,
    MAX_CONTROL_TYPES /* keep this as the last entry in the enum */
    } ControlTypes;

### enum ControlFillwiths

    typedef enum {
    CONTROL_FILLWITH_ACTIONS,
    CONTROL_FILLWITH_FEEDBACKS,
    CONTROL_FILLWITH_SOUNDS,
    CONTROL_FILLWITH_OPTIONS
    } ControlFillwiths;

### enum ControlHandlers

    typedef enum {
    CONTROL_HANDLER_BROWSESOUND,
    CONTROL_HANDLER_ADVANCED,
    MAX_CONTROL_HANDLERS /* keep this as the last entry in the enum */
    } ControlHandlers;

### gok_control_new ()

    GokControl*         gok_control_new                     (void);

Creates a new gok_control. It's the caller's responsibility to delete this.

Returns : | A pointer to the new control.

### gok_control_delete_all ()

    void                gok_control_delete_all              (GokControl *pControl);

Deletes the given control and all other controls linked to it.

`pControl` : | Pointer to the control that will be deleted.

### gok_control_get_control_type ()

    gint                gok_control_get_control_type        (gchar *NameControlType);

`NameControlType` : | Name of the control type.
Returns : | The ID number of the control type name. Returns -1 if the control type name can't be found.

### gok_control_get_handler_type ()

    gint                gok_control_get_handler_type        (gchar *NameControlType);

`NameControlType` : | Name of the control handler.
Returns : | The ID number of the control handler name. Returns -1 if the control handler name can't be found.

### gok_control_button_handler ()

    void                gok_control_button_handler          (GtkButton *button,
                                                             gpointer user_data);

`pButton`: Pointer to the button that was just pressed. `user_data`: User data that is associated with the button.

`button` : |
`user_data` : |

### gok_control_add_handler ()

    void                gok_control_add_handler             (GtkWidget *pWidget,
                                                             gint HandlerType);

`pWidget`: Pointer to the button gets added to the handler list. `HandlerType`: Type of handler the button requires.

`pWidget` : |
`HandlerType` : |

### gok_control_button_callback_open ()

    void                gok_control_button_callback_open    (void);

Initializes the GOK control callback handlers. This must be called at the beginning of the program.

### gok_control_button_callback_close ()

    void                gok_control_button_callback_close   (void);

Frees any memory used by the control callbacks. This must be called at the end of the program.