aboutsummaryrefslogtreecommitdiffstats
path: root/mdns.c
diff options
context:
space:
mode:
authorkraxel <kraxel>2006-04-06 09:36:38 +0000
committerkraxel <kraxel>2006-04-06 09:36:38 +0000
commit1131de02524b7d4d87c804cc18f8ec0337b20e70 (patch)
tree26e244b831e0277de2ab993729a458007ed417ea /mdns.c
parent3a84644b70ac7d14ab4e13bd2f4d957f10c53f62 (diff)
downloadxenwatch-1131de02524b7d4d87c804cc18f8ec0337b20e70.tar.gz
mdns browser tweaks
Diffstat (limited to 'mdns.c')
-rw-r--r--mdns.c65
1 files changed, 55 insertions, 10 deletions
diff --git a/mdns.c b/mdns.c
index 39166cb..d50fc10 100644
--- a/mdns.c
+++ b/mdns.c
@@ -505,6 +505,24 @@ int mdns_browse(struct mdns_window *mdns,
/* ---------------------------------------------------------------------- */
+static void menu_cb_view_default(GtkToggleAction *action, gpointer userdata)
+{
+ struct mdns_window *mdns = userdata;
+ mdns_view(mdns, MDNS_VIEW_DEFAULT);
+}
+
+static void menu_cb_view_url(GtkToggleAction *action, gpointer userdata)
+{
+ struct mdns_window *mdns = userdata;
+ mdns_view(mdns, MDNS_VIEW_URL);
+}
+
+static void menu_cb_view_xen(GtkToggleAction *action, gpointer userdata)
+{
+ struct mdns_window *mdns = userdata;
+ mdns_view(mdns, MDNS_VIEW_XEN);
+}
+
static void menu_cb_view_col(GtkToggleAction *action, gpointer userdata, int id)
{
struct mdns_window *mdns = userdata;
@@ -605,6 +623,18 @@ static const GtkActionEntry entries[] = {
.label = "_Close",
.accelerator = "<control>Q",
.callback = G_CALLBACK(menu_cb_close),
+ },{
+ .name = "ViewDefault",
+ .label = "_Default",
+ .callback = G_CALLBACK(menu_cb_view_default),
+ },{
+ .name = "ViewURL",
+ .label = "_URL",
+ .callback = G_CALLBACK(menu_cb_view_url),
+ },{
+ .name = "ViewXen",
+ .label = "_Xen",
+ .callback = G_CALLBACK(menu_cb_view_xen),
},
};
@@ -674,6 +704,10 @@ static char ui_xml[] =
" <menuitem action='Close'/>"
" </menu>"
" <menu action='ViewMenu'>"
+" <menuitem action='ViewDefault'/>"
+" <menuitem action='ViewURL'/>"
+" <menuitem action='ViewXen'/>"
+" <separator/>"
" <menuitem action='ColType'/>"
" <menuitem action='ColDomain'/>"
" <menuitem action='ColInterface'/>"
@@ -829,7 +863,7 @@ static GtkWidget *mdns_create_view(struct mdns_window *mdns)
return view;
}
-static void set_default_visible_cols(struct mdns_window *mdns, int url, int xen)
+static void set_default_visible_cols(struct mdns_window *mdns, enum mdns_view view)
{
GtkToggleAction *ta;
@@ -846,22 +880,22 @@ static void set_default_visible_cols(struct mdns_window *mdns, int url, int xen)
gtk_toggle_action_set_active(ta, TRUE);
ta = GTK_TOGGLE_ACTION(gtk_action_group_get_action(mdns->ag, "ColAddress"));
- gtk_toggle_action_set_active(ta, !xen && !url);
+ gtk_toggle_action_set_active(ta, view == MDNS_VIEW_DEFAULT);
ta = GTK_TOGGLE_ACTION(gtk_action_group_get_action(mdns->ag, "ColPort"));
- gtk_toggle_action_set_active(ta, !xen && !url);
+ gtk_toggle_action_set_active(ta, view == MDNS_VIEW_DEFAULT);
ta = GTK_TOGGLE_ACTION(gtk_action_group_get_action(mdns->ag, "ColPath"));
- gtk_toggle_action_set_active(ta, !xen && !url);
+ gtk_toggle_action_set_active(ta, view == MDNS_VIEW_DEFAULT);
ta = GTK_TOGGLE_ACTION(gtk_action_group_get_action(mdns->ag, "ColURL"));
- gtk_toggle_action_set_active(ta, url);
+ gtk_toggle_action_set_active(ta, view == MDNS_VIEW_URL);
ta = GTK_TOGGLE_ACTION(gtk_action_group_get_action(mdns->ag, "ColXenDomID"));
- gtk_toggle_action_set_active(ta, xen);
+ gtk_toggle_action_set_active(ta, view == MDNS_VIEW_XEN);
ta = GTK_TOGGLE_ACTION(gtk_action_group_get_action(mdns->ag, "ColXenVmUUID"));
- gtk_toggle_action_set_active(ta, xen);
+ gtk_toggle_action_set_active(ta, view == MDNS_VIEW_XEN);
}
-struct mdns_window *mdns_create_window(int standalone, int url, int xen)
+struct mdns_window *mdns_create_window(int standalone, enum mdns_view view)
{
struct mdns_window *mdns;
GtkWidget *vbox, *menubar, *toolbar, *scroll;
@@ -944,7 +978,7 @@ struct mdns_window *mdns_create_window(int standalone, int url, int xen)
gtk_container_add(GTK_CONTAINER(scroll), mdns->view);
gtk_box_pack_end(GTK_BOX(vbox), mdns->status, FALSE, TRUE, 0);
- set_default_visible_cols(mdns, url, xen);
+ set_default_visible_cols(mdns, view);
return mdns;
}
@@ -958,11 +992,17 @@ void mdns_destroy_window(struct mdns_window *mdns)
gtk_widget_destroy(mdns->toplevel);
}
+int mdns_view(struct mdns_window *mdns, enum mdns_view view)
+{
+ set_default_visible_cols(mdns, view);
+ return 0;
+}
+
/* ---------------------------------------------------------------------- */
#else /* ! HAVE_AVAHI */
-struct mdns_window *mdns_create_window(int standalone, int url, int xen)
+struct mdns_window *mdns_create_window(int standalone, enum mdns_view view)
{
fprintf(stderr,"Compiled without mDNS support, sorry.\n");
return NULL;
@@ -977,4 +1017,9 @@ int mdns_browse(struct mdns_window *mdns,
return -1;
}
+int mdns_view(struct mdns_window *mdns, enum mdns_view view)
+{
+ return -1;
+}
+
#endif