/** File ge_protos.h
 *  
 */


#ifndef __GE_PROTOS_H_
#define __GE_PROTOS_H_

/* Explorer */
/* ge.c */


/* Pour deboguer */
void ppp (char *s);
void bbb (char *s);

char *get_current_label (void);

void ge_tree_need_update (int sw);

void ge_reset_explorer  (void);
void ge_update_explorer (void);
void ge_update_explorer_CB  (GtkWidget *w ,gpointer p);

void  ge_rpane_update   (void);
void  ge_rpane_set_type (Qtype typ);
Qtype ge_rpane_get_type (void);
gint  ge_get_rpane_iu   (void);

void ge_explorer_hide  (void);
void ge_explorer_popup (void);
void ge_explorer_popup_CB (GtkWidget *w ,gpointer p);

void ge_block_tree_CB (gboolean sw);

void ge_kill_graph   (int gno);
void ge_kill_set     (int gno ,int setno);
void ge_expand_graph (int gno);
void ge_expand_graph_or_obj (Qtype typ ,int gno);


GtkWidget *ge_obj_create_menu 	  (GtkWidget *parent ,Qtype typ ,int n);
void       ge_obj_update_xy   	  (QDobject *obj ,int n);
void       ge_obj_update      	  (QDobject *obj ,int n);
void       ge_obj_update_rpane    (void);
void       ge_obj_apply       	  (int i ,int n);
void       ge_obj_menu3_CB     	  (GtkWidget *w ,gpointer pact);
void 	   ge_objs_u_update 	  (Qtype typ);
void 	   ge_obj_copy_string_from_template (int i);
void       ge_obj_apply_CB        (GtkWidget *w ,gpointer p);
void       ge_obj_block_instant_update (int sw);
void 	   ge_obj_reset_rpane_obj_num  (void);

GtkWidget *ge_function_create_menu (GtkWidget *parent ,int n);

GtkWidget *ge_legendbox_create_menu (GtkWidget *parent);
void       ge_legendbox_update      (int gno);
void       ge_legendbox_update_xy   (int gno);
void       ge_legendbox_apply       (int gno);
void       ge_legendbox_apply_CB    (GtkWidget *w ,gpointer p);
void 	   ge_legendbox_menu3_CB    (GtkWidget *w ,gpointer pact);

GtkWidget *ge_graph_create_menu  (GtkWidget *parent);
void       ge_graph_update_xy 	 (int gno);
void       ge_graph_update    	 (int gno);
void       ge_graph_apply     	 (int gno);
void       ge_graph_set_page  	 (void);
void       ge_graph_page_block   (void);
void       ge_graph_page_unblock (void);
void       ge_graph_menu3_CB     (GtkWidget *w ,gpointer pact);
void 	   ge_graph_apply_CB  	 (GtkWidget *w ,gpointer p);
void 	   ge_graph_g5compat_CB  (GtkWidget *w ,gpointer p);

GtkWidget *ge_axis_create_menu 	(GtkWidget *parent);
void       ge_axis_update      	(int gno ,int axisno);
void 	   ge_axis_apply 	(int gno ,int axisno);
void       ge_axis_set_page    	(void);
void       ge_axis_page_block   (void);
void       ge_axis_page_unblock (void);
void 	   ge_axis_menu3_CB 	(GtkWidget *w ,gpointer pact);
void 	   ge_axis_apply_CB  	(GtkWidget *w ,gpointer p);
void 	   ge_axis_g5compat_CB 	(GtkWidget *w ,gpointer p);

GtkWidget *ge_set_create_menu  (GtkWidget *parent);
void       ge_set_update       (int gno ,int axisno);
void       ge_set_apply        (int gno ,int setno);
void       ge_set_set_page     (void);
void       ge_set_page_block   (void);
void       ge_set_page_unblock (void);
void       ge_set_reset_rect   (void);
void       ge_set_warn_linsym_null (void);
void       ge_sets_menu3_CB     (GtkWidget *w ,gpointer pact);
void 	   ge_set_apply_CB  	(GtkWidget *w ,gpointer p);
void 	   ge_set_g5compat_CB 	(GtkWidget *w ,gpointer p);

GtkWidget *ge_colorbar_create_menu (GtkWidget *parent);
void 	   ge_colorbar_update 	   (int i);
void 	   ge_colorbar_apply 	   (int dummy ,int i);
void 	   ge_colorbar_apply_CB    (GtkWidget *w ,gpointer p);
void 	   ge_colorbar_menu3_CB    (GtkWidget *w ,gpointer pact);

QDobject *ge_get_default_line ();

GtkWidget *ge_timestamp_create_menu (GtkWidget *parent);
void 	   ge_timestamp_update      (void);
void 	   ge_timestamp_update_xy   (void);
void 	   ge_timestamp_apply       (void);

GtkWidget *ge_project_create_menu   (GtkWidget *parent);
void 	   ge_project_update        (int device_id);
void 	   ge_project_apply         (void);
void       ge_project_set_page      (void);
void       ge_project_page_block    (void);
void       ge_project_page_unblock  (void);
void 	   ge_project_apply_CB 	       	 (GtkWidget *w ,gpointer p);
void 	   ge_project_open_page_tab_CB 	 (GtkWidget *w ,gpointer p);
void 	   ge_project_layout_g5compat_CB (GtkWidget *w ,gpointer p);

GtkWidget *ge_compound_create_menu (GtkWidget *parent);

void ge_function_create      (int gno);
void ge_function_type_update (void);

gboolean ge_select (int father_typ ,int father_id  ,int typ ,int id);
gboolean ge_select_root    (void);
gboolean ge_select_current (void);
void     ge_unselect_all   (void);
void     ge_expand_current (void);

void ge_label_update_current (gchar *label);
void ge_hidden_update (Qtype typ ,int id ,Qtype ptyp, int pid ,gboolean hidden);


gboolean ge_selection_for_each 	     (int action ,void (*f1) (int action ,int num));
int 	 ge_selection_is_homogeneous (Qtype *typ);
int 	 ge_selection_count          (void);
int      ge_selection_get_num        (void);

#endif /* __GE_PROTOS_H_ */
