enable graphviz arrange

This commit is contained in:
Nedko Arnaudov 2009-08-22 19:37:57 +03:00
parent 16de50fc71
commit 9a47ef6a66
3 changed files with 31 additions and 0 deletions

View File

@ -41,11 +41,13 @@ struct graph_view
struct list_head g_views;
GtkScrolledWindow * g_main_scrolledwin;
graph_canvas_handle g_current_graph_canvas;
void view_init(void)
{
g_main_scrolledwin = GTK_SCROLLED_WINDOW(get_glade_widget("main_scrolledwin"));
INIT_LIST_HEAD(&g_views);
g_current_graph_canvas = NULL;
}
bool create_view(const char * name, const char * service, const char * object, bool force_activate, graph_view_handle * handle_ptr)
@ -128,6 +130,7 @@ static void attach_canvas(struct graph_view * view_ptr)
gtk_container_remove(GTK_CONTAINER(g_main_scrolledwin), child);
}
g_current_graph_canvas = view_ptr->graph_canvas;
gtk_container_add(GTK_CONTAINER(g_main_scrolledwin), view_ptr->canvas_widget);
//_canvas->scroll_to(static_cast<int>(_canvas->width()/2 - 320), static_cast<int>(_canvas->height()/2 - 240)); // FIXME: hardcoded
@ -143,6 +146,7 @@ static void detach_canvas(struct graph_view * view_ptr)
if (child == view_ptr->canvas_widget)
{
gtk_container_remove(GTK_CONTAINER(g_main_scrolledwin), view_ptr->canvas_widget);
g_current_graph_canvas = NULL;
}
}
@ -177,3 +181,13 @@ const char * get_view_name(graph_view_handle view)
{
return view_ptr->name;
}
canvas_handle get_current_canvas()
{
if (g_current_graph_canvas == NULL)
{
return NULL;
}
return graph_canvas_get_canvas(g_current_graph_canvas);
}

View File

@ -36,6 +36,7 @@ bool create_view(const char * name, const char * service, const char * object, b
void destroy_view(graph_view_handle view);
void activate_view(graph_view_handle view);
const char * get_view_name(graph_view_handle view);
canvas_handle get_current_canvas();
/* not very good place for this prototype, because it is not implemented in graph_view.c */
void set_main_window_title(graph_view_handle view);

View File

@ -151,6 +151,19 @@ static void clear_load(void)
gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(g_xrun_progress_bar), 0.0);
}
static void arrange(void)
{
canvas_handle canvas;
lash_info("arrange request");
canvas = get_current_canvas();
if (canvas != NULL)
{
canvas_arrange(canvas);
}
}
static gboolean poll_jack(gpointer data)
{
update_load();
@ -271,9 +284,12 @@ int main(int argc, char** argv)
g_signal_connect(G_OBJECT(get_glade_widget("menu_file_quit")), "activate", G_CALLBACK(gtk_main_quit), NULL);
g_signal_connect(G_OBJECT(g_buffer_size_combo), "changed", G_CALLBACK(buffer_size_change_request), NULL);
g_signal_connect(G_OBJECT(g_clear_load_button), "clicked", G_CALLBACK(clear_load), NULL);
g_signal_connect(G_OBJECT(get_glade_widget("menu_view_arrange")), "activate", G_CALLBACK(arrange), NULL);
gtk_widget_show(g_main_win);
arrange(); /* XXX: initial arrange of jack graph */
//_about_win->set_transient_for(*_main_win);
gtk_main();