Compare commits

..

4 Commits

Author SHA1 Message Date
Matthias Clasen 019650ff26 columnview: Clarify docs
Mention that gtk_column_view_sort_by_column
can be called multiple times to ste up
complex sorting.
2022-10-20 06:56:25 -04:00
Matthias Clasen eb045fe936 columnview: Reimplement column view sorting
Replace the private GtkColumnViewSorter implementation
with a GtkMultiSorter containing GtkInvertibleSorters
wrapping the individual column sorters.
2022-10-20 06:56:25 -04:00
Matthias Clasen 173f82772e Add GtkInvertibleSorter
This is a sorter that wraps another sorter
and allows to invert its sort order.
2022-10-20 06:56:25 -04:00
Matthias Clasen 3d521d3b56 Add gtk_multi_sorter_splice
There is no reason to have a weaker list api
on this sorter than on a list store. We will
need this function in the following commits.
2022-10-19 23:34:11 -04:00
217 changed files with 7049 additions and 12631 deletions
+1 -1
View File
@@ -192,6 +192,7 @@ macos:
only:
- branches@GNOME/gtk
stage: build
allow_failure: true
tags:
- macos
needs: []
@@ -209,7 +210,6 @@ macos:
-Dintrospection=disabled
-Dcpp_std=c++11
-Dpixman:tests=disabled
-Dlibjpeg-turbo:simd=disabled
_build
- ninja -C _build
artifacts:
+4 -20
View File
@@ -1,11 +1,9 @@
Overview of Changes in 4.9.1, dd-mm-yyyy
========================================
Note that deprecations are an early outlook at changes
that will appear in an eventual GTK 5 release, which is
still far away. We are introducing deprecations in 4.10
as a way to give users time to adapt, and to provide
feedback on our plans.
Note that deprecations are an early outlook
at changes that will appear in an eventual
GTK 5 release, which is still far away.
* GtkTreeView, GtkIconView, GtkComboBox and
auxiliary classes have been deprecated
@@ -17,21 +15,7 @@ feedback on our plans.
* gtk_render_ and gtk_snapshot_render_ APIs
have been deprecated
* GtkAppChooser widgets have been deprecated
* GtkMessageDialog has been deprecated and
replaced by a new async dialog API
* GtkDialog has been deprecated
* GtkColorChooser, GtkFontChooser, GtkFileChooser
interfaces and their implementations have been
deprecated. A new family of async dialog APIs
has been introduced to replace them
* GtkColorDialog, GtkFontDialog, GtkFileDialog
and GtkAlertDialog are new dialog classes with
a consistent and well-bindable API
* GtkAppChooser widgets hae been deprecated
* GtkMountOperation:
- Fix the dialog to look reasonable
@@ -202,36 +202,43 @@ constraint_editor_window_load (ConstraintEditorWindow *self,
}
static void
open_response_cb (GObject *source,
GAsyncResult *result,
void *user_data)
open_response_cb (GtkNativeDialog *dialog,
int response,
ConstraintEditorWindow *self)
{
GtkFileDialog *dialog = GTK_FILE_DIALOG (source);
ConstraintEditorWindow *self = user_data;
GFile *file;
gtk_native_dialog_hide (dialog);
file = gtk_file_dialog_open_finish (dialog, result, NULL);
if (file)
if (response == GTK_RESPONSE_ACCEPT)
{
GFile *file;
file = gtk_file_chooser_get_file (GTK_FILE_CHOOSER (dialog));
constraint_editor_window_load (self, file);
g_object_unref (file);
}
gtk_native_dialog_destroy (dialog);
}
static void
open_cb (GtkWidget *button,
ConstraintEditorWindow *self)
{
GtkFileDialog *dialog;
GFile *cwd;
GtkFileChooserNative *dialog;
dialog = gtk_file_dialog_new ();
gtk_file_dialog_set_title (dialog, "Open file");
cwd = g_file_new_for_path (".");
gtk_file_dialog_set_current_folder (dialog, cwd);
dialog = gtk_file_chooser_native_new ("Open file",
GTK_WINDOW (self),
GTK_FILE_CHOOSER_ACTION_OPEN,
"_Load",
"_Cancel");
gtk_native_dialog_set_modal (GTK_NATIVE_DIALOG (dialog), TRUE);
GFile *cwd = g_file_new_for_path (".");
gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (dialog), cwd, NULL);
g_object_unref (cwd);
gtk_file_dialog_open (dialog, GTK_WINDOW (self), NULL, NULL, open_response_cb, self);
g_object_unref (dialog);
g_signal_connect (dialog, "response", G_CALLBACK (open_response_cb), self);
gtk_native_dialog_show (GTK_NATIVE_DIALOG (dialog));
}
static void
@@ -287,23 +294,22 @@ serialize_model (GListModel *list)
static void
save_response_cb (GObject *source,
GAsyncResult *result,
void *user_data)
save_response_cb (GtkNativeDialog *dialog,
int response,
ConstraintEditorWindow *self)
{
GtkFileDialog *dialog = GTK_FILE_DIALOG (source);
ConstraintEditorWindow *self = user_data;
GFile *file;
gtk_native_dialog_hide (dialog);
file = gtk_file_dialog_save_finish (dialog, result, NULL);
if (file)
if (response == GTK_RESPONSE_ACCEPT)
{
GListModel *model;
GFile *file;
char *text;
GError *error = NULL;
model = constraint_view_get_model (CONSTRAINT_VIEW (self->view));
text = serialize_model (model);
file = gtk_file_chooser_get_file (GTK_FILE_CHOOSER (dialog));
g_file_replace_contents (file, text, strlen (text),
NULL, FALSE,
G_FILE_CREATE_NONE,
@@ -312,39 +318,46 @@ save_response_cb (GObject *source,
&error);
if (error != NULL)
{
GtkAlertDialog *alert;
GtkWidget *message_dialog;
alert = gtk_alert_dialog_new ("Saving failed");
gtk_alert_dialog_set_detail (alert, error->message);
gtk_alert_dialog_show (alert,
GTK_WINDOW (gtk_widget_get_root (GTK_WIDGET (self))));
g_object_unref (alert);
message_dialog = gtk_message_dialog_new (GTK_WINDOW (gtk_widget_get_root (GTK_WIDGET (self))),
GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_MESSAGE_INFO,
GTK_BUTTONS_OK,
"Saving failed");
gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (message_dialog),
"%s", error->message);
g_signal_connect (message_dialog, "response", G_CALLBACK (gtk_window_destroy), NULL);
gtk_widget_show (message_dialog);
g_error_free (error);
}
g_free (text);
g_object_unref (file);
}
gtk_native_dialog_destroy (dialog);
}
static void
save_cb (GtkWidget *button,
ConstraintEditorWindow *self)
{
GtkFileDialog *dialog;
GFile *cwd;
GtkFileChooserNative *dialog;
dialog = gtk_file_dialog_new ();
gtk_file_dialog_set_title (dialog, "Save constraints");
cwd = g_file_new_for_path (".");
gtk_file_dialog_set_current_folder (dialog, cwd);
dialog = gtk_file_chooser_native_new ("Save constraints",
GTK_WINDOW (gtk_widget_get_root (GTK_WIDGET (button))),
GTK_FILE_CHOOSER_ACTION_SAVE,
"_Save",
"_Cancel");
gtk_native_dialog_set_modal (GTK_NATIVE_DIALOG (dialog), TRUE);
GFile *cwd = g_file_new_for_path (".");
gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (dialog), cwd, NULL);
g_object_unref (cwd);
gtk_file_dialog_save (dialog,
GTK_WINDOW (gtk_widget_get_root (GTK_WIDGET (button))),
NULL, NULL,
NULL,
save_response_cb, self);
g_object_unref (dialog);
g_signal_connect (dialog, "response", G_CALLBACK (save_response_cb), self);
gtk_native_dialog_show (GTK_NATIVE_DIALOG (dialog));
}
static void
+49 -23
View File
@@ -33,12 +33,22 @@ static void create_window (GApplication *app, const char *contents);
static void
show_action_dialog (GSimpleAction *action)
{
GtkAlertDialog *dialog;
const char *name;
GtkWidget *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);
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);
g_signal_connect (dialog, "response",
G_CALLBACK (gtk_window_destroy), NULL);
gtk_widget_show (dialog);
}
static void
@@ -80,19 +90,20 @@ activate_new (GSimpleAction *action,
}
static void
open_response_cb (GObject *source,
GAsyncResult *result,
gpointer user_data)
open_response_cb (GtkNativeDialog *dialog,
int response_id,
gpointer user_data)
{
GtkFileDialog *dialog = GTK_FILE_DIALOG (source);
GApplication *app = G_APPLICATION (user_data);
GtkFileChooserNative *native = user_data;
GApplication *app = g_object_get_data (G_OBJECT (native), "app");
GtkWidget *message_dialog;
GFile *file;
char *contents;
GError *error = NULL;
file = gtk_file_dialog_save_finish (dialog, result, &error);
if (file)
if (response_id == GTK_RESPONSE_ACCEPT)
{
char *contents;
file = gtk_file_chooser_get_file (GTK_FILE_CHOOSER (native));
if (g_file_load_contents (file, NULL, &contents, NULL, NULL, &error))
{
@@ -101,16 +112,21 @@ open_response_cb (GObject *source,
}
else
{
GtkAlertDialog *alert;
alert = gtk_alert_dialog_new ("Error loading file: \"%s\"", error->message);
gtk_alert_dialog_show (alert, NULL);
g_object_unref (alert);
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);
g_error_free (error);
}
}
g_object_unref (app);
gtk_native_dialog_destroy (GTK_NATIVE_DIALOG (native));
g_object_unref (native);
}
@@ -120,11 +136,21 @@ activate_open (GSimpleAction *action,
gpointer user_data)
{
GApplication *app = user_data;
GtkFileDialog *dialog;
GtkFileChooserNative *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);
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);
gtk_native_dialog_show (GTK_NATIVE_DIALOG (native));
}
static void
+19 -18
View File
@@ -50,10 +50,10 @@ copy_button_clicked (GtkStack *source_stack,
}
else if (strcmp (visible_child_name, "Color") == 0)
{
const GdkRGBA *color;
GdkRGBA color;
color = gtk_color_dialog_button_get_rgba (GTK_COLOR_DIALOG_BUTTON (visible_child));
gdk_clipboard_set (clipboard, GDK_TYPE_RGBA, color);
gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (visible_child), &color);
gdk_clipboard_set (clipboard, GDK_TYPE_RGBA, &color);
}
else if (strcmp (visible_child_name, "File") == 0)
{
@@ -215,36 +215,37 @@ file_button_set_file (GtkButton *button,
}
static void
file_chooser_response (GObject *source,
GAsyncResult *result,
gpointer user_data)
file_chooser_response (GtkNativeDialog *dialog,
int response,
GtkButton *button)
{
GtkFileDialog *dialog = GTK_FILE_DIALOG (source);
GtkButton *button = GTK_BUTTON (user_data);
GFile *file;
gtk_native_dialog_hide (dialog);
file = gtk_file_dialog_open_finish (dialog, result, NULL);
if (file)
if (response == GTK_RESPONSE_ACCEPT)
{
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)
{
GtkFileDialog *dialog;
GtkFileChooserNative *chooser;
dialog = gtk_file_dialog_new ();
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");
gtk_file_dialog_open (dialog,
GTK_WINDOW (gtk_widget_get_ancestor (button, GTK_TYPE_WINDOW)),
NULL,
NULL,
file_chooser_response, button);
g_signal_connect (chooser, "response", G_CALLBACK (file_chooser_response), button);
gtk_native_dialog_show (GTK_NATIVE_DIALOG (chooser));
}
static void
+1 -5
View File
@@ -64,11 +64,7 @@
<object class="GtkStackPage">
<property name="name">Color</property>
<property name="child">
<object class="GtkColorDialogButton" id="source_color">
<property name="dialog">
<object class="GtkColorDialog">
</object>
</property>
<object class="GtkColorButton" id="source_color">
<property name="valign">center</property>
<property name="rgba">purple</property>
</object>
+12 -18
View File
@@ -8,8 +8,6 @@
#include <glib/gi18n.h>
#include <gtk/gtk.h>
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
static GtkWidget *window = NULL;
static GtkWidget *entry1 = NULL;
static GtkWidget *entry2 = NULL;
@@ -18,23 +16,19 @@ static void
message_dialog_clicked (GtkButton *button,
gpointer user_data)
{
GtkAlertDialog *dialog;
GtkWindow *parent;
static int count = 1;
char *detail;
GtkWidget *dialog;
static int i = 1;
parent = GTK_WINDOW (gtk_widget_get_ancestor (GTK_WIDGET (button), GTK_TYPE_WINDOW));
dialog = gtk_alert_dialog_new ("Test message");
detail = g_strdup_printf (ngettext ("Has been shown once", "Has been shown %d times", count), count);
gtk_alert_dialog_set_detail (dialog, detail);
g_free (detail);
gtk_alert_dialog_set_buttons (dialog, (const char *[]) {"_Cancel", "_OK", NULL });
gtk_alert_dialog_set_cancel_button (dialog, 0);
gtk_alert_dialog_set_default_button (dialog, 1);
gtk_alert_dialog_show (dialog, parent);
count++;
dialog = gtk_message_dialog_new (GTK_WINDOW (window),
GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_MESSAGE_INFO,
GTK_BUTTONS_OK_CANCEL,
"Test message");
gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog),
ngettext ("Has been shown once", "Has been shown %d times", i), i);
g_signal_connect (dialog, "response", G_CALLBACK (gtk_window_destroy), NULL);
gtk_widget_show (dialog);
i++;
}
typedef struct {
+28 -43
View File
@@ -11,6 +11,7 @@
#include <gtk/gtk.h>
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
G_DECLARE_FINAL_TYPE (CanvasItem, canvas_item, CANVAS, ITEM, GtkWidget)
@@ -25,9 +26,6 @@ struct _CanvasItem {
double delta;
GtkWidget *editor;
GtkStyleProvider *provider;
char *css_class;
};
struct _CanvasItemClass {
@@ -38,41 +36,32 @@ G_DEFINE_TYPE (CanvasItem, canvas_item, GTK_TYPE_WIDGET)
static int n_items = 0;
static void
unstyle_item (CanvasItem *item)
{
if (item->provider)
{
gtk_style_context_remove_provider_for_display (gtk_widget_get_display (item->label), item->provider);
g_clear_object (&item->provider);
}
if (item->css_class)
{
gtk_widget_remove_css_class (item->label, item->css_class);
g_clear_pointer (&item->css_class, g_free);
}
}
static void
set_color (CanvasItem *item,
GdkRGBA *color)
{
char *css;
char *str;
GtkStyleContext *context;
GtkCssProvider *provider;
const char *name;
unstyle_item (item);
const char *old_class;
str = gdk_rgba_to_string (color);
name = gtk_widget_get_name (item->label);
css = g_strdup_printf ("#%s { background: %s; }", name, str);
css = g_strdup_printf ("* { background: %s; }", str);
context = gtk_widget_get_style_context (item->label);
provider = g_object_get_data (G_OBJECT (context), "style-provider");
if (provider)
gtk_style_context_remove_provider (context, GTK_STYLE_PROVIDER (provider));
old_class = (const char *)g_object_get_data (G_OBJECT (item->label), "css-class");
if (old_class)
gtk_widget_remove_css_class (item->label, old_class);
provider = gtk_css_provider_new ();
gtk_css_provider_load_from_data (provider, css, -1);
gtk_style_context_add_provider_for_display (gtk_widget_get_display (item->label), GTK_STYLE_PROVIDER (provider), 700);
item->provider = GTK_STYLE_PROVIDER (provider);
gtk_style_context_add_provider (gtk_widget_get_style_context (item->label), GTK_STYLE_PROVIDER (provider), 800);
g_object_set_data_full (G_OBJECT (context), "style-provider", provider, g_object_unref);
g_free (str);
g_free (css);
@@ -82,10 +71,21 @@ static void
set_css (CanvasItem *item,
const char *class)
{
unstyle_item (item);
GtkStyleContext *context;
GtkCssProvider *provider;
const char *old_class;
context = gtk_widget_get_style_context (item->label);
provider = g_object_get_data (G_OBJECT (context), "style-provider");
if (provider)
gtk_style_context_remove_provider (context, GTK_STYLE_PROVIDER (provider));
old_class = (const char *)g_object_get_data (G_OBJECT (item->label), "css-class");
if (old_class)
gtk_widget_remove_css_class (item->label, old_class);
g_object_set_data_full (G_OBJECT (item->label), "css-class", g_strdup (class), g_free);
gtk_widget_add_css_class (item->label, class);
item->css_class = g_strdup (class);
}
static gboolean
@@ -724,11 +724,8 @@ do_dnd (GtkWidget *do_widget)
int i;
int x, y;
GtkCssProvider *provider;
GString *css;
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
button = gtk_color_button_new ();
G_GNUC_END_IGNORE_DEPRECATIONS
g_object_unref (g_object_ref_sink (button));
provider = gtk_css_provider_new ();
@@ -738,18 +735,6 @@ G_GNUC_END_IGNORE_DEPRECATIONS
800);
g_object_unref (provider);
css = g_string_new ("");
for (i = 0; colors[i]; i++)
g_string_append_printf (css, ".canvasitem.%s { background: %s; }\n", colors[i], colors[i]);
provider = gtk_css_provider_new ();
gtk_css_provider_load_from_data (provider, css->str, css->len);
gtk_style_context_add_provider_for_display (gdk_display_get_default (),
GTK_STYLE_PROVIDER (provider),
800);
g_object_unref (provider);
g_string_free (css, TRUE);
window = gtk_window_new ();
gtk_window_set_display (GTK_WINDOW (window),
gtk_widget_get_display (do_widget));
-2
View File
@@ -10,8 +10,6 @@
#include <glib/gi18n.h>
#include <gtk/gtk.h>
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
static GtkWidget *window = NULL;
static void
-2
View File
@@ -68,13 +68,11 @@ create_blurred_button (void)
return w;
}
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
static GtkWidget *
create_font_button (void)
{
return gtk_font_button_new ();
}
G_GNUC_END_IGNORE_DEPRECATIONS
static GtkWidget *
create_level_bar (void)
+107 -165
View File
@@ -23,76 +23,6 @@
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
/* {{{ ScriptLang object */
G_DECLARE_FINAL_TYPE (ScriptLang, script_lang, SCRIPT, LANG, GObject)
struct _ScriptLang
{
GObject parent;
char *langname;
unsigned int script_index;
unsigned int lang_index;
hb_tag_t lang_tag;
};
struct _ScriptLangClass
{
GObjectClass parent_class;
};
G_DEFINE_TYPE (ScriptLang, script_lang, G_TYPE_OBJECT)
static void
script_lang_init (ScriptLang *self)
{
}
static void
script_lang_finalize (GObject *object)
{
ScriptLang *self = SCRIPT_LANG (object);
g_free (self->langname);
G_OBJECT_CLASS (script_lang_parent_class)->finalize (object);
}
static void
script_lang_class_init (ScriptLangClass *class)
{
GObjectClass *object_class = G_OBJECT_CLASS (class);
object_class->finalize = script_lang_finalize;
}
static ScriptLang *
script_lang_new (const char *langname,
unsigned int script_index,
unsigned int lang_index,
hb_tag_t lang_tag)
{
ScriptLang *self;
self = g_object_new (script_lang_get_type (), NULL);
self->langname = g_strdup (langname);
self->script_index = script_index;
self->lang_index = lang_index;
self->lang_tag = lang_tag;
return self;
}
static char *
script_lang_get_langname (ScriptLang *self)
{
return g_strdup (self->langname);
}
/* }}} */
#define MAKE_TAG(a,b,c,d) (unsigned int)(((a) << 24) | ((b) << 16) | ((c) << 8) | (d))
typedef struct {
@@ -165,10 +95,6 @@ demo_free (gpointer data)
g_clear_pointer (&demo->axes, g_hash_table_unref);
g_clear_pointer (&demo->text, g_free);
gtk_style_context_remove_provider_for_display (gdk_display_get_default (),
GTK_STYLE_PROVIDER (demo->provider));
g_object_unref (demo->provider);
g_free (demo);
}
@@ -258,10 +184,10 @@ swap_colors (void)
GdkRGBA fg;
GdkRGBA bg;
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);
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);
}
static void
@@ -270,8 +196,8 @@ font_features_reset_basic (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_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.});
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.});
}
static void
@@ -279,7 +205,7 @@ update_basic (void)
{
PangoFontDescription *desc;
desc = gtk_font_dialog_button_get_font_desc (GTK_FONT_DIALOG_BUTTON (demo->font));
desc = gtk_font_chooser_get_font_desc (GTK_FONT_CHOOSER (demo->font));
gtk_adjustment_set_value (demo->size_adjustment,
pango_font_description_get_size (desc) / (double) PANGO_SCALE);
@@ -546,6 +472,8 @@ update_display (void)
GString *s;
char *text;
gboolean has_feature;
GtkTreeIter iter;
GtkTreeModel *model;
PangoFontDescription *desc;
GList *l;
PangoAttrList *attrs;
@@ -590,7 +518,7 @@ update_display (void)
end = PANGO_ATTR_INDEX_TO_TEXT_END;
}
desc = gtk_font_dialog_button_get_font_desc (GTK_FONT_DIALOG_BUTTON (demo->font));
desc = gtk_font_chooser_get_font_desc (GTK_FONT_CHOOSER (demo->font));
value = gtk_adjustment_get_value (demo->size_adjustment);
pango_font_description_set_size (desc, value * PANGO_SCALE);
@@ -648,13 +576,14 @@ update_display (void)
features = g_string_free (s, FALSE);
if (gtk_drop_down_get_selected (GTK_DROP_DOWN (demo->script_lang)) != 0)
if (gtk_combo_box_get_active_iter (GTK_COMBO_BOX (demo->script_lang), &iter))
{
ScriptLang *selected;
hb_tag_t lang_tag;
selected = gtk_drop_down_get_selected_item (GTK_DROP_DOWN (demo->script_lang));
model = gtk_combo_box_get_model (GTK_COMBO_BOX (demo->script_lang));
gtk_tree_model_get (model, &iter, 3, &lang_tag, -1);
lang = pango_language_from_string (hb_language_to_string (hb_ot_tag_to_language (selected->lang_tag)));
lang = pango_language_from_string (hb_language_to_string (hb_ot_tag_to_language (lang_tag)));
}
else
lang = NULL;
@@ -681,7 +610,7 @@ update_display (void)
GdkRGBA rgba;
char *fg, *bg, *css;
rgba = *gtk_color_dialog_button_get_rgba (GTK_COLOR_DIALOG_BUTTON (demo->foreground));
gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (demo->foreground), &rgba);
attr = pango_attr_foreground_new (65535 * rgba.red,
65535 * rgba.green,
65535 * rgba.blue);
@@ -694,7 +623,7 @@ update_display (void)
pango_attr_list_insert (attrs, attr);
fg = gdk_rgba_to_string (&rgba);
rgba = *gtk_color_dialog_button_get_rgba (GTK_COLOR_DIALOG_BUTTON (demo->background));
gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (demo->background), &rgba);
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));
@@ -769,6 +698,7 @@ update_display (void)
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);
@@ -780,7 +710,7 @@ get_pango_font (void)
PangoFontDescription *desc;
PangoContext *context;
desc = gtk_font_dialog_button_get_font_desc (GTK_FONT_DIALOG_BUTTON (demo->font));
desc = gtk_font_chooser_get_font_desc (GTK_FONT_CHOOSER (demo->font));
context = gtk_widget_get_pango_context (demo->font);
return pango_context_load_font (context, desc);
@@ -810,40 +740,50 @@ tag_pair_equal (gconstpointer a, gconstpointer b)
return pair_a->script_tag == pair_b->script_tag && pair_a->lang_tag == pair_b->lang_tag;
}
static GtkOrdering
script_sort (const void *item1,
const void *item2,
void *data)
static int
script_sort_func (GtkTreeModel *model,
GtkTreeIter *a,
GtkTreeIter *b,
gpointer user_data)
{
ScriptLang *a = (ScriptLang *)item1;
ScriptLang *b = (ScriptLang *)item2;
char *sa, *sb;
int ret;
return strcmp (a->langname, b->langname);
gtk_tree_model_get (model, a, 0, &sa, -1);
gtk_tree_model_get (model, b, 0, &sb, -1);
ret = strcmp (sa, sb);
g_free (sa);
g_free (sb);
return ret;
}
static void
update_script_combo (void)
{
GListStore *store;
GtkSortListModel *sortmodel;
GtkListStore *store;
hb_font_t *hb_font;
int i, j, k;
PangoFont *pango_font;
GHashTable *tags;
GHashTableIter iter;
TagPair *pair;
PangoLanguage *language;
const char *lang;
char *lang;
hb_tag_t active;
GtkTreeIter active_iter;
gboolean have_active = FALSE;
language = gtk_font_dialog_button_get_language (GTK_FONT_DIALOG_BUTTON (demo->font));
lang = pango_language_to_string (language);
lang = gtk_font_chooser_get_language (GTK_FONT_CHOOSER (demo->font));
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
active = hb_ot_tag_from_language (hb_language_from_string (lang, -1));
G_GNUC_END_IGNORE_DEPRECATIONS
store = g_list_store_new (script_lang_get_type ());
g_free (lang);
store = gtk_list_store_new (4, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT);
pango_font = get_pango_font ();
hb_font = pango_font_get_hb_font (pango_font);
@@ -867,19 +807,19 @@ update_script_combo (void)
hb_face = hb_font_get_face (hb_font);
for (guint i = 0; i < 2; i++)
for (i= 0; i < 2; i++)
{
hb_tag_t scripts[80];
unsigned int script_count = G_N_ELEMENTS (scripts);
hb_ot_layout_table_get_script_tags (hb_face, tables[i], 0, &script_count, scripts);
for (guint j = 0; j < script_count; j++)
for (j = 0; j < script_count; j++)
{
hb_tag_t languages[80];
unsigned int language_count = G_N_ELEMENTS (languages);
hb_ot_layout_script_get_language_tags (hb_face, tables[i], j, 0, &language_count, languages);
for (guint k = 0; k < language_count; k++)
for (k = 0; k < language_count; k++)
{
pair = g_new (TagPair, 1);
pair->script_tag = scripts[j];
@@ -899,6 +839,7 @@ update_script_combo (void)
{
const char *langname;
char langbuf[5];
GtkTreeIter tree_iter;
if (pair->lang_tag == 0 && pair->script_tag == 0)
langname = NC_("Language", "None");
@@ -915,31 +856,31 @@ update_script_combo (void)
}
}
g_list_store_append (store, script_lang_new (langname,
pair->script_index,
pair->lang_index,
pair->lang_tag));
gtk_list_store_insert_with_values (store, &tree_iter, -1,
0, langname,
1, pair->script_index,
2, pair->lang_index,
3, pair->lang_tag,
-1);
if (pair->lang_tag == active)
{
have_active = TRUE;
active_iter = tree_iter;
}
}
g_hash_table_destroy (tags);
sortmodel = gtk_sort_list_model_new (G_LIST_MODEL (store),
GTK_SORTER (gtk_custom_sorter_new (script_sort, NULL, NULL)));
gtk_drop_down_set_model (GTK_DROP_DOWN (demo->script_lang), G_LIST_MODEL (sortmodel));
for (guint i = 0; i < g_list_model_get_n_items (G_LIST_MODEL (sortmodel)); i++)
{
ScriptLang *item = g_list_model_get_item (G_LIST_MODEL (sortmodel), i);
g_object_unref (item);
if (item->lang_tag == active)
{
gtk_drop_down_set_selected (GTK_DROP_DOWN (demo->script_lang), i);
break;
}
}
g_object_unref (sortmodel);
gtk_tree_sortable_set_default_sort_func (GTK_TREE_SORTABLE (store),
script_sort_func, NULL, NULL);
gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (store),
GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID,
GTK_SORT_ASCENDING);
gtk_combo_box_set_model (GTK_COMBO_BOX (demo->script_lang), GTK_TREE_MODEL (store));
if (have_active)
gtk_combo_box_set_active_iter (GTK_COMBO_BOX (demo->script_lang), &active_iter);
else
gtk_combo_box_set_active_iter (GTK_COMBO_BOX (demo->script_lang), 0);
}
static char *
@@ -964,19 +905,27 @@ static void
update_features (void)
{
int i, j;
GtkTreeModel *model;
GtkTreeIter iter;
guint script_index, lang_index;
hb_tag_t lang_tag;
PangoFont *pango_font;
hb_font_t *hb_font;
GList *l;
ScriptLang *selected;
/* set feature presence checks from the font features */
if (gtk_drop_down_get_selected (GTK_DROP_DOWN (demo->script_lang)) == 0)
if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (demo->script_lang), &iter))
return;
selected = gtk_drop_down_get_selected_item (GTK_DROP_DOWN (demo->script_lang));
model = gtk_combo_box_get_model (GTK_COMBO_BOX (demo->script_lang));
gtk_tree_model_get (model, &iter,
1, &script_index,
2, &lang_index,
3, &lang_tag,
-1);
if (selected->lang_tag == 0) /* None is selected */
if (lang_tag == 0) /* None is selected */
{
for (l = demo->feature_items; l; l = l->next)
{
@@ -1006,7 +955,7 @@ update_features (void)
{
hb_tag_t tables[2] = { HB_OT_TAG_GSUB, HB_OT_TAG_GPOS };
hb_face_t *hb_face;
const char *feat;
char *feat;
hb_face = hb_font_get_face (hb_font);
@@ -1017,8 +966,8 @@ update_features (void)
hb_ot_layout_language_get_feature_tags (hb_face,
tables[i],
selected->script_index,
selected->lang_index,
script_index,
lang_index,
0,
&count,
features);
@@ -1040,8 +989,8 @@ update_features (void)
hb_ot_layout_language_find_feature (hb_face,
tables[i],
selected->script_index,
selected->lang_index,
script_index,
lang_index,
features[j],
&feature_index);
@@ -1099,7 +1048,7 @@ update_features (void)
}
}
feat = gtk_font_dialog_button_get_font_features (GTK_FONT_DIALOG_BUTTON (demo->font));
feat = gtk_font_chooser_get_font_features (GTK_FONT_CHOOSER (demo->font));
if (feat)
{
for (l = demo->feature_items; l; l = l->next)
@@ -1125,6 +1074,8 @@ update_features (void)
}
}
}
g_free (feat);
}
}
@@ -1371,9 +1322,10 @@ free_instance (gpointer data)
}
static void
add_instance (hb_face_t *face,
unsigned int index,
GtkStringList *strings)
add_instance (hb_face_t *face,
unsigned int index,
GtkWidget *combo,
int pos)
{
Instance *instance;
hb_ot_name_id_t name_id;
@@ -1389,20 +1341,20 @@ add_instance (hb_face_t *face,
instance->index = index;
g_hash_table_add (demo->instances, instance);
gtk_string_list_append (GTK_STRING_LIST (strings), instance->name);
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), instance->name);
}
static void
unset_instance (GtkAdjustment *adjustment)
{
if (demo->instance_combo)
gtk_drop_down_set_selected (GTK_DROP_DOWN (demo->instance_combo), 0);
gtk_combo_box_set_active (GTK_COMBO_BOX (demo->instance_combo), 0);
}
static void
instance_changed (GtkDropDown *combo)
instance_changed (GtkComboBox *combo)
{
const char *text;
char *text;
Instance *instance;
Instance ikey;
int i;
@@ -1414,12 +1366,11 @@ instance_changed (GtkDropDown *combo)
hb_font_t *hb_font;
hb_face_t *hb_face;
text = gtk_string_list_get_string (GTK_STRING_LIST (gtk_drop_down_get_model (combo)),
gtk_drop_down_get_selected (combo));
text = gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT (combo));
if (text[0] == '\0')
goto out;
ikey.name = (char *) text;
ikey.name = text;
instance = g_hash_table_lookup (demo->instances, &ikey);
if (!instance)
{
@@ -1460,6 +1411,7 @@ instance_changed (GtkDropDown *combo)
}
out:
g_free (text);
g_clear_object (&pango_font);
g_free (ai);
g_free (coords);
@@ -1569,7 +1521,6 @@ update_font_variations (void)
{
GtkWidget *label;
GtkWidget *combo;
GtkStringList *strings;
label = gtk_label_new ("Instance");
gtk_label_set_xalign (GTK_LABEL (label), 0);
@@ -1577,28 +1528,26 @@ update_font_variations (void)
gtk_widget_set_valign (label, GTK_ALIGN_BASELINE);
gtk_grid_attach (GTK_GRID (demo->variations_grid), label, 0, -1, 1, 1);
strings = gtk_string_list_new (NULL);
combo = gtk_drop_down_new (G_LIST_MODEL (strings), NULL);
combo = gtk_combo_box_text_new ();
gtk_widget_set_halign (combo, GTK_ALIGN_START);
gtk_widget_set_valign (combo, GTK_ALIGN_BASELINE);
gtk_string_list_append (strings, "");
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), "");
for (i = 0; i < hb_ot_var_get_named_instance_count (hb_face); i++)
add_instance (hb_face, i, strings);
add_instance (hb_face, i, combo, i);
for (i = 0; i < hb_ot_var_get_named_instance_count (hb_face); i++)
{
if (matches_instance (hb_face, i, n_axes, design_coords))
{
gtk_drop_down_set_selected (GTK_DROP_DOWN (combo), i + 1);
gtk_combo_box_set_active (GTK_COMBO_BOX (combo), i + 1);
break;
}
}
gtk_grid_attach (GTK_GRID (demo->variations_grid), combo, 1, -1, 3, 1);
g_signal_connect (combo, "notify::selecte", G_CALLBACK (instance_changed), NULL);
g_signal_connect (combo, "changed", G_CALLBACK (instance_changed), NULL);
demo->instance_combo = combo;
}
@@ -1745,7 +1694,6 @@ do_font_features (GtkWidget *do_widget)
GtkBuilder *builder;
GtkBuilderScope *scope;
GtkEventController *controller;
GtkExpression *expression;
builder = gtk_builder_new ();
@@ -1779,10 +1727,6 @@ do_font_features (GtkWidget *do_widget)
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);
demo->feature_list = GTK_WIDGET (gtk_builder_get_object (builder, "feature_list"));
demo->stack = GTK_WIDGET (gtk_builder_get_object (builder, "stack"));
demo->entry = GTK_WIDGET (gtk_builder_get_object (builder, "entry"));
@@ -1801,8 +1745,8 @@ do_font_features (GtkWidget *do_widget)
demo->swin = GTK_WIDGET (gtk_builder_get_object (builder, "swin"));
demo->provider = gtk_css_provider_new ();
gtk_style_context_add_provider_for_display (gdk_display_get_default (),
GTK_STYLE_PROVIDER (demo->provider), 800);
gtk_style_context_add_provider (gtk_widget_get_style_context (demo->swin),
GTK_STYLE_PROVIDER (demo->provider), 800);
basic_value_changed (demo->size_adjustment, demo->size_entry);
basic_value_changed (demo->letterspacing_adjustment, demo->letterspacing_entry);
@@ -1880,5 +1824,3 @@ do_font_features (GtkWidget *do_widget)
return window;
}
/* vim:set foldmethod=marker expandtab: */
+14 -19
View File
@@ -58,14 +58,11 @@
<property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
<object class="GtkFontDialogButton" id="font">
<property name="dialog">
<object class="GtkFontDialog">
</object>
</property>
<object class="GtkFontButton" id="font">
<property name="receives-default">1</property>
<property name="level">face</property>
<signal name="notify::font-desc" handler="font_features_font_changed" swapped="no"/>
<property name="font">Sans 12</property>
<property name="level">family|style</property>
<signal name="font-set" handler="font_features_font_changed" swapped="no"/>
</object>
</child>
<child>
@@ -195,11 +192,7 @@
</object>
</child>
<child>
<object class="GtkColorDialogButton" id="foreground">
<property name="dialog">
<object class="GtkColorDialog">
</object>
</property>
<object class="GtkColorButton" id="foreground">
<property name="valign">baseline</property>
<property name="rgba">black</property>
<signal name="notify::rgba" handler="color_set_cb"/>
@@ -221,11 +214,7 @@
</object>
</child>
<child>
<object class="GtkColorDialogButton" id="background">
<property name="dialog">
<object class="GtkColorDialog">
</object>
</property>
<object class="GtkColorButton" id="background">
<property name="valign">baseline</property>
<property name="rgba">white</property>
<signal name="notify::rgba" handler="color_set_cb"/>
@@ -270,10 +259,16 @@
<object class="GtkBox" id="feature_list">
<property name="orientation">vertical</property>
<child>
<object class="GtkDropDown" id="script_lang">
<object class="GtkComboBox" id="script_lang">
<property name="tooltip-text" translatable="yes">Language System</property>
<property name="margin-top">10</property>
<signal name="notify::selected" handler="font_features_script_changed" swapped="no"/>
<signal name="changed" handler="font_features_script_changed" swapped="no"/>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">0</attribute>
</attributes>
</child>
</object>
</child>
</object>
+18 -18
View File
@@ -10,6 +10,8 @@
#include <gtk/gtk.h>
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
static GtkWidget *window = NULL;
static GtkWidget *font_button = NULL;
static GtkWidget *entry = NULL;
@@ -43,6 +45,7 @@ update_image (void)
cairo_t *cr;
GdkPixbuf *pixbuf;
GdkPixbuf *pixbuf2;
const char *hint;
cairo_font_options_t *fopt;
cairo_hint_style_t hintstyle;
cairo_hint_metrics_t hintmetrics;
@@ -53,27 +56,22 @@ update_image (void)
context = gtk_widget_create_pango_context (image);
text = gtk_editable_get_text (GTK_EDITABLE (entry));
desc = gtk_font_dialog_button_get_font_desc (GTK_FONT_DIALOG_BUTTON (font_button));
desc = gtk_font_chooser_get_font_desc (GTK_FONT_CHOOSER (font_button));
fopt = cairo_font_options_copy (pango_cairo_context_get_font_options (context));
switch (gtk_drop_down_get_selected (GTK_DROP_DOWN (hinting)))
hint = gtk_combo_box_get_active_id (GTK_COMBO_BOX (hinting));
hintstyle = CAIRO_HINT_STYLE_DEFAULT;
if (hint)
{
case 0:
hintstyle = CAIRO_HINT_STYLE_NONE;
break;
case 1:
hintstyle = CAIRO_HINT_STYLE_SLIGHT;
break;
case 2:
hintstyle = CAIRO_HINT_STYLE_MEDIUM;
break;
case 3:
hintstyle = CAIRO_HINT_STYLE_FULL;
break;
default:
hintstyle = CAIRO_HINT_STYLE_DEFAULT;
break;
if (strcmp (hint, "none") == 0)
hintstyle = CAIRO_HINT_STYLE_NONE;
else if (strcmp (hint, "slight") == 0)
hintstyle = CAIRO_HINT_STYLE_SLIGHT;
else if (strcmp (hint, "medium") == 0)
hintstyle = CAIRO_HINT_STYLE_MEDIUM;
else if (strcmp (hint, "full") == 0)
hintstyle = CAIRO_HINT_STYLE_FULL;
}
cairo_font_options_set_hint_style (fopt, hintstyle);
@@ -287,6 +285,8 @@ retry:
gtk_picture_set_pixbuf (GTK_PICTURE (image), pixbuf2);
g_object_unref (pixbuf2);
pango_font_description_free (desc);
}
static gboolean fading = FALSE;
@@ -420,7 +420,7 @@ do_fontrendering (GtkWidget *do_widget)
g_signal_connect (down_button, "clicked", G_CALLBACK (scale_down), NULL);
g_signal_connect (entry, "notify::text", G_CALLBACK (update_image), NULL);
g_signal_connect (font_button, "notify::font-desc", G_CALLBACK (update_image), NULL);
g_signal_connect (hinting, "notify::selected", G_CALLBACK (update_image), NULL);
g_signal_connect (hinting, "notify::active", G_CALLBACK (update_image), NULL);
g_signal_connect (anti_alias, "notify::active", G_CALLBACK (update_image), NULL);
g_signal_connect (hint_metrics, "notify::active", G_CALLBACK (update_image), NULL);
g_signal_connect (text_radio, "notify::active", G_CALLBACK (update_image), NULL);
+9 -16
View File
@@ -74,11 +74,7 @@
</object>
</child>
<child>
<object class="GtkFontDialogButton" id="font_button">
<property name="dialog">
<object class="GtkFontDialog">
</object>
</property>
<object class="GtkFontButton" id="font_button">
<layout>
<property name="column">2</property>
<property name="row">1</property>
@@ -120,18 +116,15 @@
</object>
</child>
<child>
<object class="GtkDropDown" id="hinting">
<object class="GtkComboBoxText" id="hinting">
<property name="active">0</property>
<property name="valign">center</property>
<property name="model">
<object class="GtkStringList">
<items>
<item translatable="yes">None</item>
<item translatable="yes">Slight</item>
<item translatable="yes">Medium</item>
<item translatable="yes">Full</item>
</items>
</object>
</property>
<items>
<item translatable="yes" id="none">None</item>
<item translatable="yes" id="slight">Slight</item>
<item translatable="yes" id="medium">Medium</item>
<item translatable="yes" id="full">Full</item>
</items>
</object>
</child>
<layout>
+9 -18
View File
@@ -20,6 +20,8 @@
#include "gtkshadertoy.h"
#include "gskshaderpaintable.h"
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
static GtkWidget *demo_window = NULL;
static void
@@ -144,6 +146,7 @@ make_shader_stack (const char *name,
GtkTextBuffer *buffer;
GBytes *bytes;
GtkEventController *controller;
GtkCssProvider *provider;
GdkPaintable *paintable;
stack = gtk_shader_stack_new ();
@@ -234,6 +237,12 @@ make_shader_stack (const char *name,
g_signal_connect (buffer, "changed", G_CALLBACK (text_changed), button);
g_object_set_data (G_OBJECT (button), "the-stack", stack);
g_signal_connect (button, "clicked", G_CALLBACK (apply_text), buffer);
provider = gtk_css_provider_new ();
gtk_css_provider_load_from_data (provider, "button.small { padding: 0; }", -1);
gtk_style_context_add_provider (gtk_widget_get_style_context (button),
GTK_STYLE_PROVIDER (provider),
GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
g_object_unref (provider);
gtk_widget_set_halign (button, GTK_ALIGN_CENTER);
gtk_widget_set_valign (button, GTK_ALIGN_CENTER);
gtk_widget_add_css_class (button, "small");
@@ -267,21 +276,11 @@ make_shader_stack (const char *name,
return vbox;
}
static void
remove_provider (gpointer data)
{
GtkStyleProvider *provider = GTK_STYLE_PROVIDER (data);
gtk_style_context_remove_provider_for_display (gdk_display_get_default (), provider);
g_object_unref (provider);
}
static GtkWidget *
create_gltransition_window (GtkWidget *do_widget)
{
GtkWidget *window, *headerbar, *scale, *outer_grid, *grid, *background;
GdkPaintable *paintable;
GtkCssProvider *provider;
window = gtk_window_new ();
gtk_window_set_display (GTK_WINDOW (window), gtk_widget_get_display (do_widget));
@@ -336,14 +335,6 @@ create_gltransition_window (GtkWidget *do_widget)
make_shader_stack ("Kaleidoscope", "/gltransition/kaleidoscope.glsl", 3, scale),
1, 1, 1, 1);
provider = gtk_css_provider_new ();
gtk_css_provider_load_from_data (provider, "button.small { padding: 0; }", -1);
gtk_style_context_add_provider_for_display (gdk_display_get_default (),
GTK_STYLE_PROVIDER (provider),
GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
g_object_set_data_full (G_OBJECT (window), "provider", provider, remove_provider);
return window;
}
+64 -26
View File
@@ -83,17 +83,24 @@ progressive_timeout (gpointer data)
if (bytes_read < 0)
{
GtkAlertDialog *dialog;
GtkWidget *dialog;
dialog = gtk_alert_dialog_new ("Failure reading image file 'alphatest.png': %s",
error->message);
gtk_alert_dialog_show (dialog, NULL);
g_object_unref (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);
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 */
@@ -103,17 +110,25 @@ progressive_timeout (gpointer data)
buf, bytes_read,
&error))
{
GtkAlertDialog *dialog;
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);
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 */
@@ -128,14 +143,22 @@ progressive_timeout (gpointer data)
error = NULL;
if (!g_input_stream_close (image_stream, NULL, &error))
{
GtkAlertDialog *dialog;
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);
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);
@@ -154,16 +177,25 @@ progressive_timeout (gpointer data)
* it was incomplete.
*/
error = NULL;
if (!gdk_pixbuf_loader_close (pixbuf_loader, &error))
if (!gdk_pixbuf_loader_close (pixbuf_loader,
&error))
{
GtkAlertDialog *dialog;
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);
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;
@@ -184,14 +216,20 @@ progressive_timeout (gpointer data)
if (image_stream == NULL)
{
GtkAlertDialog *dialog;
GtkWidget *dialog;
dialog = gtk_alert_dialog_new ("%s",
error->message);
gtk_alert_dialog_show (dialog, NULL);
g_object_unref (dialog);
dialog = gtk_message_dialog_new (GTK_WINDOW (window),
GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_MESSAGE_ERROR,
GTK_BUTTONS_CLOSE,
"%s", error->message);
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 */
+15 -8
View File
@@ -12,8 +12,8 @@ on_bar_response (GtkInfoBar *info_bar,
int response_id,
gpointer user_data)
{
GtkAlertDialog *dialog;
char *detail;
GtkWidget *dialog;
GtkWidget *window;
if (response_id == GTK_RESPONSE_CLOSE)
{
@@ -21,12 +21,19 @@ on_bar_response (GtkInfoBar *info_bar,
return;
}
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);
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);
}
GtkWidget *
+26 -10
View File
@@ -7,22 +7,38 @@
#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)
{
GtkAlertDialog *dialog;
GtkWidget *dialog;
GtkWidget *parent;
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);
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);
gtk_window_present (GTK_WINDOW (dialog));
g_signal_connect (dialog, "response", G_CALLBACK (response_cb), NULL);
return TRUE;
}
+8 -5
View File
@@ -117,16 +117,19 @@ activate_cb (GtkListView *list,
G_APP_LAUNCH_CONTEXT (context),
&error))
{
GtkAlertDialog *dialog;
GtkWidget *dialog;
/* And because error handling is important, even a simple demo has it:
* We display an error dialog that something went wrong.
*/
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);
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);
g_clear_error (&error);
gtk_widget_show (dialog);
}
g_object_unref (context);
-4
View File
@@ -422,10 +422,6 @@ do_listview_settings (GtkWidget *do_widget)
gtk_column_view_column_set_sorter (name_column, sorter);
g_object_unref (sorter);
sorter = GTK_SORTER (gtk_string_sorter_new (gtk_property_expression_new (SETTINGS_TYPE_KEY, NULL, "type")));
gtk_column_view_column_set_sorter (type_column, sorter);
g_object_unref (sorter);
g_object_unref (builder);
}
+3 -12
View File
@@ -10,6 +10,8 @@
#include "script-names.h"
#include "unicode-names.h"
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
#define UCD_TYPE_ITEM (ucd_item_get_type ())
G_DECLARE_FINAL_TYPE (UcdItem, ucd_item, UCD, ITEM, GObject)
@@ -337,15 +339,6 @@ create_ucd_view (GtkWidget *label)
static GtkWidget *window;
static void
remove_provider (gpointer data)
{
GtkStyleProvider *provider = GTK_STYLE_PROVIDER (data);
gtk_style_context_remove_provider_for_display (gdk_display_get_default (), provider);
g_object_unref (provider);
}
GtkWidget *
do_listview_ucd (GtkWidget *do_widget)
{
@@ -368,7 +361,7 @@ do_listview_ucd (GtkWidget *do_widget)
gtk_widget_add_css_class (label, "enormous");
provider = gtk_css_provider_new ();
gtk_css_provider_load_from_data (provider, "label.enormous { font-size: 80px; }", -1);
gtk_style_context_add_provider_for_display (gdk_display_get_default (), GTK_STYLE_PROVIDER (provider), 800);
gtk_style_context_add_provider (gtk_widget_get_style_context (label), GTK_STYLE_PROVIDER (provider), 800);
gtk_widget_set_hexpand (label, TRUE);
gtk_box_append (GTK_BOX (box), label);
@@ -378,8 +371,6 @@ do_listview_ucd (GtkWidget *do_widget)
gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW (sw), listview);
gtk_box_prepend (GTK_BOX (box), sw);
gtk_window_set_child (GTK_WINDOW (window), box);
g_object_set_data_full (G_OBJECT (window), "provider", provider, remove_provider);
}
if (!gtk_widget_get_visible (window))
+21 -17
View File
@@ -42,7 +42,7 @@ update_title_cb (GtkFilterListModel *model)
title = g_strdup_printf ("%u lines", g_list_model_get_n_items (G_LIST_MODEL (model)));
gtk_widget_set_visible (progress, pending != 0);
gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (progress), total > 0 ? (total - pending) / (double) total : 0.);
gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (progress), (total - pending) / (double) total);
gtk_window_set_title (GTK_WINDOW (window), title);
g_free (title);
}
@@ -141,35 +141,39 @@ load_file (GtkStringList *list,
}
static void
open_response_cb (GObject *source,
GAsyncResult *result,
void *user_data)
open_response_cb (GtkNativeDialog *dialog,
int response,
GtkStringList *stringlist)
{
GtkFileDialog *dialog = GTK_FILE_DIALOG (source);
GtkStringList *stringlist = GTK_STRING_LIST (user_data);
GFile *file;
gtk_native_dialog_hide (dialog);
file = gtk_file_dialog_open_finish (dialog, result, NULL);
if (file)
if (response == GTK_RESPONSE_ACCEPT)
{
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)
{
GtkFileDialog *dialog;
GtkFileChooserNative *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);
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));
}
GtkWidget *
+17 -20
View File
@@ -7,8 +7,6 @@
#include <glib/gi18n.h>
#include <gtk/gtk.h>
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
enum {
COLOR_SET,
N_SIGNALS
@@ -53,8 +51,8 @@ static const char *pad_colors[] = {
static GType drawing_area_get_type (void);
G_DEFINE_TYPE (DrawingArea, drawing_area, GTK_TYPE_WIDGET)
static void drawing_area_set_color (DrawingArea *area,
const GdkRGBA *color);
static void drawing_area_set_color (DrawingArea *area,
GdkRGBA *color);
static void
drawing_area_ensure_surface (DrawingArea *area,
@@ -352,8 +350,8 @@ drawing_area_new (void)
}
static void
drawing_area_set_color (DrawingArea *area,
const GdkRGBA *color)
drawing_area_set_color (DrawingArea *area,
GdkRGBA *color)
{
if (gdk_rgba_equal (&area->draw_color, color))
return;
@@ -363,22 +361,21 @@ drawing_area_set_color (DrawingArea *area,
}
static void
color_button_color_set (GtkColorDialogButton *button,
GParamSpec *pspec,
DrawingArea *draw_area)
color_button_color_set (GtkColorButton *button,
DrawingArea *draw_area)
{
const GdkRGBA *color;
GdkRGBA color;
color = gtk_color_dialog_button_get_rgba (button);
drawing_area_set_color (draw_area, color);
gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (button), &color);
drawing_area_set_color (draw_area, &color);
}
static void
drawing_area_color_set (DrawingArea *area,
GdkRGBA *color,
GtkColorDialogButton *button)
drawing_area_color_set (DrawingArea *area,
GdkRGBA *color,
GtkColorButton *button)
{
gtk_color_dialog_button_set_rgba (button, color);
gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (button), color);
}
GtkWidget *
@@ -397,13 +394,13 @@ do_paint (GtkWidget *toplevel)
headerbar = gtk_header_bar_new ();
colorbutton = gtk_color_dialog_button_new (gtk_color_dialog_new ());
g_signal_connect (colorbutton, "notify::rgba",
colorbutton = gtk_color_button_new ();
g_signal_connect (colorbutton, "color-set",
G_CALLBACK (color_button_color_set), draw_area);
g_signal_connect (draw_area, "color-set",
G_CALLBACK (drawing_area_color_set), colorbutton);
gtk_color_dialog_button_set_rgba (GTK_COLOR_DIALOG_BUTTON (colorbutton),
&(GdkRGBA) { 0, 0, 0, 1 });
gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (colorbutton),
&(GdkRGBA) { 0, 0, 0, 1 });
gtk_header_bar_pack_end (GTK_HEADER_BAR (headerbar), colorbutton);
gtk_window_set_titlebar (GTK_WINDOW (window), headerbar);
+19 -23
View File
@@ -13,24 +13,25 @@
static void
open_response_cb (GObject *source,
GAsyncResult *result,
void *data)
open_response_cb (GtkNativeDialog *dialog,
int response,
GtkPicture *picture)
{
GtkFileDialog *dialog = GTK_FILE_DIALOG (source);
GtkPicture *picture = data;
GFile *file;
gtk_native_dialog_hide (dialog);
file = gtk_file_dialog_open_finish (dialog, result, NULL);
if (file)
if (response == GTK_RESPONSE_ACCEPT)
{
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
@@ -38,25 +39,20 @@ show_file_open (GtkWidget *button,
GtkPicture *picture)
{
GtkFileFilter *filter;
GtkFileDialog *dialog;
GListStore *filters;
GtkFileChooserNative *dialog;
dialog = gtk_file_dialog_new ();
gtk_file_dialog_set_title (dialog, "Open node file");
dialog = gtk_file_chooser_native_new ("Open node file",
GTK_WINDOW (gtk_widget_get_root (button)),
GTK_FILE_CHOOSER_ACTION_OPEN,
"_Load",
"_Cancel");
filter = gtk_file_filter_new ();
gtk_file_filter_add_mime_type (filter, "image/svg+xml");
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);
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));
}
static GtkWidget *window;
+5 -13
View File
@@ -8,6 +8,7 @@
#include "config.h"
#include <gtk/gtk.h>
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
/* Create an object for the pegs that get moved around in the game.
*
@@ -360,15 +361,6 @@ drop_drop (GtkDropTarget *target,
return TRUE;
}
static void
remove_provider (gpointer data)
{
GtkStyleProvider *provider = GTK_STYLE_PROVIDER (data);
gtk_style_context_remove_provider_for_display (gdk_display_get_default (), provider);
g_object_unref (provider);
}
static void
create_board (GtkWidget *window)
{
@@ -385,9 +377,6 @@ create_board (GtkWidget *window)
provider = gtk_css_provider_new ();
gtk_css_provider_load_from_data (provider, css, -1);
gtk_style_context_add_provider_for_display (gdk_display_get_default (),
GTK_STYLE_PROVIDER (provider),
800);
grid = gtk_grid_new ();
gtk_widget_set_halign (grid, GTK_ALIGN_CENTER);
@@ -406,6 +395,9 @@ create_board (GtkWidget *window)
continue;
image = gtk_image_new ();
gtk_style_context_add_provider (gtk_widget_get_style_context (image),
GTK_STYLE_PROVIDER (provider),
800);
gtk_widget_add_css_class (image, "solitaire-field");
gtk_image_set_icon_size (GTK_IMAGE (image), GTK_ICON_SIZE_LARGE);
if (x != 3 || y != 3)
@@ -449,7 +441,7 @@ create_board (GtkWidget *window)
}
}
g_object_set_data_full (G_OBJECT (window), "provider", provider, remove_provider);
g_object_unref (provider);
}
static void
+69 -44
View File
@@ -1,44 +1,34 @@
/* Pickers
* #Keywords: GtkColorDialog, GtkFontDialog, GtkFileDialog, GtkColorDialogButton, GtkFontDialogButton, chooser, button
* #Keywords: GtkColorChooser, GtkFontChooser, GtkApplicationChooser
*
* These widgets and async APIs are mainly intended for use in preference dialogs.
* They allow to select colors, fonts, files and applications.
* These widgets are mainly intended for use in preference dialogs.
* They allow to select colors, fonts and applications.
*
* This demo shows both the default appearance for these dialogs,
* as well as some of the customizations that are possible.
*/
#include <gtk/gtk.h>
static void
file_opened (GObject *source,
GAsyncResult *result,
void *data)
static gboolean
filter_font_cb (const PangoFontFamily *family,
const PangoFontFace *face,
gpointer data)
{
GFile *file;
const char *alias_families[] = {
"Cursive",
"Fantasy",
"Monospace",
"Sans",
"Serif",
"System-ui",
NULL
};
const char *family_name;
file = gtk_file_dialog_open_finish (GTK_FILE_DIALOG (source), result, NULL);
family_name = pango_font_family_get_name (PANGO_FONT_FAMILY (family));
if (file)
{
char *name = g_file_get_basename (file);
gtk_button_set_label (GTK_BUTTON (data), name);
g_object_set_data_full (G_OBJECT (data), "file", file, g_object_unref);
g_free (name);
}
}
static void
open_file (GtkButton *picker)
{
GtkWindow *parent = GTK_WINDOW (gtk_widget_get_root (GTK_WIDGET (picker)));
GtkFileDialog *dialog;
GFile *file;
dialog = gtk_file_dialog_new ();
file = (GFile *) g_object_get_data (G_OBJECT (picker), "file");
gtk_file_dialog_open (dialog, parent, file, NULL, file_opened, picker);
g_object_unref (dialog);
return g_strv_contains (alias_families, family_name);
}
#define COLOR(r,g,b) { r/255., g/255., b/255., 1.0 }
@@ -48,6 +38,27 @@ do_pickers (GtkWidget *do_widget)
{
static GtkWidget *window = NULL;
GtkWidget *table, *label, *picker;
GdkRGBA solarized[] = {
COLOR (0xff, 0xff, 0xff),
COLOR (0x07, 0x36, 0x42),
COLOR (0xdc, 0x32, 0x2f),
COLOR (0x85, 0x99, 0x00),
COLOR (0xb5, 0x89, 0x00),
COLOR (0x26, 0x8b, 0xd2),
COLOR (0xd3, 0x36, 0x82),
COLOR (0x2a, 0xa1, 0x98),
COLOR (0xee, 0xe8, 0xd5),
COLOR (0x00, 0x00, 0x00),
COLOR (0x00, 0x2b, 0x36),
COLOR (0xcb, 0x4b, 0x16),
COLOR (0x58, 0x6e, 0x75),
COLOR (0x65, 0x7b, 0x83),
COLOR (0x83, 0x94, 0x96),
COLOR (0x6c, 0x71, 0xc4),
COLOR (0x93, 0xa1, 0xa1),
COLOR (0xfd, 0xf6, 0xe3),
};
if (!window)
{
@@ -66,41 +77,55 @@ do_pickers (GtkWidget *do_widget)
gtk_grid_set_column_spacing (GTK_GRID (table), 10);
gtk_window_set_child (GTK_WINDOW (window), table);
label = gtk_label_new ("Standard");
gtk_widget_add_css_class (label, "title-4");
gtk_grid_attach (GTK_GRID (table), label, 1, -1, 1, 1);
label = gtk_label_new ("Custom");
gtk_widget_add_css_class (label, "title-4");
gtk_grid_attach (GTK_GRID (table), label, 2, -1, 1, 1);
label = gtk_label_new ("Color:");
gtk_widget_set_halign (label, GTK_ALIGN_START);
gtk_widget_set_valign (label, GTK_ALIGN_CENTER);
gtk_widget_set_hexpand (label, TRUE);
gtk_grid_attach (GTK_GRID (table), label, 0, 0, 1, 1);
picker = gtk_color_dialog_button_new (gtk_color_dialog_new ());
picker = gtk_color_button_new ();
gtk_grid_attach (GTK_GRID (table), picker, 1, 0, 1, 1);
picker = gtk_color_button_new ();
gtk_color_button_set_title (GTK_COLOR_BUTTON (picker), "Solarized colors");
gtk_color_chooser_add_palette (GTK_COLOR_CHOOSER (picker),
GTK_ORIENTATION_HORIZONTAL,
9,
18,
solarized);
gtk_grid_attach (GTK_GRID (table), picker, 2, 0, 1, 1);
label = gtk_label_new ("Font:");
gtk_widget_set_halign (label, GTK_ALIGN_START);
gtk_widget_set_valign (label, GTK_ALIGN_CENTER);
gtk_widget_set_hexpand (label, TRUE);
gtk_grid_attach (GTK_GRID (table), label, 0, 1, 1, 1);
picker = gtk_font_dialog_button_new (gtk_font_dialog_new ());
picker = gtk_font_button_new ();
gtk_grid_attach (GTK_GRID (table), picker, 1, 1, 1, 1);
label = gtk_label_new ("File:");
gtk_widget_set_halign (label, GTK_ALIGN_START);
gtk_widget_set_valign (label, GTK_ALIGN_CENTER);
gtk_widget_set_hexpand (label, TRUE);
gtk_grid_attach (GTK_GRID (table), label, 0, 2, 1, 1);
picker = gtk_font_button_new ();
gtk_font_chooser_set_level (GTK_FONT_CHOOSER (picker),
GTK_FONT_CHOOSER_LEVEL_FAMILY |
GTK_FONT_CHOOSER_LEVEL_SIZE);
gtk_font_chooser_set_filter_func (GTK_FONT_CHOOSER (picker), filter_font_cb, NULL, NULL);
picker = gtk_button_new_with_label ("None");
g_signal_connect (picker, "clicked", G_CALLBACK (open_file), NULL);
gtk_grid_attach (GTK_GRID (table), picker, 1, 2, 1, 1);
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
gtk_grid_attach (GTK_GRID (table), picker, 2, 1, 1, 1);
label = gtk_label_new ("Mail:");
gtk_widget_set_halign (label, GTK_ALIGN_START);
gtk_widget_set_valign (label, GTK_ALIGN_CENTER);
gtk_widget_set_hexpand (label, TRUE);
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
picker = gtk_app_chooser_button_new ("x-scheme-handler/mailto");
gtk_app_chooser_button_set_show_dialog_item (GTK_APP_CHOOSER_BUTTON (picker), TRUE);
+2
View File
@@ -16,6 +16,7 @@ enum {
NUM_PROPERTIES
};
G_GNUC_BEGIN_IGNORE_DEPRECATIONS;
static void
pixbuf_paintable_snapshot (GdkPaintable *paintable,
GdkSnapshot *snapshot,
@@ -36,6 +37,7 @@ pixbuf_paintable_snapshot (GdkPaintable *paintable,
g_object_unref (texture);
}
G_GNUC_END_IGNORE_DEPRECATIONS;
static int
pixbuf_paintable_get_intrinsic_width (GdkPaintable *paintable)
+11 -4
View File
@@ -177,12 +177,19 @@ do_printing (GtkWidget *do_widget)
if (error)
{
GtkAlertDialog *dialog;
GtkWidget *dialog;
dialog = gtk_alert_dialog_new ("%s", error->message);
gtk_alert_dialog_show (dialog, GTK_WINDOW (do_widget));
g_object_unref (dialog);
dialog = gtk_message_dialog_new (GTK_WINDOW (do_widget),
GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_MESSAGE_ERROR,
GTK_BUTTONS_CLOSE,
"%s", error->message);
g_error_free (error);
g_signal_connect (dialog, "response",
G_CALLBACK (gtk_window_destroy), NULL);
gtk_widget_show (dialog);
}
+27 -7
View File
@@ -16,6 +16,26 @@
#include <glib/gi18n.h>
#include <gtk/gtk.h>
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
/* Convenience function to create a combo box holding a number of strings
*/
GtkWidget *
create_combo_box (const char **strings)
{
GtkWidget *combo_box;
const char **str;
combo_box = gtk_combo_box_text_new ();
for (str = strings; *str; str++)
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo_box), *str);
gtk_combo_box_set_active (GTK_COMBO_BOX (combo_box), 0);
return combo_box;
}
static void
add_row (GtkGrid *table,
int row,
@@ -23,7 +43,7 @@ add_row (GtkGrid *table,
const char *label_text,
const char **options)
{
GtkWidget *dropdown;
GtkWidget *combo_box;
GtkWidget *label;
label = gtk_label_new_with_mnemonic (label_text);
@@ -32,12 +52,12 @@ add_row (GtkGrid *table,
gtk_widget_set_hexpand (label, TRUE);
gtk_grid_attach (table, label, 0, row, 1, 1);
dropdown = gtk_drop_down_new_from_strings (options);
gtk_label_set_mnemonic_widget (GTK_LABEL (label), dropdown);
gtk_widget_set_halign (dropdown, GTK_ALIGN_END);
gtk_widget_set_valign (dropdown, GTK_ALIGN_BASELINE);
gtk_size_group_add_widget (size_group, dropdown);
gtk_grid_attach (table, dropdown, 1, row, 1, 1);
combo_box = create_combo_box (options);
gtk_label_set_mnemonic_widget (GTK_LABEL (label), combo_box);
gtk_widget_set_halign (combo_box, GTK_ALIGN_END);
gtk_widget_set_valign (combo_box, GTK_ALIGN_BASELINE);
gtk_size_group_add_widget (size_group, combo_box);
gtk_grid_attach (table, combo_box, 1, row, 1, 1);
}
static void
-2
View File
@@ -35,7 +35,6 @@ do_spinner (GtkWidget *do_widget)
if (!window)
{
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
window = gtk_dialog_new_with_buttons ("Spinner",
GTK_WINDOW (do_widget),
0,
@@ -49,7 +48,6 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
g_object_add_weak_pointer (G_OBJECT (window), (gpointer *)&window);
content_area = gtk_dialog_get_content_area (GTK_DIALOG (window));
G_GNUC_END_IGNORE_DEPRECATIONS
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
gtk_widget_set_margin_start (vbox, 5);
+5 -4
View File
@@ -11,6 +11,7 @@
#include <stdlib.h> /* for exit() */
#include "paintable.h"
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
static void easter_egg_callback (GtkWidget *button, gpointer data);
@@ -430,11 +431,11 @@ attach_widgets (GtkTextView *text_view)
}
else if (i == 1)
{
const char *options[] = {
"Option 1", "Option 2", "Option 3", NULL
};
widget = gtk_combo_box_text_new ();
widget = gtk_drop_down_new_from_strings (options);
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (widget), "Option 1");
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (widget), "Option 2");
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (widget), "Option 3");
}
else if (i == 2)
{
+24 -27
View File
@@ -10,63 +10,60 @@
static GtkWidget *window = NULL;
static void
open_dialog_response_cb (GObject *source,
GAsyncResult *result,
void *user_data)
open_dialog_response_cb (GtkNativeDialog *dialog,
int response,
GtkWidget *video)
{
GtkFileDialog *dialog = GTK_FILE_DIALOG (source);
GtkWidget *video = user_data;
GFile *file;
gtk_native_dialog_hide (dialog);
file = gtk_file_dialog_open_finish (dialog, result, NULL);
if (file)
if (response == GTK_RESPONSE_ACCEPT)
{
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)
{
GtkFileDialog *dialog;
GtkFileChooserNative *dialog;
GtkFileFilter *filter;
GListStore *filters;
dialog = gtk_file_dialog_new ();
gtk_file_dialog_set_title (dialog, "Select a video");
filters = g_list_store_new (GTK_TYPE_FILE_FILTER);
dialog = gtk_file_chooser_native_new ("Select a video",
GTK_WINDOW (gtk_widget_get_root (button)),
GTK_FILE_CHOOSER_ACTION_OPEN,
"_Open",
"_Cancel");
filter = gtk_file_filter_new ();
gtk_file_filter_add_pattern (filter, "*");
gtk_file_filter_set_name (filter, "All Files");
g_list_store_append (filters, filter);
gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), 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");
g_list_store_append (filters, filter);
gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), 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");
g_list_store_append (filters, filter);
gtk_file_dialog_set_current_filter (dialog, filter);
gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter);
gtk_file_chooser_set_filter (GTK_FILE_CHOOSER (dialog), 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_dialog_response_cb, video);
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));
}
static void
+90 -67
View File
@@ -548,36 +548,45 @@ node_editor_window_load (NodeEditorWindow *self,
}
static void
open_response_cb (GObject *source,
GAsyncResult *result,
void *user_data)
open_response_cb (GtkWidget *dialog,
int response,
NodeEditorWindow *self)
{
GtkFileDialog *dialog = GTK_FILE_DIALOG (source);
NodeEditorWindow *self = user_data;
GFile *file;
gtk_widget_hide (dialog);
file = gtk_file_dialog_open_finish (dialog, result, NULL);
if (file)
if (response == GTK_RESPONSE_ACCEPT)
{
GFile *file;
file = gtk_file_chooser_get_file (GTK_FILE_CHOOSER (dialog));
node_editor_window_load (self, file);
g_object_unref (file);
}
gtk_window_destroy (GTK_WINDOW (dialog));
}
static void
show_open_filechooser (NodeEditorWindow *self)
{
GtkFileDialog *dialog;
GFile *cwd;
GtkWidget *dialog;
dialog = gtk_file_dialog_new ();
gtk_file_dialog_set_title (dialog, "Open node file");
cwd = g_file_new_for_path (".");
gtk_file_dialog_set_current_folder (dialog, cwd);
dialog = gtk_file_chooser_dialog_new ("Open node file",
GTK_WINDOW (self),
GTK_FILE_CHOOSER_ACTION_OPEN,
"_Cancel", GTK_RESPONSE_CANCEL,
"_Load", GTK_RESPONSE_ACCEPT,
NULL);
gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_ACCEPT);
gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
GFile *cwd = g_file_new_for_path (".");
gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (dialog), cwd, NULL);
g_object_unref (cwd);
gtk_file_dialog_open (dialog, GTK_WINDOW (self),
NULL, NULL, open_response_cb, self);
g_object_unref (dialog);
g_signal_connect (dialog, "response", G_CALLBACK (open_response_cb), self);
gtk_widget_show (dialog);
}
static void
@@ -588,22 +597,21 @@ open_cb (GtkWidget *button,
}
static void
save_response_cb (GObject *source,
GAsyncResult *result,
void *user_data)
save_response_cb (GtkWidget *dialog,
int response,
NodeEditorWindow *self)
{
GtkFileDialog *dialog = GTK_FILE_DIALOG (source);
NodeEditorWindow *self = user_data;
GFile *file;
gtk_widget_hide (dialog);
file = gtk_file_dialog_save_finish (dialog, result, NULL);
if (file)
if (response == GTK_RESPONSE_ACCEPT)
{
GFile *file;
char *text;
GError *error = NULL;
text = get_current_text (self->text_buffer);
file = gtk_file_chooser_get_file (GTK_FILE_CHOOSER (dialog));
g_file_replace_contents (file, text, strlen (text),
NULL, FALSE,
G_FILE_CREATE_NONE,
@@ -612,40 +620,49 @@ save_response_cb (GObject *source,
&error);
if (error != NULL)
{
GtkAlertDialog *alert;
GtkWidget *message_dialog;
alert = gtk_alert_dialog_new ("Saving failed");
gtk_alert_dialog_set_detail (alert, error->message);
gtk_alert_dialog_show (alert,
GTK_WINDOW (gtk_widget_get_root (GTK_WIDGET (self))));
g_object_unref (alert);
message_dialog = gtk_message_dialog_new (GTK_WINDOW (gtk_widget_get_root (GTK_WIDGET (self))),
GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_MESSAGE_INFO,
GTK_BUTTONS_OK,
"Saving failed");
gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (message_dialog),
"%s", error->message);
g_signal_connect (message_dialog, "response", G_CALLBACK (gtk_window_destroy), NULL);
gtk_widget_show (message_dialog);
g_error_free (error);
}
g_free (text);
g_object_unref (file);
}
gtk_window_destroy (GTK_WINDOW (dialog));
}
static void
save_cb (GtkWidget *button,
NodeEditorWindow *self)
{
GtkFileDialog *dialog;
GFile *cwd;
GtkWidget *dialog;
dialog = gtk_file_dialog_new ();
gtk_file_dialog_set_title (dialog, "Save node");
cwd = g_file_new_for_path (".");
gtk_file_dialog_set_current_folder (dialog, cwd);
dialog = gtk_file_chooser_dialog_new ("Save node",
GTK_WINDOW (gtk_widget_get_root (GTK_WIDGET (button))),
GTK_FILE_CHOOSER_ACTION_SAVE,
"_Cancel", GTK_RESPONSE_CANCEL,
"_Save", GTK_RESPONSE_ACCEPT,
NULL);
gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_ACCEPT);
gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
GFile *cwd = g_file_new_for_path (".");
gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (dialog), cwd, NULL);
g_object_unref (cwd);
gtk_file_dialog_save (dialog,
GTK_WINDOW (gtk_widget_get_root (GTK_WIDGET (button))),
NULL,
"demo.node",
NULL,
save_response_cb, self);
g_object_unref (dialog);
g_signal_connect (dialog, "response", G_CALLBACK (save_response_cb), self);
gtk_widget_show (dialog);
}
static GdkTexture *
@@ -707,29 +724,34 @@ create_cairo_texture (NodeEditorWindow *self)
}
static void
export_image_response_cb (GObject *source,
GAsyncResult *result,
void *user_data)
export_image_response_cb (GtkWidget *dialog,
int response,
GdkTexture *texture)
{
GtkFileDialog *dialog = GTK_FILE_DIALOG (source);
GdkTexture *texture = user_data;
GFile *file;
gtk_widget_hide (dialog);
file = gtk_file_dialog_save_finish (dialog, result, NULL);
if (file)
if (response == GTK_RESPONSE_ACCEPT)
{
GFile *file;
file = gtk_file_chooser_get_file (GTK_FILE_CHOOSER (dialog));
if (!gdk_texture_save_to_png (texture, g_file_peek_path (file)))
{
GtkAlertDialog *alert;
GtkWidget *message_dialog;
alert = gtk_alert_dialog_new ("Exporting to image failed");
gtk_alert_dialog_show (alert, GTK_WINDOW (gtk_window_get_transient_for (GTK_WINDOW (dialog))));
g_object_unref (alert);
message_dialog = gtk_message_dialog_new (GTK_WINDOW (gtk_window_get_transient_for (GTK_WINDOW (dialog))),
GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_MESSAGE_INFO,
GTK_BUTTONS_OK,
"Exporting to image failed");
g_signal_connect (message_dialog, "response", G_CALLBACK (gtk_window_destroy), NULL);
gtk_widget_show (message_dialog);
}
g_object_unref (file);
}
gtk_window_destroy (GTK_WINDOW (dialog));
g_object_unref (texture);
}
@@ -738,23 +760,24 @@ export_image_cb (GtkWidget *button,
NodeEditorWindow *self)
{
GdkTexture *texture;
GtkFileDialog *dialog;
GtkWidget *dialog;
texture = create_texture (self);
if (texture == NULL)
return;
dialog = gtk_file_dialog_new ();
gtk_file_dialog_set_title (dialog, "");
gtk_file_dialog_save (dialog,
GTK_WINDOW (gtk_widget_get_root (GTK_WIDGET (button))),
NULL,
"example.png",
NULL,
export_image_response_cb, texture);
g_object_unref (dialog);
}
dialog = gtk_file_chooser_dialog_new ("",
GTK_WINDOW (gtk_widget_get_root (GTK_WIDGET (button))),
GTK_FILE_CHOOSER_ACTION_SAVE,
"_Cancel", GTK_RESPONSE_CANCEL,
"_Save", GTK_RESPONSE_ACCEPT,
NULL);
gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_ACCEPT);
gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
g_signal_connect (dialog, "response", G_CALLBACK (export_image_response_cb), texture);
gtk_widget_show (dialog);
}
static void
clip_image_cb (GtkWidget *button,
+99 -76
View File
@@ -96,10 +96,12 @@ set_text (const char *text,
static void
load_file (GFile *open_filename)
{
GtkWidget *error_dialog;
char *contents;
GError *error;
gsize len;
error_dialog = NULL;
error = NULL;
g_file_load_contents (open_filename, NULL, &contents, &len, NULL, &error);
if (error == NULL)
@@ -115,28 +117,36 @@ load_file (GFile *open_filename)
{
GFileInfo *info = g_file_query_info (open_filename, "standard::display-name", 0, NULL, &error);
const char *display_name = g_file_info_get_display_name (info);
GtkAlertDialog *alert;
alert = gtk_alert_dialog_new ("Error loading file %s", display_name);
gtk_alert_dialog_set_detail (alert, "Not valid utf8");
gtk_alert_dialog_show (alert, GTK_WINDOW (main_window));
g_object_unref (alert);
g_object_unref (info);
}
error_dialog = gtk_message_dialog_new (GTK_WINDOW (main_window),
GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_MESSAGE_ERROR,
GTK_BUTTONS_CLOSE,
"Error loading file %s:\n%s",
display_name,
"Not valid utf8");
g_object_unref (info);
}
}
else
{
GFileInfo *info = g_file_query_info (open_filename, "standard::display-name", 0, NULL, &error);
const char *display_name = g_file_info_get_display_name (info);
GtkAlertDialog *alert;
alert = gtk_alert_dialog_new ("Error loading file %s", display_name);
gtk_alert_dialog_set_detail (alert, error->message);
gtk_alert_dialog_show (alert, GTK_WINDOW (main_window));
g_object_unref (alert);
error_dialog = gtk_message_dialog_new (GTK_WINDOW (main_window),
GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_MESSAGE_ERROR,
GTK_BUTTONS_CLOSE,
"Error loading file %s:\n%s",
display_name,
error->message);
g_object_unref (info);
g_error_free (error);
}
if (error_dialog)
{
g_signal_connect (error_dialog, "response", G_CALLBACK (gtk_window_destroy), NULL);
gtk_widget_show (error_dialog);
}
}
@@ -144,6 +154,7 @@ static void
save_file (GFile *save_filename)
{
char *text = get_text ();
GtkWidget *error_dialog;
GError *error;
error = NULL;
@@ -169,12 +180,18 @@ save_file (GFile *save_filename)
{
GFileInfo *info = g_file_query_info (save_filename, "standard::display-name", 0, NULL, NULL);
const char *display_name = g_file_info_get_display_name (info);
GtkAlertDialog *alert;
alert = gtk_alert_dialog_new ("Error saving to file %s", display_name);
gtk_alert_dialog_set_detail (alert, error->message);
gtk_alert_dialog_show (alert, GTK_WINDOW (main_window));
g_object_unref (alert);
error_dialog = gtk_message_dialog_new (GTK_WINDOW (main_window),
GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_MESSAGE_ERROR,
GTK_BUTTONS_CLOSE,
"Error saving to file %s:\n%s",
display_name,
error->message);
g_signal_connect (error_dialog, "response", G_CALLBACK (gtk_window_destroy), NULL);
gtk_widget_show (error_dialog);
g_error_free (error);
g_object_unref (info);
}
@@ -323,24 +340,21 @@ create_custom_widget (GtkPrintOperation *operation,
PrintData *data)
{
GtkWidget *vbox, *hbox, *font, *label;
GtkFontDialog *dialog;
PangoFontDescription *desc;
gtk_print_operation_set_custom_tab_label (operation, "Other");
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 8);
gtk_box_append (GTK_BOX (vbox), hbox);
gtk_widget_show (hbox);
label = gtk_label_new ("Font:");
gtk_box_append (GTK_BOX (hbox), label);
gtk_widget_show (label);
dialog = gtk_font_dialog_new ();
font = gtk_font_dialog_button_new (dialog);
desc = pango_font_description_from_string (data->font);
gtk_font_dialog_button_set_font_desc (GTK_FONT_DIALOG_BUTTON (font), desc);
pango_font_description_free (desc);
font = gtk_font_button_new_with_font (data->font);
gtk_box_append (GTK_BOX (hbox), font);
gtk_widget_show (font);
data->font_button = font;
return vbox;
@@ -351,12 +365,11 @@ custom_widget_apply (GtkPrintOperation *operation,
GtkWidget *widget,
PrintData *data)
{
PangoFontDescription *desc;
desc = gtk_font_dialog_button_get_font_desc (GTK_FONT_DIALOG_BUTTON (data->font_button));
const char *selected_font;
selected_font = gtk_font_chooser_get_font (GTK_FONT_CHOOSER (data->font_button));
g_free (data->font);
data->font = pango_font_description_to_string (desc);
data->font = g_strdup (selected_font);
}
static void
@@ -364,18 +377,23 @@ print_done (GtkPrintOperation *op,
GtkPrintOperationResult res,
PrintData *print_data)
{
GError *error = NULL;
if (res == GTK_PRINT_OPERATION_RESULT_ERROR)
{
GtkAlertDialog *alert;
GError *error = NULL;
GtkWidget *error_dialog;
gtk_print_operation_get_error (op, &error);
alert = gtk_alert_dialog_new ("Error printing file");
if (error)
gtk_alert_dialog_set_detail (alert, error->message);
gtk_alert_dialog_show (alert, GTK_WINDOW (main_window));
g_object_unref (alert);
error_dialog = gtk_message_dialog_new (GTK_WINDOW (main_window),
GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_MESSAGE_ERROR,
GTK_BUTTONS_CLOSE,
"Error printing file:\n%s",
error ? error->message : "no details");
g_signal_connect (error_dialog, "response", G_CALLBACK (gtk_window_destroy), NULL);
gtk_widget_show (error_dialog);
}
else if (res == GTK_PRINT_OPERATION_RESULT_APPLY)
{
@@ -481,19 +499,17 @@ activate_preview (GSimpleAction *action,
}
static void
on_save_response (GObject *source,
GAsyncResult *result,
void *user_data)
on_save_response (GtkWidget *dialog,
int response)
{
GtkFileDialog *dialog = GTK_FILE_DIALOG (source);
GFile *file;
file = gtk_file_dialog_save_finish (dialog, result, NULL);
if (file)
if (response == GTK_RESPONSE_OK)
{
save_file (file);
g_object_unref (file);
GFile *save_filename = gtk_file_chooser_get_file (GTK_FILE_CHOOSER (dialog));
save_file (save_filename);
g_object_unref (save_filename);
}
gtk_window_destroy (GTK_WINDOW (dialog));
}
static void
@@ -501,17 +517,21 @@ activate_save_as (GSimpleAction *action,
GVariant *parameter,
gpointer user_data)
{
GtkFileDialog *dialog;
GtkWidget *dialog;
dialog = gtk_file_dialog_new ();
gtk_file_dialog_set_title (dialog, "Select file");
gtk_file_dialog_save (dialog,
GTK_WINDOW (main_window),
NULL,
NULL,
NULL,
on_save_response, NULL);
g_object_unref (dialog);
dialog = gtk_file_chooser_dialog_new ("Select file",
GTK_WINDOW (main_window),
GTK_FILE_CHOOSER_ACTION_SAVE,
"_Cancel", GTK_RESPONSE_CANCEL,
"_Save", GTK_RESPONSE_OK,
NULL);
gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK);
gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
gtk_widget_show (dialog);
g_signal_connect (dialog, "response",
G_CALLBACK (on_save_response),
NULL);
}
static void
@@ -526,19 +546,17 @@ activate_save (GSimpleAction *action,
}
static void
on_open_response (GObject *source,
GAsyncResult *result,
void *user_data)
on_open_response (GtkWidget *dialog,
int response)
{
GtkFileDialog *dialog = GTK_FILE_DIALOG (source);
GFile *file;
file = gtk_file_dialog_open_finish (dialog, result, NULL);
if (file)
if (response == GTK_RESPONSE_OK)
{
load_file (file);
g_object_unref (file);
GFile *open_filename = gtk_file_chooser_get_file (GTK_FILE_CHOOSER (dialog));
load_file (open_filename);
g_object_unref (open_filename);
}
gtk_window_destroy (GTK_WINDOW (dialog));
}
static void
@@ -546,16 +564,21 @@ activate_open (GSimpleAction *action,
GVariant *parameter,
gpointer user_data)
{
GtkFileDialog *dialog;
GtkWidget *dialog;
dialog = gtk_file_dialog_new ();
gtk_file_dialog_set_title (dialog, "Select file");
gtk_file_dialog_open (dialog,
GTK_WINDOW (main_window),
NULL,
NULL,
on_open_response, NULL);
g_object_unref (dialog);
dialog = gtk_file_chooser_dialog_new ("Select file",
GTK_WINDOW (main_window),
GTK_FILE_CHOOSER_ACTION_OPEN,
"_Cancel", GTK_RESPONSE_CANCEL,
"_Open", GTK_RESPONSE_OK,
NULL);
gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK);
gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
gtk_widget_show (dialog);
g_signal_connect (dialog, "response",
G_CALLBACK (on_open_response),
NULL);
}
static void
+13 -20
View File
@@ -214,19 +214,10 @@ activate_background (GSimpleAction *action,
}
static void
file_chooser_response (GObject *source,
GAsyncResult *result,
void *user_data)
file_chooser_response (GtkNativeDialog *self,
int response)
{
GtkFileDialog *dialog = GTK_FILE_DIALOG (source);
GFile *file;
file = gtk_file_dialog_open_finish (dialog, result, NULL);
if (file)
{
g_print ("File selected: %s", g_file_peek_path (file));
g_object_unref (file);
}
gtk_native_dialog_destroy (self);
}
static void
@@ -234,11 +225,17 @@ activate_open_file (GSimpleAction *action,
GVariant *parameter,
gpointer user_data)
{
GtkFileDialog *dialog;
GtkFileChooserNative *chooser;
dialog = gtk_file_dialog_new ();
gtk_file_dialog_open (dialog, NULL, NULL, NULL, file_chooser_response, NULL);
g_object_unref (dialog);
chooser = gtk_file_chooser_native_new ("Open file",
NULL,
GTK_FILE_CHOOSER_ACTION_OPEN,
"Open",
"Cancel");
g_signal_connect (chooser, "response", G_CALLBACK (file_chooser_response), NULL);
gtk_native_dialog_show (GTK_NATIVE_DIALOG (chooser));
}
static void
@@ -1096,9 +1093,7 @@ set_color (GtkListBox *box, GtkListBoxRow *row, GtkColorChooser *chooser)
if (gdk_rgba_parse (&rgba, color))
{
g_signal_handlers_block_by_func (chooser, rgba_changed, box);
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
gtk_color_chooser_set_rgba (chooser, &rgba);
G_GNUC_END_IGNORE_DEPRECATIONS
g_signal_handlers_unblock_by_func (chooser, rgba_changed, box);
}
}
@@ -1467,9 +1462,7 @@ close_selection_dialog (GtkWidget *dialog, int response, GtkWidget *tv)
if (response == GTK_RESPONSE_CANCEL)
return;
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
box = gtk_widget_get_first_child (gtk_dialog_get_content_area (GTK_DIALOG (dialog)));
G_GNUC_END_IGNORE_DEPRECATIONS
g_assert (GTK_IS_FLOW_BOX (box));
children = gtk_flow_box_get_selected_children (GTK_FLOW_BOX (box));
+7 -15
View File
@@ -8,7 +8,8 @@ are organized in a hierarchy. The window widget is the main container.
The user interface is then built by adding buttons, drop-down menus, input
fields, and other widgets to the window. If you are creating complex user
interfaces it is recommended to use GtkBuilder and its GTK-specific markup
description language, instead of assembling the interface manually.
description language, instead of assembling the interface manually. You can
also use a visual user interface editor, like [Glade](https://glade.gnome.org/).
GTK is event-driven. The toolkit listens for events such as a click
on a button, and passes the event to your application.
@@ -711,20 +712,11 @@ A common location to install UI descriptions and similar data is
`/usr/share/appname`.
It is also possible to embed the UI description in the source code as a
string and use [`method@Gtk.Builder.add_from_string`] to load it. But keeping
the UI description in a separate file has several advantages:
- it is possible to make minor adjustments to the UI without recompiling your
program
- it is easier to isolate the UI code from the business logic of your
application
- it is easier to restructure your UI into separate classes using composite
widget templates
Using [GResource](https://docs.gtk.org/gio/struct.Resource.html) it is possible
to combine the best of both worlds: you can keep the UI definition files
separate inside your source code repository, and then ship them embedded into
your application.
string and use [`method@Gtk.Builder.add_from_string`] to load it. But keeping the
UI description in a separate file has several advantages: It is then possible
to make minor adjustments to the UI without recompiling your program, and,
more importantly, graphical UI editors such as [Glade](http://glade.gnome.org)
can load the file and allow you to create and modify your UI by point-and-click.
## Building applications
-25
View File
@@ -72,28 +72,3 @@ added.
GTK 5 will no longer provide this functionality. The recommendations
is to use a global stylesheet (i.e. gtk_style_context_add_provider_for_display())
and rely on style classes to make your CSS apply only where desired.
## Chooser interfaces are going away
The GtkColorChooser, GtkFontChooser, GtkFileChooser and GtkAppChooser
interfaces and their implementations as dialogs, buttons and widgets
are phased out. The are being replaced by a new family of async APIs
that will be more convenient to use from language bindings, in particular
for languages that have concepts like promises. The new APIs are
[class@Gtk.ColorDialog], [class@Gtk.FontDialog] and [class@Gtk.FileDialog],
There are also equivalents for some of the 'button' widgets:
[class@Gtk.ColorDialogButton], [class@Gtk.FontDialogButton].
## GtkMessageDialog is going away
Like the Chooser interfaces, GtkMessageDialog has been replaced by
a new async API that will be more convenient, in particular for
language binding. The new API is [class@Gtk.AlertDialog].
## GtkDialog is going away
After gtk_dialog_run() was removed, the usefulness of GtkDialog
is much reduced, and it has awkward, archaice APIs. Therefore,
it is dropped. The recommended replacement is to just create
your own window and add buttons as required, either in the header
or elsewhere.
+12 -4
View File
@@ -6,11 +6,19 @@ action_activated (GSimpleAction *action,
gpointer user_data)
{
GtkWindow *parent = user_data;
GtkAlertDialog *dialog;
GtkWidget *dialog;
dialog = gtk_alert_dialog_new ("Activated action `%s`", g_action_get_name (G_ACTION (action)));
gtk_alert_dialog_show (dialog, NULL);
g_object_unref (dialog);
dialog = gtk_message_dialog_new (parent,
GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_MESSAGE_INFO,
GTK_BUTTONS_CLOSE,
"Activated action `%s`",
g_action_get_name (G_ACTION (action)));
g_signal_connect_swapped (dialog, "response",
G_CALLBACK (gtk_window_destroy), dialog);
gtk_widget_show (dialog);
}
static GActionEntry doc_entries[] = {
+8 -11
View File
@@ -352,8 +352,7 @@ quit_activated (GSimpleAction *action,
}
static void
combo_changed (GtkDropDown *combo,
GParamSpec *pspec,
combo_changed (GtkComboBox *combo,
gpointer user_data)
{
GtkDialog *dialog = user_data;
@@ -362,7 +361,7 @@ combo_changed (GtkDropDown *combo,
char **accels;
char *str;
action = gtk_string_object_get_string (GTK_STRING_OBJECT (gtk_drop_down_get_selected_item (combo)));
action = gtk_combo_box_get_active_id (combo);
if (!action)
return;
@@ -391,7 +390,7 @@ response (GtkDialog *dialog,
gpointer user_data)
{
GtkEntry *entry = g_object_get_data (user_data, "entry");
GtkDropDown *combo = g_object_get_data (user_data, "combo");
GtkComboBox *combo = g_object_get_data (user_data, "combo");
const char *action;
const char *str;
char **accels;
@@ -402,7 +401,7 @@ response (GtkDialog *dialog,
return;
}
action = gtk_string_object_get_string (GTK_STRING_OBJECT (gtk_drop_down_get_selected_item (combo)));
action = gtk_combo_box_get_active_id (combo);
if (!action)
return;
@@ -427,7 +426,6 @@ edit_accels (GSimpleAction *action,
char **actions;
GtkWidget *dialog;
int i;
GtkStringList *strings;
dialog = gtk_dialog_new_with_buttons ("Accelerators",
NULL,
@@ -439,8 +437,7 @@ edit_accels (GSimpleAction *action,
gtk_window_set_application (GTK_WINDOW (dialog), app);
actions = gtk_application_list_action_descriptions (app);
strings = gtk_string_list_new (NULL);
combo = gtk_drop_down_new (G_LIST_MODEL (strings), NULL);
combo = gtk_combo_box_text_new ();
g_object_set (gtk_dialog_get_content_area (GTK_DIALOG (dialog)),
"margin-top", 10,
"margin-bottom", 10,
@@ -451,8 +448,8 @@ edit_accels (GSimpleAction *action,
gtk_box_append (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dialog))), combo);
for (i = 0; actions[i]; i++)
gtk_string_list_append (strings, actions[i]);
g_signal_connect (combo, "notify::selected", G_CALLBACK (combo_changed), dialog);
gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combo), actions[i], actions[i]);
g_signal_connect (combo, "changed", G_CALLBACK (combo_changed), dialog);
entry = gtk_entry_new ();
gtk_widget_set_hexpand (entry, TRUE);
@@ -463,7 +460,7 @@ edit_accels (GSimpleAction *action,
g_object_set_data (G_OBJECT (dialog), "combo", combo);
g_object_set_data (G_OBJECT (dialog), "entry", entry);
gtk_drop_down_set_selected (GTK_DROP_DOWN (combo), 0);
gtk_combo_box_set_active (GTK_COMBO_BOX (combo), 0);
gtk_widget_show (dialog);
}
+1 -1
View File
@@ -203,7 +203,7 @@ gdk_wayland_keymap_get_entries_for_keycode (GdkKeymap *keymap,
{
const xkb_keysym_t *syms;
int num_syms;
num_syms = xkb_keymap_key_get_syms_by_level (xkb_keymap, hardware_keycode, layout, level, &syms);
num_syms = xkb_keymap_key_get_syms_by_level (xkb_keymap, hardware_keycode, layout, 0, &syms);
if (keys)
{
(*keys)[i].keycode = hardware_keycode;
-4
View File
@@ -41,10 +41,6 @@
*
* To obtain the application that has been selected in a `GtkAppChooser`,
* use [method@Gtk.AppChooser.get_app_info].
*
* Deprecated: 4.10: The application selection widgets should be
* implemented according to the design of each platform and/or
* application requiring them.
*/
#include "config.h"
+1 -5
View File
@@ -45,13 +45,9 @@
* To track changes in the selected application, use the
* [signal@Gtk.AppChooserButton::changed] signal.
*
* ## CSS nodes
* # CSS nodes
*
* `GtkAppChooserButton` has a single CSS node with the name appchooserbutton.
*
* Deprecated: 4.10: The application selection widgets should be
* implemented according to the design of each platform and/or
* application requiring them.
*/
#include "config.h"
+3 -7
View File
@@ -37,10 +37,6 @@
*
* To set the heading that is shown above the `GtkAppChooserWidget`,
* use [method@Gtk.AppChooserDialog.set_heading].
*
* Deprecated: 4.10: The application selection widgets should be
* implemented according to the design of each platform and/or
* application requiring them.
*/
#include "config.h"
@@ -220,13 +216,13 @@ set_dialog_properties (GtkAppChooserDialog *self)
else if (self->content_type)
{
/* Translators: %s is a file type description */
subtitle = g_strdup_printf (_("Opening “%s” files."),
subtitle = g_strdup_printf (_("Opening “%s” files."),
unknown ? self->content_type : description);
string = g_strdup_printf (_("No applications found for “%s” files"),
unknown ? self->content_type : description);
}
g_object_get (self, "use-header-bar", &use_header, NULL);
g_object_get (self, "use-header-bar", &use_header, NULL);
if (use_header)
{
GtkWidget *box, *label;
@@ -498,7 +494,7 @@ static void
gtk_app_chooser_dialog_dispose (GObject *object)
{
GtkAppChooserDialog *self = GTK_APP_CHOOSER_DIALOG (object);
g_clear_object (&self->gfile);
self->dismissed = TRUE;
+1 -1
View File
@@ -29,7 +29,7 @@
#error "Only <gtk/gtk.h> can be included directly."
#endif
#include <gtk/deprecated/gtkdialog.h>
#include <gtk/gtkdialog.h>
#include <gio/gio.h>
G_BEGIN_DECLS
+3 -7
View File
@@ -69,13 +69,9 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
* [signal@Gtk.AppChooserWidget::application-selected] and
* [signal@Gtk.AppChooserWidget::application-activated] signals.
*
* ## CSS nodes
* # CSS nodes
*
* `GtkAppChooserWidget` has a single CSS node with name appchooser.
*
* Deprecated: 4.10: The application selection widgets should be
* implemented according to the design of each platform and/or
* application requiring them.
*/
typedef struct _GtkAppChooserWidgetClass GtkAppChooserWidgetClass;
@@ -316,7 +312,7 @@ gtk_app_chooser_sort_func (GtkTreeModel *model,
retval = 1;
goto out;
}
/* the recommended one always wins */
if (a_recommended && !b_recommended)
{
@@ -448,7 +444,7 @@ gtk_app_chooser_widget_add_section (GtkAppChooserWidget *self,
retval = FALSE;
heading_added = FALSE;
bold_string = g_strdup_printf ("<b>%s</b>", heading_title);
for (l = applications; l != NULL; l = l->next)
{
app = l->data;
+4 -7
View File
@@ -35,7 +35,7 @@
* Usually users dont have to interact with the `GtkCellArea` directly
* unless they are implementing a cell-layouting widget themselves.
*
* ## Requesting area sizes
* # Requesting area sizes
*
* As outlined in
* [GtkWidgets geometry management section](class.Widget.html#height-for-width-geometry-management),
@@ -186,7 +186,7 @@
* values while more and more height is required for the row heights
* that are calculated in the background.
*
* ## Rendering Areas
* # Rendering Areas
*
* Once area sizes have been acquired at least for the rows in the
* visible area of the layouting widget they can be rendered at
@@ -227,7 +227,7 @@
* would make sense to calculate the allocation for each row at
* the time the widget is allocated using [func@Gtk.distribute_natural_allocation].
*
* ## Handling Events and Driving Keyboard Focus
* # Handling Events and Driving Keyboard Focus
*
* Passing events to the area is as simple as handling events on any
* normal widget and then passing them to the [method@Gtk.CellArea.event]
@@ -316,7 +316,7 @@
* Note that the layouting widget is responsible for matching the
* `GtkDirectionType` values to the way it lays out its cells.
*
* ## Cell Properties
* # Cell Properties
*
* The `GtkCellArea` introduces cell properties for `GtkCellRenderer`s.
* This provides some general interfaces for defining the relationship
@@ -335,9 +335,6 @@
* [method@Gtk.CellArea.cell_set] or [method@Gtk.CellArea.cell_set_valist]. To obtain
* the value of a cell property, use [method@Gtk.CellArea.cell_get_property]
* [method@Gtk.CellArea.cell_get] or [method@Gtk.CellArea.cell_get_valist].
*
* Deprecated: 4.10: List views use widgets for displaying their
* contents
*/
#include "config.h"
+3 -6
View File
@@ -42,9 +42,6 @@
* configured by configuring the `GtkCellAreaBox` align child cell property
* with gtk_cell_area_cell_set_property() or by specifying the "align"
* argument to gtk_cell_area_box_pack_start() and gtk_cell_area_box_pack_end().
*
* Deprecated: 4.10: List views use widgets for displaying their
* contents
*/
#include "config.h"
@@ -505,7 +502,7 @@ cell_groups_rebuild (GtkCellAreaBox *box)
CellInfo *info = l->data;
/* A new group starts with any aligned cell, or
* at the beginning and end of a fixed size cell.
* at the beginning and end of a fixed size cell.
* the first group is implied */
if ((info->align || info->fixed || last_cell_fixed) && l != cells)
{
@@ -895,7 +892,7 @@ get_allocated_cells (GtkCellAreaBox *box,
if (visible_cells == 0)
continue;
/* If were not aligned, place the cell after the last cell
/* If were not aligned, place the cell after the last cell
* and eat up the extra space
*/
if (group->align)
@@ -2089,7 +2086,7 @@ _gtk_cell_area_box_group_visible (GtkCellAreaBox *box,
{
GtkCellAreaBoxPrivate *priv = gtk_cell_area_box_get_instance_private (box);
CellGroup *group;
g_assert (group_idx >= 0 && group_idx < priv->groups->len);
group = &g_array_index (priv->groups, CellGroup, group_idx);
+11 -11
View File
@@ -139,7 +139,7 @@ get_array (GtkCellAreaBoxContext *context,
return array;
}
static gboolean
static gboolean
group_expands (GtkCellAreaBoxContext *context,
int group_idx)
{
@@ -161,7 +161,7 @@ count_expand_groups (GtkCellAreaBoxContext *context)
if (priv->expand[i])
expand++;
}
return expand;
}
@@ -182,7 +182,7 @@ _gtk_cell_area_box_context_init (GtkCellAreaBoxContext *box_context)
NULL, (GDestroyNotify)free_cache_array);
}
static void
static void
_gtk_cell_area_box_context_class_init (GtkCellAreaBoxContextClass *class)
{
GObjectClass *object_class = G_OBJECT_CLASS (class);
@@ -267,11 +267,11 @@ _gtk_cell_area_box_context_sum (GtkCellAreaBoxContext *context,
box_orientation = gtk_orientable_get_orientation (GTK_ORIENTABLE (area));
array = get_array (context, orientation, for_size);
/* Get the last visible aligned group
/* Get the last visible aligned group
* (we need to get space at least up till this group) */
for (i = array->len - 1; i >= 0; i--)
{
if (priv->align[i] &&
if (priv->align[i] &&
_gtk_cell_area_box_group_visible (area, i))
break;
}
@@ -326,7 +326,7 @@ _gtk_cell_area_box_context_get_preferred_height_for_width (GtkCellAreaContext *c
int *minimum_height,
int *natural_height)
{
_gtk_cell_area_box_context_sum (GTK_CELL_AREA_BOX_CONTEXT (context), GTK_ORIENTATION_VERTICAL,
_gtk_cell_area_box_context_sum (GTK_CELL_AREA_BOX_CONTEXT (context), GTK_ORIENTATION_VERTICAL,
width, minimum_height, natural_height);
}
@@ -336,7 +336,7 @@ _gtk_cell_area_box_context_get_preferred_width_for_height (GtkCellAreaContext *c
int *minimum_width,
int *natural_width)
{
_gtk_cell_area_box_context_sum (GTK_CELL_AREA_BOX_CONTEXT (context), GTK_ORIENTATION_HORIZONTAL,
_gtk_cell_area_box_context_sum (GTK_CELL_AREA_BOX_CONTEXT (context), GTK_ORIENTATION_HORIZONTAL,
height, minimum_width, natural_width);
}
@@ -686,11 +686,11 @@ _gtk_cell_area_box_context_get_requests (GtkCellAreaBoxContext *box_context,
int last_aligned_group_idx = 0;
int i, j;
/* Get the last visible aligned group
/* Get the last visible aligned group
* (we need to get space at least up till this group) */
for (i = priv->base_widths->len - 1; i >= 0; i--)
{
if (priv->align[i] &&
if (priv->align[i] &&
_gtk_cell_area_box_group_visible (area, i))
break;
}
@@ -846,11 +846,11 @@ _gtk_cell_area_box_context_get_orientation_allocs (GtkCellAreaBoxContext *contex
gtk_cell_area_context_get_allocation (ctx, &width, &height);
if (orientation == GTK_ORIENTATION_HORIZONTAL && width > 0)
allocs = allocate_for_orientation (context, area, orientation,
allocs = allocate_for_orientation (context, area, orientation,
spacing, width, height,
&alloc_count);
else if (orientation == GTK_ORIENTATION_VERTICAL && height > 0)
allocs = allocate_for_orientation (context, area, orientation,
allocs = allocate_for_orientation (context, area, orientation,
spacing, height, width,
&alloc_count);
-3
View File
@@ -23,9 +23,6 @@
* The `GtkCellEditable` interface must be implemented for widgets to be usable
* to edit the contents of a `GtkTreeView` cell. It provides a way to specify how
* temporary widgets should be configured for editing, get the new value, etc.
*
* Deprecated: 4.10: List views use widgets for displaying their
* contents. See [iface@Gtk.Editable] for editable text widgets
*/
#include "config.h"
+8 -11
View File
@@ -24,7 +24,7 @@
* want to provide a `GtkTreeViewColumn` like API for packing cells,
* setting attributes and data funcs.
*
* One of the notable features provided by implementations of
* One of the notable features provided by implementations of
* `GtkCellLayout` are attributes. Attributes let you set the properties
* in flexible ways. They can just be set to constant values like regular
* properties. But they can also be mapped to a column of the underlying
@@ -34,7 +34,7 @@
* gtk_cell_layout_set_cell_data_func() that is called to determine the
* value of the attribute for each cell that is rendered.
*
* ## GtkCellLayouts as GtkBuildable
* # GtkCellLayouts as GtkBuildable
*
* Implementations of GtkCellLayout which also implement the GtkBuildable
* interface (`GtkCellView`, `GtkIconView`, `GtkComboBox`,
@@ -78,7 +78,7 @@
* </object>
* ```
*
* ## Subclassing GtkCellLayout implementations
* # Subclassing GtkCellLayout implementations
*
* When subclassing a widget that implements `GtkCellLayout` like
* `GtkIconView` or `GtkComboBox`, there are some considerations related
@@ -126,9 +126,6 @@
* to support alternative cell areas, you can do so by moving the
* problematic calls out of `init()` and into a `constructor()`
* for your class.
*
* Deprecated: 4.10: List views use widgets to display their contents.
* See [class@Gtk.LayoutManager] for layout manager delegate objects
*/
#include "config.h"
@@ -284,8 +281,8 @@ gtk_cell_layout_default_set_cell_data_func (GtkCellLayout *cell_layout,
area = iface->get_area (cell_layout);
if (area)
_gtk_cell_area_set_cell_data_func_with_proxy (area, cell,
(GFunc)func, func_data, destroy,
_gtk_cell_area_set_cell_data_func_with_proxy (area, cell,
(GFunc)func, func_data, destroy,
cell_layout);
else
warn_no_cell_area ("GtkCellLayoutIface->set_cell_data_func()");
@@ -449,7 +446,7 @@ gtk_cell_layout_set_attributesv (GtkCellLayout *cell_layout,
* @cell: a `GtkCellRenderer`
* @...: a %NULL-terminated list of attributes
*
* Sets the attributes in the parameter list as the attributes
* Sets the attributes in the parameter list as the attributes
* of @cell_layout.
*
* See [method@Gtk.CellLayout.add_attribute] for more details.
@@ -534,7 +531,7 @@ gtk_cell_layout_set_cell_data_func (GtkCellLayout *cell_layout,
g_return_if_fail (GTK_IS_CELL_LAYOUT (cell_layout));
g_return_if_fail (GTK_IS_CELL_RENDERER (cell));
GTK_CELL_LAYOUT_GET_IFACE
GTK_CELL_LAYOUT_GET_IFACE
(cell_layout)->set_cell_data_func (cell_layout, cell, func, func_data, destroy);
}
@@ -622,7 +619,7 @@ gtk_cell_layout_get_area (GtkCellLayout *cell_layout)
g_return_val_if_fail (GTK_IS_CELL_LAYOUT (cell_layout), NULL);
iface = GTK_CELL_LAYOUT_GET_IFACE (cell_layout);
iface = GTK_CELL_LAYOUT_GET_IFACE (cell_layout);
if (iface->get_area)
return iface->get_area (cell_layout);
+27 -30
View File
@@ -68,9 +68,6 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
* corresponding set property, e.g. cell-background-set corresponds
* to cell-background. These set properties reflect whether a property
* has been set or not. You should not set them independently.
*
* Deprecated: 4.10: List views use widgets for displaying their
* contents
*/
@@ -216,7 +213,7 @@ gtk_cell_renderer_class_init (GtkCellRendererClass *class)
*
* This signal gets emitted when the user cancels the process of editing a
* cell. For example, an editable cell renderer could be written to cancel
* editing when the user presses Escape.
* editing when the user presses Escape.
*
* See also: gtk_cell_renderer_stop_editing().
*/
@@ -254,12 +251,12 @@ gtk_cell_renderer_class_init (GtkCellRendererClass *class)
* const char *path,
* gpointer data)
* {
* if (GTK_IS_ENTRY (editable))
* if (GTK_IS_ENTRY (editable))
* {
* GtkEntry *entry = GTK_ENTRY (editable);
*
*
* // ... create a GtkEntryCompletion
*
*
* gtk_entry_set_completion (entry, completion);
* }
* }
@@ -631,7 +628,7 @@ set_cell_bg_color (GtkCellRenderer *cell,
* @cell: a `GtkCellRenderer`
* @snapshot: a `GtkSnapshot` to draw to
* @widget: the widget owning @window
* @background_area: entire cell area (including tree expanders and maybe
* @background_area: entire cell area (including tree expanders and maybe
* padding on the sides)
* @cell_area: area normally rendered by a cell renderer
* @flags: flags that affect rendering
@@ -805,7 +802,7 @@ gtk_cell_renderer_start_editing (GtkCellRenderer *cell,
gtk_widget_add_css_class (GTK_WIDGET (editable), "cell");
g_signal_emit (cell,
g_signal_emit (cell,
cell_renderer_signals[EDITING_STARTED], 0,
editable, path);
@@ -1199,7 +1196,7 @@ gtk_cell_renderer_real_get_preferred_size (GtkCellRenderer *cell,
}
}
static GtkSizeRequestMode
static GtkSizeRequestMode
gtk_cell_renderer_real_get_request_mode (GtkCellRenderer *cell)
{
/* By default cell renderers are height-for-width. */
@@ -1212,7 +1209,7 @@ gtk_cell_renderer_real_get_preferred_width (GtkCellRenderer *cell,
int *minimum_size,
int *natural_size)
{
gtk_cell_renderer_real_get_preferred_size (cell, widget, GTK_ORIENTATION_HORIZONTAL,
gtk_cell_renderer_real_get_preferred_size (cell, widget, GTK_ORIENTATION_HORIZONTAL,
minimum_size, natural_size);
}
@@ -1222,7 +1219,7 @@ gtk_cell_renderer_real_get_preferred_height (GtkCellRenderer *cell,
int *minimum_size,
int *natural_size)
{
gtk_cell_renderer_real_get_preferred_size (cell, widget, GTK_ORIENTATION_VERTICAL,
gtk_cell_renderer_real_get_preferred_size (cell, widget, GTK_ORIENTATION_VERTICAL,
minimum_size, natural_size);
}
@@ -1271,35 +1268,35 @@ gtk_cell_renderer_real_get_aligned_area (GtkCellRenderer *cell,
/* Trim up the aligned size */
if (gtk_cell_renderer_get_request_mode (cell) == GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTH)
{
gtk_cell_renderer_get_preferred_width (cell, widget,
gtk_cell_renderer_get_preferred_width (cell, widget,
NULL, &natural_size);
aligned_area->width = MIN (aligned_area->width, natural_size);
gtk_cell_renderer_get_preferred_height_for_width (cell, widget,
aligned_area->width,
gtk_cell_renderer_get_preferred_height_for_width (cell, widget,
aligned_area->width,
NULL, &opposite_size);
aligned_area->height = MIN (opposite_size, aligned_area->height);
}
else
{
gtk_cell_renderer_get_preferred_height (cell, widget,
gtk_cell_renderer_get_preferred_height (cell, widget,
NULL, &natural_size);
aligned_area->height = MIN (aligned_area->width, natural_size);
gtk_cell_renderer_get_preferred_width_for_height (cell, widget,
aligned_area->height,
gtk_cell_renderer_get_preferred_width_for_height (cell, widget,
aligned_area->height,
NULL, &opposite_size);
aligned_area->width = MIN (opposite_size, aligned_area->width);
}
/* offset the cell position */
_gtk_cell_renderer_calc_offset (cell, cell_area,
_gtk_cell_renderer_calc_offset (cell, cell_area,
gtk_widget_get_direction (widget),
aligned_area->width,
aligned_area->width,
aligned_area->height,
&x_offset, &y_offset);
@@ -1322,7 +1319,7 @@ _gtk_cell_renderer_calc_offset (GtkCellRenderer *cell,
int height,
int *x_offset,
int *y_offset)
{
{
GtkCellRendererPrivate *priv;
g_return_if_fail (GTK_IS_CELL_RENDERER (cell));
@@ -1334,7 +1331,7 @@ _gtk_cell_renderer_calc_offset (GtkCellRenderer *cell,
if (x_offset)
{
*x_offset = (((direction == GTK_TEXT_DIR_RTL) ?
(1.0 - priv->xalign) : priv->xalign) *
(1.0 - priv->xalign) : priv->xalign) *
(cell_area->width - width));
*x_offset = MAX (*x_offset, 0);
}
@@ -1406,8 +1403,8 @@ gtk_cell_renderer_get_preferred_width (GtkCellRenderer *cell,
#if DEBUG_CELL_SIZE_REQUEST
g_message ("%s returning minimum width: %d and natural width: %d",
G_OBJECT_TYPE_NAME (cell),
minimum_size ? *minimum_size : 20000,
G_OBJECT_TYPE_NAME (cell),
minimum_size ? *minimum_size : 20000,
natural_size ? *natural_size : 20000);
#endif
}
@@ -1454,8 +1451,8 @@ gtk_cell_renderer_get_preferred_height (GtkCellRenderer *cell,
#if DEBUG_CELL_SIZE_REQUEST
g_message ("%s returning minimum height: %d and natural height: %d",
G_OBJECT_TYPE_NAME (cell),
minimum_size ? *minimum_size : 20000,
G_OBJECT_TYPE_NAME (cell),
minimum_size ? *minimum_size : 20000,
natural_size ? *natural_size : 20000);
#endif
}
@@ -1469,7 +1466,7 @@ gtk_cell_renderer_get_preferred_height (GtkCellRenderer *cell,
* @minimum_width: (out) (optional): location for storing the minimum size
* @natural_width: (out) (optional): location for storing the preferred size
*
* Retrieves a cell rendererss minimum and natural width if it were rendered to
* Retrieves a cell rendererss minimum and natural width if it were rendered to
* @widget with the specified @height.
*
* Deprecated: 4.10
@@ -1506,7 +1503,7 @@ gtk_cell_renderer_get_preferred_width_for_height (GtkCellRenderer *cell,
#if DEBUG_CELL_SIZE_REQUEST
g_message ("%s width for height: %d is minimum %d and natural: %d",
G_OBJECT_TYPE_NAME (cell), height,
minimum_width ? *minimum_width : 20000,
minimum_width ? *minimum_width : 20000,
natural_width ? *natural_width : 20000);
#endif
}
@@ -1519,7 +1516,7 @@ gtk_cell_renderer_get_preferred_width_for_height (GtkCellRenderer *cell,
* @minimum_height: (out) (optional): location for storing the minimum size
* @natural_height: (out) (optional): location for storing the preferred size
*
* Retrieves a cell rendererss minimum and natural height if it were rendered to
* Retrieves a cell rendererss minimum and natural height if it were rendered to
* @widget with the specified @width.
*
* Deprecated: 4.10
@@ -1556,7 +1553,7 @@ gtk_cell_renderer_get_preferred_height_for_width (GtkCellRenderer *cell,
#if DEBUG_CELL_SIZE_REQUEST
g_message ("%s height for width: %d is minimum %d and natural: %d",
G_OBJECT_TYPE_NAME (cell), width,
minimum_height ? *minimum_height : 20000,
minimum_height ? *minimum_height : 20000,
natural_height ? *natural_height : 20000);
#endif
}
+11 -15
View File
@@ -41,10 +41,6 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
* `GtkCellRendererAccel` displays a keyboard accelerator (i.e. a key
* combination like `Control + a`). If the cell renderer is editable,
* the accelerator can be changed by simply typing the new combination.
*
* Deprecated: 4.10: Applications editing keyboard accelerators should
* provide their own implementation according to platform design
* guidelines
*/
@@ -56,7 +52,7 @@ static void gtk_cell_renderer_accel_set_property (GObject *object,
guint param_id,
const GValue *value,
GParamSpec *pspec);
static void gtk_cell_renderer_accel_get_preferred_width
static void gtk_cell_renderer_accel_get_preferred_width
(GtkCellRenderer *cell,
GtkWidget *widget,
int *minimum_size,
@@ -181,7 +177,7 @@ gtk_cell_renderer_accel_class_init (GtkCellRendererAccelClass *cell_accel_class)
G_MAXINT,
0,
GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY));
/**
* GtkCellRendererAccel:accel-mods:
*
@@ -200,7 +196,7 @@ gtk_cell_renderer_accel_class_init (GtkCellRendererAccelClass *cell_accel_class)
* The hardware keycode of the accelerator. Note that the hardware keycode is
* only relevant if the key does not have a keyval. Normally, the keyboard
* configuration should assign keyvals to all keys.
*/
*/
g_object_class_install_property (object_class,
PROP_KEYCODE,
g_param_spec_uint ("keycode", NULL, NULL,
@@ -223,7 +219,7 @@ gtk_cell_renderer_accel_class_init (GtkCellRendererAccelClass *cell_accel_class)
GTK_TYPE_CELL_RENDERER_ACCEL_MODE,
GTK_CELL_RENDERER_ACCEL_MODE_GTK,
GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY));
/**
* GtkCellRendererAccel::accel-edited:
* @accel: the object reveiving the signal
@@ -268,7 +264,7 @@ gtk_cell_renderer_accel_class_init (GtkCellRendererAccelClass *cell_accel_class)
* gtk_cell_renderer_accel_new:
*
* Creates a new `GtkCellRendererAccel`.
*
*
* Returns: the new cell renderer
*
* Deprecated: 4.10
@@ -292,7 +288,7 @@ convert_keysym_state_to_string (GtkCellRendererAccel *accel,
* a disabled accelerator key combination.
*/
return g_strdup (C_("Accelerator", "Disabled"));
else
else
{
if (priv->accel_mode == GTK_CELL_RENDERER_ACCEL_MODE_GTK)
{
@@ -305,7 +301,7 @@ convert_keysym_state_to_string (GtkCellRendererAccel *accel,
return gtk_accelerator_get_label (keysym, mask);
}
else
else
{
char *name;
@@ -406,7 +402,7 @@ gtk_cell_renderer_accel_set_property (GObject *object,
g_object_notify (object, "accel-mode");
}
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
}
@@ -541,7 +537,7 @@ key_controller_key_pressed (GtkEventControllerKey *key,
event = gtk_event_controller_get_current_event (GTK_EVENT_CONTROLLER (key));
if (!gdk_key_event_get_match (event, &accel_key, &accel_mods))
return FALSE;
if (accel_mods == 0)
{
switch (keyval)
@@ -583,8 +579,8 @@ static void
gtk_cell_editable_widget_unrealize (GtkWidget *widget)
{
gtk_grab_remove (widget);
GTK_WIDGET_CLASS (gtk_cell_editable_widget_parent_class)->unrealize (widget);
GTK_WIDGET_CLASS (gtk_cell_editable_widget_parent_class)->unrealize (widget);
}
static void
+22 -25
View File
@@ -43,9 +43,6 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
* box and sets it to display the column specified by its
* `GtkCellRendererCombo`:text-column property. Further properties of the combo box
* can be set in a handler for the `GtkCellRenderer::editing-started` signal.
*
* Deprecated: 4.10: List views use widgets to display their contents. You
* should use [class@Gtk.DropDown] instead
*/
typedef struct _GtkCellRendererComboPrivate GtkCellRendererComboPrivate;
@@ -128,7 +125,7 @@ gtk_cell_renderer_combo_class_init (GtkCellRendererComboClass *klass)
/**
* GtkCellRendererCombo:model:
*
* Holds a tree model containing the possible values for the combo box.
* Holds a tree model containing the possible values for the combo box.
* Use the text_column property to specify the column holding the values.
*/
g_object_class_install_property (object_class,
@@ -140,14 +137,14 @@ gtk_cell_renderer_combo_class_init (GtkCellRendererComboClass *klass)
/**
* GtkCellRendererCombo:text-column:
*
* Specifies the model column which holds the possible values for the
* combo box.
* Specifies the model column which holds the possible values for the
* combo box.
*
* Note that this refers to the model specified in the model property,
* not the model backing the tree view to which
* Note that this refers to the model specified in the model property,
* not the model backing the tree view to which
* this cell renderer is attached.
*
* `GtkCellRendererCombo` automatically adds a text cell renderer for
*
* `GtkCellRendererCombo` automatically adds a text cell renderer for
* this column to its combo box.
*/
g_object_class_install_property (object_class,
@@ -158,11 +155,11 @@ gtk_cell_renderer_combo_class_init (GtkCellRendererComboClass *klass)
-1,
GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY));
/**
/**
* GtkCellRendererCombo:has-entry:
*
* If %TRUE, the cell renderer will include an entry and allow to enter
* values other than the ones in the popup list.
* If %TRUE, the cell renderer will include an entry and allow to enter
* values other than the ones in the popup list.
*/
g_object_class_install_property (object_class,
PROP_HAS_ENTRY,
@@ -235,7 +232,7 @@ gtk_cell_renderer_combo_init (GtkCellRendererCombo *self)
GtkCellRenderer *
gtk_cell_renderer_combo_new (void)
{
return g_object_new (GTK_TYPE_CELL_RENDERER_COMBO, NULL);
return g_object_new (GTK_TYPE_CELL_RENDERER_COMBO, NULL);
}
static void
@@ -243,13 +240,13 @@ gtk_cell_renderer_combo_finalize (GObject *object)
{
GtkCellRendererCombo *cell = GTK_CELL_RENDERER_COMBO (object);
GtkCellRendererComboPrivate *priv = gtk_cell_renderer_combo_get_instance_private (cell);
if (priv->model)
{
g_object_unref (priv->model);
priv->model = NULL;
}
G_OBJECT_CLASS (gtk_cell_renderer_combo_parent_class)->finalize (object);
}
@@ -266,7 +263,7 @@ gtk_cell_renderer_combo_get_property (GObject *object,
{
case PROP_MODEL:
g_value_set_object (value, priv->model);
break;
break;
case PROP_TEXT_COLUMN:
g_value_set_int (value, priv->text_column);
break;
@@ -372,7 +369,7 @@ gtk_cell_renderer_combo_editing_done (GtkCellEditable *combo,
entry = GTK_ENTRY (gtk_combo_box_get_child (GTK_COMBO_BOX (combo)));
new_text = g_strdup (gtk_editable_get_text (GTK_EDITABLE (entry)));
}
else
else
{
model = gtk_combo_box_get_model (GTK_COMBO_BOX (combo));
@@ -398,17 +395,17 @@ gtk_cell_renderer_combo_focus_change (GtkWidget *widget,
gtk_cell_renderer_combo_editing_done (GTK_CELL_EDITABLE (widget), data);
}
typedef struct
typedef struct
{
GtkCellRendererCombo *cell;
gboolean found;
GtkTreeIter iter;
} SearchData;
static gboolean
find_text (GtkTreeModel *model,
GtkTreePath *path,
GtkTreeIter *iter,
static gboolean
find_text (GtkTreeModel *model,
GtkTreePath *path,
GtkTreeIter *iter,
gpointer data)
{
SearchData *search_data = (SearchData *)data;
@@ -427,7 +424,7 @@ find_text (GtkTreeModel *model,
g_free (cell_text);
g_free (text);
return search_data->found;
}
@@ -477,7 +474,7 @@ gtk_cell_renderer_combo_start_editing (GtkCellRenderer *cell,
gtk_combo_box_set_model (GTK_COMBO_BOX (combo), priv->model);
gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), cell, TRUE);
gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo),
gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo),
cell, "text", priv->text_column,
NULL);
+8 -11
View File
@@ -48,9 +48,6 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
* renders that pixbuf, if the `GtkCellRenderer:is-expanded` property is %FALSE
* and the `GtkCellRendererPixbuf:pixbuf-expander-closed` property is set to a
* pixbuf, it renders that one.
*
* Deprecated: 4.10: List views use widgets to display their contents. You
* should use [class@Gtk.Image] for icons, and [class@Gtk.Picture] for images
*/
@@ -324,13 +321,13 @@ take_image_definition (GtkCellRendererPixbuf *cellpixbuf,
{
GtkCellRendererPixbufPrivate *priv = gtk_cell_renderer_pixbuf_get_instance_private (cellpixbuf);
GtkImageType old_storage_type, new_storage_type;
if (def == NULL)
def = gtk_image_definition_new_empty ();
old_storage_type = gtk_image_definition_get_storage_type (priv->image_def);
new_storage_type = gtk_image_definition_get_storage_type (def);
if (new_storage_type != old_storage_type)
notify_storage_type (cellpixbuf, old_storage_type);
@@ -404,7 +401,7 @@ gtk_cell_renderer_pixbuf_set_property (GObject *object,
/**
* gtk_cell_renderer_pixbuf_new:
*
*
* Creates a new `GtkCellRendererPixbuf`. Adjust rendering
* parameters using object properties. Object properties can be set
* globally (with g_object_set()). Also, with `GtkTreeViewColumn`, you
@@ -412,7 +409,7 @@ gtk_cell_renderer_pixbuf_set_property (GObject *object,
* can bind the pixbuf property on the cell renderer to a pixbuf value
* in the model, thus rendering a different image in each row of the
* `GtkTreeView`.
*
*
* Returns: the new cell renderer
*
* Deprecated: 4.10
@@ -472,7 +469,7 @@ gtk_cell_renderer_pixbuf_get_size (GtkCellRendererPixbuf *self,
pixbuf_height = gdk_paintable_get_intrinsic_height (paintable);
}
else
pixbuf_width = pixbuf_height = gtk_icon_helper_get_size (icon_helper);
pixbuf_width = pixbuf_height = gtk_icon_helper_get_size (icon_helper);
g_object_unref (icon_helper);
gtk_style_context_restore (context);
@@ -491,7 +488,7 @@ gtk_cell_renderer_pixbuf_get_size (GtkCellRendererPixbuf *self,
gtk_cell_renderer_get_padding (cell, &xpad, &ypad);
calc_width = (int) xpad * 2 + pixbuf_width;
calc_height = (int) ypad * 2 + pixbuf_height;
if (cell_area && pixbuf_width > 0 && pixbuf_height > 0)
{
float xalign, yalign;
@@ -519,7 +516,7 @@ gtk_cell_renderer_pixbuf_get_size (GtkCellRendererPixbuf *self,
if (width)
*width = calc_width;
if (height)
*height = calc_height;
}
@@ -543,7 +540,7 @@ gtk_cell_renderer_pixbuf_snapshot (GtkCellRenderer *cell,
gtk_cell_renderer_pixbuf_get_size (cellpixbuf, widget,
cell_area,
&pix_rect.x,
&pix_rect.x,
&pix_rect.y,
&pix_rect.width,
&pix_rect.height);
-3
View File
@@ -42,9 +42,6 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
*
* `GtkCellRendererProgress` renders a numeric value as a progress par in a cell.
* Additionally, it can display a text on top of the progress bar.
*
* Deprecated: 4.10: List views use widgets to display their contents.
* You should use [class@Gtk.ProgressBar] instead
*/
+5 -6
View File
@@ -47,8 +47,7 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
* of `GtkCellRendererSpin:digits` to display. Other `GtkSpinButton` properties
* can be set in a handler for the `GtkCellRenderer::editing-started` signal.
*
* Deprecated: 4.10: List views use widgets to display their contents.
* You should use [class@Gtk.SpinButton] instead
* The `GtkCellRendererSpin` cell renderer was added in GTK 2.10.
*/
typedef struct _GtkCellRendererSpinClass GtkCellRendererSpinClass;
@@ -123,7 +122,7 @@ gtk_cell_renderer_spin_class_init (GtkCellRendererSpinClass *klass)
/**
* GtkCellRendererSpin:adjustment:
*
* The adjustment that holds the value of the spinbutton.
* The adjustment that holds the value of the spinbutton.
* This must be non-%NULL for the cell renderer to be editable.
*/
g_object_class_install_property (object_class,
@@ -142,7 +141,7 @@ gtk_cell_renderer_spin_class_init (GtkCellRendererSpinClass *klass)
PROP_CLIMB_RATE,
g_param_spec_double ("climb-rate", NULL, NULL,
0.0, G_MAXDOUBLE, 0.0,
GTK_PARAM_READWRITE));
GTK_PARAM_READWRITE));
/**
* GtkCellRendererSpin:digits:
*
@@ -152,7 +151,7 @@ gtk_cell_renderer_spin_class_init (GtkCellRendererSpinClass *klass)
PROP_DIGITS,
g_param_spec_uint ("digits", NULL, NULL,
0, 20, 0,
GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY));
GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY));
}
static void
@@ -367,7 +366,7 @@ gtk_cell_renderer_spin_start_editing (GtkCellRenderer *cell,
/**
* gtk_cell_renderer_spin_new:
*
* Creates a new `GtkCellRendererSpin`.
* Creates a new `GtkCellRendererSpin`.
*
* Returns: a new `GtkCellRendererSpin`
*
-3
View File
@@ -54,9 +54,6 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
* at regular intervals. The usual way to set the cell renderer properties
* for each cell is to bind them to columns in your tree model using e.g.
* gtk_tree_view_column_add_attribute().
*
* Deprecated: 4.10: List views use widgets to display their contents.
* You should use [class@Gtk.Spinner] instead
*/
+24 -27
View File
@@ -45,9 +45,6 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
*
* If the `GtkCellRenderer:mode` is %GTK_CELL_RENDERER_MODE_EDITABLE,
* the `GtkCellRendererText` allows to edit its text using an entry.
*
* Deprecated: 4.10: List views use widgets to display their contents.
* You should use [class@Gtk.Inscription] or [class@Gtk.Label] instead
*/
@@ -241,7 +238,7 @@ gtk_cell_renderer_text_class_init (GtkCellRendererTextClass *class)
GtkCellRendererClass *cell_class = GTK_CELL_RENDERER_CLASS (class);
object_class->finalize = gtk_cell_renderer_text_finalize;
object_class->get_property = gtk_cell_renderer_text_get_property;
object_class->set_property = gtk_cell_renderer_text_set_property;
@@ -626,7 +623,7 @@ gtk_cell_renderer_text_get_property (GObject *object,
case PROP_FONT:
g_value_take_string (value, pango_font_description_to_string (priv->font));
break;
case PROP_FONT_DESC:
g_value_set_boxed (value, priv->font);
break;
@@ -662,7 +659,7 @@ gtk_cell_renderer_text_get_property (GObject *object,
case PROP_SCALE:
g_value_set_double (value, priv->font_scale);
break;
case PROP_EDITABLE:
g_value_set_boolean (value, priv->editable);
break;
@@ -677,7 +674,7 @@ gtk_cell_renderer_text_get_property (GObject *object,
case PROP_RISE:
g_value_set_int (value, priv->rise);
break;
break;
case PROP_LANGUAGE:
g_value_set_static_string (value, pango_language_to_string (priv->language));
@@ -686,7 +683,7 @@ gtk_cell_renderer_text_get_property (GObject *object,
case PROP_ELLIPSIZE:
g_value_set_enum (value, priv->ellipsize);
break;
case PROP_WRAP_MODE:
g_value_set_enum (value, priv->wrap_mode);
break;
@@ -694,7 +691,7 @@ gtk_cell_renderer_text_get_property (GObject *object,
case PROP_WRAP_WIDTH:
g_value_set_int (value, priv->wrap_width);
break;
case PROP_ALIGN:
g_value_set_enum (value, priv->align);
break;
@@ -716,14 +713,14 @@ gtk_cell_renderer_text_get_property (GObject *object,
{
PangoFontMask mask = get_property_font_set_mask (param_id);
g_value_set_boolean (value, (pango_font_description_get_set_fields (priv->font) & mask) != 0);
break;
}
case PROP_SCALE_SET:
g_value_set_boolean (value, priv->scale_set);
break;
case PROP_EDITABLE_SET:
g_value_set_boolean (value, priv->editable_set);
break;
@@ -751,14 +748,14 @@ gtk_cell_renderer_text_get_property (GObject *object,
case PROP_ALIGN_SET:
g_value_set_boolean (value, priv->align_set);
break;
case PROP_WIDTH_CHARS:
g_value_set_int (value, priv->width_chars);
break;
break;
case PROP_MAX_WIDTH_CHARS:
g_value_set_int (value, priv->max_width_chars);
break;
break;
case PROP_PLACEHOLDER_TEXT:
g_value_set_string (value, priv->placeholder_text);
@@ -831,7 +828,7 @@ set_font_desc_fields (PangoFontDescription *desc,
PangoFontMask to_set)
{
PangoFontMask changed_mask = 0;
if (to_set & PANGO_FONT_MASK_FAMILY)
{
const char *family = pango_font_description_get_family (desc);
@@ -859,7 +856,7 @@ set_font_desc_fields (PangoFontDescription *desc,
size = 10 * PANGO_SCALE;
changed_mask |= PANGO_FONT_MASK_SIZE;
}
pango_font_description_set_size (desc, size);
}
@@ -1293,7 +1290,7 @@ gtk_cell_renderer_text_set_property (GObject *object,
/**
* gtk_cell_renderer_text_new:
*
*
* Creates a new `GtkCellRendererText`. Adjust how text is drawn using
* object properties. Object properties can be
* set globally (with g_object_set()). Also, with `GtkTreeViewColumn`,
@@ -1301,7 +1298,7 @@ gtk_cell_renderer_text_set_property (GObject *object,
* you can bind the text property on the cell renderer to a string
* value in the model, thus rendering a different string in each row
* of the `GtkTreeView`.
*
*
* Returns: the new cell renderer
*
* Deprecated: 4.10
@@ -1327,7 +1324,7 @@ add_attr (PangoAttrList *attr_list,
{
attr->start_index = 0;
attr->end_index = G_MAXINT;
pango_attr_list_insert (attr_list, attr);
}
@@ -1359,11 +1356,11 @@ get_layout (GtkCellRendererText *celltext,
if (!placeholder_layout && cell_area)
{
/* Add options that affect appearance but not size */
/* note that background doesn't go here, since it affects
* background_area not the PangoLayout area
*/
if (priv->foreground_set
&& (flags & GTK_CELL_RENDERER_SELECTED) == 0)
{
@@ -1500,7 +1497,7 @@ get_layout (GtkCellRendererText *celltext,
pango_layout_set_alignment (layout, align);
}
return layout;
}
@@ -1557,7 +1554,7 @@ get_size (GtkCellRenderer *cell,
gtk_cell_renderer_set_fixed_size (cell,
cell_width, 2 * ypad +
priv->fixed_height_rows * PANGO_PIXELS (row_height));
if (height)
{
*height = cell_height;
@@ -1734,7 +1731,7 @@ gtk_cell_renderer_text_start_editing (GtkCellRenderer *cell,
if (priv->text)
gtk_editable_set_text (GTK_EDITABLE (priv->entry), priv->text);
g_object_set_data_full (G_OBJECT (priv->entry), I_(GTK_CELL_RENDERER_TEXT_PATH), g_strdup (path), g_free);
gtk_editable_select_region (GTK_EDITABLE (priv->entry), 0, -1);
priv->in_entry_menu = FALSE;
@@ -1757,7 +1754,7 @@ gtk_cell_renderer_text_start_editing (GtkCellRenderer *cell,
* gtk_cell_renderer_text_set_fixed_height_from_font:
* @renderer: A `GtkCellRendererText`
* @number_of_rows: Number of rows of text each cell renderer is allocated, or -1
*
*
* Sets the height of a renderer to explicitly be determined by the font and
* y_pad property set on it. Further changes in these properties do not
* affect the height, so they must be accompanied by a subsequent call to this
@@ -1862,7 +1859,7 @@ gtk_cell_renderer_text_get_preferred_width (GtkCellRenderer *cell,
if (priv->max_width_chars > 0)
{
int max_width = xpad * 2 + PANGO_PIXELS (char_width) * priv->max_width_chars;
min_width = MIN (min_width, max_width);
nat_width = MIN (nat_width, max_width);
}
@@ -1934,7 +1931,7 @@ gtk_cell_renderer_text_get_aligned_area (GtkCellRenderer *cell,
int y_offset = 0;
layout = get_layout (celltext, widget, cell_area, flags);
get_size (cell, widget, cell_area, layout, &x_offset, &y_offset,
get_size (cell, widget, cell_area, layout, &x_offset, &y_offset,
&aligned_area->width, &aligned_area->height);
aligned_area->x = cell_area->x + x_offset;
+9 -12
View File
@@ -42,9 +42,6 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
* button is drawn as a radio or a checkbutton, depending on the
* `GtkCellRendererToggle:radio` property.
* When activated, it emits the `GtkCellRendererToggle::toggled` signal.
*
* Deprecated: 4.10: List views use widgets to display their contents.
* You should use [class@Gtk.ToggleButton] instead
*/
@@ -193,7 +190,7 @@ gtk_cell_renderer_toggle_class_init (GtkCellRendererToggleClass *class)
cell_class->get_preferred_height = gtk_cell_renderer_toggle_get_preferred_height;
cell_class->snapshot = gtk_cell_renderer_toggle_snapshot;
cell_class->activate = gtk_cell_renderer_toggle_activate;
g_object_class_install_property (object_class,
PROP_ACTIVE,
g_param_spec_boolean ("active", NULL, NULL,
@@ -205,7 +202,7 @@ gtk_cell_renderer_toggle_class_init (GtkCellRendererToggleClass *class)
g_param_spec_boolean ("inconsistent", NULL, NULL,
FALSE,
GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY));
g_object_class_install_property (object_class,
PROP_ACTIVATABLE,
g_param_spec_boolean ("activatable", NULL, NULL,
@@ -218,14 +215,14 @@ gtk_cell_renderer_toggle_class_init (GtkCellRendererToggleClass *class)
FALSE,
GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY));
/**
* GtkCellRendererToggle::toggled:
* @cell_renderer: the object which received the signal
* @path: string representation of `GtkTreePath` describing the
* @path: string representation of `GtkTreePath` describing the
* event location
*
* The ::toggled signal is emitted when the cell is toggled.
* The ::toggled signal is emitted when the cell is toggled.
*
* It is the responsibility of the application to update the model
* with the correct value to store at @path. Often this is simply the
@@ -470,7 +467,7 @@ gtk_cell_renderer_toggle_snapshot (GtkCellRenderer *cell,
if (priv->inconsistent)
state |= GTK_STATE_FLAG_INCONSISTENT;
if (priv->active)
state |= GTK_STATE_FLAG_CHECKED;
@@ -531,7 +528,7 @@ gtk_cell_renderer_toggle_activate (GtkCellRenderer *cell,
* gtk_cell_renderer_toggle_set_radio:
* @toggle: a `GtkCellRendererToggle`
* @radio: %TRUE to make the toggle look like a radio button
*
*
* If @radio is %TRUE, the cell renderer renders a radio toggle
* (i.e. a toggle in a group of mutually-exclusive toggles).
* If %FALSE, it renders a check toggle (a standalone boolean option).
@@ -557,8 +554,8 @@ gtk_cell_renderer_toggle_set_radio (GtkCellRendererToggle *toggle,
* gtk_cell_renderer_toggle_get_radio:
* @toggle: a `GtkCellRendererToggle`
*
* Returns whether were rendering radio toggles rather than checkboxes.
*
* Returns whether were rendering radio toggles rather than checkboxes.
*
* Returns: %TRUE if were rendering radio toggles rather than checkboxes
*
* Deprecated: 4.10
+16 -19
View File
@@ -40,7 +40,7 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
* A widget displaying a single row of a GtkTreeModel
*
* A `GtkCellView` displays a single row of a `GtkTreeModel` using a `GtkCellArea`
* and `GtkCellAreaContext`. A `GtkCellAreaContext` can be provided to the
* and `GtkCellAreaContext`. A `GtkCellAreaContext` can be provided to the
* `GtkCellView` at construction time in order to keep the cellview in context
* of a group of cell views, this ensures that the renderers displayed will
* be properly aligned with each other (like the aligned cells in the menus
@@ -53,12 +53,9 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
* individual heights (left-to-right menus should be allocated vertically since
* they all share the same height but may have variable widths).
*
* ## CSS nodes
* # CSS nodes
*
* GtkCellView has a single CSS node with name cellview.
*
* Deprecated: 4.10: List views use widgets to display their contents.
* You can use [class@Gtk.Box] instead
*/
static void gtk_cell_view_constructed (GObject *object);
@@ -209,7 +206,7 @@ gtk_cell_view_class_init (GtkCellViewClass *klass)
*
* The `GtkCellArea` rendering cells
*
* If no area is specified when creating the cell view with gtk_cell_view_new_with_context()
* If no area is specified when creating the cell view with gtk_cell_view_new_with_context()
* a horizontally oriented `GtkCellArea`Box will be used.
*
* since 3.0
@@ -527,19 +524,19 @@ gtk_cell_view_request_model (GtkCellView *cellview,
if (orientation == GTK_ORIENTATION_HORIZONTAL)
{
if (for_size < 0)
gtk_cell_area_get_preferred_width (priv->area, priv->context,
gtk_cell_area_get_preferred_width (priv->area, priv->context,
GTK_WIDGET (cellview), &min, &nat);
else
gtk_cell_area_get_preferred_width_for_height (priv->area, priv->context,
gtk_cell_area_get_preferred_width_for_height (priv->area, priv->context,
GTK_WIDGET (cellview), for_size, &min, &nat);
}
else
{
if (for_size < 0)
gtk_cell_area_get_preferred_height (priv->area, priv->context,
gtk_cell_area_get_preferred_height (priv->area, priv->context,
GTK_WIDGET (cellview), &min, &nat);
else
gtk_cell_area_get_preferred_height_for_width (priv->area, priv->context,
gtk_cell_area_get_preferred_height_for_width (priv->area, priv->context,
GTK_WIDGET (cellview), for_size, &min, &nat);
}
@@ -553,7 +550,7 @@ gtk_cell_view_request_model (GtkCellView *cellview,
}
}
static GtkSizeRequestMode
static GtkSizeRequestMode
gtk_cell_view_get_request_mode (GtkWidget *widget)
{
GtkCellView *cellview = GTK_CELL_VIEW (widget);
@@ -701,13 +698,13 @@ gtk_cell_view_set_cell_data (GtkCellView *cell_view)
gtk_tree_model_get_iter (priv->model, &iter, path);
gtk_tree_path_free (path);
gtk_cell_area_apply_attributes (priv->area,
priv->model,
gtk_cell_area_apply_attributes (priv->area,
priv->model,
&iter, FALSE, FALSE);
if (priv->draw_sensitive)
{
GList *l, *cells =
GList *l, *cells =
gtk_cell_layout_get_cells (GTK_CELL_LAYOUT (priv->area));
for (l = cells; l; l = l->next)
@@ -849,7 +846,7 @@ gtk_cell_view_new_with_context (GtkCellArea *area,
g_return_val_if_fail (GTK_IS_CELL_AREA (area), NULL);
g_return_val_if_fail (context == NULL || GTK_IS_CELL_AREA_CONTEXT (context), NULL);
return (GtkWidget *)g_object_new (GTK_TYPE_CELL_VIEW,
return (GtkWidget *)g_object_new (GTK_TYPE_CELL_VIEW,
"cell-area", area,
"cell-area-context", context,
NULL);
@@ -958,7 +955,7 @@ gtk_cell_view_new_with_texture (GdkTexture *texture)
* @renderer: one of the renderers of @cell_view
* @property: the name of the property of @renderer to set
* @value: the new value to set the property to
*
*
* Sets a property of a cell renderer of @cell_view, and
* makes sure the display of @cell_view is updated.
*
@@ -1015,7 +1012,7 @@ gtk_cell_view_set_model (GtkCellView *cell_view,
{
g_object_ref (priv->model);
priv->row_changed_id =
priv->row_changed_id =
g_signal_connect (priv->model, "row-changed",
G_CALLBACK (row_changed_cb), cell_view);
}
@@ -1082,8 +1079,8 @@ gtk_cell_view_set_displayed_row (GtkCellView *cell_view,
* gtk_cell_view_get_displayed_row:
* @cell_view: a `GtkCellView`
*
* Returns a `GtkTreePath` referring to the currently
* displayed row. If no row is currently displayed,
* Returns a `GtkTreePath` referring to the currently
* displayed row. If no row is currently displayed,
* %NULL is returned.
*
* Returns: (nullable) (transfer full): the currently displayed row
+32 -34
View File
@@ -104,11 +104,9 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
* a button, both with the .combo class added. The button also contains another
* node with name arrow.
*
* ## Accessibility
* # Accessibility
*
* `GtkComboBox` uses the %GTK_ACCESSIBLE_ROLE_COMBO_BOX role.
*
* Deprecated: 4.10: Use [class@Gtk.DropDown] instead
*/
typedef struct
@@ -1375,7 +1373,7 @@ gtk_combo_box_menu_popup (GtkComboBox *combo_box)
*
* Before calling this, @combo_box must be mapped, or nothing will happen.
*
* Deprecated: 4.10: Use [class@Gtk.DropDown]
* Deprecated: 4.10: Use GtkDropDown
*/
void
gtk_combo_box_popup (GtkComboBox *combo_box)
@@ -1398,7 +1396,7 @@ gtk_combo_box_popup (GtkComboBox *combo_box)
* in GTK 4. However, it is retained in case similar functionality is added
* back later.
*
* Deprecated: 4.10: Use [class@Gtk.DropDown]
* Deprecated: 4.10: Use GtkDropDown
*/
void
gtk_combo_box_popup_for_device (GtkComboBox *combo_box,
@@ -1449,7 +1447,7 @@ gtk_combo_box_real_popdown (GtkComboBox *combo_box)
* This function is mostly intended for use by accessibility technologies;
* applications should have little use for it.
*
* Deprecated: 4.10: Use [class@Gtk.DropDown]
* Deprecated: 4.10: Use GtkDropDown
*/
void
gtk_combo_box_popdown (GtkComboBox *combo_box)
@@ -1853,7 +1851,7 @@ gtk_combo_box_cell_layout_get_area (GtkCellLayout *cell_layout)
*
* Returns: A new `GtkComboBox`
*
* Deprecated: 4.10: Use [class@Gtk.DropDown]
* Deprecated: 4.10: Use GtkDropDown
*/
GtkWidget *
gtk_combo_box_new (void)
@@ -1868,11 +1866,11 @@ gtk_combo_box_new (void)
*
* In order to use a combo box with entry, you need to tell it
* which column of the model contains the text for the entry
* by calling [method@Gtk.ComboBox.set_entry_text_column].
* by calling [method@Gtk.ComboBox.set_entry_text_column].
*
* Returns: A new `GtkComboBox`
*
* Deprecated: 4.10: Use [class@Gtk.DropDown]
* Deprecated: 4.10: Use GtkDropDown
*/
GtkWidget *
gtk_combo_box_new_with_entry (void)
@@ -1888,7 +1886,7 @@ gtk_combo_box_new_with_entry (void)
*
* Returns: A new `GtkComboBox`
*
* Deprecated: 4.10: Use [class@Gtk.DropDown]
* Deprecated: 4.10: Use GtkDropDown
*/
GtkWidget *
gtk_combo_box_new_with_model (GtkTreeModel *model)
@@ -1912,7 +1910,7 @@ gtk_combo_box_new_with_model (GtkTreeModel *model)
*
* Returns: A new `GtkComboBox`
*
* Deprecated: 4.10: Use [class@Gtk.DropDown]
* Deprecated: 4.10: Use GtkDropDown
*/
GtkWidget *
gtk_combo_box_new_with_model_and_entry (GtkTreeModel *model)
@@ -1937,7 +1935,7 @@ gtk_combo_box_new_with_model_and_entry (GtkTreeModel *model)
* Returns: An integer which is the index of the currently active item,
* or -1 if theres no active item
*
* Deprecated: 4.10: Use [class@Gtk.DropDown]
* Deprecated: 4.10: Use GtkDropDown
*/
int
gtk_combo_box_get_active (GtkComboBox *combo_box)
@@ -1969,7 +1967,7 @@ gtk_combo_box_get_active (GtkComboBox *combo_box)
*
* Sets the active item of @combo_box to be the item at @index.
*
* Deprecated: 4.10: Use [class@Gtk.DropDown]
* Deprecated: 4.10: Use GtkDropDown
*/
void
gtk_combo_box_set_active (GtkComboBox *combo_box,
@@ -2068,7 +2066,7 @@ gtk_combo_box_set_active_internal (GtkComboBox *combo_box,
*
* Returns: %TRUE if @iter was set, %FALSE otherwise
*
* Deprecated: 4.10: Use [class@Gtk.DropDown]
* Deprecated: 4.10: Use GtkDropDown
*/
gboolean
gtk_combo_box_get_active_iter (GtkComboBox *combo_box,
@@ -2099,7 +2097,7 @@ gtk_combo_box_get_active_iter (GtkComboBox *combo_box,
*
* If @iter is %NULL, the active item is unset.
*
* Deprecated: 4.10: Use [class@Gtk.DropDown]
* Deprecated: 4.10: Use GtkDropDown
*/
void
gtk_combo_box_set_active_iter (GtkComboBox *combo_box,
@@ -2130,7 +2128,7 @@ gtk_combo_box_set_active_iter (GtkComboBox *combo_box,
* call [method@Gtk.CellLayout.clear] yourself if you need to set up different
* cell renderers for the new model.
*
* Deprecated: 4.10: Use [class@Gtk.DropDown]
* Deprecated: 4.10: Use GtkDropDown
*/
void
gtk_combo_box_set_model (GtkComboBox *combo_box,
@@ -2193,7 +2191,7 @@ out:
* Returns: (nullable) (transfer none): A `GtkTreeModel` which was passed
* during construction.
*
* Deprecated: 4.10: Use [class@Gtk.DropDown]
* Deprecated: 4.10: Use GtkDropDown
*/
GtkTreeModel *
gtk_combo_box_get_model (GtkComboBox *combo_box)
@@ -2552,7 +2550,7 @@ gtk_combo_box_start_editing (GtkCellEditable *cell_editable,
* If @fixed is %TRUE, the popup's width is set to match the
* allocated width of the combo box.
*
* Deprecated: 4.10: Use [class@Gtk.DropDown]
* Deprecated: 4.10: Use GtkDropDown
*/
void
gtk_combo_box_set_popup_fixed_width (GtkComboBox *combo_box,
@@ -2578,7 +2576,7 @@ gtk_combo_box_set_popup_fixed_width (GtkComboBox *combo_box,
*
* Returns: %TRUE if the popup uses a fixed width
*
* Deprecated: 4.10: Use [class@Gtk.DropDown]
* Deprecated: 4.10: Use GtkDropDown
*/
gboolean
gtk_combo_box_get_popup_fixed_width (GtkComboBox *combo_box)
@@ -2598,7 +2596,7 @@ gtk_combo_box_get_popup_fixed_width (GtkComboBox *combo_box)
*
* Returns: (nullable): the current row separator function.
*
* Deprecated: 4.10: Use [class@Gtk.DropDown]
* Deprecated: 4.10: Use GtkDropDown
*/
GtkTreeViewRowSeparatorFunc
gtk_combo_box_get_row_separator_func (GtkComboBox *combo_box)
@@ -2623,7 +2621,7 @@ gtk_combo_box_get_row_separator_func (GtkComboBox *combo_box)
* If the row separator function is %NULL, no separators are drawn.
* This is the default value.
*
* Deprecated: 4.10: Use [class@Gtk.DropDown]
* Deprecated: 4.10: Use GtkDropDown
*/
void
gtk_combo_box_set_row_separator_func (GtkComboBox *combo_box,
@@ -2657,7 +2655,7 @@ gtk_combo_box_set_row_separator_func (GtkComboBox *combo_box,
* Sets whether the dropdown button of the combo box should update
* its sensitivity depending on the model contents.
*
* Deprecated: 4.10: Use [class@Gtk.DropDown]
* Deprecated: 4.10: Use GtkDropDown
*/
void
gtk_combo_box_set_button_sensitivity (GtkComboBox *combo_box,
@@ -2689,7 +2687,7 @@ gtk_combo_box_set_button_sensitivity (GtkComboBox *combo_box,
* if it is only sensitive as long as the model has one item to
* be selected.
*
* Deprecated: 4.10: Use [class@Gtk.DropDown]
* Deprecated: 4.10: Use GtkDropDown
*/
GtkSensitivityType
gtk_combo_box_get_button_sensitivity (GtkComboBox *combo_box)
@@ -2709,7 +2707,7 @@ gtk_combo_box_get_button_sensitivity (GtkComboBox *combo_box)
*
* Returns: whether there is an entry in @combo_box.
*
* Deprecated: 4.10: Use [class@Gtk.DropDown]
* Deprecated: 4.10: Use GtkDropDown
*/
gboolean
gtk_combo_box_get_has_entry (GtkComboBox *combo_box)
@@ -2727,9 +2725,9 @@ gtk_combo_box_get_has_entry (GtkComboBox *combo_box)
* the internal entry
*
* Sets the model column which @combo_box should use to get strings
* from to be @text_column.
* from to be @text_column.
*
* For this column no separate
* For this column no separate
* [class@Gtk.CellRenderer] is needed.
*
* The column @text_column in the model of @combo_box must be of
@@ -2738,7 +2736,7 @@ gtk_combo_box_get_has_entry (GtkComboBox *combo_box)
* This is only relevant if @combo_box has been created with
* [property@Gtk.ComboBox:has-entry] as %TRUE.
*
* Deprecated: 4.10: Use [class@Gtk.DropDown]
* Deprecated: 4.10: Use GtkDropDown
*/
void
gtk_combo_box_set_entry_text_column (GtkComboBox *combo_box,
@@ -2773,7 +2771,7 @@ gtk_combo_box_set_entry_text_column (GtkComboBox *combo_box,
*
* Returns: A column in the data source model of @combo_box.
*
* Deprecated: 4.10: Use [class@Gtk.DropDown]
* Deprecated: 4.10: Use GtkDropDown
*/
int
gtk_combo_box_get_entry_text_column (GtkComboBox *combo_box)
@@ -2851,7 +2849,7 @@ gtk_combo_box_buildable_get_internal_child (GtkBuildable *buildable,
* The column @id_column in the model of @combo_box must be of type
* %G_TYPE_STRING.
*
* Deprecated: 4.10: Use [class@Gtk.DropDown]
* Deprecated: 4.10: Use GtkDropDown
*/
void
gtk_combo_box_set_id_column (GtkComboBox *combo_box,
@@ -2882,7 +2880,7 @@ gtk_combo_box_set_id_column (GtkComboBox *combo_box,
*
* Returns: A column in the data source model of @combo_box.
*
* Deprecated: 4.10: Use [class@Gtk.DropDown]
* Deprecated: 4.10: Use GtkDropDown
*/
int
gtk_combo_box_get_id_column (GtkComboBox *combo_box)
@@ -2914,7 +2912,7 @@ gtk_combo_box_get_id_column (GtkComboBox *combo_box)
*
* Returns: (nullable): the ID of the active row
*
* Deprecated: 4.10: Use [class@Gtk.DropDown]
* Deprecated: 4.10: Use GtkDropDown
*/
const char *
gtk_combo_box_get_active_id (GtkComboBox *combo_box)
@@ -2969,7 +2967,7 @@ gtk_combo_box_get_active_id (GtkComboBox *combo_box)
* @active_id was given to unset the active row, the function
* always returns %TRUE.
*
* Deprecated: 4.10: Use [class@Gtk.DropDown]
* Deprecated: 4.10: Use GtkDropDown
*/
gboolean
gtk_combo_box_set_active_id (GtkComboBox *combo_box,
@@ -3034,7 +3032,7 @@ gtk_combo_box_get_popup (GtkComboBox *combo_box)
*
* Sets the child widget of @combo_box.
*
* Deprecated: 4.10: Use [class@Gtk.DropDown]
* Deprecated: 4.10: Use GtkDropDown
*/
void
gtk_combo_box_set_child (GtkComboBox *combo_box,
@@ -3062,7 +3060,7 @@ gtk_combo_box_set_child (GtkComboBox *combo_box,
*
* Returns: (nullable) (transfer none): the child widget of @combo_box
*
* Deprecated: 4.10: Use [class@Gtk.DropDown]
* Deprecated: 4.10: Use GtkDropDown
*/
GtkWidget *
gtk_combo_box_get_child (GtkComboBox *combo_box)
+28 -28
View File
@@ -71,87 +71,87 @@ struct _GtkComboBoxClass
/* construction */
GDK_AVAILABLE_IN_ALL
GType gtk_combo_box_get_type (void) G_GNUC_CONST;
GDK_DEPRECATED_IN_4_10_FOR(GtkDropDown)
GDK_DEPRECATED_IN_4_10
GtkWidget *gtk_combo_box_new (void);
GDK_DEPRECATED_IN_4_10_FOR(GtkDropDown)
GDK_DEPRECATED_IN_4_10
GtkWidget *gtk_combo_box_new_with_entry (void);
GDK_DEPRECATED_IN_4_10_FOR(GtkDropDown)
GDK_DEPRECATED_IN_4_10
GtkWidget *gtk_combo_box_new_with_model (GtkTreeModel *model);
GDK_DEPRECATED_IN_4_10_FOR(GtkDropDown)
GDK_DEPRECATED_IN_4_10
GtkWidget *gtk_combo_box_new_with_model_and_entry (GtkTreeModel *model);
/* get/set active item */
GDK_DEPRECATED_IN_4_10_FOR(GtkDropDown)
GDK_DEPRECATED_IN_4_10
int gtk_combo_box_get_active (GtkComboBox *combo_box);
GDK_DEPRECATED_IN_4_10_FOR(GtkDropDown)
GDK_DEPRECATED_IN_4_10
void gtk_combo_box_set_active (GtkComboBox *combo_box,
int index_);
GDK_DEPRECATED_IN_4_10_FOR(GtkDropDown)
GDK_DEPRECATED_IN_4_10
gboolean gtk_combo_box_get_active_iter (GtkComboBox *combo_box,
GtkTreeIter *iter);
GDK_DEPRECATED_IN_4_10_FOR(GtkDropDown)
GDK_DEPRECATED_IN_4_10
void gtk_combo_box_set_active_iter (GtkComboBox *combo_box,
GtkTreeIter *iter);
/* getters and setters */
GDK_DEPRECATED_IN_4_10_FOR(GtkDropDown)
GDK_DEPRECATED_IN_4_10
void gtk_combo_box_set_model (GtkComboBox *combo_box,
GtkTreeModel *model);
GDK_DEPRECATED_IN_4_10_FOR(GtkDropDown)
GDK_DEPRECATED_IN_4_10
GtkTreeModel *gtk_combo_box_get_model (GtkComboBox *combo_box);
GDK_DEPRECATED_IN_4_10_FOR(GtkDropDown)
GDK_DEPRECATED_IN_4_10
GtkTreeViewRowSeparatorFunc gtk_combo_box_get_row_separator_func (GtkComboBox *combo_box);
GDK_DEPRECATED_IN_4_10_FOR(GtkDropDown)
GDK_DEPRECATED_IN_4_10
void gtk_combo_box_set_row_separator_func (GtkComboBox *combo_box,
GtkTreeViewRowSeparatorFunc func,
gpointer data,
GDestroyNotify destroy);
GDK_DEPRECATED_IN_4_10_FOR(GtkDropDown)
GDK_DEPRECATED_IN_4_10
void gtk_combo_box_set_button_sensitivity (GtkComboBox *combo_box,
GtkSensitivityType sensitivity);
GDK_DEPRECATED_IN_4_10_FOR(GtkDropDown)
GDK_DEPRECATED_IN_4_10
GtkSensitivityType gtk_combo_box_get_button_sensitivity (GtkComboBox *combo_box);
GDK_DEPRECATED_IN_4_10_FOR(GtkDropDown)
GDK_DEPRECATED_IN_4_10
gboolean gtk_combo_box_get_has_entry (GtkComboBox *combo_box);
GDK_DEPRECATED_IN_4_10_FOR(GtkDropDown)
GDK_DEPRECATED_IN_4_10
void gtk_combo_box_set_entry_text_column (GtkComboBox *combo_box,
int text_column);
GDK_DEPRECATED_IN_4_10_FOR(GtkDropDown)
GDK_DEPRECATED_IN_4_10
int gtk_combo_box_get_entry_text_column (GtkComboBox *combo_box);
GDK_DEPRECATED_IN_4_10_FOR(GtkDropDown)
GDK_DEPRECATED_IN_4_10
void gtk_combo_box_set_popup_fixed_width (GtkComboBox *combo_box,
gboolean fixed);
GDK_DEPRECATED_IN_4_10_FOR(GtkDropDown)
GDK_DEPRECATED_IN_4_10
gboolean gtk_combo_box_get_popup_fixed_width (GtkComboBox *combo_box);
/* programmatic control */
GDK_DEPRECATED_IN_4_10_FOR(GtkDropDown)
GDK_DEPRECATED_IN_4_10
void gtk_combo_box_popup (GtkComboBox *combo_box);
GDK_DEPRECATED_IN_4_10_FOR(GtkDropDown)
GDK_DEPRECATED_IN_4_10
void gtk_combo_box_popup_for_device (GtkComboBox *combo_box,
GdkDevice *device);
GDK_DEPRECATED_IN_4_10_FOR(GtkDropDown)
GDK_DEPRECATED_IN_4_10
void gtk_combo_box_popdown (GtkComboBox *combo_box);
GDK_DEPRECATED_IN_4_10_FOR(GtkDropDown)
GDK_DEPRECATED_IN_4_10
int gtk_combo_box_get_id_column (GtkComboBox *combo_box);
GDK_DEPRECATED_IN_4_10_FOR(GtkDropDown)
GDK_DEPRECATED_IN_4_10
void gtk_combo_box_set_id_column (GtkComboBox *combo_box,
int id_column);
GDK_DEPRECATED_IN_4_10_FOR(GtkDropDown)
GDK_DEPRECATED_IN_4_10
const char * gtk_combo_box_get_active_id (GtkComboBox *combo_box);
GDK_DEPRECATED_IN_4_10_FOR(GtkDropDown)
GDK_DEPRECATED_IN_4_10
gboolean gtk_combo_box_set_active_id (GtkComboBox *combo_box,
const char *active_id);
GDK_DEPRECATED_IN_4_10_FOR(GtkDropDown)
GDK_DEPRECATED_IN_4_10
void gtk_combo_box_set_child (GtkComboBox *combo_box,
GtkWidget *child);
GDK_DEPRECATED_IN_4_10_FOR(GtkDropDown)
GDK_DEPRECATED_IN_4_10
GtkWidget * gtk_combo_box_get_child (GtkComboBox *combo_box);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GtkComboBox, g_object_unref)
+13 -16
View File
@@ -56,7 +56,7 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
* You should not call [method@Gtk.ComboBox.set_model] or attempt to pack more
* cells into this combo box via its [iface@Gtk.CellLayout] interface.
*
* ## GtkComboBoxText as GtkBuildable
* # GtkComboBoxText as GtkBuildable
*
* The `GtkComboBoxText` implementation of the `GtkBuildable` interface supports
* adding items directly using the <items> element and specifying <item>
@@ -75,7 +75,7 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
* </object>
* ```
*
* ## CSS nodes
* # CSS nodes
*
* ```
* combobox
@@ -88,9 +88,6 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
* `GtkComboBoxText` has a single CSS node with name combobox. It adds
* the style class .combo to the main CSS nodes of its entry and button
* children, and the .linked class to the node of its internal box.
*
* Deprecated: 4.10: Use [class@Gtk.DropDown] with a [class@Gtk.StringList]
* instead
*/
typedef struct _GtkComboBoxTextClass GtkComboBoxTextClass;
@@ -356,7 +353,7 @@ gtk_combo_box_text_buildable_custom_finished (GtkBuildable *buildable,
*
* Returns: A new `GtkComboBoxText`
*
* Deprecated: 4.10: Use [class@Gtk.DropDown]
* Deprecated: 4.10: Use GtkDropDown
*/
GtkWidget *
gtk_combo_box_text_new (void)
@@ -372,7 +369,7 @@ gtk_combo_box_text_new (void)
*
* Returns: a new `GtkComboBoxText`
*
* Deprecated: 4.10: Use [class@Gtk.DropDown]
* Deprecated: 4.10: Use GtkDropDown
*/
GtkWidget *
gtk_combo_box_text_new_with_entry (void)
@@ -392,7 +389,7 @@ gtk_combo_box_text_new_with_entry (void)
* This is the same as calling [method@Gtk.ComboBoxText.insert_text]
* with a position of -1.
*
* Deprecated: 4.10: Use [class@Gtk.DropDown]
* Deprecated: 4.10: Use GtkDropDown
*/
void
gtk_combo_box_text_append_text (GtkComboBoxText *combo_box,
@@ -411,7 +408,7 @@ gtk_combo_box_text_append_text (GtkComboBoxText *combo_box,
* This is the same as calling [method@Gtk.ComboBoxText.insert_text]
* with a position of 0.
*
* Deprecated: 4.10: Use [class@Gtk.DropDown]
* Deprecated: 4.10: Use GtkDropDown
*/
void
gtk_combo_box_text_prepend_text (GtkComboBoxText *combo_box,
@@ -433,7 +430,7 @@ gtk_combo_box_text_prepend_text (GtkComboBoxText *combo_box,
* This is the same as calling [method@Gtk.ComboBoxText.insert]
* with a %NULL ID string.
*
* Deprecated: 4.10: Use [class@Gtk.DropDown]
* Deprecated: 4.10: Use GtkDropDown
*/
void
gtk_combo_box_text_insert_text (GtkComboBoxText *combo_box,
@@ -456,7 +453,7 @@ gtk_combo_box_text_insert_text (GtkComboBoxText *combo_box,
* This is the same as calling [method@Gtk.ComboBoxText.insert]
* with a position of -1.
*
* Deprecated: 4.10: Use [class@Gtk.DropDown]
* Deprecated: 4.10: Use GtkDropDown
*/
void
gtk_combo_box_text_append (GtkComboBoxText *combo_box,
@@ -479,7 +476,7 @@ gtk_combo_box_text_append (GtkComboBoxText *combo_box,
* This is the same as calling [method@Gtk.ComboBoxText.insert]
* with a position of 0.
*
* Deprecated: 4.10: Use [class@Gtk.DropDown]
* Deprecated: 4.10: Use GtkDropDown
*/
void
gtk_combo_box_text_prepend (GtkComboBoxText *combo_box,
@@ -504,7 +501,7 @@ gtk_combo_box_text_prepend (GtkComboBoxText *combo_box,
*
* If @position is negative then @text is appended.
*
* Deprecated: 4.10: Use [class@Gtk.DropDown]
* Deprecated: 4.10: Use GtkDropDown
*/
void
gtk_combo_box_text_insert (GtkComboBoxText *combo_box,
@@ -557,7 +554,7 @@ gtk_combo_box_text_insert (GtkComboBoxText *combo_box,
*
* Removes the string at @position from @combo_box.
*
* Deprecated: 4.10: Use [class@Gtk.DropDown]
* Deprecated: 4.10: Use GtkDropDown
*/
void
gtk_combo_box_text_remove (GtkComboBoxText *combo_box,
@@ -584,7 +581,7 @@ gtk_combo_box_text_remove (GtkComboBoxText *combo_box,
*
* Removes all the text entries from the combo box.
*
* Deprecated: 4.10: Use [class@Gtk.DropDown]
* Deprecated: 4.10: Use GtkDropDown
*/
void
gtk_combo_box_text_remove_all (GtkComboBoxText *combo_box)
@@ -612,7 +609,7 @@ gtk_combo_box_text_remove_all (GtkComboBoxText *combo_box)
* string containing the currently active text.
* Must be freed with g_free().
*
* Deprecated: 4.10: Use [class@Gtk.DropDown]
* Deprecated: 4.10: Use GtkDropDown
*/
char *
gtk_combo_box_text_get_active_text (GtkComboBoxText *combo_box)
+11 -11
View File
@@ -35,38 +35,38 @@ typedef struct _GtkComboBoxText GtkComboBoxText;
GDK_AVAILABLE_IN_ALL
GType gtk_combo_box_text_get_type (void) G_GNUC_CONST;
GDK_DEPRECATED_IN_4_10_FOR(GtkDropDown and GtkStringList)
GDK_DEPRECATED_IN_4_10
GtkWidget* gtk_combo_box_text_new (void);
GDK_DEPRECATED_IN_4_10_FOR(GtkDropDown and GtkStringList)
GDK_DEPRECATED_IN_4_10
GtkWidget* gtk_combo_box_text_new_with_entry (void);
GDK_DEPRECATED_IN_4_10_FOR(GtkDropDown and GtkStringList)
GDK_DEPRECATED_IN_4_10
void gtk_combo_box_text_append_text (GtkComboBoxText *combo_box,
const char *text);
GDK_DEPRECATED_IN_4_10_FOR(GtkDropDown and GtkStringList)
GDK_DEPRECATED_IN_4_10
void gtk_combo_box_text_insert_text (GtkComboBoxText *combo_box,
int position,
const char *text);
GDK_DEPRECATED_IN_4_10_FOR(GtkDropDown and GtkStringList)
GDK_DEPRECATED_IN_4_10
void gtk_combo_box_text_prepend_text (GtkComboBoxText *combo_box,
const char *text);
GDK_DEPRECATED_IN_4_10_FOR(GtkDropDown and GtkStringList)
GDK_DEPRECATED_IN_4_10
void gtk_combo_box_text_remove (GtkComboBoxText *combo_box,
int position);
GDK_DEPRECATED_IN_4_10_FOR(GtkDropDown and GtkStringList)
GDK_DEPRECATED_IN_4_10
void gtk_combo_box_text_remove_all (GtkComboBoxText *combo_box);
GDK_DEPRECATED_IN_4_10_FOR(GtkDropDown and GtkStringList)
GDK_DEPRECATED_IN_4_10
char *gtk_combo_box_text_get_active_text (GtkComboBoxText *combo_box);
GDK_DEPRECATED_IN_4_10_FOR(GtkDropDown and GtkStringList)
GDK_DEPRECATED_IN_4_10
void gtk_combo_box_text_insert (GtkComboBoxText *combo_box,
int position,
const char *id,
const char *text);
GDK_DEPRECATED_IN_4_10_FOR(GtkDropDown and GtkStringList)
GDK_DEPRECATED_IN_4_10
void gtk_combo_box_text_append (GtkComboBoxText *combo_box,
const char *id,
const char *text);
GDK_DEPRECATED_IN_4_10_FOR(GtkDropDown and GtkStringList)
GDK_DEPRECATED_IN_4_10
void gtk_combo_box_text_prepend (GtkComboBoxText *combo_box,
const char *id,
const char *text);
+22 -19
View File
@@ -56,8 +56,6 @@
* [method@Gtk.TreeModelFilter.get_model]. Dont forget to use
* [method@Gtk.TreeModelFilter.convert_iter_to_child_iter] to obtain a
* matching iter.
*
* Deprecated: 4.10
*/
#include "config.h"
@@ -436,7 +434,6 @@ gtk_entry_completion_init (GtkEntryCompletion *completion)
completion->inline_selection = FALSE;
completion->filter_model = NULL;
completion->insert_text_signal_group = NULL;
}
static gboolean
@@ -1385,12 +1382,13 @@ gtk_entry_completion_insert_completion_text (GtkEntryCompletion *completion,
{
int len;
GtkText *text = gtk_entry_get_text_widget (GTK_ENTRY (completion->entry));
GtkEntryBuffer *buffer = gtk_text_get_buffer (text);
if (completion->changed_id > 0)
g_signal_handler_block (text, completion->changed_id);
if (completion->insert_text_signal_group != NULL)
g_signal_group_block (completion->insert_text_signal_group);
if (completion->insert_text_id > 0)
g_signal_handler_block (buffer, completion->insert_text_id);
gtk_editable_set_text (GTK_EDITABLE (completion->entry), new_text);
@@ -1400,8 +1398,8 @@ gtk_entry_completion_insert_completion_text (GtkEntryCompletion *completion,
if (completion->changed_id > 0)
g_signal_handler_unblock (text, completion->changed_id);
if (completion->insert_text_signal_group != NULL)
g_signal_group_unblock (completion->insert_text_signal_group);
if (completion->insert_text_id > 0)
g_signal_handler_unblock (buffer, completion->insert_text_id);
}
static gboolean
@@ -1440,9 +1438,11 @@ gtk_entry_completion_insert_prefix (GtkEntryCompletion *completion)
gboolean done;
char *prefix;
GtkText *text = gtk_entry_get_text_widget (GTK_ENTRY (completion->entry));
GtkEntryBuffer *buffer = gtk_text_get_buffer (text);
if (completion->insert_text_signal_group != NULL)
g_signal_group_block (completion->insert_text_signal_group);
if (completion->insert_text_id > 0)
g_signal_handler_block (buffer, completion->insert_text_id);
prefix = gtk_entry_completion_compute_prefix (completion,
gtk_editable_get_text (GTK_EDITABLE (completion->entry)));
@@ -1454,8 +1454,8 @@ gtk_entry_completion_insert_prefix (GtkEntryCompletion *completion)
g_free (prefix);
}
if (completion->insert_text_signal_group != NULL)
g_signal_group_unblock (completion->insert_text_signal_group);
if (completion->insert_text_id > 0)
g_signal_handler_unblock (buffer, completion->insert_text_id);
}
/**
@@ -2028,7 +2028,7 @@ static gboolean
check_completion_callback (GtkEntryCompletion *completion)
{
completion->check_completion_idle = NULL;
gtk_entry_completion_complete (completion);
gtk_entry_completion_insert_prefix (completion);
@@ -2096,6 +2096,7 @@ connect_completion_signals (GtkEntryCompletion *completion)
{
GtkEventController *controller;
GtkText *text = gtk_entry_get_text_widget (GTK_ENTRY (completion->entry));
GtkEntryBuffer *buffer = gtk_text_get_buffer (text);
controller = completion->entry_key_controller = gtk_event_controller_key_new ();
gtk_event_controller_set_static_name (controller, "gtk-entry-completion");
@@ -2110,10 +2111,8 @@ connect_completion_signals (GtkEntryCompletion *completion)
completion->changed_id =
g_signal_connect (text, "changed", G_CALLBACK (gtk_entry_completion_changed), completion);
completion->insert_text_signal_group = g_signal_group_new (GTK_TYPE_ENTRY_BUFFER);
g_signal_group_connect (completion->insert_text_signal_group, "inserted-text", G_CALLBACK (completion_inserted_text_callback), completion);
g_object_bind_property (text, "buffer", completion->insert_text_signal_group, "target", G_BINDING_SYNC_CREATE);
completion->insert_text_id =
g_signal_connect (buffer, "inserted-text", G_CALLBACK (completion_inserted_text_callback), completion);
g_signal_connect (text, "notify", G_CALLBACK (clear_completion_callback), completion);
g_signal_connect_swapped (text, "activate", G_CALLBACK (accept_completion_callback), completion);
}
@@ -2122,6 +2121,7 @@ static void
disconnect_completion_signals (GtkEntryCompletion *completion)
{
GtkText *text = gtk_entry_get_text_widget (GTK_ENTRY (completion->entry));
GtkEntryBuffer *buffer = gtk_text_get_buffer (text);
gtk_widget_remove_controller (GTK_WIDGET (text), completion->entry_key_controller);
gtk_widget_remove_controller (GTK_WIDGET (text), completion->entry_focus_controller);
@@ -2132,9 +2132,12 @@ disconnect_completion_signals (GtkEntryCompletion *completion)
g_signal_handler_disconnect (text, completion->changed_id);
completion->changed_id = 0;
}
g_clear_object (&completion->insert_text_signal_group);
if (completion->insert_text_id > 0 &&
g_signal_handler_is_connected (buffer, completion->insert_text_id))
{
g_signal_handler_disconnect (buffer, completion->insert_text_id);
completion->insert_text_id = 0;
}
g_signal_handlers_disconnect_by_func (text, G_CALLBACK (clear_completion_callback), completion);
g_signal_handlers_disconnect_by_func (text, G_CALLBACK (accept_completion_callback), completion);
}
File diff suppressed because it is too large Load Diff
+63 -63
View File
@@ -74,138 +74,138 @@ typedef enum
GDK_AVAILABLE_IN_ALL
GType gtk_icon_view_get_type (void) G_GNUC_CONST;
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
GtkWidget * gtk_icon_view_new (void);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
GtkWidget * gtk_icon_view_new_with_area (GtkCellArea *area);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
GtkWidget * gtk_icon_view_new_with_model (GtkTreeModel *model);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
void gtk_icon_view_set_model (GtkIconView *icon_view,
GtkTreeModel *model);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
GtkTreeModel * gtk_icon_view_get_model (GtkIconView *icon_view);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
void gtk_icon_view_set_text_column (GtkIconView *icon_view,
int column);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
int gtk_icon_view_get_text_column (GtkIconView *icon_view);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
void gtk_icon_view_set_markup_column (GtkIconView *icon_view,
int column);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
int gtk_icon_view_get_markup_column (GtkIconView *icon_view);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
void gtk_icon_view_set_pixbuf_column (GtkIconView *icon_view,
int column);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
int gtk_icon_view_get_pixbuf_column (GtkIconView *icon_view);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
void gtk_icon_view_set_item_orientation (GtkIconView *icon_view,
GtkOrientation orientation);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
GtkOrientation gtk_icon_view_get_item_orientation (GtkIconView *icon_view);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
void gtk_icon_view_set_columns (GtkIconView *icon_view,
int columns);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
int gtk_icon_view_get_columns (GtkIconView *icon_view);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
void gtk_icon_view_set_item_width (GtkIconView *icon_view,
int item_width);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
int gtk_icon_view_get_item_width (GtkIconView *icon_view);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
void gtk_icon_view_set_spacing (GtkIconView *icon_view,
int spacing);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
int gtk_icon_view_get_spacing (GtkIconView *icon_view);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
void gtk_icon_view_set_row_spacing (GtkIconView *icon_view,
int row_spacing);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
int gtk_icon_view_get_row_spacing (GtkIconView *icon_view);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
void gtk_icon_view_set_column_spacing (GtkIconView *icon_view,
int column_spacing);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
int gtk_icon_view_get_column_spacing (GtkIconView *icon_view);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
void gtk_icon_view_set_margin (GtkIconView *icon_view,
int margin);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
int gtk_icon_view_get_margin (GtkIconView *icon_view);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
void gtk_icon_view_set_item_padding (GtkIconView *icon_view,
int item_padding);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
int gtk_icon_view_get_item_padding (GtkIconView *icon_view);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
GtkTreePath * gtk_icon_view_get_path_at_pos (GtkIconView *icon_view,
int x,
int y);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
gboolean gtk_icon_view_get_item_at_pos (GtkIconView *icon_view,
int x,
int y,
GtkTreePath **path,
GtkCellRenderer **cell);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
gboolean gtk_icon_view_get_visible_range (GtkIconView *icon_view,
GtkTreePath **start_path,
GtkTreePath **end_path);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
void gtk_icon_view_set_activate_on_single_click (GtkIconView *icon_view,
gboolean single);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
gboolean gtk_icon_view_get_activate_on_single_click (GtkIconView *icon_view);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
void gtk_icon_view_selected_foreach (GtkIconView *icon_view,
GtkIconViewForeachFunc func,
gpointer data);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
void gtk_icon_view_set_selection_mode (GtkIconView *icon_view,
GtkSelectionMode mode);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
GtkSelectionMode gtk_icon_view_get_selection_mode (GtkIconView *icon_view);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
void gtk_icon_view_select_path (GtkIconView *icon_view,
GtkTreePath *path);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
void gtk_icon_view_unselect_path (GtkIconView *icon_view,
GtkTreePath *path);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
gboolean gtk_icon_view_path_is_selected (GtkIconView *icon_view,
GtkTreePath *path);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
int gtk_icon_view_get_item_row (GtkIconView *icon_view,
GtkTreePath *path);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
int gtk_icon_view_get_item_column (GtkIconView *icon_view,
GtkTreePath *path);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
GList *gtk_icon_view_get_selected_items (GtkIconView *icon_view);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
void gtk_icon_view_select_all (GtkIconView *icon_view);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
void gtk_icon_view_unselect_all (GtkIconView *icon_view);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
void gtk_icon_view_item_activated (GtkIconView *icon_view,
GtkTreePath *path);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
void gtk_icon_view_set_cursor (GtkIconView *icon_view,
GtkTreePath *path,
GtkCellRenderer *cell,
gboolean start_editing);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
gboolean gtk_icon_view_get_cursor (GtkIconView *icon_view,
GtkTreePath **path,
GtkCellRenderer **cell);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
void gtk_icon_view_scroll_to_path (GtkIconView *icon_view,
GtkTreePath *path,
gboolean use_align,
@@ -213,62 +213,62 @@ void gtk_icon_view_scroll_to_path (GtkIconView *icon_
float col_align);
/* Drag-and-Drop support */
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
void gtk_icon_view_enable_model_drag_source (GtkIconView *icon_view,
GdkModifierType start_button_mask,
GdkContentFormats *formats,
GdkDragAction actions);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
void gtk_icon_view_enable_model_drag_dest (GtkIconView *icon_view,
GdkContentFormats *formats,
GdkDragAction actions);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
void gtk_icon_view_unset_model_drag_source (GtkIconView *icon_view);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
void gtk_icon_view_unset_model_drag_dest (GtkIconView *icon_view);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
void gtk_icon_view_set_reorderable (GtkIconView *icon_view,
gboolean reorderable);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
gboolean gtk_icon_view_get_reorderable (GtkIconView *icon_view);
/* These are useful to implement your own custom stuff. */
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
void gtk_icon_view_set_drag_dest_item (GtkIconView *icon_view,
GtkTreePath *path,
GtkIconViewDropPosition pos);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
void gtk_icon_view_get_drag_dest_item (GtkIconView *icon_view,
GtkTreePath **path,
GtkIconViewDropPosition *pos);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
gboolean gtk_icon_view_get_dest_item_at_pos (GtkIconView *icon_view,
int drag_x,
int drag_y,
GtkTreePath **path,
GtkIconViewDropPosition *pos);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
GdkPaintable *gtk_icon_view_create_drag_icon (GtkIconView *icon_view,
GtkTreePath *path);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
gboolean gtk_icon_view_get_cell_rect (GtkIconView *icon_view,
GtkTreePath *path,
GtkCellRenderer *cell,
GdkRectangle *rect);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
void gtk_icon_view_set_tooltip_item (GtkIconView *icon_view,
GtkTooltip *tooltip,
GtkTreePath *path);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
void gtk_icon_view_set_tooltip_cell (GtkIconView *icon_view,
GtkTooltip *tooltip,
GtkTreePath *path,
GtkCellRenderer *cell);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
gboolean gtk_icon_view_get_tooltip_context (GtkIconView *icon_view,
int x,
int y,
@@ -276,10 +276,10 @@ gboolean gtk_icon_view_get_tooltip_context (GtkIconView
GtkTreeModel **model,
GtkTreePath **path,
GtkTreeIter *iter);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
void gtk_icon_view_set_tooltip_column (GtkIconView *icon_view,
int column);
GDK_DEPRECATED_IN_4_10_FOR(GtkGridView)
GDK_DEPRECATED_IN_4_10
int gtk_icon_view_get_tooltip_column (GtkIconView *icon_view);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GtkIconView, g_object_unref)
+60 -82
View File
@@ -104,11 +104,7 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
* }
* ```
*
* `GtkListStore` is deprecated since GTK 4.10, and should not be used in newly
* written code. You should use [class@Gio.ListStore] instead, and the various
* list models provided by GTK.
*
* ## Performance Considerations
* # Performance Considerations
*
* Internally, the `GtkListStore` was originally implemented with a linked list
* with a tail pointer. As a result, it was fast at data insertion and deletion,
@@ -118,7 +114,7 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
* often and your code is expected to run on older versions of GTK, it is worth
* keeping the iter around.
*
* ## Atomic Operations
* # Atomic Operations
*
* It is important to note that only the methods
* gtk_list_store_insert_with_values() and gtk_list_store_insert_with_valuesv()
@@ -135,7 +131,7 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
* `GtkTreeModel`FilterVisibleFunc to be visited with an empty row first; the
* function must be prepared for that.
*
* ## GtkListStore as GtkBuildable
* # GtkListStore as GtkBuildable
*
* The GtkListStore implementation of the [iface@Gtk.Buildable] interface allows
* to specify the model columns with a `<columns>` element that may contain
@@ -175,8 +171,6 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
* </data>
* </object>
* ```
*
* Deprecated: 4.10: Use [class@Gio.ListStore] instead
*/
@@ -396,7 +390,7 @@ static gboolean
iter_is_valid (GtkTreeIter *iter,
GtkListStore *list_store)
{
return iter != NULL &&
return iter != NULL &&
iter->user_data != NULL &&
list_store->priv->stamp == iter->stamp &&
!g_sequence_iter_is_end (iter->user_data) &&
@@ -408,27 +402,17 @@ iter_is_valid (GtkTreeIter *iter,
* @n_columns: number of columns in the list store
* @...: all `GType` types for the columns, from first to last
*
* Creates a new list store.
*
* The list store will have @n_columns columns, with each column using
* the given type passed to this function.
*
*
* Note that only types derived from standard GObject fundamental types
* Creates a new list store as with @n_columns columns each of the types passed
* in. Note that only types derived from standard GObject fundamental types
* are supported.
*
* As an example:
*
* ```c
* gtk_list_store_new (3, G_TYPE_INT, G_TYPE_STRING, GDK_TYPE_TEXTURE);
* ```
*
* will create a new `GtkListStore` with three columns, of type `int`,
* `gchararray` and `GdkTexture`, respectively.
* As an example, `gtk_list_store_new (3, G_TYPE_INT, G_TYPE_STRING,
* GDK_TYPE_TEXTURE);` will create a new `GtkListStore` with three columns, of type
* int, string and `GdkTexture`, respectively.
*
* Returns: a new `GtkListStore`
*
* Deprecated: 4.10: Use [class@Gio.ListStore] instead
* Deprecated: 4.10: Use list models
*/
GtkListStore *
gtk_list_store_new (int n_columns,
@@ -471,13 +455,11 @@ gtk_list_store_new (int n_columns,
* @n_columns: number of columns in the list store
* @types: (array length=n_columns): an array of `GType` types for the columns, from first to last
*
* Creates a new `GtkListStore`.
*
* This function is meant to be used by language bindings.
* Non-vararg creation function. Used primarily by language bindings.
*
* Returns: (transfer full): a new `GtkListStore`
*
* Deprecated: 4.10: Use [class@Gio.ListStore] instead
* Deprecated: 4.10: Use list models
**/
GtkListStore *
gtk_list_store_newv (int n_columns,
@@ -512,14 +494,10 @@ gtk_list_store_newv (int n_columns,
* @n_columns: Number of columns for the list store
* @types: (array length=n_columns): An array length n of `GType`s
*
* Sets the types of the columns of a list store.
*
* This function is meant primarily for objects that inherit
* from `GtkListStore`, and should only be used when constructing
* a new instance.
*
* This function cannot be called after a row has been added, or
* a method on the `GtkTreeModel` interface is called.
* This function is meant primarily for `GObject`s that inherit from `GtkListStore`,
* and should only be used when constructing a new `GtkListStore`. It will not
* function after a row has been added, or a method on the `GtkTreeModel`
* interface is called.
*
* Deprecated: 4.10: Use list models
**/
@@ -683,10 +661,10 @@ gtk_list_store_get_path (GtkTreeModel *tree_model,
if (g_sequence_iter_is_end (iter->user_data))
return NULL;
path = gtk_tree_path_new ();
gtk_tree_path_append_index (path, g_sequence_iter_get_position (iter->user_data));
return path;
}
@@ -703,7 +681,7 @@ gtk_list_store_get_value (GtkTreeModel *tree_model,
g_return_if_fail (column < priv->n_columns);
g_return_if_fail (iter_is_valid (iter, list_store));
list = g_sequence_get (iter->user_data);
while (tmp_column-- > 0 && list)
@@ -1020,8 +998,8 @@ gtk_list_store_set_vector_internal (GtkListStore *list_store,
for (i = 0; i < n_values; i++)
{
*emit_signal = gtk_list_store_real_set_value (list_store,
iter,
*emit_signal = gtk_list_store_real_set_value (list_store,
iter,
columns[i],
&values[i],
FALSE) || *emit_signal;
@@ -1079,7 +1057,7 @@ gtk_list_store_set_valist_internal (GtkListStore *list_store,
column,
&value,
FALSE) || *emit_signal;
if (func == _gtk_tree_data_list_compare_func &&
column == priv->sort_column_id)
*maybe_need_sort = TRUE;
@@ -1100,7 +1078,7 @@ gtk_list_store_set_valist_internal (GtkListStore *list_store,
*
* A variant of gtk_list_store_set_valist() which
* takes the columns and values as two arrays, instead of
* varargs. This function is mainly intended for
* varargs. This function is mainly intended for
* language-bindings and in case the number of columns to
* change is not known until run-time.
*
@@ -1165,8 +1143,8 @@ gtk_list_store_set_valist (GtkListStore *list_store,
priv = list_store->priv;
gtk_list_store_set_valist_internal (list_store, iter,
&emit_signal,
gtk_list_store_set_valist_internal (list_store, iter,
&emit_signal,
&maybe_need_sort,
var_args);
@@ -1218,8 +1196,8 @@ gtk_list_store_set (GtkListStore *list_store,
* @list_store: A `GtkListStore`
* @iter: A valid `GtkTreeIter`
*
* Removes the given row from the list store. After being removed,
* @iter is set to be the next valid row, or invalidated if it pointed
* Removes the given row from the list store. After being removed,
* @iter is set to be the next valid row, or invalidated if it pointed
* to the last row in @list_store.
*
* Returns: %TRUE if @iter is valid, %FALSE if not.
@@ -1243,12 +1221,12 @@ gtk_list_store_remove (GtkListStore *list_store,
ptr = iter->user_data;
next = g_sequence_iter_next (ptr);
_gtk_tree_data_list_free (g_sequence_get (ptr), priv->column_headers);
g_sequence_remove (iter->user_data);
priv->length--;
gtk_tree_model_row_deleted (GTK_TREE_MODEL (list_store), path);
gtk_tree_path_free (path);
@@ -1312,7 +1290,7 @@ gtk_list_store_insert (GtkListStore *list_store,
g_assert (iter_is_valid (iter, list_store));
priv->length++;
path = gtk_tree_path_new ();
gtk_tree_path_append_index (path, position);
gtk_tree_model_row_inserted (GTK_TREE_MODEL (list_store), path, iter);
@@ -1325,9 +1303,9 @@ gtk_list_store_insert (GtkListStore *list_store,
* @iter: (out): An unset `GtkTreeIter` to set to the new row
* @sibling: (nullable): A valid `GtkTreeIter`
*
* Inserts a new row before @sibling. If @sibling is %NULL, then the row will
* be appended to the end of the list. @iter will be changed to point to this
* new row. The row will be empty after this function is called. To fill in
* Inserts a new row before @sibling. If @sibling is %NULL, then the row will
* be appended to the end of the list. @iter will be changed to point to this
* new row. The row will be empty after this function is called. To fill in
* values, you need to call gtk_list_store_set() or gtk_list_store_set_value().
*
* Deprecated: 4.10: Use list models
@@ -1339,7 +1317,7 @@ gtk_list_store_insert_before (GtkListStore *list_store,
{
GtkListStorePrivate *priv;
GSequenceIter *after;
g_return_if_fail (GTK_IS_LIST_STORE (list_store));
g_return_if_fail (iter != NULL);
@@ -1451,7 +1429,7 @@ gtk_list_store_increment_stamp (GtkListStore *list_store)
* gtk_list_store_clear:
* @list_store: a `GtkListStore`.
*
* Removes all rows from the list store.
* Removes all rows from the list store.
*
* Deprecated: 4.10: Use list models
**/
@@ -1528,7 +1506,7 @@ static gboolean real_gtk_list_store_row_draggable (GtkTreeDragSource *drag_sourc
{
return TRUE;
}
static gboolean
gtk_list_store_drag_data_delete (GtkTreeDragSource *drag_source,
GtkTreePath *path)
@@ -1699,7 +1677,7 @@ gtk_list_store_row_drop_possible (GtkTreeDragDest *drag_dest,
out:
if (src_path)
gtk_tree_path_free (src_path);
return retval;
}
@@ -1721,7 +1699,7 @@ gtk_list_store_reorder_func (GSequenceIter *a,
return 1;
return 0;
}
/**
* gtk_list_store_reorder:
* @store: A `GtkListStore`.
@@ -1745,7 +1723,7 @@ gtk_list_store_reorder (GtkListStore *store,
GHashTable *new_positions;
GSequenceIter *ptr;
int *order;
g_return_if_fail (GTK_IS_LIST_STORE (store));
g_return_if_fail (!GTK_LIST_STORE_IS_SORTED (store));
g_return_if_fail (new_order != NULL);
@@ -1755,7 +1733,7 @@ gtk_list_store_reorder (GtkListStore *store,
order = g_new (int, g_sequence_get_length (priv->seq));
for (i = 0; i < g_sequence_get_length (priv->seq); i++)
order[new_order[i]] = i;
new_positions = g_hash_table_new (g_direct_hash, g_direct_equal);
ptr = g_sequence_get_begin_iter (priv->seq);
@@ -1767,11 +1745,11 @@ gtk_list_store_reorder (GtkListStore *store,
ptr = g_sequence_iter_next (ptr);
}
g_free (order);
g_sequence_sort_iter (priv->seq, gtk_list_store_reorder_func, new_positions);
g_hash_table_destroy (new_positions);
/* emit signal */
path = gtk_tree_path_new ();
gtk_tree_model_rows_reordered (GTK_TREE_MODEL (store),
@@ -1850,12 +1828,12 @@ gtk_list_store_swap (GtkListStore *store,
return;
old_positions = save_positions (priv->seq);
g_sequence_swap (a->user_data, b->user_data);
order = generate_order (priv->seq, old_positions);
path = gtk_tree_path_new ();
gtk_tree_model_rows_reordered (GTK_TREE_MODEL (store),
path, NULL, order);
@@ -1904,7 +1882,7 @@ gtk_list_store_move_before (GtkListStore *store,
GtkTreeIter *position)
{
int pos;
g_return_if_fail (GTK_IS_LIST_STORE (store));
g_return_if_fail (!GTK_LIST_STORE_IS_SORTED (store));
g_return_if_fail (iter_is_valid (iter, store));
@@ -1915,7 +1893,7 @@ gtk_list_store_move_before (GtkListStore *store,
pos = g_sequence_iter_get_position (position->user_data);
else
pos = -1;
gtk_list_store_move_to (store, iter, pos);
}
@@ -1937,7 +1915,7 @@ gtk_list_store_move_after (GtkListStore *store,
GtkTreeIter *position)
{
int pos;
g_return_if_fail (GTK_IS_LIST_STORE (store));
g_return_if_fail (!GTK_LIST_STORE_IS_SORTED (store));
g_return_if_fail (iter_is_valid (iter, store));
@@ -1948,10 +1926,10 @@ gtk_list_store_move_after (GtkListStore *store,
pos = g_sequence_iter_get_position (position->user_data) + 1;
else
pos = 0;
gtk_list_store_move_to (store, iter, pos);
}
/* Sorting */
static int
gtk_list_store_compare_func (GSequenceIter *a,
@@ -2051,7 +2029,7 @@ iter_is_sorted (GtkListStore *list_store,
if (gtk_list_store_compare_func (iter->user_data, cmp, list_store) > 0)
return FALSE;
}
return TRUE;
}
@@ -2124,7 +2102,7 @@ gtk_list_store_set_sort_column_id (GtkTreeSortable *sortable,
{
GtkTreeDataSortHeader *header = NULL;
header = _gtk_tree_data_list_get_header (priv->sort_list,
header = _gtk_tree_data_list_get_header (priv->sort_list,
sort_column_id);
/* We want to make sure that we have a function */
@@ -2156,8 +2134,8 @@ gtk_list_store_set_sort_func (GtkTreeSortable *sortable,
GtkListStore *list_store = GTK_LIST_STORE (sortable);
GtkListStorePrivate *priv = list_store->priv;
priv->sort_list = _gtk_tree_data_list_set_header (priv->sort_list,
sort_column_id,
priv->sort_list = _gtk_tree_data_list_set_header (priv->sort_list,
sort_column_id,
func, data, destroy);
if (priv->sort_column_id == sort_column_id)
@@ -2284,7 +2262,7 @@ gtk_list_store_insert_with_values (GtkListStore *list_store,
priv->length++;
va_start (var_args, position);
gtk_list_store_set_valist_internal (list_store, iter,
gtk_list_store_set_valist_internal (list_store, iter,
&changed, &maybe_need_sort,
var_args);
va_end (var_args);
@@ -2308,9 +2286,9 @@ gtk_list_store_insert_with_values (GtkListStore *list_store,
* @iter: (out) (optional): An unset `GtkTreeIter` to set to the new row
* @position: position to insert the new row, or -1 for last
* @columns: (array length=n_values): an array of column numbers
* @values: (array length=n_values): an array of GValues
* @values: (array length=n_values): an array of GValues
* @n_values: the length of the @columns and @values arrays
*
*
* A variant of gtk_list_store_insert_with_values() which
* takes the columns and values as two arrays, instead of
* varargs.
@@ -2323,7 +2301,7 @@ void
gtk_list_store_insert_with_valuesv (GtkListStore *list_store,
GtkTreeIter *iter,
int position,
int *columns,
int *columns,
GValue *values,
int n_values)
{
@@ -2336,8 +2314,8 @@ gtk_list_store_insert_with_valuesv (GtkListStore *list_store,
gboolean changed = FALSE;
gboolean maybe_need_sort = FALSE;
/* FIXME refactor to reduce overlap with
* gtk_list_store_insert_with_values()
/* FIXME refactor to reduce overlap with
* gtk_list_store_insert_with_values()
*/
g_return_if_fail (GTK_IS_LIST_STORE (list_store));
@@ -2362,7 +2340,7 @@ gtk_list_store_insert_with_valuesv (GtkListStore *list_store,
g_assert (iter_is_valid (iter, list_store));
priv->length++;
priv->length++;
gtk_list_store_set_vector_internal (list_store, iter,
&changed, &maybe_need_sort,
+21 -21
View File
@@ -60,88 +60,88 @@ struct _GtkListStoreClass
GDK_AVAILABLE_IN_ALL
GType gtk_list_store_get_type (void) G_GNUC_CONST;
GDK_DEPRECATED_IN_4_10_FOR(GListStore)
GDK_DEPRECATED_IN_4_10
GtkListStore *gtk_list_store_new (int n_columns,
...);
GDK_DEPRECATED_IN_4_10_FOR(GListStore)
GDK_DEPRECATED_IN_4_10
GtkListStore *gtk_list_store_newv (int n_columns,
GType *types);
GDK_DEPRECATED_IN_4_10_FOR(GListStore)
GDK_DEPRECATED_IN_4_10
void gtk_list_store_set_column_types (GtkListStore *list_store,
int n_columns,
GType *types);
/* NOTE: use gtk_tree_model_get to get values from a GtkListStore */
GDK_DEPRECATED_IN_4_10_FOR(GListStore)
GDK_DEPRECATED_IN_4_10
void gtk_list_store_set_value (GtkListStore *list_store,
GtkTreeIter *iter,
int column,
GValue *value);
GDK_DEPRECATED_IN_4_10_FOR(GListStore)
GDK_DEPRECATED_IN_4_10
void gtk_list_store_set (GtkListStore *list_store,
GtkTreeIter *iter,
...);
GDK_DEPRECATED_IN_4_10_FOR(GListStore)
GDK_DEPRECATED_IN_4_10
void gtk_list_store_set_valuesv (GtkListStore *list_store,
GtkTreeIter *iter,
int *columns,
GValue *values,
int n_values);
GDK_DEPRECATED_IN_4_10_FOR(GListStore)
GDK_DEPRECATED_IN_4_10
void gtk_list_store_set_valist (GtkListStore *list_store,
GtkTreeIter *iter,
va_list var_args);
GDK_DEPRECATED_IN_4_10_FOR(GListStore)
GDK_DEPRECATED_IN_4_10
gboolean gtk_list_store_remove (GtkListStore *list_store,
GtkTreeIter *iter);
GDK_DEPRECATED_IN_4_10_FOR(GListStore)
GDK_DEPRECATED_IN_4_10
void gtk_list_store_insert (GtkListStore *list_store,
GtkTreeIter *iter,
int position);
GDK_DEPRECATED_IN_4_10_FOR(GListStore)
GDK_DEPRECATED_IN_4_10
void gtk_list_store_insert_before (GtkListStore *list_store,
GtkTreeIter *iter,
GtkTreeIter *sibling);
GDK_DEPRECATED_IN_4_10_FOR(GListStore)
GDK_DEPRECATED_IN_4_10
void gtk_list_store_insert_after (GtkListStore *list_store,
GtkTreeIter *iter,
GtkTreeIter *sibling);
GDK_DEPRECATED_IN_4_10_FOR(GListStore)
GDK_DEPRECATED_IN_4_10
void gtk_list_store_insert_with_values (GtkListStore *list_store,
GtkTreeIter *iter,
int position,
...);
GDK_DEPRECATED_IN_4_10_FOR(GListStore)
GDK_DEPRECATED_IN_4_10
void gtk_list_store_insert_with_valuesv (GtkListStore *list_store,
GtkTreeIter *iter,
int position,
int *columns,
GValue *values,
int n_values);
GDK_DEPRECATED_IN_4_10_FOR(GListStore)
GDK_DEPRECATED_IN_4_10
void gtk_list_store_prepend (GtkListStore *list_store,
GtkTreeIter *iter);
GDK_DEPRECATED_IN_4_10_FOR(GListStore)
GDK_DEPRECATED_IN_4_10
void gtk_list_store_append (GtkListStore *list_store,
GtkTreeIter *iter);
GDK_DEPRECATED_IN_4_10_FOR(GListStore)
GDK_DEPRECATED_IN_4_10
void gtk_list_store_clear (GtkListStore *list_store);
GDK_DEPRECATED_IN_4_10_FOR(GListStore)
GDK_DEPRECATED_IN_4_10
gboolean gtk_list_store_iter_is_valid (GtkListStore *list_store,
GtkTreeIter *iter);
GDK_DEPRECATED_IN_4_10_FOR(GListStore)
GDK_DEPRECATED_IN_4_10
void gtk_list_store_reorder (GtkListStore *store,
int *new_order);
GDK_DEPRECATED_IN_4_10_FOR(GListStore)
GDK_DEPRECATED_IN_4_10
void gtk_list_store_swap (GtkListStore *store,
GtkTreeIter *a,
GtkTreeIter *b);
GDK_DEPRECATED_IN_4_10_FOR(GListStore)
GDK_DEPRECATED_IN_4_10
void gtk_list_store_move_after (GtkListStore *store,
GtkTreeIter *iter,
GtkTreeIter *position);
GDK_DEPRECATED_IN_4_10_FOR(GListStore)
GDK_DEPRECATED_IN_4_10
void gtk_list_store_move_before (GtkListStore *store,
GtkTreeIter *iter,
GtkTreeIter *position);
+1 -5
View File
@@ -48,7 +48,7 @@
* and RTL/LTR information set. The style context will also be updated
* automatically if any of these settings change on the widget.
*
* ## Style Classes
* # Style Classes
*
* Widgets can add style classes to their context, which can be used to associate
* different styles by class. The documentation for individual widgets lists
@@ -71,10 +71,6 @@
* `XDG_CONFIG_HOME/gtk-4.0/gtk.css` will
* still take precedence over your changes, as it uses the
* %GTK_STYLE_PROVIDER_PRIORITY_USER priority.
*
* Deprecated: 4.10: The relevant API has been moved to [class@Gtk.Widget]
* where applicable; otherwise, there is no replacement for querying the
* style machinery. Stylable UI elements should use widgets.
*/
#define CURSOR_ASPECT_RATIO (0.04)
+24 -30
View File
@@ -49,18 +49,12 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
* GtkTreeDragDest:
*
* Interface for Drag-and-Drop destinations in `GtkTreeView`.
*
* Deprecated: 4.10: List views use widgets to display their contents.
* You can use [class@Gtk.DropTarget] to implement a drop destination
*/
/**
* GtkTreeDragSource:
*
* Interface for Drag-and-Drop destinations in `GtkTreeView`.
*
* Deprecated: 4.10: List views use widgets to display their contents.
* You can use [class@Gtk.DragSource] to implement a drag source
*/
GType
@@ -83,11 +77,11 @@ gtk_tree_drag_source_get_type (void)
NULL
};
our_type = g_type_register_static (G_TYPE_INTERFACE,
our_type = g_type_register_static (G_TYPE_INTERFACE,
I_("GtkTreeDragSource"),
&our_info, 0);
}
return our_type;
}
@@ -114,7 +108,7 @@ gtk_tree_drag_dest_get_type (void)
our_type = g_type_register_static (G_TYPE_INTERFACE, I_("GtkTreeDragDest"), &our_info, 0);
}
return our_type;
}
@@ -122,7 +116,7 @@ gtk_tree_drag_dest_get_type (void)
* gtk_tree_drag_source_row_draggable:
* @drag_source: a `GtkTreeDragSource`
* @path: row on which user is initiating a drag
*
*
* Asks the `GtkTreeDragSource` whether a particular row can be used as
* the source of a DND operation. If the source doesnt implement
* this interface, the row is assumed draggable.
@@ -153,13 +147,13 @@ gtk_tree_drag_source_row_draggable (GtkTreeDragSource *drag_source,
* gtk_tree_drag_source_drag_data_delete:
* @drag_source: a `GtkTreeDragSource`
* @path: row that was being dragged
*
*
* Asks the `GtkTreeDragSource` to delete the row at @path, because
* it was moved somewhere else via drag-and-drop. Returns %FALSE
* if the deletion fails because @path no longer exists, or for
* some model-specific reason. Should robustly handle a @path no
* longer found in the model!
*
*
* Returns: %TRUE if the row was successfully deleted
*
* Deprecated: 4.10: Use list models instead
@@ -180,11 +174,11 @@ gtk_tree_drag_source_drag_data_delete (GtkTreeDragSource *drag_source,
* gtk_tree_drag_source_drag_data_get:
* @drag_source: a `GtkTreeDragSource`
* @path: row that was dragged
*
*
* Asks the `GtkTreeDragSource` to return a `GdkContentProvider` representing
* the row at @path. Should robustly handle a @path no
* longer found in the model!
*
*
* Returns: (nullable) (transfer full): a `GdkContentProvider` for the
* given @path
*
@@ -207,14 +201,14 @@ gtk_tree_drag_source_drag_data_get (GtkTreeDragSource *drag_source,
* @drag_dest: a `GtkTreeDragDest`
* @dest: row to drop in front of
* @value: data to drop
*
*
* Asks the `GtkTreeDragDest` to insert a row before the path @dest,
* deriving the contents of the row from @value. If @dest is
* outside the tree so that inserting before it is impossible, %FALSE
* will be returned. Also, %FALSE may be returned if the new row is
* not created for some model-specific reason. Should robustly handle
* a @dest no longer found in the model!
*
*
* Returns: whether a new row was created before position @dest
*
* Deprecated: 4.10: Use list models instead
@@ -239,13 +233,13 @@ gtk_tree_drag_dest_drag_data_received (GtkTreeDragDest *drag_dest,
* @drag_dest: a `GtkTreeDragDest`
* @dest_path: destination row
* @value: the data being dropped
*
*
* Determines whether a drop is possible before the given @dest_path,
* at the same depth as @dest_path. i.e., can we drop the data in
* @value at that location. @dest_path does not have to
* exist; the return value will almost certainly be %FALSE if the
* parent of @dest_path doesnt exist, though.
*
*
* Returns: %TRUE if a drop is possible before @dest_path
*
* Deprecated: 4.10: Use list models instead
@@ -287,9 +281,9 @@ G_DEFINE_BOXED_TYPE (GtkTreeRowData, gtk_tree_row_data,
* gtk_tree_create_row_drag_content:
* @tree_model: a `GtkTreeModel`
* @path: a row in @tree_model
*
*
* Creates a content provider for dragging @path from @tree_model.
*
*
* Returns: (transfer full): a new `GdkContentProvider`
*
* Deprecated: 4.10: Use list models instead
@@ -303,7 +297,7 @@ gtk_tree_create_row_drag_content (GtkTreeModel *tree_model,
char *path_str;
int len;
int struct_size;
g_return_val_if_fail (GTK_IS_TREE_MODEL (tree_model), FALSE);
g_return_val_if_fail (path != NULL, FALSE);
@@ -315,18 +309,18 @@ gtk_tree_create_row_drag_content (GtkTreeModel *tree_model,
struct_size = sizeof (GtkTreeRowData) + len + 1 -
(sizeof (GtkTreeRowData) - G_STRUCT_OFFSET (GtkTreeRowData, path));
trd = g_malloc (struct_size);
trd = g_malloc (struct_size);
strcpy (trd->path, path_str);
g_free (path_str);
trd->model = tree_model;
content = gdk_content_provider_new_typed (GTK_TYPE_TREE_ROW_DATA, trd);
g_free (trd);
return content;
}
@@ -335,12 +329,12 @@ gtk_tree_create_row_drag_content (GtkTreeModel *tree_model,
* @value: a `GValue`
* @tree_model: (nullable) (optional) (transfer none) (out): a `GtkTreeModel`
* @path: (nullable) (optional) (out): row in @tree_model
*
*
* Obtains a @tree_model and @path from value of target type
* %GTK_TYPE_TREE_ROW_DATA.
*
* The returned path must be freed with gtk_tree_path_free().
*
*
* Returns: %TRUE if @selection_data had target type %GTK_TYPE_TREE_ROW_DATA
* is otherwise valid
*
@@ -352,8 +346,8 @@ gtk_tree_get_row_drag_data (const GValue *value,
GtkTreePath **path)
{
GtkTreeRowData *trd;
g_return_val_if_fail (value != NULL, FALSE);
g_return_val_if_fail (value != NULL, FALSE);
if (tree_model)
*tree_model = NULL;
@@ -373,6 +367,6 @@ gtk_tree_get_row_drag_data (const GValue *value,
if (path)
*path = gtk_tree_path_new_from_string (trd->path);
return TRUE;
}
+10 -10
View File
@@ -74,23 +74,23 @@ struct _GtkTreeDragSourceIface
GtkTreePath *path);
};
GDK_DEPRECATED_IN_4_10_FOR(GtkDragSource)
GDK_DEPRECATED_IN_4_10
GType gtk_tree_drag_source_get_type (void) G_GNUC_CONST;
/* Returns whether the given row can be dragged */
GDK_DEPRECATED_IN_4_10_FOR(GtkDragSource)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_drag_source_row_draggable (GtkTreeDragSource *drag_source,
GtkTreePath *path);
/* Deletes the given row, or returns FALSE if it can't */
GDK_DEPRECATED_IN_4_10_FOR(GtkDragSource)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_drag_source_drag_data_delete (GtkTreeDragSource *drag_source,
GtkTreePath *path);
/* Fills in selection_data with type selection_data->target based on
* the row denoted by path, returns TRUE if it does anything
*/
GDK_DEPRECATED_IN_4_10_FOR(GtkDragSource)
GDK_DEPRECATED_IN_4_10
GdkContentProvider *
gtk_tree_drag_source_drag_data_get (GtkTreeDragSource *drag_source,
GtkTreePath *path);
@@ -129,20 +129,20 @@ struct _GtkTreeDragDestIface
const GValue *value);
};
GDK_DEPRECATED_IN_4_10_FOR(GtkDropTarget)
GDK_DEPRECATED_IN_4_10
GType gtk_tree_drag_dest_get_type (void) G_GNUC_CONST;
/* Inserts a row before dest which contains data in selection_data,
* or returns FALSE if it can't
*/
GDK_DEPRECATED_IN_4_10_FOR(GtkDropTarget)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_drag_dest_drag_data_received (GtkTreeDragDest *drag_dest,
GtkTreePath *dest,
const GValue *value);
/* Returns TRUE if we can drop before path; path may not exist. */
GDK_DEPRECATED_IN_4_10_FOR(GtkDropTarget)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_drag_dest_row_drop_possible (GtkTreeDragDest *drag_dest,
GtkTreePath *dest_path,
const GValue *value);
@@ -151,11 +151,11 @@ gboolean gtk_tree_drag_dest_row_drop_possible (GtkTreeDragDest *drag_dest,
/* The selection data would normally have target type GTK_TREE_MODEL_ROW in this
* case. If the target is wrong these functions return FALSE.
*/
GDK_DEPRECATED_IN_4_10_FOR(GtkDragSource and GtkDropTarget)
GdkContentProvider *
GDK_DEPRECATED_IN_4_10
GdkContentProvider *
gtk_tree_create_row_drag_content (GtkTreeModel *tree_model,
GtkTreePath *path);
GDK_DEPRECATED_IN_4_10_FOR(GtkDragSource and GtkDropTarget)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_get_row_drag_data (const GValue *value,
GtkTreeModel **tree_model,
GtkTreePath **path);
+1 -3
View File
@@ -228,8 +228,6 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
* required for levels in which nodes are referenced. For the root level
* however, signals must be emitted at all times (however the root level
* is always referenced when any view is attached).
*
* Deprecated: 4.10: Use [iface@Gio.ListModel] instead
*/
#define INITIALIZE_TREE_ITER(Iter) \
@@ -364,7 +362,7 @@ gtk_tree_model_base_init (gpointer g_class)
tree_model_signals[ROW_CHANGED] =
g_signal_new (I_("row-changed"),
GTK_TYPE_TREE_MODEL,
G_SIGNAL_RUN_LAST,
G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (GtkTreeModelIface, row_changed),
NULL, NULL,
_gtk_marshal_VOID__BOXED_BOXED,
+59 -59
View File
@@ -192,57 +192,57 @@ struct _GtkTreeModelIface
/* GtkTreePath operations */
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
GtkTreePath *gtk_tree_path_new (void);
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
GtkTreePath *gtk_tree_path_new_from_string (const char *path);
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
GtkTreePath *gtk_tree_path_new_from_indices (int first_index,
...);
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
GtkTreePath *gtk_tree_path_new_from_indicesv (int *indices,
gsize length);
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
char *gtk_tree_path_to_string (GtkTreePath *path);
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
GtkTreePath *gtk_tree_path_new_first (void);
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
void gtk_tree_path_append_index (GtkTreePath *path,
int index_);
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
void gtk_tree_path_prepend_index (GtkTreePath *path,
int index_);
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
int gtk_tree_path_get_depth (GtkTreePath *path);
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
int *gtk_tree_path_get_indices (GtkTreePath *path);
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
int *gtk_tree_path_get_indices_with_depth (GtkTreePath *path,
int *depth);
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
void gtk_tree_path_free (GtkTreePath *path);
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
GtkTreePath *gtk_tree_path_copy (const GtkTreePath *path);
GDK_AVAILABLE_IN_ALL
GType gtk_tree_path_get_type (void) G_GNUC_CONST;
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
int gtk_tree_path_compare (const GtkTreePath *a,
const GtkTreePath *b);
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
void gtk_tree_path_next (GtkTreePath *path);
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_path_prev (GtkTreePath *path);
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_path_up (GtkTreePath *path);
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
void gtk_tree_path_down (GtkTreePath *path);
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_path_is_ancestor (GtkTreePath *path,
GtkTreePath *descendant);
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_path_is_descendant (GtkTreePath *path,
GtkTreePath *ancestor);
@@ -256,147 +256,147 @@ gboolean gtk_tree_path_is_descendant (GtkTreePath *path,
GDK_AVAILABLE_IN_ALL
GType gtk_tree_row_reference_get_type (void) G_GNUC_CONST;
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
GtkTreeRowReference *gtk_tree_row_reference_new (GtkTreeModel *model,
GtkTreePath *path);
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
GtkTreeRowReference *gtk_tree_row_reference_new_proxy (GObject *proxy,
GtkTreeModel *model,
GtkTreePath *path);
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
GtkTreePath *gtk_tree_row_reference_get_path (GtkTreeRowReference *reference);
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
GtkTreeModel *gtk_tree_row_reference_get_model (GtkTreeRowReference *reference);
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_row_reference_valid (GtkTreeRowReference *reference);
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
GtkTreeRowReference *gtk_tree_row_reference_copy (GtkTreeRowReference *reference);
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
void gtk_tree_row_reference_free (GtkTreeRowReference *reference);
/* These two functions are only needed if you created the row reference with a
* proxy object */
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
void gtk_tree_row_reference_inserted (GObject *proxy,
GtkTreePath *path);
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
void gtk_tree_row_reference_deleted (GObject *proxy,
GtkTreePath *path);
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
void gtk_tree_row_reference_reordered (GObject *proxy,
GtkTreePath *path,
GtkTreeIter *iter,
int *new_order);
/* GtkTreeIter operations */
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
GtkTreeIter * gtk_tree_iter_copy (GtkTreeIter *iter);
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
void gtk_tree_iter_free (GtkTreeIter *iter);
GDK_AVAILABLE_IN_ALL
GType gtk_tree_iter_get_type (void) G_GNUC_CONST;
GDK_AVAILABLE_IN_ALL
GType gtk_tree_model_get_type (void) G_GNUC_CONST;
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
GtkTreeModelFlags gtk_tree_model_get_flags (GtkTreeModel *tree_model);
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
int gtk_tree_model_get_n_columns (GtkTreeModel *tree_model);
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
GType gtk_tree_model_get_column_type (GtkTreeModel *tree_model,
int index_);
/* Iterator movement */
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_model_get_iter (GtkTreeModel *tree_model,
GtkTreeIter *iter,
GtkTreePath *path);
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_model_get_iter_from_string (GtkTreeModel *tree_model,
GtkTreeIter *iter,
const char *path_string);
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
char * gtk_tree_model_get_string_from_iter (GtkTreeModel *tree_model,
GtkTreeIter *iter);
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_model_get_iter_first (GtkTreeModel *tree_model,
GtkTreeIter *iter);
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
GtkTreePath * gtk_tree_model_get_path (GtkTreeModel *tree_model,
GtkTreeIter *iter);
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
void gtk_tree_model_get_value (GtkTreeModel *tree_model,
GtkTreeIter *iter,
int column,
GValue *value);
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_model_iter_previous (GtkTreeModel *tree_model,
GtkTreeIter *iter);
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_model_iter_next (GtkTreeModel *tree_model,
GtkTreeIter *iter);
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_model_iter_children (GtkTreeModel *tree_model,
GtkTreeIter *iter,
GtkTreeIter *parent);
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_model_iter_has_child (GtkTreeModel *tree_model,
GtkTreeIter *iter);
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
int gtk_tree_model_iter_n_children (GtkTreeModel *tree_model,
GtkTreeIter *iter);
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_model_iter_nth_child (GtkTreeModel *tree_model,
GtkTreeIter *iter,
GtkTreeIter *parent,
int n);
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_model_iter_parent (GtkTreeModel *tree_model,
GtkTreeIter *iter,
GtkTreeIter *child);
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
void gtk_tree_model_ref_node (GtkTreeModel *tree_model,
GtkTreeIter *iter);
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
void gtk_tree_model_unref_node (GtkTreeModel *tree_model,
GtkTreeIter *iter);
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
void gtk_tree_model_get (GtkTreeModel *tree_model,
GtkTreeIter *iter,
...);
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
void gtk_tree_model_get_valist (GtkTreeModel *tree_model,
GtkTreeIter *iter,
va_list var_args);
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
void gtk_tree_model_foreach (GtkTreeModel *model,
GtkTreeModelForeachFunc func,
gpointer user_data);
/* Signals */
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
void gtk_tree_model_row_changed (GtkTreeModel *tree_model,
GtkTreePath *path,
GtkTreeIter *iter);
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
void gtk_tree_model_row_inserted (GtkTreeModel *tree_model,
GtkTreePath *path,
GtkTreeIter *iter);
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
void gtk_tree_model_row_has_child_toggled (GtkTreeModel *tree_model,
GtkTreePath *path,
GtkTreeIter *iter);
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
void gtk_tree_model_row_deleted (GtkTreeModel *tree_model,
GtkTreePath *path);
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
void gtk_tree_model_rows_reordered (GtkTreeModel *tree_model,
GtkTreePath *path,
GtkTreeIter *iter,
int *new_order);
GDK_DEPRECATED_IN_4_10_FOR(GListModel)
GDK_DEPRECATED_IN_4_10
void gtk_tree_model_rows_reordered_with_length (GtkTreeModel *tree_model,
GtkTreePath *path,
GtkTreeIter *iter,
+6 -8
View File
@@ -31,13 +31,13 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
*
* A `GtkTreeModelFilter` is a tree model which wraps another tree model,
* and can do the following things:
*
*
* - Filter specific rows, based on data from a visible column, a column
* storing booleans indicating whether the row should be filtered or not,
* or based on the return value of a visible function, which gets a
* model, iter and user_data and returns a boolean indicating whether the
* row should be filtered or not.
*
*
* - Modify the appearance of the model, using a modify function.
* This is extremely powerful and allows for just changing some
* values and also for creating a completely different model based
@@ -94,8 +94,6 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
* because it does not implement reference counting, or for models that
* do implement reference counting, obtain references on these child levels
* yourself.
*
* Deprecated: 4.10: Use [class@Gtk.FilterListModel] instead.
*/
/* Notes on this implementation of GtkTreeModelFilter
@@ -590,7 +588,7 @@ gtk_tree_model_filter_finalize (GObject *object)
gtk_tree_model_filter_free_level (filter, filter->priv->root, TRUE, TRUE, FALSE);
g_free (filter->priv->modify_types);
if (filter->priv->modify_destroy)
filter->priv->modify_destroy (filter->priv->modify_data);
@@ -3803,7 +3801,7 @@ gtk_tree_model_filter_get_model (GtkTreeModelFilter *filter)
* %FALSE otherwise.
*
* If the condition calculated by the function changes over time (e.g.
* because it depends on some global parameters), you must call
* because it depends on some global parameters), you must call
* gtk_tree_model_filter_refilter() to keep the visibility information
* of the model up-to-date.
*
@@ -3866,8 +3864,8 @@ gtk_tree_model_filter_set_visible_func (GtkTreeModelFilter *filter,
* types for this model (which will be exposed to the parent model/view).
* The @func, @data and @destroy parameters are for specifying the modify
* function. The modify function will get called for each
* data access, the goal of the modify function is to return the data which
* should be displayed at the location specified using the parameters of the
* data access, the goal of the modify function is to return the data which
* should be displayed at the location specified using the parameters of the
* modify function.
*
* Note that gtk_tree_model_filter_set_modify_func()
+11 -11
View File
@@ -105,48 +105,48 @@ struct _GtkTreeModelFilterClass
/* base */
GDK_AVAILABLE_IN_ALL
GType gtk_tree_model_filter_get_type (void) G_GNUC_CONST;
GDK_DEPRECATED_IN_4_10_FOR(GtkFilterListModel)
GDK_DEPRECATED_IN_4_10
GtkTreeModel *gtk_tree_model_filter_new (GtkTreeModel *child_model,
GtkTreePath *root);
GDK_DEPRECATED_IN_4_10_FOR(GtkFilterListModel)
GDK_DEPRECATED_IN_4_10
void gtk_tree_model_filter_set_visible_func (GtkTreeModelFilter *filter,
GtkTreeModelFilterVisibleFunc func,
gpointer data,
GDestroyNotify destroy);
GDK_DEPRECATED_IN_4_10_FOR(GtkFilterListModel)
GDK_DEPRECATED_IN_4_10
void gtk_tree_model_filter_set_modify_func (GtkTreeModelFilter *filter,
int n_columns,
GType *types,
GtkTreeModelFilterModifyFunc func,
gpointer data,
GDestroyNotify destroy);
GDK_DEPRECATED_IN_4_10_FOR(GtkFilterListModel)
GDK_DEPRECATED_IN_4_10
void gtk_tree_model_filter_set_visible_column (GtkTreeModelFilter *filter,
int column);
GDK_DEPRECATED_IN_4_10_FOR(GtkFilterListModel)
GDK_DEPRECATED_IN_4_10
GtkTreeModel *gtk_tree_model_filter_get_model (GtkTreeModelFilter *filter);
/* conversion */
GDK_DEPRECATED_IN_4_10_FOR(GtkFilterListModel)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_model_filter_convert_child_iter_to_iter (GtkTreeModelFilter *filter,
GtkTreeIter *filter_iter,
GtkTreeIter *child_iter);
GDK_DEPRECATED_IN_4_10_FOR(GtkFilterListModel)
GDK_DEPRECATED_IN_4_10
void gtk_tree_model_filter_convert_iter_to_child_iter (GtkTreeModelFilter *filter,
GtkTreeIter *child_iter,
GtkTreeIter *filter_iter);
GDK_DEPRECATED_IN_4_10_FOR(GtkFilterListModel)
GDK_DEPRECATED_IN_4_10
GtkTreePath *gtk_tree_model_filter_convert_child_path_to_path (GtkTreeModelFilter *filter,
GtkTreePath *child_path);
GDK_DEPRECATED_IN_4_10_FOR(GtkFilterListModel)
GDK_DEPRECATED_IN_4_10
GtkTreePath *gtk_tree_model_filter_convert_path_to_child_path (GtkTreeModelFilter *filter,
GtkTreePath *filter_path);
/* extras */
GDK_DEPRECATED_IN_4_10_FOR(GtkFilterListModel)
GDK_DEPRECATED_IN_4_10
void gtk_tree_model_filter_refilter (GtkTreeModelFilter *filter);
GDK_DEPRECATED_IN_4_10_FOR(GtkFilterListModel)
GDK_DEPRECATED_IN_4_10
void gtk_tree_model_filter_clear_cache (GtkTreeModelFilter *filter);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GtkTreeModelFilter, g_object_unref)
+25 -27
View File
@@ -127,8 +127,6 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
* g_free (modified_data);
* }
* ]|
*
* Deprecated: 4.10: Use [class@Gtk.SortListModel] instead
*/
@@ -661,13 +659,13 @@ fill_sort_data (SortData *data,
if (priv->sort_column_id != GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID)
{
GtkTreeDataSortHeader *header;
header = _gtk_tree_data_list_get_header (priv->sort_list,
priv->sort_column_id);
g_return_if_fail (header != NULL);
g_return_if_fail (header->func != NULL);
data->sort_func = header->func;
data->sort_data = header->data;
}
@@ -1423,7 +1421,7 @@ gtk_tree_model_sort_iter_children (GtkTreeModel *tree_model,
iter->stamp = 0;
g_return_val_if_fail (priv->child_model != NULL, FALSE);
if (parent)
if (parent)
g_return_val_if_fail (VALID_ITER (parent, tree_model_sort), FALSE);
if (parent == NULL)
@@ -1484,7 +1482,7 @@ gtk_tree_model_sort_iter_n_children (GtkTreeModel *tree_model,
GtkTreeIter child_iter;
g_return_val_if_fail (priv->child_model != NULL, 0);
if (iter)
if (iter)
g_return_val_if_fail (VALID_ITER (iter, tree_model_sort), 0);
if (iter == NULL)
@@ -1506,7 +1504,7 @@ gtk_tree_model_sort_iter_nth_child (GtkTreeModel *tree_model,
/* We have this for the iter == parent case */
GtkTreeIter children;
if (parent)
if (parent)
g_return_val_if_fail (VALID_ITER (parent, tree_model_sort), FALSE);
/* Use this instead of has_child to force us to build the level, if needed */
@@ -1534,7 +1532,7 @@ static gboolean
gtk_tree_model_sort_iter_parent (GtkTreeModel *tree_model,
GtkTreeIter *iter,
GtkTreeIter *child)
{
{
GtkTreeModelSort *tree_model_sort = (GtkTreeModelSort *) tree_model;
GtkTreeModelSortPrivate *priv = tree_model_sort->priv;
SortLevel *level;
@@ -1672,7 +1670,7 @@ gtk_tree_model_sort_get_sort_column_id (GtkTreeSortable *sortable,
if (priv->sort_column_id == GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID ||
priv->sort_column_id == GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID)
return FALSE;
return TRUE;
}
@@ -2113,9 +2111,9 @@ gtk_tree_model_sort_elt_get_path (SortLevel *level,
* @tree_model_sort: The `GtkTreeModelSort`.
* @child_model: (nullable): A `GtkTreeModel`
*
* Sets the model of @tree_model_sort to be @model. If @model is %NULL,
* then the old model is unset. The sort function is unset as a result
* of this call. The model will be in an unsorted state until a sort
* Sets the model of @tree_model_sort to be @model. If @model is %NULL,
* then the old model is unset. The sort function is unset as a result
* of this call. The model will be in an unsorted state until a sort
* function is set.
*
* Deprecated: 4.10
@@ -2276,12 +2274,12 @@ gtk_real_tree_model_sort_convert_child_path_to_path (GtkTreeModelSort *tree_mode
* gtk_tree_model_sort_convert_child_path_to_path:
* @tree_model_sort: A `GtkTreeModelSort`
* @child_path: A `GtkTreePath` to convert
*
*
* Converts @child_path to a path relative to @tree_model_sort. That is,
* @child_path points to a path in the child model. The returned path will
* point to the same row in the sorted model. If @child_path isnt a valid
* point to the same row in the sorted model. If @child_path isnt a valid
* path on the child model, then %NULL is returned.
*
*
* Returns: (nullable) (transfer full): A newly allocated `GtkTreePath`
*
* Deprecated: 4.10
@@ -2302,7 +2300,7 @@ gtk_tree_model_sort_convert_child_path_to_path (GtkTreeModelSort *tree_model_sor
* @tree_model_sort: A `GtkTreeModelSort`
* @sort_iter: (out): An uninitialized `GtkTreeIter`
* @child_iter: A valid `GtkTreeIter` pointing to a row on the child model
*
*
* Sets @sort_iter to point to the row in @tree_model_sort that corresponds to
* the row pointed at by @child_iter. If @sort_iter was not set, %FALSE
* is returned. Note: a boolean is only returned since 2.14.
@@ -2352,13 +2350,13 @@ gtk_tree_model_sort_convert_child_iter_to_iter (GtkTreeModelSort *tree_model_sor
* gtk_tree_model_sort_convert_path_to_child_path:
* @tree_model_sort: A `GtkTreeModelSort`
* @sorted_path: A `GtkTreePath` to convert
*
* Converts @sorted_path to a path on the child model of @tree_model_sort.
* That is, @sorted_path points to a location in @tree_model_sort. The
* returned path will point to the same location in the model not being
* sorted. If @sorted_path does not point to a location in the child model,
*
* Converts @sorted_path to a path on the child model of @tree_model_sort.
* That is, @sorted_path points to a location in @tree_model_sort. The
* returned path will point to the same location in the model not being
* sorted. If @sorted_path does not point to a location in the child model,
* %NULL is returned.
*
*
* Returns: (nullable) (transfer full): A newly allocated `GtkTreePath`
*
* Deprecated: 4.10
@@ -2416,7 +2414,7 @@ gtk_tree_model_sort_convert_path_to_child_path (GtkTreeModelSort *tree_model_sor
gtk_tree_path_append_index (retval, elt->offset);
level = elt->children;
}
return retval;
}
@@ -2425,7 +2423,7 @@ gtk_tree_model_sort_convert_path_to_child_path (GtkTreeModelSort *tree_model_sor
* @tree_model_sort: A `GtkTreeModelSort`
* @child_iter: (out): An uninitialized `GtkTreeIter`
* @sorted_iter: A valid `GtkTreeIter` pointing to a row on @tree_model_sort.
*
*
* Sets @child_iter to point to the row pointed to by @sorted_iter.
*
* Deprecated: 4.10
@@ -2691,7 +2689,7 @@ gtk_tree_model_sort_clear_cache_helper (GtkTreeModelSort *tree_model_sort,
/**
* gtk_tree_model_sort_reset_default_sort_func:
* @tree_model_sort: A `GtkTreeModelSort`
*
*
* This resets the default sort function to be in the unsorted state. That
* is, it is in the same order as the child model. It will re-sort the model
* to be in the same order as the child model only if the `GtkTreeModelSort`
@@ -2726,7 +2724,7 @@ gtk_tree_model_sort_reset_default_sort_func (GtkTreeModelSort *tree_model_sort)
/**
* gtk_tree_model_sort_clear_cache:
* @tree_model_sort: A `GtkTreeModelSort`
*
*
* This function should almost never be called. It clears the @tree_model_sort
* of any cached iterators that havent been reffed with
* gtk_tree_model_ref_node(). This might be useful if the child model being
+9 -9
View File
@@ -58,30 +58,30 @@ struct _GtkTreeModelSortClass
GDK_AVAILABLE_IN_ALL
GType gtk_tree_model_sort_get_type (void) G_GNUC_CONST;
GDK_DEPRECATED_IN_4_10_FOR(GtkFilterListModel)
GDK_DEPRECATED_IN_4_10
GtkTreeModel *gtk_tree_model_sort_new_with_model (GtkTreeModel *child_model);
GDK_DEPRECATED_IN_4_10_FOR(GtkFilterListModel)
GDK_DEPRECATED_IN_4_10
GtkTreeModel *gtk_tree_model_sort_get_model (GtkTreeModelSort *tree_model);
GDK_DEPRECATED_IN_4_10_FOR(GtkFilterListModel)
GDK_DEPRECATED_IN_4_10
GtkTreePath *gtk_tree_model_sort_convert_child_path_to_path (GtkTreeModelSort *tree_model_sort,
GtkTreePath *child_path);
GDK_DEPRECATED_IN_4_10_FOR(GtkFilterListModel)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_model_sort_convert_child_iter_to_iter (GtkTreeModelSort *tree_model_sort,
GtkTreeIter *sort_iter,
GtkTreeIter *child_iter);
GDK_DEPRECATED_IN_4_10_FOR(GtkFilterListModel)
GDK_DEPRECATED_IN_4_10
GtkTreePath *gtk_tree_model_sort_convert_path_to_child_path (GtkTreeModelSort *tree_model_sort,
GtkTreePath *sorted_path);
GDK_DEPRECATED_IN_4_10_FOR(GtkFilterListModel)
GDK_DEPRECATED_IN_4_10
void gtk_tree_model_sort_convert_iter_to_child_iter (GtkTreeModelSort *tree_model_sort,
GtkTreeIter *child_iter,
GtkTreeIter *sorted_iter);
GDK_DEPRECATED_IN_4_10_FOR(GtkFilterListModel)
GDK_DEPRECATED_IN_4_10
void gtk_tree_model_sort_reset_default_sort_func (GtkTreeModelSort *tree_model_sort);
GDK_DEPRECATED_IN_4_10_FOR(GtkFilterListModel)
GDK_DEPRECATED_IN_4_10
void gtk_tree_model_sort_clear_cache (GtkTreeModelSort *tree_model_sort);
GDK_DEPRECATED_IN_4_10_FOR(GtkFilterListModel)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_model_sort_iter_is_valid (GtkTreeModelSort *tree_model_sort,
GtkTreeIter *iter);
-1
View File
@@ -268,7 +268,6 @@ gtk_tree_popover_init (GtkTreePopover *popover)
sw = gtk_scrolled_window_new ();
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
gtk_scrolled_window_set_propagate_natural_width (GTK_SCROLLED_WINDOW (sw), TRUE);
gtk_scrolled_window_set_propagate_natural_height (GTK_SCROLLED_WINDOW (sw), TRUE);
gtk_popover_set_child (GTK_POPOVER (popover), sw);
+18 -20
View File
@@ -55,8 +55,6 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
* Additionally, it may on occasion emit a `GtkTreeSelection`::changed signal
* when nothing has happened (mostly as a result of programmers calling
* select_row on an already selected row).
*
* Deprecated: 4.10: Use [iface@Gtk.SelectionModel] instead
*/
typedef struct _GtkTreeSelectionClass GtkTreeSelectionClass;
@@ -126,7 +124,7 @@ gtk_tree_selection_class_init (GtkTreeSelectionClass *class)
class->changed = NULL;
/* Properties */
/**
* GtkTreeSelection:mode:
*
@@ -140,9 +138,9 @@ gtk_tree_selection_class_init (GtkTreeSelectionClass *class)
/* Install all properties */
g_object_class_install_properties (object_class, N_PROPERTIES, properties);
/* Signals */
/**
* GtkTreeSelection::changed:
* @treeselection: the object which received the signal.
@@ -333,7 +331,7 @@ gtk_tree_selection_set_mode (GtkTreeSelection *selection,
anchor_path,
&tree,
&node);
if (node && GTK_TREE_RBNODE_FLAG_SET (node, GTK_TREE_RBNODE_IS_SELECTED))
selected = TRUE;
}
@@ -357,7 +355,7 @@ gtk_tree_selection_set_mode (GtkTreeSelection *selection,
}
selection->type = type;
g_object_notify_by_pspec (G_OBJECT (selection), properties[PROP_MODE]);
}
@@ -452,9 +450,9 @@ gtk_tree_selection_get_user_data (GtkTreeSelection *selection)
/**
* gtk_tree_selection_get_tree_view:
* @selection: A `GtkTreeSelection`
*
*
* Returns the tree view associated with @selection.
*
*
* Returns: (transfer none): A `GtkTreeView`
*
* Deprecated: 4.10: Use GtkListView or GtkColumnView
@@ -631,7 +629,7 @@ gtk_tree_selection_get_selected_rows (GtkTreeSelection *selection,
{
gtk_tree_path_free (path);
goto done;
goto done;
}
gtk_tree_path_up (path);
@@ -780,7 +778,7 @@ gtk_tree_selection_selected_foreach (GtkTreeSelection *selection,
G_CALLBACK (model_changed),
&stop);
changed_id = g_signal_connect_swapped (selection->tree_view, "notify::model",
G_CALLBACK (model_changed),
G_CALLBACK (model_changed),
&stop);
/* find the node internally */
@@ -1003,10 +1001,10 @@ gtk_tree_selection_unselect_iter (GtkTreeSelection *selection,
* gtk_tree_selection_path_is_selected:
* @selection: A `GtkTreeSelection`.
* @path: A `GtkTreePath` to check selection on.
*
*
* Returns %TRUE if the row pointed to by @path is currently selected. If @path
* does not point to a valid location, %FALSE is returned
*
*
* Returns: %TRUE if @path is selected.
*
* Deprecated: 4.10: Use GtkListView or GtkColumnView
@@ -1042,9 +1040,9 @@ gtk_tree_selection_path_is_selected (GtkTreeSelection *selection,
* gtk_tree_selection_iter_is_selected:
* @selection: A `GtkTreeSelection`
* @iter: A valid `GtkTreeIter`
*
*
* Returns %TRUE if the row at @iter is currently selected.
*
*
* Returns: %TRUE, if @iter is selected
*
* Deprecated: 4.10: Use GtkListView or GtkColumnView
@@ -1257,7 +1255,7 @@ gtk_tree_selection_unselect_all (GtkTreeSelection *selection)
if (_gtk_tree_view_get_rbtree (selection->tree_view) == NULL ||
gtk_tree_view_get_model (selection->tree_view) == NULL)
return;
if (gtk_tree_selection_real_unselect_all (selection))
g_signal_emit (selection, tree_selection_signals[CHANGED], 0);
}
@@ -1359,7 +1357,7 @@ gtk_tree_selection_real_modify_range (GtkTreeSelection *selection,
* @end_path: The final node of the range.
*
* Selects a range of nodes, determined by @start_path and @end_path inclusive.
* @selection must be set to %GTK_SELECTION_MULTIPLE mode.
* @selection must be set to %GTK_SELECTION_MULTIPLE mode.
*
* Deprecated: 4.10: Use GtkListView or GtkColumnView
**/
@@ -1564,14 +1562,14 @@ _gtk_tree_selection_internal_select_node (GtkTreeSelection *selection,
gtk_tree_path_free (anchor_path);
if (dirty)
g_signal_emit (selection, tree_selection_signals[CHANGED], 0);
g_signal_emit (selection, tree_selection_signals[CHANGED], 0);
}
void
void
_gtk_tree_selection_emit_changed (GtkTreeSelection *selection)
{
g_signal_emit (selection, tree_selection_signals[CHANGED], 0);
g_signal_emit (selection, tree_selection_signals[CHANGED], 0);
}
/* NOTE: Any {un,}selection ever done _MUST_ be done through this function!
+20 -23
View File
@@ -32,9 +32,6 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
* `GtkTreeSortable` is an interface to be implemented by tree models which
* support sorting. The `GtkTreeView` uses the methods provided by this interface
* to sort the model.
*
* Deprecated: 4.10: There is no replacement for this interface. You should
* use [class@Gtk.SortListModel] to wrap your list model instead
*/
@@ -99,7 +96,7 @@ gtk_tree_sortable_base_init (gpointer g_class)
/**
* gtk_tree_sortable_sort_column_changed:
* @sortable: A `GtkTreeSortable`
*
*
* Emits a `GtkTreeSortable::sort-column-changed` signal on @sortable.
*
* Deprecated: 4.10
@@ -117,12 +114,12 @@ gtk_tree_sortable_sort_column_changed (GtkTreeSortable *sortable)
* @sortable: A `GtkTreeSortable`
* @sort_column_id: (out): The sort column id to be filled in
* @order: (out): The `GtkSortType` to be filled in
*
*
* Fills in @sort_column_id and @order with the current sort column and the
* order. It returns %TRUE unless the @sort_column_id is
* %GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID or
* order. It returns %TRUE unless the @sort_column_id is
* %GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID or
* %GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID.
*
*
* Returns: %TRUE if the sort column is not one of the special sort
* column ids.
*
@@ -150,15 +147,15 @@ gtk_tree_sortable_get_sort_column_id (GtkTreeSortable *sortable,
* @sortable: A `GtkTreeSortable`
* @sort_column_id: the sort column id to set
* @order: The sort order of the column
*
*
* Sets the current sort column to be @sort_column_id. The @sortable will
* resort itself to reflect this change, after emitting a
* `GtkTreeSortable::sort-column-changed` signal. @sort_column_id may either be
* a regular column id, or one of the following special values:
*
*
* - %GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID: the default sort function
* will be used, if it is set
*
*
* - %GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID: no sorting will occur
*
* Deprecated: 4.10
@@ -176,7 +173,7 @@ gtk_tree_sortable_set_sort_column_id (GtkTreeSortable *sortable,
g_return_if_fail (iface != NULL);
g_return_if_fail (iface->set_sort_column_id != NULL);
(* iface->set_sort_column_id) (sortable, sort_column_id, order);
}
@@ -187,9 +184,9 @@ gtk_tree_sortable_set_sort_column_id (GtkTreeSortable *sortable,
* @sort_func: The comparison function
* @user_data: (closure): User data to pass to @sort_func
* @destroy: (nullable): Destroy notifier of @user_data
*
*
* Sets the comparison function used when sorting to be @sort_func. If the
* current sort column id of @sortable is the same as @sort_column_id, then
* current sort column id of @sortable is the same as @sort_column_id, then
* the model will sort using this function.
*
* Deprecated: 4.10
@@ -221,15 +218,15 @@ gtk_tree_sortable_set_sort_func (GtkTreeSortable *sortable,
* @sort_func: The comparison function
* @user_data: (closure): User data to pass to @sort_func
* @destroy: (nullable): Destroy notifier of @user_data
*
* Sets the default comparison function used when sorting to be @sort_func.
*
* Sets the default comparison function used when sorting to be @sort_func.
* If the current sort column id of @sortable is
* %GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, then the model will sort using
* %GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, then the model will sort using
* this function.
*
* If @sort_func is %NULL, then there will be no default comparison function.
* This means that once the model has been sorted, it cant go back to the
* default state. In this case, when the current sort column id of @sortable
* default state. In this case, when the current sort column id of @sortable
* is %GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, the model will be unsorted.
*
* Deprecated: 4.10
@@ -248,18 +245,18 @@ gtk_tree_sortable_set_default_sort_func (GtkTreeSortable *sortable,
g_return_if_fail (iface != NULL);
g_return_if_fail (iface->set_default_sort_func != NULL);
(* iface->set_default_sort_func) (sortable, sort_func, user_data, destroy);
}
/**
* gtk_tree_sortable_has_default_sort_func:
* @sortable: A `GtkTreeSortable`
*
*
* Returns %TRUE if the model has a default sort function. This is used
* primarily by GtkTreeViewColumns in order to determine if a model can
* primarily by GtkTreeViewColumns in order to determine if a model can
* go back to the default state, or not.
*
*
* Returns: %TRUE, if the model has a default sort function
*
* Deprecated: 4.10
@@ -275,6 +272,6 @@ gtk_tree_sortable_has_default_sort_func (GtkTreeSortable *sortable)
g_return_val_if_fail (iface != NULL, FALSE);
g_return_val_if_fail (iface->has_default_sort_func != NULL, FALSE);
return (* iface->has_default_sort_func) (sortable);
}
+123 -204
View File
@@ -31,20 +31,17 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
/**
* GtkTreeStore:
*
* A tree-like data structure that can be used with the [class@Gtk.TreeView].
* A tree-like data structure that can be used with the GtkTreeView
*
* The `GtkTreeStore` object is a list model for use with a `GtkTreeView`
* widget. It implements the [iface@Gtk.TreeModel] interface, and consequently,
* can use all of the methods available there. It also implements the
* [iface@Gtk.TreeSortable] interface so it can be sorted by the view.
* Finally, it also implements the tree [drag][iface@Gtk.TreeDragSource]
* and [drop][iface@Gtk.TreeDragDest] interfaces.
* widget. It implements the `GtkTreeModel` interface, and consequently,
* can use all of the methods available there. It also implements the
* `GtkTreeSortable` interface so it can be sorted by the view. Finally,
* it also implements the tree
* [drag and drop][gtk3-GtkTreeView-drag-and-drop]
* interfaces.
*
* `GtkTreeStore` is deprecated since GTK 4.10, and should not be used in newly
* written code. You should use [class@Gtk.TreeListModel] for a tree-like model
* object.
*
* ## GtkTreeStore as GtkBuildable
* # GtkTreeStore as GtkBuildable
*
* The GtkTreeStore implementation of the `GtkBuildable` interface allows
* to specify the model columns with a <columns> element that may contain
@@ -52,8 +49,7 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
* attribute specifies the data type for the column.
*
* An example of a UI Definition fragment for a tree store:
*
* ```xml
* |[
* <object class="GtkTreeStore">
* <columns>
* <column type="gchararray"/>
@@ -61,9 +57,7 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
* <column type="gint"/>
* </columns>
* </object>
* ```
*
* Deprecated: 4.10: Use [class@Gtk.TreeListModel] instead
* ]|
*/
struct _GtkTreeStorePrivate
@@ -309,26 +303,22 @@ gtk_tree_store_init (GtkTreeStore *tree_store)
* @n_columns: number of columns in the tree store
* @...: all `GType` types for the columns, from first to last
*
* Creates a new tree store.
*
* The tree store will have @n_columns, with each column using the
* corresponding type passed to this function.
*
* Note that only types derived from standard GObject fundamental types
* Creates a new tree store as with @n_columns columns each of the types passed
* in. Note that only types derived from standard GObject fundamental types
* are supported.
*
* As an example:
* As an example,
*
* ```c
* ```
* gtk_tree_store_new (3, G_TYPE_INT, G_TYPE_STRING, GDK_TYPE_TEXTURE);
* ```
*
* will create a new `GtkTreeStore` with three columns of type
* will create a new `GtkTreeStore` with three columns, of type
* `int`, `gchararray`, and `GdkTexture` respectively.
*
* Returns: a new `GtkTreeStore`
*
* Deprecated: 4.10: Use [class@Gtk.TreeListModel] instead
* Deprecated: 4.10
**/
GtkTreeStore *
gtk_tree_store_new (int n_columns,
@@ -366,13 +356,11 @@ gtk_tree_store_new (int n_columns,
* @n_columns: number of columns in the tree store
* @types: (array length=n_columns): an array of `GType` types for the columns, from first to last
*
* Creates a new tree store.
*
* This constructor is meant for language bindings.
* Non vararg creation function. Used primarily by language bindings.
*
* Returns: (transfer full): a new `GtkTreeStore`
*
* Deprecated: 4.10: Use [class@Gtk.TreeListModel] instead
* Deprecated: 4.10
**/
GtkTreeStore *
gtk_tree_store_newv (int n_columns,
@@ -407,17 +395,12 @@ gtk_tree_store_newv (int n_columns,
* @n_columns: Number of columns for the tree store
* @types: (array length=n_columns): An array of `GType` types, one for each column
*
* Sets the type of the columns in a tree store.
*
* This function is meant primarily for types that inherit from
* This function is meant primarily for `GObjects` that inherit from
* `GtkTreeStore`, and should only be used when constructing a new
* `GtkTreeStore`.
* `GtkTreeStore`. It will not function after a row has been added,
* or a method on the `GtkTreeModel` interface is called.
*
* This functions cannot be called after a row has been added,
* or a method on the `GtkTreeModel` interface is called on the
* tree store.
*
* Deprecated: 4.10: Use [class@Gtk.TreeListModel] instead
* Deprecated: 4.10
**/
void
gtk_tree_store_set_column_types (GtkTreeStore *tree_store,
@@ -468,31 +451,12 @@ gtk_tree_store_set_n_columns (GtkTreeStore *tree_store,
* @column: column number
* @type: type of the data to be stored in @column
*
* Sets the type of the given column in a tree store.
* Supported types include: %G_TYPE_UINT, %G_TYPE_INT, %G_TYPE_UCHAR,
* %G_TYPE_CHAR, %G_TYPE_BOOLEAN, %G_TYPE_POINTER, %G_TYPE_FLOAT,
* %G_TYPE_DOUBLE, %G_TYPE_STRING, %G_TYPE_OBJECT, and %G_TYPE_BOXED, along with
* subclasses of those types such as %GDK_TYPE_PIXBUF.
*
* This function is meant primarily for types that inherit from
* `GtkTreeStore`, and should only be used when constructing a new
* `GtkTreeStore`.
*
* This functions cannot be called after a row has been added,
* or a method on the `GtkTreeModel` interface is called on the
* tree store.
*
* Supported types include:
*
* - `G_TYPE_UINT`
* - `G_TYPE_INT`
* - `G_TYPE_UCHAR`
* - `G_TYPE_CHAR`
* - `G_TYPE_BOOLEAN`
* - `G_TYPE_POINTER`
* - `G_TYPE_FLOAT`
* - `G_TYPE_DOUBLE`
* - `G_TYPE_STRING`
* - `G_TYPE_BOXED` and its derived types
* - `G_TYPE_OBJECT` and its derived types
*
* Deprecated: 4.10: Use [class@Gtk.TreeListModel] instead
* Deprecated: 4.10
**/
static void
gtk_tree_store_set_column_type (GtkTreeStore *tree_store,
@@ -986,11 +950,10 @@ gtk_tree_store_real_set_value (GtkTreeStore *tree_store,
* @value: new value for the cell
*
* Sets the data in the cell specified by @iter and @column.
*
* The type of @value must be convertible to the type of the
* column.
*
* Deprecated: 4.10: Use [class@Gtk.TreeListModel] instead
* Deprecated: 4.10
**/
void
gtk_tree_store_set_value (GtkTreeStore *tree_store,
@@ -1134,13 +1097,11 @@ gtk_tree_store_set_valist_internal (GtkTreeStore *tree_store,
* @n_values: the length of the @columns and @values arrays
*
* A variant of gtk_tree_store_set_valist() which takes
* the columns and values as two arrays, instead of using variadic
* arguments.
*
* This function is mainly intended for language bindings or in case
* the columns and values as two arrays, instead of varargs. This
* function is mainly intended for language bindings or in case
* the number of columns to change is not known until run-time.
*
* Deprecated: 4.10: Use [class@Gtk.TreeListModel] instead
* Deprecated: 4.10
**/
void
gtk_tree_store_set_valuesv (GtkTreeStore *tree_store,
@@ -1180,9 +1141,10 @@ gtk_tree_store_set_valuesv (GtkTreeStore *tree_store,
* @iter: A valid `GtkTreeIter` for the row being modified
* @var_args: va_list of column/value pairs
*
* A version of gtk_tree_store_set() using `va_list`.
* See gtk_tree_store_set(); this version takes a va_list for
* use by language bindings.
*
* Deprecated: 4.10: Use [class@Gtk.TreeListModel] instead
* Deprecated: 4.10
**/
void
gtk_tree_store_set_valist (GtkTreeStore *tree_store,
@@ -1221,23 +1183,16 @@ gtk_tree_store_set_valist (GtkTreeStore *tree_store,
* @...: pairs of column number and value, terminated with -1
*
* Sets the value of one or more cells in the row referenced by @iter.
*
* The variable argument list should contain integer column numbers,
* each column number followed by the value to be set.
* The list is terminated by a -1. For example, to set column 0 with type
* %G_TYPE_STRING to Foo, you would write
* `gtk_tree_store_set (store, iter, 0, "Foo", -1)`.
*
* The list is terminated by a value of `-1`.
* The value will be referenced by the store if it is a %G_TYPE_OBJECT, and it
* will be copied if it is a %G_TYPE_STRING or %G_TYPE_BOXED.
*
* For example, to set column 0 with type `G_TYPE_STRING` to Foo, you would
* write
*
* ```c
* gtk_tree_store_set (store, iter, 0, "Foo", -1);
* ```
*
* The value will be referenced by the store if it is a `G_TYPE_OBJECT`, and it
* will be copied if it is a `G_TYPE_STRING` or `G_TYPE_BOXED`.
*
* Deprecated: 4.10: Use [class@Gtk.TreeListModel] instead
* Deprecated: 4.10
**/
void
gtk_tree_store_set (GtkTreeStore *tree_store,
@@ -1256,14 +1211,13 @@ gtk_tree_store_set (GtkTreeStore *tree_store,
* @tree_store: A `GtkTreeStore`
* @iter: A valid `GtkTreeIter`
*
* Removes @iter from @tree_store.
* Removes @iter from @tree_store. After being removed, @iter is set to the
* next valid row at that level, or invalidated if it previously pointed to the
* last one.
*
* After being removed, @iter is set to the next valid row at that level, or
* invalidated if it previously pointed to the last one.
* Returns: %TRUE if @iter is still valid, %FALSE if not.
*
* Returns: true if @iter is still valid, and false otherwise
*
* Deprecated: 4.10: Use [class@Gtk.TreeListModel] instead
* Deprecated: 4.10
**/
gboolean
gtk_tree_store_remove (GtkTreeStore *tree_store,
@@ -1329,19 +1283,15 @@ gtk_tree_store_remove (GtkTreeStore *tree_store,
* @parent: (nullable): A valid `GtkTreeIter`
* @position: position to insert the new row, or -1 for last
*
* Creates a new row at @position.
* Creates a new row at @position. If parent is non-%NULL, then the row will be
* made a child of @parent. Otherwise, the row will be created at the toplevel.
* If @position is -1 or is larger than the number of rows at that level, then
* the new row will be inserted to the end of the list. @iter will be changed
* to point to this new row. The row will be empty after this function is
* called. To fill in values, you need to call gtk_tree_store_set() or
* gtk_tree_store_set_value().
*
* If parent is non-%NULL, then the row will be made a child of @parent.
* Otherwise, the row will be created at the toplevel.
*
* If @position is `-1` or is larger than the number of rows at that level,
* then the new row will be inserted to the end of the list.
*
* The @iter parameter will be changed to point to this new row. The row
* will be empty after this function is called. To fill in values, you
* need to call gtk_tree_store_set() or gtk_tree_store_set_value().
*
* Deprecated: 4.10: Use [class@Gtk.TreeListModel] instead
* Deprecated: 4.10
**/
void
gtk_tree_store_insert (GtkTreeStore *tree_store,
@@ -1396,21 +1346,17 @@ gtk_tree_store_insert (GtkTreeStore *tree_store,
* @parent: (nullable): A valid `GtkTreeIter`
* @sibling: (nullable): A valid `GtkTreeIter`
*
* Inserts a new row before @sibling.
* Inserts a new row before @sibling. If @sibling is %NULL, then the row will
* be appended to @parent s children. If @parent and @sibling are %NULL, then
* the row will be appended to the toplevel. If both @sibling and @parent are
* set, then @parent must be the parent of @sibling. When @sibling is set,
* @parent is optional.
*
* If @sibling is %NULL, then the row will be appended to @parents children.
*
* If @parent and @sibling are %NULL, then the row will be appended to the
* toplevel.
*
* If both @sibling and @parent are set, then @parent must be the parent
* of @sibling. When @sibling is set, @parent is optional.
*
* The @iter parameter will be changed to point to this new row. The row will
* be empty after this function is called. To fill in values, you need to call
* @iter will be changed to point to this new row. The row will be empty after
* this function is called. To fill in values, you need to call
* gtk_tree_store_set() or gtk_tree_store_set_value().
*
* Deprecated: 4.10: Use [class@Gtk.TreeListModel] instead
* Deprecated: 4.10
**/
void
gtk_tree_store_insert_before (GtkTreeStore *tree_store,
@@ -1482,21 +1428,17 @@ gtk_tree_store_insert_before (GtkTreeStore *tree_store,
* @parent: (nullable): A valid `GtkTreeIter`
* @sibling: (nullable): A valid `GtkTreeIter`
*
* Inserts a new row after @sibling.
* Inserts a new row after @sibling. If @sibling is %NULL, then the row will be
* prepended to @parent s children. If @parent and @sibling are %NULL, then
* the row will be prepended to the toplevel. If both @sibling and @parent are
* set, then @parent must be the parent of @sibling. When @sibling is set,
* @parent is optional.
*
* If @sibling is %NULL, then the row will be prepended to @parents children.
*
* If @parent and @sibling are %NULL, then the row will be prepended to the
* toplevel.
*
* If both @sibling and @parent are set, then @parent must be the parent
* of @sibling. When @sibling is set, @parent is optional.
*
* The @iter parameter will be changed to point to this new row. The row will
* be empty after this function is called. To fill in values, you need to call
* @iter will be changed to point to this new row. The row will be empty after
* this function is called. To fill in values, you need to call
* gtk_tree_store_set() or gtk_tree_store_set_value().
*
* Deprecated: 4.10: Use [class@Gtk.TreeListModel] instead
* Deprecated: 4.10
**/
void
gtk_tree_store_insert_after (GtkTreeStore *tree_store,
@@ -1570,34 +1512,26 @@ gtk_tree_store_insert_after (GtkTreeStore *tree_store,
* @position: position to insert the new row, or -1 to append after existing rows
* @...: pairs of column number and value, terminated with -1
*
* Creates a new row at the given @position.
*
* The @iter parameter will be changed to point to this new row.
*
* If @position is -1, or larger than the number of rows on the list, then
* Creates a new row at @position. @iter will be changed to point to this
* new row. If @position is -1, or larger than the number of rows on the list, then
* the new row will be appended to the list. The row will be filled with
* the values given to this function.
*
* Calling
*
* gtk_tree_store_insert_with_values (tree_store, iter, position, ...)
*
* `gtk_tree_store_insert_with_values (tree_store, iter, position, ...)`
* has the same effect as calling
*
* ```c
* |[<!-- language="C" -->
* gtk_tree_store_insert (tree_store, iter, position);
* gtk_tree_store_set (tree_store, iter, ...);
* ```
*
* ]|
* with the different that the former will only emit a row_inserted signal,
* while the latter will emit row_inserted, row_changed and if the tree store
* is sorted, rows_reordered.
* is sorted, rows_reordered. Since emitting the rows_reordered signal
* repeatedly can affect the performance of the program,
* gtk_tree_store_insert_with_values() should generally be preferred when
* inserting rows in a sorted tree store.
*
* Since emitting the rows_reordered signal repeatedly can affect the
* performance of the program, gtk_tree_store_insert_with_values() should
* generally be preferred when inserting rows in a sorted tree store.
*
* Deprecated: 4.10: Use [class@Gtk.TreeListModel] instead
* Deprecated: 4.10
*/
void
gtk_tree_store_insert_with_values (GtkTreeStore *tree_store,
@@ -1673,11 +1607,10 @@ gtk_tree_store_insert_with_values (GtkTreeStore *tree_store,
* @n_values: the length of the @columns and @values arrays
*
* A variant of gtk_tree_store_insert_with_values() which takes
* the columns and values as two arrays, instead of varargs.
* the columns and values as two arrays, instead of varargs. This
* function is mainly intended for language bindings.
*
* This function is mainly intended for language bindings.
*
* Deprecated: 4.10: Use [class@Gtk.TreeListModel] instead
* Deprecated: 4.10
*/
void
gtk_tree_store_insert_with_valuesv (GtkTreeStore *tree_store,
@@ -1747,15 +1680,13 @@ gtk_tree_store_insert_with_valuesv (GtkTreeStore *tree_store,
* @iter: (out): An unset `GtkTreeIter` to set to the prepended row
* @parent: (nullable): A valid `GtkTreeIter`
*
* Prepends a new row to @tree_store.
*
* If @parent is non-%NULL, then it will prepend the new row before the first
* child of @parent, otherwise it will prepend a row to the top level. The
* `iter` parameter will be changed to point to this new row. The row will
* be empty after this function is called. To fill in values, you need to
* Prepends a new row to @tree_store. If @parent is non-%NULL, then it will prepend
* the new row before the first child of @parent, otherwise it will prepend a row
* to the top level. @iter will be changed to point to this new row. The row
* will be empty after this function is called. To fill in values, you need to
* call gtk_tree_store_set() or gtk_tree_store_set_value().
*
* Deprecated: 4.10: Use [class@Gtk.TreeListModel] instead
* Deprecated: 4.10
**/
void
gtk_tree_store_prepend (GtkTreeStore *tree_store,
@@ -1810,16 +1741,13 @@ gtk_tree_store_prepend (GtkTreeStore *tree_store,
* @iter: (out): An unset `GtkTreeIter` to set to the appended row
* @parent: (nullable): A valid `GtkTreeIter`
*
* Appends a new row to @tree_store.
*
* If @parent is non-%NULL, then it will append the new row after the last
* child of @parent, otherwise it will append a row to the top level.
*
* The @iter parameter will be changed to point to this new row. The row will
* be empty after this function is called. To fill in values, you need to call
* Appends a new row to @tree_store. If @parent is non-%NULL, then it will append the
* new row after the last child of @parent, otherwise it will append a row to
* the top level. @iter will be changed to point to this new row. The row will
* be empty after this function is called. To fill in values, you need to call
* gtk_tree_store_set() or gtk_tree_store_set_value().
*
* Deprecated: 4.10: Use [class@Gtk.TreeListModel] instead
* Deprecated: 4.10
**/
void
gtk_tree_store_append (GtkTreeStore *tree_store,
@@ -1874,11 +1802,12 @@ gtk_tree_store_append (GtkTreeStore *tree_store,
* @iter: A valid `GtkTreeIter`
* @descendant: A valid `GtkTreeIter`
*
* Checks if @iter is an ancestor of @descendant.
* Returns %TRUE if @iter is an ancestor of @descendant. That is, @iter is the
* parent (or grandparent or great-grandparent) of @descendant.
*
* Returns: true if @iter is an ancestor of @descendant, and false otherwise
* Returns: %TRUE, if @iter is an ancestor of @descendant
*
* Deprecated: 4.10: Use [class@Gtk.TreeListModel] instead
* Deprecated: 4.10
**/
gboolean
gtk_tree_store_is_ancestor (GtkTreeStore *tree_store,
@@ -1899,14 +1828,12 @@ gtk_tree_store_is_ancestor (GtkTreeStore *tree_store,
* @tree_store: A `GtkTreeStore`
* @iter: A valid `GtkTreeIter`
*
* Returns the depth of the position pointed by the iterator
* Returns the depth of @iter. This will be 0 for anything on the root level, 1
* for anything down a level, etc.
*
* The depth will be 0 for anything on the root level, 1 for anything down
* a level, etc.
* Returns: The depth of @iter
*
* Returns: The depth of the position pointed by the iterator
*
* Deprecated: 4.10: Use [class@Gtk.TreeListModel] instead
* Deprecated: 4.10
**/
int
gtk_tree_store_iter_depth (GtkTreeStore *tree_store,
@@ -1976,7 +1903,7 @@ gtk_tree_store_increment_stamp (GtkTreeStore *tree_store)
*
* Removes all rows from @tree_store
*
* Deprecated: 4.10: Use [class@Gtk.TreeListModel] instead
* Deprecated: 4.10
**/
void
gtk_tree_store_clear (GtkTreeStore *tree_store)
@@ -2021,9 +1948,9 @@ gtk_tree_store_iter_is_valid_helper (GtkTreeIter *iter,
* This function is slow. Only use it for debugging and/or testing
* purposes.
*
* Returns: true if the iter is valid, and false otherwise
* Returns: %TRUE if the iter is valid, %FALSE if the iter is invalid.
*
* Deprecated: 4.10: Use [class@Gtk.TreeListModel] instead
* Deprecated: 4.10
**/
gboolean
gtk_tree_store_iter_is_valid (GtkTreeStore *tree_store,
@@ -2343,17 +2270,16 @@ gtk_tree_store_reorder_func (gconstpointer a,
/**
* gtk_tree_store_reorder: (skip)
* @tree_store: A `GtkTreeStore`
* @parent: (nullable): the parent of the children to re-order
* @new_order: (array): an array of integers mapping the new position
* of each child to its old position before the re-ordering,
* i.e. `new_order[newpos] = oldpos`
* @parent: (nullable): A `GtkTreeIter`
* @new_order: (array): an array of integers mapping the new position of each child
* to its old position before the re-ordering,
* i.e. @new_order`[newpos] = oldpos`.
*
* Reorders the children of @parent in @tree_store to follow the order
* indicated by @new_order.
* indicated by @new_order. Note that this function only works with
* unsorted stores.
*
* Note that this function only works with unsorted stores.
*
* Deprecated: 4.10: Use [class@Gtk.TreeListModel] instead
* Deprecated: 4.10
*/
void
gtk_tree_store_reorder (GtkTreeStore *tree_store,
@@ -2438,11 +2364,10 @@ gtk_tree_store_reorder (GtkTreeStore *tree_store,
* @a: A `GtkTreeIter`.
* @b: Another `GtkTreeIter`.
*
* Swaps @a and @b in the same level of @tree_store.
* Swaps @a and @b in the same level of @tree_store. Note that this function
* only works with unsorted stores.
*
* Note that this function only works with unsorted stores.
*
* Deprecated: 4.10: Use [class@Gtk.TreeListModel] instead
* Deprecated: 4.10
**/
void
gtk_tree_store_swap (GtkTreeStore *tree_store,
@@ -2905,15 +2830,12 @@ free_paths_and_out:
* @iter: A `GtkTreeIter`
* @position: (nullable): A `GtkTreeIter`
*
* Moves @iter in @tree_store to the position before @position.
* Moves @iter in @tree_store to the position before @position. @iter and
* @position should be in the same level. Note that this function only
* works with unsorted stores. If @position is %NULL, @iter will be
* moved to the end of the level.
*
* @iter and @position should be in the same level.
*
* Note that this function only works with unsorted stores.
*
* If @position is %NULL, @iter will be moved to the end of the level.
*
* Deprecated: 4.10: Use [class@Gtk.TreeListModel] instead
* Deprecated: 4.10
**/
void
gtk_tree_store_move_before (GtkTreeStore *tree_store,
@@ -2929,15 +2851,12 @@ gtk_tree_store_move_before (GtkTreeStore *tree_store,
* @iter: A `GtkTreeIter`.
* @position: (nullable): A `GtkTreeIter`.
*
* Moves @iter in @tree_store to the position after @position.
* Moves @iter in @tree_store to the position after @position. @iter and
* @position should be in the same level. Note that this function only
* works with unsorted stores. If @position is %NULL, @iter will be moved
* to the start of the level.
*
* @iter and @position should be in the same level.
*
* Note that this function only works with unsorted stores.
*
* If @position is %NULL, @iter will be moved to the start of the level.
*
* Deprecated: 4.10: Use [class@Gtk.TreeListModel] instead
* Deprecated: 4.10
**/
void
gtk_tree_store_move_after (GtkTreeStore *tree_store,
+23 -23
View File
@@ -60,63 +60,63 @@ struct _GtkTreeStoreClass
GDK_AVAILABLE_IN_ALL
GType gtk_tree_store_get_type (void) G_GNUC_CONST;
GDK_DEPRECATED_IN_4_10_FOR(GtkTreeListModel)
GDK_DEPRECATED_IN_4_10
GtkTreeStore *gtk_tree_store_new (int n_columns,
...);
GDK_DEPRECATED_IN_4_10_FOR(GtkTreeListModel)
GDK_DEPRECATED_IN_4_10
GtkTreeStore *gtk_tree_store_newv (int n_columns,
GType *types);
GDK_DEPRECATED_IN_4_10_FOR(GtkTreeListModel)
GDK_DEPRECATED_IN_4_10
void gtk_tree_store_set_column_types (GtkTreeStore *tree_store,
int n_columns,
GType *types);
/* NOTE: use gtk_tree_model_get to get values from a GtkTreeStore */
GDK_DEPRECATED_IN_4_10_FOR(GtkTreeListModel)
GDK_DEPRECATED_IN_4_10
void gtk_tree_store_set_value (GtkTreeStore *tree_store,
GtkTreeIter *iter,
int column,
GValue *value);
GDK_DEPRECATED_IN_4_10_FOR(GtkTreeListModel)
GDK_DEPRECATED_IN_4_10
void gtk_tree_store_set (GtkTreeStore *tree_store,
GtkTreeIter *iter,
...);
GDK_DEPRECATED_IN_4_10_FOR(GtkTreeListModel)
GDK_DEPRECATED_IN_4_10
void gtk_tree_store_set_valuesv (GtkTreeStore *tree_store,
GtkTreeIter *iter,
int *columns,
GValue *values,
int n_values);
GDK_DEPRECATED_IN_4_10_FOR(GtkTreeListModel)
GDK_DEPRECATED_IN_4_10
void gtk_tree_store_set_valist (GtkTreeStore *tree_store,
GtkTreeIter *iter,
va_list var_args);
GDK_DEPRECATED_IN_4_10_FOR(GtkTreeListModel)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_store_remove (GtkTreeStore *tree_store,
GtkTreeIter *iter);
GDK_DEPRECATED_IN_4_10_FOR(GtkTreeListModel)
GDK_DEPRECATED_IN_4_10
void gtk_tree_store_insert (GtkTreeStore *tree_store,
GtkTreeIter *iter,
GtkTreeIter *parent,
int position);
GDK_DEPRECATED_IN_4_10_FOR(GtkTreeListModel)
GDK_DEPRECATED_IN_4_10
void gtk_tree_store_insert_before (GtkTreeStore *tree_store,
GtkTreeIter *iter,
GtkTreeIter *parent,
GtkTreeIter *sibling);
GDK_DEPRECATED_IN_4_10_FOR(GtkTreeListModel)
GDK_DEPRECATED_IN_4_10
void gtk_tree_store_insert_after (GtkTreeStore *tree_store,
GtkTreeIter *iter,
GtkTreeIter *parent,
GtkTreeIter *sibling);
GDK_DEPRECATED_IN_4_10_FOR(GtkTreeListModel)
GDK_DEPRECATED_IN_4_10
void gtk_tree_store_insert_with_values (GtkTreeStore *tree_store,
GtkTreeIter *iter,
GtkTreeIter *parent,
int position,
...);
GDK_DEPRECATED_IN_4_10_FOR(GtkTreeListModel)
GDK_DEPRECATED_IN_4_10
void gtk_tree_store_insert_with_valuesv (GtkTreeStore *tree_store,
GtkTreeIter *iter,
GtkTreeIter *parent,
@@ -124,39 +124,39 @@ void gtk_tree_store_insert_with_valuesv (GtkTreeStore *tree_store,
int *columns,
GValue *values,
int n_values);
GDK_DEPRECATED_IN_4_10_FOR(GtkTreeListModel)
GDK_DEPRECATED_IN_4_10
void gtk_tree_store_prepend (GtkTreeStore *tree_store,
GtkTreeIter *iter,
GtkTreeIter *parent);
GDK_DEPRECATED_IN_4_10_FOR(GtkTreeListModel)
GDK_DEPRECATED_IN_4_10
void gtk_tree_store_append (GtkTreeStore *tree_store,
GtkTreeIter *iter,
GtkTreeIter *parent);
GDK_DEPRECATED_IN_4_10_FOR(GtkTreeListModel)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_store_is_ancestor (GtkTreeStore *tree_store,
GtkTreeIter *iter,
GtkTreeIter *descendant);
GDK_DEPRECATED_IN_4_10_FOR(GtkTreeListModel)
GDK_DEPRECATED_IN_4_10
int gtk_tree_store_iter_depth (GtkTreeStore *tree_store,
GtkTreeIter *iter);
GDK_DEPRECATED_IN_4_10_FOR(GtkTreeListModel)
GDK_DEPRECATED_IN_4_10
void gtk_tree_store_clear (GtkTreeStore *tree_store);
GDK_DEPRECATED_IN_4_10_FOR(GtkTreeListModel)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_store_iter_is_valid (GtkTreeStore *tree_store,
GtkTreeIter *iter);
GDK_DEPRECATED_IN_4_10_FOR(GtkTreeListModel)
GDK_DEPRECATED_IN_4_10
void gtk_tree_store_reorder (GtkTreeStore *tree_store,
GtkTreeIter *parent,
int *new_order);
GDK_DEPRECATED_IN_4_10_FOR(GtkTreeListModel)
GDK_DEPRECATED_IN_4_10
void gtk_tree_store_swap (GtkTreeStore *tree_store,
GtkTreeIter *a,
GtkTreeIter *b);
GDK_DEPRECATED_IN_4_10_FOR(GtkTreeListModel)
GDK_DEPRECATED_IN_4_10
void gtk_tree_store_move_before (GtkTreeStore *tree_store,
GtkTreeIter *iter,
GtkTreeIter *position);
GDK_DEPRECATED_IN_4_10_FOR(GtkTreeListModel)
GDK_DEPRECATED_IN_4_10
void gtk_tree_store_move_after (GtkTreeStore *tree_store,
GtkTreeIter *iter,
GtkTreeIter *position);
File diff suppressed because it is too large Load Diff
+91 -91
View File
@@ -190,56 +190,56 @@ GDK_AVAILABLE_IN_ALL
GType gtk_tree_view_get_type (void) G_GNUC_CONST;
/* Creators */
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
GtkWidget *gtk_tree_view_new (void);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
GtkWidget *gtk_tree_view_new_with_model (GtkTreeModel *model);
/* Accessors */
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
GtkTreeModel *gtk_tree_view_get_model (GtkTreeView *tree_view);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_set_model (GtkTreeView *tree_view,
GtkTreeModel *model);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
GtkTreeSelection *gtk_tree_view_get_selection (GtkTreeView *tree_view);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_view_get_headers_visible (GtkTreeView *tree_view);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_set_headers_visible (GtkTreeView *tree_view,
gboolean headers_visible);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_columns_autosize (GtkTreeView *tree_view);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_view_get_headers_clickable (GtkTreeView *tree_view);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_set_headers_clickable (GtkTreeView *tree_view,
gboolean setting);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_view_get_activate_on_single_click (GtkTreeView *tree_view);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_set_activate_on_single_click (GtkTreeView *tree_view,
gboolean single);
/* Column functions */
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
int gtk_tree_view_append_column (GtkTreeView *tree_view,
GtkTreeViewColumn *column);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
int gtk_tree_view_remove_column (GtkTreeView *tree_view,
GtkTreeViewColumn *column);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
int gtk_tree_view_insert_column (GtkTreeView *tree_view,
GtkTreeViewColumn *column,
int position);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
int gtk_tree_view_insert_column_with_attributes (GtkTreeView *tree_view,
int position,
const char *title,
GtkCellRenderer *cell,
...) G_GNUC_NULL_TERMINATED;
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
int gtk_tree_view_insert_column_with_data_func (GtkTreeView *tree_view,
int position,
const char *title,
@@ -248,89 +248,89 @@ int gtk_tree_view_insert_column_with_data_func (GtkTreeView
gpointer data,
GDestroyNotify dnotify);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
guint gtk_tree_view_get_n_columns (GtkTreeView *tree_view);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
GtkTreeViewColumn *gtk_tree_view_get_column (GtkTreeView *tree_view,
int n);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
GList *gtk_tree_view_get_columns (GtkTreeView *tree_view);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_move_column_after (GtkTreeView *tree_view,
GtkTreeViewColumn *column,
GtkTreeViewColumn *base_column);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_set_expander_column (GtkTreeView *tree_view,
GtkTreeViewColumn *column);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
GtkTreeViewColumn *gtk_tree_view_get_expander_column (GtkTreeView *tree_view);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_set_column_drag_function (GtkTreeView *tree_view,
GtkTreeViewColumnDropFunc func,
gpointer user_data,
GDestroyNotify destroy);
/* Actions */
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_scroll_to_point (GtkTreeView *tree_view,
int tree_x,
int tree_y);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_scroll_to_cell (GtkTreeView *tree_view,
GtkTreePath *path,
GtkTreeViewColumn *column,
gboolean use_align,
float row_align,
float col_align);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_row_activated (GtkTreeView *tree_view,
GtkTreePath *path,
GtkTreeViewColumn *column);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_expand_all (GtkTreeView *tree_view);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_collapse_all (GtkTreeView *tree_view);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_expand_to_path (GtkTreeView *tree_view,
GtkTreePath *path);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_view_expand_row (GtkTreeView *tree_view,
GtkTreePath *path,
gboolean open_all);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_view_collapse_row (GtkTreeView *tree_view,
GtkTreePath *path);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_map_expanded_rows (GtkTreeView *tree_view,
GtkTreeViewMappingFunc func,
gpointer data);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_view_row_expanded (GtkTreeView *tree_view,
GtkTreePath *path);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_set_reorderable (GtkTreeView *tree_view,
gboolean reorderable);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_view_get_reorderable (GtkTreeView *tree_view);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_set_cursor (GtkTreeView *tree_view,
GtkTreePath *path,
GtkTreeViewColumn *focus_column,
gboolean start_editing);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_set_cursor_on_cell (GtkTreeView *tree_view,
GtkTreePath *path,
GtkTreeViewColumn *focus_column,
GtkCellRenderer *focus_cell,
gboolean start_editing);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_get_cursor (GtkTreeView *tree_view,
GtkTreePath **path,
GtkTreeViewColumn **focus_column);
/* Layout information */
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_view_get_path_at_pos (GtkTreeView *tree_view,
int x,
int y,
@@ -338,24 +338,24 @@ gboolean gtk_tree_view_get_path_at_pos (GtkTreeView
GtkTreeViewColumn **column,
int *cell_x,
int *cell_y);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_get_cell_area (GtkTreeView *tree_view,
GtkTreePath *path,
GtkTreeViewColumn *column,
GdkRectangle *rect);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_get_background_area (GtkTreeView *tree_view,
GtkTreePath *path,
GtkTreeViewColumn *column,
GdkRectangle *rect);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_get_visible_rect (GtkTreeView *tree_view,
GdkRectangle *visible_rect);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_view_get_visible_range (GtkTreeView *tree_view,
GtkTreePath **start_path,
GtkTreePath **end_path);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_view_is_blank_at_pos (GtkTreeView *tree_view,
int x,
int y,
@@ -365,168 +365,168 @@ gboolean gtk_tree_view_is_blank_at_pos (GtkTreeView
int *cell_y);
/* Drag-and-Drop support */
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_enable_model_drag_source (GtkTreeView *tree_view,
GdkModifierType start_button_mask,
GdkContentFormats *formats,
GdkDragAction actions);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_enable_model_drag_dest (GtkTreeView *tree_view,
GdkContentFormats *formats,
GdkDragAction actions);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_unset_rows_drag_source (GtkTreeView *tree_view);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_unset_rows_drag_dest (GtkTreeView *tree_view);
/* These are useful to implement your own custom stuff. */
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_set_drag_dest_row (GtkTreeView *tree_view,
GtkTreePath *path,
GtkTreeViewDropPosition pos);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_get_drag_dest_row (GtkTreeView *tree_view,
GtkTreePath **path,
GtkTreeViewDropPosition *pos);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_view_get_dest_row_at_pos (GtkTreeView *tree_view,
int drag_x,
int drag_y,
GtkTreePath **path,
GtkTreeViewDropPosition *pos);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
GdkPaintable *gtk_tree_view_create_row_drag_icon (GtkTreeView *tree_view,
GtkTreePath *path);
/* Interactive search */
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_set_enable_search (GtkTreeView *tree_view,
gboolean enable_search);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_view_get_enable_search (GtkTreeView *tree_view);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
int gtk_tree_view_get_search_column (GtkTreeView *tree_view);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_set_search_column (GtkTreeView *tree_view,
int column);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
GtkTreeViewSearchEqualFunc gtk_tree_view_get_search_equal_func (GtkTreeView *tree_view);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_set_search_equal_func (GtkTreeView *tree_view,
GtkTreeViewSearchEqualFunc search_equal_func,
gpointer search_user_data,
GDestroyNotify search_destroy);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
GtkEditable *gtk_tree_view_get_search_entry (GtkTreeView *tree_view);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_set_search_entry (GtkTreeView *tree_view,
GtkEditable *entry);
/* Convert between the different coordinate systems */
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_convert_widget_to_tree_coords (GtkTreeView *tree_view,
int wx,
int wy,
int *tx,
int *ty);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_convert_tree_to_widget_coords (GtkTreeView *tree_view,
int tx,
int ty,
int *wx,
int *wy);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_convert_widget_to_bin_window_coords (GtkTreeView *tree_view,
int wx,
int wy,
int *bx,
int *by);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_convert_bin_window_to_widget_coords (GtkTreeView *tree_view,
int bx,
int by,
int *wx,
int *wy);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_convert_tree_to_bin_window_coords (GtkTreeView *tree_view,
int tx,
int ty,
int *bx,
int *by);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_convert_bin_window_to_tree_coords (GtkTreeView *tree_view,
int bx,
int by,
int *tx,
int *ty);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_set_fixed_height_mode (GtkTreeView *tree_view,
gboolean enable);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_view_get_fixed_height_mode (GtkTreeView *tree_view);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_set_hover_selection (GtkTreeView *tree_view,
gboolean hover);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_view_get_hover_selection (GtkTreeView *tree_view);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_set_hover_expand (GtkTreeView *tree_view,
gboolean expand);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_view_get_hover_expand (GtkTreeView *tree_view);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_set_rubber_banding (GtkTreeView *tree_view,
gboolean enable);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_view_get_rubber_banding (GtkTreeView *tree_view);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_view_is_rubber_banding_active (GtkTreeView *tree_view);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
GtkTreeViewRowSeparatorFunc gtk_tree_view_get_row_separator_func (GtkTreeView *tree_view);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_set_row_separator_func (GtkTreeView *tree_view,
GtkTreeViewRowSeparatorFunc func,
gpointer data,
GDestroyNotify destroy);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
GtkTreeViewGridLines gtk_tree_view_get_grid_lines (GtkTreeView *tree_view);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_set_grid_lines (GtkTreeView *tree_view,
GtkTreeViewGridLines grid_lines);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_view_get_enable_tree_lines (GtkTreeView *tree_view);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_set_enable_tree_lines (GtkTreeView *tree_view,
gboolean enabled);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_set_show_expanders (GtkTreeView *tree_view,
gboolean enabled);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_view_get_show_expanders (GtkTreeView *tree_view);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_set_level_indentation (GtkTreeView *tree_view,
int indentation);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
int gtk_tree_view_get_level_indentation (GtkTreeView *tree_view);
/* Convenience functions for setting tooltips */
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_set_tooltip_row (GtkTreeView *tree_view,
GtkTooltip *tooltip,
GtkTreePath *path);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_set_tooltip_cell (GtkTreeView *tree_view,
GtkTooltip *tooltip,
GtkTreePath *path,
GtkTreeViewColumn *column,
GtkCellRenderer *cell);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_view_get_tooltip_context(GtkTreeView *tree_view,
int x,
int y,
@@ -534,10 +534,10 @@ gboolean gtk_tree_view_get_tooltip_context(GtkTreeView *tree_view,
GtkTreeModel **model,
GtkTreePath **path,
GtkTreeIter *iter);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_set_tooltip_column (GtkTreeView *tree_view,
int column);
GDK_DEPRECATED_IN_4_10_FOR(GtkListView)
GDK_DEPRECATED_IN_4_10
int gtk_tree_view_get_tooltip_column (GtkTreeView *tree_view);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GtkTreeView, g_object_unref)
+79 -82
View File
@@ -56,9 +56,6 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
* for an overview of all the objects and data types related to the tree widget and
* how they work together, and to the [class@Gtk.TreeView] documentation for specifics
* about the CSS node structure for treeviews and their headers.
*
* Deprecated: 4.10: Use [class@Gtk.ColumnView] and [class@Gtk.ColumnViewColumn]
* instead of [class@Gtk.TreeView] to show a tabular list
*/
@@ -152,7 +149,7 @@ struct _GtkTreeViewColumnClass
};
struct _GtkTreeViewColumnPrivate
struct _GtkTreeViewColumnPrivate
{
GtkWidget *tree_view;
GtkWidget *button;
@@ -384,7 +381,7 @@ gtk_tree_view_column_class_init (GtkTreeViewColumnClass *class)
*
* The `GtkCellArea` used to layout cell renderers for this column.
*
* If no area is specified when creating the tree view column with gtk_tree_view_column_new_with_area()
* If no area is specified when creating the tree view column with gtk_tree_view_column_new_with_area()
* a horizontally oriented `GtkCellAreaBox` will be used.
*/
tree_column_props[PROP_CELL_AREA] =
@@ -470,14 +467,14 @@ gtk_tree_view_column_dispose (GObject *object)
GtkTreeViewColumn *tree_column = (GtkTreeViewColumn *) object;
GtkTreeViewColumnPrivate *priv = tree_column->priv;
/* Remove this column from its treeview,
/* Remove this column from its treeview,
* in case this column is destroyed before its treeview.
*/
*/
if (priv->tree_view)
gtk_tree_view_remove_column (GTK_TREE_VIEW (priv->tree_view), tree_column);
if (priv->cell_area_context)
{
{
g_signal_handler_disconnect (priv->cell_area_context,
priv->context_changed_signal);
@@ -609,7 +606,7 @@ gtk_tree_view_column_set_property (GObject *object,
gtk_tree_view_column_set_sort_order (tree_column,
g_value_get_enum (value));
break;
case PROP_SORT_COLUMN_ID:
gtk_tree_view_column_set_sort_column_id (tree_column,
g_value_get_int (value));
@@ -734,7 +731,7 @@ gtk_tree_view_column_get_property (GObject *object,
g_value_set_enum (value,
gtk_tree_view_column_get_sort_order (tree_column));
break;
case PROP_SORT_COLUMN_ID:
g_value_set_int (value,
gtk_tree_view_column_get_sort_column_id (tree_column));
@@ -743,7 +740,7 @@ gtk_tree_view_column_get_property (GObject *object,
case PROP_CELL_AREA:
g_value_set_object (value, tree_column->priv->cell_area);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -982,7 +979,7 @@ gtk_tree_view_column_update_button (GtkTreeViewColumn *tree_column)
gtk_widget_hide (priv->button);
}
}
if (priv->reorderable || priv->clickable)
{
gtk_widget_set_focusable (priv->button, TRUE);
@@ -1180,7 +1177,7 @@ gtk_tree_view_column_setup_sort_column_id_callback (GtkTreeViewColumn *tree_colu
gtk_tree_view_column_set_sort_indicator (tree_column, TRUE);
gtk_tree_view_column_set_sort_order (tree_column, real_order);
}
else
else
{
gtk_tree_view_column_set_sort_indicator (tree_column, FALSE);
}
@@ -1195,7 +1192,7 @@ gtk_tree_view_column_context_changed (GtkCellAreaContext *context,
/* Here we want the column re-requested if the underlying context was
* actually reset for any reason, this can happen if the underlying
* area/cell configuration changes (i.e. cell packing properties
* or cell spacing and the like)
* or cell spacing and the like)
*
* Note that we block this handler while requesting for sizes
* so there is no need to check for the new context size being -1,
@@ -1224,13 +1221,13 @@ gtk_tree_view_column_add_editable_callback (GtkCellArea *area,
if (priv->tree_view)
{
path = gtk_tree_path_new_from_string (path_string);
_gtk_tree_view_add_editable (GTK_TREE_VIEW (priv->tree_view),
column,
path,
edit_widget,
cell_area);
gtk_tree_path_free (path);
}
}
@@ -1452,9 +1449,9 @@ _gtk_tree_view_column_is_blank_at_pos (GtkTreeViewColumn *column,
/**
* gtk_tree_view_column_new:
*
*
* Creates a new `GtkTreeViewColumn`.
*
*
* Returns: A newly created `GtkTreeViewColumn`.
*
* Deprecated: 4.10: Use GtkColumnView instead
@@ -1472,9 +1469,9 @@ gtk_tree_view_column_new (void)
/**
* gtk_tree_view_column_new_with_area:
* @area: the `GtkCellArea` that the newly created column should use to layout cells.
*
*
* Creates a new `GtkTreeViewColumn` using @area to render its cells.
*
*
* Returns: A newly created `GtkTreeViewColumn`.
*
* Deprecated: 4.10: Use GtkColumnView instead
@@ -1508,7 +1505,7 @@ gtk_tree_view_column_new_with_area (GtkCellArea *area)
* {
* GtkTreeViewColumn *column;
* GtkCellRenderer *renderer = gtk_cell_renderer_text_new ();
*
*
* column = gtk_tree_view_column_new_with_attributes ("Title",
* renderer,
* "text", TEXT_COLUMN,
@@ -1516,7 +1513,7 @@ gtk_tree_view_column_new_with_area (GtkCellArea *area)
* NULL);
* }
* ]|
*
*
* Returns: A newly created `GtkTreeViewColumn`.
*
* Deprecated: 4.10: Use GtkColumnView instead
@@ -1584,7 +1581,7 @@ gtk_tree_view_column_pack_end (GtkTreeViewColumn *tree_column,
/**
* gtk_tree_view_column_clear:
* @tree_column: A `GtkTreeViewColumn`
*
*
* Unsets all the mappings on all renderers on the @tree_column.
*
* Deprecated: 4.10: Use GtkColumnView instead
@@ -1601,7 +1598,7 @@ gtk_tree_view_column_clear (GtkTreeViewColumn *tree_column)
* @cell_renderer: the `GtkCellRenderer` to set attributes on
* @attribute: An attribute on the renderer
* @column: The column position on the model to get the attribute from.
*
*
* Adds an attribute mapping to the list in @tree_column.
*
* The @column is the
@@ -1636,7 +1633,7 @@ gtk_tree_view_column_set_attributesv (GtkTreeViewColumn *tree_column,
gtk_cell_layout_clear_attributes (GTK_CELL_LAYOUT (priv->cell_area),
cell_renderer);
while (attribute != NULL)
{
column = va_arg (args, int);
@@ -1680,10 +1677,10 @@ gtk_tree_view_column_set_attributes (GtkTreeViewColumn *tree_column,
* gtk_tree_view_column_set_cell_data_func:
* @tree_column: A `GtkTreeViewColumn`
* @cell_renderer: A `GtkCellRenderer`
* @func: (nullable): The `GtkTreeCellDataFunc` to use.
* @func: (nullable): The `GtkTreeCellDataFunc` to use.
* @func_data: (closure): The user data for @func.
* @destroy: The destroy notification for @func_data
*
*
* Sets the `GtkTreeCellDataFunc` to use for the column.
*
* This
@@ -1730,7 +1727,7 @@ gtk_tree_view_column_clear_attributes (GtkTreeViewColumn *tree_column,
* gtk_tree_view_column_set_spacing:
* @tree_column: A `GtkTreeViewColumn`.
* @spacing: distance between cell renderers in pixels.
*
*
* Sets the spacing field of @tree_column, which is the number of pixels to
* place between cell renderers packed into it.
*
@@ -1759,9 +1756,9 @@ gtk_tree_view_column_set_spacing (GtkTreeViewColumn *tree_column,
/**
* gtk_tree_view_column_get_spacing:
* @tree_column: A `GtkTreeViewColumn`.
*
*
* Returns the spacing of @tree_column.
*
*
* Returns: the spacing of @tree_column.
*
* Deprecated: 4.10: Use GtkColumnView instead
@@ -1784,7 +1781,7 @@ gtk_tree_view_column_get_spacing (GtkTreeViewColumn *tree_column)
* gtk_tree_view_column_set_visible:
* @tree_column: A `GtkTreeViewColumn`.
* @visible: %TRUE if the @tree_column is visible.
*
*
* Sets the visibility of @tree_column.
*
* Deprecated: 4.10: Use GtkColumnView instead
@@ -1817,9 +1814,9 @@ gtk_tree_view_column_set_visible (GtkTreeViewColumn *tree_column,
/**
* gtk_tree_view_column_get_visible:
* @tree_column: A `GtkTreeViewColumn`.
*
*
* Returns %TRUE if @tree_column is visible.
*
*
* Returns: whether the column is visible or not. If it is visible, then
* the tree will show the column.
*
@@ -1837,7 +1834,7 @@ gtk_tree_view_column_get_visible (GtkTreeViewColumn *tree_column)
* gtk_tree_view_column_set_resizable:
* @tree_column: A `GtkTreeViewColumn`
* @resizable: %TRUE, if the column can be resized
*
*
* If @resizable is %TRUE, then the user can explicitly resize the column by
* grabbing the outer edge of the column button.
*
@@ -1874,9 +1871,9 @@ gtk_tree_view_column_set_resizable (GtkTreeViewColumn *tree_column,
/**
* gtk_tree_view_column_get_resizable:
* @tree_column: A `GtkTreeViewColumn`
*
*
* Returns %TRUE if the @tree_column can be resized by the end user.
*
*
* Returns: %TRUE, if the @tree_column can be resized.
*
* Deprecated: 4.10: Use GtkColumnView instead
@@ -1894,7 +1891,7 @@ gtk_tree_view_column_get_resizable (GtkTreeViewColumn *tree_column)
* gtk_tree_view_column_set_sizing:
* @tree_column: A `GtkTreeViewColumn`.
* @type: The `GtkTreeViewColumn`Sizing.
*
*
* Sets the growth behavior of @tree_column to @type.
*
* Deprecated: 4.10: Use GtkColumnView instead
@@ -1925,9 +1922,9 @@ gtk_tree_view_column_set_sizing (GtkTreeViewColumn *tree_column,
/**
* gtk_tree_view_column_get_sizing:
* @tree_column: A `GtkTreeViewColumn`.
*
*
* Returns the current type of @tree_column.
*
*
* Returns: The type of @tree_column.
*
* Deprecated: 4.10: Use GtkColumnView instead
@@ -1943,9 +1940,9 @@ gtk_tree_view_column_get_sizing (GtkTreeViewColumn *tree_column)
/**
* gtk_tree_view_column_get_width:
* @tree_column: A `GtkTreeViewColumn`.
*
*
* Returns the current size of @tree_column in pixels.
*
*
* Returns: The current width of @tree_column.
*
* Deprecated: 4.10: Use GtkColumnView instead
@@ -1961,9 +1958,9 @@ gtk_tree_view_column_get_width (GtkTreeViewColumn *tree_column)
/**
* gtk_tree_view_column_get_x_offset:
* @tree_column: A `GtkTreeViewColumn`.
*
*
* Returns the current X offset of @tree_column in pixels.
*
*
* Returns: The current X offset of @tree_column.
*
* Deprecated: 4.10: Use GtkColumnView instead
@@ -2124,7 +2121,7 @@ gtk_tree_view_column_get_fixed_width (GtkTreeViewColumn *tree_column)
* gtk_tree_view_column_set_min_width:
* @tree_column: A `GtkTreeViewColumn`.
* @min_width: The minimum width of the column in pixels, or -1.
*
*
* Sets the minimum width of the @tree_column. If @min_width is -1, then the
* minimum width is unset.
*
@@ -2170,10 +2167,10 @@ gtk_tree_view_column_set_min_width (GtkTreeViewColumn *tree_column,
/**
* gtk_tree_view_column_get_min_width:
* @tree_column: A `GtkTreeViewColumn`.
*
*
* Returns the minimum width in pixels of the @tree_column, or -1 if no minimum
* width is set.
*
*
* Returns: The minimum width of the @tree_column.
*
* Deprecated: 4.10: Use GtkColumnView instead
@@ -2190,7 +2187,7 @@ gtk_tree_view_column_get_min_width (GtkTreeViewColumn *tree_column)
* gtk_tree_view_column_set_max_width:
* @tree_column: A `GtkTreeViewColumn`.
* @max_width: The maximum width of the column in pixels, or -1.
*
*
* Sets the maximum width of the @tree_column. If @max_width is -1, then the
* maximum width is unset. Note, the column can actually be wider than max
* width if its the last column in a view. In this case, the column expands to
@@ -2238,10 +2235,10 @@ gtk_tree_view_column_set_max_width (GtkTreeViewColumn *tree_column,
/**
* gtk_tree_view_column_get_max_width:
* @tree_column: A `GtkTreeViewColumn`.
*
*
* Returns the maximum width in pixels of the @tree_column, or -1 if no maximum
* width is set.
*
*
* Returns: The maximum width of the @tree_column.
*
* Deprecated: 4.10: Use GtkColumnView instead
@@ -2257,7 +2254,7 @@ gtk_tree_view_column_get_max_width (GtkTreeViewColumn *tree_column)
/**
* gtk_tree_view_column_clicked:
* @tree_column: a `GtkTreeViewColumn`
*
*
* Emits the clicked signal on the column. This function will only work if
* @tree_column is clickable.
*
@@ -2280,7 +2277,7 @@ gtk_tree_view_column_clicked (GtkTreeViewColumn *tree_column)
* gtk_tree_view_column_set_title:
* @tree_column: A `GtkTreeViewColumn`.
* @title: The title of the @tree_column.
*
*
* Sets the title of the @tree_column. If a custom widget has been set, then
* this value is ignored.
*
@@ -2308,9 +2305,9 @@ gtk_tree_view_column_set_title (GtkTreeViewColumn *tree_column,
/**
* gtk_tree_view_column_get_title:
* @tree_column: A `GtkTreeViewColumn`.
*
*
* Returns the title of the widget.
*
*
* Returns: the title of the column. This string should not be
* modified or freed.
*
@@ -2386,7 +2383,7 @@ gtk_tree_view_column_get_expand (GtkTreeViewColumn *tree_column)
* gtk_tree_view_column_set_clickable:
* @tree_column: A `GtkTreeViewColumn`.
* @clickable: %TRUE if the header is active.
*
*
* Sets the header to be active if @clickable is %TRUE. When the header is
* active, then it can take keyboard focus, and can be clicked.
*
@@ -2414,9 +2411,9 @@ gtk_tree_view_column_set_clickable (GtkTreeViewColumn *tree_column,
/**
* gtk_tree_view_column_get_clickable:
* @tree_column: a `GtkTreeViewColumn`
*
*
* Returns %TRUE if the user can click on the header for the column.
*
*
* Returns: %TRUE if user can click the column header.
*
* Deprecated: 4.10: Use GtkColumnView instead
@@ -2485,7 +2482,7 @@ gtk_tree_view_column_get_widget (GtkTreeViewColumn *tree_column)
* gtk_tree_view_column_set_alignment:
* @tree_column: A `GtkTreeViewColumn`.
* @xalign: The alignment, which is between [0.0 and 1.0] inclusive.
*
*
* Sets the alignment of the title or custom widget inside the column header.
* The alignment determines its location inside the button -- 0.0 for left, 0.5
* for center, 1.0 for right.
@@ -2515,10 +2512,10 @@ gtk_tree_view_column_set_alignment (GtkTreeViewColumn *tree_column,
/**
* gtk_tree_view_column_get_alignment:
* @tree_column: A `GtkTreeViewColumn`.
*
*
* Returns the current x alignment of @tree_column. This value can range
* between 0.0 and 1.0.
*
*
* Returns: The current alignent of @tree_column.
*
* Deprecated: 4.10: Use GtkColumnView instead
@@ -2535,7 +2532,7 @@ gtk_tree_view_column_get_alignment (GtkTreeViewColumn *tree_column)
* gtk_tree_view_column_set_reorderable:
* @tree_column: A `GtkTreeViewColumn`
* @reorderable: %TRUE, if the column can be reordered.
*
*
* If @reorderable is %TRUE, then the column can be reordered by the end user
* dragging the header.
*
@@ -2565,9 +2562,9 @@ gtk_tree_view_column_set_reorderable (GtkTreeViewColumn *tree_column,
/**
* gtk_tree_view_column_get_reorderable:
* @tree_column: A `GtkTreeViewColumn`
*
*
* Returns %TRUE if the @tree_column can be reordered by the user.
*
*
* Returns: %TRUE if the @tree_column can be reordered by the user.
*
* Deprecated: 4.10: Use GtkColumnView instead
@@ -2586,7 +2583,7 @@ gtk_tree_view_column_get_reorderable (GtkTreeViewColumn *tree_column)
* @tree_column: a `GtkTreeViewColumn`
* @sort_column_id: The @sort_column_id of the model to sort on.
*
* Sets the logical @sort_column_id that this column sorts on when this column
* Sets the logical @sort_column_id that this column sorts on when this column
* is selected for sorting. Doing so makes the column header clickable.
*
* Deprecated: 4.10: Use GtkColumnView instead
@@ -2696,9 +2693,9 @@ gtk_tree_view_column_set_sort_indicator (GtkTreeViewColumn *tree_column,
/**
* gtk_tree_view_column_get_sort_indicator:
* @tree_column: a `GtkTreeViewColumn`
*
*
* Gets the value set by gtk_tree_view_column_set_sort_indicator().
*
*
* Returns: whether the sort indicator arrow is displayed
*
* Deprecated: 4.10: Use GtkColumnView instead
@@ -2716,16 +2713,16 @@ gtk_tree_view_column_get_sort_indicator (GtkTreeViewColumn *tree_column)
* @tree_column: a `GtkTreeViewColumn`
* @order: sort order that the sort indicator should indicate
*
* Changes the appearance of the sort indicator.
*
* Changes the appearance of the sort indicator.
*
* This does not actually sort the model. Use
* gtk_tree_view_column_set_sort_column_id() if you want automatic sorting
* support. This function is primarily for custom sorting behavior, and should
* be used in conjunction with gtk_tree_sortable_set_sort_column_id() to do
* that. For custom models, the mechanism will vary.
*
* that. For custom models, the mechanism will vary.
*
* The sort indicator changes direction to indicate normal sort or reverse sort.
* Note that you must have the sort indicator enabled to see anything when
* Note that you must have the sort indicator enabled to see anything when
* calling this function; see gtk_tree_view_column_set_sort_indicator().
*
* Deprecated: 4.10: Use GtkColumnView instead
@@ -2747,9 +2744,9 @@ gtk_tree_view_column_set_sort_order (GtkTreeViewColumn *tree_column,
/**
* gtk_tree_view_column_get_sort_order:
* @tree_column: a `GtkTreeViewColumn`
*
*
* Gets the value set by gtk_tree_view_column_set_sort_order().
*
*
* Returns: the sort order the sort indicator is indicating
*
* Deprecated: 4.10: Use GtkColumnView instead
@@ -2769,7 +2766,7 @@ gtk_tree_view_column_get_sort_order (GtkTreeViewColumn *tree_column)
* @iter: The `GtkTreeIter` to get the cell renderers attributes from.
* @is_expander: %TRUE, if the row has children
* @is_expanded: %TRUE, if the row has visible children
*
*
* Sets the cell renderer based on the @tree_model and @iter. That is, for
* every attribute mapping in @tree_column, it will get a value from the set
* column on the @iter, and use that value to set the attribute on the cell
@@ -2800,7 +2797,7 @@ gtk_tree_view_column_cell_set_cell_data (GtkTreeViewColumn *tree_column,
* @y_offset: (out) (optional): location to return y offset of a cell relative to @cell_area
* @width: (out) (optional): location to return width needed to render a cell
* @height: (out) (optional): location to return height needed to render a cell
*
*
* Obtains the width and height needed to render the column. This is used
* primarily by the `GtkTreeView`.
*
@@ -2820,7 +2817,7 @@ gtk_tree_view_column_cell_get_size (GtkTreeViewColumn *tree_column,
priv = tree_column->priv;
g_signal_handler_block (priv->cell_area_context,
g_signal_handler_block (priv->cell_area_context,
priv->context_changed_signal);
gtk_cell_area_get_preferred_width (priv->cell_area,
@@ -2837,7 +2834,7 @@ gtk_tree_view_column_cell_get_size (GtkTreeViewColumn *tree_column,
&min_height,
NULL);
g_signal_handler_unblock (priv->cell_area_context,
g_signal_handler_unblock (priv->cell_area_context,
priv->context_changed_signal);
@@ -2855,7 +2852,7 @@ gtk_tree_view_column_cell_get_size (GtkTreeViewColumn *tree_column,
* @background_area: entire cell area (including tree expanders and maybe padding on the sides)
* @cell_area: area normally rendered by a cell renderer
* @flags: flags that affect rendering
*
*
* Renders the cell contained by #tree_column. This is used primarily by the
* `GtkTreeView`.
*
@@ -2907,11 +2904,11 @@ _gtk_tree_view_column_cell_event (GtkTreeViewColumn *tree_column,
/**
* gtk_tree_view_column_cell_is_visible:
* @tree_column: A `GtkTreeViewColumn`
*
*
* Returns %TRUE if any of the cells packed into the @tree_column are visible.
* For this to be meaningful, you must first initialize the cells with
* gtk_tree_view_column_cell_set_cell_data()
*
*
* Returns: %TRUE, if any of the cells packed into the @tree_column are currently visible
*
* Deprecated: 4.10: Use GtkColumnView instead
@@ -2975,10 +2972,10 @@ _gtk_tree_view_column_cell_set_dirty (GtkTreeViewColumn *tree_column,
/* Issue a manual reset on the context to have all
* sizes re-requested for the context.
*/
g_signal_handler_block (priv->cell_area_context,
g_signal_handler_block (priv->cell_area_context,
priv->context_changed_signal);
gtk_cell_area_context_reset (priv->cell_area_context);
g_signal_handler_unblock (priv->cell_area_context,
g_signal_handler_unblock (priv->cell_area_context,
priv->context_changed_signal);
if (priv->tree_view &&
+53 -53
View File
@@ -80,117 +80,117 @@ typedef void (* GtkTreeCellDataFunc) (GtkTreeViewColumn *tree_column,
GDK_AVAILABLE_IN_ALL
GType gtk_tree_view_column_get_type (void) G_GNUC_CONST;
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
GtkTreeViewColumn *gtk_tree_view_column_new (void);
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
GtkTreeViewColumn *gtk_tree_view_column_new_with_area (GtkCellArea *area);
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
GtkTreeViewColumn *gtk_tree_view_column_new_with_attributes (const char *title,
GtkCellRenderer *cell,
...) G_GNUC_NULL_TERMINATED;
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_column_pack_start (GtkTreeViewColumn *tree_column,
GtkCellRenderer *cell,
gboolean expand);
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_column_pack_end (GtkTreeViewColumn *tree_column,
GtkCellRenderer *cell,
gboolean expand);
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_column_clear (GtkTreeViewColumn *tree_column);
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_column_add_attribute (GtkTreeViewColumn *tree_column,
GtkCellRenderer *cell_renderer,
const char *attribute,
int column);
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_column_set_attributes (GtkTreeViewColumn *tree_column,
GtkCellRenderer *cell_renderer,
...) G_GNUC_NULL_TERMINATED;
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_column_set_cell_data_func (GtkTreeViewColumn *tree_column,
GtkCellRenderer *cell_renderer,
GtkTreeCellDataFunc func,
gpointer func_data,
GDestroyNotify destroy);
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_column_clear_attributes (GtkTreeViewColumn *tree_column,
GtkCellRenderer *cell_renderer);
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_column_set_spacing (GtkTreeViewColumn *tree_column,
int spacing);
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
int gtk_tree_view_column_get_spacing (GtkTreeViewColumn *tree_column);
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_column_set_visible (GtkTreeViewColumn *tree_column,
gboolean visible);
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_view_column_get_visible (GtkTreeViewColumn *tree_column);
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_column_set_resizable (GtkTreeViewColumn *tree_column,
gboolean resizable);
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_view_column_get_resizable (GtkTreeViewColumn *tree_column);
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_column_set_sizing (GtkTreeViewColumn *tree_column,
GtkTreeViewColumnSizing type);
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
GtkTreeViewColumnSizing gtk_tree_view_column_get_sizing (GtkTreeViewColumn *tree_column);
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
int gtk_tree_view_column_get_x_offset (GtkTreeViewColumn *tree_column);
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
int gtk_tree_view_column_get_width (GtkTreeViewColumn *tree_column);
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
int gtk_tree_view_column_get_fixed_width (GtkTreeViewColumn *tree_column);
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_column_set_fixed_width (GtkTreeViewColumn *tree_column,
int fixed_width);
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_column_set_min_width (GtkTreeViewColumn *tree_column,
int min_width);
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
int gtk_tree_view_column_get_min_width (GtkTreeViewColumn *tree_column);
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_column_set_max_width (GtkTreeViewColumn *tree_column,
int max_width);
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
int gtk_tree_view_column_get_max_width (GtkTreeViewColumn *tree_column);
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_column_clicked (GtkTreeViewColumn *tree_column);
/* Options for manipulating the column headers
*/
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_column_set_title (GtkTreeViewColumn *tree_column,
const char *title);
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
const char * gtk_tree_view_column_get_title (GtkTreeViewColumn *tree_column);
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_column_set_expand (GtkTreeViewColumn *tree_column,
gboolean expand);
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_view_column_get_expand (GtkTreeViewColumn *tree_column);
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_column_set_clickable (GtkTreeViewColumn *tree_column,
gboolean clickable);
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_view_column_get_clickable (GtkTreeViewColumn *tree_column);
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_column_set_widget (GtkTreeViewColumn *tree_column,
GtkWidget *widget);
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
GtkWidget *gtk_tree_view_column_get_widget (GtkTreeViewColumn *tree_column);
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_column_set_alignment (GtkTreeViewColumn *tree_column,
float xalign);
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
float gtk_tree_view_column_get_alignment (GtkTreeViewColumn *tree_column);
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_column_set_reorderable (GtkTreeViewColumn *tree_column,
gboolean reorderable);
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_view_column_get_reorderable (GtkTreeViewColumn *tree_column);
@@ -198,52 +198,52 @@ gboolean gtk_tree_view_column_get_reorderable (GtkTreeViewCol
/* You probably only want to use gtk_tree_view_column_set_sort_column_id. The
* other sorting functions exist primarily to let others do their own custom sorting.
*/
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_column_set_sort_column_id (GtkTreeViewColumn *tree_column,
int sort_column_id);
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
int gtk_tree_view_column_get_sort_column_id (GtkTreeViewColumn *tree_column);
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_column_set_sort_indicator (GtkTreeViewColumn *tree_column,
gboolean setting);
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_view_column_get_sort_indicator (GtkTreeViewColumn *tree_column);
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_column_set_sort_order (GtkTreeViewColumn *tree_column,
GtkSortType order);
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
GtkSortType gtk_tree_view_column_get_sort_order (GtkTreeViewColumn *tree_column);
/* These functions are meant primarily for interaction between the GtkTreeView and the column.
*/
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_column_cell_set_cell_data (GtkTreeViewColumn *tree_column,
GtkTreeModel *tree_model,
GtkTreeIter *iter,
gboolean is_expander,
gboolean is_expanded);
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_column_cell_get_size (GtkTreeViewColumn *tree_column,
int *x_offset,
int *y_offset,
int *width,
int *height);
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_view_column_cell_is_visible (GtkTreeViewColumn *tree_column);
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_column_focus_cell (GtkTreeViewColumn *tree_column,
GtkCellRenderer *cell);
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
gboolean gtk_tree_view_column_cell_get_position (GtkTreeViewColumn *tree_column,
GtkCellRenderer *cell_renderer,
int *x_offset,
int *width);
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
void gtk_tree_view_column_queue_resize (GtkTreeViewColumn *tree_column);
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
GtkWidget *gtk_tree_view_column_get_tree_view (GtkTreeViewColumn *tree_column);
GDK_DEPRECATED_IN_4_10_FOR(GtkColumnView and GtkColumnViewColumn)
GDK_DEPRECATED_IN_4_10
GtkWidget *gtk_tree_view_column_get_button (GtkTreeViewColumn *tree_column);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GtkTreeViewColumn, g_object_unref)
-20
View File
@@ -19,15 +19,9 @@ gtk_deprecated_sources = [
'deprecated/gtkcellrenderertext.c',
'deprecated/gtkcellrenderertoggle.c',
'deprecated/gtkcellview.c',
'deprecated/gtkcolorbutton.c',
'deprecated/gtkcolorchooser.c',
'deprecated/gtkcombobox.c',
'deprecated/gtkcomboboxtext.c',
'deprecated/gtkdialog.c',
'deprecated/gtkentrycompletion.c',
'deprecated/gtkfilechooser.c',
'deprecated/gtkfontbutton.c',
'deprecated/gtkfontchooser.c',
'deprecated/gtkiconview.c',
'deprecated/gtkliststore.c',
'deprecated/gtkrender.c',
@@ -66,25 +60,11 @@ gtk_deprecated_headers = [
'deprecated/gtkcellrenderertext.h',
'deprecated/gtkcellrenderertoggle.h',
'deprecated/gtkcellview.h',
'deprecated/gtkcolorbutton.h',
'deprecated/gtkcolorchooser.h',
'deprecated/gtkcolorchooserdialog.h',
'deprecated/gtkcolorchooserwidget.h',
'deprecated/gtkcombobox.h',
'deprecated/gtkcomboboxtext.h',
'deprecated/gtkdialog.h',
'deprecated/gtkentrycompletion.h',
'deprecated/gtkfilechooser.h',
'deprecated/gtkfilechooserdialog.h',
'deprecated/gtkfilechoosernative.h',
'deprecated/gtkfilechooserwidget.h',
'deprecated/gtkfontbutton.h',
'deprecated/gtkfontchooser.h',
'deprecated/gtkfontchooserdialog.h',
'deprecated/gtkfontchooserwidget.h',
'deprecated/gtkiconview.h',
'deprecated/gtkliststore.h',
'deprecated/gtkmessagedialog.h',
'deprecated/gtkrender.h',
'deprecated/gtkstylecontext.h',
'deprecated/gtktreednd.h',
+15 -22
View File
@@ -38,7 +38,6 @@
#include <gtk/gtkactionable.h>
#include <gtk/gtkactionbar.h>
#include <gtk/gtkadjustment.h>
#include <gtk/gtkalertdialog.h>
#include <gtk/deprecated/gtkappchooser.h>
#include <gtk/deprecated/gtkappchooserdialog.h>
#include <gtk/deprecated/gtkappchooserwidget.h>
@@ -79,16 +78,13 @@
#include <gtk/gtkcenterbox.h>
#include <gtk/gtkcenterlayout.h>
#include <gtk/gtkcheckbutton.h>
#include <gtk/deprecated/gtkcolorbutton.h>
#include <gtk/deprecated/gtkcolorchooser.h>
#include <gtk/deprecated/gtkcolorchooserdialog.h>
#include <gtk/deprecated/gtkcolorchooserwidget.h>
#include <gtk/gtkcolordialog.h>
#include <gtk/gtkcolordialogbutton.h>
#include <gtk/gtkcolorbutton.h>
#include <gtk/gtkcolorchooser.h>
#include <gtk/gtkcolorchooserdialog.h>
#include <gtk/gtkcolorchooserwidget.h>
#include <gtk/gtkcolorutils.h>
#include <gtk/gtkcolumnview.h>
#include <gtk/gtkcolumnviewcolumn.h>
#include <gtk/gtkcolumnviewsorter.h>
#include <gtk/deprecated/gtkcombobox.h>
#include <gtk/deprecated/gtkcomboboxtext.h>
#include <gtk/gtkconstraintlayout.h>
@@ -97,8 +93,7 @@
#include <gtk/gtkcustomlayout.h>
#include <gtk/gtkcustomsorter.h>
#include <gtk/gtkdebug.h>
#include <gtk/deprecated/gtkdialog.h>
#include <gtk/gtkdialogerror.h>
#include <gtk/gtkdialog.h>
#include <gtk/gtkdirectorylist.h>
#include <gtk/gtkdragicon.h>
#include <gtk/gtkdragsource.h>
@@ -124,23 +119,20 @@
#include <gtk/gtkexpression.h>
#include <gtk/gtkfixed.h>
#include <gtk/gtkfixedlayout.h>
#include <gtk/deprecated/gtkfilechooser.h>
#include <gtk/deprecated/gtkfilechooserdialog.h>
#include <gtk/deprecated/gtkfilechoosernative.h>
#include <gtk/deprecated/gtkfilechooserwidget.h>
#include <gtk/gtkfiledialog.h>
#include <gtk/gtkfilechooser.h>
#include <gtk/gtkfilechooserdialog.h>
#include <gtk/gtkfilechoosernative.h>
#include <gtk/gtkfilechooserwidget.h>
#include <gtk/gtkfilefilter.h>
#include <gtk/gtkfilter.h>
#include <gtk/gtkfilterlistmodel.h>
#include <gtk/gtkcustomfilter.h>
#include <gtk/gtkflattenlistmodel.h>
#include <gtk/gtkflowbox.h>
#include <gtk/deprecated/gtkfontbutton.h>
#include <gtk/deprecated/gtkfontchooser.h>
#include <gtk/deprecated/gtkfontchooserdialog.h>
#include <gtk/deprecated/gtkfontchooserwidget.h>
#include <gtk/gtkfontdialog.h>
#include <gtk/gtkfontdialogbutton.h>
#include <gtk/gtkfontbutton.h>
#include <gtk/gtkfontchooser.h>
#include <gtk/gtkfontchooserdialog.h>
#include <gtk/gtkfontchooserwidget.h>
#include <gtk/gtkframe.h>
#include <gtk/gtkgesture.h>
#include <gtk/gtkgestureclick.h>
@@ -165,6 +157,7 @@
#include <gtk/gtkimmulticontext.h>
#include <gtk/gtkinfobar.h>
#include <gtk/gtkinscription.h>
#include <gtk/gtkinvertiblesorter.h>
#include <gtk/gtklabel.h>
#include <gtk/gtklayoutmanager.h>
#include <gtk/gtklayoutchild.h>
@@ -183,7 +176,7 @@
#include <gtk/gtkmediafile.h>
#include <gtk/gtkmediastream.h>
#include <gtk/gtkmenubutton.h>
#include <gtk/deprecated/gtkmessagedialog.h>
#include <gtk/gtkmessagedialog.h>
#include <gtk/gtkmountoperation.h>
#include <gtk/gtkmultifilter.h>
#include <gtk/gtkmultiselection.h>
+2 -10
View File
@@ -27,8 +27,6 @@
#include "gtkmarshalers.h"
#include "gtkwidgetprivate.h"
#include "gsettings-mapping.h"
#include "gtkdebug.h"
#include "gtkprivate.h"
#include <string.h>
@@ -848,15 +846,9 @@ gtk_action_muxer_activate_action (GtkActionMuxer *muxer,
if (!_gtk_bitmask_get (muxer->widget_actions_disabled, position))
{
if (action->activate)
{
GTK_DEBUG (ACTIONS, "%s: activate action", action->name);
action->activate (muxer->widget, action->name, parameter);
}
action->activate (muxer->widget, action->name, parameter);
else if (action->pspec)
{
GTK_DEBUG (ACTIONS, "%s: activate prop action", action->pspec->name);
prop_action_activate (muxer->widget, action, parameter);
}
prop_action_activate (muxer->widget, action, parameter);
}
return;
-772
View File
@@ -1,772 +0,0 @@
/*
* GTK - The GIMP Toolkit
* Copyright (C) 2022 Red Hat, Inc.
* All rights reserved.
*
* This Library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This Library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*/
#include "config.h"
#include "gtkalertdialog.h"
#include "gtkbutton.h"
#include "gtkmessagewindowprivate.h"
#include <glib/gi18n-lib.h>
/**
* GtkAlertDialog:
*
* A `GtkAlertDialog` object collects the arguments that
* are needed to present a message to the user.
*
* The message is shown with the [method@Gtk.AlertDialog.choose]
* function. This API follows the GIO async pattern, and the result can
* be obtained by calling [method@Gtk.AlertDialog.choose_finish].
*
* If you don't need to wait for a button to be clicked, you can use
* [method@Gtk.AlertDialog.show].
*
* `GtkAlertDialog was added in GTK 4.10.
*/
/* {{{ GObject implementation */
struct _GtkAlertDialog
{
GObject parent_instance;
char *message;
char *detail;
char **buttons;
int cancel_button;
int default_button;
int cancel_return;
unsigned int modal : 1;
};
enum
{
PROP_MODAL = 1,
PROP_MESSAGE,
PROP_DETAIL,
PROP_BUTTONS,
PROP_CANCEL_BUTTON,
PROP_DEFAULT_BUTTON,
NUM_PROPERTIES
};
static GParamSpec *properties[NUM_PROPERTIES];
G_DEFINE_TYPE (GtkAlertDialog, gtk_alert_dialog, G_TYPE_OBJECT)
static void
gtk_alert_dialog_init (GtkAlertDialog *self)
{
self->modal = TRUE;
self->cancel_button = -1;
self->default_button = -1;
}
static void
gtk_alert_dialog_finalize (GObject *object)
{
GtkAlertDialog *self = GTK_ALERT_DIALOG (object);
g_free (self->message);
g_free (self->detail);
g_strfreev (self->buttons);
G_OBJECT_CLASS (gtk_alert_dialog_parent_class)->finalize (object);
}
static void
gtk_alert_dialog_get_property (GObject *object,
unsigned int property_id,
GValue *value,
GParamSpec *pspec)
{
GtkAlertDialog *self = GTK_ALERT_DIALOG (object);
switch (property_id)
{
case PROP_MODAL:
g_value_set_boolean (value, self->modal);
break;
case PROP_MESSAGE:
g_value_set_string (value, self->message);
break;
case PROP_DETAIL:
g_value_set_string (value, self->detail);
break;
case PROP_BUTTONS:
g_value_set_boxed (value, self->buttons);
break;
case PROP_CANCEL_BUTTON:
g_value_set_int (value, self->cancel_button);
break;
case PROP_DEFAULT_BUTTON:
g_value_set_int (value, self->default_button);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
}
}
static void
gtk_alert_dialog_set_property (GObject *object,
unsigned int prop_id,
const GValue *value,
GParamSpec *pspec)
{
GtkAlertDialog *self = GTK_ALERT_DIALOG (object);
switch (prop_id)
{
case PROP_MODAL:
gtk_alert_dialog_set_modal (self, g_value_get_boolean (value));
break;
case PROP_MESSAGE:
gtk_alert_dialog_set_message (self, g_value_get_string (value));
break;
case PROP_DETAIL:
gtk_alert_dialog_set_detail (self, g_value_get_string (value));
break;
case PROP_BUTTONS:
gtk_alert_dialog_set_buttons (self, g_value_get_boxed (value));
break;
case PROP_CANCEL_BUTTON:
gtk_alert_dialog_set_cancel_button (self, g_value_get_int (value));
break;
case PROP_DEFAULT_BUTTON:
gtk_alert_dialog_set_default_button (self, g_value_get_int (value));
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
}
}
static void
gtk_alert_dialog_class_init (GtkAlertDialogClass *class)
{
GObjectClass *object_class = G_OBJECT_CLASS (class);
object_class->finalize = gtk_alert_dialog_finalize;
object_class->get_property = gtk_alert_dialog_get_property;
object_class->set_property = gtk_alert_dialog_set_property;
/**
* GtkAlertDialog:modal: (attributes org.gtk.Property.get=gtk_alert_dialog_get_modal org.gtk.Property.set=gtk_alert_dialog_set_modal)
*
* Whether the alert is modal.
*
* Since: 4.10
*/
properties[PROP_MODAL] =
g_param_spec_boolean ("modal", NULL, NULL,
TRUE,
G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS|G_PARAM_EXPLICIT_NOTIFY);
/**
* GtkAlertDialog:message: (attributes org.gtk.Property.get=gtk_alert_dialog_get_message org.gtk.Property.set=gtk_alert_dialog_set_message)
*
* The message for the alert.
*
* Since: 4.10
*/
properties[PROP_MESSAGE] =
g_param_spec_string ("message", NULL, NULL,
NULL,
G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS|G_PARAM_EXPLICIT_NOTIFY);
/**
* GtkAlertDialog:detail: (attributes org.gtk.Property.get=gtk_alert_dialog_get_detail org.gtk.Property.set=gtk_alert_dialog_set_detail)
*
* The detail text for the alert.
*
* Since: 4.10
*/
properties[PROP_DETAIL] =
g_param_spec_string ("detail", NULL, NULL,
NULL,
G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS|G_PARAM_EXPLICIT_NOTIFY);
/**
* GtkAlertDialog:buttons: (attributes org.gtk.Property.get=gtk_alert_dialog_get_buttons org.gtk.Property.set=gtk_alert_dialog_set_buttons)
*
* Labels for buttons to show in the alert.
*
* The labels should be translated and may contain
* a _ to indicate the mnemonic character.
*
* If this property is not set, then a 'Close' button is
* automatically created.
*
* Since: 4.10
*/
properties[PROP_BUTTONS] =
g_param_spec_boxed ("buttons", NULL, NULL,
G_TYPE_STRV,
G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS|G_PARAM_EXPLICIT_NOTIFY);
/**
* GtkAlertDialog:cancel-button: (attributes org.gtk.Property.get=gtk_alert_dialog_get_cancel_button org.gtk.Property.set=gtk_alert_dialog_set_cancel_button)
*
* This property determines what happens when the Escape key is
* pressed while the alert is shown.
*
* If this property holds the index of a button in [property@Gtk.AlertDialog:buttons],
* then pressing Escape is treated as if that button was pressed. If it is -1
* or not a valid index for the `buttons` array, then an error is returned.
*
* If `buttons` is `NULL`, then the automatically created 'Close' button
* is treated as both cancel and default button, so 0 is returned.
*
* Since: 4.10
*/
properties[PROP_CANCEL_BUTTON] =
g_param_spec_int ("cancel-button", NULL, NULL,
-1, G_MAXINT, -1,
G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS|G_PARAM_EXPLICIT_NOTIFY);
/**
* GtkAlertDialog:default-button: (attributes org.gtk.Property.get=gtk_alert_dialog_get_default_button org.gtk.Property.set=gtk_alert_dialog_set_default_button)
*
* This property determines what happens when the Return key is
* pressed while the alert is shown.
*
* If this property holds the index of a button in [property@Gtk.AlertDialog:buttons],
* then pressing Return is treated as if that button was pressed. If it is -1
* or not a valid index for the `buttons` array, then nothing happens.
*
* If `buttons` is `NULL`, then the automatically created 'Close' button
* is treated as both cancel and default button, so 0 is returned.
*
* Since: 4.10
*/
properties[PROP_DEFAULT_BUTTON] =
g_param_spec_int ("default-button", NULL, NULL,
-1, G_MAXINT, -1,
G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS|G_PARAM_EXPLICIT_NOTIFY);
g_object_class_install_properties (object_class, NUM_PROPERTIES, properties);
}
/* }}} */
/* {{{ API: Constructor */
/**
* gtk_alert_dialog_new:
* @format: printf()-style format string
* @...: arguments for @format
*
* Creates a new `GtkAlertDialog` object.
*
* The message will be set to the formatted string
* resulting from the arguments.
*
* Returns: the new `GtkAlertDialog`
*
* Since: 4.10
*/
GtkAlertDialog *
gtk_alert_dialog_new (const char *format,
...)
{
va_list args;
char *message;
GtkAlertDialog *dialog;
va_start (args, format);
message = g_strdup_vprintf (format, args);
va_end (args);
dialog = g_object_new (GTK_TYPE_ALERT_DIALOG,
"message", message,
NULL);
g_free (message);
return dialog;
}
/* }}} */
/* {{{ API: Getters and setters */
/**
* gtk_alert_dialog_get_modal:
* @self: a `GtkAlertDialog`
*
* Returns whether the alert blocks interaction
* with the parent window while it is presented.
*
* Returns: `TRUE` if the alert is modal
*
* Since: 4.10
*/
gboolean
gtk_alert_dialog_get_modal (GtkAlertDialog *self)
{
g_return_val_if_fail (GTK_IS_ALERT_DIALOG (self), TRUE);
return self->modal;
}
/**
* gtk_alert_dialog_set_modal:
* @self: a `GtkAlertDialog`
* @modal: the new value
*
* Sets whether the alert blocks interaction
* with the parent window while it is presented.
*
* Since: 4.10
*/
void
gtk_alert_dialog_set_modal (GtkAlertDialog *self,
gboolean modal)
{
g_return_if_fail (GTK_IS_ALERT_DIALOG (self));
if (self->modal == modal)
return;
self->modal = modal;
g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_MODAL]);
}
/**
* gtk_alert_dialog_get_message:
* @self: a `GtkAlertDialog`
*
* Returns the message that will be shown in the alert.
*
* Returns: the message
*
* Since: 4.10
*/
const char *
gtk_alert_dialog_get_message (GtkAlertDialog *self)
{
g_return_val_if_fail (GTK_IS_ALERT_DIALOG (self), NULL);
return self->message;
}
/**
* gtk_alert_dialog_set_message:
* @self: a `GtkAlertDialog`
* @message: the new message
*
* Sets the message that will be shown in the alert.
*
* Since: 4.10
*/
void
gtk_alert_dialog_set_message (GtkAlertDialog *self,
const char *message)
{
char *new_message;
g_return_if_fail (GTK_IS_ALERT_DIALOG (self));
g_return_if_fail (message != NULL);
if (g_strcmp0 (self->message, message) == 0)
return;
new_message = g_strdup (message);
g_free (self->message);
self->message = new_message;
g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_MESSAGE]);
}
/**
* gtk_alert_dialog_get_detail:
* @self: a `GtkAlertDialog`
*
* Returns the detail text that will be shown in the alert.
*
* Returns: the detail text
*
* Since: 4.10
*/
const char *
gtk_alert_dialog_get_detail (GtkAlertDialog *self)
{
g_return_val_if_fail (GTK_IS_ALERT_DIALOG (self), NULL);
return self->detail;
}
/**
* gtk_alert_dialog_set_detail:
* @self: a `GtkAlertDialog`
* @detail: the new detail text
*
* Sets the detail text that will be shown in the alert.
*
* Since: 4.10
*/
void
gtk_alert_dialog_set_detail (GtkAlertDialog *self,
const char *detail)
{
char *new_detail;
g_return_if_fail (GTK_IS_ALERT_DIALOG (self));
g_return_if_fail (detail != NULL);
if (g_strcmp0 (self->detail, detail) == 0)
return;
new_detail = g_strdup (detail);
g_free (self->detail);
self->detail = new_detail;
g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_DETAIL]);
}
/**
* gtk_alert_dialog_get_buttons:
* @self: a `GtkAlertDialog`
*
* Returns the button labels for the alert.
*
* Returns: (nullable) (transfer none): the button labels
*
* Since: 4.10
*/
const char * const *
gtk_alert_dialog_get_buttons (GtkAlertDialog *self)
{
g_return_val_if_fail (GTK_IS_ALERT_DIALOG (self), NULL);
return (const char * const *) self->buttons;
}
/**
* gtk_alert_dialog_set_buttons:
* @self: a `GtkAlertDialog`
* @labels: the new button labels
*
* Sets the button labels for the alert.
*
* Since: 4.10
*/
void
gtk_alert_dialog_set_buttons (GtkAlertDialog *self,
const char * const *labels)
{
g_return_if_fail (GTK_IS_ALERT_DIALOG (self));
g_return_if_fail (labels != NULL);
g_strfreev (self->buttons);
self->buttons = g_strdupv ((char **)labels);
g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_BUTTONS]);
}
/**
* gtk_alert_dialog_get_cancel_button:
* @self: a `GtkAlertDialog`
*
* Returns the index of the cancel button.
*
* Returns: the index of the cancel button, or -1
*
* Since: 4.10
*/
int
gtk_alert_dialog_get_cancel_button (GtkAlertDialog *self)
{
g_return_val_if_fail (GTK_IS_ALERT_DIALOG (self), -1);
return self->cancel_button;
}
/**
* gtk_alert_dialog_set_cancel_button:
* @self: a `GtkAlertDialog`
* @button: the new cancel button
*
* Sets the index of the cancel button.
*
* See [property@Gtk.AlertDialog:cancel-button] for
* details of how this value is used.
*
* Since: 4.10
*/
void
gtk_alert_dialog_set_cancel_button (GtkAlertDialog *self,
int button)
{
g_return_if_fail (GTK_IS_ALERT_DIALOG (self));
if (self->cancel_button == button)
return;
self->cancel_button = button;
g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_CANCEL_BUTTON]);
}
/**
* gtk_alert_dialog_get_default_button:
* @self: a `GtkAlertDialog`
*
* Returns the index of the default button.
*
* Returns: the index of the default button, or -1
*
* Since: 4.10
*/
int
gtk_alert_dialog_get_default_button (GtkAlertDialog *self)
{
g_return_val_if_fail (GTK_IS_ALERT_DIALOG (self), -1);
return self->default_button;
}
/**
* gtk_alert_dialog_set_default_button:
* @self: a `GtkAlertDialog`
* @button: the new default button
*
* Sets the index of the default button.
*
* See [property@Gtk.AlertDialog:default-button] for
* details of how this value is used.
*
* Since: 4.10
*/
void
gtk_alert_dialog_set_default_button (GtkAlertDialog *self,
int button)
{
g_return_if_fail (GTK_IS_ALERT_DIALOG (self));
if (self->default_button == button)
return;
self->default_button = button;
g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_DEFAULT_BUTTON]);
}
/* }}} */
/* {{{ Async implementation */
static void response_cb (GTask *task,
int response);
static void
cancelled_cb (GCancellable *cancellable,
GTask *task)
{
response_cb (task, -1);
}
static void
response_cb (GTask *task,
int response)
{
GCancellable *cancellable;
GtkWindow *window;
cancellable = g_task_get_cancellable (task);
if (cancellable)
g_signal_handlers_disconnect_by_func (cancellable, cancelled_cb, task);
if (response >= 0)
{
g_task_return_int (task, response);
}
else
{
GtkAlertDialog *self = GTK_ALERT_DIALOG (g_task_get_source_object (task));
g_task_return_int (task, self->cancel_return);
}
g_object_unref (task);
}
static void
button_response (GtkButton *button,
GTask *task)
{
int response = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (button), "response"));
response_cb (task, response);
}
static GtkMessageWindow *
create_message_window (GtkAlertDialog *self,
GtkWindow *parent,
GTask *task)
{
GtkMessageWindow *window;
window = gtk_message_window_new ();
if (parent)
gtk_window_set_transient_for (GTK_WINDOW (window), parent);
gtk_window_set_modal (GTK_WINDOW (window), TRUE);
gtk_message_window_set_message (window, self->message);
gtk_message_window_set_detail (window, self->detail);
if (self->buttons && self->buttons[0])
{
self->cancel_return = -1;
for (int i = 0; self->buttons[i]; i++)
{
GtkWidget *button;
button = gtk_button_new_with_mnemonic (self->buttons[i]);
g_object_set_data (G_OBJECT (button), "response", GINT_TO_POINTER (i));
g_signal_connect (button, "clicked", G_CALLBACK (button_response), task);
gtk_message_window_add_button (window, button);
if (self->default_button == i)
gtk_window_set_default_widget (GTK_WINDOW (window), button);
if (self->cancel_button == i)
self->cancel_return = i;
}
}
else
{
GtkWidget *button;
button = gtk_button_new_with_mnemonic (_("_Close"));
g_signal_connect (button, "clicked", G_CALLBACK (button_response), task);
gtk_message_window_add_button (window, button);
gtk_window_set_default_widget (GTK_WINDOW (window), button);
self->cancel_return = 0;
}
return window;
}
/* }}} */
/* {{{ Async API */
/**
* gtk_alert_dialog_choose:
* @self: a `GtkAlertDialog`
* @parent: (nullable): the parent `GtkWindow`
* @cancellable: (nullable): a `GCancellable` to cancel the operation
* @callback: (nullable) (scope async): a callback to call when the operation is complete
* @user_data: (closure callback): data to pass to @callback
*
* This function shows the alert to the user.
*
* The @callback will be called when the alert is dismissed.
* It should call [method@Gtk.AlertDialog.choose_finish]
* to obtain the result.
*
* It is ok to pass `NULL` for the callback if the alert
* does not have more than one button. A simpler API for
* this case is [method@Gtk.AlertDialog.show].
*
* Since: 4.10
*/
void
gtk_alert_dialog_choose (GtkAlertDialog *self,
GtkWindow *parent,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data)
{
GtkWidget *window;
GTask *task;
g_return_if_fail (GTK_IS_ALERT_DIALOG (self));
task = g_task_new (self, cancellable, callback, user_data);
g_task_set_source_tag (task, gtk_alert_dialog_choose);
if (cancellable)
g_signal_connect (cancellable, "cancelled", G_CALLBACK (cancelled_cb), task);
window = GTK_WIDGET (create_message_window (self, parent, task));
g_task_set_task_data (task, window, (GDestroyNotify) gtk_window_destroy);
gtk_window_present (GTK_WINDOW (window));
}
/**
* gtk_alert_dialog_choose_finish:
* @self: a `GtkAlertDialog`
* @result: a `GAsyncResult`
*
* Finishes the [method@Gtk.AlertDialog.choose] call
* and returns the index of the button that was clicked.
*
* Returns: the index of the button that was clicked, or -1 if
* the dialog was cancelled and `[property@Gtk.AlertDialog:cancel-button]
* is not set
*
* Since: 4.10
*/
int
gtk_alert_dialog_choose_finish (GtkAlertDialog *self,
GAsyncResult *result)
{
GTask *task = G_TASK (result);
g_return_val_if_fail (g_task_get_source_tag (task) == gtk_alert_dialog_choose, -1);
return (int) g_task_propagate_int (task, NULL);
}
/**
* gtk_alert_dialog_show:
* @self: a `GtkAlertDialog`
* @parent: (nullable): the parent `GtkWindow`
*
* This function shows the alert to the user.
*
* If the alert has more than one button, you should use
* [method@Gtk.AlertDialog.choose] instead and provide
* a callback that can react to the button that was clicked.
*
* Since: 4.10
*/
void
gtk_alert_dialog_show (GtkAlertDialog *self,
GtkWindow *parent)
{
gtk_alert_dialog_choose (self, parent, NULL, NULL, NULL);
}
/* }}} */
/* vim:set foldmethod=marker expandtab: */
-96
View File
@@ -1,96 +0,0 @@
/* GTK - The GIMP Toolkit
*
* Copyright (C) 2022 Red Hat, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
#error "Only <gtk/gtk.h> can be included directly."
#endif
#include <gdk/gdk.h>
#include <gtk/gtkwindow.h>
G_BEGIN_DECLS
#define GTK_TYPE_ALERT_DIALOG (gtk_alert_dialog_get_type ())
GDK_AVAILABLE_IN_4_10
G_DECLARE_FINAL_TYPE (GtkAlertDialog, gtk_alert_dialog, GTK, ALERT_DIALOG, GObject)
GDK_AVAILABLE_IN_4_10
GtkAlertDialog *gtk_alert_dialog_new (const char *format,
...) G_GNUC_PRINTF (1, 2);
GDK_AVAILABLE_IN_4_10
gboolean gtk_alert_dialog_get_modal (GtkAlertDialog *self);
GDK_AVAILABLE_IN_4_10
void gtk_alert_dialog_set_modal (GtkAlertDialog *self,
gboolean modal);
GDK_AVAILABLE_IN_4_10
const char * gtk_alert_dialog_get_message (GtkAlertDialog *self);
GDK_AVAILABLE_IN_4_10
void gtk_alert_dialog_set_message (GtkAlertDialog *self,
const char *message);
GDK_AVAILABLE_IN_4_10
const char * gtk_alert_dialog_get_detail (GtkAlertDialog *self);
GDK_AVAILABLE_IN_4_10
void gtk_alert_dialog_set_detail (GtkAlertDialog *self,
const char *detail);
GDK_AVAILABLE_IN_4_10
const char * const *
gtk_alert_dialog_get_buttons (GtkAlertDialog *self);
GDK_AVAILABLE_IN_4_10
void gtk_alert_dialog_set_buttons (GtkAlertDialog *self,
const char * const *labels);
GDK_AVAILABLE_IN_4_10
int gtk_alert_dialog_get_cancel_button (GtkAlertDialog *self);
GDK_AVAILABLE_IN_4_10
void gtk_alert_dialog_set_cancel_button (GtkAlertDialog *self,
int button);
GDK_AVAILABLE_IN_4_10
int gtk_alert_dialog_get_default_button (GtkAlertDialog *self);
GDK_AVAILABLE_IN_4_10
void gtk_alert_dialog_set_default_button (GtkAlertDialog *self,
int button);
GDK_AVAILABLE_IN_4_10
void gtk_alert_dialog_choose (GtkAlertDialog *self,
GtkWindow *parent,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
GDK_AVAILABLE_IN_4_10
int gtk_alert_dialog_choose_finish (GtkAlertDialog *self,
GAsyncResult *result);
GDK_AVAILABLE_IN_4_10
void gtk_alert_dialog_show (GtkAlertDialog *self,
GtkWindow *parent);
G_END_DECLS
+1 -3
View File
@@ -28,9 +28,7 @@
#include <glib/gi18n-lib.h>
#include "gtkbookmarksmanagerprivate.h"
#include "deprecated/gtkfilechooser.h" /* for the GError types */
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
#include "gtkfilechooser.h" /* for the GError types */
static void
_gtk_bookmark_free (gpointer data)
@@ -46,8 +46,6 @@
#include "gtkwidgetprivate.h"
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
/**
* GtkColorButton:
*
@@ -69,8 +67,6 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
* `GtkColorButton` has a single CSS node with name colorbutton which
* contains a button node. To differentiate it from a plain `GtkButton`,
* it gets the .color style class.
*
* Deprecated: 4.10: Use [class@Gtk.ColorDialogButton] instead
*/
typedef struct _GtkColorButtonClass GtkColorButtonClass;
@@ -357,8 +353,6 @@ gtk_color_button_finalize (GObject *object)
* color when the user finishes.
*
* Returns: a new color button
*
* Deprecated: 4.10: Use [class@Gtk.ColorDialogButton] instead
*/
GtkWidget *
gtk_color_button_new (void)
@@ -567,8 +561,6 @@ set_use_alpha (GtkColorButton *button,
* @title: String containing new window title
*
* Sets the title for the color chooser dialog.
*
* Deprecated: 4.10: Use [class@Gtk.ColorDialogButton] instead
*/
void
gtk_color_button_set_title (GtkColorButton *button,
@@ -595,8 +587,6 @@ gtk_color_button_set_title (GtkColorButton *button,
* Gets the title of the color chooser dialog.
*
* Returns: An internal string, do not free the return value
*
* Deprecated: 4.10: Use [class@Gtk.ColorDialogButton] instead
*/
const char *
gtk_color_button_get_title (GtkColorButton *button)
@@ -612,8 +602,6 @@ gtk_color_button_get_title (GtkColorButton *button)
* @modal: %TRUE to make the dialog modal
*
* Sets whether the dialog should be modal.
*
* Deprecated: 4.10: Use [class@Gtk.ColorDialogButton] instead
*/
void
gtk_color_button_set_modal (GtkColorButton *button,
@@ -639,8 +627,6 @@ gtk_color_button_set_modal (GtkColorButton *button,
* Gets whether the dialog is modal.
*
* Returns: %TRUE if the dialog is modal
*
* Deprecated: 4.10: Use [class@Gtk.ColorDialogButton] instead
*/
gboolean
gtk_color_button_get_modal (GtkColorButton *button)
@@ -48,19 +48,19 @@ typedef struct _GtkColorButton GtkColorButton;
GDK_AVAILABLE_IN_ALL
GType gtk_color_button_get_type (void) G_GNUC_CONST;
GDK_DEPRECATED_IN_4_10
GDK_AVAILABLE_IN_ALL
GtkWidget * gtk_color_button_new (void);
GDK_DEPRECATED_IN_4_10
GDK_AVAILABLE_IN_ALL
GtkWidget * gtk_color_button_new_with_rgba (const GdkRGBA *rgba);
GDK_DEPRECATED_IN_4_10
GDK_AVAILABLE_IN_ALL
void gtk_color_button_set_title (GtkColorButton *button,
const char *title);
GDK_DEPRECATED_IN_4_10
GDK_AVAILABLE_IN_ALL
const char *gtk_color_button_get_title (GtkColorButton *button);
GDK_DEPRECATED_IN_4_10
GDK_AVAILABLE_IN_ALL
gboolean gtk_color_button_get_modal (GtkColorButton *button);
GDK_DEPRECATED_IN_4_10
GDK_AVAILABLE_IN_ALL
void gtk_color_button_set_modal (GtkColorButton *button,
gboolean modal);
@@ -36,9 +36,6 @@
* In GTK, the main widgets that implement this interface are
* [class@Gtk.ColorChooserWidget], [class@Gtk.ColorChooserDialog] and
* [class@Gtk.ColorButton].
*
* Deprecated: 4.10: Use [class@Gtk.ColorDialog] and [class@Gtk.ColorDialogButton]
* instead of widgets implementing `GtkColorChooser`
*/
enum
@@ -119,8 +116,6 @@ _gtk_color_chooser_color_activated (GtkColorChooser *chooser,
* @color: (out): a `GdkRGBA` to fill in with the current color
*
* Gets the currently-selected color.
*
* Deprecated: 4.10: Use [class@Gtk.ColorDialog] instead
*/
void
gtk_color_chooser_get_rgba (GtkColorChooser *chooser,
@@ -137,8 +132,6 @@ gtk_color_chooser_get_rgba (GtkColorChooser *chooser,
* @color: the new color
*
* Sets the color.
*
* Deprecated: 4.10: Use [class@Gtk.ColorDialog] instead
*/
void
gtk_color_chooser_set_rgba (GtkColorChooser *chooser,
@@ -158,8 +151,6 @@ gtk_color_chooser_set_rgba (GtkColorChooser *chooser,
*
* Returns: %TRUE if the color chooser uses the alpha channel,
* %FALSE if not
*
* Deprecated: 4.10: Use [class@Gtk.ColorDialog] instead
*/
gboolean
gtk_color_chooser_get_use_alpha (GtkColorChooser *chooser)
@@ -179,8 +170,6 @@ gtk_color_chooser_get_use_alpha (GtkColorChooser *chooser)
* @use_alpha: %TRUE if color chooser should use alpha channel, %FALSE if not
*
* Sets whether or not the color chooser should use the alpha channel.
*
* Deprecated: 4.10: Use [class@Gtk.ColorDialog] instead
*/
void
gtk_color_chooser_set_use_alpha (GtkColorChooser *chooser,
@@ -218,8 +207,6 @@ gtk_color_chooser_set_use_alpha (GtkColorChooser *chooser,
* of removing the default color palette from the color chooser.
*
* If @colors is %NULL, removes all previously added palettes.
*
* Deprecated: 4.10: Use [class@Gtk.ColorDialog] instead
*/
void
gtk_color_chooser_add_palette (GtkColorChooser *chooser,
@@ -63,20 +63,20 @@ struct _GtkColorChooserInterface
GDK_AVAILABLE_IN_ALL
GType gtk_color_chooser_get_type (void) G_GNUC_CONST;
GDK_DEPRECATED_IN_4_10
GDK_AVAILABLE_IN_ALL
void gtk_color_chooser_get_rgba (GtkColorChooser *chooser,
GdkRGBA *color);
GDK_DEPRECATED_IN_4_10
GDK_AVAILABLE_IN_ALL
void gtk_color_chooser_set_rgba (GtkColorChooser *chooser,
const GdkRGBA *color);
GDK_DEPRECATED_IN_4_10
GDK_AVAILABLE_IN_ALL
gboolean gtk_color_chooser_get_use_alpha (GtkColorChooser *chooser);
GDK_DEPRECATED_IN_4_10
GDK_AVAILABLE_IN_ALL
void gtk_color_chooser_set_use_alpha (GtkColorChooser *chooser,
gboolean use_alpha);
GDK_DEPRECATED_IN_4_10
GDK_AVAILABLE_IN_ALL
void gtk_color_chooser_add_palette (GtkColorChooser *chooser,
GtkOrientation orientation,
int colors_per_line,
+5 -13
View File
@@ -17,18 +17,16 @@
#include "config.h"
#include "deprecated/gtkdialog.h"
#include "deprecated/gtkdialogprivate.h"
#include "gtkdialog.h"
#include "gtkdialogprivate.h"
#include "gtkbutton.h"
#include "gtkbox.h"
#include "gtkprivate.h"
#include "gtksettings.h"
#include "deprecated/gtkcolorchooserprivate.h"
#include "deprecated/gtkcolorchooserdialog.h"
#include "deprecated/gtkcolorchooserwidget.h"
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
#include "gtkcolorchooserprivate.h"
#include "gtkcolorchooserdialog.h"
#include "gtkcolorchooserwidget.h"
/**
* GtkColorChooserDialog:
@@ -45,10 +43,6 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
* To change the initially selected color, use
* [method@Gtk.ColorChooser.set_rgba]. To get the selected color use
* [method@Gtk.ColorChooser.get_rgba].
*
* `GtkColorChooserDialog` has been deprecated in favor of [class@Gtk.ColorDialog].
*
* Deprecated: 4.10: Use [class@Gtk.ColorDialog] instead
*/
typedef struct _GtkColorChooserDialogClass GtkColorChooserDialogClass;
@@ -287,8 +281,6 @@ gtk_color_chooser_dialog_iface_init (GtkColorChooserInterface *iface)
* Creates a new `GtkColorChooserDialog`.
*
* Returns: a new `GtkColorChooserDialog`
*
* Deprecated: 4.10: Use [class@Gtk.ColorDialog] instead
*/
GtkWidget *
gtk_color_chooser_dialog_new (const char *title,
@@ -22,7 +22,7 @@
#error "Only <gtk/gtk.h> can be included directly."
#endif
#include <gtk/deprecated/gtkdialog.h>
#include <gtk/gtkdialog.h>
G_BEGIN_DECLS
@@ -35,7 +35,7 @@ typedef struct _GtkColorChooserDialog GtkColorChooserDialog;
GDK_AVAILABLE_IN_ALL
GType gtk_color_chooser_dialog_get_type (void) G_GNUC_CONST;
GDK_DEPRECATED_IN_4_10
GDK_AVAILABLE_IN_ALL
GtkWidget * gtk_color_chooser_dialog_new (const char *title,
GtkWindow *parent);

Some files were not shown because too many files have changed in this diff Show More