#ifndef PYTHON_CONFIG_H
#define PYTHON_CONFIG_H


#include <Python.h>
#include <glib.h>

typedef enum {
        END_CONFIG,
        DIALOG_SEP,
        NOTEBOOK_START,
        NOTEBOOK_END,
        PAGE_SEP,
        FRAME_START,
        FRAME_END,
        DICT_LIST,
        DICT_PATH_LIST,
        DICT_INT,
        DICT_INT_BOUND,
        DICT_INT_BOUND_SLIDER,
        DICT_DOUBLE,
        DICT_DOUBLE_BOUND,
        DICT_TOGGLE,
        DICT_MENU,
        DICT_BOOLEAN
} config_id;


typedef struct _sg_config_info{

    config_id type;
    gchar *config_name;
    gchar *config_group;
    gpointer data_in;
    gpointer data_out;
    gchar *name;
} sg_config_info;

typedef struct _sg_menu_info
{       gchar **options;
        gpointer init_func;
        gpointer apply_func;
} sg_menu_info;

typedef struct _sg_bound_int_info
{       gfloat min;
        gfloat max;
        gpointer init_func;
        gpointer apply_func;
} sg_bound_int_info;

void config_apply(GtkWidget *widget, gpointer data);
void config_ok(GtkWidget *widget, gpointer data);
void python_config_dialog(GtkWidget *widget, gpointer data);
void sg_create_config_dialog(sg_config_info *var_info,
     gpointer apply_callback,gpointer ok_callback);

void sg_set_module_paths(PyObject *dict);

#endif



syntax highlighted by Code2HTML, v. 0.9.1