static void
show_action_dialog (GSimpleAction *action)
{
- const char *name;
- GtkWidget *dialog;
-
- name = g_action_get_name (G_ACTION (action));
-
- dialog = gtk_message_dialog_new (NULL,
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_INFO,
- GTK_BUTTONS_CLOSE,
- "You activated action: \"%s\"",
- name);
+ GtkAlertDialog *dialog;
- g_signal_connect (dialog, "response",
- G_CALLBACK (gtk_window_destroy), NULL);
-
- gtk_widget_show (dialog);
+ dialog = gtk_alert_dialog_new ("You activated action: \"%s\n",
+ g_action_get_name (G_ACTION (action)));
+ gtk_alert_dialog_show (dialog, NULL);
+ g_object_unref (dialog);
}
static void
}
static void
-open_response_cb (GtkNativeDialog *dialog,
- int response_id,
- gpointer user_data)
+open_response_cb (GObject *source,
+ GAsyncResult *result,
+ gpointer user_data)
{
- GtkFileChooserNative *native = user_data;
- GApplication *app = g_object_get_data (G_OBJECT (native), "app");
- GtkWidget *message_dialog;
+ GtkFileDialog *dialog = GTK_FILE_DIALOG (source);
+ GApplication *app = G_APPLICATION (user_data);
GFile *file;
- char *contents;
GError *error = NULL;
- if (response_id == GTK_RESPONSE_ACCEPT)
+ file = gtk_file_dialog_save_finish (dialog, result, &error);
+ if (file)
{
- file = gtk_file_chooser_get_file (GTK_FILE_CHOOSER (native));
+ char *contents;
if (g_file_load_contents (file, NULL, &contents, NULL, NULL, &error))
{
}
else
{
- message_dialog = gtk_message_dialog_new (NULL,
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_ERROR,
- GTK_BUTTONS_CLOSE,
- "Error loading file: \"%s\"",
- error->message);
- g_signal_connect (message_dialog, "response",
- G_CALLBACK (gtk_window_destroy), NULL);
- gtk_widget_show (message_dialog);
+ GtkAlertDialog *alert;
+
+ alert = gtk_alert_dialog_new ("Error loading file: \"%s\"", error->message);
+ gtk_alert_dialog_show (alert, NULL);
+ g_object_unref (alert);
g_error_free (error);
}
}
- gtk_native_dialog_destroy (GTK_NATIVE_DIALOG (native));
- g_object_unref (native);
+ g_object_unref (app);
}
gpointer user_data)
{
GApplication *app = user_data;
- GtkFileChooserNative *native;
-
- native = gtk_file_chooser_native_new ("Open File",
- NULL,
- GTK_FILE_CHOOSER_ACTION_OPEN,
- "_Open",
- "_Cancel");
-
- g_object_set_data_full (G_OBJECT (native), "app", g_object_ref (app), g_object_unref);
- g_signal_connect (native,
- "response",
- G_CALLBACK (open_response_cb),
- native);
+ GtkFileDialog *dialog;
- gtk_native_dialog_show (GTK_NATIVE_DIALOG (native));
+ dialog = gtk_file_dialog_new ();
+ gtk_file_dialog_open (dialog, NULL, NULL, NULL, open_response_cb, g_object_ref (app));
+ g_object_unref (dialog);
}
static void
}
else if (strcmp (visible_child_name, "Color") == 0)
{
- GdkRGBA color;
+ const GdkRGBA *color;
- gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (visible_child), &color);
- gdk_clipboard_set (clipboard, GDK_TYPE_RGBA, &color);
+ color = gtk_color_dialog_button_get_rgba (GTK_COLOR_DIALOG_BUTTON (visible_child));
+ gdk_clipboard_set (clipboard, GDK_TYPE_RGBA, color);
}
else if (strcmp (visible_child_name, "File") == 0)
{
}
static void
-file_chooser_response (GtkNativeDialog *dialog,
- int response,
- GtkButton *button)
+file_chooser_response (GObject *source,
+ GAsyncResult *result,
+ gpointer user_data)
{
- gtk_native_dialog_hide (dialog);
+ GtkFileDialog *dialog = GTK_FILE_DIALOG (source);
+ GtkButton *button = GTK_BUTTON (user_data);
+ GFile *file;
- if (response == GTK_RESPONSE_ACCEPT)
+ file = gtk_file_dialog_open_finish (dialog, result, NULL);
+ if (file)
{
- GFile *file = gtk_file_chooser_get_file (GTK_FILE_CHOOSER (dialog));
file_button_set_file (button, file);
g_object_unref (file);
update_copy_button_sensitivity (gtk_widget_get_ancestor (GTK_WIDGET (button), GTK_TYPE_STACK));
}
-
- gtk_native_dialog_destroy (dialog);
}
static void
open_file_cb (GtkWidget *button)
{
- GtkFileChooserNative *chooser;
+ GtkFileDialog *dialog;
- chooser = gtk_file_chooser_native_new ("Choose a file",
- GTK_WINDOW (gtk_widget_get_ancestor (button, GTK_TYPE_WINDOW)),
- GTK_FILE_CHOOSER_ACTION_OPEN,
- "_Open",
- "_Cancel");
+ dialog = gtk_file_dialog_new ();
- g_signal_connect (chooser, "response", G_CALLBACK (file_chooser_response), button);
- gtk_native_dialog_show (GTK_NATIVE_DIALOG (chooser));
+ gtk_file_dialog_open (dialog,
+ GTK_WINDOW (gtk_widget_get_ancestor (button, GTK_TYPE_WINDOW)),
+ NULL,
+ NULL,
+ file_chooser_response, button);
}
static void
<object class="GtkStackPage">
<property name="name">Color</property>
<property name="child">
- <object class="GtkColorButton" id="source_color">
+ <object class="GtkColorDialogButton" id="source_color">
+ <property name="dialog">
+ <object class="GtkColorDialog">
+ </object>
+ </property>
<property name="valign">center</property>
<property name="rgba">purple</property>
</object>
GdkRGBA fg;
GdkRGBA bg;
- gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (demo->foreground), &fg);
- gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (demo->background), &bg);
- gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (demo->foreground), &bg);
- gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (demo->background), &fg);
+ fg = *gtk_color_dialog_button_get_rgba (GTK_COLOR_DIALOG_BUTTON (demo->foreground));
+ bg = *gtk_color_dialog_button_get_rgba (GTK_COLOR_DIALOG_BUTTON (demo->background));
+ gtk_color_dialog_button_set_rgba (GTK_COLOR_DIALOG_BUTTON (demo->foreground), &bg);
+ gtk_color_dialog_button_set_rgba (GTK_COLOR_DIALOG_BUTTON (demo->background), &fg);
}
static void
gtk_adjustment_set_value (demo->size_adjustment, 20);
gtk_adjustment_set_value (demo->letterspacing_adjustment, 0);
gtk_adjustment_set_value (demo->line_height_adjustment, 1);
- gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (demo->foreground), &(GdkRGBA){0.,0.,0.,1.});
- gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (demo->background), &(GdkRGBA){1.,1.,1.,1.});
+ gtk_color_dialog_button_set_rgba (GTK_COLOR_DIALOG_BUTTON (demo->foreground), &(GdkRGBA){0.,0.,0.,1.});
+ gtk_color_dialog_button_set_rgba (GTK_COLOR_DIALOG_BUTTON (demo->background), &(GdkRGBA){1.,1.,1.,1.});
}
static void
{
PangoFontDescription *desc;
- desc = gtk_font_chooser_get_font_desc (GTK_FONT_CHOOSER (demo->font));
+ desc = gtk_font_dialog_button_get_font_desc (GTK_FONT_DIALOG_BUTTON (demo->font));
gtk_adjustment_set_value (demo->size_adjustment,
pango_font_description_get_size (desc) / (double) PANGO_SCALE);
end = PANGO_ATTR_INDEX_TO_TEXT_END;
}
- desc = gtk_font_chooser_get_font_desc (GTK_FONT_CHOOSER (demo->font));
+ desc = gtk_font_dialog_button_get_font_desc (GTK_FONT_DIALOG_BUTTON (demo->font));
value = gtk_adjustment_get_value (demo->size_adjustment);
pango_font_description_set_size (desc, value * PANGO_SCALE);
GdkRGBA rgba;
char *fg, *bg, *css;
- gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (demo->foreground), &rgba);
+ rgba = *gtk_color_dialog_button_get_rgba (GTK_COLOR_DIALOG_BUTTON (demo->foreground));
attr = pango_attr_foreground_new (65535 * rgba.red,
65535 * rgba.green,
65535 * rgba.blue);
pango_attr_list_insert (attrs, attr);
fg = gdk_rgba_to_string (&rgba);
- gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (demo->background), &rgba);
+ rgba = *gtk_color_dialog_button_get_rgba (GTK_COLOR_DIALOG_BUTTON (demo->background));
bg = gdk_rgba_to_string (&rgba);
css = g_strdup_printf (".font_features_background { caret-color: %s; background-color: %s; }", fg, bg);
gtk_css_provider_load_from_data (demo->provider, css, strlen (css));
gtk_label_set_attributes (GTK_LABEL (demo->the_label), attrs);
g_free (font_desc);
- pango_font_description_free (desc);
g_free (features);
pango_attr_list_unref (attrs);
g_free (text);
PangoFontDescription *desc;
PangoContext *context;
- desc = gtk_font_chooser_get_font_desc (GTK_FONT_CHOOSER (demo->font));
+ desc = gtk_font_dialog_button_get_font_desc (GTK_FONT_DIALOG_BUTTON (demo->font));
context = gtk_widget_get_pango_context (demo->font);
return pango_context_load_font (context, desc);
GHashTable *tags;
GHashTableIter iter;
TagPair *pair;
- char *lang;
+ PangoLanguage *language;
+ const char *lang;
hb_tag_t active;
- lang = gtk_font_chooser_get_language (GTK_FONT_CHOOSER (demo->font));
+ language = gtk_font_dialog_button_get_language (GTK_FONT_DIALOG_BUTTON (demo->font));
+ lang = pango_language_to_string (language);
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
active = hb_ot_tag_from_language (hb_language_from_string (lang, -1));
G_GNUC_END_IGNORE_DEPRECATIONS
- g_free (lang);
-
store = g_list_store_new (script_lang_get_type ());
pango_font = get_pango_font ();
{
hb_tag_t tables[2] = { HB_OT_TAG_GSUB, HB_OT_TAG_GPOS };
hb_face_t *hb_face;
- char *feat;
+ const char *feat;
hb_face = hb_font_get_face (hb_font);
}
}
- feat = gtk_font_chooser_get_font_features (GTK_FONT_CHOOSER (demo->font));
+ feat = gtk_font_dialog_button_get_font_features (GTK_FONT_DIALOG_BUTTON (demo->font));
if (feat)
{
for (l = demo->feature_items; l; l = l->next)
}
}
}
-
- g_free (feat);
}
}
demo->description = GTK_WIDGET (gtk_builder_get_object (builder, "description"));
demo->font = GTK_WIDGET (gtk_builder_get_object (builder, "font"));
demo->script_lang = GTK_WIDGET (gtk_builder_get_object (builder, "script_lang"));
+ g_assert (GTK_IS_DROP_DOWN (demo->script_lang));
expression = gtk_cclosure_expression_new (G_TYPE_STRING, NULL, 0, NULL, G_CALLBACK (script_lang_get_langname), NULL, NULL);
gtk_drop_down_set_expression (GTK_DROP_DOWN (demo->script_lang), expression);
gtk_expression_unref (expression);
<property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
- <object class="GtkFontButton" id="font">
+ <object class="GtkFontDialogButton" id="font">
+ <property name="dialog">
+ <object class="GtkFontDialog">
+ </object>
+ </property>
<property name="receives-default">1</property>
- <property name="font">Sans 12</property>
- <property name="level">family|style</property>
- <signal name="font-set" handler="font_features_font_changed" swapped="no"/>
+ <property name="level">face</property>
+ <signal name="notify::font-desc" handler="font_features_font_changed" swapped="no"/>
</object>
</child>
<child>
</object>
</child>
<child>
- <object class="GtkColorButton" id="foreground">
+ <object class="GtkColorDialogButton" id="foreground">
+ <property name="dialog">
+ <object class="GtkColorDialog">
+ </object>
+ </property>
<property name="valign">baseline</property>
<property name="rgba">black</property>
<signal name="notify::rgba" handler="color_set_cb"/>
</object>
</child>
<child>
- <object class="GtkColorButton" id="background">
+ <object class="GtkColorDialogButton" id="background">
+ <property name="dialog">
+ <object class="GtkColorDialog">
+ </object>
+ </property>
<property name="valign">baseline</property>
<property name="rgba">white</property>
<signal name="notify::rgba" handler="color_set_cb"/>
context = gtk_widget_create_pango_context (image);
text = gtk_editable_get_text (GTK_EDITABLE (entry));
- desc = gtk_font_chooser_get_font_desc (GTK_FONT_CHOOSER (font_button));
+ desc = gtk_font_dialog_button_get_font_desc (GTK_FONT_DIALOG_BUTTON (font_button));
fopt = cairo_font_options_copy (pango_cairo_context_get_font_options (context));
gtk_picture_set_pixbuf (GTK_PICTURE (image), pixbuf2);
g_object_unref (pixbuf2);
-
- pango_font_description_free (desc);
}
static gboolean fading = FALSE;
</object>
</child>
<child>
- <object class="GtkFontButton" id="font_button">
+ <object class="GtkFontDialogButton" id="font_button">
+ <property name="dialog">
+ <object class="GtkFontDialog">
+ </object>
+ </property>
<layout>
<property name="column">2</property>
<property name="row">1</property>
if (bytes_read < 0)
{
- GtkWidget *dialog;
-
- dialog = gtk_message_dialog_new (GTK_WINDOW (window),
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_ERROR,
- GTK_BUTTONS_CLOSE,
- "Failure reading image file 'alphatest.png': %s",
- error->message);
- g_error_free (error);
+ GtkAlertDialog *dialog;
- g_signal_connect (dialog, "response",
- G_CALLBACK (gtk_window_destroy), NULL);
+ dialog = gtk_alert_dialog_new ("Failure reading image file 'alphatest.png': %s",
+ error->message);
+ gtk_alert_dialog_show (dialog, NULL);
+ g_object_unref (dialog);
+ g_error_free (error);
g_object_unref (image_stream);
image_stream = NULL;
- gtk_widget_show (dialog);
-
load_timeout = 0;
return FALSE; /* uninstall the timeout */
buf, bytes_read,
&error))
{
- GtkWidget *dialog;
-
- dialog = gtk_message_dialog_new (GTK_WINDOW (window),
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_ERROR,
- GTK_BUTTONS_CLOSE,
- "Failed to load image: %s",
- error->message);
+ GtkAlertDialog *dialog;
+ dialog = gtk_alert_dialog_new ("Failed to load image: %s",
+ error->message);
+ gtk_alert_dialog_show (dialog, NULL);
+ g_object_unref (dialog);
g_error_free (error);
- g_signal_connect (dialog, "response",
- G_CALLBACK (gtk_window_destroy), NULL);
-
g_object_unref (image_stream);
image_stream = NULL;
- gtk_widget_show (dialog);
-
load_timeout = 0;
return FALSE; /* uninstall the timeout */
error = NULL;
if (!g_input_stream_close (image_stream, NULL, &error))
{
- GtkWidget *dialog;
-
- dialog = gtk_message_dialog_new (GTK_WINDOW (window),
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_ERROR,
- GTK_BUTTONS_CLOSE,
- "Failed to load image: %s",
- error->message);
+ GtkAlertDialog *dialog;
+ dialog = gtk_alert_dialog_new ("Failed to load image: %s",
+ error->message);
+ gtk_alert_dialog_show (dialog, NULL);
+ g_object_unref (dialog);
g_error_free (error);
- g_signal_connect (dialog, "response",
- G_CALLBACK (gtk_window_destroy), NULL);
-
- gtk_widget_show (dialog);
-
g_object_unref (image_stream);
image_stream = NULL;
g_object_unref (pixbuf_loader);
* it was incomplete.
*/
error = NULL;
- if (!gdk_pixbuf_loader_close (pixbuf_loader,
- &error))
+ if (!gdk_pixbuf_loader_close (pixbuf_loader, &error))
{
- GtkWidget *dialog;
-
- dialog = gtk_message_dialog_new (GTK_WINDOW (window),
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_ERROR,
- GTK_BUTTONS_CLOSE,
- "Failed to load image: %s",
- error->message);
+ GtkAlertDialog *dialog;
+ dialog = gtk_alert_dialog_new ("Failed to load image: %s",
+ error->message);
+ gtk_alert_dialog_show (dialog, NULL);
+ g_object_unref (dialog);
g_error_free (error);
- g_signal_connect (dialog, "response",
- G_CALLBACK (gtk_window_destroy), NULL);
-
- gtk_widget_show (dialog);
-
g_object_unref (pixbuf_loader);
pixbuf_loader = NULL;
if (image_stream == NULL)
{
- GtkWidget *dialog;
+ GtkAlertDialog *dialog;
- dialog = gtk_message_dialog_new (GTK_WINDOW (window),
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_ERROR,
- GTK_BUTTONS_CLOSE,
- "%s", error->message);
+ dialog = gtk_alert_dialog_new ("%s",
+ error->message);
+ gtk_alert_dialog_show (dialog, NULL);
+ g_object_unref (dialog);
g_error_free (error);
- g_signal_connect (dialog, "response",
- G_CALLBACK (gtk_window_destroy), NULL);
-
- gtk_widget_show (dialog);
-
load_timeout = 0;
return FALSE; /* uninstall the timeout */
int response_id,
gpointer user_data)
{
- GtkWidget *dialog;
- GtkWidget *window;
+ GtkAlertDialog *dialog;
+ char *detail;
if (response_id == GTK_RESPONSE_CLOSE)
{
return;
}
- window = GTK_WIDGET (gtk_widget_get_root (GTK_WIDGET (info_bar)));
- dialog = gtk_message_dialog_new (GTK_WINDOW (window),
- GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_INFO,
- GTK_BUTTONS_OK,
- "You clicked a button on an info bar");
- gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog),
- "Your response has id %d", response_id);
-
- g_signal_connect_swapped (dialog, "response",
- G_CALLBACK (gtk_window_destroy), dialog);
-
- gtk_widget_show (dialog);
+ dialog = gtk_alert_dialog_new ("You clicked a button on an info bar");
+ detail = g_strdup_printf ("Your response has been %d", response_id);
+ gtk_alert_dialog_set_detail (dialog, detail);
+ g_free (detail);
+ gtk_alert_dialog_show (dialog, GTK_WINDOW (gtk_widget_get_root (GTK_WIDGET (info_bar))));
+ g_object_unref (dialog);
}
GtkWidget *
#include <gtk/gtk.h>
-static void
-response_cb (GtkWidget *dialog,
- int response_id,
- gpointer data)
-{
- gtk_window_destroy (GTK_WINDOW (dialog));
-}
-
static gboolean
-activate_link (GtkWidget *label,
+activate_link (GtkWidget *label,
const char *uri,
- gpointer data)
+ gpointer data)
{
if (g_strcmp0 (uri, "keynav") == 0)
{
- GtkWidget *dialog;
- GtkWidget *parent;
-
- parent = GTK_WIDGET (gtk_widget_get_root (label));
- dialog = gtk_message_dialog_new_with_markup (GTK_WINDOW (parent),
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_INFO,
- GTK_BUTTONS_OK,
- "Keyboard navigation");
- gtk_message_dialog_format_secondary_markup (GTK_MESSAGE_DIALOG (dialog),
- "The term <i>keynav</i> is a shorthand for "
- "keyboard navigation and refers to the process of using "
- "a program (exclusively) via keyboard input.");
- gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
+ GtkAlertDialog *dialog;
- gtk_window_present (GTK_WINDOW (dialog));
- g_signal_connect (dialog, "response", G_CALLBACK (response_cb), NULL);
+ dialog = gtk_alert_dialog_new ("Keyboard navigation");
+ gtk_alert_dialog_set_detail (dialog,
+ "The term ‘keynav’ is a shorthand for "
+ "keyboard navigation and refers to the process of using "
+ "a program (exclusively) via keyboard input.");
+ gtk_alert_dialog_show (dialog, GTK_WINDOW (gtk_widget_get_root (label)));
+ g_object_unref (dialog);
return TRUE;
}
G_APP_LAUNCH_CONTEXT (context),
&error))
{
- GtkWidget *dialog;
+ GtkAlertDialog *dialog;
/* And because error handling is important, even a simple demo has it:
* We display an error dialog that something went wrong.
*/
- dialog = gtk_message_dialog_new (GTK_WINDOW (gtk_widget_get_root (GTK_WIDGET (list))),
- GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_MODAL,
- GTK_MESSAGE_ERROR,
- GTK_BUTTONS_CLOSE,
- "Could not launch %s", g_app_info_get_display_name (app_info));
- gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), "%s", error->message);
+ dialog = gtk_alert_dialog_new ("Could not launch %s", g_app_info_get_display_name (app_info));
+ gtk_alert_dialog_set_detail (dialog, error->message);
+ gtk_alert_dialog_show (dialog, GTK_WINDOW (gtk_widget_get_root (GTK_WIDGET (list))));
+ g_object_unref (dialog);
g_clear_error (&error);
- gtk_widget_show (dialog);
}
g_object_unref (context);
}
static void
-open_response_cb (GtkNativeDialog *dialog,
- int response,
- GtkStringList *stringlist)
+open_response_cb (GObject *source,
+ GAsyncResult *result,
+ void *user_data)
{
- gtk_native_dialog_hide (dialog);
+ GtkFileDialog *dialog = GTK_FILE_DIALOG (source);
+ GtkStringList *stringlist = GTK_STRING_LIST (user_data);
+ GFile *file;
- if (response == GTK_RESPONSE_ACCEPT)
+ file = gtk_file_dialog_open_finish (dialog, result, NULL);
+ if (file)
{
- GFile *file;
-
- file = gtk_file_chooser_get_file (GTK_FILE_CHOOSER (dialog));
load_file (stringlist, file);
g_object_unref (file);
}
-
- gtk_native_dialog_destroy (dialog);
}
static void
file_open_cb (GtkWidget *button,
GtkStringList *stringlist)
{
- GtkFileChooserNative *dialog;
-
- dialog = gtk_file_chooser_native_new ("Open file",
- GTK_WINDOW (gtk_widget_get_root (button)),
- GTK_FILE_CHOOSER_ACTION_OPEN,
- "_Load",
- "_Cancel");
- gtk_native_dialog_set_modal (GTK_NATIVE_DIALOG (dialog), TRUE);
-
- g_signal_connect (dialog, "response", G_CALLBACK (open_response_cb), stringlist);
- gtk_native_dialog_show (GTK_NATIVE_DIALOG (dialog));
+ GtkFileDialog *dialog;
+
+ dialog = gtk_file_dialog_new ();
+ gtk_file_dialog_open (dialog,
+ GTK_WINDOW (gtk_widget_get_root (button)),
+ NULL,
+ NULL,
+ open_response_cb, stringlist);
+ g_object_unref (dialog);
}
GtkWidget *
static GType drawing_area_get_type (void);
G_DEFINE_TYPE (DrawingArea, drawing_area, GTK_TYPE_WIDGET)
-static void drawing_area_set_color (DrawingArea *area,
- GdkRGBA *color);
+static void drawing_area_set_color (DrawingArea *area,
+ const GdkRGBA *color);
static void
drawing_area_ensure_surface (DrawingArea *area,
}
static void
-drawing_area_set_color (DrawingArea *area,
- GdkRGBA *color)
+drawing_area_set_color (DrawingArea *area,
+ const GdkRGBA *color)
{
if (gdk_rgba_equal (&area->draw_color, color))
return;
}
static void
-color_button_color_set (GtkColorButton *button,
- DrawingArea *draw_area)
+color_button_color_set (GtkColorDialogButton *button,
+ GParamSpec *pspec,
+ DrawingArea *draw_area)
{
- GdkRGBA color;
+ const GdkRGBA *color;
- gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (button), &color);
- drawing_area_set_color (draw_area, &color);
+ color = gtk_color_dialog_button_get_rgba (button);
+ drawing_area_set_color (draw_area, color);
}
static void
-drawing_area_color_set (DrawingArea *area,
- GdkRGBA *color,
- GtkColorButton *button)
+drawing_area_color_set (DrawingArea *area,
+ GdkRGBA *color,
+ GtkColorDialogButton *button)
{
- gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (button), color);
+ gtk_color_dialog_button_set_rgba (button, color);
}
GtkWidget *
headerbar = gtk_header_bar_new ();
- colorbutton = gtk_color_button_new ();
- g_signal_connect (colorbutton, "color-set",
+ colorbutton = gtk_color_dialog_button_new (gtk_color_dialog_new ());
+ g_signal_connect (colorbutton, "notify::rgba",
G_CALLBACK (color_button_color_set), draw_area);
g_signal_connect (draw_area, "color-set",
G_CALLBACK (drawing_area_color_set), colorbutton);
- gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (colorbutton),
- &(GdkRGBA) { 0, 0, 0, 1 });
+ gtk_color_dialog_button_set_rgba (GTK_COLOR_DIALOG_BUTTON (colorbutton),
+ &(GdkRGBA) { 0, 0, 0, 1 });
gtk_header_bar_pack_end (GTK_HEADER_BAR (headerbar), colorbutton);
gtk_window_set_titlebar (GTK_WINDOW (window), headerbar);
static void
-open_response_cb (GtkNativeDialog *dialog,
- int response,
- GtkPicture *picture)
+open_response_cb (GObject *source,
+ GAsyncResult *result,
+ void *data)
{
- gtk_native_dialog_hide (dialog);
+ GtkFileDialog *dialog = GTK_FILE_DIALOG (source);
+ GtkPicture *picture = data;
+ GFile *file;
- if (response == GTK_RESPONSE_ACCEPT)
+ file = gtk_file_dialog_open_finish (dialog, result, NULL);
+ if (file)
{
- GFile *file;
GdkPaintable *paintable;
- file = gtk_file_chooser_get_file (GTK_FILE_CHOOSER (dialog));
paintable = svg_paintable_new (file);
gtk_picture_set_paintable (GTK_PICTURE (picture), paintable);
g_object_unref (paintable);
g_object_unref (file);
}
-
- gtk_native_dialog_destroy (dialog);
}
static void
GtkPicture *picture)
{
GtkFileFilter *filter;
- GtkFileChooserNative *dialog;
+ GtkFileDialog *dialog;
+ GListStore *filters;
- dialog = gtk_file_chooser_native_new ("Open node file",
- GTK_WINDOW (gtk_widget_get_root (button)),
- GTK_FILE_CHOOSER_ACTION_OPEN,
- "_Load",
- "_Cancel");
+ dialog = gtk_file_dialog_new ();
+ gtk_file_dialog_set_title (dialog, "Open node file");
filter = gtk_file_filter_new ();
gtk_file_filter_add_mime_type (filter, "image/svg+xml");
- gtk_file_chooser_set_filter (GTK_FILE_CHOOSER (dialog), filter);
- gtk_native_dialog_set_modal (GTK_NATIVE_DIALOG (dialog), TRUE);
- g_signal_connect (dialog, "response", G_CALLBACK (open_response_cb), picture);
- gtk_native_dialog_show (GTK_NATIVE_DIALOG (dialog));
+ filters = g_list_store_new (GTK_TYPE_FILE_FILTER);
+ g_list_store_append (filters, filter);
+ g_object_unref (filter);
+ gtk_file_dialog_set_filters (dialog, G_LIST_MODEL (filters));
+ g_object_unref (filters);
+
+ gtk_file_dialog_open (dialog,
+ GTK_WINDOW (gtk_widget_get_root (button)),
+ NULL,
+ NULL,
+ open_response_cb, picture);
}
static GtkWidget *window;
/* Pickers
- * #Keywords: GtkColorChooser, GtkFontChooser, GtkApplicationChooser
+ * #Keywords: GtkColorDialog, GtkFontDialog, GtkFileDialog
*
* These widgets are mainly intended for use in preference dialogs.
* They allow to select colors, fonts and applications.
if (error)
{
- GtkWidget *dialog;
+ GtkAlertDialog *dialog;
- dialog = gtk_message_dialog_new (GTK_WINDOW (do_widget),
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_ERROR,
- GTK_BUTTONS_CLOSE,
- "%s", error->message);
+ dialog = gtk_alert_dialog_new ("%s", error->message);
+ gtk_alert_dialog_show (dialog, GTK_WINDOW (do_widget));
+ g_object_unref (dialog);
g_error_free (error);
-
- g_signal_connect (dialog, "response",
- G_CALLBACK (gtk_window_destroy), NULL);
-
- gtk_widget_show (dialog);
}
static GtkWidget *window = NULL;
static void
-open_dialog_response_cb (GtkNativeDialog *dialog,
- int response,
- GtkWidget *video)
+open_dialog_response_cb (GObject *source,
+ GAsyncResult *result,
+ void *user_data)
{
- gtk_native_dialog_hide (dialog);
+ GtkFileDialog *dialog = GTK_FILE_DIALOG (source);
+ GtkWidget *video = user_data;
+ GFile *file;
- if (response == GTK_RESPONSE_ACCEPT)
+ file = gtk_file_dialog_open_finish (dialog, result, NULL);
+ if (file)
{
- GFile *file;
-
- file = gtk_file_chooser_get_file (GTK_FILE_CHOOSER (dialog));
gtk_video_set_file (GTK_VIDEO (video), file);
g_object_unref (file);
}
-
- gtk_native_dialog_destroy (dialog);
}
static void
open_clicked_cb (GtkWidget *button,
GtkWidget *video)
{
- GtkFileChooserNative *dialog;
+ GtkFileDialog *dialog;
GtkFileFilter *filter;
+ GListStore *filters;
- dialog = gtk_file_chooser_native_new ("Select a video",
- GTK_WINDOW (gtk_widget_get_root (button)),
- GTK_FILE_CHOOSER_ACTION_OPEN,
- "_Open",
- "_Cancel");
+ dialog = gtk_file_dialog_new ();
+ gtk_file_dialog_set_title (dialog, "Select a video");
+
+ filters = g_list_store_new (GTK_TYPE_FILE_FILTER);
filter = gtk_file_filter_new ();
gtk_file_filter_add_pattern (filter, "*");
gtk_file_filter_set_name (filter, "All Files");
- gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter);
+ g_list_store_append (filters, filter);
g_object_unref (filter);
filter = gtk_file_filter_new ();
gtk_file_filter_add_mime_type (filter, "image/*");
gtk_file_filter_set_name (filter, "Images");
- gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter);
+ g_list_store_append (filters, filter);
g_object_unref (filter);
filter = gtk_file_filter_new ();
gtk_file_filter_add_mime_type (filter, "video/*");
gtk_file_filter_set_name (filter, "Video");
- gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter);
-
- gtk_file_chooser_set_filter (GTK_FILE_CHOOSER (dialog), filter);
+ g_list_store_append (filters, filter);
+
+ gtk_file_dialog_set_current_filter (dialog, filter);
g_object_unref (filter);
- gtk_native_dialog_set_modal (GTK_NATIVE_DIALOG (dialog), TRUE);
- g_signal_connect (dialog, "response", G_CALLBACK (open_dialog_response_cb), video);
- gtk_native_dialog_show (GTK_NATIVE_DIALOG (dialog));
+ gtk_file_dialog_set_filters (dialog, G_LIST_MODEL (filters));
+ g_object_unref (filters);
+
+ gtk_file_dialog_open (dialog,
+ GTK_WINDOW (gtk_widget_get_root (button)),
+ NULL,
+ NULL,
+ open_dialog_response_cb, video);
}
static void