From: erg Date: Wed, 19 Mar 2008 21:43:59 +0000 (+0000) Subject: Clean up smyrna files: X-Git-Tag: LAST_LIBGRAPH~32^2~4462 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f83c38f0e33d2b9bb02e6892091f754714741092;p=graphviz Clean up smyrna files: remove unnecessary globals modify libraries not to rely on code in cmd/smyrna remove static declarations from .h files remove unnecessary libraries mark unused code and clean up warnings --- diff --git a/cmd/smyrna/gui/datalistcallbacks.c b/cmd/smyrna/gui/datalistcallbacks.c index 92fe78c3d..74280f89b 100755 --- a/cmd/smyrna/gui/datalistcallbacks.c +++ b/cmd/smyrna/gui/datalistcallbacks.c @@ -16,66 +16,76 @@ #include "datalistcallbacks.h" #include "tvnodes.h" -void btnTVEdit_clicked_cb (GtkWidget *widget,gpointer user_data) +void btnTVEdit_clicked_cb(GtkWidget * widget, gpointer user_data) { } -void btnTVDelete_clicked_cb (GtkWidget *widget,gpointer user_data) + +void btnTVDelete_clicked_cb(GtkWidget * widget, gpointer user_data) { } -void btnTVFilter_clicked_cb (GtkWidget *widget,gpointer user_data) +void btnTVFilter_clicked_cb(GtkWidget * widget, gpointer user_data) { - int respond; + int respond; -// gtk_dialog_set_response_sensitive (glade_xml_get_widget(xml, "dlgOpenGraph"),1,1); -// gtk_dialog_set_response_sensitive (glade_xml_get_widget(xml, "dlgOpenGraph"),2,1); - respond=gtk_dialog_run ((GtkDialog*)glade_xml_get_widget(xml, "dlgTVFilter")); -// respond=gtk_dialog_run (glade_xml_get_widget(xml, "dlgFilters")); - gtk_widget_hide(glade_xml_get_widget(xml, "dlgTVFilter")); - if(respond == 1) - apply_filter_from_gui(); +// gtk_dialog_set_response_sensitive (glade_xml_get_widget(xml, "dlgOpenGraph"),1,1); +// gtk_dialog_set_response_sensitive (glade_xml_get_widget(xml, "dlgOpenGraph"),2,1); + respond = + gtk_dialog_run((GtkDialog *) + glade_xml_get_widget(xml, "dlgTVFilter")); +// respond=gtk_dialog_run (glade_xml_get_widget(xml, "dlgFilters")); + gtk_widget_hide(glade_xml_get_widget(xml, "dlgTVFilter")); + if (respond == 1) + apply_filter_from_gui(); } -void btnTVFirst_clicked_cb (GtkWidget *widget,gpointer user_data) + +void btnTVFirst_clicked_cb(GtkWidget * widget, gpointer user_data) { - tv_nodes_first_page(); + tv_nodes_first_page(); } -void btnTVPrevious_clicked_cb (GtkWidget *widget,gpointer user_data) + +void btnTVPrevious_clicked_cb(GtkWidget * widget, gpointer user_data) { - tv_nodes_prior_page(); + tv_nodes_prior_page(); } -void btnTVNext_clicked_cb (GtkWidget *widget,gpointer user_data) + +void btnTVNext_clicked_cb(GtkWidget * widget, gpointer user_data) { - tv_nodes_next_page(); + tv_nodes_next_page(); } -void btnTVLast_clicked_cb (GtkWidget *widget,gpointer user_data) + +void btnTVLast_clicked_cb(GtkWidget * widget, gpointer user_data) { - tv_nodes_last_page(); + tv_nodes_last_page(); } -void btnTVGotopage_clicked_cb (GtkWidget *widget,gpointer user_data) + +void btnTVGotopage_clicked_cb(GtkWidget * widget, gpointer user_data) { - GtkSpinButton* spn; - int p; - spn=(GtkSpinButton*)glade_xml_get_widget(xml, "spnTVGotopage"); - p=gtk_spin_button_get_value_as_int(spn); - tv_nodes_goto_page(p-1); + GtkSpinButton *spn; + int p; + spn = (GtkSpinButton *) glade_xml_get_widget(xml, "spnTVGotopage"); + p = gtk_spin_button_get_value_as_int(spn); + tv_nodes_goto_page(p - 1); } -void btnTVCancel_clicked_cb (GtkWidget *widget,gpointer user_data) + +void btnTVCancel_clicked_cb(GtkWidget * widget, gpointer user_data) { } -void btnTVOK_clicked_cb (GtkWidget *widget,gpointer user_data) +void btnTVOK_clicked_cb(GtkWidget * widget, gpointer user_data) { - update_TV_data_from_gui(); + update_TV_data_from_gui(); gtk_widget_hide(glade_xml_get_widget(xml, "frmTVNodes")); } -void btnTVReverse_clicked_cb (GtkWidget *widget,gpointer user_data) + +void btnTVReverse_clicked_cb(GtkWidget * widget, gpointer user_data) { } -void cgbTVSelect_toggled_cb (GtkWidget *widget,gpointer user_data) +void cgbTVSelect_toggled_cb(GtkWidget * widget, gpointer user_data) { } -void btnTVFilterApply_clicked_cb (GtkWidget *widget,gpointer user_data) +void btnTVFilterApply_clicked_cb(GtkWidget * widget, gpointer user_data) { /* GTK_RESPONSE_OK = -5, GTK_RESPONSE_CANCEL = -6, @@ -84,53 +94,73 @@ void btnTVFilterApply_clicked_cb (GtkWidget *widget,gpointer user_data) GTK_RESPONSE_NO = -9, GTK_RESPONSE_APPLY = -10, GTK_RESPONSE_HELP = -11 */ - - gtk_dialog_response((GtkDialog*)glade_xml_get_widget(xml, "dlgTVFilter"),GTK_RESPONSE_OK); + + gtk_dialog_response((GtkDialog *) + glade_xml_get_widget(xml, "dlgTVFilter"), + GTK_RESPONSE_OK); } -void btnTVFilterClear_clicked_cb (GtkWidget *widget,gpointer user_data) + +void btnTVFilterClear_clicked_cb(GtkWidget * widget, gpointer user_data) { - gtk_entry_set_text ((GtkEntry*)glade_xml_get_widget(xml,"edtTVFilterMinData1"),"" ); - gtk_entry_set_text ((GtkEntry*) glade_xml_get_widget(xml,"edtTVFilterMaxData1"),"" ); - gtk_entry_set_text ((GtkEntry*) glade_xml_get_widget(xml,"edtTVFilterMinData2"),"" ); - gtk_entry_set_text ((GtkEntry*) glade_xml_get_widget(xml,"edtTVFilterMaxData2"),"" ); - gtk_entry_set_text ((GtkEntry*) glade_xml_get_widget(xml,"edtTVFilterString"),"" ); + gtk_entry_set_text((GtkEntry *) + glade_xml_get_widget(xml, "edtTVFilterMinData1"), + ""); + gtk_entry_set_text((GtkEntry *) + glade_xml_get_widget(xml, "edtTVFilterMaxData1"), + ""); + gtk_entry_set_text((GtkEntry *) + glade_xml_get_widget(xml, "edtTVFilterMinData2"), + ""); + gtk_entry_set_text((GtkEntry *) + glade_xml_get_widget(xml, "edtTVFilterMaxData2"), + ""); + gtk_entry_set_text((GtkEntry *) + glade_xml_get_widget(xml, "edtTVFilterString"), ""); - gtk_toggle_button_set_active((GtkToggleButton*)glade_xml_get_widget(xml,"rbTVFilterHigh1"),1); - gtk_toggle_button_set_active((GtkToggleButton*)glade_xml_get_widget(xml,"rbTVFilterSel1"),1); - gtk_toggle_button_set_active((GtkToggleButton*)glade_xml_get_widget(xml,"rbTVFilterVisible1"),1); - apply_filter_from_gui(); + gtk_toggle_button_set_active((GtkToggleButton *) + glade_xml_get_widget(xml, + "rbTVFilterHigh1"), + 1); + gtk_toggle_button_set_active((GtkToggleButton *) + glade_xml_get_widget(xml, + "rbTVFilterSel1"), + 1); + gtk_toggle_button_set_active((GtkToggleButton *) + glade_xml_get_widget(xml, + "rbTVFilterVisible1"), + 1); + apply_filter_from_gui(); } -void btnTVSelectAll_clicked_cb (GtkWidget *widget,gpointer user_data) +void btnTVSelectAll_clicked_cb(GtkWidget * widget, gpointer user_data) { - tv_select_all(); + tv_select_all(); } -void btnTVUnselectAll_clicked_cb(GtkWidget *widget,gpointer user_data) + +void btnTVUnselectAll_clicked_cb(GtkWidget * widget, gpointer user_data) { - tv_unselect_all(); + tv_unselect_all(); } -void btnTVHighlightAll_clicked_cb(GtkWidget *widget,gpointer user_data) + +void btnTVHighlightAll_clicked_cb(GtkWidget * widget, gpointer user_data) { - tv_highligh_all(); + tv_highligh_all(); } -void btnTVUnhighlightAll_clicked_cb(GtkWidget *widget,gpointer user_data) + +void btnTVUnhighlightAll_clicked_cb(GtkWidget * widget, gpointer user_data) { - tv_unhighligh_all(); + tv_unhighligh_all(); } -void btnTVShowAll_clicked_cb(GtkWidget *widget,gpointer user_data) +void btnTVShowAll_clicked_cb(GtkWidget * widget, gpointer user_data) { - tv_show_all(); + tv_show_all(); } -void btnTVHideAll_clicked_cb(GtkWidget *widget,gpointer user_data) + +void btnTVHideAll_clicked_cb(GtkWidget * widget, gpointer user_data) { - tv_hide_all(); + tv_hide_all(); } - - - - - diff --git a/cmd/smyrna/gui/datalistcallbacks.h b/cmd/smyrna/gui/datalistcallbacks.h index 73c836040..6c399ba43 100755 --- a/cmd/smyrna/gui/datalistcallbacks.h +++ b/cmd/smyrna/gui/datalistcallbacks.h @@ -24,29 +24,35 @@ -_BB void btnTVEdit_clicked_cb (GtkWidget *widget,gpointer user_data); -_BB void btnTVDelete_clicked_cb (GtkWidget *widget,gpointer user_data); -_BB void btnTVFilter_clicked_cb (GtkWidget *widget,gpointer user_data); -_BB void btnTVFirst_clicked_cb (GtkWidget *widget,gpointer user_data); -_BB void btnTVPrevious_clicked_cb (GtkWidget *widget,gpointer user_data); -_BB void btnTVNext_clicked_cb (GtkWidget *widget,gpointer user_data); -_BB void btnTVLast_clicked_cb (GtkWidget *widget,gpointer user_data); -_BB void btnTVGotopage_clicked_cb (GtkWidget *widget,gpointer user_data); -_BB void btnTVCancel_clicked_cb (GtkWidget *widget,gpointer user_data); -_BB void btnTVOK_clicked_cb (GtkWidget *widget,gpointer user_data); -_BB void btnTVReverse_clicked_cb (GtkWidget *widget,gpointer user_data); -_BB void cgbTVSelect_toggled_cb (GtkWidget *widget,gpointer user_data); -_BB void btnTVFilterApply_clicked_cb(GtkWidget *widget,gpointer user_data); -_BB void btnTVFilterClear_clicked_cb (GtkWidget *widget,gpointer user_data); -_BB void btnTVSelectAll_clicked_cb (GtkWidget *widget,gpointer user_data); -_BB void btnTVUnselectAll_clicked_cb(GtkWidget *widget,gpointer user_data); -_BB void btnTVHighlightAll_clicked_cb(GtkWidget *widget,gpointer user_data); -_BB void btnTVUnhighlightAll_clicked_cb(GtkWidget *widget,gpointer user_data); -_BB void cgbTVSelect_toggled_cb(GtkWidget *widget,gpointer user_data); -_BB void cgbTVVisible_toggled_cb(GtkWidget *widget,gpointer user_data); -_BB void cgbTVHighlighted_toggled_cb(GtkWidget *widget,gpointer user_data); -_BB void btnTVShowAll_clicked_cb(GtkWidget *widget,gpointer user_data); -_BB void btnTVHideAll_clicked_cb(GtkWidget *widget,gpointer user_data); +_BB void btnTVEdit_clicked_cb(GtkWidget * widget, gpointer user_data); +_BB void btnTVDelete_clicked_cb(GtkWidget * widget, gpointer user_data); +_BB void btnTVFilter_clicked_cb(GtkWidget * widget, gpointer user_data); +_BB void btnTVFirst_clicked_cb(GtkWidget * widget, gpointer user_data); +_BB void btnTVPrevious_clicked_cb(GtkWidget * widget, gpointer user_data); +_BB void btnTVNext_clicked_cb(GtkWidget * widget, gpointer user_data); +_BB void btnTVLast_clicked_cb(GtkWidget * widget, gpointer user_data); +_BB void btnTVGotopage_clicked_cb(GtkWidget * widget, gpointer user_data); +_BB void btnTVCancel_clicked_cb(GtkWidget * widget, gpointer user_data); +_BB void btnTVOK_clicked_cb(GtkWidget * widget, gpointer user_data); +_BB void btnTVReverse_clicked_cb(GtkWidget * widget, gpointer user_data); +_BB void cgbTVSelect_toggled_cb(GtkWidget * widget, gpointer user_data); +_BB void btnTVFilterApply_clicked_cb(GtkWidget * widget, + gpointer user_data); +_BB void btnTVFilterClear_clicked_cb(GtkWidget * widget, + gpointer user_data); +_BB void btnTVSelectAll_clicked_cb(GtkWidget * widget, gpointer user_data); +_BB void btnTVUnselectAll_clicked_cb(GtkWidget * widget, + gpointer user_data); +_BB void btnTVHighlightAll_clicked_cb(GtkWidget * widget, + gpointer user_data); +_BB void btnTVUnhighlightAll_clicked_cb(GtkWidget * widget, + gpointer user_data); +_BB void cgbTVSelect_toggled_cb(GtkWidget * widget, gpointer user_data); +_BB void cgbTVVisible_toggled_cb(GtkWidget * widget, gpointer user_data); +_BB void cgbTVHighlighted_toggled_cb(GtkWidget * widget, + gpointer user_data); +_BB void btnTVShowAll_clicked_cb(GtkWidget * widget, gpointer user_data); +_BB void btnTVHideAll_clicked_cb(GtkWidget * widget, gpointer user_data); diff --git a/cmd/smyrna/gui/gui.c b/cmd/smyrna/gui/gui.c index 6160b53b6..300201b03 100755 --- a/cmd/smyrna/gui/gui.c +++ b/cmd/smyrna/gui/gui.c @@ -22,7 +22,7 @@ #include "compat.h" #include #include "gui.h" -#include "abstring.h" +/* #include "abstring.h" */ #include #include #include @@ -35,7 +35,7 @@ extern int strcasecmp(const char *s1, const char *s2); extern int strncasecmp(const char *s1, const char *s2, unsigned int n); #endif -GdkWindow* window1; +GdkWindow *window1; GtkWidget *statusbar1; GladeXML *xml; //global libglade vars @@ -43,16 +43,16 @@ GtkWidget *gladewidget; //1 subgraph 2 node 3 edge int frmObjectTypeIndex; -Agraph_t* frmObjectg; +Agraph_t *frmObjectg; -GtkComboBox* cbSelectGraph; //combo at top left +GtkComboBox *cbSelectGraph; //combo at top left -GtkWidget* AttrWidgets[MAXIMUM_WIDGET_COUNT]; -GtkWidget* AttrLabels[MAXIMUM_WIDGET_COUNT]; +GtkWidget *AttrWidgets[MAXIMUM_WIDGET_COUNT]; +GtkWidget *AttrLabels[MAXIMUM_WIDGET_COUNT]; int attr_widgets_modified[MAXIMUM_WIDGET_COUNT]; -int widgetcounter; //number of attributes counted dynamically, might be removed in the future -attribute attr[MAXIMUM_WIDGET_COUNT]; +int widgetcounter; //number of attributes counted dynamically, might be removed in the future +attribute attr[MAXIMUM_WIDGET_COUNT]; @@ -60,31 +60,34 @@ attribute attr[MAXIMUM_WIDGET_COUNT]; //call this function only ones void create_object_properties() { - char* data0="TEST0"; - char* data1="TEST1"; - char* data2="TEST2"; - char* data3="TEST3"; - char* data4="TEST4"; - GladeXML *xml; +#ifdef UNUSED + char *data0 = "TEST0"; + char *data1 = "TEST1"; + char *data2 = "TEST2"; + char *data3 = "TEST3"; + char *data4 = "TEST4"; +#endif + GladeXML *xml; GtkWidget *widget; xml = glade_xml_new(SMYRNA_GLADE, NULL, NULL); - widget = glade_xml_get_widget(xml, "listPoints"); - gtk_clist_set_column_title ((GtkCList*)widget,0,"Def"); - gtk_clist_set_column_title ((GtkCList*)widget,1,"x"); - gtk_clist_set_column_title ((GtkCList*)widget,2,"y"); - gtk_clist_set_column_title ((GtkCList*)widget,3,"z"); - gtk_clist_column_titles_show((GtkCList*)widget); - gtk_widget_show (widget); - widget = glade_xml_get_widget(xml, "win"); - gtk_widget_show (widget); + widget = glade_xml_get_widget(xml, "listPoints"); + gtk_clist_set_column_title((GtkCList *) widget, 0, "Def"); + gtk_clist_set_column_title((GtkCList *) widget, 1, "x"); + gtk_clist_set_column_title((GtkCList *) widget, 2, "y"); + gtk_clist_set_column_title((GtkCList *) widget, 3, "z"); + gtk_clist_column_titles_show((GtkCList *) widget); + gtk_widget_show(widget); + widget = glade_xml_get_widget(xml, "win"); + gtk_widget_show(widget); } + //call this after create_object_properties() void object_properties_node_init() { - + } void object_properties_edge_init() //customize window for Edges { @@ -101,521 +104,637 @@ void object_properties_graph_init() //customize window for Graph , this shows th void graph_properties_init(int newgraph) //initialize little open graph dialog { - //newgraph 0 : open graph mode - //newgraph 1 : new graph mode + //newgraph 0 : open graph mode + //newgraph 1 : new graph mode - gint result=0; - xml = glade_xml_new(SMYRNA_GLADE, NULL, NULL); - gladewidget = glade_xml_get_widget(xml, "entryGraphFileName"); + gint result = 0; + xml = glade_xml_new(SMYRNA_GLADE, NULL, NULL); + gladewidget = glade_xml_get_widget(xml, "entryGraphFileName"); - //signals - //OK - gladewidget = glade_xml_get_widget(xml, "btnOK"); + //signals + //OK + gladewidget = glade_xml_get_widget(xml, "btnOK"); - g_signal_connect ((gpointer) gladewidget, "clicked", G_CALLBACK(dlgOpenGraph_OK_Clicked), - &newgraph); + g_signal_connect((gpointer) gladewidget, "clicked", + G_CALLBACK(dlgOpenGraph_OK_Clicked), &newgraph); - if(newgraph) - { - gladewidget = glade_xml_get_widget(xml, "entryGraphName"); - gtk_entry_set_text ((GtkEntry*)gladewidget,"Untitled"); - gladewidget = glade_xml_get_widget(xml, "entryGraphFileName"); - gtk_entry_set_text ((GtkEntry*)gladewidget,"Untitled.dot"); - } - else - { - gladewidget = glade_xml_get_widget(xml, "entryGraphName"); - gtk_entry_set_text ((GtkEntry*)gladewidget,""); - gladewidget = glade_xml_get_widget(xml, "entryGraphFileName"); - gtk_entry_set_text ((GtkEntry*)gladewidget,""); - } - gladewidget = glade_xml_get_widget(xml, "dlgOpenGraph"); - result = gtk_dialog_run (GTK_DIALOG (gladewidget)); + if (newgraph) { + gladewidget = glade_xml_get_widget(xml, "entryGraphName"); + gtk_entry_set_text((GtkEntry *) gladewidget, "Untitled"); + gladewidget = glade_xml_get_widget(xml, "entryGraphFileName"); + gtk_entry_set_text((GtkEntry *) gladewidget, "Untitled.dot"); + } else { + gladewidget = glade_xml_get_widget(xml, "entryGraphName"); + gtk_entry_set_text((GtkEntry *) gladewidget, ""); + gladewidget = glade_xml_get_widget(xml, "entryGraphFileName"); + gtk_entry_set_text((GtkEntry *) gladewidget, ""); + } + gladewidget = glade_xml_get_widget(xml, "dlgOpenGraph"); + result = gtk_dialog_run(GTK_DIALOG(gladewidget)); } -GtkComboBox* get_SelectGraph() +GtkComboBox *get_SelectGraph() { - GtkComboBox* cb; - if (!cbSelectGraph) - { + GtkComboBox *cb; + if (!cbSelectGraph) { - cb=(GtkComboBox*)gtk_combo_box_new_text(); - gtk_widget_show ((GtkWidget*)cb); - gladewidget = glade_xml_get_widget(xml, "layout6"); - gtk_box_pack_start (GTK_BOX (gladewidget),(GtkWidget*) cb, FALSE, FALSE, 0); + cb = (GtkComboBox *) gtk_combo_box_new_text(); + gtk_widget_show((GtkWidget *) cb); + gladewidget = glade_xml_get_widget(xml, "layout6"); + gtk_box_pack_start(GTK_BOX(gladewidget), (GtkWidget *) cb, FALSE, + FALSE, 0); - - gtk_layout_put ((GtkLayout*)gladewidget,(GtkWidget*)cb,780,3); - //signal - g_signal_connect ((gpointer) cb, "changed", G_CALLBACK(graph_select_change), - NULL); + gtk_layout_put((GtkLayout *) gladewidget, (GtkWidget *) cb, 780, + 3); + //signal + g_signal_connect((gpointer) cb, "changed", + G_CALLBACK(graph_select_change), NULL); - return cb; - } - else - return cbSelectGraph; + + return cb; + } else + return cbSelectGraph; } -void Color_Widget_bg (char* colorstring, GtkWidget *widget) +void Color_Widget_bg(char *colorstring, GtkWidget * widget) { - GdkColor color; - gdk_color_parse (colorstring, &color); - gtk_widget_modify_bg (widget, GTK_STATE_NORMAL, &color); - gtk_widget_modify_base(widget, GTK_STATE_NORMAL, &color); + GdkColor color; + gdk_color_parse(colorstring, &color); + gtk_widget_modify_bg(widget, GTK_STATE_NORMAL, &color); + gtk_widget_modify_base(widget, GTK_STATE_NORMAL, &color); } #if 0 -void Color_Widget_fg (int r, int g, int b, GtkWidget *widget) +void Color_Widget_fg(int r, int g, int b, GtkWidget * widget) { - GdkColor color; - gdk_color_parse ("red", &color); - gtk_widget_modify_fg (widget, GTK_STATE_NORMAL, &color); + GdkColor color; + gdk_color_parse("red", &color); + gtk_widget_modify_fg(widget, GTK_STATE_NORMAL, &color); } #endif -void load_graph_properties(Agraph_t* graph) +void load_graph_properties(Agraph_t * graph) { - //dlgOpenGraph , GtkDialog - gtk_entry_set_text((GtkEntry*)glade_xml_get_widget(xml, "entryGraphName"),((custom_graph_data*)AGDATA(graph))->GraphName); - gtk_entry_set_text((GtkEntry*)glade_xml_get_widget(xml, "entryGraphFileName"),((custom_graph_data*)AGDATA(graph))->GraphFileName); - - gtk_combo_box_set_active ((GtkComboBox*)glade_xml_get_widget(xml, "cbLayout"),((custom_graph_data*)AGDATA(graph))->Engine); - gtk_toggle_button_set_active((GtkToggleButton*)glade_xml_get_widget(xml, "chkVisible"),((custom_graph_data*)AGDATA(graph))->AlwaysShow); - gtk_toggle_button_set_active((GtkToggleButton*)glade_xml_get_widget(xml, "chkLocked"),((custom_graph_data*)AGDATA(graph))->Locked); - gtk_toggle_button_set_active((GtkToggleButton*)glade_xml_get_widget(xml, "chkTopView"),((custom_graph_data*)AGDATA(graph))->TopView); + //dlgOpenGraph , GtkDialog + gtk_entry_set_text((GtkEntry *) + glade_xml_get_widget(xml, "entryGraphName"), + ((custom_graph_data *) AGDATA(graph))->GraphName); + gtk_entry_set_text((GtkEntry *) + glade_xml_get_widget(xml, "entryGraphFileName"), + ((custom_graph_data *) AGDATA(graph))-> + GraphFileName); + + gtk_combo_box_set_active((GtkComboBox *) + glade_xml_get_widget(xml, "cbLayout"), + ((custom_graph_data *) AGDATA(graph))-> + Engine); + gtk_toggle_button_set_active((GtkToggleButton *) + glade_xml_get_widget(xml, "chkVisible"), + ((custom_graph_data *) AGDATA(graph))-> + AlwaysShow); + gtk_toggle_button_set_active((GtkToggleButton *) + glade_xml_get_widget(xml, "chkLocked"), + ((custom_graph_data *) AGDATA(graph))-> + Locked); + gtk_toggle_button_set_active((GtkToggleButton *) + glade_xml_get_widget(xml, "chkTopView"), + ((custom_graph_data *) AGDATA(graph))-> + TopView); } -int update_graph_properties(Agraph_t* graph) //updates graph from gui +int update_graph_properties(Agraph_t * graph) //updates graph from gui { - FILE* file; - int respond=0; - int id=0; - //check the graph name should not be duplicated graph names - for (id=0;id < view->graphCount ; id ++) - { - if (graph != view->g[id]) - { - if(strcasecmp (gtk_entry_get_text((GtkEntry*)glade_xml_get_widget(xml, "entryGraphName")),((custom_graph_data*)AGDATA(view->g[id]))->GraphName ) == 0) - { - - Dlg=(GtkMessageDialog*)gtk_message_dialog_new (NULL, - GTK_DIALOG_MODAL, - GTK_MESSAGE_WARNING, - GTK_BUTTONS_OK, - "There is another graph with this name!"); - respond=gtk_dialog_run ((GtkDialog*)Dlg); - gtk_object_destroy ((GtkObject*)Dlg); - return 0; - - } + FILE *file; + int respond = 0; + int id = 0; + //check the graph name should not be duplicated graph names + for (id = 0; id < view->graphCount; id++) { + if (graph != view->g[id]) { + if (strcasecmp + (gtk_entry_get_text + ((GtkEntry *) + glade_xml_get_widget(xml, "entryGraphName")), + ((custom_graph_data *) AGDATA(view->g[id]))->GraphName) == + 0) { + + Dlg = (GtkMessageDialog *) gtk_message_dialog_new(NULL, + GTK_DIALOG_MODAL, + GTK_MESSAGE_WARNING, + GTK_BUTTONS_OK, + "There is another graph with this name!"); + respond = gtk_dialog_run((GtkDialog *) Dlg); + gtk_object_destroy((GtkObject *) Dlg); + return 0; + + } - } } - - //check if file is changed - if (strcasecmp (gtk_entry_get_text((GtkEntry*)glade_xml_get_widget(xml, "entryGraphFileName")),((custom_graph_data*)AGDATA(graph))->GraphFileName ) != 0) - { - - - if (file = fopen(gtk_entry_get_text((GtkEntry*)glade_xml_get_widget(xml, "entryGraphFileName")), "r")) - { - fclose(file); - Dlg = (GtkMessageDialog*)gtk_message_dialog_new (NULL, - GTK_DIALOG_MODAL, - GTK_MESSAGE_QUESTION, - GTK_BUTTONS_YES_NO, - "File name you have entered already exists\n,this will cause overwriting on existing file.\nAre you sure?"); - respond=gtk_dialog_run ((GtkDialog*)Dlg); - gtk_object_destroy ((GtkObject*)Dlg); - - if (respond==GTK_RESPONSE_NO) - return 0; - } - //now check if filename is legal, try to open it to write - if (file = fopen(gtk_entry_get_text((GtkEntry*)glade_xml_get_widget(xml, "entryGraphFileName")), "w")) - fclose(file); - else - { - Dlg=(GtkMessageDialog*)gtk_message_dialog_new (NULL, - GTK_DIALOG_MODAL, - GTK_MESSAGE_WARNING, - GTK_BUTTONS_OK, - "File name is invalid or I/O error!"); - - respond=gtk_dialog_run ((GtkDialog*)Dlg); - gtk_object_destroy ((GtkObject*)Dlg); - GTK_DIALOG (Dlg); - - return 0; - } - + } + + //check if file is changed + if (strcasecmp + (gtk_entry_get_text + ((GtkEntry *) glade_xml_get_widget(xml, "entryGraphFileName")), + ((custom_graph_data *) AGDATA(graph))->GraphFileName) != 0) { + + + if ((file = + fopen(gtk_entry_get_text + ((GtkEntry *) + glade_xml_get_widget(xml, "entryGraphFileName")), + "r"))) { + fclose(file); + Dlg = (GtkMessageDialog *) gtk_message_dialog_new(NULL, + GTK_DIALOG_MODAL, + GTK_MESSAGE_QUESTION, + GTK_BUTTONS_YES_NO, + "File name you have entered already exists\n,this will cause overwriting on existing file.\nAre you sure?"); + respond = gtk_dialog_run((GtkDialog *) Dlg); + gtk_object_destroy((GtkObject *) Dlg); + + if (respond == GTK_RESPONSE_NO) + return 0; } - - - - //if it comes so far graph deserves new values - - - - ((custom_graph_data*)AGDATA(graph))->GraphName=(char*)gtk_entry_get_text((GtkEntry*)glade_xml_get_widget(xml, "entryGraphName")); - ((custom_graph_data*)AGDATA(graph))->GraphFileName=(char*)gtk_entry_get_text((GtkEntry*)glade_xml_get_widget(xml, "entryGraphFileName")); - - ((custom_graph_data*)AGDATA(graph))->AlwaysShow=gtk_toggle_button_get_active((GtkToggleButton*)glade_xml_get_widget(xml, "chkVisible")); - ((custom_graph_data*)AGDATA(graph))->Locked=gtk_toggle_button_get_active((GtkToggleButton*)glade_xml_get_widget(xml, "chkLocked")); - ((custom_graph_data*)AGDATA(graph))->TopView=gtk_toggle_button_get_active((GtkToggleButton*)glade_xml_get_widget(xml, "chkTopView")); - - - //check if the engine has been changed, if so do new layout - if( ((custom_graph_data*)AGDATA(graph))->Engine != gtk_combo_box_get_active ((GtkComboBox*)glade_xml_get_widget(xml, "cbLayout")) ) - { - Dlg = (GtkMessageDialog*)gtk_message_dialog_new (NULL, - GTK_DIALOG_MODAL, - GTK_MESSAGE_QUESTION, - GTK_BUTTONS_YES_NO, - "You have changed the layout of the graph,this will change the graph layout\n all your position changes will be lost\n Are you sure?"); - respond=gtk_dialog_run ((GtkDialog*)Dlg); - if (respond == GTK_RESPONSE_YES) - do_graph_layout(graph,gtk_combo_box_get_active ((GtkComboBox*)glade_xml_get_widget(xml, "cbLayout")),0); - gtk_object_destroy ((GtkObject*)Dlg); + //now check if filename is legal, try to open it to write + if ((file = + fopen(gtk_entry_get_text + ((GtkEntry *) + glade_xml_get_widget(xml, "entryGraphFileName")), + "w"))) + fclose(file); + else { + Dlg = (GtkMessageDialog *) gtk_message_dialog_new(NULL, + GTK_DIALOG_MODAL, + GTK_MESSAGE_WARNING, + GTK_BUTTONS_OK, + "File name is invalid or I/O error!"); + + respond = gtk_dialog_run((GtkDialog *) Dlg); + gtk_object_destroy((GtkObject *) Dlg); + GTK_DIALOG(Dlg); + + return 0; } - return 1; + + } + + + //if it comes so far graph deserves new values + + + + ((custom_graph_data *) AGDATA(graph))->GraphName = + (char *) gtk_entry_get_text((GtkEntry *) + glade_xml_get_widget(xml, + "entryGraphName")); + ((custom_graph_data *) AGDATA(graph))->GraphFileName = + (char *) gtk_entry_get_text((GtkEntry *) + glade_xml_get_widget(xml, + "entryGraphFileName")); + + ((custom_graph_data *) AGDATA(graph))->AlwaysShow = + gtk_toggle_button_get_active((GtkToggleButton *) + glade_xml_get_widget(xml, + "chkVisible")); + ((custom_graph_data *) AGDATA(graph))->Locked = + gtk_toggle_button_get_active((GtkToggleButton *) + glade_xml_get_widget(xml, + "chkLocked")); + ((custom_graph_data *) AGDATA(graph))->TopView = + gtk_toggle_button_get_active((GtkToggleButton *) + glade_xml_get_widget(xml, + "chkTopView")); + + + //check if the engine has been changed, if so do new layout + if (((custom_graph_data *) AGDATA(graph))->Engine != + gtk_combo_box_get_active((GtkComboBox *) + glade_xml_get_widget(xml, "cbLayout"))) { + Dlg = + (GtkMessageDialog *) gtk_message_dialog_new(NULL, + GTK_DIALOG_MODAL, + GTK_MESSAGE_QUESTION, + GTK_BUTTONS_YES_NO, + "You have changed the layout of the graph,this will change the graph layout\n all your position changes will be lost\n Are you sure?"); + respond = gtk_dialog_run((GtkDialog *) Dlg); + if (respond == GTK_RESPONSE_YES) + do_graph_layout(graph, + gtk_combo_box_get_active((GtkComboBox *) + glade_xml_get_widget + (xml, "cbLayout")), + 0); + gtk_object_destroy((GtkObject *) Dlg); + } + return 1; } -int load_object_properties(int typeIndex,Agraph_t* g) //load from object to gui; +int load_object_properties(int typeIndex, Agraph_t * g) //load from object to gui; { - //typeindex 0:graph 1:cluster 2:Node 3:Edge - //load attr from first selected object - GtkLayout* layout; - GdkColor color; + //typeindex 0:graph 1:cluster 2:Node 3:Edge + //load attr from first selected object + GtkLayout *layout; + GdkColor color; char buf[100]; - int ind=0; - int Y=45; - int X=90; - int Yinc=25; - int Xinc=30; - int OriginalX= 90; - int OriginalY= 45; - int widget_per_page=21; - void* obj; - char line [ 128 ]; - float a,b; - layout=(GtkLayout*)glade_xml_get_widget(xml, "layout4"); - frmObjectTypeIndex=typeIndex; - frmObjectg=g; - widgetcounter=0; - //values should be set from first selected object - //according to object type (typeIndex) set the reference object - switch (typeIndex) //typeindex 0 means new object - { - case 1: //graph sub graph (cluster) - obj=((custom_graph_data*)AGDATA(g))->selectedGraphs[0]; - break; - case 2: //Node - obj=((custom_graph_data*)AGDATA(g))->selectedNodes[0]; - break; - case 3: //Edge - obj=((custom_graph_data*)AGDATA(g))->selectedEdges[0]; - break; - } - for (widgetcounter=0;widgetcounter < MAXIMUM_WIDGET_COUNT ;widgetcounter ++) - { - //create the labels and widget here - attr[widgetcounter].ComboValuesCount=0; - attr[widgetcounter].ComboValues='\0'; - - if (!AttrWidgets[widgetcounter]) - { - AttrLabels[widgetcounter]=gtk_label_new (attr[widgetcounter].Name); - switch (attr[widgetcounter].Type) - { - case 'F': //float - AttrWidgets[widgetcounter]=gtk_spin_button_new_with_range(0,100,0.001); - g_signal_connect ((gpointer) AttrWidgets[widgetcounter], "value-changed", G_CALLBACK(attr_widgets_modifiedSlot),(gpointer)widgetcounter); - - break; - case 'C': //color box - AttrWidgets[widgetcounter]=gtk_color_button_new(); - gtk_widget_set_size_request(AttrWidgets[widgetcounter],50,23); - g_signal_connect ((gpointer) AttrWidgets[widgetcounter], "color-set", G_CALLBACK(attr_widgets_modifiedSlot),(gpointer)widgetcounter); - - break; - default: //alphanumreric GTK Entry - AttrWidgets[widgetcounter]=gtk_entry_new(); - gtk_widget_set_size_request(AttrWidgets[widgetcounter],130,23); - g_signal_connect ((gpointer) AttrWidgets[widgetcounter], "changed", G_CALLBACK(attr_widgets_modifiedSlot),(gpointer)widgetcounter); - - break; - } - attr[widgetcounter].attrWidget=AttrWidgets[widgetcounter]; - } - //locate widget on the GtkLayout* layout - if (attr[widgetcounter].ApplyTo[typeIndex]==1) - { - gtk_layout_put (layout,AttrWidgets[widgetcounter],X,Y); - gtk_layout_put (layout,AttrLabels[widgetcounter],X-80,Y); - gtk_widget_show(AttrWidgets[widgetcounter]); - gtk_widget_show(AttrLabels[widgetcounter]); - Y=Y+Yinc; - switch(attr[widgetcounter].Type) - { - case 'F': - if (agget(obj, attr[widgetcounter].Name)) - gtk_spin_button_set_value ((GtkSpinButton*)AttrWidgets[widgetcounter],atof(agget(obj, attr[widgetcounter].Name)) ); - else - gtk_spin_button_set_value ((GtkSpinButton*)AttrWidgets[widgetcounter],atof(attr[widgetcounter].Default) ); - break; - case 'C': - if (agget(obj, attr[widgetcounter].Name)) - SetGdkColor(&color,agget(obj, attr[widgetcounter].Name)); - else - SetGdkColor(&color,attr[widgetcounter].Default); - - gtk_color_button_set_color((GtkColorButton*)AttrWidgets[widgetcounter],&color); - break; - default: - if (agget(obj, attr[widgetcounter].Name)) - gtk_entry_set_text((GtkEntry*)AttrWidgets[widgetcounter],agget(obj, attr[widgetcounter].Name)); - else - gtk_entry_set_text((GtkEntry*)AttrWidgets[widgetcounter],attr[widgetcounter].Default); - - } - gtk_widget_show(AttrWidgets[widgetcounter]); - gtk_widget_show(AttrLabels[widgetcounter]); - } - else - { - gtk_widget_hide(AttrWidgets[widgetcounter]); - gtk_widget_hide(AttrLabels[widgetcounter]); - - } - if (Y > widget_per_page*Yinc) - { - X=320; - Y=OriginalY; - } - attr_widgets_modified[widgetcounter]=0; //set to unmodified - } + /* int ind=0; */ + int Y = 45; + int X = 90; + int Yinc = 25; + /* int Xinc=30; */ + /* int OriginalX= 90; */ + int OriginalY = 45; + int widget_per_page = 21; + void *obj; + char line[128]; + float a, b; + layout = (GtkLayout *) glade_xml_get_widget(xml, "layout4"); + frmObjectTypeIndex = typeIndex; + frmObjectg = g; + widgetcounter = 0; + //values should be set from first selected object + //according to object type (typeIndex) set the reference object + switch (typeIndex) //typeindex 0 means new object + { + case 1: //graph sub graph (cluster) + obj = ((custom_graph_data *) AGDATA(g))->selectedGraphs[0]; + break; + case 2: //Node + obj = ((custom_graph_data *) AGDATA(g))->selectedNodes[0]; + break; + case 3: //Edge + obj = ((custom_graph_data *) AGDATA(g))->selectedEdges[0]; + break; + } + for (widgetcounter = 0; widgetcounter < MAXIMUM_WIDGET_COUNT; + widgetcounter++) { + //create the labels and widget here + attr[widgetcounter].ComboValuesCount = 0; + attr[widgetcounter].ComboValues = '\0'; + + if (!AttrWidgets[widgetcounter]) { + AttrLabels[widgetcounter] = + gtk_label_new(attr[widgetcounter].Name); + switch (attr[widgetcounter].Type) { + case 'F': //float + AttrWidgets[widgetcounter] = + gtk_spin_button_new_with_range(0, 100, 0.001); + g_signal_connect((gpointer) AttrWidgets[widgetcounter], + "value-changed", + G_CALLBACK(attr_widgets_modifiedSlot), + (gpointer) widgetcounter); + + break; + case 'C': //color box + AttrWidgets[widgetcounter] = gtk_color_button_new(); + gtk_widget_set_size_request(AttrWidgets[widgetcounter], 50, + 23); + g_signal_connect((gpointer) AttrWidgets[widgetcounter], + "color-set", + G_CALLBACK(attr_widgets_modifiedSlot), + (gpointer) widgetcounter); + + break; + default: //alphanumreric GTK Entry + AttrWidgets[widgetcounter] = gtk_entry_new(); + gtk_widget_set_size_request(AttrWidgets[widgetcounter], + 130, 23); + g_signal_connect((gpointer) AttrWidgets[widgetcounter], + "changed", + G_CALLBACK(attr_widgets_modifiedSlot), + (gpointer) widgetcounter); + + break; + } + attr[widgetcounter].attrWidget = AttrWidgets[widgetcounter]; + } + //locate widget on the GtkLayout* layout + if (attr[widgetcounter].ApplyTo[typeIndex] == 1) { + gtk_layout_put(layout, AttrWidgets[widgetcounter], X, Y); + gtk_layout_put(layout, AttrLabels[widgetcounter], X - 80, Y); + gtk_widget_show(AttrWidgets[widgetcounter]); + gtk_widget_show(AttrLabels[widgetcounter]); + Y = Y + Yinc; + switch (attr[widgetcounter].Type) { + case 'F': + if (agget(obj, attr[widgetcounter].Name)) + gtk_spin_button_set_value((GtkSpinButton *) + AttrWidgets[widgetcounter], + atof(agget + (obj, + attr[widgetcounter]. + Name))); + else + gtk_spin_button_set_value((GtkSpinButton *) + AttrWidgets[widgetcounter], + atof(attr[widgetcounter]. + Default)); + break; + case 'C': + if (agget(obj, attr[widgetcounter].Name)) + SetGdkColor(&color, + agget(obj, attr[widgetcounter].Name)); + else + SetGdkColor(&color, attr[widgetcounter].Default); + + gtk_color_button_set_color((GtkColorButton *) + AttrWidgets[widgetcounter], + &color); + break; + default: + if (agget(obj, attr[widgetcounter].Name)) + gtk_entry_set_text((GtkEntry *) + AttrWidgets[widgetcounter], + agget(obj, + attr[widgetcounter].Name)); + else + gtk_entry_set_text((GtkEntry *) + AttrWidgets[widgetcounter], + attr[widgetcounter].Default); - - //first part, common attributes - sprintf (buf, "%i", ((custom_object_data*)AGDATA(obj))->ID); - gtk_entry_set_text((GtkEntry*)glade_xml_get_widget(xml, "objEntryName"),((custom_object_data*)AGDATA(obj))->ObjName); - gtk_entry_set_text((GtkEntry*)glade_xml_get_widget(xml, "objEntryLabel"),agnameof(obj)); - - gtk_toggle_button_set_active((GtkToggleButton*)glade_xml_get_widget(xml, "frmObjectchkVisible"),((custom_object_data*)AGDATA(obj))->Visible); - gtk_toggle_button_set_active((GtkToggleButton*)glade_xml_get_widget(xml, "frmObjectchkLocked"),((custom_object_data*)AGDATA(obj))->Locked); - gtk_toggle_button_set_active((GtkToggleButton*)glade_xml_get_widget(xml, "frmObjectchkHighlighted"),((custom_object_data*)AGDATA(obj))->Highlighted); - //get the position info // show only one item is selected - if ( - ( (((custom_graph_data*)AGDATA(g))->selectedNodesCount == 1) && (typeIndex==2) ) - || - ( (((custom_graph_data*)AGDATA(g))->selectedEdgesCount == 1) && (typeIndex==3) ) - || - ((((custom_graph_data*)AGDATA(g))->selectedGraphsCount == 1) && (typeIndex==3) ) - - ) - { - sprintf (line, "%s", agget(obj,"pos")); - a=(float)atof(strtok (line,"," )); - b=(float)atof(strtok (NULL,"," )); - gtk_spin_button_set_value ((GtkSpinButton*)glade_xml_get_widget(xml,"frmObjectPosX"), a ); - gtk_spin_button_set_value ((GtkSpinButton*)glade_xml_get_widget(xml,"frmObjectPosY"), b ); - gtk_spin_button_set_value ((GtkSpinButton*)glade_xml_get_widget(xml,"frmObjectPosZ"), 0 ); - gtk_widget_show (glade_xml_get_widget(xml,"frmObjectPosX")); - gtk_widget_show (glade_xml_get_widget(xml,"frmObjectPosY")); - gtk_widget_show (glade_xml_get_widget(xml,"frmObjectPosZ")); - gtk_widget_show (glade_xml_get_widget(xml,"frmObjectlabel3")); - gtk_label_set_text( (GtkLabel*)glade_xml_get_widget(xml,"frmObjectPosLabelX"),"X:"); - - } - else + } + gtk_widget_show(AttrWidgets[widgetcounter]); + gtk_widget_show(AttrLabels[widgetcounter]); + } else { + gtk_widget_hide(AttrWidgets[widgetcounter]); + gtk_widget_hide(AttrLabels[widgetcounter]); + + } + if (Y > widget_per_page * Yinc) { + X = 320; + Y = OriginalY; + } + attr_widgets_modified[widgetcounter] = 0; //set to unmodified + } + + + //first part, common attributes + sprintf(buf, "%i", ((custom_object_data *) AGDATA(obj))->ID); + gtk_entry_set_text((GtkEntry *) + glade_xml_get_widget(xml, "objEntryName"), + ((custom_object_data *) AGDATA(obj))->ObjName); + gtk_entry_set_text((GtkEntry *) + glade_xml_get_widget(xml, "objEntryLabel"), + agnameof(obj)); + + gtk_toggle_button_set_active((GtkToggleButton *) + glade_xml_get_widget(xml, + "frmObjectchkVisible"), + ((custom_object_data *) AGDATA(obj))-> + Visible); + gtk_toggle_button_set_active((GtkToggleButton *) + glade_xml_get_widget(xml, + "frmObjectchkLocked"), + ((custom_object_data *) AGDATA(obj))-> + Locked); + gtk_toggle_button_set_active((GtkToggleButton *) + glade_xml_get_widget(xml, + "frmObjectchkHighlighted"), + ((custom_object_data *) AGDATA(obj))-> + Highlighted); + //get the position info // show only one item is selected + if (((((custom_graph_data *) AGDATA(g))->selectedNodesCount == 1) + && (typeIndex == 2)) + || ((((custom_graph_data *) AGDATA(g))->selectedEdgesCount == 1) + && (typeIndex == 3)) + || ((((custom_graph_data *) AGDATA(g))->selectedGraphsCount == 1) + && (typeIndex == 3)) + + ) { + sprintf(line, "%s", agget(obj, "pos")); + a = (float) atof(strtok(line, ",")); + b = (float) atof(strtok(NULL, ",")); + gtk_spin_button_set_value((GtkSpinButton *) + glade_xml_get_widget(xml, + "frmObjectPosX"), + a); + gtk_spin_button_set_value((GtkSpinButton *) + glade_xml_get_widget(xml, + "frmObjectPosY"), + b); + gtk_spin_button_set_value((GtkSpinButton *) + glade_xml_get_widget(xml, + "frmObjectPosZ"), + 0); + gtk_widget_show(glade_xml_get_widget(xml, "frmObjectPosX")); + gtk_widget_show(glade_xml_get_widget(xml, "frmObjectPosY")); + gtk_widget_show(glade_xml_get_widget(xml, "frmObjectPosZ")); + gtk_widget_show(glade_xml_get_widget(xml, "frmObjectlabel3")); + gtk_label_set_text((GtkLabel *) + glade_xml_get_widget(xml, "frmObjectPosLabelX"), + "X:"); + + } else { + gtk_widget_hide(glade_xml_get_widget(xml, "frmObjectPosX")); + gtk_widget_hide(glade_xml_get_widget(xml, "frmObjectPosY")); + gtk_widget_hide(glade_xml_get_widget(xml, "frmObjectPosZ")); + gtk_widget_hide(glade_xml_get_widget(xml, "frmObjectlabel3")); + gtk_widget_hide(glade_xml_get_widget(xml, "frmObjectPosLabelY")); + gtk_widget_hide(glade_xml_get_widget(xml, "frmObjectPosLabelZ")); + switch (typeIndex) //typeindex 0 means new object { - gtk_widget_hide (glade_xml_get_widget(xml,"frmObjectPosX")); - gtk_widget_hide (glade_xml_get_widget(xml,"frmObjectPosY")); - gtk_widget_hide (glade_xml_get_widget(xml,"frmObjectPosZ")); - gtk_widget_hide (glade_xml_get_widget(xml,"frmObjectlabel3")); - gtk_widget_hide (glade_xml_get_widget(xml,"frmObjectPosLabelY")); - gtk_widget_hide (glade_xml_get_widget(xml,"frmObjectPosLabelZ")); - switch (typeIndex) //typeindex 0 means new object - { - case 1: //graph sub graph (cluster) - gtk_label_set_text((GtkLabel*)glade_xml_get_widget(xml,"frmObjectPosLabelX"),"Changes that you make will be applied to all selected Clusters1"); - break; - case 2: //Node - gtk_label_set_text((GtkLabel*)glade_xml_get_widget(xml,"frmObjectPosLabelX"),"Changes that you make will be applied to all selected Nodes!"); - break; - case 3: //Edge - gtk_label_set_text((GtkLabel*)glade_xml_get_widget(xml,"frmObjectPosLabelX"),"Changes that you make will be applied to all selected Edges!"); - break; - } + case 1: //graph sub graph (cluster) + gtk_label_set_text((GtkLabel *) + glade_xml_get_widget(xml, + "frmObjectPosLabelX"), + "Changes that you make will be applied to all selected Clusters1"); + break; + case 2: //Node + gtk_label_set_text((GtkLabel *) + glade_xml_get_widget(xml, + "frmObjectPosLabelX"), + "Changes that you make will be applied to all selected Nodes!"); + break; + case 3: //Edge + gtk_label_set_text((GtkLabel *) + glade_xml_get_widget(xml, + "frmObjectPosLabelX"), + "Changes that you make will be applied to all selected Edges!"); + break; } - return 1; + } + return 1; } -void update_object_properties(int typeIndex,Agraph_t* g) //updates objects from gui(node ,edge, cluster) +void update_object_properties(int typeIndex, Agraph_t * g) //updates objects from gui(node ,edge, cluster) { - int ind=0; - for (ind = 0 ; ind < widgetcounter ; ind ++) - { - //if widget has been changed - if (attr_widgets_modified[ind] == 1) - { - switch (typeIndex) //typeindex 0 means new object - { - case 1: //graph sub graph (cluster) - change_selected_graph_attributes(g,attr[ind].Name,get_attribute_string_value_from_widget(&attr[ind])); - break; - case 2: //Node - change_selected_node_attributes(g,attr[ind].Name,get_attribute_string_value_from_widget(&attr[ind])); - break; - case 3: //Edge - change_selected_edge_attributes(g,attr[ind].Name,get_attribute_string_value_from_widget(&attr[ind])); - break; - } - } - + int ind = 0; + for (ind = 0; ind < widgetcounter; ind++) { + //if widget has been changed + if (attr_widgets_modified[ind] == 1) { + switch (typeIndex) //typeindex 0 means new object + { + case 1: //graph sub graph (cluster) + change_selected_graph_attributes(g, attr[ind].Name, + get_attribute_string_value_from_widget + (&attr[ind])); + break; + case 2: //Node + change_selected_node_attributes(g, attr[ind].Name, + get_attribute_string_value_from_widget + (&attr[ind])); + break; + case 3: //Edge + change_selected_edge_attributes(g, attr[ind].Name, + get_attribute_string_value_from_widget + (&attr[ind])); + break; + } } + + } } -char* get_attribute_string_value_from_widget(attribute* att) +char *get_attribute_string_value_from_widget(attribute * att) { - GdkColor color; - switch(att->Type) - { - case 'F': - sprintf(guibuffer,"%f",gtk_spin_button_get_value((GtkSpinButton*)att->attrWidget)); - return guibuffer; - break; - case 'C': - gtk_color_button_get_color((GtkColorButton*)att->attrWidget,&color); - sprintf(guibuffer,"#%x%x%x",color.red/255,color.green/255,color.blue/255); - return guibuffer; - break; - default: - strcpy(guibuffer,gtk_entry_get_text((GtkEntry*)att->attrWidget)); - return guibuffer; - } + GdkColor color; + switch (att->Type) { + case 'F': + sprintf(guibuffer, "%f", + gtk_spin_button_get_value((GtkSpinButton *) att-> + attrWidget)); + return guibuffer; + break; + case 'C': + gtk_color_button_get_color((GtkColorButton *) att->attrWidget, + &color); + sprintf(guibuffer, "#%x%x%x", color.red / 255, color.green / 255, + color.blue / 255); + return guibuffer; + break; + default: + strcpy(guibuffer, + gtk_entry_get_text((GtkEntry *) att->attrWidget)); + return guibuffer; + } } -void change_selected_graph_attributes (Agraph_t* g,char* attrname,char* attrvalue) +void change_selected_graph_attributes(Agraph_t * g, char *attrname, + char *attrvalue) { - int ind=0; - agattr(g,AGRAPH,attrname,""); + int ind = 0; + agattr(g, AGRAPH, attrname, ""); + + for (ind = 0; + ind < ((custom_graph_data *) AGDATA(g))->selectedGraphsCount; + ind++) { + agset(((custom_graph_data *) AGDATA(g))->selectedGraphs[ind], + attrname, attrvalue); + } - for (ind=0;ind <((custom_graph_data*)AGDATA(g))->selectedGraphsCount;ind ++ ) - { - agset(((custom_graph_data*)AGDATA(g))->selectedGraphs[ind],attrname,attrvalue); - } - } -void change_selected_node_attributes (Agraph_t* g,char* attrname,char* attrvalue) +void change_selected_node_attributes(Agraph_t * g, char *attrname, + char *attrvalue) { - int ind=0; - agattr(g,AGNODE,attrname,""); - for (ind=0;ind <((custom_graph_data*)AGDATA(g))->selectedNodesCount;ind ++ ) - { - agset(((custom_graph_data*)AGDATA(g))->selectedNodes[ind],attrname,attrvalue); - } + int ind = 0; + agattr(g, AGNODE, attrname, ""); + for (ind = 0; + ind < ((custom_graph_data *) AGDATA(g))->selectedNodesCount; + ind++) { + agset(((custom_graph_data *) AGDATA(g))->selectedNodes[ind], + attrname, attrvalue); + } } -void change_selected_edge_attributes (Agraph_t* g,char* attrname,char* attrvalue) +void change_selected_edge_attributes(Agraph_t * g, char *attrname, + char *attrvalue) { - int ind=0; - agattr(g,AGEDGE,attrname,""); - for (ind=0;ind <((custom_graph_data*)AGDATA(g))->selectedEdgesCount;ind ++ ) - { - agset(((custom_graph_data*)AGDATA(g))->selectedEdges[ind],attrname,attrvalue); - - } + int ind = 0; + agattr(g, AGEDGE, attrname, ""); + for (ind = 0; + ind < ((custom_graph_data *) AGDATA(g))->selectedEdgesCount; + ind++) { + agset(((custom_graph_data *) AGDATA(g))->selectedEdges[ind], + attrname, attrvalue); + + } } void load_attributes() { - FILE * file; + FILE *file; char line[255]; - char *ss; - char* pch; - int ind=0; - int attrcount=0; - //loads attributes from a text file - file = fopen (SMYRNA_ATTRS, "r"); - if ( file != NULL ) - { - while ( fgets ( line, sizeof line, file ) != NULL ) - { - pch = strtok (line,","); - ind=0; - while (pch != NULL) - { - ss=strdup(pch); -// ABRemove(&ss,'\"'); -// ABRemove(&ss,' '); - pch = strtok (NULL, ","); - switch (ind) - { - case 0: - attr[attrcount].Type=ss[0]; - break; - case 1: - attr[attrcount].Name=strdup(ss); - break; - case 2: - attr[attrcount].Default=strdup(ss); - break; - case 3: - if (strstr(ss,"ANY_ELEMENT")) - { - attr[attrcount].ApplyTo[0]=1; - attr[attrcount].ApplyTo[1]=1; - attr[attrcount].ApplyTo[2]=1; - attr[attrcount].ApplyTo[3]=1; - } - else - { - attr[attrcount].ApplyTo[0]=strstr(ss,"GRAPH") ? 1:0; - attr[attrcount].ApplyTo[1]=strstr(ss,"CLUSTER") ? 1:0; - attr[attrcount].ApplyTo[2]=strstr(ss,"NODE")? 1:0; - attr[attrcount].ApplyTo[3]=strstr(ss,"EDGE")? 1:0; - } - break; - case 4: - if (strstr(ss,"ALL_ENGINES")) - { - attr[attrcount].Engine[0]=1; - attr[attrcount].Engine[1]=1; - attr[attrcount].Engine[2]=1; - attr[attrcount].Engine[3]=1; - attr[attrcount].Engine[4]=1; - } - else - { - attr[attrcount].Engine[0]=strstr(ss,"DOT")? 1:0; - attr[attrcount].Engine[1]=strstr(ss,"NEATO")? 1:0; - attr[attrcount].Engine[2]=strstr(ss,"TWOPI")? 1:0; - attr[attrcount].Engine[3]=strstr(ss,"CIRCO")? 1:0; - attr[attrcount].Engine[4]=strstr(ss,"FDP")? 1:0; - } - break; - default: - attr[attrcount].ComboValues=realloc(attr[attrcount].ComboValues,sizeof(char**)*attr[attrcount].ComboValuesCount); - attr[attrcount].ComboValues[attr[attrcount].ComboValuesCount]=strdup(ss); - attr[attrcount].ComboValuesCount ++; - break; - } - ind++; - } - attrcount++; + char *ss; + char *pch; + int ind = 0; + int attrcount = 0; + //loads attributes from a text file + file = fopen(SMYRNA_ATTRS, "r"); + if (file != NULL) { + while (fgets(line, sizeof line, file) != NULL) { + pch = strtok(line, ","); + ind = 0; + while (pch != NULL) { + ss = strdup(pch); +// ABRemove(&ss,'\"'); +// ABRemove(&ss,' '); + pch = strtok(NULL, ","); + switch (ind) { + case 0: + attr[attrcount].Type = ss[0]; + break; + case 1: + attr[attrcount].Name = strdup(ss); + break; + case 2: + attr[attrcount].Default = strdup(ss); + break; + case 3: + if (strstr(ss, "ANY_ELEMENT")) { + attr[attrcount].ApplyTo[0] = 1; + attr[attrcount].ApplyTo[1] = 1; + attr[attrcount].ApplyTo[2] = 1; + attr[attrcount].ApplyTo[3] = 1; + } else { + attr[attrcount].ApplyTo[0] = + strstr(ss, "GRAPH") ? 1 : 0; + attr[attrcount].ApplyTo[1] = + strstr(ss, "CLUSTER") ? 1 : 0; + attr[attrcount].ApplyTo[2] = + strstr(ss, "NODE") ? 1 : 0; + attr[attrcount].ApplyTo[3] = + strstr(ss, "EDGE") ? 1 : 0; + } + break; + case 4: + if (strstr(ss, "ALL_ENGINES")) { + attr[attrcount].Engine[0] = 1; + attr[attrcount].Engine[1] = 1; + attr[attrcount].Engine[2] = 1; + attr[attrcount].Engine[3] = 1; + attr[attrcount].Engine[4] = 1; + } else { + attr[attrcount].Engine[0] = + strstr(ss, "DOT") ? 1 : 0; + attr[attrcount].Engine[1] = + strstr(ss, "NEATO") ? 1 : 0; + attr[attrcount].Engine[2] = + strstr(ss, "TWOPI") ? 1 : 0; + attr[attrcount].Engine[3] = + strstr(ss, "CIRCO") ? 1 : 0; + attr[attrcount].Engine[4] = + strstr(ss, "FDP") ? 1 : 0; + } + break; + default: + attr[attrcount].ComboValues = + realloc(attr[attrcount].ComboValues, + sizeof(char **) * + attr[attrcount].ComboValuesCount); + attr[attrcount].ComboValues[attr[attrcount]. + ComboValuesCount] = + strdup(ss); + attr[attrcount].ComboValuesCount++; + break; } + ind++; + } + attrcount++; } + } } - - - -