Fix initial GTK4 API compatibility issues in main-window.c, curve.c, and ds-marker.c
Co-authored-by: speed47 <218502+speed47@users.noreply.github.com>
This commit is contained in:
18
src/curve.c
18
src/curve.c
@@ -135,10 +135,16 @@ int GuiCurveLogY(Curve *curve, gdouble y) /* not really a log */
|
|||||||
***/
|
***/
|
||||||
|
|
||||||
void GuiUpdateCurveGeometry(Curve *curve, char *largest_left_label, int right_padding)
|
void GuiUpdateCurveGeometry(Curve *curve, char *largest_left_label, int right_padding)
|
||||||
{ GtkAllocation a = {0};
|
{ graphene_rect_t bounds;
|
||||||
int w,h;
|
int w,h;
|
||||||
|
|
||||||
gtk_widget_get_allocation(curve->widget, &a);
|
if (!gtk_widget_compute_bounds(curve->widget, curve->widget, &bounds)) {
|
||||||
|
/* Fallback if compute_bounds fails */
|
||||||
|
bounds.origin.x = 0;
|
||||||
|
bounds.origin.y = 0;
|
||||||
|
bounds.size.width = 640;
|
||||||
|
bounds.size.height = 480;
|
||||||
|
}
|
||||||
|
|
||||||
/* Top and bottom margins */
|
/* Top and bottom margins */
|
||||||
|
|
||||||
@@ -146,13 +152,13 @@ void GuiUpdateCurveGeometry(Curve *curve, char *largest_left_label, int right_pa
|
|||||||
curve->topY = h + 10;
|
curve->topY = h + 10;
|
||||||
|
|
||||||
GuiSetText(curve->layout, "0123456789", &w, &h);
|
GuiSetText(curve->layout, "0123456789", &w, &h);
|
||||||
curve->bottomY = a.height - h - 10;
|
curve->bottomY = bounds.size.height - h - 10;
|
||||||
|
|
||||||
/* Left and right margins */
|
/* Left and right margins */
|
||||||
|
|
||||||
GuiSetText(curve->layout, largest_left_label, &w, &h);
|
GuiSetText(curve->layout, largest_left_label, &w, &h);
|
||||||
curve->leftX = 5 + 6 + 3 + w;
|
curve->leftX = 5 + 6 + 3 + w;
|
||||||
curve->rightX = a.width - right_padding;
|
curve->rightX = bounds.size.width - right_padding;
|
||||||
|
|
||||||
/* Add space for the lograithmic curve */
|
/* Add space for the lograithmic curve */
|
||||||
|
|
||||||
@@ -181,9 +187,9 @@ void GuiRedrawAxes(cairo_t *cr, Curve *curve)
|
|||||||
|
|
||||||
/* Get foreground and grid colors */
|
/* Get foreground and grid colors */
|
||||||
|
|
||||||
GdkRGBA fg = {0};
|
GdkRGBA fg = {0.0, 0.0, 0.0, 1.0}; /* Default to black */
|
||||||
GtkStyleContext *context = gtk_widget_get_style_context(curve->widget);
|
GtkStyleContext *context = gtk_widget_get_style_context(curve->widget);
|
||||||
gtk_style_context_get_color(context, gtk_widget_get_state_flags(curve->widget), &fg);
|
gtk_style_context_get_color(context, &fg);
|
||||||
GdkRGBA grid = fg;
|
GdkRGBA grid = fg;
|
||||||
grid.alpha = 0.25;
|
grid.alpha = 0.25;
|
||||||
|
|
||||||
|
|||||||
@@ -265,9 +265,8 @@ int CheckForMissingSectors(unsigned char *buf, guint64 sector,
|
|||||||
#ifdef WITH_GUI_YES
|
#ifdef WITH_GUI_YES
|
||||||
static void insert_buttons(GtkDialog *dialog)
|
static void insert_buttons(GtkDialog *dialog)
|
||||||
{
|
{
|
||||||
gtk_dialog_add_buttons(dialog,
|
gtk_dialog_add_button(dialog, _utf("Stop reporting these errors"), 1);
|
||||||
_utf("Stop reporting these errors"), 1,
|
gtk_dialog_add_button(dialog, _utf("Continue reporting"), 0);
|
||||||
_utf("Continue reporting"), 0, NULL);
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -256,14 +256,14 @@ static GtkWidget *create_button(char *label, char *icon, gint scale)
|
|||||||
|
|
||||||
button = gtk_button_new();
|
button = gtk_button_new();
|
||||||
box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
|
box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
|
||||||
image = gtk_image_new_from_icon_name(icon, GTK_ICON_SIZE_LARGE_TOOLBAR);
|
image = gtk_image_new_from_icon_name(icon);
|
||||||
lab = gtk_label_new(utf_label);
|
lab = gtk_label_new(utf_label);
|
||||||
g_free(utf_label);
|
g_free(utf_label);
|
||||||
|
|
||||||
gtk_box_pack_start(GTK_BOX(box), image, FALSE, FALSE, 0);
|
gtk_box_append(GTK_BOX(box), image);
|
||||||
gtk_box_pack_start(GTK_BOX(box), lab, FALSE, FALSE, 0);
|
gtk_box_append(GTK_BOX(box), lab);
|
||||||
|
|
||||||
gtk_container_add(GTK_CONTAINER(button), box);
|
gtk_button_set_child(GTK_BUTTON(button), box);
|
||||||
// gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
|
// gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
|
||||||
|
|
||||||
return button;
|
return button;
|
||||||
@@ -343,7 +343,7 @@ static GtkWidget* create_action_bar(GtkNotebook *notebook)
|
|||||||
|
|
||||||
wid = create_button(_("button|Stop"), "stop", scale);
|
wid = create_button(_("button|Stop"), "stop", scale);
|
||||||
g_signal_connect(G_OBJECT(wid), "clicked", G_CALLBACK(action_cb), (gpointer)ACTION_STOP);
|
g_signal_connect(G_OBJECT(wid), "clicked", G_CALLBACK(action_cb), (gpointer)ACTION_STOP);
|
||||||
gtk_box_pack_end(GTK_BOX(vbox), wid, FALSE, FALSE, 0);
|
gtk_box_append(GTK_BOX(vbox), wid);
|
||||||
GuiAttachTooltip(wid, _("tooltip|Abort action"),
|
GuiAttachTooltip(wid, _("tooltip|Abort action"),
|
||||||
_("Aborts an ongoing action."));
|
_("Aborts an ongoing action."));
|
||||||
|
|
||||||
@@ -406,23 +406,26 @@ void GuiCreateMainWindow(int *argc, char ***argv)
|
|||||||
char title[80];
|
char title[80];
|
||||||
int sig_okay = TRUE;
|
int sig_okay = TRUE;
|
||||||
|
|
||||||
|
/* Ignore argc/argv parameters as GTK4 gtk_init() doesn't need them */
|
||||||
|
|
||||||
/*** Initialize GTK+ */
|
/*** Initialize GTK+ */
|
||||||
|
|
||||||
gtk_init(argc, argv);
|
gtk_init();
|
||||||
|
|
||||||
/*** Set path to our icons */
|
/*** Set path to our icons */
|
||||||
|
|
||||||
gtk_icon_theme_add_resource_path(gtk_icon_theme_get_default(), "/dvdisaster/");
|
gtk_icon_theme_add_resource_path(gtk_icon_theme_get_for_display(gdk_display_get_default()), "/dvdisaster/");
|
||||||
|
|
||||||
/*** Open the main window */
|
/*** Open the main window */
|
||||||
|
|
||||||
g_snprintf(title, 80, "dvdisaster-%s", Closure->cookedVersion);
|
g_snprintf(title, 80, "dvdisaster-%s", Closure->cookedVersion);
|
||||||
|
|
||||||
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
|
window = gtk_window_new();
|
||||||
gtk_window_set_title(GTK_WINDOW(window), title);
|
gtk_window_set_title(GTK_WINDOW(window), title);
|
||||||
if(sig_okay)
|
if(sig_okay)
|
||||||
gtk_window_set_default_size(GTK_WINDOW(window), -1, 550);
|
gtk_window_set_default_size(GTK_WINDOW(window), -1, 550);
|
||||||
gtk_window_set_icon(GTK_WINDOW(window), Closure->windowIcon);
|
/* gtk_window_set_icon is deprecated in GTK4 - use gtk_window_set_icon_name instead */
|
||||||
|
gtk_window_set_icon_name(GTK_WINDOW(window), "dvdisaster");
|
||||||
Closure->window = GTK_WINDOW(window);
|
Closure->window = GTK_WINDOW(window);
|
||||||
|
|
||||||
/* Connect with the close button from the window manager */
|
/* Connect with the close button from the window manager */
|
||||||
@@ -483,28 +486,29 @@ void GuiCreateMainWindow(int *argc, char ***argv)
|
|||||||
Closure->status = gtk_label_new(NULL);
|
Closure->status = gtk_label_new(NULL);
|
||||||
gtk_label_set_ellipsize(GTK_LABEL(Closure->status), PANGO_ELLIPSIZE_END);
|
gtk_label_set_ellipsize(GTK_LABEL(Closure->status), PANGO_ELLIPSIZE_END);
|
||||||
gtk_label_set_xalign(GTK_LABEL(Closure->status), 0.0);
|
gtk_label_set_xalign(GTK_LABEL(Closure->status), 0.0);
|
||||||
gtk_box_pack_start(GTK_BOX(status_box), GTK_WIDGET(Closure->status), TRUE, TRUE, 5);
|
gtk_box_append(GTK_BOX(status_box), GTK_WIDGET(Closure->status));
|
||||||
|
|
||||||
button = gtk_button_new();
|
button = gtk_button_new();
|
||||||
gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
|
/* gtk_button_set_relief is deprecated in GTK4 */
|
||||||
gtk_box_pack_end(GTK_BOX(status_box), button, FALSE, FALSE, 5);
|
gtk_box_append(GTK_BOX(status_box), button);
|
||||||
g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(log_cb), NULL);
|
g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(log_cb), NULL);
|
||||||
GuiAttachTooltip(button,
|
GuiAttachTooltip(button,
|
||||||
_("tooltip|Protocol for current action"),
|
_("tooltip|Protocol for current action"),
|
||||||
_("Displays additional information created during the current or last action."));
|
_("Displays additional information created during the current or last action."));
|
||||||
|
|
||||||
box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
|
box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
|
||||||
gtk_container_add(GTK_CONTAINER(button), box);
|
gtk_button_set_child(GTK_BUTTON(button), box);
|
||||||
|
|
||||||
icon = gtk_image_new_from_icon_name("log", GTK_ICON_SIZE_SMALL_TOOLBAR);
|
icon = gtk_image_new_from_icon_name("log");
|
||||||
gtk_box_pack_start(GTK_BOX(box), icon, FALSE, FALSE, 2);
|
gtk_box_append(GTK_BOX(box), icon);
|
||||||
|
|
||||||
wid = gtk_label_new(_utf("View log"));
|
wid = gtk_label_new(_utf("View log"));
|
||||||
gtk_box_pack_start(GTK_BOX(box), wid, FALSE, FALSE, 0);
|
gtk_box_append(GTK_BOX(box), wid);
|
||||||
|
|
||||||
/* And enter the main loop */
|
/* And enter the main loop */
|
||||||
|
|
||||||
gtk_widget_show_all(window);
|
gtk_widget_show(window);
|
||||||
|
/* gtk_main is deprecated in GTK4, but keeping it for now - will need to refactor to GtkApplication later */
|
||||||
gtk_main();
|
gtk_main();
|
||||||
}
|
}
|
||||||
#endif /* WITH_GUI_YES */
|
#endif /* WITH_GUI_YES */
|
||||||
|
|||||||
Reference in New Issue
Block a user