]> granicus.if.org Git - graphviz/commitdiff
Smyrna
authorarif <devnull@localhost>
Wed, 11 Nov 2009 18:43:28 +0000 (18:43 +0000)
committerarif <devnull@localhost>
Wed, 11 Nov 2009 18:43:28 +0000 (18:43 +0000)
1.Regular Expression Search
2.Xue's object summary request
3.Warning clean up

cmd/smyrna/gui/beacon.c
cmd/smyrna/gui/frmobjectui.c
cmd/smyrna/gui/frmobjectui.h
cmd/smyrna/gui/menucallbacks.c
share/gui/smyrna.glade

index 8f7cac6f951b3fc947dbb69db5b1dcd5da9e6f16..e0579b59dac317d8776fe796f2b2bbd8043a948c 100644 (file)
@@ -19,6 +19,9 @@
 #include "gltemplate.h"
 #include "glutils.h"
 #include "toolboxcallbacks.h"
+#include "sfstr.h"
+
+static void print_object(void* obj);
 
 static int remove_edge_from_pick_list(topview_edge * e)
 {
@@ -52,6 +55,8 @@ static int add_edge_to_pick_list(topview_edge * e)
                sizeof(topview_edge *) * view->Topview->picked_edge_count);
     view->Topview->picked_edges[view->Topview->picked_edge_count - 1] = e;
     select_edge(e);
+    print_object((void*) e->Edge);     
+
     return 1;
 }
 
@@ -205,27 +210,60 @@ int remove_from_pick_list(topview_node * n)
     }
     return 0;
 }
-static void print_node(topview_node * n)
+
+/*
+You can then use sf as you would FILE* for writing, but using sfio functions. For example,
+
+  sfprintf(sf, "<unknown (%d)>", op);
+
+You can write to your heart's content; sfio will take care of memory. 
+When you are ready to use the
+string, call
+
+  char* ptr = sfstruse(sf);
+
+This adds a '\0'-byte at the end and returns a pointer to the beginning of the buffer. This also resets the write pointer, so you can use sf over again. Note, therefore, that this means you don't want to call sfstruse(sf) twice, as the second time will put a '\0' at the beginning of the buffer.
+
+Once you have ptr set, you can use it to insert the character string into the console window.
+
+To clean up, call
+
+  sfclose (sf);
+
+This codes requires the vmalloc, ast, and sfio libraries, but these are already being loaded because gvpr needs them.
+*/
+
+static void print_object(void* obj)
 {
+    static Sfio_t *sf;
     int ind=0;
     char* val;
+    char* str;
     attr_list* l=view->Topview->attributes;
-    printf("Node Summary\n");
-    printf("-------------\n");
-    printf("name: %s\n",agnameof(n->Node));
+    if (!sf)
+               sf= sfstropen();
+    if(AGTYPE(obj)==AGNODE)
+       sfprintf(sf,"Node Summary\n");
+    if(AGTYPE(obj)==AGEDGE)
+       sfprintf(sf,"Edge Summary\n");
+    sfprintf(sf,"-------------\n");
+    sfprintf(sf,"name: %s\n",agnameof(obj));
     for (;ind < l->attr_count;ind ++)
     {
        if(l->attributes[ind]->propagate)
        {
-           val=agget(n->Node,l->attributes[ind]->name);
+           val=agget(obj,l->attributes[ind]->name);
            if (val)
            {
-               printf("%s:%s\n",l->attributes[ind]->name,val);
+               sfprintf(sf,"%s:%s\n",l->attributes[ind]->name,val);
 
            }
        }
     }
-    printf("-------------\n");
+    sfprintf(sf,"-------------\n");
+    str=sfstruse(sf);
+    append_textview((GtkTextView *)glade_xml_get_widget(xml, "mainconsole"), str, strlen(str));
+
 
 }
 
@@ -237,8 +275,7 @@ int add_to_pick_list(topview_node * n)
                sizeof(topview_node *) * view->Topview->picked_node_count);
     view->Topview->picked_nodes[view->Topview->picked_node_count - 1] = n;
     select_node(n);
-    print_node( n);    
-
+    print_object((void*) n->Node);     
     return 1;
 }
 
index 5e13f3d6fcd366ceac448cfa937466df52fec5bb..b061ecef00acf9b2713d5789015c2ece5158b8d7 100644 (file)
@@ -27,6 +27,8 @@
 #include "memory.h"
 #include "frmobjectui.h"
 #include <assert.h>
+#include "sfstr.h"
+
 
 #ifdef WIN32
 #define STRCASECMP stricmp
@@ -409,14 +411,17 @@ void filter_attributes(char* prefix,topview* t)
        gtk_widget_set_sensitive(glade_xml_get_widget(xml, "txtDefValue"),1);
        gtk_widget_show(glade_xml_get_widget(xml, "attrAddBtn"));
        gtk_widget_hide(glade_xml_get_widget(xml, "attrApplyBtn"));
+       gtk_widget_hide(glade_xml_get_widget(xml, "attrSearchBtn"));
        gtk_toggle_button_set_active ((GtkToggleButton*)glade_xml_get_widget(xml, "attrProg"),0);
 
 
 
+
        if(strlen(prefix)==0)
        {
                gtk_widget_hide(glade_xml_get_widget(xml, "attrAddBtn"));
                gtk_widget_hide(glade_xml_get_widget(xml, "attrApplyBtn"));
+               gtk_widget_hide(glade_xml_get_widget(xml, "attrSearchBtn"));
                gtk_widget_hide(glade_xml_get_widget(xml, "attrAddBtn"));
                gtk_widget_hide(glade_xml_get_widget(xml, "txtValue"));
                gtk_widget_hide(glade_xml_get_widget(xml, "txtDefValue"));
@@ -441,14 +446,15 @@ void filter_attributes(char* prefix,topview* t)
                        gtk_widget_set_sensitive(glade_xml_get_widget(xml, "txtDefValue"),0);
                        gtk_widget_hide(glade_xml_get_widget(xml, "attrAddBtn"));
                        gtk_widget_show(glade_xml_get_widget(xml, "attrApplyBtn"));
+                       gtk_widget_show(glade_xml_get_widget(xml, "attrSearchBtn"));
                        gtk_toggle_button_set_active ((GtkToggleButton*)glade_xml_get_widget(xml, "attrProg"),fl->attributes[0]->propagate);
                        break;
 
                }
        }
 
-       tmp=(((objKind==AGNODE) &&(sel_node))             ||                    ((objKind==AGEDGE) &&(sel_edge))                        ||                      ((objKind==AGRAPH) &&(sel_graph)));
-               gtk_widget_set_sensitive(glade_xml_get_widget(xml, "txtValue"),tmp);
+       tmp=(((objKind==AGNODE) &&(sel_node)) ||((objKind==AGEDGE) &&(sel_edge))||((objKind==AGRAPH) &&(sel_graph)));
+               gtk_widget_set_sensitive(glade_xml_get_widget(xml, "attrApplyBtn"),tmp);
 }
 /*asttribute text changed call back*/
 
@@ -458,6 +464,7 @@ _BB void on_txtAttr_changed(GtkWidget * widget, gpointer user_data)
        filter_attributes((char*)gtk_entry_get_text((GtkEntry*)widget),view->Topview);
 }
 
+
 _BB void on_attrApplyBtn_clicked (GtkWidget * widget, gpointer user_data)
 {
        int ind;
@@ -686,33 +693,45 @@ attr_list* load_attr_list(Agraph_t* g)
        sym=NULL;
     while ((sym = agnxtattr(g,AGRAPH, sym)))
        {
-               if(!binarySearch( l, sym->name))
+               attr=binarySearch(l, sym->name);
+               if (attr)
+                   attr->objType[0]=1;
+               else
                {
-                       attr=new_attr_with_ref(sym);
-                       attr_list_add(l,attr);
-
+                   attr=new_attr_with_ref(sym);
+                   attr_list_add(l,attr);
                }
        }
        sym=NULL;
        while ((sym = agnxtattr(g,AGNODE, sym)))
        {
-               if(!binarySearch(l, sym->name))
+           
+               attr=binarySearch(l, sym->name);
+               if (attr)
                {
-                       attr=new_attr_with_ref(sym);
-                       attr_list_add(l,attr);
+                   attr->objType[1]=1;
 
                }
+               else
+               {
+                   attr=new_attr_with_ref(sym);
+                   attr_list_add(l,attr);
+               }
+
        }
        sym=NULL;
        while ((sym = agnxtattr(g,AGEDGE, sym)))
        {
-               if(!binarySearch(l, sym->name))
+
+               attr=binarySearch(l, sym->name);
+               if (attr)
+                   attr->objType[2]=1;
+               else
                {
-                       attr=new_attr_with_ref(sym);
-                       attr_list_add(l,attr);
+                   attr=new_attr_with_ref(sym);
+                   attr_list_add(l,attr);
                }
        }
-
        return l;
 }
 
@@ -775,6 +794,51 @@ void showAttrsWidget(topview* t)
 
 
 }
+static void gvpr_select(char* attr,char* regex_str,int objType)
+{
+    
+    static Sfio_t *sf;
+    char *bf2;
+    int i, j, argc;
+    char **argv;
+
+    if (!sf)
+       sf= sfstropen();
+
+    if (objType==AGNODE)
+       sfprintf (sf,"N[%s==\"%s\"]{selected = \"1\"}",attr,regex_str);
+    if (objType==AGEDGE)
+       sfprintf (sf,"E[%s==\"%s\"]{selected = \"1\"}",attr,regex_str);
+
+
+
+    bf2 =sfstruse(sf);
+
+    argc = 1;
+    if (*bf2 != '\0')
+       argc++;
+    argv = N_NEW(argc + 1, char *);
+    j = 0;
+    argv[j++] = "smyrna";
+    argv[j++] = strdup(bf2);
+
+    run_gvpr(view->g[view->activeGraph], j, argv);
+    for (i = 1; i < argc; i++)
+       free(argv[i]);
+    free(argv);
+    set_header_text();
+}
+
+
+_BB void on_attrSearchBtn_clicked (GtkWidget * widget, gpointer user_data)
+{
+    
+    char *attr=(char*)gtk_entry_get_text((GtkEntry*)glade_xml_get_widget(xml, "txtAttr"));
+    char* regex_str=(char*)gtk_entry_get_text((GtkEntry*)glade_xml_get_widget(xml, "txtValue"));
+    gvpr_select(attr,regex_str,get_object_type());
+
+}
+
 
 
 #if 0
index d775ba8bbc9dafb4860602d0e3b75b706bd620d3..fedd720aa13d42c42263b538757eb84909b857ff 100644 (file)
@@ -39,6 +39,7 @@ _BB void on_txtAttr_changed(GtkWidget * widget, gpointer user_data);
 _BB void attr_label_motion(GtkWidget * widget,GdkEventMotion * event, gpointer data);
 _BB void on_attrApplyBtn_clicked (GtkWidget * widget, gpointer user_data);
 _BB void on_attrAddBtn_clicked (GtkWidget * widget, gpointer user_data);
+_BB void on_attrSearchBtn_clicked (GtkWidget * widget, gpointer user_data);
 
 extern attr_list* load_attr_list(Agraph_t* g);
 extern void showAttrsWidget(topview* t);
index 1ee4cab7e93bdd1214513d3926b7e1f85dd9f0e4..171ee679edf6eb44f82379ba83f1b504c5532e05 100755 (executable)
@@ -496,6 +496,8 @@ static char **splitArgs(const char *args, int *argcp)
 }
 #endif
 
+
+
 void mTestgvpr(GtkWidget * widget, gpointer user_data)
 {
     char *bf2;
@@ -561,6 +563,9 @@ void mTestgvpr(GtkWidget * widget, gpointer user_data)
        g_free(bf2);
     }
     assert(j == argc);
+    for (i = 0; i < j; i++)
+       printf("%s ",argv[i]);
+
 
     run_gvpr(view->g[view->activeGraph], argc, argv);
     for (i = 1; i < argc; i++)
index b7e64703b75af956347fd47418a2df7e3aa151d7..176e821e4716754b1bc0d89562d38174ca0edbfe 100755 (executable)
       <property name="spacing">0</property>
 
       <child>
-       <widget class="GtkMenuBar" id="menubar1">
+       <widget class="GtkHBox" id="hbox13">
          <property name="visible">True</property>
-         <property name="pack_direction">GTK_PACK_DIRECTION_LTR</property>
-         <property name="child_pack_direction">GTK_PACK_DIRECTION_LTR</property>
+         <property name="homogeneous">False</property>
+         <property name="spacing">0</property>
 
          <child>
-           <widget class="GtkMenuItem" id="menuitem1">
+           <widget class="GtkMenuBar" id="menubar1">
+             <property name="width_request">540</property>
              <property name="visible">True</property>
-             <property name="label" translatable="yes">_File</property>
-             <property name="use_underline">True</property>
+             <property name="pack_direction">GTK_PACK_DIRECTION_LTR</property>
+             <property name="child_pack_direction">GTK_PACK_DIRECTION_LTR</property>
 
              <child>
-               <widget class="GtkMenu" id="menuitem1_menu">
+               <widget class="GtkMenuItem" id="menuitem1">
+                 <property name="visible">True</property>
+                 <property name="label" translatable="yes">_File</property>
+                 <property name="use_underline">True</property>
 
                  <child>
-                   <widget class="GtkImageMenuItem" id="mOpen">
-                     <property name="visible">True</property>
-                     <property name="label">gtk-open</property>
-                     <property name="use_stock">True</property>
-                     <signal name="activate" handler="mOpenSlot"/>
-                   </widget>
-                 </child>
+                   <widget class="GtkMenu" id="menuitem1_menu">
 
-                 <child>
-                   <widget class="GtkImageMenuItem" id="mSave">
-                     <property name="visible">True</property>
-                     <property name="label">gtk-save</property>
-                     <property name="use_stock">True</property>
-                     <signal name="activate" handler="mSaveSlot"/>
-                   </widget>
-                 </child>
+                     <child>
+                       <widget class="GtkImageMenuItem" id="mOpen">
+                         <property name="visible">True</property>
+                         <property name="label">gtk-open</property>
+                         <property name="use_stock">True</property>
+                         <signal name="activate" handler="mOpenSlot"/>
+                       </widget>
+                     </child>
 
-                 <child>
-                   <widget class="GtkImageMenuItem" id="mSaveAs">
-                     <property name="visible">True</property>
-                     <property name="label">gtk-save-as</property>
-                     <property name="use_stock">True</property>
-                     <signal name="activate" handler="mSaveAsSlot"/>
-                   </widget>
-                 </child>
+                     <child>
+                       <widget class="GtkImageMenuItem" id="mSave">
+                         <property name="visible">True</property>
+                         <property name="label">gtk-save</property>
+                         <property name="use_stock">True</property>
+                         <signal name="activate" handler="mSaveSlot"/>
+                       </widget>
+                     </child>
 
-                 <child>
-                   <widget class="GtkSeparatorMenuItem" id="separatormenuitem1">
-                     <property name="visible">True</property>
-                   </widget>
-                 </child>
+                     <child>
+                       <widget class="GtkImageMenuItem" id="mSaveAs">
+                         <property name="visible">True</property>
+                         <property name="label">gtk-save-as</property>
+                         <property name="use_stock">True</property>
+                         <signal name="activate" handler="mSaveAsSlot"/>
+                       </widget>
+                     </child>
 
-                 <child>
-                   <widget class="GtkImageMenuItem" id="mQuit">
-                     <property name="visible">True</property>
-                     <property name="label">gtk-quit</property>
-                     <property name="use_stock">True</property>
-                     <signal name="activate" handler="mQuitSlot"/>
+                     <child>
+                       <widget class="GtkSeparatorMenuItem" id="separatormenuitem1">
+                         <property name="visible">True</property>
+                       </widget>
+                     </child>
+
+                     <child>
+                       <widget class="GtkImageMenuItem" id="mQuit">
+                         <property name="visible">True</property>
+                         <property name="label">gtk-quit</property>
+                         <property name="use_stock">True</property>
+                         <signal name="activate" handler="mQuitSlot"/>
+                       </widget>
+                     </child>
                    </widget>
                  </child>
                </widget>
              </child>
-           </widget>
-         </child>
-
-         <child>
-           <widget class="GtkMenuItem" id="menuitem2">
-             <property name="visible">True</property>
-             <property name="label" translatable="yes">_Edit</property>
-             <property name="use_underline">True</property>
 
              <child>
-               <widget class="GtkMenu" id="menuitem2_menu">
+               <widget class="GtkMenuItem" id="menuitem2">
+                 <property name="visible">True</property>
+                 <property name="label" translatable="yes">_Edit</property>
+                 <property name="use_underline">True</property>
 
                  <child>
-                   <widget class="GtkMenuItem" id="mTopviewSettings">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">Smyrna Settings</property>
-                     <property name="use_underline">True</property>
-                     <signal name="activate" handler="mTopviewSettingsSlot"/>
-                   </widget>
-                 </child>
+                   <widget class="GtkMenu" id="menuitem2_menu">
 
-                 <child>
-                   <widget class="GtkMenuItem" id="mAttributes">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">Attributes</property>
-                     <property name="use_underline">True</property>
-                     <signal name="activate" handler="mAttributesSlot" last_modification_time="Fri, 06 Nov 2009 17:03:12 GMT"/>
-                   </widget>
-                 </child>
+                     <child>
+                       <widget class="GtkMenuItem" id="mTopviewSettings">
+                         <property name="visible">True</property>
+                         <property name="label" translatable="yes">Smyrna Settings</property>
+                         <property name="use_underline">True</property>
+                         <signal name="activate" handler="mTopviewSettingsSlot"/>
+                       </widget>
+                     </child>
 
-                 <child>
-                   <widget class="GtkMenuItem" id="node_list1">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">Node List</property>
-                     <property name="use_underline">True</property>
-                     <signal name="activate" handler="mNodeListSlot" last_modification_time="Fri, 06 Nov 2009 17:02:05 GMT"/>
+                     <child>
+                       <widget class="GtkMenuItem" id="mAttributes">
+                         <property name="visible">True</property>
+                         <property name="label" translatable="yes">Attributes</property>
+                         <property name="use_underline">True</property>
+                         <signal name="activate" handler="mAttributesSlot" last_modification_time="Fri, 06 Nov 2009 17:03:12 GMT"/>
+                       </widget>
+                     </child>
+
+                     <child>
+                       <widget class="GtkMenuItem" id="node_list1">
+                         <property name="visible">True</property>
+                         <property name="label" translatable="yes">Node List</property>
+                         <property name="use_underline">True</property>
+                         <signal name="activate" handler="mNodeListSlot" last_modification_time="Fri, 06 Nov 2009 17:02:05 GMT"/>
+                       </widget>
+                     </child>
                    </widget>
                  </child>
                </widget>
              </child>
-           </widget>
-         </child>
-
-         <child>
-           <widget class="GtkMenuItem" id="menuitem3">
-             <property name="visible">True</property>
-             <property name="label" translatable="yes">_View</property>
-             <property name="use_underline">True</property>
 
              <child>
-               <widget class="GtkMenu" id="menuitem3_menu">
+               <widget class="GtkMenuItem" id="menuitem3">
+                 <property name="visible">True</property>
+                 <property name="label" translatable="yes">_View</property>
+                 <property name="use_underline">True</property>
 
                  <child>
-                   <widget class="GtkMenuItem" id="show_console1">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">Show Console</property>
-                     <property name="use_underline">True</property>
-                     <signal name="activate" handler="mShowConsoleSlot" last_modification_time="Wed, 22 Jul 2009 16:17:32 GMT"/>
-                   </widget>
-                 </child>
+                   <widget class="GtkMenu" id="menuitem3_menu">
 
-                 <child>
-                   <widget class="GtkMenuItem" id="hide_console1">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">Hide Console</property>
-                     <property name="use_underline">True</property>
-                     <signal name="activate" handler="mHideConsoleSlot" last_modification_time="Wed, 22 Jul 2009 16:17:32 GMT"/>
+                     <child>
+                       <widget class="GtkMenuItem" id="show_console1">
+                         <property name="visible">True</property>
+                         <property name="label" translatable="yes">Show Console</property>
+                         <property name="use_underline">True</property>
+                         <signal name="activate" handler="mShowConsoleSlot" last_modification_time="Wed, 22 Jul 2009 16:17:32 GMT"/>
+                       </widget>
+                     </child>
+
+                     <child>
+                       <widget class="GtkMenuItem" id="hide_console1">
+                         <property name="visible">True</property>
+                         <property name="label" translatable="yes">Hide Console</property>
+                         <property name="use_underline">True</property>
+                         <signal name="activate" handler="mHideConsoleSlot" last_modification_time="Wed, 22 Jul 2009 16:17:32 GMT"/>
+                       </widget>
+                     </child>
                    </widget>
                  </child>
                </widget>
              </child>
-           </widget>
-         </child>
-
-         <child>
-           <widget class="GtkMenuItem" id="menuitem6">
-             <property name="visible">True</property>
-             <property name="label" translatable="yes">Select</property>
-             <property name="use_underline">True</property>
 
              <child>
-               <widget class="GtkMenu" id="menuitem6_menu">
+               <widget class="GtkMenuItem" id="menuitem6">
+                 <property name="visible">True</property>
+                 <property name="label" translatable="yes">Select</property>
+                 <property name="use_underline">True</property>
 
                  <child>
-                   <widget class="GtkImageMenuItem" id="mSelectAll">
-                     <property name="visible">True</property>
-                     <property name="label">gtk-select-all</property>
-                     <property name="use_stock">True</property>
-                     <signal name="activate" handler="mSelectAllSlot"/>
-                   </widget>
-                 </child>
+                   <widget class="GtkMenu" id="menuitem6_menu">
 
-                 <child>
-                   <widget class="GtkMenuItem" id="mUnselectAll">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">Unselect All</property>
-                     <property name="use_underline">True</property>
-                     <signal name="activate" handler="mUnselectAllSlot"/>
-                   </widget>
-                 </child>
+                     <child>
+                       <widget class="GtkImageMenuItem" id="mSelectAll">
+                         <property name="visible">True</property>
+                         <property name="label">gtk-select-all</property>
+                         <property name="use_stock">True</property>
+                         <signal name="activate" handler="mSelectAllSlot"/>
+                       </widget>
+                     </child>
 
-                 <child>
-                   <widget class="GtkMenuItem" id="menuitem7">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">Select All Nodes</property>
-                     <property name="use_underline">True</property>
-                     <signal name="activate" handler="mSelectAllNodesSlot"/>
-                   </widget>
-                 </child>
+                     <child>
+                       <widget class="GtkMenuItem" id="mUnselectAll">
+                         <property name="visible">True</property>
+                         <property name="label" translatable="yes">Unselect All</property>
+                         <property name="use_underline">True</property>
+                         <signal name="activate" handler="mUnselectAllSlot"/>
+                       </widget>
+                     </child>
 
-                 <child>
-                   <widget class="GtkMenuItem" id="menuitem8">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">Select All Edges</property>
-                     <property name="use_underline">True</property>
-                     <signal name="activate" handler="mSelectAllEdgesSlot"/>
-                   </widget>
-                 </child>
+                     <child>
+                       <widget class="GtkMenuItem" id="menuitem7">
+                         <property name="visible">True</property>
+                         <property name="label" translatable="yes">Select All Nodes</property>
+                         <property name="use_underline">True</property>
+                         <signal name="activate" handler="mSelectAllNodesSlot"/>
+                       </widget>
+                     </child>
 
-                 <child>
-                   <widget class="GtkMenuItem" id="menuitem9">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">Select All Clusters</property>
-                     <property name="use_underline">True</property>
-                     <signal name="activate" handler="mSelectAllClustersSlot"/>
-                   </widget>
-                 </child>
+                     <child>
+                       <widget class="GtkMenuItem" id="menuitem8">
+                         <property name="visible">True</property>
+                         <property name="label" translatable="yes">Select All Edges</property>
+                         <property name="use_underline">True</property>
+                         <signal name="activate" handler="mSelectAllEdgesSlot"/>
+                       </widget>
+                     </child>
 
-                 <child>
-                   <widget class="GtkMenuItem" id="menuitem10">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">Unselect All Nodes</property>
-                     <property name="use_underline">True</property>
-                     <signal name="activate" handler="mUnselectAllNodesSlot"/>
-                   </widget>
-                 </child>
+                     <child>
+                       <widget class="GtkMenuItem" id="menuitem9">
+                         <property name="visible">True</property>
+                         <property name="label" translatable="yes">Select All Clusters</property>
+                         <property name="use_underline">True</property>
+                         <signal name="activate" handler="mSelectAllClustersSlot"/>
+                       </widget>
+                     </child>
 
-                 <child>
-                   <widget class="GtkMenuItem" id="menuitem11">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">Unselect All Edges</property>
-                     <property name="use_underline">True</property>
-                     <signal name="activate" handler="mUnselectAllEdgesSlot"/>
+                     <child>
+                       <widget class="GtkMenuItem" id="menuitem10">
+                         <property name="visible">True</property>
+                         <property name="label" translatable="yes">Unselect All Nodes</property>
+                         <property name="use_underline">True</property>
+                         <signal name="activate" handler="mUnselectAllNodesSlot"/>
+                       </widget>
+                     </child>
+
+                     <child>
+                       <widget class="GtkMenuItem" id="menuitem11">
+                         <property name="visible">True</property>
+                         <property name="label" translatable="yes">Unselect All Edges</property>
+                         <property name="use_underline">True</property>
+                         <signal name="activate" handler="mUnselectAllEdgesSlot"/>
+                       </widget>
+                     </child>
+
+                     <child>
+                       <widget class="GtkMenuItem" id="menuitem12">
+                         <property name="visible">True</property>
+                         <property name="label" translatable="yes">Unselect All Clusters</property>
+                         <property name="use_underline">True</property>
+                         <signal name="activate" handler="mUnselectAllClustersSlot"/>
+                       </widget>
+                     </child>
                    </widget>
                  </child>
+               </widget>
+             </child>
+
+             <child>
+               <widget class="GtkMenuItem" id="menuitem4">
+                 <property name="visible">True</property>
+                 <property name="label" translatable="yes">_Help</property>
+                 <property name="use_underline">True</property>
 
                  <child>
-                   <widget class="GtkMenuItem" id="menuitem12">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">Unselect All Clusters</property>
-                     <property name="use_underline">True</property>
-                     <signal name="activate" handler="mUnselectAllClustersSlot"/>
+                   <widget class="GtkMenu" id="menuitem4_menu">
+
+                     <child>
+                       <widget class="GtkImageMenuItem" id="mAbout">
+                         <property name="visible">True</property>
+                         <property name="label">gtk-about</property>
+                         <property name="use_stock">True</property>
+                         <signal name="activate" handler="mAbout"/>
+                       </widget>
+                     </child>
                    </widget>
                  </child>
                </widget>
              </child>
            </widget>
+           <packing>
+             <property name="padding">0</property>
+             <property name="expand">False</property>
+             <property name="fill">True</property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkLabel" id="label128">
+             <property name="visible">True</property>
+             <property name="label" translatable="yes">Active Graph:</property>
+             <property name="use_underline">False</property>
+             <property name="use_markup">False</property>
+             <property name="justify">GTK_JUSTIFY_RIGHT</property>
+             <property name="wrap">False</property>
+             <property name="selectable">False</property>
+             <property name="xalign">1</property>
+             <property name="yalign">0.5</property>
+             <property name="xpad">5</property>
+             <property name="ypad">0</property>
+             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+             <property name="width_chars">-1</property>
+             <property name="single_line_mode">False</property>
+             <property name="angle">0</property>
+           </widget>
+           <packing>
+             <property name="padding">0</property>
+             <property name="expand">True</property>
+             <property name="fill">True</property>
+           </packing>
          </child>
 
          <child>
-           <widget class="GtkMenuItem" id="menuitem4">
+           <widget class="GtkButton" id="button10">
              <property name="visible">True</property>
-             <property name="label" translatable="yes">_Help</property>
+             <property name="can_focus">True</property>
+             <property name="label" translatable="yes">Remove</property>
              <property name="use_underline">True</property>
+             <property name="relief">GTK_RELIEF_NORMAL</property>
+             <property name="focus_on_click">True</property>
+           </widget>
+           <packing>
+             <property name="padding">0</property>
+             <property name="expand">False</property>
+             <property name="fill">False</property>
+             <property name="pack_type">GTK_PACK_END</property>
+           </packing>
+         </child>
 
-             <child>
-               <widget class="GtkMenu" id="menuitem4_menu">
+         <child>
+           <placeholder/>
+         </child>
 
-                 <child>
-                   <widget class="GtkImageMenuItem" id="mAbout">
-                     <property name="visible">True</property>
-                     <property name="label">gtk-about</property>
-                     <property name="use_stock">True</property>
-                     <signal name="activate" handler="mAbout"/>
-                   </widget>
-                 </child>
-               </widget>
-             </child>
+         <child>
+           <widget class="GtkButton" id="btnActivateGraph">
+             <property name="visible">True</property>
+             <property name="can_focus">True</property>
+             <property name="label" translatable="yes">Activate</property>
+             <property name="use_underline">True</property>
+             <property name="relief">GTK_RELIEF_NORMAL</property>
+             <property name="focus_on_click">True</property>
+             <signal name="clicked" handler="on_btnActivateGraph_clicked" last_modification_time="Tue, 23 Jun 2009 16:15:08 GMT"/>
            </widget>
+           <packing>
+             <property name="padding">0</property>
+             <property name="expand">False</property>
+             <property name="fill">False</property>
+             <property name="pack_type">GTK_PACK_END</property>
+           </packing>
          </child>
        </widget>
        <packing>
                  </child>
 
                  <child>
-                   <widget class="GtkButton" id="btnActivateGraph">
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="label" translatable="yes">Activate</property>
-                     <property name="use_underline">True</property>
-                     <property name="relief">GTK_RELIEF_NORMAL</property>
-                     <property name="focus_on_click">True</property>
-                     <signal name="clicked" handler="on_btnActivateGraph_clicked" last_modification_time="Tue, 23 Jun 2009 16:15:08 GMT"/>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">False</property>
-                     <property name="fill">False</property>
-                   </packing>
+                   <placeholder/>
                  </child>
 
                  <child>
-                   <widget class="GtkButton" id="button10">
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="label" translatable="yes">Remove</property>
-                     <property name="use_underline">True</property>
-                     <property name="relief">GTK_RELIEF_NORMAL</property>
-                     <property name="focus_on_click">True</property>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">False</property>
-                     <property name="fill">False</property>
-                   </packing>
+                   <placeholder/>
                  </child>
                </widget>
                <packing>
 
 <widget class="GtkDialog" id="dlgSettings">
   <property name="border_width">5</property>
-  <property name="width_request">462</property>
+  <property name="width_request">676</property>
   <property name="height_request">505</property>
   <property name="title" translatable="yes"></property>
   <property name="type">GTK_WINDOW_TOPLEVEL</property>
              <property name="visible">True</property>
              <property name="width">400</property>
              <property name="height">400</property>
-             <property name="hadjustment">0 0 444 0 399.6 444</property>
+             <property name="hadjustment">0 0 658 0 592.2 658</property>
              <property name="vadjustment">0 0 425 0 382.5 425</property>
 
              <child>
@@ -3267,18 +3320,6 @@ Rain Forest</property>
                  <property name="y">0</property>
                </packing>
              </child>
-
-             <child>
-               <widget class="GtkHSeparator" id="hseparator9">
-                 <property name="width_request">51</property>
-                 <property name="height_request">25</property>
-                 <property name="visible">True</property>
-               </widget>
-               <packing>
-                 <property name="x">293</property>
-                 <property name="y">14</property>
-               </packing>
-             </child>
            </widget>
            <packing>
              <property name="tab_expand">False</property>
@@ -3315,7 +3356,7 @@ Rain Forest</property>
              <property name="visible">True</property>
              <property name="width">400</property>
              <property name="height">400</property>
-             <property name="hadjustment">0 0 444 0 399.6 444</property>
+             <property name="hadjustment">0 0 658 0 592.2 658</property>
              <property name="vadjustment">0 0 425 0 382.5 425</property>
 
              <child>
@@ -3825,7 +3866,7 @@ GLUT_BITMAP_HELVETICA_18
              <property name="visible">True</property>
              <property name="width">400</property>
              <property name="height">400</property>
-             <property name="hadjustment">0 0 444 0 399.6 444</property>
+             <property name="hadjustment">0 0 658 0 592.2 658</property>
              <property name="vadjustment">0 0 425 0 382.5 425</property>
 
              <child>
@@ -4204,7 +4245,7 @@ Custom</property>
              <property name="visible">True</property>
              <property name="width">400</property>
              <property name="height">400</property>
-             <property name="hadjustment">0 0 444 0 399.6 444</property>
+             <property name="hadjustment">0 0 658 0 592.2 658</property>
              <property name="vadjustment">0 0 425 0 382.5 425</property>
 
              <child>
@@ -4596,7 +4637,7 @@ Custom</property>
              <property name="visible">True</property>
              <property name="width">400</property>
              <property name="height">400</property>
-             <property name="hadjustment">0 0 444 0 399.6 444</property>
+             <property name="hadjustment">0 0 658 0 592.2 658</property>
              <property name="vadjustment">0 0 425 0 382.5 425</property>
 
              <child>
@@ -5202,7 +5243,7 @@ Custom</property>
              <property name="visible">True</property>
              <property name="width">400</property>
              <property name="height">400</property>
-             <property name="hadjustment">0 0 444 0 399.6 444</property>
+             <property name="hadjustment">0 0 658 0 592.2 658</property>
              <property name="vadjustment">0 0 425 0 382.5 425</property>
 
              <child>
@@ -5551,207 +5592,6 @@ Custom</property>
                  <property name="height_request">381</property>
                  <property name="visible">True</property>
 
-                 <child>
-                   <widget class="GtkEntry" id="txtAttr">
-                     <property name="width_request">88</property>
-                     <property name="height_request">21</property>
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="editable">True</property>
-                     <property name="visibility">True</property>
-                     <property name="max_length">0</property>
-                     <property name="text" translatable="yes"></property>
-                     <property name="has_frame">True</property>
-                     <property name="invisible_char">*</property>
-                     <property name="activates_default">False</property>
-                     <signal name="changed" handler="on_txtAttr_changed" last_modification_time="Thu, 22 Oct 2009 20:26:47 GMT"/>
-                   </widget>
-                   <packing>
-                     <property name="x">8</property>
-                     <property name="y">58</property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkEntry" id="txtValue">
-                     <property name="width_request">88</property>
-                     <property name="height_request">21</property>
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="editable">True</property>
-                     <property name="visibility">True</property>
-                     <property name="max_length">0</property>
-                     <property name="text" translatable="yes"></property>
-                     <property name="has_frame">True</property>
-                     <property name="invisible_char">*</property>
-                     <property name="activates_default">False</property>
-                   </widget>
-                   <packing>
-                     <property name="x">112</property>
-                     <property name="y">58</property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkEntry" id="txtDefValue">
-                     <property name="width_request">88</property>
-                     <property name="height_request">21</property>
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="editable">True</property>
-                     <property name="visibility">True</property>
-                     <property name="max_length">0</property>
-                     <property name="text" translatable="yes"></property>
-                     <property name="has_frame">True</property>
-                     <property name="invisible_char">*</property>
-                     <property name="activates_default">False</property>
-                   </widget>
-                   <packing>
-                     <property name="x">216</property>
-                     <property name="y">58</property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="label121">
-                     <property name="width_request">96</property>
-                     <property name="height_request">16</property>
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">Attribute Name</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="x">8</property>
-                     <property name="y">40</property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="label122">
-                     <property name="width_request">40</property>
-                     <property name="height_request">16</property>
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">Value</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="x">112</property>
-                     <property name="y">40</property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="label123">
-                     <property name="width_request">88</property>
-                     <property name="height_request">16</property>
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">Default Value</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="x">216</property>
-                     <property name="y">40</property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkButton" id="attrAddBtn">
-                     <property name="width_request">32</property>
-                     <property name="height_request">24</property>
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="label" translatable="yes">+</property>
-                     <property name="use_underline">True</property>
-                     <property name="relief">GTK_RELIEF_NORMAL</property>
-                     <property name="focus_on_click">True</property>
-                     <signal name="clicked" handler="on_attrAddBtn_clicked" last_modification_time="Mon, 26 Oct 2009 22:04:52 GMT"/>
-                   </widget>
-                   <packing>
-                     <property name="x">384</property>
-                     <property name="y">56</property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkButton" id="attrApplyBtn">
-                     <property name="width_request">54</property>
-                     <property name="height_request">23</property>
-                     <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="label" translatable="yes">Apply</property>
-                     <property name="use_underline">True</property>
-                     <property name="relief">GTK_RELIEF_NORMAL</property>
-                     <property name="focus_on_click">True</property>
-                     <signal name="clicked" handler="on_attrApplyBtn_clicked" last_modification_time="Mon, 26 Oct 2009 19:42:41 GMT"/>
-                   </widget>
-                   <packing>
-                     <property name="x">368</property>
-                     <property name="y">56</property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="label125">
-                     <property name="width_request">72</property>
-                     <property name="height_request">16</property>
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes">Propagate</property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-                     <property name="width_chars">-1</property>
-                     <property name="single_line_mode">False</property>
-                     <property name="angle">0</property>
-                   </widget>
-                   <packing>
-                     <property name="x">312</property>
-                     <property name="y">40</property>
-                   </packing>
-                 </child>
-
                  <child>
                    <widget class="GtkHBox" id="hbox12">
                      <property name="width_request">428</property>
@@ -5828,23 +5668,296 @@ Custom</property>
                  </child>
 
                  <child>
-                   <widget class="GtkCheckButton" id="attrProg">
-                     <property name="width_request">24</property>
-                     <property name="height_request">16</property>
+                   <widget class="GtkTable" id="table18">
+                     <property name="width_request">562</property>
+                     <property name="height_request">68</property>
                      <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="label" translatable="yes"></property>
-                     <property name="use_underline">True</property>
-                     <property name="relief">GTK_RELIEF_NORMAL</property>
-                     <property name="focus_on_click">True</property>
-                     <property name="active">False</property>
-                     <property name="inconsistent">False</property>
-                     <property name="draw_indicator">True</property>
-                     <signal name="toggled" handler="on_attrProg_toggled" last_modification_time="Mon, 26 Oct 2009 19:57:29 GMT"/>
+                     <property name="n_rows">3</property>
+                     <property name="n_columns">6</property>
+                     <property name="homogeneous">False</property>
+                     <property name="row_spacing">0</property>
+                     <property name="column_spacing">0</property>
+
+                     <child>
+                       <widget class="GtkEntry" id="txtAttr">
+                         <property name="width_request">88</property>
+                         <property name="height_request">21</property>
+                         <property name="visible">True</property>
+                         <property name="can_focus">True</property>
+                         <property name="editable">True</property>
+                         <property name="visibility">True</property>
+                         <property name="max_length">0</property>
+                         <property name="text" translatable="yes"></property>
+                         <property name="has_frame">True</property>
+                         <property name="invisible_char">*</property>
+                         <property name="activates_default">False</property>
+                         <signal name="changed" handler="on_txtAttr_changed" last_modification_time="Thu, 22 Oct 2009 20:26:47 GMT"/>
+                       </widget>
+                       <packing>
+                         <property name="left_attach">0</property>
+                         <property name="right_attach">1</property>
+                         <property name="top_attach">1</property>
+                         <property name="bottom_attach">2</property>
+                         <property name="y_options"></property>
+                       </packing>
+                     </child>
+
+                     <child>
+                       <widget class="GtkEntry" id="txtValue">
+                         <property name="width_request">88</property>
+                         <property name="height_request">21</property>
+                         <property name="visible">True</property>
+                         <property name="can_focus">True</property>
+                         <property name="editable">True</property>
+                         <property name="visibility">True</property>
+                         <property name="max_length">0</property>
+                         <property name="text" translatable="yes"></property>
+                         <property name="has_frame">True</property>
+                         <property name="invisible_char">*</property>
+                         <property name="activates_default">False</property>
+                       </widget>
+                       <packing>
+                         <property name="left_attach">1</property>
+                         <property name="right_attach">2</property>
+                         <property name="top_attach">1</property>
+                         <property name="bottom_attach">2</property>
+                         <property name="y_options"></property>
+                       </packing>
+                     </child>
+
+                     <child>
+                       <widget class="GtkEntry" id="txtDefValue">
+                         <property name="width_request">88</property>
+                         <property name="height_request">21</property>
+                         <property name="visible">True</property>
+                         <property name="can_focus">True</property>
+                         <property name="editable">True</property>
+                         <property name="visibility">True</property>
+                         <property name="max_length">0</property>
+                         <property name="text" translatable="yes"></property>
+                         <property name="has_frame">True</property>
+                         <property name="invisible_char">*</property>
+                         <property name="activates_default">False</property>
+                       </widget>
+                       <packing>
+                         <property name="left_attach">2</property>
+                         <property name="right_attach">3</property>
+                         <property name="top_attach">1</property>
+                         <property name="bottom_attach">2</property>
+                         <property name="y_options"></property>
+                       </packing>
+                     </child>
+
+                     <child>
+                       <widget class="GtkLabel" id="label122">
+                         <property name="width_request">40</property>
+                         <property name="height_request">16</property>
+                         <property name="visible">True</property>
+                         <property name="label" translatable="yes">Value</property>
+                         <property name="use_underline">False</property>
+                         <property name="use_markup">False</property>
+                         <property name="justify">GTK_JUSTIFY_LEFT</property>
+                         <property name="wrap">False</property>
+                         <property name="selectable">False</property>
+                         <property name="xalign">0.5</property>
+                         <property name="yalign">0.5</property>
+                         <property name="xpad">0</property>
+                         <property name="ypad">0</property>
+                         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                         <property name="width_chars">-1</property>
+                         <property name="single_line_mode">False</property>
+                         <property name="angle">0</property>
+                       </widget>
+                       <packing>
+                         <property name="left_attach">1</property>
+                         <property name="right_attach">2</property>
+                         <property name="top_attach">0</property>
+                         <property name="bottom_attach">1</property>
+                         <property name="x_options">fill</property>
+                         <property name="y_options"></property>
+                       </packing>
+                     </child>
+
+                     <child>
+                       <widget class="GtkLabel" id="label123">
+                         <property name="width_request">88</property>
+                         <property name="height_request">16</property>
+                         <property name="visible">True</property>
+                         <property name="label" translatable="yes">Default Value</property>
+                         <property name="use_underline">False</property>
+                         <property name="use_markup">False</property>
+                         <property name="justify">GTK_JUSTIFY_LEFT</property>
+                         <property name="wrap">False</property>
+                         <property name="selectable">False</property>
+                         <property name="xalign">0.5</property>
+                         <property name="yalign">0.5</property>
+                         <property name="xpad">0</property>
+                         <property name="ypad">0</property>
+                         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                         <property name="width_chars">-1</property>
+                         <property name="single_line_mode">False</property>
+                         <property name="angle">0</property>
+                       </widget>
+                       <packing>
+                         <property name="left_attach">2</property>
+                         <property name="right_attach">3</property>
+                         <property name="top_attach">0</property>
+                         <property name="bottom_attach">1</property>
+                         <property name="x_options">fill</property>
+                         <property name="y_options"></property>
+                       </packing>
+                     </child>
+
+                     <child>
+                       <widget class="GtkLabel" id="label121">
+                         <property name="width_request">96</property>
+                         <property name="height_request">16</property>
+                         <property name="visible">True</property>
+                         <property name="label" translatable="yes">Attribute Name</property>
+                         <property name="use_underline">False</property>
+                         <property name="use_markup">False</property>
+                         <property name="justify">GTK_JUSTIFY_LEFT</property>
+                         <property name="wrap">False</property>
+                         <property name="selectable">False</property>
+                         <property name="xalign">0.5</property>
+                         <property name="yalign">0.5</property>
+                         <property name="xpad">0</property>
+                         <property name="ypad">0</property>
+                         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                         <property name="width_chars">-1</property>
+                         <property name="single_line_mode">False</property>
+                         <property name="angle">0</property>
+                       </widget>
+                       <packing>
+                         <property name="left_attach">0</property>
+                         <property name="right_attach">1</property>
+                         <property name="top_attach">0</property>
+                         <property name="bottom_attach">1</property>
+                         <property name="x_options">fill</property>
+                         <property name="y_options"></property>
+                       </packing>
+                     </child>
+
+                     <child>
+                       <widget class="GtkLabel" id="label125">
+                         <property name="width_request">72</property>
+                         <property name="height_request">16</property>
+                         <property name="visible">True</property>
+                         <property name="label" translatable="yes">Publish</property>
+                         <property name="use_underline">False</property>
+                         <property name="use_markup">False</property>
+                         <property name="justify">GTK_JUSTIFY_LEFT</property>
+                         <property name="wrap">False</property>
+                         <property name="selectable">False</property>
+                         <property name="xalign">0</property>
+                         <property name="yalign">0.5</property>
+                         <property name="xpad">0</property>
+                         <property name="ypad">0</property>
+                         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                         <property name="width_chars">-1</property>
+                         <property name="single_line_mode">False</property>
+                         <property name="angle">0</property>
+                       </widget>
+                       <packing>
+                         <property name="left_attach">3</property>
+                         <property name="right_attach">4</property>
+                         <property name="top_attach">0</property>
+                         <property name="bottom_attach">1</property>
+                         <property name="x_options">fill</property>
+                         <property name="y_options"></property>
+                       </packing>
+                     </child>
+
+                     <child>
+                       <widget class="GtkCheckButton" id="attrProg">
+                         <property name="width_request">24</property>
+                         <property name="height_request">16</property>
+                         <property name="visible">True</property>
+                         <property name="can_focus">True</property>
+                         <property name="label" translatable="yes"></property>
+                         <property name="use_underline">True</property>
+                         <property name="relief">GTK_RELIEF_NORMAL</property>
+                         <property name="focus_on_click">True</property>
+                         <property name="active">False</property>
+                         <property name="inconsistent">False</property>
+                         <property name="draw_indicator">True</property>
+                         <signal name="toggled" handler="on_attrProg_toggled" last_modification_time="Mon, 26 Oct 2009 19:57:29 GMT"/>
+                       </widget>
+                       <packing>
+                         <property name="left_attach">3</property>
+                         <property name="right_attach">4</property>
+                         <property name="top_attach">1</property>
+                         <property name="bottom_attach">2</property>
+                         <property name="x_options">fill</property>
+                         <property name="y_options"></property>
+                       </packing>
+                     </child>
+
+                     <child>
+                       <widget class="GtkButton" id="attrAddBtn">
+                         <property name="width_request">32</property>
+                         <property name="height_request">23</property>
+                         <property name="visible">True</property>
+                         <property name="can_focus">True</property>
+                         <property name="label" translatable="yes">+</property>
+                         <property name="use_underline">True</property>
+                         <property name="relief">GTK_RELIEF_NORMAL</property>
+                         <property name="focus_on_click">True</property>
+                         <signal name="clicked" handler="on_attrAddBtn_clicked" last_modification_time="Mon, 26 Oct 2009 22:04:52 GMT"/>
+                       </widget>
+                       <packing>
+                         <property name="left_attach">5</property>
+                         <property name="right_attach">6</property>
+                         <property name="top_attach">1</property>
+                         <property name="bottom_attach">2</property>
+                         <property name="x_options">fill</property>
+                         <property name="y_options"></property>
+                       </packing>
+                     </child>
+
+                     <child>
+                       <widget class="GtkButton" id="attrApplyBtn">
+                         <property name="visible">True</property>
+                         <property name="can_focus">True</property>
+                         <property name="label" translatable="yes">Apply</property>
+                         <property name="use_underline">True</property>
+                         <property name="relief">GTK_RELIEF_NORMAL</property>
+                         <property name="focus_on_click">True</property>
+                         <signal name="clicked" handler="on_attrApplyBtn_clicked" last_modification_time="Mon, 09 Nov 2009 23:05:37 GMT"/>
+                       </widget>
+                       <packing>
+                         <property name="left_attach">4</property>
+                         <property name="right_attach">5</property>
+                         <property name="top_attach">1</property>
+                         <property name="bottom_attach">2</property>
+                         <property name="x_options">fill</property>
+                         <property name="y_options"></property>
+                       </packing>
+                     </child>
+
+                     <child>
+                       <widget class="GtkButton" id="attrSearchBtn">
+                         <property name="visible">True</property>
+                         <property name="can_focus">True</property>
+                         <property name="label" translatable="yes">Search</property>
+                         <property name="use_underline">True</property>
+                         <property name="relief">GTK_RELIEF_NORMAL</property>
+                         <property name="focus_on_click">True</property>
+                         <signal name="clicked" handler="on_attrSearchBtn_clicked" last_modification_time="Wed, 11 Nov 2009 16:07:55 GMT"/>
+                       </widget>
+                       <packing>
+                         <property name="left_attach">4</property>
+                         <property name="right_attach">5</property>
+                         <property name="top_attach">2</property>
+                         <property name="bottom_attach">3</property>
+                         <property name="x_options">fill</property>
+                         <property name="y_options"></property>
+                       </packing>
+                     </child>
                    </widget>
                    <packing>
-                     <property name="x">323</property>
-                     <property name="y">60</property>
+                     <property name="x">12</property>
+                     <property name="y">41</property>
                    </packing>
                  </child>
                </widget>