/* Creates and returns a tree view that contains each of the lines in IA's file as a row. */ static PsppSheetView * create_lines_tree_view (GtkContainer *parent, struct import_assistant *ia) { PsppSheetView *tree_view = NULL; PsppSheetViewColumn *column; size_t max_line_length; gint content_width, header_width; size_t i; const gchar *title = _("Text"); make_tree_view (ia, 0, &tree_view); column = pspp_sheet_view_column_new_with_attributes ( title, ia->asst.fixed_renderer, (void *) NULL); pspp_sheet_view_column_set_cell_data_func (column, ia->asst.fixed_renderer, render_line, NULL, NULL); pspp_sheet_view_column_set_resizable (column, TRUE); pspp_sheet_view_column_set_expand (column, TRUE); max_line_length = 0; for (i = 0; i < ia->file.line_cnt; i++) { size_t w = ds_length (&ia->file.lines[i]); max_line_length = MAX (max_line_length, w); } content_width = get_monospace_width (tree_view, ia->asst.fixed_renderer, max_line_length); header_width = get_string_width (tree_view, ia->asst.prop_renderer, title); pspp_sheet_view_column_set_fixed_width (column, MAX (content_width, header_width)); pspp_sheet_view_append_column (tree_view, column); gtk_container_add (parent, GTK_WIDGET (tree_view)); gtk_widget_show (GTK_WIDGET (tree_view)); return tree_view; }
int main(int argc, char ** argv) { GtkWidget * hbox1, * hbox2, * vbox; int res = chdir("/usr/share/openra"); if (0 != res) res = chdir("/usr/local/share/openra"); if (0 != res) { g_error("Couldn't change to OpenRA working directory"); return 1; } server_init(WEBSERVER_PORT); gtk_init(&argc, &argv); window = GTK_WINDOW(gtk_window_new(GTK_WINDOW_TOPLEVEL)); gtk_window_set_title(window, "OpenRA Launcher"); gtk_window_set_default_size(window, 800, 600); browser = WEBKIT_WEB_VIEW(webkit_web_view_new()); g_signal_connect(browser, "window-object-cleared", G_CALLBACK(bind_js_bridge), 0); generic_mod_icon = gdk_pixbuf_new_from_file_at_size("soviet-logo.png", 16, 16, NULL); make_tree_view(); util_get_mod_list(mod_list_callback); vbox = gtk_vbox_new(FALSE, 0); hbox1 = gtk_hbox_new(FALSE, 0); hbox2 = gtk_hbox_new(FALSE, 0); gtk_widget_set_size_request(GTK_WIDGET(tree), 250, 0); gtk_box_pack_end(GTK_BOX(hbox1), GTK_WIDGET(browser), TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(hbox1), GTK_WIDGET(tree), TRUE, TRUE, 0); gl_button = GTK_RADIO_BUTTON(gtk_radio_button_new_with_label(NULL, "GL Renderer")); g_signal_connect(gl_button, "toggled", G_CALLBACK(renderer_changed), 0); cg_button = GTK_RADIO_BUTTON(gtk_radio_button_new_with_label_from_widget(gl_button, "CG Renderer")); g_signal_connect(cg_button, "toggled", G_CALLBACK(renderer_changed), 0); util_get_setting("Graphics.Renderer", renderer_callback); gtk_box_pack_start(GTK_BOX(hbox2), GTK_WIDGET(gl_button), FALSE, FALSE, 5); gtk_box_pack_start(GTK_BOX(hbox2), GTK_WIDGET(cg_button), FALSE, FALSE, 5); gtk_box_pack_start(GTK_BOX(vbox), hbox1, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(vbox), hbox2, FALSE, FALSE, 10); gtk_container_add(GTK_CONTAINER(window), vbox); gtk_widget_show_all(GTK_WIDGET(window)); g_signal_connect(window, "delete-event", G_CALLBACK(window_delete), 0); gtk_main(); return 0; }