static void opts_clicked(GtkToolButton *toolbutton, gpointer user_data) { int event_time = gtk_get_current_event_time(); gu_tab_t *gt = user_data; gtk_ui_t *gu = gt->gt_gw->gw_gu; dyn_menu_t *dm = calloc(1, sizeof(dyn_menu_t)); dm->dm_menu = gtk_menu_new(); gtk_widget_show_all(dm->dm_menu); gtk_menu_attach_to_widget(GTK_MENU(dm->dm_menu), GTK_WIDGET(toolbutton), NULL); gtk_menu_popup(GTK_MENU(dm->dm_menu), NULL, NULL, NULL, NULL, 0, event_time); gu_cloner_init(&dm->dm_nodes, dm, dyn_menu_item_add, dyn_menu_item_del, sizeof(dyn_menu_item_t), gu, GU_CLONER_TRACK_POSITION); dm->dm_node_sub = prop_subscribe(0, PROP_TAG_NAME("nav", "currentpage", "model", "options"), PROP_TAG_CALLBACK, gu_cloner_subscription, &dm->dm_nodes, PROP_TAG_NAMED_ROOT, gt->gt_nav, "nav", PROP_TAG_COURIER, gu->gu_pc, NULL); g_signal_connect(dm->dm_menu, "destroy", G_CALLBACK(dyn_menu_destroyed), dm); }
void gu_settings_create(gu_nav_page_t *gnp) { GtkWidget *vbox; gu_tab_t *gt = gnp->gnp_gt; gtk_ui_t *gu = gt->gt_gw->gw_gu; settinglist_t *sl = calloc(1, sizeof(settinglist_t)); sl->sl_gt = gnp->gnp_gt; /* Scrolled window */ gnp->gnp_pageroot = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(gnp->gnp_pageroot), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); /* Vbox */ vbox = gtk_vbox_new(FALSE, 1); gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(gnp->gnp_pageroot), vbox); sl->sl_box = vbox; gu_cloner_init(&sl->sl_nodes, sl, source_add, source_del, sizeof(setting_t), gu, GU_CLONER_TRACK_POSITION); sl->sl_node_sub = prop_subscribe(0, PROP_TAG_NAME("page", "model", "nodes"), PROP_TAG_CALLBACK, gu_cloner_subscription, &sl->sl_nodes, PROP_TAG_ROOT, gnp->gnp_prop, PROP_TAG_COURIER, gu->gu_pc, NULL); g_signal_connect(GTK_OBJECT(gnp->gnp_pageroot), "destroy", G_CALLBACK(settinglist_destroy), sl); gtk_container_add(GTK_CONTAINER(gnp->gnp_pagebin), gnp->gnp_pageroot); gtk_widget_show_all(gnp->gnp_pageroot); }
void gu_home_create(gu_nav_page_t *gnp) { GtkWidget *vbox; gu_tab_t *gt = gnp->gnp_gt; gtk_ui_t *gu = gt->gt_gw->gw_gu; home_t *h = calloc(1, sizeof(home_t)); h->h_gt = gnp->gnp_gt; /* Scrolled window */ gnp->gnp_pageroot = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(gnp->gnp_pageroot), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); /* Vbox */ vbox = gtk_vbox_new(FALSE, 1); gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(gnp->gnp_pageroot), vbox); h->h_sourcebox = vbox; gu_cloner_init(&h->h_sources, h, source_add, source_del, sizeof(source_t), gu, GU_CLONER_TRACK_POSITION); h->h_src_sub = prop_subscribe(0, PROP_TAG_NAME("global", "services", "enabled"), PROP_TAG_CALLBACK, gu_cloner_subscription, &h->h_sources, PROP_TAG_COURIER, glibcourier, NULL); g_signal_connect(GTK_OBJECT(gnp->gnp_pageroot), "destroy", G_CALLBACK(home_destroy), h); gtk_container_add(GTK_CONTAINER(gnp->gnp_pagebin), gnp->gnp_pageroot); gtk_widget_show_all(gnp->gnp_pageroot); }