diff options
Diffstat (limited to 'mdns.c')
-rw-r--r-- | mdns.c | 25 |
1 files changed, 18 insertions, 7 deletions
@@ -119,6 +119,7 @@ struct mdns_window { GtkWidget *toplevel, *view, *status; GtkActionGroup *ag; int standalone; + mdns_callback callback; const AvahiPoll *poll_api; AvahiGLibPoll *glib_poll; @@ -715,7 +716,7 @@ static void row_activate(GtkTreeView* treeview, GtkTreeViewColumn* col, gpointer data) { -// struct mdns_window *mdns = data; + struct mdns_window *mdns = data; GtkTreeModel* model; GtkTreeIter iter; char *name, *type, *host, *port, *url; @@ -732,9 +733,13 @@ static void row_activate(GtkTreeView* treeview, ST_COL_URL, &url, -1); - rc = run_actions(default_actions, array_size(default_actions), - name, type, host, port, url); - /* FIXME: error message if failed */ + if (mdns->callback) { + mdns->callback(mdns, name, type, host, atoi(port), url); + } else { + rc = run_actions(default_actions, array_size(default_actions), + name, type, host, port, url); + /* FIXME: error message if failed */ + } } /* ---------------------------------------------------------------------- */ @@ -850,9 +855,11 @@ static char ui_xml[] = " <menuitem action='ColXenVmUUID'/>" " </menu>" " </menubar>" +#ifdef WITH_TOOLBAR " <toolbar action='ToolBar'>" " <toolitem action='Close'/>" " </toolbar>" +#endif "</ui>"; /* ------------------------------------------------------------------ */ @@ -1024,7 +1031,8 @@ static void set_default_visible_cols(struct mdns_window *mdns, enum mdns_view vi gtk_toggle_action_set_active(ta, view == MDNS_VIEW_XEN); } -struct mdns_window *mdns_create_window(int standalone, enum mdns_view view) +struct mdns_window *mdns_create_window(int standalone, enum mdns_view view, + mdns_callback callback) { struct mdns_window *mdns; GtkWidget *vbox, *menubar, *toolbar, *scroll, *frame; @@ -1039,6 +1047,7 @@ struct mdns_window *mdns_create_window(int standalone, enum mdns_view view) return NULL; } mdns->standalone = standalone; + mdns->callback = callback; mdns->toplevel = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(mdns->toplevel), "mdns"); @@ -1099,7 +1108,8 @@ struct mdns_window *mdns_create_window(int standalone, enum mdns_view view) menubar = gtk_ui_manager_get_widget(ui, "/MainMenu"); gtk_box_pack_start(GTK_BOX(vbox), menubar, FALSE, FALSE, 0); toolbar = gtk_ui_manager_get_widget(ui, "/ToolBar"); - gtk_box_pack_start(GTK_BOX(vbox), toolbar, FALSE, FALSE, 0); + if (toolbar) + gtk_box_pack_start(GTK_BOX(vbox), toolbar, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), scroll, TRUE, TRUE, 0); gtk_container_add(GTK_CONTAINER(scroll), mdns->view); @@ -1131,7 +1141,8 @@ int mdns_view(struct mdns_window *mdns, enum mdns_view view) #else /* ! HAVE_AVAHI */ -struct mdns_window *mdns_create_window(int standalone, enum mdns_view view) +struct mdns_window *mdns_create_window(int standalone, enum mdns_view view, + mdns_callback callback) { fprintf(stderr,"Compiled without mDNS support, sorry.\n"); return NULL; |