diff options
| author | TotalCaesar659 <x24cm5b8c54q6szxw@yandex.ru> | 2017-07-25 06:17:45 -0500 | 
|---|---|---|
| committer | Leandro Pereira <leandro@hardinfo.org> | 2017-07-30 10:16:08 -0700 | 
| commit | 6f8cedca0671ab68514352c64579546547804475 (patch) | |
| tree | c04dd9066216e5dd14800aef82cfc61b553f1879 /shell | |
| parent | b34ae0761a499265aee25bb53ad775e64b45c482 (diff) | |
Started GTK3 support
Diffstat (limited to 'shell')
| -rwxr-xr-x[-rw-r--r--] | shell/callbacks.c | 10 | ||||
| -rwxr-xr-x[-rw-r--r--] | shell/loadgraph.c | 42 | ||||
| -rwxr-xr-x[-rw-r--r--] | shell/report.c | 63 | ||||
| -rwxr-xr-x[-rw-r--r--] | shell/shell.c | 100 | 
4 files changed, 213 insertions, 2 deletions
| diff --git a/shell/callbacks.c b/shell/callbacks.c index 25640232..ecf2beac 100644..100755 --- a/shell/callbacks.c +++ b/shell/callbacks.c @@ -44,6 +44,15 @@ void cb_save_graphic()      gchar *filename;      /* save the pixbuf to a png file */ +#if GTK_CHECK_VERSION(3, 0, 0) +    dialog = gtk_file_chooser_dialog_new(_("Save Image"), +					 NULL, +					 GTK_FILE_CHOOSER_ACTION_SAVE, +					 "_Cancel", +					 GTK_RESPONSE_CANCEL, +					 "_Save", +					 GTK_RESPONSE_ACCEPT, NULL); +#else      dialog = gtk_file_chooser_dialog_new(_("Save Image"),  					 NULL,  					 GTK_FILE_CHOOSER_ACTION_SAVE, @@ -51,6 +60,7 @@ void cb_save_graphic()  					 GTK_RESPONSE_CANCEL,  					 GTK_STOCK_SAVE,  					 GTK_RESPONSE_ACCEPT, NULL); +#endif      filename = g_strconcat(shell->selected->name, ".png", NULL);      gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(dialog), filename); diff --git a/shell/loadgraph.c b/shell/loadgraph.c index 8fbeef48..b8720464 100644..100755 --- a/shell/loadgraph.c +++ b/shell/loadgraph.c @@ -122,11 +122,19 @@ static gboolean _expose(GtkWidget * widget, GdkEventExpose * event,  			gpointer user_data)  {      LoadGraph *lg = (LoadGraph *) user_data; +#if GTK_CHECK_VERSION(3, 0, 0) +    cairo_t *draw = GDK_WINDOW(lg->buf); +#else      GdkDrawable *draw = GDK_DRAWABLE(lg->buf); - +#endif +    cairo_t *cr; +#if GTK_CHECK_VERSION(3, 0, 0) +    gdk_cairo_set_source_window(cr, lg->area, 0, 0); +#else      gdk_draw_drawable(lg->area->window,  		      lg->area->style->black_gc,  		      draw, 0, 0, 0, 0, lg->width, lg->height); +#endif      return FALSE;  } @@ -134,7 +142,12 @@ void load_graph_configure_expose(LoadGraph * lg)  {      /* creates the backing store pixmap */      gtk_widget_realize(lg->area); +#if GTK_CHECK_VERSION(3, 0, 0) +    cairo_content_t content; +    lg->buf = gdk_window_create_similar_surface(lg->area, CAIRO_CONTENT_COLOR, lg->width, lg->height); +#else      lg->buf = gdk_pixmap_new(lg->area->window, lg->width, lg->height, -1); +#endif      /* create the graphic contexts */      lg->grid = gdk_gc_new(GDK_DRAWABLE(lg->buf)); @@ -145,18 +158,31 @@ void load_graph_configure_expose(LoadGraph * lg)      load_graph_set_color(lg, LG_COLOR_GREEN);      /* init graphic contexts */ +#if GTK_CHECK_VERSION(3, 0, 0) +    cairo_set_line_width(lg->grid, 1); +    cairo_set_line_cap(lg->grid, CAIRO_LINE_CAP_BUTT); +    cairo_set_line_join(lg->grid, CAIRO_LINE_JOIN_MITER); +    cairo_set_dash(lg->grid, 0, (gint8*)"\2\2", 2); +#else      gdk_gc_set_line_attributes(lg->grid,  			       1, GDK_LINE_ON_OFF_DASH,  			       GDK_CAP_NOT_LAST, GDK_JOIN_ROUND);      gdk_gc_set_dashes(lg->grid, 0, (gint8*)"\2\2", 2); +#endif  #if 0				/* old-style grid */      gdk_rgb_gc_set_foreground(lg->grid, 0x707070);  #endif +#if GTK_CHECK_VERSION(3, 0, 0) +    cairo_set_line_width(lg->trace, 1); +    cairo_set_line_cap(lg->trace, CAIRO_LINE_CAP_BUTT); +    cairo_set_line_join(lg->trace, CAIRO_LINE_JOIN_MITER); +#else      gdk_gc_set_line_attributes(lg->trace,  			       1, GDK_LINE_SOLID,  			       GDK_CAP_PROJECTING, GDK_JOIN_ROUND); +#endif  #if 0				/* old-style fill */      gdk_gc_set_line_attributes(lg->fill, @@ -186,22 +212,36 @@ static void _draw_label_and_line(LoadGraph * lg, gint position, gint value)  			lg->suffix);      pango_layout_set_markup(lg->layout, tmp, -1); +#if GTK_CHECK_VERSION(3, 0, 0) +    pango_layout_set_width(lg->layout, +			   lg->width * PANGO_SCALE); +    gtk_widget_create_pango_layout(GDK_WINDOW(lg->buf), NULL); +#else      pango_layout_set_width(lg->layout,  			   lg->area->allocation.width * PANGO_SCALE);      gdk_draw_layout(GDK_DRAWABLE(lg->buf), lg->trace, 2, position,  		    lg->layout); +#endif      g_free(tmp);  }  static void _draw(LoadGraph * lg)  { +#if GTK_CHECK_VERSION(3, 0, 0) +    cairo_t *draw = GDK_WINDOW(lg->buf); +#else      GdkDrawable *draw = GDK_DRAWABLE(lg->buf); +#endif      gint i, d;      /* clears the drawing area */ +#if GTK_CHECK_VERSION(3, 0, 0) +    cairo_rectangle(draw, 0, 0, lg->width, lg->height); +#else      gdk_draw_rectangle(draw, lg->area->style->black_gc,  		       TRUE, 0, 0, lg->width, lg->height); +#endif      /* the graph */ diff --git a/shell/report.c b/shell/report.c index 3b5d3bdb..5d325ff9 100644..100755 --- a/shell/report.c +++ b/shell/report.c @@ -490,6 +490,15 @@ static gchar *report_get_filename(void)      GtkWidget *dialog;      gchar *filename = NULL; +#if GTK_CHECK_VERSION(3, 0, 0) +    dialog = gtk_file_chooser_dialog_new(_("Save File"), +					 NULL, +					 GTK_FILE_CHOOSER_ACTION_SAVE, +					 "_Cancel", +					 GTK_RESPONSE_CANCEL, +					 "_Save", +					 GTK_RESPONSE_ACCEPT, NULL); +#else      dialog = gtk_file_chooser_dialog_new(_("Save File"),  					 NULL,  					 GTK_FILE_CHOOSER_ACTION_SAVE, @@ -497,6 +506,7 @@ static gchar *report_get_filename(void)  					 GTK_RESPONSE_CANCEL,  					 GTK_STOCK_SAVE,  					 GTK_RESPONSE_ACCEPT, NULL); +#endif      gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(dialog),  				      "hardinfo_report"); @@ -636,9 +646,15 @@ static gboolean report_generate(ReportDialog * rd)  					GTK_MESSAGE_QUESTION,  					GTK_BUTTONS_NONE,  					_("Open the report with your web browser?")); +#if GTK_CHECK_VERSION(3, 0, 0) +    gtk_dialog_add_buttons(GTK_DIALOG(dialog), +			       "_No", GTK_RESPONSE_REJECT, +			       "_Open", GTK_RESPONSE_ACCEPT, NULL); +#else  	gtk_dialog_add_buttons(GTK_DIALOG(dialog),  			       GTK_STOCK_NO, GTK_RESPONSE_REJECT,  			       GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL); +#endif  	if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) {  	    gchar *temp; @@ -786,12 +802,21 @@ static ReportDialog      gtk_window_set_type_hint(GTK_WINDOW(dialog),  			     GDK_WINDOW_TYPE_HINT_DIALOG); +#if GTK_CHECK_VERSION(3, 0, 0) +    /*dialog1_vbox = GTK_BOX(GTK_DIALOG(dialog)->vbox);*/ +    dialog1_vbox = GTK_DIALOG(dialog)/*->vbox*/; +#else      dialog1_vbox = GTK_DIALOG(dialog)->vbox; +#endif      gtk_box_set_spacing(GTK_BOX(dialog1_vbox), 5);      gtk_container_set_border_width(GTK_CONTAINER(dialog1_vbox), 4);      gtk_widget_show(dialog1_vbox); +#if GTK_CHECK_VERSION(3, 0, 0) +    hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5); +#else      hbox = gtk_hbox_new(FALSE, 5); +#endif      gtk_box_pack_start(GTK_BOX(dialog1_vbox), hbox, FALSE, FALSE, 0);      label = gtk_label_new(_("<big><b>Generate Report</b></big>\n" @@ -799,15 +824,23 @@ static ReportDialog  			  "to view in your report:"));      gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);      gtk_label_set_use_markup(GTK_LABEL(label), TRUE); +#if GTK_CHECK_VERSION(3, 0, 0) +    gtk_widget_set_valign(GTK_LABEL(label), GTK_ALIGN_CENTER); +#else      gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5); +#endif      gtk_box_pack_start(GTK_BOX(hbox),  		       icon_cache_get_image("report-large.png"),  		       FALSE, FALSE, 0);      gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, TRUE, 0);      gtk_widget_show_all(hbox); -     + +#if GTK_CHECK_VERSION(3, 0, 0) +    hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5); +#else      hbox = gtk_hbox_new(FALSE, 5); +#endif      gtk_box_pack_start(GTK_BOX(dialog1_vbox), hbox, TRUE, TRUE, 0);      gtk_widget_show(hbox); @@ -847,7 +880,11 @@ static ReportDialog      gtk_tree_view_column_add_attribute(column, cr_text, "markup",  				       TREE_COL_NAME); +#if GTK_CHECK_VERSION(3, 0, 0) +    vbuttonbox3 = gtk_button_box_new(GTK_ORIENTATION_VERTICAL); +#else      vbuttonbox3 = gtk_vbutton_box_new(); +#endif      gtk_widget_show(vbuttonbox3);      gtk_box_pack_start(GTK_BOX(hbox), vbuttonbox3, FALSE, TRUE, 0);      gtk_box_set_spacing(GTK_BOX(vbuttonbox3), 5); @@ -857,33 +894,57 @@ static ReportDialog      button3 = gtk_button_new_with_mnemonic(_("Select _None"));      gtk_widget_show(button3);      gtk_container_add(GTK_CONTAINER(vbuttonbox3), button3); +#if GTK_CHECK_VERSION(3, 0, 0) +    gtk_widget_set_can_default(button3, TRUE); +#else      GTK_WIDGET_SET_FLAGS(button3, GTK_CAN_DEFAULT); +#endif      g_signal_connect(button3, "clicked",  		     G_CALLBACK(report_dialog_sel_none), rd);      button6 = gtk_button_new_with_mnemonic(_("Select _All"));      gtk_widget_show(button6);      gtk_container_add(GTK_CONTAINER(vbuttonbox3), button6); +#if GTK_CHECK_VERSION(3, 0, 0) +    gtk_widget_set_can_default(button6, TRUE); +#else      GTK_WIDGET_SET_FLAGS(button6, GTK_CAN_DEFAULT); +#endif      g_signal_connect(button6, "clicked", G_CALLBACK(report_dialog_sel_all),  		     rd); +#if GTK_CHECK_VERSION(3, 0, 0) +    dialog1_action_area = GTK_DIALOG(dialog)/*->action_area*/; +#else      dialog1_action_area = GTK_DIALOG(dialog)->action_area; +#endif      gtk_widget_show(dialog1_action_area);      gtk_button_box_set_layout(GTK_BUTTON_BOX(dialog1_action_area),  			      GTK_BUTTONBOX_END); +#if GTK_CHECK_VERSION(3, 0, 0) +    button8 = gtk_button_new_with_label("_Cancel"); +#else      button8 = gtk_button_new_from_stock(GTK_STOCK_CANCEL); +#endif      gtk_widget_show(button8);      gtk_dialog_add_action_widget(GTK_DIALOG(dialog), button8,  				 GTK_RESPONSE_CANCEL); +#if GTK_CHECK_VERSION(3, 0, 0) +    gtk_widget_set_can_default(button8, TRUE); +#else      GTK_WIDGET_SET_FLAGS(button8, GTK_CAN_DEFAULT); +#endif      button7 = gtk_button_new_with_mnemonic(_("_Generate"));      gtk_widget_show(button7);      gtk_dialog_add_action_widget(GTK_DIALOG(dialog), button7,  				 GTK_RESPONSE_ACCEPT); +#if GTK_CHECK_VERSION(3, 0, 0) +    gtk_widget_set_can_default(button7, TRUE); +#else      GTK_WIDGET_SET_FLAGS(button7, GTK_CAN_DEFAULT); +#endif      rd->dialog = dialog;      rd->btn_cancel = button8; diff --git a/shell/shell.c b/shell/shell.c index 62719d78..b4532782 100644..100755 --- a/shell/shell.c +++ b/shell/shell.c @@ -364,8 +364,13 @@ static ShellNote *note_new(void)      gtk_container_add(GTK_CONTAINER(note->event_box), border_box);      gtk_widget_show(border_box); +#if GTK_CHECK_VERSION(3, 0, 0) +    gtk_widget_override_background_color(border_box, GTK_STATE_NORMAL, &info_default_fill_color); +    gtk_widget_override_background_color(note->event_box, GTK_STATE_NORMAL, &info_default_border_color); +#else      gtk_widget_modify_bg(border_box, GTK_STATE_NORMAL, &info_default_fill_color);      gtk_widget_modify_bg(note->event_box, GTK_STATE_NORMAL, &info_default_border_color); +#endif      icon = icon_cache_get_image("close.png");      gtk_widget_show(icon); @@ -374,7 +379,11 @@ static ShellNote *note_new(void)      g_signal_connect(G_OBJECT(button), "clicked", (GCallback) close_note,  		     NULL); +#if GTK_CHECK_VERSION(3, 0, 0) +    hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 3); +#else      hbox = gtk_hbox_new(FALSE, 3); +#endif      icon = icon_cache_get_image("dialog-information.png");      gtk_box_pack_start(GTK_BOX(hbox), icon, FALSE, FALSE, 0); @@ -415,14 +424,22 @@ static void create_window(void)      gtk_window_set_default_size(GTK_WINDOW(shell->window), 800, 600);      g_signal_connect(G_OBJECT(shell->window), "destroy", destroy_me, NULL); +#if GTK_CHECK_VERSION(3, 0, 0) +    vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); +#else      vbox = gtk_vbox_new(FALSE, 0); +#endif      gtk_widget_show(vbox);      gtk_container_add(GTK_CONTAINER(shell->window), vbox);      shell->vbox = vbox;      menu_init(shell); +#if GTK_CHECK_VERSION(3, 0, 0) +    hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5); +#else      hbox = gtk_hbox_new(FALSE, 5); +#endif      gtk_widget_show(hbox);      gtk_box_pack_end(GTK_BOX(vbox), hbox, FALSE, FALSE, 3); @@ -432,23 +449,39 @@ static void create_window(void)      gtk_box_pack_end(GTK_BOX(hbox), shell->progress, FALSE, FALSE, 5);      shell->status = gtk_label_new(""); +#if GTK_CHECK_VERSION(3, 0, 0) +    gtk_widget_set_valign(GTK_MISC(shell->status), GTK_ALIGN_CENTER); +#else      gtk_misc_set_alignment(GTK_MISC(shell->status), 0.0, 0.5); +#endif      gtk_widget_show(shell->status);      gtk_box_pack_start(GTK_BOX(hbox), shell->status, FALSE, FALSE, 5); +#if GTK_CHECK_VERSION(3, 0, 0) +    shell->hpaned = gtk_paned_new(GTK_ORIENTATION_HORIZONTAL); +#else      shell->hpaned = gtk_hpaned_new(); +#endif      gtk_widget_show(shell->hpaned);      gtk_box_pack_end(GTK_BOX(vbox), shell->hpaned, TRUE, TRUE, 0);      gtk_paned_set_position(GTK_PANED(shell->hpaned), 210); +#if GTK_CHECK_VERSION(3, 0, 0) +    vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 5); +#else      vbox = gtk_vbox_new(FALSE, 5); +#endif      gtk_widget_show(vbox);      gtk_paned_add2(GTK_PANED(shell->hpaned), vbox);      shell->note = note_new();      gtk_box_pack_end(GTK_BOX(vbox), shell->note->event_box, FALSE, FALSE, 0); +#if GTK_CHECK_VERSION(3, 0, 0) +    shell->vpaned = gtk_paned_new(GTK_ORIENTATION_VERTICAL); +#else      shell->vpaned = gtk_vpaned_new(); +#endif      gtk_box_pack_start(GTK_BOX(vbox), shell->vpaned, TRUE, TRUE, 0);      gtk_widget_show(shell->vpaned); @@ -648,15 +681,24 @@ ShellSummary *summary_new(void)      summary = g_new0(ShellSummary, 1);      summary->scroll = gtk_scrolled_window_new(NULL, NULL); +#if GTK_CHECK_VERSION(3, 0, 0) +    summary->view = gtk_box_new(GTK_ORIENTATION_VERTICAL, 5); +#else      summary->view = gtk_vbox_new(FALSE, 5); +#endif      summary->items = NULL;      gtk_container_set_border_width(GTK_CONTAINER(summary->view), 6);      gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(summary->scroll),                                     GTK_POLICY_AUTOMATIC,                                     GTK_POLICY_AUTOMATIC); +#if GTK_CHECK_VERSION(3, 0, 0) +    gtk_container_add(GTK_SCROLLED_WINDOW(summary->scroll), +                                          summary->view); +#else      gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(summary->scroll),                                            summary->view); +#endif      gtk_widget_show_all(summary->scroll);      return summary; @@ -810,11 +852,17 @@ static gboolean reload_section(gpointer data)  	double pos_info_scroll, pos_more_scroll;  	/* save current position */ +#if GTK_CHECK_VERSION(2, 0, 0)  	pos_info_scroll = RANGE_GET_VALUE(info, vscrollbar);  	pos_more_scroll = RANGE_GET_VALUE(moreinfo, vscrollbar); +#endif  	/* avoid drawing the window while we reload */ +#if GTK_CHECK_VERSION(3, 0, 0) +    gdk_window_freeze_updates(shell->window/*->window*/); +#else  	gdk_window_freeze_updates(shell->window->window); +#endif  	/* gets the current selected path */  	if (gtk_tree_selection_get_selected @@ -840,7 +888,11 @@ static gboolean reload_section(gpointer data)          }  	/* make the window drawable again */ +#if GTK_CHECK_VERSION(3, 0, 0) +    gdk_window_thaw_updates(shell->window/*->window*/); +#else  	gdk_window_thaw_updates(shell->window->window); +#endif      }      /* destroy the timeout: it'll be set up again */ @@ -940,8 +992,13 @@ static void set_view_type(ShellViewType viewtype, gboolean reload)  	gtk_notebook_set_page(GTK_NOTEBOOK(shell->notebook), 0);  	gtk_widget_show(shell->notebook); +#if GTK_CHECK_VERSION(3, 0, 0)  	gtk_paned_set_position(GTK_PANED(shell->vpaned), +			       shell->hpaned/*->allocation.height / 2*/); +#else +    gtk_paned_set_position(GTK_PANED(shell->vpaned),  			       shell->hpaned->allocation.height / 2); +#endif  	break;      case SHELL_VIEW_LOAD_GRAPH:          gtk_widget_show(shell->info->scroll); @@ -949,9 +1006,16 @@ static void set_view_type(ShellViewType viewtype, gboolean reload)  	gtk_widget_show(shell->notebook);  	load_graph_clear(shell->loadgraph); +#if GTK_CHECK_VERSION(3, 0, 0)  	gtk_paned_set_position(GTK_PANED(shell->vpaned), +			       shell->hpaned/*->allocation.height*/ - +			       shell->loadgraph->height - 16); +#else +    gtk_paned_set_position(GTK_PANED(shell->vpaned),  			       shell->hpaned->allocation.height -  			       shell->loadgraph->height - 16); +#endif +  	break;      case SHELL_VIEW_PROGRESS_DUAL:  	gtk_widget_show(shell->notebook); @@ -1330,7 +1394,11 @@ module_selected_show_info(ShellModuleEntry * entry, gboolean reload)      key_data = module_entry_function(entry);      /* */ +#if GTK_CHECK_VERSION(3, 0, 0) +	gdk_window_freeze_updates(shell->info->view/*->window*/); +#else      gdk_window_freeze_updates(shell->info->view->window); +#endif      g_object_ref(shell->info->model);      gtk_tree_view_set_model(GTK_TREE_VIEW(shell->info->view), NULL); @@ -1381,7 +1449,11 @@ module_selected_show_info(ShellModuleEntry * entry, gboolean reload)      gtk_tree_view_set_model(GTK_TREE_VIEW(shell->info->view), shell->info->model);      gtk_tree_view_expand_all(GTK_TREE_VIEW(shell->info->view)); +#if GTK_CHECK_VERSION(3, 0, 0) +	gdk_window_thaw_updates(shell->info->view/*->window*/); +#else      gdk_window_thaw_updates(shell->info->view->window); +#endif      shell_set_note_from_entry(entry);      if (shell->view_type == SHELL_VIEW_PROGRESS || shell->view_type == SHELL_VIEW_PROGRESS_DUAL) { @@ -1518,20 +1590,40 @@ static void shell_summary_add_item(ShellSummary *summary,       gtk_frame_set_shadow_type(GTK_FRAME(frame),                                 GTK_SHADOW_NONE); +#if GTK_CHECK_VERSION(3, 0, 0) +     frame_label_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5); +#else       frame_label_box = gtk_hbox_new(FALSE, 5); +#endif       frame_image = icon_cache_get_image(icon);       frame_label = gtk_label_new(name);       gtk_label_set_use_markup(GTK_LABEL(frame_label), TRUE);       gtk_box_pack_start(GTK_BOX(frame_label_box), frame_image, FALSE, FALSE, 0);       gtk_box_pack_start(GTK_BOX(frame_label_box), frame_label, FALSE, FALSE, 0); +#if GTK_CHECK_VERSION(3, 0, 0) +     gtk_widget_set_halign(alignment, GTK_ALIGN_CENTER); +     gtk_widget_set_valign(alignment, GTK_ALIGN_CENTER); +#else       alignment = gtk_alignment_new(0.5, 0.5, 1, 1); +#endif       gtk_widget_show(alignment);       gtk_container_add(GTK_CONTAINER(frame), alignment); +#if GTK_CHECK_VERSION(3, 0, 0) +     gtk_widget_set_margin_top(alignment, 0); +     gtk_widget_set_margin_bottom(alignment, 0); +     gtk_widget_set_margin_start(alignment, 48); +     gtk_widget_set_margin_end(alignment, 0); +#else       gtk_alignment_set_padding(GTK_ALIGNMENT(alignment), 0, 0, 48, 0); +#endif       content = gtk_label_new(temp); +#if GTK_CHECK_VERSION(3, 0, 0) +     gtk_widget_set_valign(GTK_MISC(content), GTK_ALIGN_CENTER); +#else       gtk_misc_set_alignment(GTK_MISC(content), 0.0, 0.5); +#endif       gtk_container_add(GTK_CONTAINER(alignment), content);       gtk_widget_show_all(frame); @@ -1645,6 +1737,7 @@ static void module_selected(gpointer data)      ShellModuleEntry *entry;      static ShellModuleEntry *current = NULL;      static gboolean updating = FALSE; +    GtkScrollbar		*hscrollbar, *vscrollbar;      /* Gets the currently selected item on the left-side TreeView; if there is no         selection, silently return */ @@ -1686,10 +1779,17 @@ static void module_selected(gpointer data)  	gtk_tree_view_columns_autosize(GTK_TREE_VIEW(shell->info->view));  	/* urgh. why don't GTK do this when the model is cleared? */ +#if GTK_CHECK_VERSION(3, 0, 0)          RANGE_SET_VALUE(info, vscrollbar, 0.0);          RANGE_SET_VALUE(info, hscrollbar, 0.0);          RANGE_SET_VALUE(moreinfo, vscrollbar, 0.0);          RANGE_SET_VALUE(moreinfo, hscrollbar, 0.0); +#else +        RANGE_SET_VALUE(info, vscrollbar, 0.0); +        RANGE_SET_VALUE(info, hscrollbar, 0.0); +        RANGE_SET_VALUE(moreinfo, vscrollbar, 0.0); +        RANGE_SET_VALUE(moreinfo, hscrollbar, 0.0); +#endif  	title = g_strdup_printf("%s - %s", shell->selected_module->name, entry->name);  	shell_set_title(shell, title); | 
