]> granicus.if.org Git - graphviz/commitdiff
Clean up smyrna files:
authorerg <devnull@localhost>
Wed, 19 Mar 2008 21:43:59 +0000 (21:43 +0000)
committererg <devnull@localhost>
Wed, 19 Mar 2008 21:43:59 +0000 (21:43 +0000)
  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

cmd/smyrna/tvnodes.c
cmd/smyrna/tvnodes.h
cmd/smyrna/viewport.c
cmd/smyrna/viewport.h

index 2f3e6a313a1b3983a90a6aba726b84299249d37b..baf5184d2e43cc83e5d356eaecb5e61ca1696a79 100755 (executable)
 #include "viewport.h"
 #include "selection.h"
 tv_nodes TV_Nodes;
-static char buf [255];
-int MP_Flag=0;
+static char buf[255];
+int MP_Flag = 0;
 
-tv_filter* create_tv_filter()
+#ifdef UNUSED
+static
+void clear_tv_filter(tv_filter * TV_Filter)
 {
-       tv_filter* f;
-       f=(tv_filter*)malloc(sizeof(tv_filter));
-       clear_tv_filter(f);
-       return f;
+    TV_Filter->highlighted = -1;
+    TV_Filter->visible = -1;
+    TV_Filter->min_data1 = NULL;
+    TV_Filter->max_data1 = NULL;
+    TV_Filter->min_data2 = NULL;
+    TV_Filter->max_data2 = NULL;
+
+    TV_Nodes.filtered = 0;
+
 }
-void init_tv_nodes(tv_nodes* TV_Nodes)
+
+static
+tv_filter *create_tv_filter()
 {
-       int i;
-       TV_Nodes->filtered=0;
-       TV_Nodes->activepage=-1;
-       TV_Nodes->firstnodeid=0;
-       TV_Nodes->pagecount=0;
-       TV_Nodes->recordperpage=22;
-       TV_Nodes->page_data_index=0;
-       TV_Nodes->Y_Gap=25;
-       TV_Nodes->Y=12;
-       TV_Nodes->initial_Y=12;
-       TV_Nodes->chkSelected_X=5;
-       TV_Nodes->IDLabel_X=10;
-       TV_Nodes->chkVisible_X=55;
-       TV_Nodes->chkHighlighted_X=85;
-       TV_Nodes->Data1_X=105;
-       TV_Nodes->Data2_X=305;
-       TV_Nodes->page_data_node_index=0;
-       reset_page_History();
-
-       //null gui elemetns
-       for (i=0;i < MAX_NODE_PER_PAGE ;i ++)
-       {
-               TV_Nodes->TV_Node[i].chkHighlighted=NULL;
-               TV_Nodes->TV_Node[i].chkSelected=NULL;
-               TV_Nodes->TV_Node[i].chkVisible=NULL;
-               TV_Nodes->TV_Node[i].Data1=NULL;
-               TV_Nodes->TV_Node[i].Data2=NULL;
-               TV_Nodes->TV_Node[i].IDLabel=NULL;
-       }
-       TV_Nodes->initialized=1;
+    tv_filter *f;
+    f = (tv_filter *) malloc(sizeof(tv_filter));
+    clear_tv_filter(f);
+    return f;
 }
+#endif
 
-void clear_tv_filter(tv_filter* TV_Filter)
+static
+void init_tv_nodes(tv_nodes * TV_Nodes)
 {
-       TV_Filter->highlighted=-1;
-       TV_Filter->visible=-1;
-       TV_Filter->min_data1=NULL;
-       TV_Filter->max_data1=NULL;
-       TV_Filter->min_data2=NULL;
-       TV_Filter->max_data2=NULL;
-       
-       TV_Nodes.filtered=0;
-
+    int i;
+    TV_Nodes->filtered = 0;
+    TV_Nodes->activepage = -1;
+    TV_Nodes->firstnodeid = 0;
+    TV_Nodes->pagecount = 0;
+    TV_Nodes->recordperpage = 22;
+    TV_Nodes->page_data_index = 0;
+    TV_Nodes->Y_Gap = 25;
+    TV_Nodes->Y = 12;
+    TV_Nodes->initial_Y = 12;
+    TV_Nodes->chkSelected_X = 5;
+    TV_Nodes->IDLabel_X = 10;
+    TV_Nodes->chkVisible_X = 55;
+    TV_Nodes->chkHighlighted_X = 85;
+    TV_Nodes->Data1_X = 105;
+    TV_Nodes->Data2_X = 305;
+    TV_Nodes->page_data_node_index = 0;
+    reset_page_History();
+
+    //null gui elemetns
+    for (i = 0; i < MAX_NODE_PER_PAGE; i++) {
+       TV_Nodes->TV_Node[i].chkHighlighted = NULL;
+       TV_Nodes->TV_Node[i].chkSelected = NULL;
+       TV_Nodes->TV_Node[i].chkVisible = NULL;
+       TV_Nodes->TV_Node[i].Data1 = NULL;
+       TV_Nodes->TV_Node[i].Data2 = NULL;
+       TV_Nodes->TV_Node[i].IDLabel = NULL;
+    }
+    TV_Nodes->initialized = 1;
 }
 
-extern int set_filter(tv_filter* TV_Filter,char* MinData1,char* MaxData1,char* MinData2,char* MaxData2,char* Filter_String,int selected,int visible,int highlighted)
+int
+set_filter(tv_filter * TV_Filter, char *MinData1, char *MaxData1,
+          char *MinData2, char *MaxData2, char *Filter_String,
+          int selected, int visible, int highlighted)
 {
-       TV_Filter->selected=selected;
-       TV_Filter->highlighted=highlighted;
-       TV_Filter->visible=visible;
-       TV_Filter->min_data1=MinData1;
-       TV_Filter->max_data1=MaxData1;
-       TV_Filter->min_data2=MinData2;
-       TV_Filter->max_data2=MaxData2;
-       TV_Filter->filter_string=Filter_String;
-       TV_Nodes.filtered=1;
-       return 1;
+    TV_Filter->selected = selected;
+    TV_Filter->highlighted = highlighted;
+    TV_Filter->visible = visible;
+    TV_Filter->min_data1 = MinData1;
+    TV_Filter->max_data1 = MaxData1;
+    TV_Filter->min_data2 = MinData2;
+    TV_Filter->max_data2 = MaxData2;
+    TV_Filter->filter_string = Filter_String;
+    TV_Nodes.filtered = 1;
+    return 1;
 }
+
+#ifdef UNUSED
+static
 int reverse_selection()
 {
-       int i=0;
-       for (i; i < view->Topview->Nodecount ; i ++)
-       {
-               if (((custom_object_data*)AGDATA(view->Topview->Nodes[i].Node))->Selected )
-                       deselect_node(view->g[view->activeGraph],view->Topview->Nodes[i].Node);
-               else
-                       select_node(view->g[view->activeGraph],view->Topview->Nodes[i].Node);
-       }
-       for (i=0; i < view->Topview->Edgecount ; i ++)
-       {
-               if (((custom_object_data*)AGDATA(view->Topview->Edges[i].Edge))->Selected )
-                       deselect_edge(view->g[view->activeGraph],view->Topview->Edges[i].Edge);
-               else
-                       select_edge(view->g[view->activeGraph],view->Topview->Edges[i].Edge);
-       }
-}
-int validate_node(tv_node* TV_Node)
-{
-       static btree_node* n=0;
-       char* data_attr1;
-       char* data_attr2;
-       char* buf;
-//             n=tree_from_filter_string("([IP=\"^10.*\",min=\"0\",max=\"0\"])");
-       // get attributes from graph
-       data_attr1=agget(view->g[view->activeGraph],"DataAttribute1");
-       data_attr2=agget(view->g[view->activeGraph],"DataAttribute2");
-
-
-       if (TV_Nodes.filtered)
-       {
-               int valid=1;
-               if((MP_Flag==1) || (!n))
-               {
-                       n=tree_from_filter_string(TV_Nodes.filter.filter_string);
-                       MP_Flag=0;
-                       buf=agget(view->Topview->Nodes[TV_Node->index].Node,data_attr1);
-                       if(buf)
-                       {
-                               if (strcmp(TV_Nodes.filter.min_data1,buf))
-                                       valid=0;
-                       }
-               }
-               if (data_attr1 && TV_Nodes.filter.max_data1 && agget(view->Topview->Nodes[TV_Node->index].Node,data_attr1))
-               {
-                       if (strcmp(agget(view->Topview->Nodes[TV_Node->index].Node,data_attr1),TV_Nodes.filter.min_data1))
-                               valid=0;
-               }
-               //string data checks attr2
-               if (data_attr2 && TV_Nodes.filter.min_data2 && agget(view->Topview->Nodes[TV_Node->index].Node,data_attr2))
-               {
-                       if (strcmp(TV_Nodes.filter.min_data2,  agget(view->Topview->Nodes[TV_Node->index].Node,data_attr2)   ))
-                               valid=0;
-               }
-               if (data_attr2 && TV_Nodes.filter.max_data2 && agget(view->Topview->Nodes[TV_Node->index].Node,data_attr2))
-               {
-                       if (agget(view->Topview->Nodes[TV_Node->index].Node,data_attr2),TV_Nodes.filter.min_data2)
-                               valid=0;
-               }
-               if (strlen(TV_Nodes.filter.filter_string)>0)
-                       valid=evaluate_expresions (TV_Node,n);
-               //if show only highlighted 
-               if (TV_Nodes.filter.highlighted >= 0)   
-               {
-                       if(((custom_object_data*)AGDATA(view->Topview->Nodes[TV_Node->index].Node))->Highlighted!= TV_Nodes.filter.highlighted)
-                               valid=0;
-               }
-               //if show only visibles
-               if (TV_Nodes.filter.visible >= 0)       
-               {
-                       if(((custom_object_data*)AGDATA(view->Topview->Nodes[TV_Node->index].Node))->Visible!= TV_Nodes.filter.visible)
-                               valid=0;
-               }
-               //if show only selected
-               if (TV_Nodes.filter.selected >= 0)      
-               {
-                       if(((custom_object_data*)AGDATA(view->Topview->Nodes[TV_Node->index].Node))->Selected!= TV_Nodes.filter.selected)
-                               valid=0;
-               }
-               return valid;
-       }
+    int i = 0;
+    for (i; i < view->Topview->Nodecount; i++) {
+       if (((custom_object_data *) AGDATA(view->Topview->Nodes[i].Node))->
+           Selected)
+           deselect_node(view->g[view->activeGraph],
+                         view->Topview->Nodes[i].Node);
        else
-               return 1;
+           select_node(view->g[view->activeGraph],
+                       view->Topview->Nodes[i].Node);
+    }
+    for (i = 0; i < view->Topview->Edgecount; i++) {
+       if (((custom_object_data *) AGDATA(view->Topview->Edges[i].Edge))->
+           Selected)
+           deselect_edge(view->g[view->activeGraph],
+                         view->Topview->Edges[i].Edge);
+       else
+           select_edge(view->g[view->activeGraph],
+                       view->Topview->Edges[i].Edge);
+    }
 }
+#endif
 
-int update_node_gui_objects(tv_node* TV_Node)
+static
+int validate_node(tv_node * TV_Node)
 {
-       char* data_attr1;
-       char* data_attr2;
-       char buf[255];
-       GtkLayout* layout;
-
-       // get attributes from graph
-       data_attr1=agget(view->g[view->activeGraph],"DataAttribute1");
-       data_attr2=agget(view->g[view->activeGraph],"DataAttribute2");
-
-       //create if objects are null    
-       layout=(GtkLayout*)glade_xml_get_widget(xml, "layoutTVData");
-       //select box
-       if (!TV_Node->chkSelected)
-       {
-               TV_Node->chkSelected=(GtkCheckButton*)gtk_check_button_new();
-               gtk_layout_put  (layout,(GtkWidget*)TV_Node->chkSelected,LOCATION_X_CHKSELECTED,TV_Nodes.Y);
-       }
-       gtk_widget_show((GtkWidget*)TV_Node->chkSelected);
-       gtk_toggle_button_set_active((GtkToggleButton*)TV_Node->chkSelected,((custom_object_data*)AGDATA(view->Topview->Nodes[TV_Node->index].Node))->Selected);
-
-       //Id Label
-       if (!TV_Node->IDLabel)
-       {
-               TV_Node->IDLabel=(GtkLabel*)gtk_label_new("");
-               gtk_layout_put  (layout,(GtkWidget*)TV_Node->IDLabel,LOCATION_X_IDLABEL,TV_Nodes.Y);
+    static btree_node *n = 0;
+    char *data_attr1;
+    char *data_attr2;
+    char *buf;
+//              n=tree_from_filter_string("([IP=\"^10.*\",min=\"0\",max=\"0\"])");
+    // get attributes from graph
+    data_attr1 = agget(view->g[view->activeGraph], "DataAttribute1");
+    data_attr2 = agget(view->g[view->activeGraph], "DataAttribute2");
+
+
+    if (TV_Nodes.filtered) {
+       int valid = 1;
+       if ((MP_Flag == 1) || (!n)) {
+           n = tree_from_filter_string(TV_Nodes.filter.filter_string);
+           MP_Flag = 0;
+           buf =
+               agget(view->Topview->Nodes[TV_Node->index].Node,
+                     data_attr1);
+           if (buf) {
+               if (strcmp(TV_Nodes.filter.min_data1, buf))
+                   valid = 0;
+           }
        }
-       sprintf(buf, "%d", TV_Node->index);
-       gtk_label_set_text (TV_Node->IDLabel,buf);
-       gtk_widget_show((GtkWidget*)TV_Node->IDLabel);
-
-       //visible
-       if (!TV_Node->chkVisible)
-       {               
-               TV_Node->chkVisible=(GtkCheckButton*)gtk_check_button_new();
-               gtk_layout_put  (layout,(GtkWidget*)TV_Node->chkVisible,LOCATION_X_CHKVISIBLE,TV_Nodes.Y);
+       if (data_attr1 && TV_Nodes.filter.max_data1
+           && agget(view->Topview->Nodes[TV_Node->index].Node,
+                    data_attr1)) {
+           if (strcmp
+               (agget
+                (view->Topview->Nodes[TV_Node->index].Node, data_attr1),
+                TV_Nodes.filter.min_data1))
+               valid = 0;
        }
-
-       gtk_widget_show((GtkWidget*)TV_Node->chkVisible);
-       gtk_toggle_button_set_active((GtkToggleButton*)TV_Node->chkVisible,((custom_object_data*)AGDATA(view->Topview->Nodes[TV_Node->index].Node))->Visible);
-       //highlighted
-       if (!TV_Node->chkHighlighted)
-       {
-               TV_Node->chkHighlighted=(GtkCheckButton*)gtk_check_button_new();
-               gtk_layout_put  (layout,(GtkWidget*)TV_Node->chkHighlighted,LOCATION_X_CHKHIGHLIGHTED,TV_Nodes.Y);
+       //string data checks attr2
+       if (data_attr2 && TV_Nodes.filter.min_data2
+           && agget(view->Topview->Nodes[TV_Node->index].Node,
+                    data_attr2)) {
+           if (strcmp
+               (TV_Nodes.filter.min_data2,
+                agget(view->Topview->Nodes[TV_Node->index].Node,
+                      data_attr2)))
+               valid = 0;
        }
-       gtk_widget_show((GtkWidget*)TV_Node->chkHighlighted);
-       gtk_toggle_button_set_active((GtkToggleButton*)TV_Node->chkHighlighted,((custom_object_data*)AGDATA(view->Topview->Nodes[TV_Node->index].Node))->Highlighted);
-
-       
-       //DATA 1
-       if (!TV_Node->Data1)
-       {
-               TV_Node->Data1=(GtkEntry*)gtk_entry_new();
-               gtk_layout_put  (layout,(GtkWidget*)TV_Node->Data1,LOCATION_X_DATA1,TV_Nodes.Y);
-               gtk_widget_set_size_request((GtkWidget*)TV_Node->Data1,300,23);
-
+       if (data_attr2 && TV_Nodes.filter.max_data2
+           && agget(view->Topview->Nodes[TV_Node->index].Node,
+                    data_attr2)) {
+           if (agget
+               (view->Topview->Nodes[TV_Node->index].Node, data_attr2),
+               TV_Nodes.filter.min_data2)
+               valid = 0;
        }
-       if(data_attr1)
-       {
-               gtk_entry_set_text (TV_Node->Data1,agget(view->Topview->Nodes[TV_Node->index].Node,data_attr1));
+       if (strlen(TV_Nodes.filter.filter_string) > 0)
+           valid = evaluate_expresions(TV_Node, n);
+       //if show only highlighted 
+       if (TV_Nodes.filter.highlighted >= 0) {
+           if (((custom_object_data *)
+                AGDATA(view->Topview->Nodes[TV_Node->index].Node))->
+               Highlighted != TV_Nodes.filter.highlighted)
+               valid = 0;
        }
-       else
-               gtk_entry_set_text (TV_Node->Data1,"");
-       gtk_widget_show((GtkWidget*)TV_Node->Data1);
-
-       //DATA 2
-       if (!TV_Node->Data2)
-       {
-               TV_Node->Data2=(GtkEntry*)gtk_entry_new();
-               gtk_layout_put  (layout,(GtkWidget*)TV_Node->Data2,LOCATION_X_DATA2,TV_Nodes.Y);
-               gtk_widget_set_size_request((GtkWidget*)TV_Node->Data2,300,23);
+       //if show only visibles
+       if (TV_Nodes.filter.visible >= 0) {
+           if (((custom_object_data *)
+                AGDATA(view->Topview->Nodes[TV_Node->index].Node))->
+               Visible != TV_Nodes.filter.visible)
+               valid = 0;
        }
-       if(data_attr2)
-       {
-               gtk_entry_set_text (TV_Node->Data2,agget(view->Topview->Nodes[TV_Node->index].Node,data_attr2));
+       //if show only selected
+       if (TV_Nodes.filter.selected >= 0) {
+           if (((custom_object_data *)
+                AGDATA(view->Topview->Nodes[TV_Node->index].Node))->
+               Selected != TV_Nodes.filter.selected)
+               valid = 0;
        }
-       else
-               gtk_entry_set_text (TV_Node->Data2,"");
-       gtk_widget_show((GtkWidget*)TV_Node->Data2);
+       return valid;
+    } else
        return 1;
+}
+
+static int update_node_gui_objects(tv_node * TV_Node)
+{
+    char *data_attr1;
+    char *data_attr2;
+    char buf[255];
+    GtkLayout *layout;
+
+    // get attributes from graph
+    data_attr1 = agget(view->g[view->activeGraph], "DataAttribute1");
+    data_attr2 = agget(view->g[view->activeGraph], "DataAttribute2");
+
+    //create if objects are null    
+    layout = (GtkLayout *) glade_xml_get_widget(xml, "layoutTVData");
+    //select box
+    if (!TV_Node->chkSelected) {
+       TV_Node->chkSelected = (GtkCheckButton *) gtk_check_button_new();
+       gtk_layout_put(layout, (GtkWidget *) TV_Node->chkSelected,
+                      LOCATION_X_CHKSELECTED, TV_Nodes.Y);
+    }
+    gtk_widget_show((GtkWidget *) TV_Node->chkSelected);
+    gtk_toggle_button_set_active((GtkToggleButton *) TV_Node->chkSelected,
+                                ((custom_object_data *)
+                                 AGDATA(view->Topview->
+                                        Nodes[TV_Node->index].Node))->
+                                Selected);
+
+    //Id Label
+    if (!TV_Node->IDLabel) {
+       TV_Node->IDLabel = (GtkLabel *) gtk_label_new("");
+       gtk_layout_put(layout, (GtkWidget *) TV_Node->IDLabel,
+                      LOCATION_X_IDLABEL, TV_Nodes.Y);
+    }
+    sprintf(buf, "%d", TV_Node->index);
+    gtk_label_set_text(TV_Node->IDLabel, buf);
+    gtk_widget_show((GtkWidget *) TV_Node->IDLabel);
+
+    //visible
+    if (!TV_Node->chkVisible) {
+       TV_Node->chkVisible = (GtkCheckButton *) gtk_check_button_new();
+       gtk_layout_put(layout, (GtkWidget *) TV_Node->chkVisible,
+                      LOCATION_X_CHKVISIBLE, TV_Nodes.Y);
+    }
+
+    gtk_widget_show((GtkWidget *) TV_Node->chkVisible);
+    gtk_toggle_button_set_active((GtkToggleButton *) TV_Node->chkVisible,
+                                ((custom_object_data *)
+                                 AGDATA(view->Topview->
+                                        Nodes[TV_Node->index].Node))->
+                                Visible);
+    //highlighted
+    if (!TV_Node->chkHighlighted) {
+       TV_Node->chkHighlighted =
+           (GtkCheckButton *) gtk_check_button_new();
+       gtk_layout_put(layout, (GtkWidget *) TV_Node->chkHighlighted,
+                      LOCATION_X_CHKHIGHLIGHTED, TV_Nodes.Y);
+    }
+    gtk_widget_show((GtkWidget *) TV_Node->chkHighlighted);
+    gtk_toggle_button_set_active((GtkToggleButton *) TV_Node->
+                                chkHighlighted,
+                                ((custom_object_data *)
+                                 AGDATA(view->Topview->
+                                        Nodes[TV_Node->index].Node))->
+                                Highlighted);
+
+
+    //DATA 1
+    if (!TV_Node->Data1) {
+       TV_Node->Data1 = (GtkEntry *) gtk_entry_new();
+       gtk_layout_put(layout, (GtkWidget *) TV_Node->Data1,
+                      LOCATION_X_DATA1, TV_Nodes.Y);
+       gtk_widget_set_size_request((GtkWidget *) TV_Node->Data1, 300, 23);
+
+    }
+    if (data_attr1) {
+       gtk_entry_set_text(TV_Node->Data1,
+                          agget(view->Topview->Nodes[TV_Node->index].Node,
+                                data_attr1));
+    } else
+       gtk_entry_set_text(TV_Node->Data1, "");
+    gtk_widget_show((GtkWidget *) TV_Node->Data1);
+
+    //DATA 2
+    if (!TV_Node->Data2) {
+       TV_Node->Data2 = (GtkEntry *) gtk_entry_new();
+       gtk_layout_put(layout, (GtkWidget *) TV_Node->Data2,
+                      LOCATION_X_DATA2, TV_Nodes.Y);
+       gtk_widget_set_size_request((GtkWidget *) TV_Node->Data2, 300, 23);
+    }
+    if (data_attr2) {
+       gtk_entry_set_text(TV_Node->Data2,
+                          agget(view->Topview->Nodes[TV_Node->index].Node,
+                                data_attr2));
+    } else
+       gtk_entry_set_text(TV_Node->Data2, "");
+    gtk_widget_show((GtkWidget *) TV_Node->Data2);
+    return 1;
 
 }
 
 
-extern int     tv_nodes_last_page()
+int tv_nodes_last_page()
 {
-       if (TV_Nodes.activepage<TV_Nodes.pagecount)
-               return tv_nodes_goto_page(TV_Nodes.pagecount);
-       else
-               return 0;
+    if (TV_Nodes.activepage < TV_Nodes.pagecount)
+       return tv_nodes_goto_page(TV_Nodes.pagecount);
+    else
+       return 0;
 }
-extern int     tv_nodes_first_page()
+
+int tv_nodes_first_page()
 {
-       if (TV_Nodes.activepage>0)
-               return tv_nodes_goto_page(0);
-       else
-               return 0;
+    if (TV_Nodes.activepage > 0)
+       return tv_nodes_goto_page(0);
+    else
+       return 0;
 }
 
-extern int tv_nodes_goto_page(int page)
+static int hide_data_widgets()
 {
-       GtkSpinButton* spn;
-       tv_node* tvn;
-       GtkLabel* lblTVPage;
+    int i;
+    for (i = 0; i < MAX_NODE_PER_PAGE; i++) {
+       if (TV_Nodes.TV_Node[i].chkHighlighted) {
+           gtk_widget_hide((GtkWidget *) TV_Nodes.TV_Node[i].
+                           chkHighlighted);
+           gtk_widget_hide((GtkWidget *) TV_Nodes.TV_Node[i].chkSelected);
+           gtk_widget_hide((GtkWidget *) TV_Nodes.TV_Node[i].chkVisible);
+           gtk_widget_hide((GtkWidget *) TV_Nodes.TV_Node[i].Data1);
+           gtk_widget_hide((GtkWidget *) TV_Nodes.TV_Node[i].Data2);
+           gtk_widget_hide((GtkWidget *) TV_Nodes.TV_Node[i].IDLabel);
+       }
+    }
+    return 1;
 
-       if ((page >=0) && page <= TV_Nodes.pagecount)
-       {
-               if(TV_Nodes.general_purpose_flag==1)
-               {
-                       update_TV_data_from_gui();
-                       TV_Nodes.general_purpose_flag=0;
-               }
-               TV_Nodes.activepage=page;
-               TV_Nodes.page_data_node_index=TV_Nodes.page_history[TV_Nodes.activepage];
-               TV_Nodes.page_data_index=0;
-               TV_Nodes.firstnodeid=TV_Nodes.page_data_node_index;
-               TV_Nodes.Y=TV_Nodes.initial_Y;
-               hide_data_widgets();
+
+}
+int tv_nodes_goto_page(int page)
+{
+    GtkSpinButton *spn;
+    tv_node *tvn;
+    GtkLabel *lblTVPage;
+
+    if ((page >= 0) && page <= TV_Nodes.pagecount) {
+       if (TV_Nodes.general_purpose_flag == 1) {
+           update_TV_data_from_gui();
+           TV_Nodes.general_purpose_flag = 0;
        }
-       else
-               return 0;
-       while ((TV_Nodes.page_data_index < TV_Nodes.recordperpage)&&(TV_Nodes.page_data_node_index < view->Topview->Nodecount))
-       {
-               tvn=&TV_Nodes.TV_Node[TV_Nodes.page_data_index];
-               tvn->index=TV_Nodes.page_data_node_index;
-               if(view->Topview->Nodes[TV_Nodes.page_data_node_index].valid==1)
-               {
-                       TV_Nodes.page_data_index++;
-                       update_node_gui_objects(tvn);
-                       TV_Nodes.Y=TV_Nodes.Y+TV_Nodes.Y_Gap;
-               }
-               TV_Nodes.page_data_node_index++;
+       TV_Nodes.activepage = page;
+       TV_Nodes.page_data_node_index =
+           TV_Nodes.page_history[TV_Nodes.activepage];
+       TV_Nodes.page_data_index = 0;
+       TV_Nodes.firstnodeid = TV_Nodes.page_data_node_index;
+       TV_Nodes.Y = TV_Nodes.initial_Y;
+       hide_data_widgets();
+    } else
+       return 0;
+    while ((TV_Nodes.page_data_index < TV_Nodes.recordperpage)
+          && (TV_Nodes.page_data_node_index < view->Topview->Nodecount)) {
+       tvn = &TV_Nodes.TV_Node[TV_Nodes.page_data_index];
+       tvn->index = TV_Nodes.page_data_node_index;
+       if (view->Topview->Nodes[TV_Nodes.page_data_node_index].valid == 1) {
+           TV_Nodes.page_data_index++;
+           update_node_gui_objects(tvn);
+           TV_Nodes.Y = TV_Nodes.Y + TV_Nodes.Y_Gap;
        }
-       lblTVPage=(GtkLabel*)glade_xml_get_widget(xml, "lblTVPage");
-       sprintf(buf,"(%i / %i)", TV_Nodes.activepage+1,TV_Nodes.pagecount+1);
-       gtk_label_set_text(lblTVPage,buf);
-       spn=(GtkSpinButton*)glade_xml_get_widget(xml, "spnTVGotopage");
-       gtk_spin_button_set_value(spn,page+1);
+       TV_Nodes.page_data_node_index++;
+    }
+    lblTVPage = (GtkLabel *) glade_xml_get_widget(xml, "lblTVPage");
+    sprintf(buf, "(%i / %i)", TV_Nodes.activepage + 1,
+           TV_Nodes.pagecount + 1);
+    gtk_label_set_text(lblTVPage, buf);
+    spn = (GtkSpinButton *) glade_xml_get_widget(xml, "spnTVGotopage");
+    gtk_spin_button_set_value(spn, page + 1);
 
 
 
 
-       return 1;
+    return 1;
 }
 
-extern int tv_nodes_prior_page()
+int tv_nodes_prior_page()
 {
-       if (TV_Nodes.activepage >0)
-       {
-               return tv_nodes_goto_page(TV_Nodes.activepage -1);
-       }
-       else
-               return 0;
+    if (TV_Nodes.activepage > 0) {
+       return tv_nodes_goto_page(TV_Nodes.activepage - 1);
+    } else
+       return 0;
 }
 
 
-extern int tv_nodes_next_page()
+int tv_nodes_next_page()
 {
-       if (TV_Nodes.activepage < TV_Nodes.pagecount)
-       {
-               return tv_nodes_goto_page(TV_Nodes.activepage +1);
-       }
-       else
-               return 0;
+    if (TV_Nodes.activepage < TV_Nodes.pagecount) {
+       return tv_nodes_goto_page(TV_Nodes.activepage + 1);
+    } else
+       return 0;
 }
-extern void execute_tv_nodes()
+
+void execute_tv_nodes()
 {
 
-           gtk_widget_hide(glade_xml_get_widget(xml, "frmTVNodes"));
-               gtk_widget_show(glade_xml_get_widget(xml, "frmTVNodes"));
-//             gtk_window_set_keep_above           (glade_xml_get_widget(xml, "frmTVNodes"),1);
-               if(TV_Nodes.initialized < 1)
-               {
-                       init_tv_nodes(&TV_Nodes);
-               }
-               //test filter
-               prepare_page_history();
-               TV_Nodes.general_purpose_flag=1;
-               tv_nodes_next_page();
+    gtk_widget_hide(glade_xml_get_widget(xml, "frmTVNodes"));
+    gtk_widget_show(glade_xml_get_widget(xml, "frmTVNodes"));
+//              gtk_window_set_keep_above           (glade_xml_get_widget(xml, "frmTVNodes"),1);
+    if (TV_Nodes.initialized < 1) {
+       init_tv_nodes(&TV_Nodes);
+    }
+    //test filter
+    prepare_page_history();
+    TV_Nodes.general_purpose_flag = 1;
+    tv_nodes_next_page();
 }
 
 
-static int hide_data_widgets()
-{
-       int i;
-       for (i=0;i < MAX_NODE_PER_PAGE ;i ++)
-       {
-               if (TV_Nodes.TV_Node[i].chkHighlighted) 
-               {               
-                       gtk_widget_hide((GtkWidget*)TV_Nodes.TV_Node[i].chkHighlighted);
-                       gtk_widget_hide((GtkWidget*)TV_Nodes.TV_Node[i].chkSelected);
-                       gtk_widget_hide((GtkWidget*)TV_Nodes.TV_Node[i].chkVisible);
-                       gtk_widget_hide((GtkWidget*)TV_Nodes.TV_Node[i].Data1);
-                       gtk_widget_hide((GtkWidget*)TV_Nodes.TV_Node[i].Data2);
-                       gtk_widget_hide((GtkWidget*)TV_Nodes.TV_Node[i].IDLabel);
-               }
-       }
-       return 1;
-       
-
-}
-extern int reset_page_History()
+int reset_page_History()
 {
 /*     if(TV_Nodes.page_history_count > 0)
        {
                free(TV_Nodes.page_history);
                TV_Nodes.page_history_count=0;
        }*/
-       TV_Nodes.page_history_count=0;
-       TV_Nodes.page_history=realloc(TV_Nodes.page_history,sizeof(int) * TV_Nodes.page_history_count);
-       return 1;
+    TV_Nodes.page_history_count = 0;
+    TV_Nodes.page_history =
+       realloc(TV_Nodes.page_history,
+               sizeof(int) * TV_Nodes.page_history_count);
+    return 1;
 
 
 }
 static int push_to_page_history(int index)
 {
-       TV_Nodes.page_history_count++;
-       TV_Nodes.page_history=realloc(TV_Nodes.page_history,sizeof(int) * TV_Nodes.page_history_count);
-       TV_Nodes.page_history[TV_Nodes.page_history_count-1]=index;
-       return 1;
+    TV_Nodes.page_history_count++;
+    TV_Nodes.page_history =
+       realloc(TV_Nodes.page_history,
+               sizeof(int) * TV_Nodes.page_history_count);
+    TV_Nodes.page_history[TV_Nodes.page_history_count - 1] = index;
+    return 1;
 }
+
+#ifdef UNUSED
 static int pop_from_page_history()
 {
-       if(TV_Nodes.page_history_count > 0)
-       {
-               int return_value;
-               return_value=TV_Nodes.page_history[TV_Nodes.page_history_count-1];
-               TV_Nodes.page_history_count--;
-               TV_Nodes.page_history=realloc(TV_Nodes.page_history,sizeof(int) * TV_Nodes.page_history_count);
-               return return_value;
-       }
-       return 0;
+    if (TV_Nodes.page_history_count > 0) {
+       int return_value;
+       return_value =
+           TV_Nodes.page_history[TV_Nodes.page_history_count - 1];
+       TV_Nodes.page_history_count--;
+       TV_Nodes.page_history =
+           realloc(TV_Nodes.page_history,
+                   sizeof(int) * TV_Nodes.page_history_count);
+       return return_value;
+    }
+    return 0;
 }
+#endif
 
-extern int prepare_page_history()
+static int set_data_attributes()
 {
-       GtkLabel* lblTVPage;
-       GtkSpinButton* spn;
-       int i=0;
-       int count=0;
-       tv_node tvn;
-       TV_Nodes.pagecount=0;
-       TV_Nodes.activepage=-1;
-       reset_page_History();
-       push_to_page_history(0);
-       
-       for (i;i < view->Topview->Nodecount ; i++)
-       {
-               tvn.index=i;
-               if(validate_node(&tvn))
-               {
-                       count ++;
-                       view->Topview->Nodes[i].valid=1;
-               }
-               else
-                       view->Topview->Nodes[i].valid=0;
-               if (count== TV_Nodes.recordperpage)
-               {
-                       push_to_page_history(i+1);
-                       TV_Nodes.pagecount++;
-                       count=0;
-               }
-       }
-       spn=(GtkSpinButton*)glade_xml_get_widget(xml, "spnTVGotopage");
-       gtk_spin_button_set_value(spn,0);
-       gtk_spin_button_set_range(spn,0,TV_Nodes.pagecount+1);
-
-
-       lblTVPage=(GtkLabel*)glade_xml_get_widget(xml, "lblTVPage");
-       sprintf(buf,"(%i / %i)", 1,TV_Nodes.pagecount+1);
-       gtk_label_set_text(lblTVPage,buf);
-       set_data_attributes();
-       return 1;
+    GtkLabel *lblData1;
+    GtkLabel *lblData2;
+    char *data_attr1;
+    char *data_attr2;
+    // get attributes from graph
+    data_attr1 = agget(view->g[view->activeGraph], "DataAttribute1");
+    data_attr2 = agget(view->g[view->activeGraph], "DataAttribute2");
+    if (!data_attr1) {
+       agattr(view->g[view->activeGraph], AGRAPH, "DataAttribute1",
+              "DATA1");
+       agattr(view->g[view->activeGraph], AGNODE, "DATA1", "");
+    }
+    if (!data_attr2) {
+       agattr(view->g[view->activeGraph], AGRAPH, "DataAttribute2",
+              "DATA2");
+       agattr(view->g[view->activeGraph], AGNODE, "DATA2", "");
+    }
+
+    data_attr1 = agget(view->g[view->activeGraph], "DataAttribute1");
+    data_attr2 = agget(view->g[view->activeGraph], "DataAttribute2");
+
+    lblData1 = (GtkLabel *) glade_xml_get_widget(xml, "lblTVData1");
+    lblData2 = (GtkLabel *) glade_xml_get_widget(xml, "lblTVData2");
+    if (!strcmp(data_attr1, "\\N"))
+       data_attr1 = "Name";
+    gtk_label_set_text(lblData1, data_attr1);
+    gtk_label_set_text(lblData2, data_attr2);
+    return 1;
 
 }
-static int set_data_attributes()
+
+int prepare_page_history()
 {
-       GtkLabel* lblData1;
-       GtkLabel* lblData2;
-       char* data_attr1;
-       char* data_attr2;
-       // get attributes from graph
-       data_attr1=agget(view->g[view->activeGraph],"DataAttribute1");
-       data_attr2=agget(view->g[view->activeGraph],"DataAttribute2");
-       if (!data_attr1)
-       {
-               agattr(view->g[view->activeGraph],AGRAPH,"DataAttribute1","DATA1");
-               agattr(view->g[view->activeGraph],AGNODE,"DATA1","");
-       }
-       if (!data_attr2)
-       {
-               agattr(view->g[view->activeGraph],AGRAPH,"DataAttribute2","DATA2");
-               agattr(view->g[view->activeGraph],AGNODE,"DATA2","");
+    GtkLabel *lblTVPage;
+    GtkSpinButton *spn;
+    int i = 0;
+    int count = 0;
+    tv_node tvn;
+    TV_Nodes.pagecount = 0;
+    TV_Nodes.activepage = -1;
+    reset_page_History();
+    push_to_page_history(0);
+
+    for (i; i < view->Topview->Nodecount; i++) {
+       tvn.index = i;
+       if (validate_node(&tvn)) {
+           count++;
+           view->Topview->Nodes[i].valid = 1;
+       } else
+           view->Topview->Nodes[i].valid = 0;
+       if (count == TV_Nodes.recordperpage) {
+           push_to_page_history(i + 1);
+           TV_Nodes.pagecount++;
+           count = 0;
        }
+    }
+    spn = (GtkSpinButton *) glade_xml_get_widget(xml, "spnTVGotopage");
+    gtk_spin_button_set_value(spn, 0);
+    gtk_spin_button_set_range(spn, 0, TV_Nodes.pagecount + 1);
 
-       data_attr1=agget(view->g[view->activeGraph],"DataAttribute1");
-       data_attr2=agget(view->g[view->activeGraph],"DataAttribute2");
 
-       lblData1=(GtkLabel*)glade_xml_get_widget(xml, "lblTVData1");
-       lblData2=(GtkLabel*)glade_xml_get_widget(xml, "lblTVData2");
-       gtk_label_set_text (lblData1,data_attr1);
-       gtk_label_set_text (lblData2,data_attr2);
-       return 1;
+    lblTVPage = (GtkLabel *) glade_xml_get_widget(xml, "lblTVPage");
+    sprintf(buf, "(%i / %i)", 1, TV_Nodes.pagecount + 1);
+    gtk_label_set_text(lblTVPage, buf);
+    set_data_attributes();
+    return 1;
 
 }
 
-extern int update_TV_data_from_gui()
+int update_TV_data_from_gui()
 {
-       int i=0;
-       int index=0;
-       char* data_attr1;
-       char* data_attr2;
-       // get attributes from graph
-       data_attr1=agget(view->g[view->activeGraph],"DataAttribute1");
-       data_attr2=agget(view->g[view->activeGraph],"DataAttribute2");
-
-       for (i;i < TV_Nodes.recordperpage ; i++)
-       {
-               index=TV_Nodes.TV_Node[i].index;
-               if (index < view->Topview->Nodecount)
-               {
-                       // apply if selected
-                       if(gtk_toggle_button_get_active((GtkToggleButton*)TV_Nodes.TV_Node[i].chkSelected))
-                       {
-                               if (!((custom_object_data*)AGDATA(view->Topview->Nodes[index].Node))->Selected)
-                                       select_node(view->g[view->activeGraph],view->Topview->Nodes[index].Node);                                       
-                       }
-                       else
-                       {
-                               if (((custom_object_data*)AGDATA(view->Topview->Nodes[index].Node))->Selected)
-                                       deselect_node(view->g[view->activeGraph],view->Topview->Nodes[index].Node);                                     
-                       }
-                       // apply if Visible
-                       if(gtk_toggle_button_get_active((GtkToggleButton*)TV_Nodes.TV_Node[i].chkVisible))
-                       {
-                               if (!((custom_object_data*)AGDATA(view->Topview->Nodes[index].Node))->Visible)
-                                       ((custom_object_data*)AGDATA(view->Topview->Nodes[index].Node))->Visible=1;
-                       }
-                       else
-                       {
-                               if (((custom_object_data*)AGDATA(view->Topview->Nodes[index].Node))->Visible)
-                                       ((custom_object_data*)AGDATA(view->Topview->Nodes[index].Node))->Visible=0;
-                       }
-                       // apply if Highlighted
-                       if(gtk_toggle_button_get_active((GtkToggleButton*)TV_Nodes.TV_Node[i].chkHighlighted))
-                       {
-                               if (!((custom_object_data*)AGDATA(view->Topview->Nodes[index].Node))->Highlighted)
-                                       ((custom_object_data*)AGDATA(view->Topview->Nodes[index].Node))->Highlighted=1;
-                       }
-                       else
-                       {
-                               if (((custom_object_data*)AGDATA(view->Topview->Nodes[index].Node))->Highlighted)
-                                       ((custom_object_data*)AGDATA(view->Topview->Nodes[index].Node))->Highlighted=0;
-                       }
-                       //Data1 
-                       agset((void*)view->Topview->Nodes[index].Node,data_attr1,(char*)gtk_entry_get_text (TV_Nodes.TV_Node[i].Data1));
-                       //Data2 
-                       agset(view->Topview->Nodes[index].Node,data_attr2,(char*)gtk_entry_get_text (TV_Nodes.TV_Node[i].Data2));
-
-               }
+    int i = 0;
+    int index = 0;
+    char *data_attr1;
+    char *data_attr2;
+    // get attributes from graph
+    data_attr1 = agget(view->g[view->activeGraph], "DataAttribute1");
+    data_attr2 = agget(view->g[view->activeGraph], "DataAttribute2");
+
+    for (i; i < TV_Nodes.recordperpage; i++) {
+       index = TV_Nodes.TV_Node[i].index;
+       if (index < view->Topview->Nodecount) {
+           // apply if selected
+           if (gtk_toggle_button_get_active
+               ((GtkToggleButton *) TV_Nodes.TV_Node[i].chkSelected)) {
+               if (!
+                   ((custom_object_data *)
+                    AGDATA(view->Topview->Nodes[index].Node))->Selected)
+                   select_node(view->g[view->activeGraph],
+                               view->Topview->Nodes[index].Node);
+           } else {
+               if (((custom_object_data *)
+                    AGDATA(view->Topview->Nodes[index].Node))->Selected)
+                   deselect_node(view->g[view->activeGraph],
+                                 view->Topview->Nodes[index].Node);
+           }
+           // apply if Visible
+           if (gtk_toggle_button_get_active
+               ((GtkToggleButton *) TV_Nodes.TV_Node[i].chkVisible)) {
+               if (!
+                   ((custom_object_data *)
+                    AGDATA(view->Topview->Nodes[index].Node))->Visible)
+                   ((custom_object_data *)
+                    AGDATA(view->Topview->Nodes[index].Node))->Visible =
+ 1;
+           } else {
+               if (((custom_object_data *)
+                    AGDATA(view->Topview->Nodes[index].Node))->Visible)
+                   ((custom_object_data *)
+                    AGDATA(view->Topview->Nodes[index].Node))->Visible =
+ 0;
+           }
+           // apply if Highlighted
+           if (gtk_toggle_button_get_active
+               ((GtkToggleButton *) TV_Nodes.TV_Node[i].chkHighlighted)) {
+               if (!
+                   ((custom_object_data *)
+                    AGDATA(view->Topview->Nodes[index].Node))->
+                   Highlighted)
+                   ((custom_object_data *)
+                    AGDATA(view->Topview->Nodes[index].Node))->
+ Highlighted = 1;
+           } else {
+               if (((custom_object_data *)
+                    AGDATA(view->Topview->Nodes[index].Node))->
+                   Highlighted)
+                   ((custom_object_data *)
+                    AGDATA(view->Topview->Nodes[index].Node))->
+ Highlighted = 0;
+           }
+           //Data1 
+           agset((void *) view->Topview->Nodes[index].Node, data_attr1,
+                 (char *) gtk_entry_get_text(TV_Nodes.TV_Node[i].Data1));
+           //Data2 
+           agset(view->Topview->Nodes[index].Node, data_attr2,
+                 (char *) gtk_entry_get_text(TV_Nodes.TV_Node[i].Data2));
+
        }
-               return 1;
+    }
+    return 1;
 
 
 }
 
-extern int apply_filter_from_gui()
+int apply_filter_from_gui()
 {
-       int selected;
-       int visible;
-       int highlighted;
-
-       if(gtk_toggle_button_get_active((GtkToggleButton*)glade_xml_get_widget(xml,"rbTVFilterSel1")))  
-                       selected=-1;
-               if(gtk_toggle_button_get_active((GtkToggleButton*)glade_xml_get_widget(xml,"rbTVFilterSel2")))  
-                       selected=1;
-               if(gtk_toggle_button_get_active((GtkToggleButton*)glade_xml_get_widget(xml,"rbTVFilterSel3")))  
-                       selected=0;
-
-               if(gtk_toggle_button_get_active((GtkToggleButton*)glade_xml_get_widget(xml,"rbTVFilterVisible1")))      
-                       visible=-1;
-               if(gtk_toggle_button_get_active((GtkToggleButton*)glade_xml_get_widget(xml,"rbTVFilterVisible2")))      
-                       visible=1;
-               if(gtk_toggle_button_get_active((GtkToggleButton*)glade_xml_get_widget(xml,"rbTVFilterVisible3")))      
-                       visible=0;
-
-               if(gtk_toggle_button_get_active((GtkToggleButton*)glade_xml_get_widget(xml,"rbTVFilterHigh1"))) 
-                       highlighted=-1;
-               if(gtk_toggle_button_get_active((GtkToggleButton*)glade_xml_get_widget(xml,"rbTVFilterHigh2"))) 
-                       highlighted=1;
-               if(gtk_toggle_button_get_active((GtkToggleButton*)glade_xml_get_widget(xml,"rbTVFilterHigh3"))) 
-                       highlighted=0;
-               set_filter(&TV_Nodes.filter,
-               (char*)gtk_entry_get_text ((GtkEntry*)glade_xml_get_widget(xml,"edtTVFilterMinData1") ),
-               (char*)gtk_entry_get_text ((GtkEntry*)glade_xml_get_widget(xml,"edtTVFilterMaxData1") ),
-               (char*)gtk_entry_get_text ((GtkEntry*)glade_xml_get_widget(xml,"edtTVFilterMinData2") ),
-               (char*)gtk_entry_get_text ((GtkEntry*)glade_xml_get_widget(xml,"edtTVFilterMaxData2") ),
-               (char*)gtk_entry_get_text ((GtkEntry*)glade_xml_get_widget(xml,"edtTVFilterString") ),
-                       selected,visible,highlighted);
-               MP_Flag=1;
-               prepare_page_history();
-               tv_nodes_next_page();
-               return 1;
+    int selected;
+    int visible;
+    int highlighted;
+
+    if (gtk_toggle_button_get_active
+       ((GtkToggleButton *) glade_xml_get_widget(xml, "rbTVFilterSel1")))
+       selected = -1;
+    if (gtk_toggle_button_get_active
+       ((GtkToggleButton *) glade_xml_get_widget(xml, "rbTVFilterSel2")))
+       selected = 1;
+    if (gtk_toggle_button_get_active
+       ((GtkToggleButton *) glade_xml_get_widget(xml, "rbTVFilterSel3")))
+       selected = 0;
+
+    if (gtk_toggle_button_get_active
+       ((GtkToggleButton *)
+        glade_xml_get_widget(xml, "rbTVFilterVisible1")))
+       visible = -1;
+    if (gtk_toggle_button_get_active
+       ((GtkToggleButton *)
+        glade_xml_get_widget(xml, "rbTVFilterVisible2")))
+       visible = 1;
+    if (gtk_toggle_button_get_active
+       ((GtkToggleButton *)
+        glade_xml_get_widget(xml, "rbTVFilterVisible3")))
+       visible = 0;
+
+    if (gtk_toggle_button_get_active
+       ((GtkToggleButton *) glade_xml_get_widget(xml, "rbTVFilterHigh1")))
+       highlighted = -1;
+    if (gtk_toggle_button_get_active
+       ((GtkToggleButton *) glade_xml_get_widget(xml, "rbTVFilterHigh2")))
+       highlighted = 1;
+    if (gtk_toggle_button_get_active
+       ((GtkToggleButton *) glade_xml_get_widget(xml, "rbTVFilterHigh3")))
+       highlighted = 0;
+    set_filter(&TV_Nodes.filter,
+              (char *) gtk_entry_get_text((GtkEntry *)
+                                          glade_xml_get_widget(xml,
+                                                               "edtTVFilterMinData1")),
+              (char *) gtk_entry_get_text((GtkEntry *)
+                                          glade_xml_get_widget(xml,
+                                                               "edtTVFilterMaxData1")),
+              (char *) gtk_entry_get_text((GtkEntry *)
+                                          glade_xml_get_widget(xml,
+                                                               "edtTVFilterMinData2")),
+              (char *) gtk_entry_get_text((GtkEntry *)
+                                          glade_xml_get_widget(xml,
+                                                               "edtTVFilterMaxData2")),
+              (char *) gtk_entry_get_text((GtkEntry *)
+                                          glade_xml_get_widget(xml,
+                                                               "edtTVFilterString")),
+              selected, visible, highlighted);
+    MP_Flag = 1;
+    prepare_page_history();
+    tv_nodes_next_page();
+    return 1;
 }
 
 
-extern int tv_select_all()
+int tv_select_all()
 {
 
-       tv_node tvn;
-       int i=0;
-       for (i;i < view->Topview->Nodecount ; i++)
-       {
-               tvn.index=i;
-               if(validate_node(&tvn))
-               {
-                       select_node(view->g[view->activeGraph],view->Topview->Nodes[i].Node);
-               }
+    tv_node tvn;
+    int i = 0;
+    for (i; i < view->Topview->Nodecount; i++) {
+       tvn.index = i;
+       if (validate_node(&tvn)) {
+           select_node(view->g[view->activeGraph],
+                       view->Topview->Nodes[i].Node);
        }
-       apply_filter_from_gui();
-       return 1;
+    }
+    apply_filter_from_gui();
+    return 1;
 
 }
-extern int tv_unselect_all()
+
+int tv_unselect_all()
 {
 
-       tv_node tvn;
-       int i=0;
-       for (i;i < view->Topview->Nodecount ; i++)
-       {
-               tvn.index=i;
-               if(validate_node(&tvn))
-               {
-                       deselect_node(view->g[view->activeGraph],view->Topview->Nodes[i].Node);
-               }
+    tv_node tvn;
+    int i = 0;
+    for (i; i < view->Topview->Nodecount; i++) {
+       tvn.index = i;
+       if (validate_node(&tvn)) {
+           deselect_node(view->g[view->activeGraph],
+                         view->Topview->Nodes[i].Node);
        }
-       apply_filter_from_gui();
-       return 1;
+    }
+    apply_filter_from_gui();
+    return 1;
 
 }
-extern int tv_highligh_all()
+
+int tv_highligh_all()
 {
-       tv_node tvn;
-       int i=0;
-       for (i;i < view->Topview->Nodecount ; i++)
-       {
-               tvn.index=i;
-               if(validate_node(&tvn))
-               {
-                       ((custom_object_data*)AGDATA(view->Topview->Nodes[i].Node))->Highlighted=1;
-               }
+    tv_node tvn;
+    int i = 0;
+    for (i; i < view->Topview->Nodecount; i++) {
+       tvn.index = i;
+       if (validate_node(&tvn)) {
+           ((custom_object_data *) AGDATA(view->Topview->Nodes[i].Node))->
+               Highlighted = 1;
        }
-       apply_filter_from_gui();
-       return 1;
+    }
+    apply_filter_from_gui();
+    return 1;
 
 
 }
-extern int tv_unhighligh_all()
+
+int tv_unhighligh_all()
 {
-       tv_node tvn;
-       int i=0;
-       for (i;i < view->Topview->Nodecount ; i++)
-       {
-               tvn.index=i;
-               if(validate_node(&tvn))
-               {
-                       ((custom_object_data*)AGDATA(view->Topview->Nodes[i].Node))->Highlighted=0;
-               }
+    tv_node tvn;
+    int i = 0;
+    for (i; i < view->Topview->Nodecount; i++) {
+       tvn.index = i;
+       if (validate_node(&tvn)) {
+           ((custom_object_data *) AGDATA(view->Topview->Nodes[i].Node))->
+               Highlighted = 0;
        }
-       apply_filter_from_gui();
-       return 1;
+    }
+    apply_filter_from_gui();
+    return 1;
 
 }
-extern int tv_show_all()
+
+int tv_show_all()
 {
-       tv_node tvn;
-       int i=0;
-       for (i;i < view->Topview->Nodecount ; i++)
-       {
-               tvn.index=i;
-               if(validate_node(&tvn))
-               {
-                       ((custom_object_data*)AGDATA(view->Topview->Nodes[i].Node))->Visible=1;
-               }
+    tv_node tvn;
+    int i = 0;
+    for (i; i < view->Topview->Nodecount; i++) {
+       tvn.index = i;
+       if (validate_node(&tvn)) {
+           ((custom_object_data *) AGDATA(view->Topview->Nodes[i].Node))->
+               Visible = 1;
        }
-       apply_filter_from_gui();
-       return 1;
+    }
+    apply_filter_from_gui();
+    return 1;
 
 
 
 }
-extern int tv_hide_all()
+
+int tv_hide_all()
 {
-       tv_node tvn;
-       int i=0;
-       for (i;i < view->Topview->Nodecount ; i++)
-       {
-               tvn.index=i;
-               if(validate_node(&tvn))
-               {
-                       ((custom_object_data*)AGDATA(view->Topview->Nodes[i].Node))->Visible=0;
-               }
+    tv_node tvn;
+    int i = 0;
+    for (i; i < view->Topview->Nodecount; i++) {
+       tvn.index = i;
+       if (validate_node(&tvn)) {
+           ((custom_object_data *) AGDATA(view->Topview->Nodes[i].Node))->
+               Visible = 0;
        }
-       apply_filter_from_gui();
-       return 1;
+    }
+    apply_filter_from_gui();
+    return 1;
 
 
 }
-
-
-
-
-
-
index 20f5a051415f85fba34c64868c5123e0479c9deb..8ec7e352441105ed0c12796c0f5b381c68196256 100755 (executable)
 #define LOCATION_X_DATA1 276
 #define LOCATION_X_DATA2 600
 
-typedef struct token_info
-{
-        int op_index;   // has to 
-        int op1_length;
-        int op2_length;
-
-}token_info;
-
-typedef struct btree_node
-{
-        int child_count;
-        struct btree_node** childs;
-        struct btree_node* parent;
-        int rank;       //0 root
-        char op;// & | + - whatever
-        int node_type;  //0 and 1 or 2 atom
-        char* attr_name;
-        char* regex;
-        float min;
-        float max;
-        int value; //filter result true false, 0 , 1
-        int active;
-}btree_node;
-
-typedef struct _tv_filter
-{
-       btree_node* root;
-       char * min_data1;
-       char * min_data2;
-       char * max_data1;
-       char * max_data2;
-       char* filter_string;
-       int active;
-       int visible;    //-1 all 0 not not visible 1 only visibles
-       int highlighted;        //same above
-       int selected;   //same above
-}tv_filter;
-
-typedef struct _tv_node
-{
-       int index;
-       GtkCheckButton* chkSelected;
-       GtkCheckButton* chkVisible;
-       GtkCheckButton* chkHighlighted;
-       GtkLabel* IDLabel;
-       GtkEntry* Data1;
-       GtkEntry* Data2;
-       int valid;
-}tv_node;
-
-
-typedef struct _tv_nodes
-{
-       int pagecount;
-       int activepage;
-       int firstnodeid;
-       int* page_history;
-       int page_history_count;
-       int recordperpage;      //dynamic so that can be changed by plugins etc 
-       int filtered ;
-       int page_data_index;
-       int page_data_node_index;
-       tv_node TV_Node[MAX_NODE_PER_PAGE];
-       tv_filter filter;
-       int Y;
-       int Y_Gap;
-       int initial_Y;
-       int chkSelected_X;
-       int IDLabel_X;
-       int chkVisible_X;
-       int chkHighlighted_X;
-       int Data1_X;
-       int Data2_X;
-       int initialized;
-       int general_purpose_flag;               //dont forget to to set it back
-}tv_nodes;
+typedef struct token_info {
+    int op_index;              // has to 
+    int op1_length;
+    int op2_length;
+
+} token_info;
+
+typedef struct btree_node {
+    int child_count;
+    struct btree_node **childs;
+    struct btree_node *parent;
+    int rank;                  //0 root
+    char op;                   // & | + - whatever
+    int node_type;             //0 and 1 or 2 atom
+    char *attr_name;
+    char *regex;
+    float min;
+    float max;
+    int value;                 //filter result true false, 0 , 1
+    int active;
+} btree_node;
+
+typedef struct _tv_filter {
+    btree_node *root;
+    char *min_data1;
+    char *min_data2;
+    char *max_data1;
+    char *max_data2;
+    char *filter_string;
+    int active;
+    int visible;               //-1 all 0 not not visible 1 only visibles
+    int highlighted;           //same above
+    int selected;              //same above
+} tv_filter;
+
+typedef struct _tv_node {
+    int index;
+    GtkCheckButton *chkSelected;
+    GtkCheckButton *chkVisible;
+    GtkCheckButton *chkHighlighted;
+    GtkLabel *IDLabel;
+    GtkEntry *Data1;
+    GtkEntry *Data2;
+    int valid;
+} tv_node;
+
+
+typedef struct _tv_nodes {
+    int pagecount;
+    int activepage;
+    int firstnodeid;
+    int *page_history;
+    int page_history_count;
+    int recordperpage;         //dynamic so that can be changed by plugins etc 
+    int filtered;
+    int page_data_index;
+    int page_data_node_index;
+    tv_node TV_Node[MAX_NODE_PER_PAGE];
+    tv_filter filter;
+    int Y;
+    int Y_Gap;
+    int initial_Y;
+    int chkSelected_X;
+    int IDLabel_X;
+    int chkVisible_X;
+    int chkHighlighted_X;
+    int Data1_X;
+    int Data2_X;
+    int initialized;
+    int general_purpose_flag;  //dont forget to to set it back
+} tv_nodes;
 extern tv_nodes TV_Nodes;
 
 
 
 extern void execute_tv_nodes();
-static void init_tv_nodes(tv_nodes* TV_Nodes);
-static tv_filter* create_tv_filter();
-static void clear_tv_filter(tv_filter* TV_Filter);
-extern int set_filter(tv_filter* TV_Filter,char* MinData1,char* MaxData1,char* MinData2,char* MaxData2,char* Filter_String,int selected,int visible,int highlighted);
-static int reverse_selection();
-static int validate_node(tv_node* TV_Node);
-static int update_node_gui_objects(tv_node* TV_Node);
+extern int set_filter(tv_filter * TV_Filter, char *MinData1,
+                     char *MaxData1, char *MinData2, char *MaxData2,
+                     char *Filter_String, int selected, int visible,
+                     int highlighted);
 extern int tv_nodes_goto_page(int page);
 extern int tv_nodes_next_page();
 extern int tv_nodes_prior_page();
-extern int     tv_nodes_last_page();
-extern int     tv_nodes_first_page();
+extern int tv_nodes_last_page();
+extern int tv_nodes_first_page();
 
-static int hide_data_widgets();
 extern int reset_page_History();
-static int push_to_page_history(int index);
-static int pop_from_page_history();
 extern int prepare_page_history();
 extern int update_TV_data_from_gui();
-static int set_data_attributes();
 extern int apply_filter_from_gui();
 extern int tv_select_all();
 extern int tv_unselect_all();
@@ -137,5 +125,3 @@ extern int tv_hide_all();
 
 
 #endif
-
-
index 24279377e24b2e27db915cf8e8d663ca33ecd21d..3d0c317700766493747876a872f532e90d625621 100755 (executable)
 
 #define countof( array ) ( sizeof( array )/sizeof( array[0] ) )
 
-ViewInfo*      view;
+ViewInfo *view;
 /*these two global variables should be wrapped in somethign else*/
-GtkMessageDialog*  Dlg;
+GtkMessageDialog *Dlg;
 int respond;
 
-void clear_viewport(ViewInfo* view)
+void clear_viewport(ViewInfo * view)
 {
-       int ind=0;
-       /*free topview if there is one*/
-       if(view->graphCount)
-       {
-               cleartopview(view->Topview);
-               /*all cgraph graphs should be freed*/
-               for (ind=0;ind < view->graphCount;ind ++)
-               {
-                       agclose(view->g[ind]);
-               }
-               /*frees itself*/
-               free(view);
+    int ind = 0;
+    /*free topview if there is one */
+    if (view->graphCount) {
+       cleartopview(view->Topview);
+       /*all cgraph graphs should be freed */
+       for (ind = 0; ind < view->graphCount; ind++) {
+           agclose(view->g[ind]);
        }
+       /*frees itself */
+       free(view);
+    }
 }
-void init_viewport(ViewInfo* view)
+void init_viewport(ViewInfo * view)
 {
 
-       //init graphs
-       view->g=NULL;           //no graph, gl screen should check it
-       view->graphCount=0;     //and disable interactivity if count is zero
-
-
-       view->bdxLeft=0;
-       view->bdxRight=500;
-       view->bdyBottom=0;
-       view->bdyTop=500;
-       view->bdzBottom=0;
-       view->bdzTop=0;
-
-       view->borderColor.R=1;
-       view->borderColor.G=0;
-       view->borderColor.B=0;
-       view->borderColor.A=1;
-
-       view->bdVisible=1;              //show borders red
-       
-       view->gridSize=10;
-       view->gridColor.R=0.5;
-       view->gridColor.G=0.5;
-       view->gridColor.B=0.5;
-       view->gridColor.A=1;
-       view->gridVisible=0;    //show grids in light gray
-
-       //mouse mode=pan
-       view->mouse.mouse_mode=0;
-       //pen color
-       view->penColor.R=0;
-       view->penColor.G=0;
-       view->penColor.B=0;
-       view->penColor.A=1;
-
-       view->fillColor.R=1;
-       view->fillColor.G=0;
-       view->fillColor.B=0;
-       view->fillColor.A=1;
-       //background color , default white
-       view->bgColor.R=1;
-       view->bgColor.G=1;
-       view->bgColor.B=1;
-       view->bgColor.A=1;
-
-       //selected objets are drawn with this color
-       view->selectedNodeColor.R=1;
-       view->selectedNodeColor.G=0;
-       view->selectedNodeColor.B=0;
-       view->selectedNodeColor.A=1;
-
-       //default line width;
-       view->LineWidth=1;
-
-       //default view settings , camera is not active
-       view->GLDepth=1;        //should be set before GetFixedOGLPos(int x, int y,float kts) funtion is used!!!!
-       view->panx=0;
-       view->pany=0;
-       view->panz=0;
-
-       view->prevpanx=0;
-       view->prevpany=0;
-
-
-       view->zoom=-20;
-       view->texture=1;
-       view->FontSize=52;
-
-       view->topviewusermode =TOP_VIEW_USER_NOVICE_MODE;       //for demo
-       view->mg.active=0;
-       view->mg.x=0;
-       view->mg.y=0;
-       view->mg.width=DEFAULT_MAGNIFIER_WIDTH;
-       view->mg.height=DEFAULT_MAGNIFIER_HEIGHT;
-       view->mg.kts=DEFAULT_MAGNIFIER_KTS;
-       view->fmg.R=DEFAULT_FISHEYE_MAGNIFIER_RADIUS;
-       view->fmg.active=0;
-       view->mouse.mouse_down=0;
-       view->activeGraph=-1;
-       view->SignalBlock=0;
-       view->Selection.Active=0;
-       view->Selection.SelectionColor.R=0.5;
-       view->Selection.SelectionColor.G=(float)0.2;
-       view->Selection.SelectionColor.B=1;
-       view->Selection.SelectionColor.A=1;
-       view->Selection.Anti=0;
-       view->Topview=malloc(sizeof(topview));
-       view->Topview->topviewmenu='\0';
+    //init graphs
+    view->g = NULL;            //no graph, gl screen should check it
+    view->graphCount = 0;      //and disable interactivity if count is zero
+
+
+    view->bdxLeft = 0;
+    view->bdxRight = 500;
+    view->bdyBottom = 0;
+    view->bdyTop = 500;
+    view->bdzBottom = 0;
+    view->bdzTop = 0;
+
+    view->borderColor.R = 1;
+    view->borderColor.G = 0;
+    view->borderColor.B = 0;
+    view->borderColor.A = 1;
+
+    view->bdVisible = 1;       //show borders red
+
+    view->gridSize = 10;
+    view->gridColor.R = 0.5;
+    view->gridColor.G = 0.5;
+    view->gridColor.B = 0.5;
+    view->gridColor.A = 1;
+    view->gridVisible = 0;     //show grids in light gray
+
+    //mouse mode=pan
+    view->mouse.mouse_mode = 0;
+    //pen color
+    view->penColor.R = 0;
+    view->penColor.G = 0;
+    view->penColor.B = 0;
+    view->penColor.A = 1;
+
+    view->fillColor.R = 1;
+    view->fillColor.G = 0;
+    view->fillColor.B = 0;
+    view->fillColor.A = 1;
+    //background color , default white
+    view->bgColor.R = 1;
+    view->bgColor.G = 1;
+    view->bgColor.B = 1;
+    view->bgColor.A = 1;
+
+    //selected objets are drawn with this color
+    view->selectedNodeColor.R = 1;
+    view->selectedNodeColor.G = 0;
+    view->selectedNodeColor.B = 0;
+    view->selectedNodeColor.A = 1;
+
+    //default line width;
+    view->LineWidth = 1;
+
+    //default view settings , camera is not active
+    view->GLDepth = 1;         //should be set before GetFixedOGLPos(int x, int y,float kts) funtion is used!!!!
+    view->panx = 0;
+    view->pany = 0;
+    view->panz = 0;
+
+    view->prevpanx = 0;
+    view->prevpany = 0;
+
+
+    view->zoom = -20;
+    view->texture = 1;
+    view->FontSize = 52;
+
+    view->topviewusermode = TOP_VIEW_USER_NOVICE_MODE; //for demo
+    view->mg.active = 0;
+    view->mg.x = 0;
+    view->mg.y = 0;
+    view->mg.width = DEFAULT_MAGNIFIER_WIDTH;
+    view->mg.height = DEFAULT_MAGNIFIER_HEIGHT;
+    view->mg.kts = DEFAULT_MAGNIFIER_KTS;
+    view->fmg.R = DEFAULT_FISHEYE_MAGNIFIER_RADIUS;
+    view->fmg.active = 0;
+    view->mouse.mouse_down = 0;
+    view->activeGraph = -1;
+    view->SignalBlock = 0;
+    view->Selection.Active = 0;
+    view->Selection.SelectionColor.R = 0.5;
+    view->Selection.SelectionColor.G = (float) 0.2;
+    view->Selection.SelectionColor.B = 1;
+    view->Selection.SelectionColor.A = 1;
+    view->Selection.Anti = 0;
+    view->Topview = malloc(sizeof(topview));
+    view->Topview->topviewmenu = '\0';
 }
 
-int add_graph_to_viewport_from_file (char* fileName)
+int add_graph_to_viewport_from_file(char *fileName)
 {
-       //returns 1 if successfull else 0
-       Agraph_t* graph;
-       graph=loadGraph(fileName);
-       if(graph)
-       {
-               view->graphCount = view->graphCount + 1; 
-               view->g= (Agraph_t**)realloc(view->g,sizeof(Agraph_t*)*view->graphCount);
-               view->g[view->graphCount-1]=graph;
-               view->activeGraph=view->graphCount-1;
-               //GUI update , graph combo box on top-right should be updated
-               refreshControls(view);
-               return 1;
-       }
-       else
-               return 0;
-       
+    //returns 1 if successfull else 0
+    Agraph_t *graph;
+    graph = loadGraph(fileName);
+    if (graph) {
+       view->graphCount = view->graphCount + 1;
+       view->g =
+           (Agraph_t **) realloc(view->g,
+                                 sizeof(Agraph_t *) * view->graphCount);
+       view->g[view->graphCount - 1] = graph;
+       view->activeGraph = view->graphCount - 1;
+       //GUI update , graph combo box on top-right should be updated
+       refreshControls(view);
+       return 1;
+    } else
+       return 0;
+
 }
 
 int add_new_graph_to_viewport()
 {
-       //returns graph index , otherwise -1
-       Agraph_t* graph;
-       graph=(Agraph_t*) malloc(sizeof(Agraph_t));
-       if(graph)
-       {
-               view->graphCount = view->graphCount + 1; 
-               view->g[view->graphCount-1]=graph;
-               return (view->graphCount-1);
-       }
-       else
-               return -1;
+    //returns graph index , otherwise -1
+    Agraph_t *graph;
+    graph = (Agraph_t *) malloc(sizeof(Agraph_t));
+    if (graph) {
+       view->graphCount = view->graphCount + 1;
+       view->g[view->graphCount - 1] = graph;
+       return (view->graphCount - 1);
+    } else
+       return -1;
 }
 
 
-void refreshControls(ViewInfo* v)
+void refreshControls(ViewInfo * v)
 {
 
-       int i=0;
-       GtkComboBox* widget;
-       widget=get_SelectGraph();
-       //load graph names to combobox
-       for (i=0; i < v->graphCount; i ++)
-       {
-               gtk_combo_box_append_text(widget,((custom_graph_data*)(AGDATA(v->g[i])))->GraphFileName);
-       }
-       view->SignalBlock=1;    //HACK
-       gtk_combo_box_set_active (widget,view->activeGraph);
-       view->SignalBlock=0;
+    int i = 0;
+    GtkComboBox *widget;
+    widget = get_SelectGraph();
+    //load graph names to combobox
+    for (i = 0; i < v->graphCount; i++) {
+       gtk_combo_box_append_text(widget,
+                                 ((custom_graph_data
+                                   *) (AGDATA(v->g[i])))->GraphFileName);
+    }
+    view->SignalBlock = 1;     //HACK
+    gtk_combo_box_set_active(widget, view->activeGraph);
+    view->SignalBlock = 0;
 
 
-       //change button colors
-       Color_Widget_bg ("gray",glade_xml_get_widget(xml, "btnDot"));   
-       Color_Widget_bg ("gray",glade_xml_get_widget(xml, "btnNeato")); 
-       Color_Widget_bg ("gray",glade_xml_get_widget(xml, "btnTwopi")); 
-       Color_Widget_bg ("gray",glade_xml_get_widget(xml, "btnCirco")); 
-       Color_Widget_bg ("gray",glade_xml_get_widget(xml, "btnFdp"));   
+    //change button colors
+    Color_Widget_bg("gray", glade_xml_get_widget(xml, "btnDot"));
+    Color_Widget_bg("gray", glade_xml_get_widget(xml, "btnNeato"));
+    Color_Widget_bg("gray", glade_xml_get_widget(xml, "btnTwopi"));
+    Color_Widget_bg("gray", glade_xml_get_widget(xml, "btnCirco"));
+    Color_Widget_bg("gray", glade_xml_get_widget(xml, "btnFdp"));
 
 
-       switch( ((custom_graph_data*)(AGDATA(view->g[view->activeGraph])))->Engine )
-       {
-               case 0: 
-                       Color_Widget_bg ("red",glade_xml_get_widget(xml, "btnDot"));    
-                       break;
+    switch (((custom_graph_data *) (AGDATA(view->g[view->activeGraph])))->
+           Engine) {
+    case 0:
+       Color_Widget_bg("red", glade_xml_get_widget(xml, "btnDot"));
+       break;
 
-               case 1: 
-                       Color_Widget_bg ("red",glade_xml_get_widget(xml, "btnNeato"));  
-                       break;
+    case 1:
+       Color_Widget_bg("red", glade_xml_get_widget(xml, "btnNeato"));
+       break;
 
-               case 2: 
-                       Color_Widget_bg ("red",glade_xml_get_widget(xml, "btnTwopi"));  
-                       break;
+    case 2:
+       Color_Widget_bg("red", glade_xml_get_widget(xml, "btnTwopi"));
+       break;
 
-               case 3: 
-                       Color_Widget_bg ("red",glade_xml_get_widget(xml, "btnCirco"));  
-                       break;
+    case 3:
+       Color_Widget_bg("red", glade_xml_get_widget(xml, "btnCirco"));
+       break;
 
-               case 4: 
-                       Color_Widget_bg ("red",glade_xml_get_widget(xml, "btnFdp"));    
-                       break;
+    case 4:
+       Color_Widget_bg("red", glade_xml_get_widget(xml, "btnFdp"));
+       break;
 
 
-       }
-       glexpose();
+    }
+    glexpose();
+
 
-               
 
 
 
 }
 
 
-void update_graph_params(Agraph_t* graph)      //adds gledit params 
+void update_graph_params(Agraph_t * graph)     //adds gledit params 
 {
 
 
-       char tempString[100];
-       agattr(graph,AGRAPH,"GraphFileName",((custom_graph_data*)(AGDATA(graph)))->GraphFileName);
-       agattr(graph,AGRAPH,"GraphName",((custom_graph_data*)(AGDATA(graph)))->GraphName);
-       sprintf( tempString, "%i", ((custom_graph_data*)(AGDATA(graph)))->AlwaysShow );
-       agattr(graph,AGRAPH,"AlwaysShow",tempString);
-       sprintf( tempString, "%i", ((custom_graph_data*)(AGDATA(graph)))->TopView);
-               agattr(graph,AGRAPH,"TopView",tempString);
-       sprintf( tempString, "%i", ((custom_graph_data*)(AGDATA(graph)))->Locked);
-               agattr(graph,AGRAPH,"Locked",tempString);
-       sprintf( tempString, "%i", ((custom_graph_data*)(AGDATA(graph)))->Engine);
-               agattr(graph,AGRAPH,"Engine",tempString);
+    char tempString[100];
+    agattr(graph, AGRAPH, "GraphFileName",
+          ((custom_graph_data *) (AGDATA(graph)))->GraphFileName);
+    agattr(graph, AGRAPH, "GraphName",
+          ((custom_graph_data *) (AGDATA(graph)))->GraphName);
+    sprintf(tempString, "%i",
+           ((custom_graph_data *) (AGDATA(graph)))->AlwaysShow);
+    agattr(graph, AGRAPH, "AlwaysShow", tempString);
+    sprintf(tempString, "%i",
+           ((custom_graph_data *) (AGDATA(graph)))->TopView);
+    agattr(graph, AGRAPH, "TopView", tempString);
+    sprintf(tempString, "%i",
+           ((custom_graph_data *) (AGDATA(graph)))->Locked);
+    agattr(graph, AGRAPH, "Locked", tempString);
+    sprintf(tempString, "%i",
+           ((custom_graph_data *) (AGDATA(graph)))->Engine);
+    agattr(graph, AGRAPH, "Engine", tempString);
 
 }
 
-void load_graph_params(Agraph_t* graph)        //run once right after loading graph
+void load_graph_params(Agraph_t * graph)       //run once right after loading graph
 {
-               //file may or may have not gl edit attributes
-               //first defaults are set in loading function
-               //here file is checked for previously saved gledit attributes
-       if(agget(graph, "GraphName"))           //Graph Name
-       {       
-               ((custom_graph_data*)AGDATA(graph))->GraphName=(char*)malloc((strlen(agget(graph, "GraphName"))+1)*sizeof(char)); 
-                       strcpy(((custom_graph_data*)AGDATA(graph))->GraphName,agget(graph, "GraphName")); 
-       }
-       if(agget(graph, "AlwaysShow"))          //Graph Name
-               ((custom_graph_data*)AGDATA(graph))->AlwaysShow=atoi(agget(graph, "AlwaysShow"));
-       else
-               ((custom_graph_data*)AGDATA(graph))->AlwaysShow=0;
-
-       if(agget(graph, "TopView"))             //Graph Name
-               ((custom_graph_data*)AGDATA(graph))->TopView=atoi(agget(graph, "TopView"));
-       else
-               ((custom_graph_data*)AGDATA(graph))->TopView=0;
-       if(agget(graph, "Locked"))              //Graph Name
-               ((custom_graph_data*)AGDATA(graph))->Locked=atoi(agget(graph, "Locked"));
-       else
-               ((custom_graph_data*)AGDATA(graph))->Locked=0;
-       if(agget(graph, "Engine"))              //Graph Name
-               ((custom_graph_data*)AGDATA(graph))->Engine=atoi(agget(graph, "Engine"));
-       else
-               ((custom_graph_data*)AGDATA(graph))->Engine=0;  //DOT
+    //file may or may have not gl edit attributes
+    //first defaults are set in loading function
+    //here file is checked for previously saved gledit attributes
+    if (agget(graph, "GraphName"))     //Graph Name
+    {
+       ((custom_graph_data *) AGDATA(graph))->GraphName =
+           (char *) malloc((strlen(agget(graph, "GraphName")) + 1) *
+                           sizeof(char));
+       strcpy(((custom_graph_data *) AGDATA(graph))->GraphName,
+              agget(graph, "GraphName"));
+    }
+    if (agget(graph, "AlwaysShow"))    //Graph Name
+       ((custom_graph_data *) AGDATA(graph))->AlwaysShow =
+           atoi(agget(graph, "AlwaysShow"));
+    else
+       ((custom_graph_data *) AGDATA(graph))->AlwaysShow = 0;
+
+    if (agget(graph, "TopView"))       //Graph Name
+       ((custom_graph_data *) AGDATA(graph))->TopView =
+           atoi(agget(graph, "TopView"));
+    else
+       ((custom_graph_data *) AGDATA(graph))->TopView = 0;
+    if (agget(graph, "Locked"))        //Graph Name
+       ((custom_graph_data *) AGDATA(graph))->Locked =
+           atoi(agget(graph, "Locked"));
+    else
+       ((custom_graph_data *) AGDATA(graph))->Locked = 0;
+    if (agget(graph, "Engine"))        //Graph Name
+       ((custom_graph_data *) AGDATA(graph))->Engine =
+           atoi(agget(graph, "Engine"));
+    else
+       ((custom_graph_data *) AGDATA(graph))->Engine = 0;      //DOT
+
+    ((custom_graph_data *) AGDATA(graph))->Modified = 0;       //not modified yet
+    ((custom_graph_data *) AGDATA(graph))->selectedEdges = '\0';
+    ((custom_graph_data *) AGDATA(graph))->selectedNodes = '\0';
+    ((custom_graph_data *) AGDATA(graph))->selectedGraphs = '\0';
+
+    ((custom_graph_data *) AGDATA(graph))->selectedNodesCount = 0;
+    ((custom_graph_data *) AGDATA(graph))->selectedEdgesCount = 0;
+    ((custom_graph_data *) AGDATA(graph))->selectedGraphsCount = 0;
 
-       ((custom_graph_data*)AGDATA(graph))->Modified=0;        //not modified yet
-       ((custom_graph_data*)AGDATA(graph))->selectedEdges='\0';
-       ((custom_graph_data*)AGDATA(graph))->selectedNodes='\0';
-       ((custom_graph_data*)AGDATA(graph))->selectedGraphs='\0';
 
-       ((custom_graph_data*)AGDATA(graph))->selectedNodesCount=0;
-       ((custom_graph_data*)AGDATA(graph))->selectedEdgesCount=0;
-       ((custom_graph_data*)AGDATA(graph))->selectedGraphsCount=0;
 
-       
-       
 /*             if(agget((void*)g, "xdotversion"))      //xdot exists
                        ((custom_graph_data*)AGDATA(g))->view->Topview=0; //need to check xdot version attribute
                else            //we dont know if it is view->Topview or simply a graph with no xdot, for testing i ll use view->Topview
@@ -305,329 +315,340 @@ void load_graph_params(Agraph_t* graph) //run once right after loading graph
 
 }
 
-int save_graph()       //save without prompt
+int save_graph()               //save without prompt
 {
-       //check if there is an active graph
-       if(view->activeGraph > -1)
-       {
-               //check if active graph has a file name
-               if (((custom_graph_data*)AGDATA(view->g[view->activeGraph]))->GraphFileName)
-               {
-                       return save_graph_with_file_name(view->g[view->activeGraph],((custom_graph_data*)AGDATA(view->g[view->activeGraph]))->GraphFileName);
-               }
-               else
-                       return save_as_graph();
-       }
-       return 1;
+    //check if there is an active graph
+    if (view->activeGraph > -1) {
+       //check if active graph has a file name
+       if (((custom_graph_data *) AGDATA(view->g[view->activeGraph]))->
+           GraphFileName) {
+           return save_graph_with_file_name(view->g[view->activeGraph],
+                                            ((custom_graph_data *)
+                                             AGDATA(view->
+                                                    g[view->
+                                                      activeGraph]))->
+                                            GraphFileName);
+       } else
+           return save_as_graph();
+    }
+    return 1;
 
 }
-int save_as_graph() //save with prompt
+
+int save_as_graph()            //save with prompt
 {
-       //check if there is an active graph
-       if(view->activeGraph > -1)
-       {
-               GtkWidget *dialog;
-               dialog = gtk_file_chooser_dialog_new ("Save File",
-                                     NULL,
-                                     GTK_FILE_CHOOSER_ACTION_SAVE,
-                                     GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
-                                     GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT,
-                                     NULL);
-               gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (dialog), TRUE);
-               if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT)
-               {
-                       char *filename;
-                       filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));
-                       save_graph_with_file_name(view->g[view->activeGraph],filename);
-                       g_free (filename);
-                       gtk_widget_destroy (dialog);
-
-                       return 1;
-               }
-               else
-               {
-                       gtk_widget_destroy (dialog);
-                       return 0;
-               }
+    //check if there is an active graph
+    if (view->activeGraph > -1) {
+       GtkWidget *dialog;
+       dialog = gtk_file_chooser_dialog_new("Save File",
+                                            NULL,
+                                            GTK_FILE_CHOOSER_ACTION_SAVE,
+                                            GTK_STOCK_CANCEL,
+                                            GTK_RESPONSE_CANCEL,
+                                            GTK_STOCK_SAVE,
+                                            GTK_RESPONSE_ACCEPT, NULL);
+       gtk_file_chooser_set_do_overwrite_confirmation(GTK_FILE_CHOOSER
+                                                      (dialog), TRUE);
+       if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) {
+           char *filename;
+           filename =
+               gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
+           save_graph_with_file_name(view->g[view->activeGraph],
+                                     filename);
+           g_free(filename);
+           gtk_widget_destroy(dialog);
+
+           return 1;
+       } else {
+           gtk_widget_destroy(dialog);
+           return 0;
        }
-       return 0;
+    }
+    return 0;
 }
-int save_graph_with_file_name(Agraph_t* graph,char* fileName)  //saves graph with file name,if file name is NULL save as is ++
+int save_graph_with_file_name(Agraph_t * graph, char *fileName)        //saves graph with file name,if file name is NULL save as is ++
 {
-       //if file name is NULL save to graph's filename
-       //else use file name, this implements save as..
-       FILE* output_file;
-       update_graph_params(graph);
-       if(fileName)    
-               output_file = fopen(fileName, "w");
-       else
-       {
-               if  ( ((custom_graph_data*)(AGDATA(graph)))->GraphFileName )
-                       output_file = fopen(((custom_graph_data*)(AGDATA(graph)))->GraphFileName, "w");
-               else
-               {
-                       g_print("there is no file name to save! Programmer error\n");
-                       return 0;
-               }
-       }
-       if (output_file  == NULL)
-       {
-               g_print("Cannot create file \n");
-               return 0;
-       }
-       else if (agwrite(graph,(void*) output_file))
-       {
-               g_print("%s sucessfully saved \n", fileName);
-                       return 1;
+    //if file name is NULL save to graph's filename
+    //else use file name, this implements save as..
+    FILE *output_file;
+    update_graph_params(graph);
+    if (fileName)
+       output_file = fopen(fileName, "w");
+    else {
+       if (((custom_graph_data *) (AGDATA(graph)))->GraphFileName)
+           output_file =
+               fopen(((custom_graph_data *) (AGDATA(graph)))->
+                     GraphFileName, "w");
+       else {
+           g_print("there is no file name to save! Programmer error\n");
+           return 0;
        }
+    }
+    if (output_file == NULL) {
+       g_print("Cannot create file \n");
        return 0;
+    } else if (agwrite(graph, (void *) output_file)) {
+       g_print("%s sucessfully saved \n", fileName);
+       return 1;
+    }
+    return 0;
 }
 
-int create_xdot_for_graph(Agraph_t* graph,int keeppos)
+int create_xdot_for_graph(Agraph_t * graph, int keeppos)
 {
-       //0 failed , 1 successfull
-       //save graph to __temp.dot
-       //run dot/neato whatever to create the xdot version __temp.xdot
-       //delete temp files
-       //use this function to do layouts too   
-       int r=0;
-       FILE* output_file;
-       update_graph_params(graph);
+    //0 failed , 1 successfull
+    //save graph to __temp.dot
+    //run dot/neato whatever to create the xdot version __temp.xdot
+    //delete temp files
+    //use this function to do layouts too   
+    int r = 0;
+    FILE *output_file;
+    update_graph_params(graph);
 #ifdef _WIN32
-       if(output_file = fopen("c:/__tempfile.dot", "w"))
+    if (output_file = fopen("c:/__tempfile.dot", "w"))
 #else
-       if(output_file = fopen("/tmp/__tempfile.dot", "w"))
+    if ((output_file = fopen("/tmp/__tempfile.dot", "w")))
 #endif
-       {
-               clear_graph_xdot(graph);
-               agwrite(graph,(void*) output_file);             //save graph
-               fclose(output_file);//close file desc
+    {
+       clear_graph_xdot(graph);
+       agwrite(graph, (void *) output_file);   //save graph
+       fclose(output_file);    //close file desc
 
-               if(keeppos==0)
-               {
+       if (keeppos == 0) {
 #ifdef _WIN32
-                       if ( ((custom_graph_data*)AGDATA(graph))->Engine == 0)
-                               system("\"C:/Program Files/Graphviz2.15/bin/dot.exe\" -Txdot -Kdot c:/__tempfile.dot -oc:/__tempfile.xdot");
-                       if ( ((custom_graph_data*)AGDATA(graph))->Engine == 1)
-                               system("\"C:/Program Files/Graphviz2.15/bin/dot.exe\" -Txdot -Kneato c:/__tempfile.dot -oc:/__tempfile.xdot");
-                       if ( ((custom_graph_data*)AGDATA(graph))->Engine == 2)
-                               system("\"C:/Program Files/Graphviz2.15/bin/dot.exe\" -Txdot -Ktwopi c:/__tempfile.dot -oc:/__tempfile.xdot");
-                       if ( ((custom_graph_data*)AGDATA(graph))->Engine == 3)
-                               system("\"C:/Program Files/Graphviz2.15/bin/dot.exe\" -Txdot -Kcirco c:/__tempfile.dot -oc:/__tempfile.xdot");
-                       if ( ((custom_graph_data*)AGDATA(graph))->Engine == 4)
-                               system("\"C:/Program Files/Graphviz2.15/bin/dot.exe\" -Txdot -Kfdp c:/__tempfile.dot -oc:/__tempfile.xdot");
+           if (((custom_graph_data *) AGDATA(graph))->Engine == 0)
+               system
+                   ("\"C:/Program Files/Graphviz2.15/bin/dot.exe\" -Txdot -Kdot c:/__tempfile.dot -oc:/__tempfile.xdot");
+           if (((custom_graph_data *) AGDATA(graph))->Engine == 1)
+               system
+                   ("\"C:/Program Files/Graphviz2.15/bin/dot.exe\" -Txdot -Kneato c:/__tempfile.dot -oc:/__tempfile.xdot");
+           if (((custom_graph_data *) AGDATA(graph))->Engine == 2)
+               system
+                   ("\"C:/Program Files/Graphviz2.15/bin/dot.exe\" -Txdot -Ktwopi c:/__tempfile.dot -oc:/__tempfile.xdot");
+           if (((custom_graph_data *) AGDATA(graph))->Engine == 3)
+               system
+                   ("\"C:/Program Files/Graphviz2.15/bin/dot.exe\" -Txdot -Kcirco c:/__tempfile.dot -oc:/__tempfile.xdot");
+           if (((custom_graph_data *) AGDATA(graph))->Engine == 4)
+               system
+                   ("\"C:/Program Files/Graphviz2.15/bin/dot.exe\" -Txdot -Kfdp c:/__tempfile.dot -oc:/__tempfile.xdot");
 #else
-                       if ( ((custom_graph_data*)AGDATA(graph))->Engine == 0)
-                               system("\"dot\" -Txdot -Kdot /tmp/__tempfile.dot -o/tmp/__tempfile.xdot");
-                       if ( ((custom_graph_data*)AGDATA(graph))->Engine == 1)
-                               system("\"dot\" -Txdot -Kneato /tmp/__tempfile.dot -o/tmp/__tempfile.xdot");
-                       if ( ((custom_graph_data*)AGDATA(graph))->Engine == 2)
-                               system("\"dot\" -Txdot -Ktwopi /tmp/__tempfile.dot -o/tmp/__tempfile.xdot");
-                       if ( ((custom_graph_data*)AGDATA(graph))->Engine == 3)
-                               system("\"dot\" -Txdot -Kcirco /tmp/__tempfile.dot -o/tmp/__tempfile.xdot");
-                       if ( ((custom_graph_data*)AGDATA(graph))->Engine == 4)
-                               system("\"dot\" -Txdot -Kfdp /tmp/__tempfile.dot -o/tmp/__tempfile.xdot");
+           if (((custom_graph_data *) AGDATA(graph))->Engine == 0)
+               system
+                   ("\"dot\" -Txdot -Kdot /tmp/__tempfile.dot -o/tmp/__tempfile.xdot");
+           if (((custom_graph_data *) AGDATA(graph))->Engine == 1)
+               system
+                   ("\"dot\" -Txdot -Kneato /tmp/__tempfile.dot -o/tmp/__tempfile.xdot");
+           if (((custom_graph_data *) AGDATA(graph))->Engine == 2)
+               system
+                   ("\"dot\" -Txdot -Ktwopi /tmp/__tempfile.dot -o/tmp/__tempfile.xdot");
+           if (((custom_graph_data *) AGDATA(graph))->Engine == 3)
+               system
+                   ("\"dot\" -Txdot -Kcirco /tmp/__tempfile.dot -o/tmp/__tempfile.xdot");
+           if (((custom_graph_data *) AGDATA(graph))->Engine == 4)
+               system
+                   ("\"dot\" -Txdot -Kfdp /tmp/__tempfile.dot -o/tmp/__tempfile.xdot");
 #endif
-               }
-
-               //no position change
-               else
+       }
+       //no position change
+       else
 #ifdef _WIN32
-                               system("\"C:/Program Files/Graphviz2.15/bin/neato.exe\" -n2 -Txdot  c:/__tempfile.dot -oc:/__tempfile.xdot");
+           system
+               ("\"C:/Program Files/Graphviz2.15/bin/neato.exe\" -n2 -Txdot  c:/__tempfile.dot -oc:/__tempfile.xdot");
 #else
-                               system("\"neato\" -n2 -Txdot  /tmp/__tempfile.dot -o/tmp/__tempfile.xdot");
+           system
+               ("\"neato\" -n2 -Txdot  /tmp/__tempfile.dot -o/tmp/__tempfile.xdot");
 #endif
-                       
-               if(r)           //load the new graph and change file name
-               {
-                       clear_graph(graph);     //i am not sure about this, need to talk to North
-                       return TRUE;    
 
-               }
+       if (r)                  //load the new graph and change file name
+       {
+           clear_graph(graph); //i am not sure about this, need to talk to North
+           return TRUE;
+
        }
-       else
-               return FALSE;
+    } else
+       return FALSE;
 
-       return 0;
+    return 0;
 
 }
-int do_graph_layout(Agraph_t* graph,int Engine,int keeppos) //changes the layout, all user relocations are reset unless keeppos is set to 1
+int do_graph_layout(Agraph_t * graph, int Engine, int keeppos) //changes the layout, all user relocations are reset unless keeppos is set to 1
 {
 /*     Agnode_t *v;
        Agedge_t *e;
        Agsym_t *attr;
        Dict_t *d;
        int cnt;*/
-//     mydata *p;
-       FILE* input_file;
-       char* _filename=(char*)malloc((strlen(((custom_graph_data*)(AGDATA(view->g[view->activeGraph])))->GraphFileName)+1)*sizeof(char));
-               strcpy(_filename,((custom_graph_data*)AGDATA(view->g[view->activeGraph]))->GraphFileName); 
-
-       
-       ((custom_graph_data*)AGDATA(view->g[view->activeGraph]))->Engine=Engine;
-               create_xdot_for_graph(view->g[view->activeGraph],keeppos);
+//      mydata *p;
+    FILE *input_file;
+    char *_filename =
+       (char *)
+       malloc((strlen
+               (((custom_graph_data
+                  *) (AGDATA(view->g[view->activeGraph])))->
+                GraphFileName) + 1) * sizeof(char));
+    strcpy(_filename,
+          ((custom_graph_data *) AGDATA(view->g[view->activeGraph]))->
+          GraphFileName);
+
+
+    ((custom_graph_data *) AGDATA(view->g[view->activeGraph]))->Engine =
+       Engine;
+    create_xdot_for_graph(view->g[view->activeGraph], keeppos);
 
 #ifdef _WIN32
-       input_file = fopen("c:/__tempfile.xdot", "r");
+    input_file = fopen("c:/__tempfile.xdot", "r");
 #else
-       input_file = fopen("/tmp/__tempfile.xdot", "r");
+    input_file = fopen("/tmp/__tempfile.xdot", "r");
 #endif
-       clear_graph(view->g[view->activeGraph]);
-       agclose(view->g[view->activeGraph]);
-       if (input_file  == NULL)
-               g_print("temp file Cannot open n");
-       else if (view->g[view->activeGraph]= agread(input_file,NIL(Agdisc_t*)))
-       {
-               fclose(input_file);
-               //attaching rec for graph fields
-               attach_object_custom_data_to_graph(view->g[view->activeGraph]);
-               //set real file name
-               ((custom_graph_data*)AGDATA(view->g[view->activeGraph]))->GraphFileName=(char*)malloc((strlen(_filename)+1)*sizeof(char)); 
-               load_graph_params(view->g[view->activeGraph]);  //init glparams
-               strcpy(((custom_graph_data*)AGDATA(view->g[view->activeGraph]))->GraphFileName,_filename); 
-               free(_filename);
-               //set engine
-               ((custom_graph_data*)AGDATA(view->g[view->activeGraph]))->Engine=Engine;
-               ((custom_graph_data*)AGDATA(view->g[view->activeGraph]))->Modified=1;
-               refreshControls(view);
-               return 1;
-       }
-       else
-       {
-               return 0;
-       }
-
-       
+    clear_graph(view->g[view->activeGraph]);
+    agclose(view->g[view->activeGraph]);
+    if (input_file == NULL)
+       g_print("temp file Cannot open n");
+    else if ((view->g[view->activeGraph] =
+             agread(input_file, NIL(Agdisc_t *)))) {
+       fclose(input_file);
+       //attaching rec for graph fields
+       attach_object_custom_data_to_graph(view->g[view->activeGraph]);
+       //set real file name
+       ((custom_graph_data *) AGDATA(view->g[view->activeGraph]))->
+           GraphFileName =
+           (char *) malloc((strlen(_filename) + 1) * sizeof(char));
+       load_graph_params(view->g[view->activeGraph]);  //init glparams
+       strcpy(((custom_graph_data *) AGDATA(view->g[view->activeGraph]))->
+              GraphFileName, _filename);
+       free(_filename);
+       //set engine
+       ((custom_graph_data *) AGDATA(view->g[view->activeGraph]))->
+           Engine = Engine;
+       ((custom_graph_data *) AGDATA(view->g[view->activeGraph]))->
+           Modified = 1;
+       refreshControls(view);
+       return 1;
+    } else {
        return 0;
+    }
+
+
+    return 0;
 
 }
 
-void clear_graph(Agraph_t* graph)
+void clear_graph(Agraph_t * graph)
 //clears custom data binded
 {
-       
+
 
 }
 
-Agraph_t* loadGraph(char* filename)
+Agraph_t *loadGraph(char *filename)
 {
-       Agraph_t *g;
-//     mydata *p;
-       FILE* input_file;
-       input_file = fopen(filename, "r");
-       if (input_file  == NULL)
-               g_print("Cannot open %s\n", filename);
-       else if (g = agread(input_file,NIL(Agdisc_t*)))
+    Agraph_t *g;
+//      mydata *p;
+    FILE *input_file;
+    input_file = fopen(filename, "r");
+    if (input_file == NULL)
+       g_print("Cannot open %s\n", filename);
+    else if ((g = agread(input_file, NIL(Agdisc_t *)))) {
+       attach_object_custom_data_to_graph(g);
+       load_graph_params(g);
+
+       if ((!agget(g, "xdotversion"))
+           && ((agget(g, "TopView") == "0")
+               || !agget(g, "TopView")
+           )
+
+           )
        {
-               attach_object_custom_data_to_graph(g);
-               load_graph_params(g);
-
-               if ( 
-                       ( !agget(g, "xdotversion"))
-                                &&  
-                       ( 
-                               ( agget(g, "TopView")=="0")
-                               || 
-                               !agget(g, "TopView")
-                               ) 
-                       
-                       )
-               
-               {
-               create_xdot_for_graph(g,0);
-               fclose(input_file);
+           create_xdot_for_graph(g, 0);
+           fclose(input_file);
 #ifdef _WIN32
-               input_file = fopen("c:/__tempfile.xdot", "r");
+           input_file = fopen("c:/__tempfile.xdot", "r");
 #else
-               input_file = fopen("/tmp/__tempfile.xdot", "r");
+           input_file = fopen("/tmp/__tempfile.xdot", "r");
 #endif
-               while(input_file== NULL)        //HACK!!!!
-               {
-                       input_file = fopen("c:/__tempfile.xdot", "r");
-//                     g_print("Cannot open xdot  error %si\n",strerror(errno));
-                               
-               }
-               g = agread(input_file,NIL(Agdisc_t*));
-               g_print("xdot is being loaded\n");
-               //attaching rec for graph fields
-               attach_object_custom_data_to_graph(g);
-               load_graph_params(g);
-               //      fclose(input_file);
-               }
-               ((custom_graph_data*)AGDATA(g))->GraphFileName=(char*)malloc((strlen(filename)+1)*sizeof(char)); 
-               //attaching rec for graph objects
-               strcpy(((custom_graph_data*)AGDATA(g))->GraphFileName,filename); 
-               /*if(strcasecmp(agget(g, "TopView"),"1")==0)
-               {
-                       if(
-                               TopviewNodeCount > 0)
-                       {
-                               Dlg=gtk_message_dialog_new (NULL,
-                                                                       GTK_DIALOG_MODAL,
-                                         GTK_MESSAGE_WARNING,
-                                                                       GTK_BUTTONS_OK,
-                                                                       "For Performance issues , this program does not support multiple Topview graphs!");
-                               respond=gtk_dialog_run (Dlg);
-                               gtk_object_destroy (Dlg);
-                               agclose(g);
-                               return 0;
-                       }
-                       else
-                               PrepareTopview(g);
-               }*/
-               preparetopview(g,view->Topview);
-               return g;
-       }
-       else
-       {
-               return 0;
+           while (input_file == NULL)  //HACK!!!!
+           {
+               input_file = fopen("c:/__tempfile.xdot", "r");
+//                      g_print("Cannot open xdot  error %si\n",strerror(errno));
+
+           }
+           g = agread(input_file, NIL(Agdisc_t *));
+           g_print("xdot is being loaded\n");
+           //attaching rec for graph fields
+           attach_object_custom_data_to_graph(g);
+           load_graph_params(g);
+           //      fclose(input_file);
        }
+       ((custom_graph_data *) AGDATA(g))->GraphFileName =
+           (char *) malloc((strlen(filename) + 1) * sizeof(char));
+       //attaching rec for graph objects
+       strcpy(((custom_graph_data *) AGDATA(g))->GraphFileName, filename);
+       /*if(strcasecmp(agget(g, "TopView"),"1")==0)
+          {
+          if(
+          TopviewNodeCount > 0)
+          {
+          Dlg=gtk_message_dialog_new (NULL,
+          GTK_DIALOG_MODAL,
+          GTK_MESSAGE_WARNING,
+          GTK_BUTTONS_OK,
+          "For Performance issues , this program does not support multiple Topview graphs!");
+          respond=gtk_dialog_run (Dlg);
+          gtk_object_destroy (Dlg);
+          agclose(g);
+          return 0;
+          }
+          else
+          PrepareTopview(g);
+          } */
+       preparetopview(g, view->Topview);
+       return g;
+    } else {
        return 0;
+    }
+    return 0;
 }
-int clear_object_xdot(voidobj)
+int clear_object_xdot(void *obj)
 {
-       if (obj)
-       {
-               if(agattrsym(obj,"_draw_"))
-                       agset(obj,"_draw_","");
-               if(agattrsym(obj,"_ldraw_"))
-                       agset(obj,"_ldraw_","");
-               if(agattrsym(obj,"_hdraw_"))
-                       agset(obj,"_hdraw_","");
-               if(agattrsym(obj,"_tdraw_"))
-                       agset(obj,"_tdraw_","");
-               if(agattrsym(obj,"_hldraw_"))
-                       agset(obj,"_hldraw_","");
-               if(agattrsym(obj,"_tldraw_"))
-                       agset(obj,"_tldraw_","");
-               return 1;
-       }
-       return 0;
+    if (obj) {
+       if (agattrsym(obj, "_draw_"))
+           agset(obj, "_draw_", "");
+       if (agattrsym(obj, "_ldraw_"))
+           agset(obj, "_ldraw_", "");
+       if (agattrsym(obj, "_hdraw_"))
+           agset(obj, "_hdraw_", "");
+       if (agattrsym(obj, "_tdraw_"))
+           agset(obj, "_tdraw_", "");
+       if (agattrsym(obj, "_hldraw_"))
+           agset(obj, "_hldraw_", "");
+       if (agattrsym(obj, "_tldraw_"))
+           agset(obj, "_tldraw_", "");
+       return 1;
+    }
+    return 0;
 }
 
 
-int clear_graph_xdot(Agraph_t* graph)  //clears all xdot  attributes, used especially before layout change
+int clear_graph_xdot(Agraph_t * graph) //clears all xdot  attributes, used especially before layout change
 {
-   Agnode_t *n;
-       Agedge_t *e;
-       Agraph_t *s;
+    Agnode_t *n;
+    Agedge_t *e;
+    Agraph_t *s;
 
-       
-       clear_object_xdot(graph);
-       n = agfstnode(graph);
-       
-       for (s = agfstsubg(graph); s; s = agnxtsubg(s))
-               clear_object_xdot(s);
 
-       for (n = agfstnode(graph); n; n = agnxtnode(graph, n))
-       {
-               clear_object_xdot(n);
-               for (e = agfstout(graph,n) ; e ; e = agnxtout (graph,e))
-               {
-                       clear_object_xdot(e);
-               }
+    clear_object_xdot(graph);
+    n = agfstnode(graph);
+
+    for (s = agfstsubg(graph); s; s = agnxtsubg(s))
+       clear_object_xdot(s);
+
+    for (n = agfstnode(graph); n; n = agnxtnode(graph, n)) {
+       clear_object_xdot(n);
+       for (e = agfstout(graph, n); e; e = agnxtout(graph, e)) {
+           clear_object_xdot(e);
        }
-       return 1;       
+    }
+    return 1;
 
 
 }
@@ -639,211 +660,310 @@ Object Custom Data Functions
 */
 
 
-int attach_object_custom_data_to_graph(Agraph_t* graph)
+int attach_object_custom_data_to_graph(Agraph_t * graph)
 {
     Agnode_t *n;
-       Agedge_t *e;
-       Agraph_t *s;
+    Agedge_t *e;
+    Agraph_t *s;
 
-       agbindrec(graph,"custom_graph_data",sizeof(custom_graph_data),TRUE);//graph custom data
-       init_object_custom_data(graph,graph);   //attach to graph itself
+    agbindrec(graph, "custom_graph_data", sizeof(custom_graph_data), TRUE);    //graph custom data
+    init_object_custom_data(graph, graph);     //attach to graph itself
 
-       n = agfstnode(graph);
-       
-       for (s = agfstsubg(graph); s; s = agnxtsubg(s))
-               init_object_custom_data(graph,s);       //attach to subgraph 
+    n = agfstnode(graph);
 
-       for (n = agfstnode(graph); n; n = agnxtnode(graph, n))
-       {
-               init_object_custom_data(graph,n);       //attach to node
-               for (e = agfstout(graph,n) ; e ; e = agnxtout (graph,e))
-               {
-                       init_object_custom_data(graph,e);       //attach to edge
-               }
+    for (s = agfstsubg(graph); s; s = agnxtsubg(s))
+       init_object_custom_data(graph, s);      //attach to subgraph 
+
+    for (n = agfstnode(graph); n; n = agnxtnode(graph, n)) {
+       init_object_custom_data(graph, n);      //attach to node
+       for (e = agfstout(graph, n); e; e = agnxtout(graph, e)) {
+           init_object_custom_data(graph, e);  //attach to edge
        }
-       return 1;
-       
+    }
+    return 1;
+
 }
 
 
-int init_object_custom_data(Agraph_t* graph,void* obj)//creates a custom_object_data 
+int init_object_custom_data(Agraph_t * graph, void *obj)       //creates a custom_object_data 
 {
-       agdelrec(graph, "custom_object_data");
-    agbindrec(obj,"custom_object_data",sizeof(custom_object_data),TRUE);
-       ((custom_object_data*)AGDATA(obj))->ID=0;
-       ((custom_object_data*)AGDATA(obj))->ObjName=NULL;
-       ((custom_object_data*)AGDATA(obj))->ObjType=AGTYPE(obj);
-       ((custom_object_data*)AGDATA(obj))->Layer=-1;
-       ((custom_object_data*)AGDATA(obj))->Visible=1;
-       ((custom_object_data*)AGDATA(obj))->Locked=0;
-       ((custom_object_data*)AGDATA(obj))->Highlighted=0;
-       ((custom_object_data*)AGDATA(obj))->NumDataCount=0;
-       ((custom_object_data*)AGDATA(obj))->NumData=NULL;
-       ((custom_object_data*)AGDATA(obj))->StrDataCount=0;
-       ((custom_object_data*)AGDATA(obj))->StrData=NULL; 
-       return 1;
+    agdelrec(graph, "custom_object_data");
+    agbindrec(obj, "custom_object_data", sizeof(custom_object_data), TRUE);
+    ((custom_object_data *) AGDATA(obj))->ID = 0;
+    ((custom_object_data *) AGDATA(obj))->ObjName = NULL;
+    ((custom_object_data *) AGDATA(obj))->ObjType = AGTYPE(obj);
+    ((custom_object_data *) AGDATA(obj))->Layer = -1;
+    ((custom_object_data *) AGDATA(obj))->Visible = 1;
+    ((custom_object_data *) AGDATA(obj))->Locked = 0;
+    ((custom_object_data *) AGDATA(obj))->Highlighted = 0;
+    ((custom_object_data *) AGDATA(obj))->NumDataCount = 0;
+    ((custom_object_data *) AGDATA(obj))->NumData = NULL;
+    ((custom_object_data *) AGDATA(obj))->StrDataCount = 0;
+    ((custom_object_data *) AGDATA(obj))->StrData = NULL;
+    return 1;
 }
 
 
-int clear_object_custom_data(void* obj) //frees memory allocated for cutom object data
+int clear_object_custom_data(void *obj)        //frees memory allocated for cutom object data
 {
-       return ( (clear_string_data_from_object_custom_data(obj)) || (clear_numeric_data_from_object_custom_data(obj)));
+    return ((clear_string_data_from_object_custom_data(obj))
+           || (clear_numeric_data_from_object_custom_data(obj)));
 }
 
-int add_string_data_to_object_custom_data(void* obj,char* data)
+int add_string_data_to_object_custom_data(void *obj, char *data)
 {
-       if ((obj != NULL) && (data !=NULL))
-       {
-                       ((custom_object_data*)AGDATA(obj))->StrData=realloc( ((custom_object_data*)AGDATA(obj))->StrData , sizeof(char*)*(((custom_object_data*)AGDATA(obj))->StrDataCount +1));
-                       ((custom_object_data*)AGDATA(obj))->StrData[((custom_object_data*)AGDATA(obj))->StrDataCount]=malloc((strlen(data)+1) * sizeof(char));
-                       strcpy(((custom_object_data*)AGDATA(obj))->StrData[((custom_object_data*)AGDATA(obj))->StrDataCount],data);
-                       ((custom_object_data*)AGDATA(obj))->StrDataCount++;
-                       return 1;
-       }
-               return 0;
+    if ((obj != NULL) && (data != NULL)) {
+       ((custom_object_data *) AGDATA(obj))->StrData =
+           realloc(((custom_object_data *) AGDATA(obj))->StrData,
+                   sizeof(char *) *
+                   (((custom_object_data *) AGDATA(obj))->StrDataCount +
+                    1));
+       ((custom_object_data *) AGDATA(obj))->
+           StrData[((custom_object_data *) AGDATA(obj))->StrDataCount] =
+           malloc((strlen(data) + 1) * sizeof(char));
+       strcpy(((custom_object_data *) AGDATA(obj))->
+              StrData[((custom_object_data *) AGDATA(obj))->StrDataCount],
+              data);
+       ((custom_object_data *) AGDATA(obj))->StrDataCount++;
+       return 1;
+    }
+    return 0;
 }
 
-int add_numeric_data_to_object_custom_data(void* obj,float data)
+int add_numeric_data_to_object_custom_data(void *obj, float data)
 {
-       if (obj != NULL)
-       {
-               ((custom_object_data*)AGDATA(obj))->NumData=realloc( ((custom_object_data*)AGDATA(obj))->StrData , sizeof(char*)*(((custom_object_data*)AGDATA(obj))->NumDataCount+1));
-               ((custom_object_data*)AGDATA(obj))->NumData[((custom_object_data*)AGDATA(obj))->NumDataCount]=data;
-               ((custom_object_data*)AGDATA(obj))->NumDataCount++;
-                       return 1;
-       }
-               return 0;
+    if (obj != NULL) {
+       ((custom_object_data *) AGDATA(obj))->NumData =
+           realloc(((custom_object_data *) AGDATA(obj))->StrData,
+                   sizeof(char *) *
+                   (((custom_object_data *) AGDATA(obj))->NumDataCount +
+                    1));
+       ((custom_object_data *) AGDATA(obj))->
+           NumData[((custom_object_data *) AGDATA(obj))->NumDataCount] =
+           data;
+       ((custom_object_data *) AGDATA(obj))->NumDataCount++;
+       return 1;
+    }
+    return 0;
 }
 
-int clear_string_data_from_object_custom_data(voidobj)
+int clear_string_data_from_object_custom_data(void *obj)
 {
-       if(obj != NULL)
-       {
-               int ind=0;
-               for (ind=0; ind < ((custom_object_data*)AGDATA(obj))->StrDataCount;ind ++)
-               {
-                       free ( ((custom_object_data*)AGDATA(obj))->StrData[ind]);
-               }
-               free(((custom_object_data*)AGDATA(obj))->StrData);
-               return 1;
+    if (obj != NULL) {
+       int ind = 0;
+       for (ind = 0;
+            ind < ((custom_object_data *) AGDATA(obj))->StrDataCount;
+            ind++) {
+           free(((custom_object_data *) AGDATA(obj))->StrData[ind]);
        }
-       return 0;       
+       free(((custom_object_data *) AGDATA(obj))->StrData);
+       return 1;
+    }
+    return 0;
 }
 
-int clear_numeric_data_from_object_custom_data(voidobj)
+int clear_numeric_data_from_object_custom_data(void *obj)
 {
-       if(obj != NULL)
-       {
-               free(((custom_object_data*)AGDATA(obj))->NumData);
-               return 1;
-       }
-       return 0;       
+    if (obj != NULL) {
+       free(((custom_object_data *) AGDATA(obj))->NumData);
+       return 1;
+    }
+    return 0;
 }
-void move_node(void* obj,float dx,float dy)
+void move_node(void *obj, float dx, float dy)
 {
-       char buf[512];
-       char buf2[512];
-       char* pch;
-       int a=0;
-       int i=0;
-       if( (agget(obj,"pos")) && ( AGTYPE(obj)==AGNODE ))
-       {
-               //tokenize 
-               strcpy(buf,agget(obj, "pos"));
-
-               pch=strtok (buf,"," );
-               while (pch != NULL)
-               {
-                       if(i==0)
-                               a=sprintf(buf2+a,"%i,",atoi(pch)-(int)dx);
-                       else
-                               a=sprintf(buf2+a,"%i,",atoi(pch)-(int)dy);
-                       pch=strtok (NULL,"," );
-                       i++;
-               }
-               buf2[strlen(buf2)-1]='\0';
-               agset(obj,"pos",buf2);
+    char buf[512];
+    char buf2[512];
+    char *pch;
+    int a = 0;
+    int i = 0;
+    if ((agget(obj, "pos")) && (AGTYPE(obj) == AGNODE)) {
+       //tokenize 
+       strcpy(buf, agget(obj, "pos"));
+
+       pch = strtok(buf, ",");
+       while (pch != NULL) {
+           if (i == 0)
+               a = sprintf(buf2 + a, "%i,", atoi(pch) - (int) dx);
+           else
+               a = sprintf(buf2 + a, "%i,", atoi(pch) - (int) dy);
+           pch = strtok(NULL, ",");
+           i++;
        }
+       buf2[strlen(buf2) - 1] = '\0';
+       agset(obj, "pos", buf2);
+    }
 }
 
-void move_nodes(Agraph_t* g)   //move selected nodes 
+static char *move_xdot(void *obj, xdot * x, int dx, int dy, int dz)
 {
-       Agnode_t* obj;
+    int i = 0;
+    int j = 0;
+    /* int a=0; */
+    /* char* pch; */
+    /* int pos[MAXIMUM_POS_COUNT];  //maximum pos count hopefully does not exceed 100 */
+    if (!x)
+       return "\0";
+
+    for (i = 0; i < x->cnt; i++) {
+       switch (x->ops[i].kind) {
+       case xd_filled_polygon:
+       case xd_unfilled_polygon:
+       case xd_filled_bezier:
+       case xd_unfilled_bezier:
+       case xd_polyline:
+           for (j = 0; j < x->ops[i].u.polygon.cnt; j++) {
+               x->ops[i].u.polygon.pts[j].x =
+                   x->ops[i].u.polygon.pts[j].x - dx;
+               x->ops[i].u.polygon.pts[j].y =
+                   x->ops[i].u.polygon.pts[j].y - dy;
+               x->ops[i].u.polygon.pts[j].z =
+                   x->ops[i].u.polygon.pts[j].z - dz;
+           }
+           break;
+       case xd_filled_ellipse:
+       case xd_unfilled_ellipse:
+           x->ops[i].u.ellipse.x = x->ops[i].u.ellipse.x - dx;
+           x->ops[i].u.ellipse.y = x->ops[i].u.ellipse.y - dy;
+           //                      x->ops[i].u.ellipse.z=x->ops[i].u.ellipse.z-dz;
+           break;
+       case xd_text:
+           x->ops[i].u.text.x = x->ops[i].u.text.x - dx;
+           x->ops[i].u.text.y = x->ops[i].u.text.y - dy;
+           //                      x->ops[i].u.text.z=x->ops[i].u.text.z-dz;
+           break;
+       case xd_image:
+           x->ops[i].u.image.pos.x = x->ops[i].u.image.pos.x - dx;
+           x->ops[i].u.image.pos.y = x->ops[i].u.image.pos.y - dy;
+           //                      x->ops[i].u.image.pos.z=x->ops[i].u.image.pos.z-dz;
+           break;
+       default:
+           break;
+       }
+    }
+    view->GLx = view->GLx2;
+    view->GLy = view->GLy2;
+    return sprintXDot(x);
 
-       float dx,dy;
-       xdot* bf;
-       int i=0;
-       dx=view->GLx-view->GLx2;
-       dy=view->GLy-view->GLy2;
 
-       if(((custom_graph_data*)AGDATA(view->g[view->activeGraph]))->TopView == 0)
-       {
-               for (i=0;i < ((custom_graph_data*)AGDATA(g))->selectedNodesCount;i++)
-               {       
-                       obj=((custom_graph_data*)AGDATA(g))->selectedNodes[i];
-                       bf=parseXDot (agget(obj,"_draw_"));
-                       agset(obj,"_draw_",move_xdot(obj,bf,(int)dx,(int)dy,0));
-                       free(bf);
-                       bf=parseXDot (agget(obj,"_ldraw_"));
-                       agset(obj,"_ldraw_",move_xdot(obj,bf,(int)dx,(int)dy,0));
-                       free(bf);
-                       move_node(obj,dx,dy);
-                       //iterate edges
-                       /*for (e = agfstout(g,obj) ; e ; e = agnxtout (g,e))
-                       {
-                               bf=parseXDot (agget(e,"_tdraw_"));
-                               agset(e,"_tdraw_",move_xdot(e,bf,(int)dx,(int)dy,0.00));
-                               free(bf);
-                               bf=parseXDot (agget(e,"_tldraw_"));
-                               agset(e,"_tldraw_",move_xdot(e,bf,(int)dx,(int)dy,0.00));
-                               free(bf);
-                               bf=parseXDot (agget(e,"_draw_"));
-                               agset(e,"_draw_",offset_spline(bf,(int)dx,(int)dy,0.00,0.00,0.00));
-                               free(bf);
-                               bf=parseXDot (agget(e,"_ldraw_"));
-                               agset(e,"_ldraw_",offset_spline(bf,(int)dx,(int)dy,0.00,0.00,0.00));
-                               free (bf);
-                       }*/
-       /*              for (e = agfstin(g,obj) ; e ; e = agnxtin (g,e))
-                       {
-                               free(bf);
-                               bf=parseXDot (agget(e,"_hdraw_"));
-                               agset(e,"_hdraw_",move_xdot(e,bf,(int)dx,(int)dy,0.00));
-                               free(bf);
-                               bf=parseXDot (agget(e,"_hldraw_"));
-                               agset(e,"_hldraw_",move_xdot(e,bf,(int)dx,(int)dy,0.00));
-                               free(bf);
-                               bf=parseXDot (agget(e,"_draw_"));
-                               agset(e,"_draw_",offset_spline(e,bf,(int)dx,(int)dy,0.00,0.00,0.00));
-                               free(bf);
-                               bf=parseXDot (agget(e,"_ldraw_"));
-                               agset(e,"_ldraw_",offset_spline(e,bf,(int)dx,(int)dy,0.00,0.00,0.00));
-                       }*/
+}
+
+#ifdef UNUSED
+static char *offset_spline(xdot * x, float dx, float dy, float headx,
+                          float heady)
+{
+    int i = 0;
+    Agnode_t *headn, tailn;
+    Agedge_t *e;
+    e = x->obj;                        //assume they are all edges, check function name
+    headn = aghead(e);
+    tailn = agtail(e);
+
+    for (i = 0; i < x->cnt; i++)       //more than 1 splines ,possible
+    {
+       switch (x->ops[i].kind) {
+       case xd_filled_polygon:
+       case xd_unfilled_polygon:
+       case xd_filled_bezier:
+       case xd_unfilled_bezier:
+       case xd_polyline:
+           if (((custom_object_data *) AGDATA((headn)->obj))->Selected ==
+               1)
+               &&((custom_object_data *) AGDATA((tailn)->obj))->
+                   Selected == 1)) {
+               for (j = 0; j < x->ops[i].u.polygon.cnt; j++) {
+
+                   x->ops[i].u.polygon.pts[j].x =
+                       x->ops[i].u.polygon.pts[j].x + dx;
+                   x->ops[i].u.polygon.pts[j].y =
+                       x->ops[i].u.polygon.pts[j].y + dy;
+                   x->ops[i].u.polygon.pts[j].z =
+                       x->ops[i].u.polygon.pts[j].z + dz;
                }
+               }
+           break;
        }
+    }
+    return 0;
 }
+#endif
 
+void move_nodes(Agraph_t * g)  //move selected nodes 
+{
+    Agnode_t *obj;
+
+    float dx, dy;
+    xdot *bf;
+    int i = 0;
+    dx = view->GLx - view->GLx2;
+    dy = view->GLy - view->GLy2;
+
+    if (((custom_graph_data *) AGDATA(view->g[view->activeGraph]))->
+       TopView == 0) {
+       for (i = 0;
+            i < ((custom_graph_data *) AGDATA(g))->selectedNodesCount;
+            i++) {
+           obj = ((custom_graph_data *) AGDATA(g))->selectedNodes[i];
+           bf = parseXDot(agget(obj, "_draw_"));
+           agset(obj, "_draw_",
+                 move_xdot(obj, bf, (int) dx, (int) dy, 0));
+           free(bf);
+           bf = parseXDot(agget(obj, "_ldraw_"));
+           agset(obj, "_ldraw_",
+                 move_xdot(obj, bf, (int) dx, (int) dy, 0));
+           free(bf);
+           move_node(obj, dx, dy);
+           //iterate edges
+           /*for (e = agfstout(g,obj) ; e ; e = agnxtout (g,e))
+              {
+              bf=parseXDot (agget(e,"_tdraw_"));
+              agset(e,"_tdraw_",move_xdot(e,bf,(int)dx,(int)dy,0.00));
+              free(bf);
+              bf=parseXDot (agget(e,"_tldraw_"));
+              agset(e,"_tldraw_",move_xdot(e,bf,(int)dx,(int)dy,0.00));
+              free(bf);
+              bf=parseXDot (agget(e,"_draw_"));
+              agset(e,"_draw_",offset_spline(bf,(int)dx,(int)dy,0.00,0.00,0.00));
+              free(bf);
+              bf=parseXDot (agget(e,"_ldraw_"));
+              agset(e,"_ldraw_",offset_spline(bf,(int)dx,(int)dy,0.00,0.00,0.00));
+              free (bf);
+              } */
+           /*              for (e = agfstin(g,obj) ; e ; e = agnxtin (g,e))
+              {
+              free(bf);
+              bf=parseXDot (agget(e,"_hdraw_"));
+              agset(e,"_hdraw_",move_xdot(e,bf,(int)dx,(int)dy,0.00));
+              free(bf);
+              bf=parseXDot (agget(e,"_hldraw_"));
+              agset(e,"_hldraw_",move_xdot(e,bf,(int)dx,(int)dy,0.00));
+              free(bf);
+              bf=parseXDot (agget(e,"_draw_"));
+              agset(e,"_draw_",offset_spline(e,bf,(int)dx,(int)dy,0.00,0.00,0.00));
+              free(bf);
+              bf=parseXDot (agget(e,"_ldraw_"));
+              agset(e,"_ldraw_",offset_spline(e,bf,(int)dx,(int)dy,0.00,0.00,0.00));
+              } */
+       }
+    }
+}
 
 
 
-int SetGdkColor(GdkColor* c,char* color)
-{
-       gvcolor_t cl;   
-       if (color != '\0')
-       {
-               colorxlate(color, &cl, RGBA_DOUBLE);
-               c->red=(int)(cl.u.RGBA[0]*65535.0);
-               c->green=(int)(cl.u.RGBA[1]*65535.0);
-               c->blue=(int)(cl.u.RGBA[2]*65535.0);
-               return 1;
-       }
-       else
-               return 0;
 
-}
+int SetGdkColor(GdkColor * c, char *color) {
+    gvcolor_t cl;
+    if (color != '\0') {
+       colorxlate(color, &cl, RGBA_DOUBLE);
+       c->red = (int) (cl.u.RGBA[0] * 65535.0);
+       c->green = (int) (cl.u.RGBA[1] * 65535.0);
+       c->blue = (int) (cl.u.RGBA[2] * 65535.0);
+       return 1;
+    } else
+       return 0;
 
-void glexpose()
-{
-       expose_event (view->drawing_area,NULL,NULL);
 }
 
+void glexpose() {
+    expose_event(view->drawing_area, NULL, NULL);
+}
index f20a1cf5d7d66988c79f01f1b48b2b0577f225b6..4c7e3c55c30289ca82820b71d625661e82fdbd3a 100755 (executable)
 
 
 
-void init_viewport(ViewInfo* view);
-void clear_viewport(ViewInfo* view);
-int add_graph_to_viewport_from_file (char* fileName);  //returns 1 if successfull else 0 ++
+void init_viewport(ViewInfo * view);
+void clear_viewport(ViewInfo * view);
+int add_graph_to_viewport_from_file(char *fileName);   //returns 1 if successfull else 0 ++
 int add_new_graph_to_viewport();       //returns graph index , otherwise -1
-int create_xdot_for_graph(Agraph_t* graph,int keeppos);        //0 failed , 1 successfull ++
-void update_graph_params(Agraph_t* graph);     //adds gledit params  ++
-Agraph_t* loadGraph(char* filename); //dont use directly, use add_graph_to_viewport_from_file instead 
-void load_graph_params(Agraph_t* graph);       //run once right after loading graph++
-void clear_graph(Agraph_t* graph);     //clears custom data binded,
-int save_graph();      //save without prompt
-int save_as_graph(); //save with prompt
-int save_graph_with_file_name(Agraph_t* graph,char* fileName); //saves graph with file name,if file name is NULL save as is ++
+int create_xdot_for_graph(Agraph_t * graph, int keeppos);      //0 failed , 1 successfull ++
+void update_graph_params(Agraph_t * graph);    //adds gledit params  ++
+Agraph_t *loadGraph(char *filename);   //dont use directly, use add_graph_to_viewport_from_file instead 
+void load_graph_params(Agraph_t * graph);      //run once right after loading graph++
+void clear_graph(Agraph_t * graph);    //clears custom data binded,
+int save_graph();              //save without prompt
+int save_as_graph();           //save with prompt
+int save_graph_with_file_name(Agraph_t * graph, char *fileName);       //saves graph with file name,if file name is NULL save as is ++
 
-int do_graph_layout(Agraph_t* graph,int Engine,int keeppos); //changes the layout, all user relocations are reset
-void refreshControls(ViewInfo* v);
+int do_graph_layout(Agraph_t * graph, int Engine, int keeppos);        //changes the layout, all user relocations are reset
+void refreshControls(ViewInfo * v);
 
 
-int attach_object_custom_data_to_graph(Agraph_t* graph);//run once or to reset all data !! prev data is removed
-int clear_object_custom_data(voidobj);       //frees memory allocated for custom object data
-int add_string_data_to_object_custom_data(void* obj,char* data);
-int add_numeric_data_to_object_custom_data(void* obj,float data);
-int clear_string_data_from_object_custom_data(voidobj);
-int clear_numeric_data_from_object_custom_data(voidobj);
+int attach_object_custom_data_to_graph(Agraph_t * graph);      //run once or to reset all data !! prev data is removed
+int clear_object_custom_data(void *obj);       //frees memory allocated for custom object data
+int add_string_data_to_object_custom_data(void *obj, char *data);
+int add_numeric_data_to_object_custom_data(void *obj, float data);
+int clear_string_data_from_object_custom_data(void *obj);
+int clear_numeric_data_from_object_custom_data(void *obj);
 
-int clear_object_xdot(voidobj);      //clear single object's xdot info
-int clear_graph_xdot(Agraph_t* graph); //clears all xdot  attributes, used especially before layout change
+int clear_object_xdot(void *obj);      //clear single object's xdot info
+int clear_graph_xdot(Agraph_t * graph);        //clears all xdot  attributes, used especially before layout change
 
-char* get_object_attribute(void* obj,char* attr);      //returns an attribute value no matter what,
+char *get_object_attribute(void *obj, char *attr);     //returns an attribute value no matter what,
 
-void move_node(void* n,float dx,float dy);
+void move_node(void *n, float dx, float dy);
 void glexpose();
-void move_nodes(Agraph_t* g);  //move selected nodes 
+void move_nodes(Agraph_t * g); //move selected nodes 
 //helper functions
-int SetGdkColor(GdkColor* c,char* color);
-int init_object_custom_data(Agraph_t* graph,void* obj);//creates a custom_object_data 
+int SetGdkColor(GdkColor * c, char *color);
+int init_object_custom_data(Agraph_t * graph, void *obj);      //creates a custom_object_data 
 #endif