Mercurial > dwindows
comparison gtk4/dw.c @ 3004:0ea8d055e7df
GTK4: Fix even more deprecation warnings in GTK 4.10 and later.
Migrate to GtkColorDialog for 4.10 from GtkColorChooserDialog.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Fri, 08 Dec 2023 00:31:50 +0000 |
parents | dc33d380d614 |
children | 522ef24b0aba |
comparison
equal
deleted
inserted
replaced
3003:dc33d380d614 | 3004:0ea8d055e7df |
---|---|
6730 } | 6730 } |
6731 *background = color; | 6731 *background = color; |
6732 } | 6732 } |
6733 } | 6733 } |
6734 | 6734 |
6735 #if GTK_CHECK_VERSION(4,10,0) | |
6736 static void _dw_color_choose_response(GObject *gobject, GAsyncResult *result, gpointer data) | |
6737 { | |
6738 DWDialog *tmp = data; | |
6739 GError *error = NULL; | |
6740 GdkRGBA *newcol = gtk_color_dialog_choose_rgba_finish(GTK_COLOR_DIALOG(gobject), result, &error); | |
6741 | |
6742 if(error != NULL && newcol != NULL) | |
6743 { | |
6744 g_free(newcol); | |
6745 newcol = NULL; | |
6746 } | |
6747 dw_dialog_dismiss(tmp, newcol); | |
6748 } | |
6749 #endif | |
6750 | |
6735 /* Allows the user to choose a color using the system's color chooser dialog. | 6751 /* Allows the user to choose a color using the system's color chooser dialog. |
6736 * Parameters: | 6752 * Parameters: |
6737 * value: current color | 6753 * value: current color |
6738 * Returns: | 6754 * Returns: |
6739 * The selected color or the current color if cancelled. | 6755 * The selected color or the current color if cancelled. |
6741 DW_FUNCTION_DEFINITION(dw_color_choose, ULONG, ULONG value) | 6757 DW_FUNCTION_DEFINITION(dw_color_choose, ULONG, ULONG value) |
6742 DW_FUNCTION_ADD_PARAM1(value) | 6758 DW_FUNCTION_ADD_PARAM1(value) |
6743 DW_FUNCTION_RETURN(dw_color_choose, ULONG) | 6759 DW_FUNCTION_RETURN(dw_color_choose, ULONG) |
6744 DW_FUNCTION_RESTORE_PARAM1(value, ULONG) | 6760 DW_FUNCTION_RESTORE_PARAM1(value, ULONG) |
6745 { | 6761 { |
6746 GtkColorChooser *cd; | |
6747 GdkRGBA color = _dw_internal_color(value); | 6762 GdkRGBA color = _dw_internal_color(value); |
6748 unsigned long retcolor = value; | 6763 unsigned long retcolor = value; |
6749 DWDialog *tmp = dw_dialog_new(NULL); | 6764 DWDialog *tmp = dw_dialog_new(NULL); |
6765 #if GTK_CHECK_VERSION(4,10,0) | |
6766 GtkColorDialog *cd = gtk_color_dialog_new(); | |
6767 GdkRGBA *newcol; | |
6768 | |
6769 gtk_color_dialog_choose_rgba(cd, NULL, &color, NULL, (GAsyncReadyCallback)_dw_color_choose_response, tmp); | |
6770 | |
6771 newcol = dw_dialog_wait(tmp); | |
6772 | |
6773 if(newcol) | |
6774 { | |
6775 retcolor = DW_RGB((int)(newcol->red * 255), (int)(newcol->green * 255), (int)(newcol->blue * 255)); | |
6776 g_free(newcol); | |
6777 } | |
6778 #else | |
6779 GtkColorChooser *cd; | |
6750 | 6780 |
6751 cd = (GtkColorChooser *)gtk_color_chooser_dialog_new("Choose color", NULL); | 6781 cd = (GtkColorChooser *)gtk_color_chooser_dialog_new("Choose color", NULL); |
6752 gtk_color_chooser_set_use_alpha(cd, FALSE); | 6782 gtk_color_chooser_set_use_alpha(cd, FALSE); |
6753 gtk_color_chooser_set_rgba(cd, &color); | 6783 gtk_color_chooser_set_rgba(cd, &color); |
6754 | 6784 |
6760 gtk_color_chooser_get_rgba(cd, &color); | 6790 gtk_color_chooser_get_rgba(cd, &color); |
6761 retcolor = DW_RGB((int)(color.red * 255), (int)(color.green * 255), (int)(color.blue * 255)); | 6791 retcolor = DW_RGB((int)(color.red * 255), (int)(color.green * 255), (int)(color.blue * 255)); |
6762 } | 6792 } |
6763 if(GTK_IS_WINDOW(cd)) | 6793 if(GTK_IS_WINDOW(cd)) |
6764 gtk_window_destroy(GTK_WINDOW(cd)); | 6794 gtk_window_destroy(GTK_WINDOW(cd)); |
6795 #endif | |
6765 DW_FUNCTION_RETURN_THIS(retcolor); | 6796 DW_FUNCTION_RETURN_THIS(retcolor); |
6766 } | 6797 } |
6767 | 6798 |
6768 /* Draw a point on a window (preferably a render window). | 6799 /* Draw a point on a window (preferably a render window). |
6769 * Parameters: | 6800 * Parameters: |