Compare commits
34 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 39d689a170 | |||
| bab7092a69 | |||
| 3b6941b04b | |||
| fe429ffc45 | |||
| d595c6ab12 | |||
| 2738d5bc93 | |||
| 5a8267dfae | |||
| d03ce22446 | |||
| 350051c56e | |||
| 979ec828d2 | |||
| 99ddb3c927 | |||
| 770910e608 | |||
| 7180bfc288 | |||
| bc80ed4240 | |||
| 4d45c2669c | |||
| dd8ca7259f | |||
| 06c866f45e | |||
| 2bd7ed5ebd | |||
| adc9d91e0e | |||
| 1150c23b0f | |||
| 9b8c175f23 | |||
| e0134aaf15 | |||
| bd7aa1782c | |||
| 007c9c6218 | |||
| 8c8baa9aa6 | |||
| 7ae0f56378 | |||
| 3fcf7adb25 | |||
| 8b38d1895c | |||
| a4ba25f0f8 | |||
| 8a3621a125 | |||
| 60e37d3368 | |||
| e0cc7b5d86 | |||
| 9843515736 | |||
| 41497aeb8b |
@@ -177,11 +177,11 @@ constraint_view_init (ConstraintView *self)
|
||||
guides = gtk_constraint_layout_observe_guides (GTK_CONSTRAINT_LAYOUT (manager));
|
||||
|
||||
all_constraints = gtk_constraint_layout_observe_constraints (GTK_CONSTRAINT_LAYOUT (manager));
|
||||
filter = GTK_FILTER (gtk_custom_filter_new (omit_internal, NULL, NULL));
|
||||
filter = gtk_custom_filter_new (omit_internal, NULL, NULL);
|
||||
constraints = (GListModel *)gtk_filter_list_model_new (all_constraints, filter);
|
||||
|
||||
all_children = gtk_widget_observe_children (GTK_WIDGET (self));
|
||||
filter = GTK_FILTER (gtk_custom_filter_new (omit_internal, NULL, NULL));
|
||||
filter = gtk_custom_filter_new (omit_internal, NULL, NULL);
|
||||
children = (GListModel *)gtk_filter_list_model_new (all_children, filter);
|
||||
|
||||
list = g_list_store_new (G_TYPE_LIST_MODEL);
|
||||
|
||||
@@ -254,15 +254,11 @@ do_constraints (GtkWidget *do_widget)
|
||||
|
||||
if (!window)
|
||||
{
|
||||
GtkWidget *header, *box, *grid, *button;
|
||||
GtkWidget *box, *grid;
|
||||
|
||||
window = gtk_window_new ();
|
||||
gtk_window_set_display (GTK_WINDOW (window), gtk_widget_get_display (do_widget));
|
||||
gtk_window_set_title (GTK_WINDOW (window), "Constraints");
|
||||
|
||||
header = gtk_header_bar_new ();
|
||||
gtk_header_bar_set_show_title_buttons (GTK_HEADER_BAR (header), FALSE);
|
||||
gtk_window_set_titlebar (GTK_WINDOW (window), header);
|
||||
g_object_add_weak_pointer (G_OBJECT (window), (gpointer *)&window);
|
||||
|
||||
box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12);
|
||||
@@ -272,12 +268,6 @@ do_constraints (GtkWidget *do_widget)
|
||||
gtk_widget_set_hexpand (grid, TRUE);
|
||||
gtk_widget_set_vexpand (grid, TRUE);
|
||||
gtk_box_append (GTK_BOX (box), grid);
|
||||
|
||||
button = gtk_button_new_with_label ("Close");
|
||||
gtk_box_append (GTK_BOX (box), button);
|
||||
gtk_widget_set_hexpand (grid, TRUE);
|
||||
g_signal_connect_swapped (button, "clicked",
|
||||
G_CALLBACK (gtk_window_destroy), window);
|
||||
}
|
||||
|
||||
if (!gtk_widget_get_visible (window))
|
||||
|
||||
@@ -210,15 +210,11 @@ do_constraints2 (GtkWidget *do_widget)
|
||||
|
||||
if (!window)
|
||||
{
|
||||
GtkWidget *header, *box, *grid, *button;
|
||||
GtkWidget *box, *grid;
|
||||
|
||||
window = gtk_window_new ();
|
||||
gtk_window_set_display (GTK_WINDOW (window), gtk_widget_get_display (do_widget));
|
||||
gtk_window_set_title (GTK_WINDOW (window), "Constraints");
|
||||
|
||||
header = gtk_header_bar_new ();
|
||||
gtk_header_bar_set_show_title_buttons (GTK_HEADER_BAR (header), FALSE);
|
||||
gtk_window_set_titlebar (GTK_WINDOW (window), header);
|
||||
g_object_add_weak_pointer (G_OBJECT (window), (gpointer *)&window);
|
||||
|
||||
box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12);
|
||||
@@ -228,12 +224,6 @@ do_constraints2 (GtkWidget *do_widget)
|
||||
gtk_widget_set_hexpand (grid, TRUE);
|
||||
gtk_widget_set_vexpand (grid, TRUE);
|
||||
gtk_box_append (GTK_BOX (box), grid);
|
||||
|
||||
button = gtk_button_new_with_label ("Close");
|
||||
gtk_box_append (GTK_BOX (box), button);
|
||||
gtk_widget_set_hexpand (grid, TRUE);
|
||||
g_signal_connect_swapped (button, "clicked",
|
||||
G_CALLBACK (gtk_window_destroy), window);
|
||||
}
|
||||
|
||||
if (!gtk_widget_get_visible (window))
|
||||
|
||||
@@ -130,15 +130,11 @@ do_constraints3 (GtkWidget *do_widget)
|
||||
|
||||
if (!window)
|
||||
{
|
||||
GtkWidget *header, *box, *grid, *button;
|
||||
GtkWidget *box, *grid;
|
||||
|
||||
window = gtk_window_new ();
|
||||
gtk_window_set_display (GTK_WINDOW (window), gtk_widget_get_display (do_widget));
|
||||
gtk_window_set_title (GTK_WINDOW (window), "Constraints");
|
||||
|
||||
header = gtk_header_bar_new ();
|
||||
gtk_header_bar_set_show_title_buttons (GTK_HEADER_BAR (header), FALSE);
|
||||
gtk_window_set_titlebar (GTK_WINDOW (window), header);
|
||||
g_object_add_weak_pointer (G_OBJECT (window), (gpointer *)&window);
|
||||
|
||||
box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12);
|
||||
@@ -148,12 +144,6 @@ do_constraints3 (GtkWidget *do_widget)
|
||||
gtk_widget_set_hexpand (grid, TRUE);
|
||||
gtk_widget_set_vexpand (grid, TRUE);
|
||||
gtk_box_append (GTK_BOX (box), grid);
|
||||
|
||||
button = gtk_button_new_with_label ("Close");
|
||||
gtk_box_append (GTK_BOX (box), button);
|
||||
gtk_widget_set_hexpand (grid, TRUE);
|
||||
g_signal_connect_swapped (button, "clicked",
|
||||
G_CALLBACK (gtk_window_destroy), window);
|
||||
}
|
||||
|
||||
if (!gtk_widget_get_visible (window))
|
||||
|
||||
@@ -63,11 +63,15 @@ unit_to (graphene_point3d_t *p1,
|
||||
graphene_matrix_multiply (&s, &u, m);
|
||||
}
|
||||
|
||||
/* Make a 4x4 matrix that maps
|
||||
/* Compute a 4x4 matrix m that maps
|
||||
* p1 -> q1
|
||||
* p2 -> q2
|
||||
* p3 -> q3
|
||||
* p4 -> q4
|
||||
*
|
||||
* This is not in general possible, because projective
|
||||
* transforms preserve coplanarity. But in the cases we
|
||||
* care about here, both sets of points are always coplanar.
|
||||
*/
|
||||
void
|
||||
perspective_3d (graphene_point3d_t *p1,
|
||||
|
||||
@@ -1022,31 +1022,31 @@ do_listview_colors (GtkWidget *do_widget)
|
||||
/* An empty multisorter doesn't do any sorting and the sortmodel is
|
||||
* smart enough to know that.
|
||||
*/
|
||||
sorter = GTK_SORTER (gtk_multi_sorter_new ());
|
||||
sorter = gtk_multi_sorter_new ();
|
||||
set_title (sorter, "Unsorted");
|
||||
g_list_store_append (sorters, sorter);
|
||||
g_object_unref (sorter);
|
||||
|
||||
sorter = GTK_SORTER (gtk_string_sorter_new (gtk_property_expression_new (GTK_TYPE_COLOR, NULL, "name")));
|
||||
sorter = gtk_string_sorter_new (gtk_property_expression_new (GTK_TYPE_COLOR, NULL, "name"));
|
||||
set_title (sorter, "Name");
|
||||
g_list_store_append (sorters, sorter);
|
||||
g_object_unref (sorter);
|
||||
|
||||
multi_sorter = GTK_SORTER (gtk_multi_sorter_new ());
|
||||
multi_sorter = gtk_multi_sorter_new ();
|
||||
|
||||
sorter = GTK_SORTER (gtk_numeric_sorter_new (gtk_property_expression_new (GTK_TYPE_COLOR, NULL, "red")));
|
||||
sorter = gtk_numeric_sorter_new (gtk_property_expression_new (GTK_TYPE_COLOR, NULL, "red"));
|
||||
gtk_numeric_sorter_set_sort_order (GTK_NUMERIC_SORTER (sorter), GTK_SORT_DESCENDING);
|
||||
set_title (sorter, "Red");
|
||||
g_list_store_append (sorters, sorter);
|
||||
gtk_multi_sorter_append (GTK_MULTI_SORTER (multi_sorter), sorter);
|
||||
|
||||
sorter = GTK_SORTER (gtk_numeric_sorter_new (gtk_property_expression_new (GTK_TYPE_COLOR, NULL, "green")));
|
||||
sorter = gtk_numeric_sorter_new (gtk_property_expression_new (GTK_TYPE_COLOR, NULL, "green"));
|
||||
gtk_numeric_sorter_set_sort_order (GTK_NUMERIC_SORTER (sorter), GTK_SORT_DESCENDING);
|
||||
set_title (sorter, "Green");
|
||||
g_list_store_append (sorters, sorter);
|
||||
gtk_multi_sorter_append (GTK_MULTI_SORTER (multi_sorter), sorter);
|
||||
|
||||
sorter = GTK_SORTER (gtk_numeric_sorter_new (gtk_property_expression_new (GTK_TYPE_COLOR, NULL, "blue")));
|
||||
sorter = gtk_numeric_sorter_new (gtk_property_expression_new (GTK_TYPE_COLOR, NULL, "blue"));
|
||||
gtk_numeric_sorter_set_sort_order (GTK_NUMERIC_SORTER (sorter), GTK_SORT_DESCENDING);
|
||||
set_title (sorter, "Blue");
|
||||
g_list_store_append (sorters, sorter);
|
||||
@@ -1056,21 +1056,21 @@ do_listview_colors (GtkWidget *do_widget)
|
||||
g_list_store_append (sorters, multi_sorter);
|
||||
g_object_unref (multi_sorter);
|
||||
|
||||
multi_sorter = GTK_SORTER (gtk_multi_sorter_new ());
|
||||
multi_sorter = gtk_multi_sorter_new ();
|
||||
|
||||
sorter = GTK_SORTER (gtk_numeric_sorter_new (gtk_property_expression_new (GTK_TYPE_COLOR, NULL, "hue")));
|
||||
sorter = gtk_numeric_sorter_new (gtk_property_expression_new (GTK_TYPE_COLOR, NULL, "hue"));
|
||||
gtk_numeric_sorter_set_sort_order (GTK_NUMERIC_SORTER (sorter), GTK_SORT_DESCENDING);
|
||||
set_title (sorter, "Hue");
|
||||
g_list_store_append (sorters, sorter);
|
||||
gtk_multi_sorter_append (GTK_MULTI_SORTER (multi_sorter), sorter);
|
||||
|
||||
sorter = GTK_SORTER (gtk_numeric_sorter_new (gtk_property_expression_new (GTK_TYPE_COLOR, NULL, "saturation")));
|
||||
sorter = gtk_numeric_sorter_new (gtk_property_expression_new (GTK_TYPE_COLOR, NULL, "saturation"));
|
||||
gtk_numeric_sorter_set_sort_order (GTK_NUMERIC_SORTER (sorter), GTK_SORT_DESCENDING);
|
||||
set_title (sorter, "Saturation");
|
||||
g_list_store_append (sorters, sorter);
|
||||
gtk_multi_sorter_append (GTK_MULTI_SORTER (multi_sorter), sorter);
|
||||
|
||||
sorter = GTK_SORTER (gtk_numeric_sorter_new (gtk_property_expression_new (GTK_TYPE_COLOR, NULL, "value")));
|
||||
sorter = gtk_numeric_sorter_new (gtk_property_expression_new (GTK_TYPE_COLOR, NULL, "value"));
|
||||
gtk_numeric_sorter_set_sort_order (GTK_NUMERIC_SORTER (sorter), GTK_SORT_DESCENDING);
|
||||
set_title (sorter, "Value");
|
||||
g_list_store_append (sorters, sorter);
|
||||
|
||||
@@ -247,7 +247,7 @@ transform_settings_to_keys (GBinding *binding,
|
||||
sort_model = gtk_sort_list_model_new (G_LIST_MODEL (store),
|
||||
g_object_ref (gtk_column_view_get_sorter (GTK_COLUMN_VIEW (data))));
|
||||
|
||||
filter = GTK_FILTER (gtk_string_filter_new (gtk_property_expression_new (SETTINGS_TYPE_KEY, NULL, "name")));
|
||||
filter = gtk_string_filter_new (gtk_property_expression_new (SETTINGS_TYPE_KEY, NULL, "name"));
|
||||
g_set_object (¤t_filter, filter);
|
||||
filter_model = gtk_filter_list_model_new (G_LIST_MODEL (sort_model), filter);
|
||||
|
||||
|
||||
@@ -179,7 +179,7 @@ do_listview_words (GtkWidget *do_widget)
|
||||
}
|
||||
g_object_unref (file);
|
||||
|
||||
filter = GTK_FILTER (gtk_string_filter_new (gtk_property_expression_new (GTK_TYPE_STRING_OBJECT, NULL, "string")));
|
||||
filter = gtk_string_filter_new (gtk_property_expression_new (GTK_TYPE_STRING_OBJECT, NULL, "string"));
|
||||
filter_model = gtk_filter_list_model_new (G_LIST_MODEL (stringlist), filter);
|
||||
gtk_filter_list_model_set_incremental (filter_model, TRUE);
|
||||
|
||||
|
||||
@@ -695,11 +695,9 @@ filter_demo (GtkDemo *demo)
|
||||
}
|
||||
|
||||
static gboolean
|
||||
demo_filter_by_name (gpointer item,
|
||||
gpointer user_data)
|
||||
demo_filter_by_name (GtkTreeListRow *row,
|
||||
GtkFilterListModel *model)
|
||||
{
|
||||
GtkTreeListRow *row = item;
|
||||
GtkFilterListModel *model = user_data;
|
||||
GListModel *children;
|
||||
GtkDemo *demo;
|
||||
guint i, n;
|
||||
@@ -867,10 +865,9 @@ activate (GApplication *app)
|
||||
NULL,
|
||||
NULL);
|
||||
filter_model = gtk_filter_list_model_new (G_LIST_MODEL (treemodel), NULL);
|
||||
filter = GTK_FILTER (gtk_custom_filter_new (demo_filter_by_name, filter_model, NULL));
|
||||
filter = gtk_custom_filter_new ((GtkCustomFilterFunc)demo_filter_by_name, filter_model, NULL);
|
||||
gtk_filter_list_model_set_filter (filter_model, filter);
|
||||
g_object_unref (filter);
|
||||
|
||||
search_entry = GTK_WIDGET (gtk_builder_get_object (builder, "search-entry"));
|
||||
g_signal_connect (search_entry, "search-changed", G_CALLBACK (demo_search_changed_cb), filter);
|
||||
|
||||
|
||||
@@ -11,6 +11,20 @@
|
||||
|
||||
#define MAX_ITERATION_COUNT 30
|
||||
|
||||
/* Perform Householder reduction to bidiagonal form
|
||||
*
|
||||
* Input: Matrix A of size nrows x ncols
|
||||
*
|
||||
* Output: Matrices and vectors such that
|
||||
* A = U*Bidiag(diagonal, superdiagonal)*Vt
|
||||
*
|
||||
* All matrices are allocated by the caller
|
||||
*
|
||||
* Sizes:
|
||||
* A, U: nrows x ncols
|
||||
* diagonal, superdiagonal: ncols
|
||||
* V: ncols x ncols
|
||||
*/
|
||||
static void
|
||||
householder_reduction (double *A,
|
||||
int nrows,
|
||||
@@ -160,6 +174,20 @@ householder_reduction (double *A,
|
||||
}
|
||||
}
|
||||
|
||||
/* Perform Givens reduction
|
||||
*
|
||||
* Input: Matrices such that
|
||||
* A = U*Bidiag(diagonal,superdiagonal)*Vt
|
||||
*
|
||||
* Output: The same, with superdiagonal = 0
|
||||
*
|
||||
* All matrices are allocated by the caller
|
||||
*
|
||||
* Sizes:
|
||||
* U: nrows x ncols
|
||||
* diagonal, superdiagonal: ncols
|
||||
* V: ncols x ncols
|
||||
*/
|
||||
static int
|
||||
givens_reduction (int nrows,
|
||||
int ncols,
|
||||
@@ -298,6 +326,11 @@ givens_reduction (int nrows,
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Given a singular value decomposition
|
||||
* of an nrows x ncols matrix A = U*Diag(S)*Vt,
|
||||
* sort the values of S by decreasing value,
|
||||
* permuting V to match.
|
||||
*/
|
||||
static void
|
||||
sort_singular_values (int nrows,
|
||||
int ncols,
|
||||
@@ -339,6 +372,16 @@ sort_singular_values (int nrows,
|
||||
}
|
||||
}
|
||||
|
||||
/* Compute a singular value decomposition of A,
|
||||
* A = U*Diag(S)*Vt
|
||||
*
|
||||
* All matrices are allocated by the caller
|
||||
*
|
||||
* Sizes:
|
||||
* A, U: nrows x ncols
|
||||
* S: ncols
|
||||
* V: ncols x ncols
|
||||
*/
|
||||
int
|
||||
singular_value_decomposition (double *A,
|
||||
int nrows,
|
||||
@@ -364,6 +407,18 @@ singular_value_decomposition (double *A,
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Given a singular value decomposition of A = U*Diag(S)*Vt,
|
||||
* compute the best approximation x to A*x = B.
|
||||
*
|
||||
* All matrices are allocated by the caller
|
||||
*
|
||||
* Sizes:
|
||||
* U: nrows x ncols
|
||||
* S: ncols
|
||||
* V: ncols x ncols
|
||||
* B, x: ncols
|
||||
*/
|
||||
void
|
||||
singular_value_decomposition_solve (double *U,
|
||||
double *S,
|
||||
|
||||
@@ -357,7 +357,7 @@ icon_browser_window_init (IconBrowserWindow *win)
|
||||
|
||||
filter = gtk_filter_list_model_get_filter (GTK_FILTER_LIST_MODEL (win->icon_filter_model));
|
||||
|
||||
win->name_filter = GTK_FILTER (gtk_custom_filter_new (filter_by_icon_name, NULL, NULL));
|
||||
win->name_filter = gtk_custom_filter_new (filter_by_icon_name, NULL, NULL);
|
||||
|
||||
gtk_multi_filter_append (GTK_MULTI_FILTER (filter), g_object_ref (win->name_filter));
|
||||
}
|
||||
|
||||
@@ -594,6 +594,8 @@ void
|
||||
gsk_gl_driver_create_render_target (GskGLDriver *self,
|
||||
int width,
|
||||
int height,
|
||||
int min_filter,
|
||||
int mag_filter,
|
||||
int *out_texture_id,
|
||||
int *out_render_target_id)
|
||||
{
|
||||
@@ -604,7 +606,7 @@ gsk_gl_driver_create_render_target (GskGLDriver *self,
|
||||
|
||||
texture = create_texture (self, width, height);
|
||||
gsk_gl_driver_bind_source_texture (self, texture->texture_id);
|
||||
gsk_gl_driver_init_texture_empty (self, texture->texture_id, GL_NEAREST, GL_NEAREST);
|
||||
gsk_gl_driver_init_texture_empty (self, texture->texture_id, min_filter, mag_filter);
|
||||
|
||||
glGenFramebuffers (1, &fbo_id);
|
||||
glBindFramebuffer (GL_FRAMEBUFFER, fbo_id);
|
||||
|
||||
@@ -45,6 +45,8 @@ int gsk_gl_driver_create_texture (GskGLDriver *driver
|
||||
void gsk_gl_driver_create_render_target (GskGLDriver *driver,
|
||||
int width,
|
||||
int height,
|
||||
int min_filter,
|
||||
int mag_filter,
|
||||
int *out_texture_id,
|
||||
int *out_render_target_id);
|
||||
void gsk_gl_driver_mark_texture_permanent (GskGLDriver *self,
|
||||
|
||||
+81
-23
@@ -71,6 +71,7 @@ typedef enum
|
||||
RESET_OPACITY = 1 << 2,
|
||||
DUMP_FRAMEBUFFER = 1 << 3,
|
||||
NO_CACHE_PLZ = 1 << 5,
|
||||
LINEAR_FILTER = 1 << 6,
|
||||
} OffscreenFlags;
|
||||
|
||||
static inline void
|
||||
@@ -1000,6 +1001,38 @@ render_texture_node (GskGLRenderer *self,
|
||||
}
|
||||
}
|
||||
|
||||
/* Returns TRUE is applying transform to bounds
|
||||
* yields an axis-aligned rectangle
|
||||
*/
|
||||
static gboolean
|
||||
result_is_axis_aligned (GskTransform *transform,
|
||||
const graphene_rect_t *bounds)
|
||||
{
|
||||
graphene_matrix_t m;
|
||||
graphene_quad_t q;
|
||||
graphene_rect_t b;
|
||||
graphene_point_t b1, b2;
|
||||
const graphene_point_t *p;
|
||||
int i;
|
||||
|
||||
gsk_transform_to_matrix (transform, &m);
|
||||
gsk_matrix_transform_rect (&m, bounds, &q);
|
||||
graphene_quad_bounds (&q, &b);
|
||||
graphene_rect_get_top_left (&b, &b1);
|
||||
graphene_rect_get_bottom_right (&b, &b2);
|
||||
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
p = graphene_quad_get_point (&q, i);
|
||||
if (fabs (p->x - b1.x) > FLT_EPSILON && fabs (p->x - b2.x) > FLT_EPSILON)
|
||||
return FALSE;
|
||||
if (fabs (p->y - b1.y) > FLT_EPSILON && fabs (p->y - b2.y) > FLT_EPSILON)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static inline void
|
||||
render_transform_node (GskGLRenderer *self,
|
||||
GskRenderNode *node,
|
||||
@@ -1035,11 +1068,10 @@ render_transform_node (GskGLRenderer *self,
|
||||
}
|
||||
break;
|
||||
|
||||
case GSK_TRANSFORM_CATEGORY_UNKNOWN:
|
||||
case GSK_TRANSFORM_CATEGORY_ANY:
|
||||
case GSK_TRANSFORM_CATEGORY_3D:
|
||||
case GSK_TRANSFORM_CATEGORY_2D:
|
||||
default:
|
||||
case GSK_TRANSFORM_CATEGORY_3D:
|
||||
case GSK_TRANSFORM_CATEGORY_ANY:
|
||||
case GSK_TRANSFORM_CATEGORY_UNKNOWN:
|
||||
{
|
||||
TextureRegion region;
|
||||
gboolean is_offscreen;
|
||||
@@ -1050,29 +1082,42 @@ render_transform_node (GskGLRenderer *self,
|
||||
gsk_gl_renderer_add_render_ops (self, child, builder);
|
||||
ops_pop_modelview (builder);
|
||||
}
|
||||
else if (add_offscreen_ops (self, builder,
|
||||
else
|
||||
{
|
||||
int filter_flag = 0;
|
||||
|
||||
if (!result_is_axis_aligned (node_transform, &child->bounds))
|
||||
filter_flag = LINEAR_FILTER;
|
||||
|
||||
if (add_offscreen_ops (self, builder,
|
||||
&child->bounds,
|
||||
child,
|
||||
®ion, &is_offscreen,
|
||||
RESET_CLIP | RESET_OPACITY))
|
||||
{
|
||||
/* For non-trivial transforms, we draw everything on a texture and then
|
||||
* draw the texture transformed. */
|
||||
/* TODO: We should compute a modelview containing only the "non-trivial"
|
||||
* part (e.g. the rotation) and use that. We want to keep the scale
|
||||
* for the texture.
|
||||
*/
|
||||
ops_push_modelview (builder, node_transform);
|
||||
ops_set_texture (builder, region.texture_id);
|
||||
ops_set_program (builder, &self->programs->blit_program);
|
||||
RESET_CLIP | RESET_OPACITY | filter_flag))
|
||||
{
|
||||
/* For non-trivial transforms, we draw everything on a texture and then
|
||||
* draw the texture transformed. */
|
||||
/* TODO: We should compute a modelview containing only the "non-trivial"
|
||||
* part (e.g. the rotation) and use that. We want to keep the scale
|
||||
* for the texture.
|
||||
*/
|
||||
ops_push_modelview (builder, node_transform);
|
||||
ops_set_texture (builder, region.texture_id);
|
||||
ops_set_program (builder, &self->programs->blit_program);
|
||||
|
||||
load_vertex_data_with_region (ops_draw (builder, NULL),
|
||||
child, builder,
|
||||
®ion,
|
||||
is_offscreen);
|
||||
ops_pop_modelview (builder);
|
||||
load_vertex_data_with_region (ops_draw (builder, NULL),
|
||||
child, builder,
|
||||
®ion,
|
||||
is_offscreen);
|
||||
ops_pop_modelview (builder);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
g_assert_not_reached ();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1451,10 +1496,12 @@ blur_texture (GskGLRenderer *self,
|
||||
|
||||
gsk_gl_driver_create_render_target (self->gl_driver,
|
||||
texture_to_blur_width, texture_to_blur_height,
|
||||
GL_NEAREST, GL_NEAREST,
|
||||
&pass1_texture_id, &pass1_render_target);
|
||||
|
||||
gsk_gl_driver_create_render_target (self->gl_driver,
|
||||
texture_to_blur_width, texture_to_blur_height,
|
||||
GL_NEAREST, GL_NEAREST,
|
||||
&pass2_texture_id, &pass2_render_target);
|
||||
|
||||
graphene_matrix_init_ortho (&item_proj,
|
||||
@@ -1696,6 +1743,7 @@ render_inset_shadow_node (GskGLRenderer *self,
|
||||
|
||||
gsk_gl_driver_create_render_target (self->gl_driver,
|
||||
texture_width, texture_height,
|
||||
GL_NEAREST, GL_NEAREST,
|
||||
&texture_id, &render_target);
|
||||
|
||||
graphene_matrix_init_ortho (&item_proj,
|
||||
@@ -1869,7 +1917,9 @@ render_outset_shadow_node (GskGLRenderer *self,
|
||||
graphene_rect_t prev_viewport;
|
||||
graphene_matrix_t item_proj;
|
||||
|
||||
gsk_gl_driver_create_render_target (self->gl_driver, texture_width, texture_height,
|
||||
gsk_gl_driver_create_render_target (self->gl_driver,
|
||||
texture_width, texture_height,
|
||||
GL_NEAREST, GL_NEAREST,
|
||||
&texture_id, &render_target);
|
||||
if (gdk_gl_context_has_debug (self->gl_context))
|
||||
{
|
||||
@@ -3349,6 +3399,7 @@ add_offscreen_ops (GskGLRenderer *self,
|
||||
float prev_opacity = 1.0;
|
||||
int texture_id = 0;
|
||||
int max_texture_size;
|
||||
int filter;
|
||||
|
||||
if (node_is_invisible (child_node))
|
||||
{
|
||||
@@ -3401,7 +3452,14 @@ add_offscreen_ops (GskGLRenderer *self,
|
||||
width = ceilf (width * scale);
|
||||
height = ceilf (height * scale);
|
||||
|
||||
gsk_gl_driver_create_render_target (self->gl_driver, width, height, &texture_id, &render_target);
|
||||
if (flags & LINEAR_FILTER)
|
||||
filter = GL_LINEAR;
|
||||
else
|
||||
filter = GL_NEAREST;
|
||||
gsk_gl_driver_create_render_target (self->gl_driver,
|
||||
width, height,
|
||||
filter, filter,
|
||||
&texture_id, &render_target);
|
||||
if (gdk_gl_context_has_debug (self->gl_context))
|
||||
{
|
||||
gdk_gl_context_label_object_printf (self->gl_context, GL_TEXTURE, texture_id,
|
||||
|
||||
+5
-5
@@ -510,6 +510,7 @@ get_renderer_for_name (const char *renderer_name)
|
||||
#endif
|
||||
g_print (" cairo - Use the Cairo fallback renderer\n");
|
||||
g_print (" opengl - Use the default OpenGL renderer\n");
|
||||
g_print (" gl - Same as opengl\n");
|
||||
#ifdef GDK_RENDERING_VULKAN
|
||||
g_print (" vulkan - Use the Vulkan renderer\n");
|
||||
#else
|
||||
@@ -636,11 +637,10 @@ gsk_renderer_new_for_surface (GdkSurface *surface)
|
||||
return renderer;
|
||||
}
|
||||
|
||||
GSK_RENDERER_NOTE (renderer, RENDERER,
|
||||
g_message ("Failed to realize renderer of type '%s' for surface '%s': %s\n",
|
||||
G_OBJECT_TYPE_NAME (renderer),
|
||||
G_OBJECT_TYPE_NAME (surface),
|
||||
error->message));
|
||||
g_message ("Failed to realize renderer of type '%s' for surface '%s': %s\n",
|
||||
G_OBJECT_TYPE_NAME (renderer),
|
||||
G_OBJECT_TYPE_NAME (surface),
|
||||
error->message);
|
||||
g_object_unref (renderer);
|
||||
g_clear_error (&error);
|
||||
}
|
||||
|
||||
+14
-13
@@ -2204,13 +2204,11 @@ gsk_matrix_transform_point3d (const graphene_matrix_t *m,
|
||||
}
|
||||
|
||||
void
|
||||
gsk_matrix_transform_bounds (const graphene_matrix_t *m,
|
||||
const graphene_rect_t *r,
|
||||
graphene_rect_t *res)
|
||||
gsk_matrix_transform_rect (const graphene_matrix_t *m,
|
||||
const graphene_rect_t *r,
|
||||
graphene_quad_t *res)
|
||||
{
|
||||
graphene_point_t ret[4];
|
||||
float min_x, min_y;
|
||||
float max_x, max_y;
|
||||
graphene_rect_t rr;
|
||||
|
||||
graphene_rect_normalize_r (r, &rr);
|
||||
@@ -2233,12 +2231,15 @@ gsk_matrix_transform_bounds (const graphene_matrix_t *m,
|
||||
|
||||
#undef TRANSFORM_POINT
|
||||
|
||||
/* FIXME: graphene doesn't export a fast way to do this */
|
||||
min_x = MIN (MIN (ret[0].x, ret[1].x), MIN (ret[2].x, ret[3].x));
|
||||
min_y = MIN (MIN (ret[0].y, ret[1].y), MIN (ret[2].y, ret[3].y));
|
||||
|
||||
max_x = MAX (MAX (ret[0].x, ret[1].x), MAX (ret[2].x, ret[3].x));
|
||||
max_y = MAX (MAX (ret[0].y, ret[1].y), MAX (ret[2].y, ret[3].y));
|
||||
|
||||
graphene_rect_init (res, min_x, min_y, max_x - min_x, max_y - min_y);
|
||||
graphene_quad_init (res, &ret[0], &ret[1], &ret[2], &ret[3]);
|
||||
}
|
||||
void
|
||||
gsk_matrix_transform_bounds (const graphene_matrix_t *m,
|
||||
const graphene_rect_t *r,
|
||||
graphene_rect_t *res)
|
||||
{
|
||||
graphene_quad_t q;
|
||||
|
||||
gsk_matrix_transform_rect (m, r, &q);
|
||||
graphene_quad_bounds (&q, res);
|
||||
}
|
||||
|
||||
@@ -41,7 +41,9 @@ void gsk_matrix_transform_point3d (const graphene_matrix_t *m,
|
||||
void gsk_matrix_transform_bounds (const graphene_matrix_t *m,
|
||||
const graphene_rect_t *r,
|
||||
graphene_rect_t *res);
|
||||
|
||||
void gsk_matrix_transform_rect (const graphene_matrix_t *m,
|
||||
const graphene_rect_t *r,
|
||||
graphene_quad_t *res);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
|
||||
@@ -205,6 +205,7 @@
|
||||
#include <gtk/gtkrecentmanager.h>
|
||||
#include <gtk/gtkrender.h>
|
||||
#include <gtk/gtkrevealer.h>
|
||||
#include <gtk/gtkreverselistmodel.h>
|
||||
#include <gtk/gtkroot.h>
|
||||
#include <gtk/gtkscale.h>
|
||||
#include <gtk/gtkscalebutton.h>
|
||||
|
||||
@@ -2042,6 +2042,8 @@ text_buffer_new (GtkAboutDialog *about,
|
||||
gtk_text_buffer_get_end_iter (buffer, &end_iter);
|
||||
gtk_text_buffer_apply_tag (buffer, tag, &start_iter, &end_iter);
|
||||
|
||||
gtk_text_buffer_set_enable_undo (buffer, FALSE);
|
||||
|
||||
return buffer;
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -195,10 +195,10 @@ gtk_bool_filter_init (GtkBoolFilter *self)
|
||||
*
|
||||
* Returns: a new #GtkBoolFilter
|
||||
**/
|
||||
GtkBoolFilter *
|
||||
GtkFilter *
|
||||
gtk_bool_filter_new (GtkExpression *expression)
|
||||
{
|
||||
GtkBoolFilter *result;
|
||||
GtkFilter *result;
|
||||
|
||||
result = g_object_new (GTK_TYPE_BOOL_FILTER,
|
||||
"expression", expression,
|
||||
|
||||
+1
-1
@@ -34,7 +34,7 @@ GDK_AVAILABLE_IN_ALL
|
||||
G_DECLARE_FINAL_TYPE (GtkBoolFilter, gtk_bool_filter, GTK, BOOL_FILTER, GtkFilter)
|
||||
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GtkBoolFilter * gtk_bool_filter_new (GtkExpression *expression);
|
||||
GtkFilter * gtk_bool_filter_new (GtkExpression *expression);
|
||||
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GtkExpression * gtk_bool_filter_get_expression (GtkBoolFilter *self);
|
||||
|
||||
+4
-5
@@ -58,10 +58,9 @@
|
||||
* separators between the rows or columns.
|
||||
*
|
||||
* GtkColumnView allows the user to select items according to the selection
|
||||
* characteristics of the model. If the provided model is not a #GtkSelectionModel,
|
||||
* GtkColumnView will wrap it in a #GtkSingleSelection. For models that allow
|
||||
* multiple selected items, it is possible to turn on *rubberband selection*,
|
||||
* using #GtkColumnView:enable-rubberband.
|
||||
* characteristics of the model. For models that allow multiple selected items,
|
||||
* it is possible to turn on *rubberband selection*, using
|
||||
* #GtkColumnView:enable-rubberband.
|
||||
*
|
||||
* The column view supports sorting that can be customized by the user by
|
||||
* clicking on column headers. To set this up, the #GtkSorter returned by
|
||||
@@ -1163,7 +1162,7 @@ gtk_column_view_init (GtkColumnView *self)
|
||||
g_signal_connect (controller, "leave", G_CALLBACK (gtk_column_view_drag_leave), NULL);
|
||||
gtk_widget_add_controller (GTK_WIDGET (self), controller);
|
||||
|
||||
self->sorter = GTK_SORTER (gtk_column_view_sorter_new ());
|
||||
self->sorter = gtk_column_view_sorter_new ();
|
||||
self->factory = gtk_column_list_item_factory_new (self);
|
||||
self->listview = GTK_LIST_VIEW (gtk_list_view_new (NULL,
|
||||
GTK_LIST_ITEM_FACTORY (g_object_ref (self->factory))));
|
||||
|
||||
@@ -146,7 +146,7 @@ gtk_column_view_sorter_init (GtkColumnViewSorter *self)
|
||||
self->sorters = g_sequence_new (free_sorter);
|
||||
}
|
||||
|
||||
GtkColumnViewSorter *
|
||||
GtkSorter *
|
||||
gtk_column_view_sorter_new (void)
|
||||
{
|
||||
return g_object_new (GTK_TYPE_COLUMN_VIEW_SORTER, NULL);
|
||||
|
||||
@@ -34,7 +34,7 @@ G_BEGIN_DECLS
|
||||
|
||||
G_DECLARE_FINAL_TYPE (GtkColumnViewSorter, gtk_column_view_sorter, GTK, COLUMN_VIEW_SORTER, GtkSorter)
|
||||
|
||||
GtkColumnViewSorter * gtk_column_view_sorter_new (void);
|
||||
GtkSorter * gtk_column_view_sorter_new (void);
|
||||
|
||||
gboolean gtk_column_view_sorter_add_column (GtkColumnViewSorter *self,
|
||||
GtkColumnViewColumn *column);
|
||||
|
||||
@@ -108,9 +108,9 @@ gtk_custom_filter_init (GtkCustomFilter *self)
|
||||
* If the filter func changes its filtering behavior,
|
||||
* gtk_filter_changed() needs to be called.
|
||||
*
|
||||
* Returns: a new #GtkCustomFilter
|
||||
* Returns: a new #GtkFilter
|
||||
**/
|
||||
GtkCustomFilter *
|
||||
GtkFilter *
|
||||
gtk_custom_filter_new (GtkCustomFilterFunc match_func,
|
||||
gpointer user_data,
|
||||
GDestroyNotify user_destroy)
|
||||
@@ -121,7 +121,7 @@ gtk_custom_filter_new (GtkCustomFilterFunc match_func,
|
||||
|
||||
gtk_custom_filter_set_filter_func (result, match_func, user_data, user_destroy);
|
||||
|
||||
return result;
|
||||
return GTK_FILTER (result);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -45,7 +45,7 @@ typedef gboolean (* GtkCustomFilterFunc) (gpointer item, gpointer user_data);
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
G_DECLARE_FINAL_TYPE (GtkCustomFilter, gtk_custom_filter, GTK, CUSTOM_FILTER, GtkFilter)
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GtkCustomFilter * gtk_custom_filter_new (GtkCustomFilterFunc match_func,
|
||||
GtkFilter * gtk_custom_filter_new (GtkCustomFilterFunc match_func,
|
||||
gpointer user_data,
|
||||
GDestroyNotify user_destroy);
|
||||
|
||||
|
||||
@@ -323,7 +323,7 @@ gtk_custom_paper_unix_dialog_init (GtkCustomPaperUnixDialog *dialog)
|
||||
|
||||
full_list = G_LIST_MODEL (gtk_flatten_list_model_new (G_LIST_MODEL (printer_list_list)));
|
||||
|
||||
filter = GTK_FILTER (gtk_custom_filter_new (match_func, NULL, NULL));
|
||||
filter = gtk_custom_filter_new (match_func, NULL, NULL);
|
||||
dialog->printer_list = G_LIST_MODEL (gtk_filter_list_model_new (full_list, filter));
|
||||
|
||||
dialog->custom_paper_list = g_list_store_new (GTK_TYPE_PAGE_SETUP);
|
||||
|
||||
@@ -110,9 +110,9 @@ gtk_custom_sorter_init (GtkCustomSorter *self)
|
||||
*
|
||||
* If @sort_func is %NULL, all items are considered equal.
|
||||
*
|
||||
* Returns: a new #GtkCustomSorter
|
||||
* Returns: a new #GtkSorter
|
||||
*/
|
||||
GtkCustomSorter *
|
||||
GtkSorter *
|
||||
gtk_custom_sorter_new (GCompareDataFunc sort_func,
|
||||
gpointer user_data,
|
||||
GDestroyNotify user_destroy)
|
||||
@@ -123,7 +123,7 @@ gtk_custom_sorter_new (GCompareDataFunc sort_func,
|
||||
|
||||
gtk_custom_sorter_set_sort_func (sorter, sort_func, user_data, user_destroy);
|
||||
|
||||
return sorter;
|
||||
return GTK_SORTER (sorter);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -34,7 +34,7 @@ GDK_AVAILABLE_IN_ALL
|
||||
G_DECLARE_FINAL_TYPE (GtkCustomSorter, gtk_custom_sorter, GTK, CUSTOM_SORTER, GtkSorter)
|
||||
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GtkCustomSorter * gtk_custom_sorter_new (GCompareDataFunc sort_func,
|
||||
GtkSorter * gtk_custom_sorter_new (GCompareDataFunc sort_func,
|
||||
gpointer user_data,
|
||||
GDestroyNotify user_destroy);
|
||||
|
||||
|
||||
+3
-3
@@ -203,11 +203,11 @@ update_filter (GtkDropDown *self)
|
||||
|
||||
if (self->expression)
|
||||
{
|
||||
filter = GTK_FILTER (gtk_string_filter_new (gtk_expression_ref (self->expression)));
|
||||
filter = gtk_string_filter_new (gtk_expression_ref (self->expression));
|
||||
gtk_string_filter_set_match_mode (GTK_STRING_FILTER (filter), GTK_STRING_FILTER_MATCH_MODE_PREFIX);
|
||||
}
|
||||
else
|
||||
filter = GTK_FILTER (gtk_every_filter_new ());
|
||||
filter = gtk_every_filter_new ();
|
||||
gtk_filter_list_model_set_filter (GTK_FILTER_LIST_MODEL (self->filter_model), filter);
|
||||
g_object_unref (filter);
|
||||
}
|
||||
@@ -909,7 +909,7 @@ gtk_drop_down_get_enable_search (GtkDropDown *self)
|
||||
*
|
||||
* Sets the expression that gets evaluated to obtain strings from items
|
||||
* when searching in the popup. The expression must have a value type of
|
||||
* #GTK_TYPE_STRING.
|
||||
* #G_TYPE_STRING.
|
||||
*/
|
||||
void
|
||||
gtk_drop_down_set_expression (GtkDropDown *self,
|
||||
|
||||
+3
-4
@@ -55,10 +55,9 @@
|
||||
* grid reflows vertically or horizontally.
|
||||
*
|
||||
* GtkGridView allows the user to select items according to the selection
|
||||
* characteristics of the model. If the provided model is not a #GtkSelectionModel,
|
||||
* GtkGridView will wrap it in a #GtkSingleSelection. For models that allow
|
||||
* multiple selected items, it is possible to turn on _rubberband selection_,
|
||||
* using #GtkGridView:enable-rubberband.
|
||||
* characteristics of the model. For models that allow multiple selected items,
|
||||
* it is possible to turn on _rubberband selection_, using
|
||||
* #GtkGridView:enable-rubberband.
|
||||
*
|
||||
* To learn more about the list widget framework, see the [overview](#ListWidget).
|
||||
*
|
||||
|
||||
+5
-6
@@ -54,10 +54,9 @@
|
||||
* between the rows.
|
||||
*
|
||||
* GtkListView allows the user to select items according to the selection
|
||||
* characteristics of the model. If the provided model is not a #GtkSelectionModel,
|
||||
* GtkListView will wrap it in a #GtkSingleSelection. For models that allow
|
||||
* multiple selected items, it is possible to turn on _rubberband selection_,
|
||||
* using #GtkListView:enable-rubberband.
|
||||
* characteristics of the model. For models that allow multiple selected items,
|
||||
* it is possible to turn on _rubberband selection_, using
|
||||
* #GtkListView:enable-rubberband.
|
||||
*
|
||||
* If you need multiple columns with headers, see #GtkColumnView.
|
||||
*
|
||||
@@ -95,7 +94,7 @@
|
||||
* {
|
||||
* GAppInfo *app_info;
|
||||
*
|
||||
* app_info = g_list_model_get_item (gtk_list_view_get_model (list), position);
|
||||
* app_info = g_list_model_get_item (G_LIST_MODEL (gtk_list_view_get_model (list)), position);
|
||||
* g_app_info_launch (app_info, NULL, NULL, NULL);
|
||||
* g_object_unref (app_info);
|
||||
* }
|
||||
@@ -108,7 +107,7 @@
|
||||
* g_signal_connect (factory, "setup", G_CALLBACK (setup_listitem_cb), NULL);
|
||||
* g_signal_connect (factory, "bind", G_CALLBACK (bind_listitem_cb), NULL);
|
||||
*
|
||||
* list = gtk_list_view_new (model, factory);
|
||||
* list = gtk_list_view_new (GTK_SELECTION_MODEL (gtk_single_selection_new (model)), factory);
|
||||
*
|
||||
* g_signal_connect (list, "activate", G_CALLBACK (activate_cb), NULL);
|
||||
*
|
||||
|
||||
@@ -302,9 +302,9 @@ gtk_any_filter_init (GtkAnyFilter *self)
|
||||
* In particular, this means that if no filter has been added to
|
||||
* it, the filter matches no item.
|
||||
*
|
||||
* Returns: a new #GtkAnyFilter
|
||||
* Returns: a new #GtkFilter
|
||||
**/
|
||||
GtkAnyFilter *
|
||||
GtkFilter *
|
||||
gtk_any_filter_new (void)
|
||||
{
|
||||
return g_object_new (GTK_TYPE_ANY_FILTER, NULL);
|
||||
@@ -400,9 +400,9 @@ gtk_every_filter_init (GtkEveryFilter *self)
|
||||
* In particular, this means that if no filter has been added to
|
||||
* it, the filter matches every item.
|
||||
*
|
||||
* Returns: a new #GtkEveryFilter
|
||||
* Returns: a new #GtkFilter
|
||||
**/
|
||||
GtkEveryFilter *
|
||||
GtkFilter *
|
||||
gtk_every_filter_new (void)
|
||||
{
|
||||
return g_object_new (GTK_TYPE_EVERY_FILTER, NULL);
|
||||
|
||||
@@ -44,13 +44,13 @@ void gtk_multi_filter_remove (GtkMultiFilter
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GDK_DECLARE_INTERNAL_TYPE (GtkAnyFilter, gtk_any_filter, GTK, ANY_FILTER, GtkMultiFilter)
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GtkAnyFilter * gtk_any_filter_new (void);
|
||||
GtkFilter * gtk_any_filter_new (void);
|
||||
|
||||
#define GTK_TYPE_EVERY_FILTER (gtk_every_filter_get_type ())
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GDK_DECLARE_INTERNAL_TYPE (GtkEveryFilter, gtk_every_filter, GTK, EVERY_FILTER, GtkMultiFilter)
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GtkEveryFilter * gtk_every_filter_new (void);
|
||||
GtkFilter * gtk_every_filter_new (void);
|
||||
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
@@ -375,9 +375,9 @@ gtk_multi_sorter_init (GtkMultiSorter *self)
|
||||
* no sorter has been added to it, it will always compare
|
||||
* items as equal.
|
||||
*
|
||||
* Returns: a new #GtkMultiSorter
|
||||
* Returns: a new #GtkSorter
|
||||
*/
|
||||
GtkMultiSorter *
|
||||
GtkSorter *
|
||||
gtk_multi_sorter_new (void)
|
||||
{
|
||||
return g_object_new (GTK_TYPE_MULTI_SORTER, NULL);
|
||||
|
||||
@@ -34,7 +34,7 @@ GDK_AVAILABLE_IN_ALL
|
||||
G_DECLARE_FINAL_TYPE (GtkMultiSorter, gtk_multi_sorter, GTK, MULTI_SORTER, GtkSorter)
|
||||
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GtkMultiSorter * gtk_multi_sorter_new (void);
|
||||
GtkSorter * gtk_multi_sorter_new (void);
|
||||
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
void gtk_multi_sorter_append (GtkMultiSorter *self,
|
||||
|
||||
@@ -587,12 +587,12 @@ gtk_numeric_sorter_init (GtkNumericSorter *self)
|
||||
* Smaller numbers will be sorted first. You can call
|
||||
* gtk_numeric_sorter_set_sort_order() to change this.
|
||||
*
|
||||
* Returns: a new #GtkNumericSorter
|
||||
* Returns: a new #GtkSorter
|
||||
*/
|
||||
GtkNumericSorter *
|
||||
GtkSorter *
|
||||
gtk_numeric_sorter_new (GtkExpression *expression)
|
||||
{
|
||||
GtkNumericSorter *result;
|
||||
GtkSorter *result;
|
||||
|
||||
result = g_object_new (GTK_TYPE_NUMERIC_SORTER,
|
||||
"expression", expression,
|
||||
|
||||
@@ -34,7 +34,7 @@ GDK_AVAILABLE_IN_ALL
|
||||
G_DECLARE_FINAL_TYPE (GtkNumericSorter, gtk_numeric_sorter, GTK, NUMERIC_SORTER, GtkSorter)
|
||||
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GtkNumericSorter * gtk_numeric_sorter_new (GtkExpression *expression);
|
||||
GtkSorter * gtk_numeric_sorter_new (GtkExpression *expression);
|
||||
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GtkExpression * gtk_numeric_sorter_get_expression (GtkNumericSorter *self);
|
||||
|
||||
@@ -324,7 +324,7 @@ gtk_page_setup_unix_dialog_init (GtkPageSetupUnixDialog *dialog)
|
||||
|
||||
full_list = G_LIST_MODEL (gtk_flatten_list_model_new (G_LIST_MODEL (printer_list_list)));
|
||||
|
||||
filter = GTK_FILTER (gtk_custom_filter_new (match_func, NULL, NULL));
|
||||
filter = gtk_custom_filter_new (match_func, NULL, NULL);
|
||||
dialog->printer_list = G_LIST_MODEL (gtk_filter_list_model_new (full_list, filter));
|
||||
|
||||
factory = gtk_signal_list_item_factory_new ();
|
||||
|
||||
@@ -742,8 +742,7 @@ gtk_print_unix_dialog_init (GtkPrintUnixDialog *dialog)
|
||||
GListModel *selection;
|
||||
GtkSorter *sorter;
|
||||
GtkFilter *filter;
|
||||
GtkStringFilter *filter1;
|
||||
GtkCustomFilter *filter2;
|
||||
GtkFilter *filter1;
|
||||
GtkListItemFactory *factory;
|
||||
GListStore *store;
|
||||
GListModel *paper_size_list;
|
||||
@@ -811,22 +810,22 @@ gtk_print_unix_dialog_init (GtkPrintUnixDialog *dialog)
|
||||
|
||||
/* Load backends */
|
||||
model = load_print_backends (dialog);
|
||||
sorter = GTK_SORTER (gtk_custom_sorter_new (default_printer_list_sort_func, NULL, NULL));
|
||||
sorter = gtk_custom_sorter_new (default_printer_list_sort_func, NULL, NULL);
|
||||
sorted = G_LIST_MODEL (gtk_sort_list_model_new (model, sorter));
|
||||
|
||||
filter = GTK_FILTER (gtk_every_filter_new ());
|
||||
filter = gtk_every_filter_new ();
|
||||
|
||||
filter1 = gtk_string_filter_new (
|
||||
gtk_cclosure_expression_new (G_TYPE_STRING,
|
||||
NULL, 0, NULL,
|
||||
G_CALLBACK (get_printer_key),
|
||||
NULL, NULL));
|
||||
gtk_string_filter_set_match_mode (filter1, GTK_STRING_FILTER_MATCH_MODE_SUBSTRING);
|
||||
gtk_string_filter_set_ignore_case (filter1, TRUE);
|
||||
gtk_multi_filter_append (GTK_MULTI_FILTER (filter), GTK_FILTER (filter1));
|
||||
gtk_string_filter_set_match_mode (GTK_STRING_FILTER (filter1), GTK_STRING_FILTER_MATCH_MODE_SUBSTRING);
|
||||
gtk_string_filter_set_ignore_case (GTK_STRING_FILTER (filter1), TRUE);
|
||||
gtk_multi_filter_append (GTK_MULTI_FILTER (filter), filter1);
|
||||
|
||||
filter2 = gtk_custom_filter_new (is_printer_active, dialog, NULL);
|
||||
gtk_multi_filter_append (GTK_MULTI_FILTER (filter), GTK_FILTER (filter2));
|
||||
filter1 = gtk_custom_filter_new (is_printer_active, dialog, NULL);
|
||||
gtk_multi_filter_append (GTK_MULTI_FILTER (filter), filter1);
|
||||
|
||||
filtered = G_LIST_MODEL (gtk_filter_list_model_new (sorted, filter));
|
||||
|
||||
|
||||
@@ -0,0 +1,290 @@
|
||||
/*
|
||||
* Copyright © 2020 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.1 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/>.
|
||||
*
|
||||
* Authors: Matthias Clasen
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include "gtkreverselistmodel.h"
|
||||
|
||||
#include "gtkintl.h"
|
||||
#include "gtkprivate.h"
|
||||
|
||||
/**
|
||||
* SECTION:gtkreverselistmodel
|
||||
* @title: GtkReverseListModel
|
||||
* @short_description: A list model that reverses the order of a list model
|
||||
* @see_also: #GListModel
|
||||
*
|
||||
* #GtkReverseListModel is a list model that takes a list model and reverses
|
||||
* the order of that model.
|
||||
*/
|
||||
|
||||
enum {
|
||||
PROP_0,
|
||||
PROP_MODEL,
|
||||
NUM_PROPERTIES
|
||||
};
|
||||
|
||||
struct _GtkReverseListModel
|
||||
{
|
||||
GObject parent_instance;
|
||||
|
||||
GListModel *model;
|
||||
};
|
||||
|
||||
struct _GtkReverseListModelClass
|
||||
{
|
||||
GObjectClass parent_class;
|
||||
};
|
||||
|
||||
static GParamSpec *properties[NUM_PROPERTIES] = { NULL, };
|
||||
|
||||
static GType
|
||||
gtk_reverse_list_model_get_item_type (GListModel *list)
|
||||
{
|
||||
return G_TYPE_OBJECT;
|
||||
}
|
||||
|
||||
static guint
|
||||
gtk_reverse_list_model_get_n_items (GListModel *list)
|
||||
{
|
||||
GtkReverseListModel *self = GTK_REVERSE_LIST_MODEL (list);
|
||||
|
||||
if (self->model == NULL)
|
||||
return 0;
|
||||
|
||||
return g_list_model_get_n_items (self->model);
|
||||
}
|
||||
|
||||
static gpointer
|
||||
gtk_reverse_list_model_get_item (GListModel *list,
|
||||
guint position)
|
||||
{
|
||||
GtkReverseListModel *self = GTK_REVERSE_LIST_MODEL (list);
|
||||
guint n_items;
|
||||
|
||||
if (self->model == NULL)
|
||||
return NULL;
|
||||
|
||||
n_items = g_list_model_get_n_items (self->model);
|
||||
|
||||
if (position >= n_items)
|
||||
return NULL;
|
||||
|
||||
return g_list_model_get_item (self->model, n_items - 1 - position);
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_reverse_list_model_model_init (GListModelInterface *iface)
|
||||
{
|
||||
iface->get_item_type = gtk_reverse_list_model_get_item_type;
|
||||
iface->get_n_items = gtk_reverse_list_model_get_n_items;
|
||||
iface->get_item = gtk_reverse_list_model_get_item;
|
||||
}
|
||||
|
||||
G_DEFINE_TYPE_WITH_CODE (GtkReverseListModel, gtk_reverse_list_model, G_TYPE_OBJECT,
|
||||
G_IMPLEMENT_INTERFACE (G_TYPE_LIST_MODEL, gtk_reverse_list_model_model_init))
|
||||
|
||||
static void
|
||||
gtk_reverse_list_model_items_changed_cb (GListModel *model,
|
||||
guint position,
|
||||
guint removed,
|
||||
guint added,
|
||||
GtkReverseListModel *self)
|
||||
{
|
||||
guint n_items;
|
||||
guint position_before;
|
||||
|
||||
n_items = g_list_model_get_n_items (model);
|
||||
|
||||
position_before = (n_items - added + removed) - 1 - (position + removed - 1);
|
||||
|
||||
g_list_model_items_changed (G_LIST_MODEL (self), position_before, removed, added);
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_reverse_list_model_set_property (GObject *object,
|
||||
guint prop_id,
|
||||
const GValue *value,
|
||||
GParamSpec *pspec)
|
||||
{
|
||||
GtkReverseListModel *self = GTK_REVERSE_LIST_MODEL (object);
|
||||
|
||||
switch (prop_id)
|
||||
{
|
||||
case PROP_MODEL:
|
||||
gtk_reverse_list_model_set_model (self, g_value_get_object (value));
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_reverse_list_model_get_property (GObject *object,
|
||||
guint prop_id,
|
||||
GValue *value,
|
||||
GParamSpec *pspec)
|
||||
{
|
||||
GtkReverseListModel *self = GTK_REVERSE_LIST_MODEL (object);
|
||||
|
||||
switch (prop_id)
|
||||
{
|
||||
case PROP_MODEL:
|
||||
g_value_set_object (value, self->model);
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_reverse_list_model_clear_model (GtkReverseListModel *self)
|
||||
{
|
||||
if (self->model == NULL)
|
||||
return;
|
||||
|
||||
g_signal_handlers_disconnect_by_func (self->model, gtk_reverse_list_model_items_changed_cb, self);
|
||||
g_clear_object (&self->model);
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_reverse_list_model_dispose (GObject *object)
|
||||
{
|
||||
GtkReverseListModel *self = GTK_REVERSE_LIST_MODEL (object);
|
||||
|
||||
gtk_reverse_list_model_clear_model (self);
|
||||
|
||||
G_OBJECT_CLASS (gtk_reverse_list_model_parent_class)->dispose (object);
|
||||
};
|
||||
|
||||
static void
|
||||
gtk_reverse_list_model_class_init (GtkReverseListModelClass *class)
|
||||
{
|
||||
GObjectClass *gobject_class = G_OBJECT_CLASS (class);
|
||||
|
||||
gobject_class->set_property = gtk_reverse_list_model_set_property;
|
||||
gobject_class->get_property = gtk_reverse_list_model_get_property;
|
||||
gobject_class->dispose = gtk_reverse_list_model_dispose;
|
||||
|
||||
/**
|
||||
* GtkReverseListModel:model:
|
||||
*
|
||||
* Child model to revert
|
||||
*/
|
||||
properties[PROP_MODEL] =
|
||||
g_param_spec_object ("model",
|
||||
P_("Model"),
|
||||
P_("Child model to revert"),
|
||||
G_TYPE_LIST_MODEL,
|
||||
GTK_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
|
||||
|
||||
g_object_class_install_properties (gobject_class, NUM_PROPERTIES, properties);
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_reverse_list_model_init (GtkReverseListModel *self)
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* gtk_reverse_list_model_new:
|
||||
* @model: (transfer full) (allow-none): The model to use, or %NULL
|
||||
*
|
||||
* Creates a new model that presents the items from @model
|
||||
* in reverse order
|
||||
*
|
||||
* Returns: A new #GtkReverseListModel
|
||||
**/
|
||||
GtkReverseListModel *
|
||||
gtk_reverse_list_model_new (GListModel *model)
|
||||
{
|
||||
GtkReverseListModel *self;
|
||||
|
||||
g_return_val_if_fail (model == NULL || G_IS_LIST_MODEL (model), NULL);
|
||||
|
||||
self = g_object_new (GTK_TYPE_REVERSE_LIST_MODEL,
|
||||
"model", model,
|
||||
NULL);
|
||||
|
||||
/* consume the reference */
|
||||
g_clear_object (&model);
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
/**
|
||||
* gtk_reverse_list_model_set_model:
|
||||
* @self: a #GtkReverseListModel
|
||||
* @model: (allow-none): The model to be sliced
|
||||
*
|
||||
* Sets the model to revert. The model's item type must conform
|
||||
* to @self's item type.
|
||||
*
|
||||
**/
|
||||
void
|
||||
gtk_reverse_list_model_set_model (GtkReverseListModel *self,
|
||||
GListModel *model)
|
||||
{
|
||||
guint removed, added;
|
||||
|
||||
g_return_if_fail (GTK_IS_REVERSE_LIST_MODEL (self));
|
||||
g_return_if_fail (model == NULL || G_IS_LIST_MODEL (model));
|
||||
|
||||
if (self->model == model)
|
||||
return;
|
||||
|
||||
removed = g_list_model_get_n_items (G_LIST_MODEL (self));
|
||||
gtk_reverse_list_model_clear_model (self);
|
||||
|
||||
if (model)
|
||||
{
|
||||
self->model = g_object_ref (model);
|
||||
g_signal_connect (model, "items-changed", G_CALLBACK (gtk_reverse_list_model_items_changed_cb), self);
|
||||
added = g_list_model_get_n_items (G_LIST_MODEL (self));
|
||||
}
|
||||
else
|
||||
{
|
||||
added = 0;
|
||||
}
|
||||
|
||||
if (removed > 0 || added > 0)
|
||||
g_list_model_items_changed (G_LIST_MODEL (self), 0, removed, added);
|
||||
|
||||
g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_MODEL]);
|
||||
}
|
||||
|
||||
/**
|
||||
* gtk_reverse_list_model_get_model:
|
||||
* @self: a #GtkReverseListModel
|
||||
*
|
||||
* Gets the model that is currently being used or %NULL if none.
|
||||
*
|
||||
* Returns: (nullable) (transfer none): The model in use
|
||||
**/
|
||||
GListModel *
|
||||
gtk_reverse_list_model_get_model (GtkReverseListModel *self)
|
||||
{
|
||||
g_return_val_if_fail (GTK_IS_REVERSE_LIST_MODEL (self), NULL);
|
||||
|
||||
return self->model;
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
/*
|
||||
* Copyright © 2020 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.1 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/>.
|
||||
*
|
||||
* Authors: Matthias Clasen
|
||||
*/
|
||||
|
||||
#ifndef __GTK_REVERSE_LIST_MODEL_H__
|
||||
#define __GTK_REVERSE_LIST_MODEL_H__
|
||||
|
||||
|
||||
#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
|
||||
#error "Only <gtk/gtk.h> can be included directly."
|
||||
#endif
|
||||
|
||||
#include <gio/gio.h>
|
||||
#include <gtk/gtkwidget.h>
|
||||
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GTK_TYPE_REVERSE_LIST_MODEL (gtk_reverse_list_model_get_type ())
|
||||
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
G_DECLARE_FINAL_TYPE (GtkReverseListModel, gtk_reverse_list_model, GTK, REVERSE_LIST_MODEL, GObject)
|
||||
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GtkReverseListModel * gtk_reverse_list_model_new (GListModel *model);
|
||||
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
void gtk_reverse_list_model_set_model (GtkReverseListModel *self,
|
||||
GListModel *model);
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GListModel * gtk_reverse_list_model_get_model (GtkReverseListModel *self);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __GTK_REVERSE_LIST_MODEL_H__ */
|
||||
@@ -313,10 +313,10 @@ gtk_string_filter_init (GtkStringFilter *self)
|
||||
*
|
||||
* Returns: a new #GtkStringFilter
|
||||
**/
|
||||
GtkStringFilter *
|
||||
GtkFilter *
|
||||
gtk_string_filter_new (GtkExpression *expression)
|
||||
{
|
||||
GtkStringFilter *result;
|
||||
GtkFilter *result;
|
||||
|
||||
result = g_object_new (GTK_TYPE_STRING_FILTER,
|
||||
"expression", expression,
|
||||
|
||||
@@ -51,7 +51,7 @@ GDK_AVAILABLE_IN_ALL
|
||||
G_DECLARE_FINAL_TYPE (GtkStringFilter, gtk_string_filter, GTK, STRING_FILTER, GtkFilter)
|
||||
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GtkStringFilter * gtk_string_filter_new (GtkExpression *expression);
|
||||
GtkFilter * gtk_string_filter_new (GtkExpression *expression);
|
||||
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
const char * gtk_string_filter_get_search (GtkStringFilter *self);
|
||||
|
||||
@@ -333,12 +333,12 @@ gtk_string_sorter_init (GtkStringSorter *self)
|
||||
* Unless an expression is set on it, this sorter will always
|
||||
* compare items as invalid.
|
||||
*
|
||||
* Returns: a new #GtkStringSorter
|
||||
* Returns: a new #GtkSorter
|
||||
*/
|
||||
GtkStringSorter *
|
||||
GtkSorter *
|
||||
gtk_string_sorter_new (GtkExpression *expression)
|
||||
{
|
||||
GtkStringSorter *result;
|
||||
GtkSorter *result;
|
||||
|
||||
result = g_object_new (GTK_TYPE_STRING_SORTER,
|
||||
"expression", expression,
|
||||
|
||||
@@ -34,7 +34,7 @@ GDK_AVAILABLE_IN_ALL
|
||||
G_DECLARE_FINAL_TYPE (GtkStringSorter, gtk_string_sorter, GTK, STRING_SORTER, GtkSorter)
|
||||
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GtkStringSorter * gtk_string_sorter_new (GtkExpression *expression);
|
||||
GtkSorter * gtk_string_sorter_new (GtkExpression *expression);
|
||||
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GtkExpression * gtk_string_sorter_get_expression (GtkStringSorter *self);
|
||||
|
||||
+17
-1
@@ -2910,6 +2910,16 @@ dnd_finished_cb (GdkDrag *drag,
|
||||
priv->drag = NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
dnd_cancel_cb (GdkDrag *drag,
|
||||
GdkDragCancelReason reason,
|
||||
GtkText *self)
|
||||
{
|
||||
GtkTextPrivate *priv = gtk_text_get_instance_private (self);
|
||||
|
||||
priv->drag = NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_text_drag_gesture_update (GtkGestureDrag *gesture,
|
||||
double offset_x,
|
||||
@@ -2973,9 +2983,12 @@ gtk_text_drag_gesture_update (GtkGestureDrag *gesture,
|
||||
g_object_unref (content);
|
||||
|
||||
g_signal_connect (drag, "dnd-finished", G_CALLBACK (dnd_finished_cb), self);
|
||||
g_signal_connect (drag, "cancel", G_CALLBACK (dnd_cancel_cb), self);
|
||||
|
||||
paintable = gtk_text_util_create_drag_icon (widget, text, -1);
|
||||
gtk_drag_icon_set_from_paintable (drag, paintable, ranges[0], 0);
|
||||
gtk_drag_icon_set_from_paintable (drag, paintable,
|
||||
(priv->drag_start_x - ranges[0]),
|
||||
priv->drag_start_y);
|
||||
g_clear_object (&paintable);
|
||||
|
||||
priv->drag = drag;
|
||||
@@ -2986,6 +2999,9 @@ gtk_text_drag_gesture_update (GtkGestureDrag *gesture,
|
||||
g_free (text);
|
||||
|
||||
priv->in_drag = FALSE;
|
||||
|
||||
/* Deny the gesture so we don't get further updates */
|
||||
gtk_gesture_set_state (priv->drag_gesture, GTK_EVENT_SEQUENCE_DENIED);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
@@ -1037,6 +1037,8 @@ gtk_text_history_set_enabled (GtkTextHistory *self,
|
||||
clear_action_queue (&self->undo_queue);
|
||||
clear_action_queue (&self->redo_queue);
|
||||
}
|
||||
|
||||
gtk_text_history_update_state (self);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+21
-5
@@ -7188,11 +7188,11 @@ selection_data_free (SelectionData *data)
|
||||
|
||||
static gboolean
|
||||
drag_gesture_get_text_surface_coords (GtkGestureDrag *gesture,
|
||||
GtkTextView *text_view,
|
||||
int *start_x,
|
||||
int *start_y,
|
||||
int *x,
|
||||
int *y)
|
||||
GtkTextView *text_view,
|
||||
int *start_x,
|
||||
int *start_y,
|
||||
int *x,
|
||||
int *y)
|
||||
{
|
||||
double sx, sy, ox, oy;
|
||||
|
||||
@@ -7262,6 +7262,10 @@ gtk_text_view_drag_gesture_update (GtkGestureDrag *gesture,
|
||||
|
||||
gtk_text_view_start_selection_dnd (text_view, &iter, event,
|
||||
start_x, start_y);
|
||||
|
||||
/* Deny the gesture so we don't get further updates */
|
||||
gtk_gesture_set_state (text_view->priv->drag_gesture,
|
||||
GTK_EVENT_SEQUENCE_DENIED);
|
||||
return;
|
||||
}
|
||||
else
|
||||
@@ -7275,6 +7279,8 @@ gtk_text_view_drag_gesture_update (GtkGestureDrag *gesture,
|
||||
return;
|
||||
}
|
||||
|
||||
g_assert (data != NULL);
|
||||
|
||||
/* Text selection */
|
||||
if (data->granularity == SELECT_CHARACTERS)
|
||||
{
|
||||
@@ -7782,6 +7788,14 @@ dnd_finished_cb (GdkDrag *drag,
|
||||
self->priv->drag = NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
dnd_cancel_cb (GdkDrag *drag,
|
||||
GdkDragCancelReason reason,
|
||||
GtkTextView *self)
|
||||
{
|
||||
self->priv->drag = NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_text_view_start_selection_dnd (GtkTextView *text_view,
|
||||
const GtkTextIter *iter,
|
||||
@@ -7808,9 +7822,11 @@ gtk_text_view_start_selection_dnd (GtkTextView *text_view,
|
||||
surface = gdk_event_get_surface (event);
|
||||
device = gdk_event_get_device (event);
|
||||
drag = gdk_drag_begin (surface, device, content, actions, x, y);
|
||||
|
||||
g_object_unref (content);
|
||||
|
||||
g_signal_connect (drag, "dnd-finished", G_CALLBACK (dnd_finished_cb), text_view);
|
||||
g_signal_connect (drag, "cancel", G_CALLBACK (dnd_cancel_cb), text_view);
|
||||
|
||||
if (gtk_text_buffer_get_selection_bounds (buffer, &start, &end))
|
||||
{
|
||||
|
||||
@@ -567,12 +567,12 @@ gtk_tree_list_row_sorter_init (GtkTreeListRowSorter *self)
|
||||
* Note that this sorter relies on #GtkTreeListModel:passthrough
|
||||
* being %FALSE as it can only sort #GtkTreeListRows.
|
||||
*
|
||||
* Returns: a new #GtkTreeListRowSorter
|
||||
* Returns: a new #GtkSorter
|
||||
*/
|
||||
GtkTreeListRowSorter *
|
||||
GtkSorter *
|
||||
gtk_tree_list_row_sorter_new (GtkSorter *sorter)
|
||||
{
|
||||
GtkTreeListRowSorter *result;
|
||||
GtkSorter *result;
|
||||
|
||||
g_return_val_if_fail (sorter == NULL || GTK_IS_SORTER (sorter), NULL);
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ GDK_AVAILABLE_IN_ALL
|
||||
G_DECLARE_FINAL_TYPE (GtkTreeListRowSorter, gtk_tree_list_row_sorter, GTK, TREE_LIST_ROW_SORTER, GtkSorter)
|
||||
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GtkTreeListRowSorter * gtk_tree_list_row_sorter_new (GtkSorter *sorter);
|
||||
GtkSorter * gtk_tree_list_row_sorter_new (GtkSorter *sorter);
|
||||
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GtkSorter * gtk_tree_list_row_sorter_get_sorter (GtkTreeListRowSorter *self);
|
||||
|
||||
@@ -230,7 +230,7 @@ update_attributes (GtkInspectorA11y *sl)
|
||||
{
|
||||
GtkATContext *context;
|
||||
GListStore *store;
|
||||
GtkBoolFilter *filter;
|
||||
GtkFilter *filter;
|
||||
GtkFilterListModel *filter_model;
|
||||
GtkNoSelection *selection;
|
||||
GObject *obj;
|
||||
@@ -311,9 +311,9 @@ update_attributes (GtkInspectorA11y *sl)
|
||||
g_type_class_unref (eclass);
|
||||
|
||||
filter = gtk_bool_filter_new (gtk_property_expression_new (accessible_attribute_get_type (), NULL, "is-default"));
|
||||
gtk_bool_filter_set_invert (filter, TRUE);
|
||||
gtk_bool_filter_set_invert (GTK_BOOL_FILTER (filter), TRUE);
|
||||
|
||||
filter_model = gtk_filter_list_model_new (G_LIST_MODEL (store), GTK_FILTER (filter));
|
||||
filter_model = gtk_filter_list_model_new (G_LIST_MODEL (store), filter);
|
||||
selection = gtk_no_selection_new (G_LIST_MODEL (filter_model));
|
||||
gtk_column_view_set_model (GTK_COLUMN_VIEW (sl->attributes), GTK_SELECTION_MODEL (selection));
|
||||
g_object_unref (selection);
|
||||
|
||||
@@ -389,11 +389,11 @@ constructed (GObject *object)
|
||||
g_signal_connect_swapped (sl->button, "clicked",
|
||||
G_CALLBACK (refresh_all), sl);
|
||||
|
||||
sorter = GTK_SORTER (gtk_string_sorter_new (gtk_cclosure_expression_new (G_TYPE_STRING,
|
||||
sorter = gtk_string_sorter_new (gtk_cclosure_expression_new (G_TYPE_STRING,
|
||||
NULL,
|
||||
0, NULL,
|
||||
(GCallback)holder_name,
|
||||
NULL, NULL)));
|
||||
NULL, NULL));
|
||||
gtk_column_view_column_set_sorter (sl->name, sorter);
|
||||
g_object_unref (sorter);
|
||||
|
||||
|
||||
@@ -246,7 +246,7 @@ gtk_inspector_controllers_set_object (GtkInspectorControllers *self,
|
||||
|
||||
flatten_model = gtk_flatten_list_model_new (G_LIST_MODEL (map_model));
|
||||
|
||||
sorter = GTK_SORTER (gtk_custom_sorter_new (compare_controllers, NULL, NULL));
|
||||
sorter = gtk_custom_sorter_new (compare_controllers, NULL, NULL);
|
||||
sort_model = gtk_sort_list_model_new (G_LIST_MODEL (flatten_model), sorter);
|
||||
|
||||
gtk_list_box_bind_model (GTK_LIST_BOX (self->listbox),
|
||||
|
||||
+35
-2
@@ -817,6 +817,13 @@ add_seat (GtkInspectorGeneral *gen,
|
||||
g_list_free (list);
|
||||
}
|
||||
|
||||
static void
|
||||
disconnect_seat (GtkInspectorGeneral *gen,
|
||||
GdkSeat *seat)
|
||||
{
|
||||
g_signal_handlers_disconnect_by_func (seat, G_CALLBACK (populate_seats), gen);
|
||||
}
|
||||
|
||||
static void
|
||||
populate_seats (GtkInspectorGeneral *gen)
|
||||
{
|
||||
@@ -835,11 +842,28 @@ populate_seats (GtkInspectorGeneral *gen)
|
||||
g_list_free (list);
|
||||
}
|
||||
|
||||
static void
|
||||
seat_added (GdkDisplay *display,
|
||||
GdkSeat *seat,
|
||||
GtkInspectorGeneral *gen)
|
||||
{
|
||||
populate_seats (gen);
|
||||
}
|
||||
|
||||
static void
|
||||
seat_removed (GdkDisplay *display,
|
||||
GdkSeat *seat,
|
||||
GtkInspectorGeneral *gen)
|
||||
{
|
||||
disconnect_seat (gen, seat);
|
||||
populate_seats (gen);
|
||||
}
|
||||
|
||||
static void
|
||||
init_device (GtkInspectorGeneral *gen)
|
||||
{
|
||||
g_signal_connect_swapped (gen->display, "seat-added", G_CALLBACK (populate_seats), gen);
|
||||
g_signal_connect_swapped (gen->display, "seat-removed", G_CALLBACK (populate_seats), gen);
|
||||
g_signal_connect (gen->display, "seat-added", G_CALLBACK (seat_added), gen);
|
||||
g_signal_connect (gen->display, "seat-removed", G_CALLBACK (seat_removed), gen);
|
||||
|
||||
populate_seats (gen);
|
||||
}
|
||||
@@ -911,9 +935,18 @@ static void
|
||||
gtk_inspector_general_dispose (GObject *object)
|
||||
{
|
||||
GtkInspectorGeneral *gen = GTK_INSPECTOR_GENERAL (object);
|
||||
GList *list, *l;
|
||||
|
||||
g_clear_pointer (&gen->swin, gtk_widget_unparent);
|
||||
|
||||
g_signal_handlers_disconnect_by_func (gen->display, G_CALLBACK (seat_added), gen);
|
||||
g_signal_handlers_disconnect_by_func (gen->display, G_CALLBACK (seat_removed), gen);
|
||||
|
||||
list = gdk_display_list_seats (gen->display);
|
||||
for (l = list; l; l = l->next)
|
||||
disconnect_seat (gen, GDK_SEAT (l->data));
|
||||
g_list_free (list);
|
||||
|
||||
G_OBJECT_CLASS (gtk_inspector_general_parent_class)->dispose (object);
|
||||
}
|
||||
|
||||
|
||||
@@ -1135,9 +1135,8 @@ toplevel_filter_func (gpointer item,
|
||||
static GListModel *
|
||||
create_root_model (GdkDisplay *display)
|
||||
{
|
||||
GtkFilter *filter;
|
||||
GtkFilterListModel *filter_model;
|
||||
GListModel *model;
|
||||
GtkFilter *custom_filter;
|
||||
GtkFilterListModel *filter;
|
||||
GListStore *list, *special;
|
||||
gpointer item;
|
||||
|
||||
@@ -1151,11 +1150,12 @@ create_root_model (GdkDisplay *display)
|
||||
g_list_store_append (list, special);
|
||||
g_object_unref (special);
|
||||
|
||||
filter = GTK_FILTER (gtk_custom_filter_new (toplevel_filter_func, display, NULL));
|
||||
model = gtk_window_get_toplevels ();
|
||||
filter_model = gtk_filter_list_model_new (g_object_ref (model), filter);
|
||||
g_list_store_append (list, filter_model);
|
||||
g_object_unref (filter_model);
|
||||
filter = gtk_filter_list_model_new (NULL, NULL);
|
||||
custom_filter = gtk_custom_filter_new (toplevel_filter_func, display, NULL);
|
||||
gtk_filter_list_model_set_filter (filter, custom_filter);
|
||||
gtk_filter_list_model_set_model (filter, gtk_window_get_toplevels ());
|
||||
g_list_store_append (list, filter);
|
||||
g_object_unref (filter);
|
||||
|
||||
return G_LIST_MODEL (gtk_flatten_list_model_new (G_LIST_MODEL (list)));
|
||||
}
|
||||
|
||||
+11
-11
@@ -59,7 +59,7 @@ struct _GtkInspectorPropListPrivate
|
||||
GtkWidget *search_entry;
|
||||
GtkWidget *search_stack;
|
||||
GtkWidget *list;
|
||||
GtkStringFilter *filter;
|
||||
GtkFilter *filter;
|
||||
GtkColumnViewColumn *name;
|
||||
GtkColumnViewColumn *type;
|
||||
GtkColumnViewColumn *origin;
|
||||
@@ -114,31 +114,31 @@ gtk_inspector_prop_list_init (GtkInspectorPropList *pl)
|
||||
pl->priv = gtk_inspector_prop_list_get_instance_private (pl);
|
||||
gtk_widget_init_template (GTK_WIDGET (pl));
|
||||
pl->priv->filter = gtk_string_filter_new (NULL);
|
||||
gtk_string_filter_set_match_mode (pl->priv->filter, GTK_STRING_FILTER_MATCH_MODE_SUBSTRING);
|
||||
gtk_string_filter_set_match_mode (GTK_STRING_FILTER (pl->priv->filter), GTK_STRING_FILTER_MATCH_MODE_SUBSTRING);
|
||||
|
||||
sorter = GTK_SORTER (gtk_string_sorter_new (gtk_cclosure_expression_new (G_TYPE_STRING, NULL,
|
||||
sorter = gtk_string_sorter_new (gtk_cclosure_expression_new (G_TYPE_STRING, NULL,
|
||||
0, NULL,
|
||||
(GCallback)holder_prop,
|
||||
NULL, NULL)));
|
||||
NULL, NULL));
|
||||
|
||||
gtk_string_filter_set_expression (pl->priv->filter,
|
||||
gtk_string_filter_set_expression (GTK_STRING_FILTER (pl->priv->filter),
|
||||
gtk_string_sorter_get_expression (GTK_STRING_SORTER (sorter)));
|
||||
|
||||
gtk_column_view_column_set_sorter (pl->priv->name, sorter);
|
||||
g_object_unref (sorter);
|
||||
|
||||
sorter = GTK_SORTER (gtk_string_sorter_new (gtk_cclosure_expression_new (G_TYPE_STRING, NULL,
|
||||
sorter = gtk_string_sorter_new (gtk_cclosure_expression_new (G_TYPE_STRING, NULL,
|
||||
0, NULL,
|
||||
(GCallback)holder_type,
|
||||
NULL, NULL)));
|
||||
NULL, NULL));
|
||||
|
||||
gtk_column_view_column_set_sorter (pl->priv->type, sorter);
|
||||
g_object_unref (sorter);
|
||||
|
||||
sorter = GTK_SORTER (gtk_string_sorter_new (gtk_cclosure_expression_new (G_TYPE_STRING, NULL,
|
||||
sorter = gtk_string_sorter_new (gtk_cclosure_expression_new (G_TYPE_STRING, NULL,
|
||||
0, NULL,
|
||||
(GCallback)holder_origin,
|
||||
NULL, NULL)));
|
||||
NULL, NULL));
|
||||
|
||||
gtk_column_view_column_set_sorter (pl->priv->origin, sorter);
|
||||
g_object_unref (sorter);
|
||||
@@ -217,7 +217,7 @@ update_filter (GtkInspectorPropList *pl,
|
||||
const char *text;
|
||||
|
||||
text = gtk_editable_get_text (GTK_EDITABLE (entry));
|
||||
gtk_string_filter_set_search (pl->priv->filter, text);
|
||||
gtk_string_filter_set_search (GTK_STRING_FILTER (pl->priv->filter), text);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -622,7 +622,7 @@ gtk_inspector_prop_list_set_object (GtkInspectorPropList *pl,
|
||||
if (GTK_IS_WIDGET (object))
|
||||
g_signal_connect_object (object, "destroy", G_CALLBACK (cleanup_object), pl, G_CONNECT_SWAPPED);
|
||||
|
||||
filtered = G_LIST_MODEL (gtk_filter_list_model_new (G_LIST_MODEL (store), g_object_ref (GTK_FILTER (pl->priv->filter))));
|
||||
filtered = G_LIST_MODEL (gtk_filter_list_model_new (G_LIST_MODEL (store), g_object_ref (pl->priv->filter)));
|
||||
sorted = gtk_sort_list_model_new (filtered, NULL);
|
||||
list = G_LIST_MODEL (gtk_no_selection_new (G_LIST_MODEL (sorted)));
|
||||
|
||||
|
||||
@@ -652,26 +652,26 @@ gtk_inspector_resource_list_init (GtkInspectorResourceList *rl)
|
||||
gtk_search_bar_connect_entry (GTK_SEARCH_BAR (rl->search_bar),
|
||||
GTK_EDITABLE (rl->search_entry));
|
||||
|
||||
sorter = GTK_SORTER (gtk_string_sorter_new (gtk_cclosure_expression_new (G_TYPE_STRING, NULL,
|
||||
sorter = gtk_string_sorter_new (gtk_cclosure_expression_new (G_TYPE_STRING, NULL,
|
||||
0, NULL,
|
||||
(GCallback)holder_name,
|
||||
NULL, NULL)));
|
||||
NULL, NULL));
|
||||
|
||||
gtk_column_view_column_set_sorter (rl->path, sorter);
|
||||
g_object_unref (sorter);
|
||||
|
||||
sorter = GTK_SORTER (gtk_numeric_sorter_new (gtk_cclosure_expression_new (G_TYPE_INT, NULL,
|
||||
sorter = gtk_numeric_sorter_new (gtk_cclosure_expression_new (G_TYPE_INT, NULL,
|
||||
0, NULL,
|
||||
(GCallback)holder_count,
|
||||
NULL, NULL)));
|
||||
NULL, NULL));
|
||||
|
||||
gtk_column_view_column_set_sorter (rl->count, sorter);
|
||||
g_object_unref (sorter);
|
||||
|
||||
sorter = GTK_SORTER (gtk_numeric_sorter_new (gtk_cclosure_expression_new (G_TYPE_UINT64, NULL,
|
||||
sorter = gtk_numeric_sorter_new (gtk_cclosure_expression_new (G_TYPE_UINT64, NULL,
|
||||
0, NULL,
|
||||
(GCallback)holder_size,
|
||||
NULL, NULL)));
|
||||
NULL, NULL));
|
||||
|
||||
gtk_column_view_column_set_sorter (rl->size, sorter);
|
||||
g_object_unref (sorter);
|
||||
@@ -709,7 +709,7 @@ constructed (GObject *object)
|
||||
NULL);
|
||||
|
||||
column_sorter = gtk_column_view_get_sorter (GTK_COLUMN_VIEW (rl->list));
|
||||
sorter = GTK_SORTER (gtk_tree_list_row_sorter_new (g_object_ref (column_sorter)));
|
||||
sorter = gtk_tree_list_row_sorter_new (g_object_ref (column_sorter));
|
||||
sort_model = G_LIST_MODEL (gtk_sort_list_model_new (g_object_ref (G_LIST_MODEL (rl->tree_model)), sorter));
|
||||
rl->selection = gtk_single_selection_new (sort_model);
|
||||
|
||||
|
||||
@@ -340,6 +340,7 @@ gtk_public_sources = files([
|
||||
'gtkrendericon.c',
|
||||
'gtkrendernodepaintable.c',
|
||||
'gtkrevealer.c',
|
||||
'gtkreverselistmodel.c',
|
||||
'gtkroot.c',
|
||||
'gtknative.c',
|
||||
'gtkroundedbox.c',
|
||||
|
||||
+63
-58
@@ -7,7 +7,7 @@
|
||||
# Josep Puigdemont <josep.puigdemont@gmail.com>, 2005, 2006.
|
||||
# David Planella <david.planella@gmail.com>, 2008, 2009, 2010.
|
||||
# Jordi Serratosa <jordis@softcatala.cat>, 2012.
|
||||
# Gil Forcada <gilforcada@guifi.net>, 2011-2014.
|
||||
# Gil Forcada <gilforcada@guifi.net>, 2011-2020.
|
||||
# Benet R.i Camps <benny@softcatala.org>, 2015
|
||||
# Jordi Mas <jmas@softcatala.org>, 2015-2020
|
||||
#
|
||||
@@ -40,16 +40,16 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gtk+ 2.3.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-08-27 00:10+0000\n"
|
||||
"PO-Revision-Date: 2020-07-26 20:32+0200\n"
|
||||
"Last-Translator: Jordi Serratosa <jordis@softcatala.cat>\n"
|
||||
"POT-Creation-Date: 2020-09-06 13:26+0000\n"
|
||||
"PO-Revision-Date: 2020-09-07 09:24+0200\n"
|
||||
"Last-Translator: Gil Forcada <gilforcada@guifi.net>\n"
|
||||
"Language-Team: Catalan <tradgnome@softcatala.org>\n"
|
||||
"Language: ca\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Poedit 2.4\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
||||
"X-Generator: Gtranslator 3.36.0\n"
|
||||
|
||||
#: gdk/gdkapplaunchcontext.c:133 gdk/gdkdrawcontext.c:155 gdk/gdkseat.c:201
|
||||
#: gdk/gdkseat.c:202 gdk/gdksurface.c:508 gdk/gdksurface.c:509
|
||||
@@ -679,11 +679,11 @@ msgstr "Finestra activa"
|
||||
msgid "The window which most recently had focus"
|
||||
msgstr "L'última finestra que ha tingut el focus"
|
||||
|
||||
#: gtk/gtkapplicationwindow.c:677
|
||||
#: gtk/gtkapplicationwindow.c:684
|
||||
msgid "Show a menubar"
|
||||
msgstr "Mostra la barra de menú"
|
||||
|
||||
#: gtk/gtkapplicationwindow.c:678
|
||||
#: gtk/gtkapplicationwindow.c:685
|
||||
msgid "TRUE if the window should show a menubar at the top of the window"
|
||||
msgstr ""
|
||||
"«TRUE» (cert) si la finestra hauria de mostrar una barra de menú a dalt de "
|
||||
@@ -721,7 +721,7 @@ msgstr "Obeeix el fill"
|
||||
msgid "Force aspect ratio to match that of the frame’s child"
|
||||
msgstr "Força la proporció perquè coincideixi amb el marc del fill"
|
||||
|
||||
#: gtk/gtkaspectframe.c:173 gtk/gtkbutton.c:252 gtk/gtkcombobox.c:782
|
||||
#: gtk/gtkaspectframe.c:173 gtk/gtkbutton.c:256 gtk/gtkcombobox.c:782
|
||||
#: gtk/gtkdragicon.c:372 gtk/gtkexpander.c:366 gtk/gtkflowbox.c:509
|
||||
#: gtk/gtkframe.c:191 gtk/gtklistbox.c:3467 gtk/gtklistitem.c:185
|
||||
#: gtk/gtknotebook.c:567 gtk/gtkoverlay.c:319 gtk/gtkpopover.c:1670
|
||||
@@ -731,7 +731,7 @@ msgstr "Força la proporció perquè coincideixi amb el marc del fill"
|
||||
msgid "Child"
|
||||
msgstr "Fill"
|
||||
|
||||
#: gtk/gtkaspectframe.c:174 gtk/gtkbutton.c:253 gtk/gtkexpander.c:367
|
||||
#: gtk/gtkaspectframe.c:174 gtk/gtkbutton.c:257 gtk/gtkexpander.c:367
|
||||
#: gtk/gtkflowbox.c:510 gtk/gtkframe.c:192 gtk/gtklistbox.c:3468
|
||||
#: gtk/gtkoverlay.c:320 gtk/gtkpopover.c:1671 gtk/gtkrevealer.c:353
|
||||
#: gtk/gtkscrolledwindow.c:757 gtk/gtksearchbar.c:325 gtk/gtkviewport.c:381
|
||||
@@ -918,24 +918,24 @@ msgstr "recurs que conté la definició de la IU"
|
||||
msgid "scope to use when instantiating listitems"
|
||||
msgstr "àmbit a usar quan s'instancia la llista d'elements"
|
||||
|
||||
#: gtk/gtkbutton.c:224 gtk/gtkexpander.c:320 gtk/gtkframe.c:169
|
||||
#: gtk/gtklabel.c:744 gtk/gtkmenubutton.c:399
|
||||
#: gtk/gtkbutton.c:228 gtk/gtkcheckbutton.c:472 gtk/gtkexpander.c:320
|
||||
#: gtk/gtkframe.c:169 gtk/gtklabel.c:744 gtk/gtkmenubutton.c:399
|
||||
msgid "Label"
|
||||
msgstr "Etiqueta"
|
||||
|
||||
#: gtk/gtkbutton.c:225
|
||||
#: gtk/gtkbutton.c:229 gtk/gtkcheckbutton.c:473
|
||||
msgid ""
|
||||
"Text of the label widget inside the button, if the button contains a label "
|
||||
"widget"
|
||||
msgstr "Text de l'etiqueta dins del botó, si el botó conté una etiqueta"
|
||||
|
||||
#: gtk/gtkbutton.c:231 gtk/gtkexpander.c:328 gtk/gtklabel.c:765
|
||||
#: gtk/gtkmenubutton.c:406 gtk/gtkstack.c:383
|
||||
#: gtk/gtkbutton.c:235 gtk/gtkcheckbutton.c:486 gtk/gtkexpander.c:328
|
||||
#: gtk/gtklabel.c:765 gtk/gtkmenubutton.c:406 gtk/gtkstack.c:383
|
||||
msgid "Use underline"
|
||||
msgstr "Utilitza subratllat"
|
||||
|
||||
#: gtk/gtkbutton.c:232 gtk/gtkexpander.c:329 gtk/gtklabel.c:766
|
||||
#: gtk/gtkmenubutton.c:407
|
||||
#: gtk/gtkbutton.c:236 gtk/gtkcheckbutton.c:487 gtk/gtkexpander.c:329
|
||||
#: gtk/gtklabel.c:766 gtk/gtkmenubutton.c:407
|
||||
msgid ""
|
||||
"If set, an underline in the text indicates the next character should be used "
|
||||
"for the mnemonic accelerator key"
|
||||
@@ -943,21 +943,21 @@ msgstr ""
|
||||
"Si s'habilita, un subratllat en el text indica que el caràcter següent "
|
||||
"s'hauria d'utilitzar per a la tecla de drecera"
|
||||
|
||||
#: gtk/gtkbutton.c:238 gtk/gtkcombobox.c:669 gtk/gtkentry.c:469
|
||||
#: gtk/gtkbutton.c:242 gtk/gtkcombobox.c:669 gtk/gtkentry.c:469
|
||||
#: gtk/gtkscrolledwindow.c:638
|
||||
msgid "Has Frame"
|
||||
msgstr "Té marc"
|
||||
|
||||
#: gtk/gtkbutton.c:239 gtk/gtkmenubutton.c:414
|
||||
#: gtk/gtkbutton.c:243 gtk/gtkmenubutton.c:414
|
||||
msgid "Whether the button has a frame"
|
||||
msgstr "Si el botó té un marc"
|
||||
|
||||
#: gtk/gtkbutton.c:245 gtk/gtkcellrendererpixbuf.c:209 gtk/gtkimage.c:211
|
||||
#: gtk/gtkbutton.c:249 gtk/gtkcellrendererpixbuf.c:209 gtk/gtkimage.c:211
|
||||
#: gtk/gtkmenubutton.c:392 gtk/gtkprinter.c:170 gtk/gtkwindow.c:822
|
||||
msgid "Icon Name"
|
||||
msgstr "Nom de la icona"
|
||||
|
||||
#: gtk/gtkbutton.c:246 gtk/gtkmenubutton.c:393
|
||||
#: gtk/gtkbutton.c:250 gtk/gtkmenubutton.c:393
|
||||
msgid "The name of the icon used to automatically populate the button"
|
||||
msgstr ""
|
||||
"El nom de la icona que s'utilitza automàticament per a emplenar el botó"
|
||||
@@ -1427,8 +1427,9 @@ msgstr "Dígits"
|
||||
msgid "The number of decimal places to display"
|
||||
msgstr "El nombre de decimals a mostrar"
|
||||
|
||||
#: gtk/gtkcellrendererspinner.c:138 gtk/gtkmodelbutton.c:1130
|
||||
#: gtk/gtkmodelbutton.c:1131 gtk/gtkswitch.c:528 gtk/gtktogglebutton.c:208
|
||||
#: gtk/gtkcellrendererspinner.c:138 gtk/gtkcheckbutton.c:460
|
||||
#: gtk/gtkmodelbutton.c:1130 gtk/gtkmodelbutton.c:1131 gtk/gtkswitch.c:528
|
||||
#: gtk/gtktogglebutton.c:260
|
||||
msgid "Active"
|
||||
msgstr "Actiu"
|
||||
|
||||
@@ -1892,19 +1893,24 @@ msgstr "Model ajustat"
|
||||
msgid "Whether to request enough space for every row in the model"
|
||||
msgstr "Si s'ha de demanar l'espai necessari per a cada fila del model"
|
||||
|
||||
#: gtk/gtkcheckbutton.c:223
|
||||
msgid "Draw Indicator"
|
||||
msgstr "Indicador de dibuix"
|
||||
#: gtk/gtkcheckbutton.c:461 gtk/gtktogglebutton.c:261
|
||||
msgid "If the toggle button should be pressed in"
|
||||
msgstr "Si el botó de commutació ha d'estar premut cap endins"
|
||||
|
||||
#: gtk/gtkcheckbutton.c:224
|
||||
msgid "If the indicator part of the button is displayed"
|
||||
msgstr "Si la part d'indicació del botó es visualitza"
|
||||
#: gtk/gtkcheckbutton.c:466 gtk/gtktogglebutton.c:267
|
||||
msgid "Group"
|
||||
msgstr "Grup"
|
||||
|
||||
#: gtk/gtkcheckbutton.c:230
|
||||
#: gtk/gtkcheckbutton.c:467
|
||||
#| msgid "The radio button whose group this widget belongs to."
|
||||
msgid "The check button whose group this widget belongs to."
|
||||
msgstr "El botó de commutació al grup del qual pertany aquest giny."
|
||||
|
||||
#: gtk/gtkcheckbutton.c:479
|
||||
msgid "Inconsistent"
|
||||
msgstr "Inconsistent"
|
||||
|
||||
#: gtk/gtkcheckbutton.c:231
|
||||
#: gtk/gtkcheckbutton.c:480
|
||||
msgid "If the check button is in an “in between” state"
|
||||
msgstr "Si el botó de commutació és en un estat «intermedi»"
|
||||
|
||||
@@ -4984,7 +4990,7 @@ msgstr "Paràmetres"
|
||||
msgid "Printer settings"
|
||||
msgstr "Paràmetres de la impressora"
|
||||
|
||||
#: gtk/gtkprintjob.c:171 gtk/gtkprintjob.c:172 gtk/gtkprintunixdialog.c:382
|
||||
#: gtk/gtkprintjob.c:171 gtk/gtkprintjob.c:172 gtk/gtkprintunixdialog.c:381
|
||||
msgid "Page Setup"
|
||||
msgstr "Configuració de la pàgina"
|
||||
|
||||
@@ -5009,11 +5015,11 @@ msgstr "Configuració de la pàgina per defecte"
|
||||
msgid "The GtkPageSetup used by default"
|
||||
msgstr "El GtkPageSetup utilitzat per defecte"
|
||||
|
||||
#: gtk/gtkprintoperation.c:1093 gtk/gtkprintunixdialog.c:400
|
||||
#: gtk/gtkprintoperation.c:1093 gtk/gtkprintunixdialog.c:399
|
||||
msgid "Print Settings"
|
||||
msgstr "Paràmetres de la impressora"
|
||||
|
||||
#: gtk/gtkprintoperation.c:1094 gtk/gtkprintunixdialog.c:401
|
||||
#: gtk/gtkprintoperation.c:1094 gtk/gtkprintunixdialog.c:400
|
||||
msgid "The GtkPrintSettings used for initializing the dialog"
|
||||
msgstr "El GtkPrintSettings utilitzat per a inicialitzar el diàleg"
|
||||
|
||||
@@ -5033,11 +5039,11 @@ msgstr "Nombre de pàgines"
|
||||
msgid "The number of pages in the document."
|
||||
msgstr "El nombre de pàgines del document."
|
||||
|
||||
#: gtk/gtkprintoperation.c:1153 gtk/gtkprintunixdialog.c:390
|
||||
#: gtk/gtkprintoperation.c:1153 gtk/gtkprintunixdialog.c:389
|
||||
msgid "Current Page"
|
||||
msgstr "Pàgina actual"
|
||||
|
||||
#: gtk/gtkprintoperation.c:1154 gtk/gtkprintunixdialog.c:391
|
||||
#: gtk/gtkprintoperation.c:1154 gtk/gtkprintunixdialog.c:390
|
||||
msgid "The current page in the document"
|
||||
msgstr "La pàgina actual en el document"
|
||||
|
||||
@@ -5116,7 +5122,7 @@ msgstr "Etiqueta de pestanya personalitzada"
|
||||
msgid "Label for the tab containing custom widgets."
|
||||
msgstr "Etiqueta per a la pestanya que contingui ginys personalitzats."
|
||||
|
||||
#: gtk/gtkprintoperation.c:1330 gtk/gtkprintunixdialog.c:425
|
||||
#: gtk/gtkprintoperation.c:1330 gtk/gtkprintunixdialog.c:424
|
||||
msgid "Support Selection"
|
||||
msgstr "Admet la selecció"
|
||||
|
||||
@@ -5126,7 +5132,7 @@ msgstr ""
|
||||
"«TRUE» (cert) si l'operació d'impressió ha d'admetre la impressió de la "
|
||||
"selecció."
|
||||
|
||||
#: gtk/gtkprintoperation.c:1345 gtk/gtkprintunixdialog.c:433
|
||||
#: gtk/gtkprintoperation.c:1345 gtk/gtkprintunixdialog.c:432
|
||||
msgid "Has Selection"
|
||||
msgstr "Té selecció"
|
||||
|
||||
@@ -5134,11 +5140,11 @@ msgstr "Té selecció"
|
||||
msgid "TRUE if a selection exists."
|
||||
msgstr "«TRUE» (cert) si existeix una selecció."
|
||||
|
||||
#: gtk/gtkprintoperation.c:1359 gtk/gtkprintunixdialog.c:441
|
||||
#: gtk/gtkprintoperation.c:1359 gtk/gtkprintunixdialog.c:440
|
||||
msgid "Embed Page Setup"
|
||||
msgstr "Incrusta la configuració de la pàgina"
|
||||
|
||||
#: gtk/gtkprintoperation.c:1360 gtk/gtkprintunixdialog.c:442
|
||||
#: gtk/gtkprintoperation.c:1360 gtk/gtkprintunixdialog.c:441
|
||||
msgid "TRUE if page setup combos are embedded in GtkPrintUnixDialog"
|
||||
msgstr ""
|
||||
"«TRUE» (cert) si els quadres combinats de la configuració de pàgina estan "
|
||||
@@ -5152,31 +5158,31 @@ msgstr "Nombre de pàgines a imprimir"
|
||||
msgid "The number of pages that will be printed."
|
||||
msgstr "El nombre de pàgines que s'imprimiran."
|
||||
|
||||
#: gtk/gtkprintunixdialog.c:383
|
||||
#: gtk/gtkprintunixdialog.c:382
|
||||
msgid "The GtkPageSetup to use"
|
||||
msgstr "El GtkPageSetup a utilitzar"
|
||||
|
||||
#: gtk/gtkprintunixdialog.c:408
|
||||
#: gtk/gtkprintunixdialog.c:407
|
||||
msgid "Selected Printer"
|
||||
msgstr "Impressora seleccionada"
|
||||
|
||||
#: gtk/gtkprintunixdialog.c:409
|
||||
#: gtk/gtkprintunixdialog.c:408
|
||||
msgid "The GtkPrinter which is selected"
|
||||
msgstr "La GtkPrinter seleccionada"
|
||||
|
||||
#: gtk/gtkprintunixdialog.c:416
|
||||
#: gtk/gtkprintunixdialog.c:415
|
||||
msgid "Manual Capabilities"
|
||||
msgstr "Capacitats manuals"
|
||||
|
||||
#: gtk/gtkprintunixdialog.c:417
|
||||
#: gtk/gtkprintunixdialog.c:416
|
||||
msgid "Capabilities the application can handle"
|
||||
msgstr "Capacitats que l'aplicació admet"
|
||||
|
||||
#: gtk/gtkprintunixdialog.c:426
|
||||
#: gtk/gtkprintunixdialog.c:425
|
||||
msgid "Whether the dialog supports selection"
|
||||
msgstr "Si el diàleg admet la selecció"
|
||||
|
||||
#: gtk/gtkprintunixdialog.c:434
|
||||
#: gtk/gtkprintunixdialog.c:433
|
||||
msgid "Whether the application has a selection"
|
||||
msgstr "Si l'aplicació té una selecció"
|
||||
|
||||
@@ -5234,14 +5240,6 @@ msgstr "Objecte"
|
||||
msgid "The root object"
|
||||
msgstr "L'objecte arrel"
|
||||
|
||||
#: gtk/gtkradiobutton.c:203
|
||||
msgid "Group"
|
||||
msgstr "Grup"
|
||||
|
||||
#: gtk/gtkradiobutton.c:204
|
||||
msgid "The radio button whose group this widget belongs to."
|
||||
msgstr "El botó de grup al grup del qual pertany aquest giny."
|
||||
|
||||
#: gtk/gtkrange.c:366
|
||||
msgid "The GtkAdjustment that contains the current value of this range object"
|
||||
msgstr "El GtkAdjustment que conté el valor actual d'aquest rang d'objectes"
|
||||
@@ -7078,9 +7076,10 @@ msgstr "Tipus de finestra"
|
||||
msgid "The GtkTextWindowType"
|
||||
msgstr "El GtkTextWindowType"
|
||||
|
||||
#: gtk/gtktogglebutton.c:209
|
||||
msgid "If the toggle button should be pressed in"
|
||||
msgstr "Si el botó de commutació ha d'estar premut cap endins"
|
||||
#: gtk/gtktogglebutton.c:268
|
||||
#| msgid "The radio button whose group this widget belongs to."
|
||||
msgid "The toggle button whose group this widget belongs to."
|
||||
msgstr "El botó commutat al grup del qual pertany aquest giny."
|
||||
|
||||
#: gtk/gtktreeexpander.c:460
|
||||
msgid "The child widget with the actual contents"
|
||||
@@ -7898,6 +7897,12 @@ msgstr "Títol del perfil de color"
|
||||
msgid "The title of the color profile to use"
|
||||
msgstr "El títol del perfil de color a utilitzar"
|
||||
|
||||
#~ msgid "Draw Indicator"
|
||||
#~ msgstr "Indicador de dibuix"
|
||||
|
||||
#~ msgid "If the indicator part of the button is displayed"
|
||||
#~ msgstr "Si la part d'indicació del botó es visualitza"
|
||||
|
||||
#~ msgid "The text displayed next to the accelerator"
|
||||
#~ msgstr "El text que es mostra al costat de l'accelerador"
|
||||
|
||||
|
||||
+221
-217
File diff suppressed because it is too large
Load Diff
+58
-55
@@ -8,8 +8,8 @@
|
||||
msgid ""
|
||||
msgstr "Project-Id-Version: gtk+_properties master\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-08-27 00:10+0000\n"
|
||||
"PO-Revision-Date: 2020-08-30 10:00+0100\n"
|
||||
"POT-Creation-Date: 2020-09-05 09:54+0000\n"
|
||||
"PO-Revision-Date: 2020-09-06 10:00+0100\n"
|
||||
"Last-Translator: Asier Sarasua Garmendia <asiersarasua@ni.eus>\n"
|
||||
"Language-Team: Basque <librezale@librezale.eus>\n"
|
||||
"Language: eu\n"
|
||||
@@ -656,11 +656,11 @@ msgstr "Leiho aktiboa"
|
||||
msgid "The window which most recently had focus"
|
||||
msgstr "Azken aldian fokua daukan leihoa"
|
||||
|
||||
#: gtk/gtkapplicationwindow.c:677
|
||||
#: gtk/gtkapplicationwindow.c:684
|
||||
msgid "Show a menubar"
|
||||
msgstr "Erakutsi menu-barra"
|
||||
|
||||
#: gtk/gtkapplicationwindow.c:678
|
||||
#: gtk/gtkapplicationwindow.c:685
|
||||
msgid "TRUE if the window should show a menubar at the top of the window"
|
||||
msgstr "TRUE (egia) leihoak goian menu-barra erakutsi behar badu"
|
||||
|
||||
@@ -696,7 +696,7 @@ msgstr "Umeari obeditu"
|
||||
msgid "Force aspect ratio to match that of the frame’s child"
|
||||
msgstr "Behartu aspektu-erlazioa markoaren haurrarekin bat etor dadin"
|
||||
|
||||
#: gtk/gtkaspectframe.c:173 gtk/gtkbutton.c:252 gtk/gtkcombobox.c:782
|
||||
#: gtk/gtkaspectframe.c:173 gtk/gtkbutton.c:256 gtk/gtkcombobox.c:782
|
||||
#: gtk/gtkdragicon.c:372 gtk/gtkexpander.c:366 gtk/gtkflowbox.c:509
|
||||
#: gtk/gtkframe.c:191 gtk/gtklistbox.c:3467 gtk/gtklistitem.c:185
|
||||
#: gtk/gtknotebook.c:567 gtk/gtkoverlay.c:319 gtk/gtkpopover.c:1670
|
||||
@@ -706,7 +706,7 @@ msgstr "Behartu aspektu-erlazioa markoaren haurrarekin bat etor dadin"
|
||||
msgid "Child"
|
||||
msgstr "Haurra"
|
||||
|
||||
#: gtk/gtkaspectframe.c:174 gtk/gtkbutton.c:253 gtk/gtkexpander.c:367
|
||||
#: gtk/gtkaspectframe.c:174 gtk/gtkbutton.c:257 gtk/gtkexpander.c:367
|
||||
#: gtk/gtkflowbox.c:510 gtk/gtkframe.c:192 gtk/gtklistbox.c:3468
|
||||
#: gtk/gtkoverlay.c:320 gtk/gtkpopover.c:1671 gtk/gtkrevealer.c:353
|
||||
#: gtk/gtkscrolledwindow.c:757 gtk/gtksearchbar.c:325 gtk/gtkviewport.c:381
|
||||
@@ -895,44 +895,44 @@ msgstr "UI definizioa duen baliabidea"
|
||||
msgid "scope to use when instantiating listitems"
|
||||
msgstr "zerrenda-elementuak instantziatzean erabiliko den esparrua"
|
||||
|
||||
#: gtk/gtkbutton.c:224 gtk/gtkexpander.c:320 gtk/gtkframe.c:169
|
||||
#: gtk/gtklabel.c:744 gtk/gtkmenubutton.c:399
|
||||
#: gtk/gtkbutton.c:228 gtk/gtkcheckbutton.c:472 gtk/gtkexpander.c:320
|
||||
#: gtk/gtkframe.c:169 gtk/gtklabel.c:744 gtk/gtkmenubutton.c:399
|
||||
msgid "Label"
|
||||
msgstr "Etiketa"
|
||||
|
||||
#: gtk/gtkbutton.c:225
|
||||
#: gtk/gtkbutton.c:229 gtk/gtkcheckbutton.c:473
|
||||
msgid ""
|
||||
"Text of the label widget inside the button, if the button contains a label "
|
||||
"widget"
|
||||
msgstr "Etiketa-trepetaren testua botoi barruan, botoiak etiketa-trepeta badu"
|
||||
|
||||
#: gtk/gtkbutton.c:231 gtk/gtkexpander.c:328 gtk/gtklabel.c:765
|
||||
#: gtk/gtkmenubutton.c:406 gtk/gtkstack.c:383
|
||||
#: gtk/gtkbutton.c:235 gtk/gtkcheckbutton.c:486 gtk/gtkexpander.c:328
|
||||
#: gtk/gtklabel.c:765 gtk/gtkmenubutton.c:406 gtk/gtkstack.c:383
|
||||
msgid "Use underline"
|
||||
msgstr "Erabili azpimarra"
|
||||
|
||||
#: gtk/gtkbutton.c:232 gtk/gtkexpander.c:329 gtk/gtklabel.c:766
|
||||
#: gtk/gtkmenubutton.c:407
|
||||
#: gtk/gtkbutton.c:236 gtk/gtkcheckbutton.c:487 gtk/gtkexpander.c:329
|
||||
#: gtk/gtklabel.c:766 gtk/gtkmenubutton.c:407
|
||||
msgid ""
|
||||
"If set, an underline in the text indicates the next character should be used "
|
||||
"for the mnemonic accelerator key"
|
||||
msgstr "Ezartzen bada, testuko azpimarrak adierazten du hurrengo karakterea tekla bizkortzaile mnemoteknikorako erabili behar dela"
|
||||
|
||||
#: gtk/gtkbutton.c:238 gtk/gtkcombobox.c:669 gtk/gtkentry.c:469
|
||||
#: gtk/gtkbutton.c:242 gtk/gtkcombobox.c:669 gtk/gtkentry.c:469
|
||||
#: gtk/gtkscrolledwindow.c:638
|
||||
msgid "Has Frame"
|
||||
msgstr "Markoa dauka"
|
||||
|
||||
#: gtk/gtkbutton.c:239 gtk/gtkmenubutton.c:414
|
||||
#: gtk/gtkbutton.c:243 gtk/gtkmenubutton.c:414
|
||||
msgid "Whether the button has a frame"
|
||||
msgstr "Botoiak markoa duen ala ez"
|
||||
|
||||
#: gtk/gtkbutton.c:245 gtk/gtkcellrendererpixbuf.c:209 gtk/gtkimage.c:211
|
||||
#: gtk/gtkbutton.c:249 gtk/gtkcellrendererpixbuf.c:209 gtk/gtkimage.c:211
|
||||
#: gtk/gtkmenubutton.c:392 gtk/gtkprinter.c:170 gtk/gtkwindow.c:822
|
||||
msgid "Icon Name"
|
||||
msgstr "Ikono-izena"
|
||||
|
||||
#: gtk/gtkbutton.c:246 gtk/gtkmenubutton.c:393
|
||||
#: gtk/gtkbutton.c:250 gtk/gtkmenubutton.c:393
|
||||
msgid "The name of the icon used to automatically populate the button"
|
||||
msgstr "Ikonoaren izena botoia automatikoki betetzeko"
|
||||
|
||||
@@ -1400,8 +1400,9 @@ msgstr "Digituak"
|
||||
msgid "The number of decimal places to display"
|
||||
msgstr "Bistaratu beharreko dezimalen kopurua"
|
||||
|
||||
#: gtk/gtkcellrendererspinner.c:138 gtk/gtkmodelbutton.c:1130
|
||||
#: gtk/gtkmodelbutton.c:1131 gtk/gtkswitch.c:528 gtk/gtktogglebutton.c:208
|
||||
#: gtk/gtkcellrendererspinner.c:138 gtk/gtkcheckbutton.c:460
|
||||
#: gtk/gtkmodelbutton.c:1130 gtk/gtkmodelbutton.c:1131 gtk/gtkswitch.c:528
|
||||
#: gtk/gtktogglebutton.c:260
|
||||
msgid "Active"
|
||||
msgstr "Aktibo"
|
||||
|
||||
@@ -1863,22 +1864,26 @@ msgstr "Doitu eredua"
|
||||
msgid "Whether to request enough space for every row in the model"
|
||||
msgstr "Ereduan errenkada bakoitzarentzako nahiko leku eskatu edo ez"
|
||||
|
||||
#: gtk/gtkcheckbutton.c:223
|
||||
msgid "Draw Indicator"
|
||||
msgstr "Marrazki-adierazlea"
|
||||
#: gtk/gtkcheckbutton.c:461 gtk/gtktogglebutton.c:261
|
||||
msgid "If the toggle button should be pressed in"
|
||||
msgstr "Txandakatze-botoiak sakatuta egon behar duen ala ez"
|
||||
|
||||
#: gtk/gtkcheckbutton.c:224
|
||||
msgid "If the indicator part of the button is displayed"
|
||||
msgstr "Botoiaren adierazle-zatia bistaratuta dagoen"
|
||||
#: gtk/gtkcheckbutton.c:466 gtk/gtktogglebutton.c:267
|
||||
msgid "Group"
|
||||
msgstr "Taldea"
|
||||
|
||||
#: gtk/gtkcheckbutton.c:467
|
||||
msgid "The check button whose group this widget belongs to."
|
||||
msgstr "Trepeta honi dagokion taldearen kontrol-botoia."
|
||||
|
||||
#
|
||||
#: gtk/gtkcheckbutton.c:230
|
||||
#: gtk/gtkcheckbutton.c:479
|
||||
msgid "Inconsistent"
|
||||
msgstr "Sendotasunik gabea"
|
||||
|
||||
#: gtk/gtkcheckbutton.c:231
|
||||
#: gtk/gtkcheckbutton.c:480
|
||||
msgid "If the check button is in an “in between” state"
|
||||
msgstr "Txandakatze-botoia “tarteko” egoeran dagoen"
|
||||
msgstr "Kontrol-botoia “tarteko” egoeran dagoen"
|
||||
|
||||
#: gtk/gtkcolorbutton.c:158 gtk/gtkcolorchooser.c:83
|
||||
msgid "Use alpha"
|
||||
@@ -4921,7 +4926,7 @@ msgid "Printer settings"
|
||||
msgstr "Inprimagailuaren ezarpenak"
|
||||
|
||||
#
|
||||
#: gtk/gtkprintjob.c:171 gtk/gtkprintjob.c:172 gtk/gtkprintunixdialog.c:382
|
||||
#: gtk/gtkprintjob.c:171 gtk/gtkprintjob.c:172 gtk/gtkprintunixdialog.c:381
|
||||
msgid "Page Setup"
|
||||
msgstr "Orrialdearen konfigurazioa"
|
||||
|
||||
@@ -4943,11 +4948,11 @@ msgstr "Orriaren konfigurazio lehenetsia"
|
||||
msgid "The GtkPageSetup used by default"
|
||||
msgstr "GtkPageSetup lehenespenez erabilita"
|
||||
|
||||
#: gtk/gtkprintoperation.c:1093 gtk/gtkprintunixdialog.c:400
|
||||
#: gtk/gtkprintoperation.c:1093 gtk/gtkprintunixdialog.c:399
|
||||
msgid "Print Settings"
|
||||
msgstr "Inprimatze-ezarpenak"
|
||||
|
||||
#: gtk/gtkprintoperation.c:1094 gtk/gtkprintunixdialog.c:401
|
||||
#: gtk/gtkprintoperation.c:1094 gtk/gtkprintunixdialog.c:400
|
||||
msgid "The GtkPrintSettings used for initializing the dialog"
|
||||
msgstr "GtkPrintSettings elkarrizketa-koadroa hasieratzeko erabilita"
|
||||
|
||||
@@ -4967,11 +4972,11 @@ msgstr "Orrialde kopurua"
|
||||
msgid "The number of pages in the document."
|
||||
msgstr "Dokumentuaren orrialde kopurua."
|
||||
|
||||
#: gtk/gtkprintoperation.c:1153 gtk/gtkprintunixdialog.c:390
|
||||
#: gtk/gtkprintoperation.c:1153 gtk/gtkprintunixdialog.c:389
|
||||
msgid "Current Page"
|
||||
msgstr "Uneko orrialdea"
|
||||
|
||||
#: gtk/gtkprintoperation.c:1154 gtk/gtkprintunixdialog.c:391
|
||||
#: gtk/gtkprintoperation.c:1154 gtk/gtkprintunixdialog.c:390
|
||||
msgid "The current page in the document"
|
||||
msgstr "Dokumentuaren uneko orrialdea"
|
||||
|
||||
@@ -5043,7 +5048,7 @@ msgstr "Fitxaren etiketa pertsonalizatua"
|
||||
msgid "Label for the tab containing custom widgets."
|
||||
msgstr "Trepeta pertsonalizatuak dituen fitxaren etiketa."
|
||||
|
||||
#: gtk/gtkprintoperation.c:1330 gtk/gtkprintunixdialog.c:425
|
||||
#: gtk/gtkprintoperation.c:1330 gtk/gtkprintunixdialog.c:424
|
||||
msgid "Support Selection"
|
||||
msgstr "Hautapenaren euskarria"
|
||||
|
||||
@@ -5051,7 +5056,7 @@ msgstr "Hautapenaren euskarria"
|
||||
msgid "TRUE if the print operation will support print of selection."
|
||||
msgstr "TRUE (egia) inprimatzeko eragiketak hautapena inprimatzea onartzen badu."
|
||||
|
||||
#: gtk/gtkprintoperation.c:1345 gtk/gtkprintunixdialog.c:433
|
||||
#: gtk/gtkprintoperation.c:1345 gtk/gtkprintunixdialog.c:432
|
||||
msgid "Has Selection"
|
||||
msgstr "Hautapena du"
|
||||
|
||||
@@ -5060,11 +5065,11 @@ msgid "TRUE if a selection exists."
|
||||
msgstr "TRUE (egia) hautapena existitzen bada."
|
||||
|
||||
#
|
||||
#: gtk/gtkprintoperation.c:1359 gtk/gtkprintunixdialog.c:441
|
||||
#: gtk/gtkprintoperation.c:1359 gtk/gtkprintunixdialog.c:440
|
||||
msgid "Embed Page Setup"
|
||||
msgstr "Kapsulatutako orriaren konfigurazioa"
|
||||
|
||||
#: gtk/gtkprintoperation.c:1360 gtk/gtkprintunixdialog.c:442
|
||||
#: gtk/gtkprintoperation.c:1360 gtk/gtkprintunixdialog.c:441
|
||||
msgid "TRUE if page setup combos are embedded in GtkPrintUnixDialog"
|
||||
msgstr "TRUE (egia) orria konfiguratzeko konbinazio-koadroak GtkPrintUnixDialog-en kapsulatuta badaude"
|
||||
|
||||
@@ -5076,31 +5081,31 @@ msgstr "Orrialde kopurua inprimatzeko"
|
||||
msgid "The number of pages that will be printed."
|
||||
msgstr "Inprimatuko diren orrialdeen kopurua."
|
||||
|
||||
#: gtk/gtkprintunixdialog.c:383
|
||||
#: gtk/gtkprintunixdialog.c:382
|
||||
msgid "The GtkPageSetup to use"
|
||||
msgstr "GtkPageSetup erabiltzeko"
|
||||
|
||||
#: gtk/gtkprintunixdialog.c:408
|
||||
#: gtk/gtkprintunixdialog.c:407
|
||||
msgid "Selected Printer"
|
||||
msgstr "Hautatutako inprimagailua"
|
||||
|
||||
#: gtk/gtkprintunixdialog.c:409
|
||||
#: gtk/gtkprintunixdialog.c:408
|
||||
msgid "The GtkPrinter which is selected"
|
||||
msgstr "Hautatutako GtkPrinter"
|
||||
|
||||
#: gtk/gtkprintunixdialog.c:416
|
||||
#: gtk/gtkprintunixdialog.c:415
|
||||
msgid "Manual Capabilities"
|
||||
msgstr "Eskuzko gaitasunak"
|
||||
|
||||
#: gtk/gtkprintunixdialog.c:417
|
||||
#: gtk/gtkprintunixdialog.c:416
|
||||
msgid "Capabilities the application can handle"
|
||||
msgstr "Aplikazioak kudea ditzakeen gaitasunak"
|
||||
|
||||
#: gtk/gtkprintunixdialog.c:426
|
||||
#: gtk/gtkprintunixdialog.c:425
|
||||
msgid "Whether the dialog supports selection"
|
||||
msgstr "Elkarrizketa-koadroak hautapena onartzen duen edo ez"
|
||||
|
||||
#: gtk/gtkprintunixdialog.c:434
|
||||
#: gtk/gtkprintunixdialog.c:433
|
||||
msgid "Whether the application has a selection"
|
||||
msgstr "Aplikazioak hautapen bat duen edo ez"
|
||||
|
||||
@@ -5155,14 +5160,6 @@ msgstr "Objektua"
|
||||
msgid "The root object"
|
||||
msgstr "Erro-objektua"
|
||||
|
||||
#: gtk/gtkradiobutton.c:203
|
||||
msgid "Group"
|
||||
msgstr "Taldea"
|
||||
|
||||
#: gtk/gtkradiobutton.c:204
|
||||
msgid "The radio button whose group this widget belongs to."
|
||||
msgstr "Aukera-botoia (taldeari dagokion trepeta hau)."
|
||||
|
||||
#: gtk/gtkrange.c:366
|
||||
msgid "The GtkAdjustment that contains the current value of this range object"
|
||||
msgstr "Barruti-objektu honen uneko balioa duen GtkAdjustment"
|
||||
@@ -6891,9 +6888,9 @@ msgstr "Leiho-mota"
|
||||
msgid "The GtkTextWindowType"
|
||||
msgstr "GtkTextWindowType"
|
||||
|
||||
#: gtk/gtktogglebutton.c:209
|
||||
msgid "If the toggle button should be pressed in"
|
||||
msgstr "Txandakatze-botoiak sakatuta egon behar duen ala ez"
|
||||
#: gtk/gtktogglebutton.c:268
|
||||
msgid "The toggle button whose group this widget belongs to."
|
||||
msgstr "Trepeta honi dagokion taldearen txandakatze-botoia."
|
||||
|
||||
#: gtk/gtktreeexpander.c:460
|
||||
msgid "The child widget with the actual contents"
|
||||
@@ -7691,6 +7688,12 @@ msgstr "Kolore-profilaren titulua"
|
||||
msgid "The title of the color profile to use"
|
||||
msgstr "Erabiliko den kolore-profilaren titulua"
|
||||
|
||||
#~ msgid "Draw Indicator"
|
||||
#~ msgstr "Marrazki-adierazlea"
|
||||
|
||||
#~ msgid "If the indicator part of the button is displayed"
|
||||
#~ msgstr "Botoiaren adierazle-zatia bistaratuta dagoen"
|
||||
|
||||
#
|
||||
#~ msgid "Device type"
|
||||
#~ msgstr "Gailu mota"
|
||||
|
||||
+3040
-2387
File diff suppressed because it is too large
Load Diff
+226
-223
File diff suppressed because it is too large
Load Diff
+57
-54
@@ -12,8 +12,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gtk+-properties master\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-08-28 10:27+0000\n"
|
||||
"PO-Revision-Date: 2020-08-31 10:25+0700\n"
|
||||
"POT-Creation-Date: 2020-09-05 09:54+0000\n"
|
||||
"PO-Revision-Date: 2020-09-06 12:15+0700\n"
|
||||
"Last-Translator: Kukuh Syafaat <kukuhsyafaat@gnome.org>\n"
|
||||
"Language-Team: Indonesian <gnome@i15n.org>\n"
|
||||
"Language: id\n"
|
||||
@@ -655,11 +655,11 @@ msgstr "Jendela aktif"
|
||||
msgid "The window which most recently had focus"
|
||||
msgstr "Jendela yang terakhir kali memiliki fokus"
|
||||
|
||||
#: gtk/gtkapplicationwindow.c:677
|
||||
#: gtk/gtkapplicationwindow.c:684
|
||||
msgid "Show a menubar"
|
||||
msgstr "Tampilkan bilah menu"
|
||||
|
||||
#: gtk/gtkapplicationwindow.c:678
|
||||
#: gtk/gtkapplicationwindow.c:685
|
||||
msgid "TRUE if the window should show a menubar at the top of the window"
|
||||
msgstr ""
|
||||
"TRUE jika jendela mesti menampilkan bilah menu di bagian puncak jendela"
|
||||
@@ -696,7 +696,7 @@ msgstr "Obey child"
|
||||
msgid "Force aspect ratio to match that of the frame’s child"
|
||||
msgstr "Paksakan rasio aspek agar cocok dengan dengan bingkai anak"
|
||||
|
||||
#: gtk/gtkaspectframe.c:173 gtk/gtkbutton.c:252 gtk/gtkcombobox.c:782
|
||||
#: gtk/gtkaspectframe.c:173 gtk/gtkbutton.c:256 gtk/gtkcombobox.c:782
|
||||
#: gtk/gtkdragicon.c:372 gtk/gtkexpander.c:366 gtk/gtkflowbox.c:509
|
||||
#: gtk/gtkframe.c:191 gtk/gtklistbox.c:3467 gtk/gtklistitem.c:185
|
||||
#: gtk/gtknotebook.c:567 gtk/gtkoverlay.c:319 gtk/gtkpopover.c:1670
|
||||
@@ -706,7 +706,7 @@ msgstr "Paksakan rasio aspek agar cocok dengan dengan bingkai anak"
|
||||
msgid "Child"
|
||||
msgstr "Anak"
|
||||
|
||||
#: gtk/gtkaspectframe.c:174 gtk/gtkbutton.c:253 gtk/gtkexpander.c:367
|
||||
#: gtk/gtkaspectframe.c:174 gtk/gtkbutton.c:257 gtk/gtkexpander.c:367
|
||||
#: gtk/gtkflowbox.c:510 gtk/gtkframe.c:192 gtk/gtklistbox.c:3468
|
||||
#: gtk/gtkoverlay.c:320 gtk/gtkpopover.c:1671 gtk/gtkrevealer.c:353
|
||||
#: gtk/gtkscrolledwindow.c:757 gtk/gtksearchbar.c:325 gtk/gtkviewport.c:381
|
||||
@@ -891,25 +891,25 @@ msgstr "sumber daya yang berisi definisi UI"
|
||||
msgid "scope to use when instantiating listitems"
|
||||
msgstr "lingkup untuk digunakan saat instantiating listitems"
|
||||
|
||||
#: gtk/gtkbutton.c:224 gtk/gtkexpander.c:320 gtk/gtkframe.c:169
|
||||
#: gtk/gtklabel.c:744 gtk/gtkmenubutton.c:399
|
||||
#: gtk/gtkbutton.c:228 gtk/gtkcheckbutton.c:472 gtk/gtkexpander.c:320
|
||||
#: gtk/gtkframe.c:169 gtk/gtklabel.c:744 gtk/gtkmenubutton.c:399
|
||||
msgid "Label"
|
||||
msgstr "Label"
|
||||
|
||||
#: gtk/gtkbutton.c:225
|
||||
#: gtk/gtkbutton.c:229 gtk/gtkcheckbutton.c:473
|
||||
msgid ""
|
||||
"Text of the label widget inside the button, if the button contains a label "
|
||||
"widget"
|
||||
msgstr ""
|
||||
"Tulisan pada widget label dalam tombol, (jika tombol berisi widget label"
|
||||
|
||||
#: gtk/gtkbutton.c:231 gtk/gtkexpander.c:328 gtk/gtklabel.c:765
|
||||
#: gtk/gtkmenubutton.c:406 gtk/gtkstack.c:383
|
||||
#: gtk/gtkbutton.c:235 gtk/gtkcheckbutton.c:486 gtk/gtkexpander.c:328
|
||||
#: gtk/gtklabel.c:765 gtk/gtkmenubutton.c:406 gtk/gtkstack.c:383
|
||||
msgid "Use underline"
|
||||
msgstr "Gunakan garis bawah"
|
||||
|
||||
#: gtk/gtkbutton.c:232 gtk/gtkexpander.c:329 gtk/gtklabel.c:766
|
||||
#: gtk/gtkmenubutton.c:407
|
||||
#: gtk/gtkbutton.c:236 gtk/gtkcheckbutton.c:487 gtk/gtkexpander.c:329
|
||||
#: gtk/gtklabel.c:766 gtk/gtkmenubutton.c:407
|
||||
msgid ""
|
||||
"If set, an underline in the text indicates the next character should be used "
|
||||
"for the mnemonic accelerator key"
|
||||
@@ -917,21 +917,21 @@ msgstr ""
|
||||
"Jika ini diisi maka ada garis bawah pada teks yang menunjukkan bahwa huruf "
|
||||
"tersebut berisi singkatan tombol jalan pintas"
|
||||
|
||||
#: gtk/gtkbutton.c:238 gtk/gtkcombobox.c:669 gtk/gtkentry.c:469
|
||||
#: gtk/gtkbutton.c:242 gtk/gtkcombobox.c:669 gtk/gtkentry.c:469
|
||||
#: gtk/gtkscrolledwindow.c:638
|
||||
msgid "Has Frame"
|
||||
msgstr "Memiliki bingkai"
|
||||
|
||||
#: gtk/gtkbutton.c:239 gtk/gtkmenubutton.c:414
|
||||
#: gtk/gtkbutton.c:243 gtk/gtkmenubutton.c:414
|
||||
msgid "Whether the button has a frame"
|
||||
msgstr "Apakah tombol memiliki bingkai"
|
||||
|
||||
#: gtk/gtkbutton.c:245 gtk/gtkcellrendererpixbuf.c:209 gtk/gtkimage.c:211
|
||||
#: gtk/gtkbutton.c:249 gtk/gtkcellrendererpixbuf.c:209 gtk/gtkimage.c:211
|
||||
#: gtk/gtkmenubutton.c:392 gtk/gtkprinter.c:170 gtk/gtkwindow.c:822
|
||||
msgid "Icon Name"
|
||||
msgstr "Icon Name"
|
||||
|
||||
#: gtk/gtkbutton.c:246 gtk/gtkmenubutton.c:393
|
||||
#: gtk/gtkbutton.c:250 gtk/gtkmenubutton.c:393
|
||||
msgid "The name of the icon used to automatically populate the button"
|
||||
msgstr "Nama ikon yang dipakai untuk mempopulasi tombol secara otomatis"
|
||||
|
||||
@@ -1398,8 +1398,9 @@ msgstr "Digit"
|
||||
msgid "The number of decimal places to display"
|
||||
msgstr "Jumlah tempat desimal yang ditampilkan"
|
||||
|
||||
#: gtk/gtkcellrendererspinner.c:138 gtk/gtkmodelbutton.c:1130
|
||||
#: gtk/gtkmodelbutton.c:1131 gtk/gtkswitch.c:528 gtk/gtktogglebutton.c:208
|
||||
#: gtk/gtkcellrendererspinner.c:138 gtk/gtkcheckbutton.c:460
|
||||
#: gtk/gtkmodelbutton.c:1130 gtk/gtkmodelbutton.c:1131 gtk/gtkswitch.c:528
|
||||
#: gtk/gtktogglebutton.c:260
|
||||
msgid "Active"
|
||||
msgstr "Aktif"
|
||||
|
||||
@@ -1859,19 +1860,23 @@ msgstr "Pas Model"
|
||||
msgid "Whether to request enough space for every row in the model"
|
||||
msgstr "Apakah meminta cukup ruang untuk setiap baris dalam model"
|
||||
|
||||
#: gtk/gtkcheckbutton.c:223
|
||||
msgid "Draw Indicator"
|
||||
msgstr "Indikator gambar"
|
||||
#: gtk/gtkcheckbutton.c:461 gtk/gtktogglebutton.c:261
|
||||
msgid "If the toggle button should be pressed in"
|
||||
msgstr "Apakah tombol jungkit harus ditekan ke dalam"
|
||||
|
||||
#: gtk/gtkcheckbutton.c:224
|
||||
msgid "If the indicator part of the button is displayed"
|
||||
msgstr "Menentukan apakah bagian indikator tombol ditampilkan"
|
||||
#: gtk/gtkcheckbutton.c:466 gtk/gtktogglebutton.c:267
|
||||
msgid "Group"
|
||||
msgstr "Grup"
|
||||
|
||||
#: gtk/gtkcheckbutton.c:230
|
||||
#: gtk/gtkcheckbutton.c:467
|
||||
msgid "The check button whose group this widget belongs to."
|
||||
msgstr "Tombol cek tempat grup widget ini berada."
|
||||
|
||||
#: gtk/gtkcheckbutton.c:479
|
||||
msgid "Inconsistent"
|
||||
msgstr "Tidak konsisten"
|
||||
|
||||
#: gtk/gtkcheckbutton.c:231
|
||||
#: gtk/gtkcheckbutton.c:480
|
||||
msgid "If the check button is in an “in between” state"
|
||||
msgstr "Menentukan apakah tombol centang ada dalam kondisi \"antara\""
|
||||
|
||||
@@ -4926,7 +4931,7 @@ msgstr "Pengaturan"
|
||||
msgid "Printer settings"
|
||||
msgstr "Tatanan pencetak"
|
||||
|
||||
#: gtk/gtkprintjob.c:171 gtk/gtkprintjob.c:172 gtk/gtkprintunixdialog.c:382
|
||||
#: gtk/gtkprintjob.c:171 gtk/gtkprintjob.c:172 gtk/gtkprintunixdialog.c:381
|
||||
msgid "Page Setup"
|
||||
msgstr "Atur Halaman"
|
||||
|
||||
@@ -4950,11 +4955,11 @@ msgstr "Tatanan Halaman Baku"
|
||||
msgid "The GtkPageSetup used by default"
|
||||
msgstr "GtkPageSetup yang dipakai secara baku"
|
||||
|
||||
#: gtk/gtkprintoperation.c:1093 gtk/gtkprintunixdialog.c:400
|
||||
#: gtk/gtkprintoperation.c:1093 gtk/gtkprintunixdialog.c:399
|
||||
msgid "Print Settings"
|
||||
msgstr "Tatanan Pencetakan"
|
||||
|
||||
#: gtk/gtkprintoperation.c:1094 gtk/gtkprintunixdialog.c:401
|
||||
#: gtk/gtkprintoperation.c:1094 gtk/gtkprintunixdialog.c:400
|
||||
msgid "The GtkPrintSettings used for initializing the dialog"
|
||||
msgstr "GtkPrintSettings yang dipakai untuk menginisialisasi dialog"
|
||||
|
||||
@@ -4974,11 +4979,11 @@ msgstr "Cacah Halaman"
|
||||
msgid "The number of pages in the document."
|
||||
msgstr "Cacah halaman dalam dokumen."
|
||||
|
||||
#: gtk/gtkprintoperation.c:1153 gtk/gtkprintunixdialog.c:390
|
||||
#: gtk/gtkprintoperation.c:1153 gtk/gtkprintunixdialog.c:389
|
||||
msgid "Current Page"
|
||||
msgstr "Halaman Kini"
|
||||
|
||||
#: gtk/gtkprintoperation.c:1154 gtk/gtkprintunixdialog.c:391
|
||||
#: gtk/gtkprintoperation.c:1154 gtk/gtkprintunixdialog.c:390
|
||||
msgid "The current page in the document"
|
||||
msgstr "Halaman kini dalam dokumen"
|
||||
|
||||
@@ -5054,7 +5059,7 @@ msgstr "Label tab gubahan"
|
||||
msgid "Label for the tab containing custom widgets."
|
||||
msgstr "Label bagi tab yang memuat widget gubahan."
|
||||
|
||||
#: gtk/gtkprintoperation.c:1330 gtk/gtkprintunixdialog.c:425
|
||||
#: gtk/gtkprintoperation.c:1330 gtk/gtkprintunixdialog.c:424
|
||||
msgid "Support Selection"
|
||||
msgstr "Mendukung Pilihan"
|
||||
|
||||
@@ -5062,7 +5067,7 @@ msgstr "Mendukung Pilihan"
|
||||
msgid "TRUE if the print operation will support print of selection."
|
||||
msgstr "TRUE bila operasi pencetakan akan mendukung pencetakan dari pilihan."
|
||||
|
||||
#: gtk/gtkprintoperation.c:1345 gtk/gtkprintunixdialog.c:433
|
||||
#: gtk/gtkprintoperation.c:1345 gtk/gtkprintunixdialog.c:432
|
||||
msgid "Has Selection"
|
||||
msgstr "Memiliki Pilihan"
|
||||
|
||||
@@ -5070,11 +5075,11 @@ msgstr "Memiliki Pilihan"
|
||||
msgid "TRUE if a selection exists."
|
||||
msgstr "TRUE bila ada pilihan."
|
||||
|
||||
#: gtk/gtkprintoperation.c:1359 gtk/gtkprintunixdialog.c:441
|
||||
#: gtk/gtkprintoperation.c:1359 gtk/gtkprintunixdialog.c:440
|
||||
msgid "Embed Page Setup"
|
||||
msgstr "Tanamkan Penyiapan Halaman"
|
||||
|
||||
#: gtk/gtkprintoperation.c:1360 gtk/gtkprintunixdialog.c:442
|
||||
#: gtk/gtkprintoperation.c:1360 gtk/gtkprintunixdialog.c:441
|
||||
msgid "TRUE if page setup combos are embedded in GtkPrintUnixDialog"
|
||||
msgstr "TRUE bila kombo penyiapan halaman ditanamkan pada GtkPrintUnixDialog"
|
||||
|
||||
@@ -5086,31 +5091,31 @@ msgstr "Cacah Halaman Akan Dicetak"
|
||||
msgid "The number of pages that will be printed."
|
||||
msgstr "Cacah halaman yang akan dicetak."
|
||||
|
||||
#: gtk/gtkprintunixdialog.c:383
|
||||
#: gtk/gtkprintunixdialog.c:382
|
||||
msgid "The GtkPageSetup to use"
|
||||
msgstr "GtkPageSetup yang akan dipakai"
|
||||
|
||||
#: gtk/gtkprintunixdialog.c:408
|
||||
#: gtk/gtkprintunixdialog.c:407
|
||||
msgid "Selected Printer"
|
||||
msgstr "Pencetak Terpilih"
|
||||
|
||||
#: gtk/gtkprintunixdialog.c:409
|
||||
#: gtk/gtkprintunixdialog.c:408
|
||||
msgid "The GtkPrinter which is selected"
|
||||
msgstr "GtkPrinter yang dipilih"
|
||||
|
||||
#: gtk/gtkprintunixdialog.c:416
|
||||
#: gtk/gtkprintunixdialog.c:415
|
||||
msgid "Manual Capabilities"
|
||||
msgstr "Kapabilitas Manual"
|
||||
|
||||
#: gtk/gtkprintunixdialog.c:417
|
||||
#: gtk/gtkprintunixdialog.c:416
|
||||
msgid "Capabilities the application can handle"
|
||||
msgstr "Kapabilitas yang dapat ditangani aplikasi"
|
||||
|
||||
#: gtk/gtkprintunixdialog.c:426
|
||||
#: gtk/gtkprintunixdialog.c:425
|
||||
msgid "Whether the dialog supports selection"
|
||||
msgstr "Apakah dialog mendukung pilihan"
|
||||
|
||||
#: gtk/gtkprintunixdialog.c:434
|
||||
#: gtk/gtkprintunixdialog.c:433
|
||||
msgid "Whether the application has a selection"
|
||||
msgstr "Apakah aplikasi memiliki pilihan"
|
||||
|
||||
@@ -5167,14 +5172,6 @@ msgstr "Objek"
|
||||
msgid "The root object"
|
||||
msgstr "Objek root"
|
||||
|
||||
#: gtk/gtkradiobutton.c:203
|
||||
msgid "Group"
|
||||
msgstr "Grup"
|
||||
|
||||
#: gtk/gtkradiobutton.c:204
|
||||
msgid "The radio button whose group this widget belongs to."
|
||||
msgstr "Tombol radio tempat Grup widget ini berada."
|
||||
|
||||
#: gtk/gtkrange.c:366
|
||||
msgid "The GtkAdjustment that contains the current value of this range object"
|
||||
msgstr "GtkAdjustment yang berisi nilai sekarang pada obyek jangkauan"
|
||||
@@ -6956,9 +6953,9 @@ msgstr "Jenis Jendela"
|
||||
msgid "The GtkTextWindowType"
|
||||
msgstr "GtkTextWindowType"
|
||||
|
||||
#: gtk/gtktogglebutton.c:209
|
||||
msgid "If the toggle button should be pressed in"
|
||||
msgstr "Apakah tombol jungkit harus ditekan ke dalam"
|
||||
#: gtk/gtktogglebutton.c:268
|
||||
msgid "The toggle button whose group this widget belongs to."
|
||||
msgstr "Tombol jungkitkan tempat grup widget ini berada."
|
||||
|
||||
#: gtk/gtktreeexpander.c:460
|
||||
msgid "The child widget with the actual contents"
|
||||
@@ -7763,3 +7760,9 @@ msgstr "Judul Profil Warna"
|
||||
#: modules/printbackends/gtkprintercups.c:94
|
||||
msgid "The title of the color profile to use"
|
||||
msgstr "Judul profil warna yang akan dipakai"
|
||||
|
||||
#~ msgid "Draw Indicator"
|
||||
#~ msgstr "Indikator gambar"
|
||||
|
||||
#~ msgid "If the indicator part of the button is displayed"
|
||||
#~ msgstr "Menentukan apakah bagian indikator tombol ditampilkan"
|
||||
|
||||
@@ -665,7 +665,7 @@ add_extra_columns (GtkColumnView *view,
|
||||
column = gtk_column_view_column_new_with_factory (extra_columns[i].title,
|
||||
gtk_builder_list_item_factory_new_from_bytes (scope, bytes));
|
||||
g_bytes_unref (bytes);
|
||||
sorter = GTK_SORTER (gtk_custom_sorter_new (compare_file_attribute, (gpointer) extra_columns[i].attribute, NULL));
|
||||
sorter = gtk_custom_sorter_new (compare_file_attribute, (gpointer) extra_columns[i].attribute, NULL);
|
||||
gtk_column_view_column_set_sorter (column, sorter);
|
||||
g_object_unref (sorter);
|
||||
gtk_column_view_append_column (view, column);
|
||||
@@ -753,10 +753,10 @@ main (int argc, char *argv[])
|
||||
create_list_model_for_file_info,
|
||||
NULL, NULL);
|
||||
|
||||
sorter = GTK_SORTER (gtk_tree_list_row_sorter_new (g_object_ref (gtk_column_view_get_sorter (GTK_COLUMN_VIEW (view)))));
|
||||
sorter = gtk_tree_list_row_sorter_new (g_object_ref (gtk_column_view_get_sorter (GTK_COLUMN_VIEW (view))));
|
||||
sort = gtk_sort_list_model_new (G_LIST_MODEL (tree), sorter);
|
||||
|
||||
custom_filter = GTK_FILTER (gtk_custom_filter_new (match_file, g_object_ref (search_entry), g_object_unref));
|
||||
custom_filter = gtk_custom_filter_new (match_file, g_object_ref (search_entry), g_object_unref);
|
||||
filter = gtk_filter_list_model_new (G_LIST_MODEL (sort), custom_filter);
|
||||
g_signal_connect (search_entry, "search-changed", G_CALLBACK (search_changed_cb), custom_filter);
|
||||
|
||||
|
||||
@@ -126,7 +126,7 @@ main (int argc,
|
||||
store = g_list_store_new (G_TYPE_OBJECT);
|
||||
for (i = 0; i < AVERAGE; i++)
|
||||
add (store);
|
||||
sorter = GTK_SORTER (gtk_numeric_sorter_new (gtk_cclosure_expression_new (G_TYPE_UINT, NULL, 0, NULL, (GCallback)get_number, NULL, NULL)));
|
||||
sorter = gtk_numeric_sorter_new (gtk_cclosure_expression_new (G_TYPE_UINT, NULL, 0, NULL, (GCallback)get_number, NULL, NULL));
|
||||
sort = gtk_sort_list_model_new (G_LIST_MODEL (store), sorter);
|
||||
|
||||
win = gtk_window_new ();
|
||||
|
||||
@@ -325,7 +325,7 @@ create_list_model_for_directory (gpointer file)
|
||||
return NULL;
|
||||
|
||||
dir = create_directory_list (file);
|
||||
sorter = GTK_SORTER (gtk_string_sorter_new (gtk_cclosure_expression_new (G_TYPE_STRING, NULL, 0, NULL, (GCallback) get_file_path, NULL, NULL)));
|
||||
sorter = gtk_string_sorter_new (gtk_cclosure_expression_new (G_TYPE_STRING, NULL, 0, NULL, (GCallback) get_file_path, NULL, NULL));
|
||||
|
||||
return G_LIST_MODEL (gtk_sort_list_model_new (G_LIST_MODEL (dir), sorter));
|
||||
}
|
||||
@@ -629,7 +629,7 @@ main (int argc, char *argv[])
|
||||
NULL, NULL);
|
||||
g_object_unref (root);
|
||||
|
||||
custom_filter = GTK_FILTER (gtk_custom_filter_new (match_file, search_entry, NULL));
|
||||
custom_filter = gtk_custom_filter_new (match_file, search_entry, NULL);
|
||||
filter = gtk_filter_list_model_new (G_LIST_MODEL (tree), custom_filter);
|
||||
g_signal_connect (search_entry, "search-changed", G_CALLBACK (search_changed_cb), custom_filter);
|
||||
|
||||
|
||||
+21
-5
@@ -36,6 +36,7 @@ int
|
||||
main (int argc, char *argv[])
|
||||
{
|
||||
GtkWidget *window, *fixed, *button;
|
||||
GtkWidget *fixed2, *frame;
|
||||
gboolean done = FALSE;
|
||||
GskTransform *transform;
|
||||
|
||||
@@ -52,8 +53,7 @@ main (int argc, char *argv[])
|
||||
gtk_widget_set_vexpand (fixed, TRUE);
|
||||
|
||||
button = gtk_button_new ();
|
||||
gtk_button_set_label (GTK_BUTTON (button), "Hello world");
|
||||
//gtk_widget_set_size_request (button, 50, 50);
|
||||
gtk_button_set_label (GTK_BUTTON (button), "Button");
|
||||
g_signal_connect (button, "clicked", G_CALLBACK (hello), NULL);
|
||||
|
||||
gtk_fixed_put (GTK_FIXED (fixed), button, 0, 0);
|
||||
@@ -62,11 +62,27 @@ main (int argc, char *argv[])
|
||||
transform = gsk_transform_translate_3d (transform, &GRAPHENE_POINT3D_INIT (0, 0, 50));
|
||||
transform = gsk_transform_perspective (transform, 170);
|
||||
transform = gsk_transform_translate_3d (transform, &GRAPHENE_POINT3D_INIT (50, 0, 50));
|
||||
transform = gsk_transform_rotate (transform, 30);
|
||||
transform = gsk_transform_rotate_3d (transform, 30, graphene_vec3_y_axis ());
|
||||
transform = gsk_transform_rotate (transform, 20);
|
||||
transform = gsk_transform_rotate_3d (transform, 20, graphene_vec3_y_axis ());
|
||||
gtk_fixed_set_child_transform (GTK_FIXED (fixed), button, transform);
|
||||
|
||||
gtk_window_set_child (GTK_WINDOW (window), fixed);
|
||||
frame = gtk_frame_new ("Frame");
|
||||
gtk_widget_add_css_class (frame, "view");
|
||||
gtk_frame_set_child (GTK_FRAME (frame), fixed);
|
||||
|
||||
fixed2 = gtk_fixed_new ();
|
||||
|
||||
gtk_fixed_put (GTK_FIXED (fixed2), frame, 0, 0);
|
||||
|
||||
transform = NULL;
|
||||
transform = gsk_transform_translate_3d (transform, &GRAPHENE_POINT3D_INIT (0, 0, 50));
|
||||
transform = gsk_transform_perspective (transform, 170);
|
||||
transform = gsk_transform_translate_3d (transform, &GRAPHENE_POINT3D_INIT (50, 0, 50));
|
||||
transform = gsk_transform_rotate (transform, 20);
|
||||
transform = gsk_transform_rotate_3d (transform, 20, graphene_vec3_y_axis ());
|
||||
gtk_fixed_set_child_transform (GTK_FIXED (fixed2), frame, transform);
|
||||
|
||||
gtk_window_set_child (GTK_WINDOW (window), fixed2);
|
||||
|
||||
gtk_widget_show (window);
|
||||
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
/* This test checks that we get sharp clip boundaries
|
||||
* for 2d transforms. Compare with clip-coordinates-3d.node,
|
||||
* which uses a general transform and gets offscreen
|
||||
* rendering with GL_LINEAR.
|
||||
*/
|
||||
transform {
|
||||
transform: scale(2);
|
||||
child: container {
|
||||
color {
|
||||
bounds: 0 0 50 50;
|
||||
color: transparent;
|
||||
}
|
||||
|
||||
clip {
|
||||
clip: 10 10 30 30;
|
||||
child: color {
|
||||
bounds: 0 0 50 50;
|
||||
color: red;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 269 B |
@@ -22,6 +22,7 @@ node_parser = executable(
|
||||
compare_render_tests = [
|
||||
'blend-normal',
|
||||
'blend-difference',
|
||||
'clip-coordinates-2d',
|
||||
'clip-coordinates-3d',
|
||||
'clipped_rounded_clip',
|
||||
'color-blur0',
|
||||
|
||||
@@ -406,6 +406,122 @@ test_print_parse (void)
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gsk_matrix_transform_rect (const graphene_matrix_t *m,
|
||||
const graphene_rect_t *r,
|
||||
graphene_quad_t *res)
|
||||
{
|
||||
graphene_point_t ret[4];
|
||||
graphene_rect_t rr;
|
||||
|
||||
graphene_rect_normalize_r (r, &rr);
|
||||
|
||||
#define TRANSFORM_POINT(matrix, rect, corner, out_p) do {\
|
||||
graphene_vec4_t __s; \
|
||||
graphene_point_t __p; \
|
||||
float w; \
|
||||
graphene_rect_get_ ## corner (rect, &__p); \
|
||||
graphene_vec4_init (&__s, __p.x, __p.y, 0.f, 1.f); \
|
||||
graphene_matrix_transform_vec4 (matrix, &__s, &__s); \
|
||||
w = graphene_vec4_get_w (&__s); \
|
||||
out_p.x = graphene_vec4_get_x (&__s) / w; \
|
||||
out_p.y = graphene_vec4_get_y (&__s) / w; } while (0)
|
||||
|
||||
TRANSFORM_POINT (m, &rr, top_left, ret[0]);
|
||||
TRANSFORM_POINT (m, &rr, top_right, ret[1]);
|
||||
TRANSFORM_POINT (m, &rr, bottom_right, ret[2]);
|
||||
TRANSFORM_POINT (m, &rr, bottom_left, ret[3]);
|
||||
|
||||
#undef TRANSFORM_POINT
|
||||
|
||||
graphene_quad_init (res, &ret[0], &ret[1], &ret[2], &ret[3]);
|
||||
}
|
||||
|
||||
/* This is an auxiliary function used in the GL renderer to
|
||||
* determine if transforming an axis-aligned rectangle produces
|
||||
* axis-aligned output, to decide whether to use linear
|
||||
* interpolation or not.
|
||||
*
|
||||
* Keep this in sync with gsk/gl/gskglrenderer.c
|
||||
*/
|
||||
static gboolean
|
||||
result_is_axis_aligned (GskTransform *transform,
|
||||
const graphene_rect_t *bounds)
|
||||
{
|
||||
graphene_matrix_t m;
|
||||
graphene_quad_t q;
|
||||
graphene_rect_t b;
|
||||
graphene_point_t b1, b2;
|
||||
const graphene_point_t *p;
|
||||
int i;
|
||||
|
||||
gsk_transform_to_matrix (transform, &m);
|
||||
gsk_matrix_transform_rect (&m, bounds, &q);
|
||||
graphene_quad_bounds (&q, &b);
|
||||
graphene_rect_get_top_left (&b, &b1);
|
||||
graphene_rect_get_bottom_right (&b, &b2);
|
||||
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
p = graphene_quad_get_point (&q, i);
|
||||
if (fabs (p->x - b1.x) > FLT_EPSILON && fabs (p->x - b2.x) > FLT_EPSILON)
|
||||
return FALSE;
|
||||
if (fabs (p->y - b1.y) > FLT_EPSILON && fabs (p->y - b2.y) > FLT_EPSILON)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
test_axis_aligned (void)
|
||||
{
|
||||
graphene_rect_t r = GRAPHENE_RECT_INIT (0, 0, 10, 10);
|
||||
GskTransform *transform = NULL;
|
||||
|
||||
transform = gsk_transform_translate (NULL, &GRAPHENE_POINT_INIT (10, 10));
|
||||
g_assert_true (result_is_axis_aligned (transform, &r));
|
||||
gsk_transform_unref (transform);
|
||||
|
||||
transform = gsk_transform_translate_3d (NULL, &GRAPHENE_POINT3D_INIT(0, 10, 10));
|
||||
g_assert_true (result_is_axis_aligned (transform, &r));
|
||||
gsk_transform_unref (transform);
|
||||
|
||||
transform = gsk_transform_rotate (NULL, 90);
|
||||
g_assert_true (result_is_axis_aligned (transform, &r));
|
||||
gsk_transform_unref (transform);
|
||||
|
||||
transform = gsk_transform_scale (NULL, 2, 3);
|
||||
g_assert_true (result_is_axis_aligned (transform, &r));
|
||||
gsk_transform_unref (transform);
|
||||
|
||||
/* rotating around the y axis does not affect axis alignedness,
|
||||
* as long as we don't involve perspective
|
||||
*/
|
||||
transform = gsk_transform_rotate_3d (NULL, 45, graphene_vec3_y_axis ());
|
||||
g_assert_true (result_is_axis_aligned (transform, &r));
|
||||
gsk_transform_unref (transform);
|
||||
|
||||
/* rotating by 45 around the z axis, not axis aligned */
|
||||
transform = gsk_transform_rotate (NULL, 45);
|
||||
g_assert_false (result_is_axis_aligned (transform, &r));
|
||||
gsk_transform_unref (transform);
|
||||
|
||||
/* perspective is harmless as long as we stay in the z=0 plane */
|
||||
transform = gsk_transform_perspective (NULL, 100);
|
||||
g_assert_true (result_is_axis_aligned (transform, &r));
|
||||
gsk_transform_unref (transform);
|
||||
|
||||
/* a complex transform that makes things look '3d' */
|
||||
transform = gsk_transform_translate_3d (NULL, &GRAPHENE_POINT3D_INIT (0, 0, 50));
|
||||
transform = gsk_transform_perspective (transform, 170);
|
||||
transform = gsk_transform_translate_3d (transform, &GRAPHENE_POINT3D_INIT (50, 0, 50));
|
||||
transform = gsk_transform_rotate (transform, 20);
|
||||
transform = gsk_transform_rotate_3d (transform, 20, graphene_vec3_y_axis ());
|
||||
g_assert_false (result_is_axis_aligned (transform, &r));
|
||||
gsk_transform_unref (transform);
|
||||
}
|
||||
|
||||
int
|
||||
main (int argc,
|
||||
char *argv[])
|
||||
@@ -418,6 +534,7 @@ main (int argc,
|
||||
g_test_add_func ("/transform/identity-equal", test_identity_equal);
|
||||
g_test_add_func ("/transform/invert", test_invert);
|
||||
g_test_add_func ("/transform/print-parse", test_print_parse);
|
||||
g_test_add_func ("/transform/check-axis-aligneness", test_axis_aligned);
|
||||
|
||||
return g_test_run ();
|
||||
}
|
||||
|
||||
+69
-69
@@ -38,7 +38,7 @@ test_property (void)
|
||||
GtkStringFilter *filter;
|
||||
guint counter = 0;
|
||||
|
||||
filter = gtk_string_filter_new (NULL);
|
||||
filter = GTK_STRING_FILTER (gtk_string_filter_new (NULL));
|
||||
expr = gtk_property_expression_new (GTK_TYPE_STRING_FILTER, NULL, "search");
|
||||
watch = gtk_expression_watch (expr, filter, inc_counter, &counter, NULL);
|
||||
|
||||
@@ -192,7 +192,7 @@ test_nested (void)
|
||||
GtkExpression *list_expr;
|
||||
GtkExpression *filter_expr;
|
||||
GtkExpression *expr;
|
||||
GtkStringFilter *filter;
|
||||
GtkFilter *filter;
|
||||
GListModel *list;
|
||||
GtkFilterListModel *filtered;
|
||||
GValue value = G_VALUE_INIT;
|
||||
@@ -201,9 +201,9 @@ test_nested (void)
|
||||
guint counter = 0;
|
||||
|
||||
filter = gtk_string_filter_new (NULL);
|
||||
gtk_string_filter_set_search (filter, "word");
|
||||
gtk_string_filter_set_search (GTK_STRING_FILTER (filter), "word");
|
||||
list = G_LIST_MODEL (g_list_store_new (G_TYPE_OBJECT));
|
||||
filtered = gtk_filter_list_model_new (list, g_object_ref (GTK_FILTER (filter)));
|
||||
filtered = gtk_filter_list_model_new (list, g_object_ref (filter));
|
||||
|
||||
list_expr = gtk_object_expression_new (G_OBJECT (filtered));
|
||||
filter_expr = gtk_property_expression_new (GTK_TYPE_FILTER_LIST_MODEL, list_expr, "filter");
|
||||
@@ -227,13 +227,13 @@ test_nested (void)
|
||||
g_assert_cmpstr (g_value_get_string (&value), ==, "salad");
|
||||
g_value_unset (&value);
|
||||
|
||||
gtk_filter_list_model_set_filter (filtered, GTK_FILTER (filter));
|
||||
gtk_filter_list_model_set_filter (filtered, filter);
|
||||
g_assert_cmpint (counter, ==, 0);
|
||||
|
||||
g_clear_object (&filter);
|
||||
filter = gtk_string_filter_new (NULL);
|
||||
gtk_string_filter_set_search (filter, "salad");
|
||||
gtk_filter_list_model_set_filter (filtered, GTK_FILTER (filter));
|
||||
gtk_string_filter_set_search (GTK_STRING_FILTER (filter), "salad");
|
||||
gtk_filter_list_model_set_filter (filtered, filter);
|
||||
g_assert_cmpint (counter, ==, 1);
|
||||
counter = 0;
|
||||
|
||||
@@ -242,7 +242,7 @@ test_nested (void)
|
||||
g_assert_cmpstr (g_value_get_string (&value), ==, "salad");
|
||||
g_value_unset (&value);
|
||||
|
||||
gtk_string_filter_set_search (filter, "bar");
|
||||
gtk_string_filter_set_search (GTK_STRING_FILTER (filter), "bar");
|
||||
g_assert_cmpint (counter, ==, 1);
|
||||
counter = 0;
|
||||
|
||||
@@ -279,7 +279,7 @@ test_nested_this_destroyed (void)
|
||||
GtkExpression *list_expr;
|
||||
GtkExpression *filter_expr;
|
||||
GtkExpression *expr;
|
||||
GtkStringFilter *filter;
|
||||
GtkFilter *filter;
|
||||
GListModel *list;
|
||||
GtkFilterListModel *filtered;
|
||||
GValue value = G_VALUE_INIT;
|
||||
@@ -288,9 +288,9 @@ test_nested_this_destroyed (void)
|
||||
guint counter = 0;
|
||||
|
||||
filter = gtk_string_filter_new (NULL);
|
||||
gtk_string_filter_set_search (filter, "word");
|
||||
gtk_string_filter_set_search (GTK_STRING_FILTER (filter), "word");
|
||||
list = G_LIST_MODEL (g_list_store_new (G_TYPE_OBJECT));
|
||||
filtered = gtk_filter_list_model_new (list, g_object_ref (GTK_FILTER (filter)));
|
||||
filtered = gtk_filter_list_model_new (list, g_object_ref (filter));
|
||||
|
||||
list_expr = gtk_object_expression_new (G_OBJECT (filtered));
|
||||
filter_expr = gtk_property_expression_new (GTK_TYPE_FILTER_LIST_MODEL, list_expr, "filter");
|
||||
@@ -307,15 +307,15 @@ test_nested_this_destroyed (void)
|
||||
g_assert_cmpint (counter, ==, 0);
|
||||
|
||||
filter = gtk_string_filter_new (NULL);
|
||||
gtk_string_filter_set_search (filter, "salad");
|
||||
gtk_filter_list_model_set_filter (filtered, GTK_FILTER (filter));
|
||||
gtk_string_filter_set_search (GTK_STRING_FILTER (filter), "salad");
|
||||
gtk_filter_list_model_set_filter (filtered, filter);
|
||||
g_assert_cmpint (counter, ==, 1);
|
||||
counter = 0;
|
||||
|
||||
res = gtk_expression_watch_evaluate (watch, &value);
|
||||
g_assert_false (res);
|
||||
|
||||
gtk_string_filter_set_search (filter, "bar");
|
||||
gtk_string_filter_set_search (GTK_STRING_FILTER (filter), "bar");
|
||||
g_assert_cmpint (counter, ==, 0);
|
||||
|
||||
gtk_filter_list_model_set_filter (filtered, NULL);
|
||||
@@ -346,7 +346,7 @@ test_type_mismatch (void)
|
||||
GValue value = G_VALUE_INIT;
|
||||
gboolean res;
|
||||
|
||||
filter = GTK_FILTER (gtk_any_filter_new ());
|
||||
filter = gtk_any_filter_new ();
|
||||
|
||||
expr = gtk_property_expression_new (GTK_TYPE_STRING_FILTER, gtk_constant_expression_new (GTK_TYPE_ANY_FILTER, filter), "search");
|
||||
|
||||
@@ -362,8 +362,8 @@ test_type_mismatch (void)
|
||||
static void
|
||||
test_this (void)
|
||||
{
|
||||
GtkStringFilter *filter;
|
||||
GtkStringFilter *filter2;
|
||||
GtkFilter *filter;
|
||||
GtkFilter *filter2;
|
||||
GtkExpression *expr;
|
||||
GValue value = G_VALUE_INIT;
|
||||
gboolean res;
|
||||
@@ -371,10 +371,10 @@ test_this (void)
|
||||
expr = gtk_property_expression_new (GTK_TYPE_STRING_FILTER, NULL, "search");
|
||||
|
||||
filter = gtk_string_filter_new (NULL);
|
||||
gtk_string_filter_set_search (filter, "word");
|
||||
gtk_string_filter_set_search (GTK_STRING_FILTER (filter), "word");
|
||||
|
||||
filter2 = gtk_string_filter_new (NULL);
|
||||
gtk_string_filter_set_search (filter2, "sausage");
|
||||
gtk_string_filter_set_search (GTK_STRING_FILTER (filter2), "sausage");
|
||||
|
||||
res = gtk_expression_evaluate (expr, filter, &value);
|
||||
g_assert_true (res);
|
||||
@@ -417,8 +417,8 @@ test_constant_watch_this_destroyed (void)
|
||||
static void
|
||||
test_bind (void)
|
||||
{
|
||||
GtkStringFilter *target;
|
||||
GtkStringFilter *source;
|
||||
GtkFilter *target;
|
||||
GtkFilter *source;
|
||||
GtkExpression *expr;
|
||||
GtkExpressionWatch *watch;
|
||||
GValue value = G_VALUE_INIT;
|
||||
@@ -427,25 +427,25 @@ test_bind (void)
|
||||
expr = gtk_property_expression_new (GTK_TYPE_STRING_FILTER, NULL, "search");
|
||||
|
||||
target = gtk_string_filter_new (NULL);
|
||||
gtk_string_filter_set_search (target, "word");
|
||||
g_assert_cmpstr (gtk_string_filter_get_search (target), ==, "word");
|
||||
gtk_string_filter_set_search (GTK_STRING_FILTER (target), "word");
|
||||
g_assert_cmpstr (gtk_string_filter_get_search (GTK_STRING_FILTER (target)), ==, "word");
|
||||
|
||||
source = gtk_string_filter_new (NULL);
|
||||
gtk_string_filter_set_search (source, "sausage");
|
||||
gtk_string_filter_set_search (GTK_STRING_FILTER (source), "sausage");
|
||||
|
||||
watch = gtk_expression_bind (expr, target, "search", source);
|
||||
gtk_expression_watch_ref (watch);
|
||||
g_assert_cmpstr (gtk_string_filter_get_search (target), ==, "sausage");
|
||||
g_assert_cmpstr (gtk_string_filter_get_search (GTK_STRING_FILTER (target)), ==, "sausage");
|
||||
|
||||
gtk_string_filter_set_search (source, "salad");
|
||||
g_assert_cmpstr (gtk_string_filter_get_search (target), ==, "salad");
|
||||
gtk_string_filter_set_search (GTK_STRING_FILTER (source), "salad");
|
||||
g_assert_cmpstr (gtk_string_filter_get_search (GTK_STRING_FILTER (target)), ==, "salad");
|
||||
res = gtk_expression_watch_evaluate (watch, &value);
|
||||
g_assert_true (res);
|
||||
g_assert_cmpstr (g_value_get_string (&value), ==, "salad");
|
||||
g_value_unset (&value);
|
||||
|
||||
g_object_unref (source);
|
||||
g_assert_cmpstr (gtk_string_filter_get_search (target), ==, "salad");
|
||||
g_assert_cmpstr (gtk_string_filter_get_search (GTK_STRING_FILTER (target)), ==, "salad");
|
||||
res = gtk_expression_watch_evaluate (watch, &value);
|
||||
g_assert_false (res);
|
||||
g_assert_false (G_IS_VALUE (&value));
|
||||
@@ -458,7 +458,7 @@ test_bind (void)
|
||||
static void
|
||||
test_bind_self (void)
|
||||
{
|
||||
GtkStringFilter *filter;
|
||||
GtkFilter *filter;
|
||||
GtkExpression *expr;
|
||||
|
||||
expr = gtk_property_expression_new (GTK_TYPE_STRING_FILTER,
|
||||
@@ -466,11 +466,11 @@ test_bind_self (void)
|
||||
"ignore-case");
|
||||
|
||||
filter = gtk_string_filter_new (NULL);
|
||||
gtk_string_filter_set_search (filter, "word");
|
||||
g_assert_cmpstr (gtk_string_filter_get_search (filter), ==, "word");
|
||||
gtk_string_filter_set_search (GTK_STRING_FILTER (filter), "word");
|
||||
g_assert_cmpstr (gtk_string_filter_get_search (GTK_STRING_FILTER (filter)), ==, "word");
|
||||
|
||||
gtk_expression_bind (expr, filter, "search", filter);
|
||||
g_assert_cmpstr (gtk_string_filter_get_search (filter), ==, "TRUE");
|
||||
g_assert_cmpstr (gtk_string_filter_get_search (GTK_STRING_FILTER (filter)), ==, "TRUE");
|
||||
|
||||
g_object_unref (filter);
|
||||
}
|
||||
@@ -480,7 +480,7 @@ test_bind_self (void)
|
||||
static void
|
||||
test_bind_child (void)
|
||||
{
|
||||
GtkStringFilter *filter;
|
||||
GtkFilter *filter;
|
||||
GtkFilterListModel *child, *target;
|
||||
GtkExpression *expr;
|
||||
|
||||
@@ -489,15 +489,15 @@ test_bind_child (void)
|
||||
"filter");
|
||||
|
||||
filter = gtk_string_filter_new (NULL);
|
||||
child = gtk_filter_list_model_new (NULL, GTK_FILTER (filter));
|
||||
child = gtk_filter_list_model_new (NULL, filter);
|
||||
target = gtk_filter_list_model_new (G_LIST_MODEL (child), NULL);
|
||||
|
||||
gtk_expression_bind (expr, target, "filter", child);
|
||||
g_assert_true (gtk_filter_list_model_get_filter (child) == gtk_filter_list_model_get_filter (target));
|
||||
|
||||
filter = gtk_string_filter_new (NULL);
|
||||
gtk_filter_list_model_set_filter (child, GTK_FILTER (filter));
|
||||
g_assert_true (GTK_FILTER (filter) == gtk_filter_list_model_get_filter (target));
|
||||
gtk_filter_list_model_set_filter (child, filter);
|
||||
g_assert_true (filter == gtk_filter_list_model_get_filter (target));
|
||||
g_assert_true (gtk_filter_list_model_get_filter (child) == gtk_filter_list_model_get_filter (target));
|
||||
g_object_unref (filter);
|
||||
|
||||
@@ -508,9 +508,9 @@ test_bind_child (void)
|
||||
static void
|
||||
test_nested_bind (void)
|
||||
{
|
||||
GtkStringFilter *filter;
|
||||
GtkStringFilter *filter2;
|
||||
GtkStringFilter *filter3;
|
||||
GtkFilter *filter;
|
||||
GtkFilter *filter2;
|
||||
GtkFilter *filter3;
|
||||
GListModel *list;
|
||||
GtkFilterListModel *filtered;
|
||||
GtkExpression *expr;
|
||||
@@ -519,10 +519,10 @@ test_nested_bind (void)
|
||||
GValue value = G_VALUE_INIT;
|
||||
|
||||
filter2 = gtk_string_filter_new (NULL);
|
||||
gtk_string_filter_set_search (filter2, "sausage");
|
||||
gtk_string_filter_set_search (GTK_STRING_FILTER (filter2), "sausage");
|
||||
|
||||
list = G_LIST_MODEL (g_list_store_new (G_TYPE_OBJECT));
|
||||
filtered = gtk_filter_list_model_new (list, g_object_ref (GTK_FILTER (filter2)));
|
||||
filtered = gtk_filter_list_model_new (list, g_object_ref (filter2));
|
||||
|
||||
filter_expr = gtk_property_expression_new (GTK_TYPE_FILTER_LIST_MODEL,
|
||||
gtk_object_expression_new (G_OBJECT (filtered)),
|
||||
@@ -530,17 +530,17 @@ test_nested_bind (void)
|
||||
expr = gtk_property_expression_new (GTK_TYPE_STRING_FILTER, gtk_expression_ref (filter_expr), "search");
|
||||
|
||||
filter = gtk_string_filter_new (NULL);
|
||||
gtk_string_filter_set_search (filter, "word");
|
||||
g_assert_cmpstr (gtk_string_filter_get_search (filter), ==, "word");
|
||||
gtk_string_filter_set_search (GTK_STRING_FILTER (filter), "word");
|
||||
g_assert_cmpstr (gtk_string_filter_get_search (GTK_STRING_FILTER (filter)), ==, "word");
|
||||
|
||||
gtk_expression_bind (gtk_expression_ref (expr), filter, "search", NULL);
|
||||
|
||||
gtk_string_filter_set_search (filter2, "sausage");
|
||||
g_assert_cmpstr (gtk_string_filter_get_search (filter), ==, "sausage");
|
||||
gtk_string_filter_set_search (GTK_STRING_FILTER (filter2), "sausage");
|
||||
g_assert_cmpstr (gtk_string_filter_get_search (GTK_STRING_FILTER (filter)), ==, "sausage");
|
||||
|
||||
filter3 = gtk_string_filter_new (NULL);
|
||||
gtk_string_filter_set_search (filter3, "banana");
|
||||
gtk_filter_list_model_set_filter (filtered, GTK_FILTER (filter3));
|
||||
gtk_string_filter_set_search (GTK_STRING_FILTER (filter3), "banana");
|
||||
gtk_filter_list_model_set_filter (filtered, filter3);
|
||||
|
||||
/* check that the expressions evaluate correctly */
|
||||
res = gtk_expression_evaluate (filter_expr, NULL, &value);
|
||||
@@ -554,7 +554,7 @@ test_nested_bind (void)
|
||||
g_value_unset (&value);
|
||||
|
||||
/* and the bind too */
|
||||
g_assert_cmpstr (gtk_string_filter_get_search (filter), ==, "banana");
|
||||
g_assert_cmpstr (gtk_string_filter_get_search (GTK_STRING_FILTER (filter)), ==, "banana");
|
||||
|
||||
g_object_unref (filter);
|
||||
g_object_unref (filter2);
|
||||
@@ -592,8 +592,8 @@ test_double_bind (void)
|
||||
GtkExpression *filter_expr;
|
||||
GtkExpression *params[2];
|
||||
|
||||
filter1 = gtk_string_filter_new (NULL);
|
||||
filter2 = gtk_string_filter_new (NULL);
|
||||
filter1 = GTK_STRING_FILTER (gtk_string_filter_new (NULL));
|
||||
filter2 = GTK_STRING_FILTER (gtk_string_filter_new (NULL));
|
||||
|
||||
filter_expr = gtk_object_expression_new (G_OBJECT (filter1));
|
||||
|
||||
@@ -607,11 +607,11 @@ test_double_bind (void)
|
||||
|
||||
gtk_expression_bind (gtk_expression_ref (expr), filter2, "search", NULL);
|
||||
|
||||
gtk_string_filter_set_search (filter1, "Banana");
|
||||
g_assert_cmpstr (gtk_string_filter_get_search (filter2), ==, "banana");
|
||||
gtk_string_filter_set_search (GTK_STRING_FILTER (filter1), "Banana");
|
||||
g_assert_cmpstr (gtk_string_filter_get_search (GTK_STRING_FILTER (filter2)), ==, "banana");
|
||||
|
||||
gtk_string_filter_set_ignore_case (filter1, FALSE);
|
||||
g_assert_cmpstr (gtk_string_filter_get_search (filter2), ==, "Banana");
|
||||
gtk_string_filter_set_ignore_case (GTK_STRING_FILTER (filter1), FALSE);
|
||||
g_assert_cmpstr (gtk_string_filter_get_search (GTK_STRING_FILTER (filter2)), ==, "Banana");
|
||||
|
||||
gtk_expression_unref (expr);
|
||||
gtk_expression_unref (filter_expr);
|
||||
@@ -633,9 +633,9 @@ test_binds (void)
|
||||
GtkExpression *filter2_expr;
|
||||
GtkExpression *params[2];
|
||||
|
||||
filter1 = gtk_string_filter_new (NULL);
|
||||
filter2 = gtk_string_filter_new (NULL);
|
||||
filter3 = gtk_string_filter_new (NULL);
|
||||
filter1 = GTK_STRING_FILTER (gtk_string_filter_new (NULL));
|
||||
filter2 = GTK_STRING_FILTER (gtk_string_filter_new (NULL));
|
||||
filter3 = GTK_STRING_FILTER (gtk_string_filter_new (NULL));
|
||||
|
||||
filter1_expr = gtk_object_expression_new (G_OBJECT (filter1));
|
||||
filter2_expr = gtk_object_expression_new (G_OBJECT (filter2));
|
||||
@@ -653,20 +653,20 @@ test_binds (void)
|
||||
gtk_expression_bind (gtk_expression_ref (expr), filter3, "search", NULL);
|
||||
gtk_expression_bind (gtk_expression_ref (expr2), filter3, "ignore-case", NULL);
|
||||
|
||||
gtk_string_filter_set_search (filter1, "Banana");
|
||||
g_assert_cmpstr (gtk_string_filter_get_search (filter3), ==, "banana");
|
||||
g_assert_true (gtk_string_filter_get_ignore_case (filter3));
|
||||
gtk_string_filter_set_search (GTK_STRING_FILTER (filter1), "Banana");
|
||||
g_assert_cmpstr (gtk_string_filter_get_search (GTK_STRING_FILTER (filter3)), ==, "banana");
|
||||
g_assert_true (gtk_string_filter_get_ignore_case (GTK_STRING_FILTER (filter3)));
|
||||
|
||||
gtk_string_filter_set_ignore_case (filter2, FALSE);
|
||||
g_assert_cmpstr (gtk_string_filter_get_search (filter3), ==, "Banana");
|
||||
g_assert_false (gtk_string_filter_get_ignore_case (filter3));
|
||||
gtk_string_filter_set_ignore_case (GTK_STRING_FILTER (filter2), FALSE);
|
||||
g_assert_cmpstr (gtk_string_filter_get_search (GTK_STRING_FILTER (filter3)), ==, "Banana");
|
||||
g_assert_false (gtk_string_filter_get_ignore_case (GTK_STRING_FILTER (filter3)));
|
||||
|
||||
/* invalidate the first bind */
|
||||
g_object_unref (filter1);
|
||||
|
||||
gtk_string_filter_set_ignore_case (filter2, TRUE);
|
||||
g_assert_cmpstr (gtk_string_filter_get_search (filter3), ==, "Banana");
|
||||
g_assert_true (gtk_string_filter_get_ignore_case (filter3));
|
||||
gtk_string_filter_set_ignore_case (GTK_STRING_FILTER (filter2), TRUE);
|
||||
g_assert_cmpstr (gtk_string_filter_get_search (GTK_STRING_FILTER (filter3)), ==, "Banana");
|
||||
g_assert_true (gtk_string_filter_get_ignore_case (GTK_STRING_FILTER (filter3)));
|
||||
|
||||
gtk_expression_unref (expr);
|
||||
gtk_expression_unref (expr2);
|
||||
@@ -681,7 +681,7 @@ test_binds (void)
|
||||
static void
|
||||
test_bind_object (void)
|
||||
{
|
||||
GtkStringFilter *filter;
|
||||
GtkFilter *filter;
|
||||
GListStore *store;
|
||||
GtkFilterListModel *model;
|
||||
GtkExpression *expr;
|
||||
@@ -694,11 +694,11 @@ test_bind_object (void)
|
||||
|
||||
gtk_expression_bind (gtk_expression_ref (expr), model, "filter", NULL);
|
||||
|
||||
g_assert_true (gtk_filter_list_model_get_filter (model) == GTK_FILTER (filter));
|
||||
g_assert_true (gtk_filter_list_model_get_filter (model) == filter);
|
||||
|
||||
g_object_unref (filter);
|
||||
|
||||
g_assert_true (gtk_filter_list_model_get_filter (model) == GTK_FILTER (filter));
|
||||
g_assert_true (gtk_filter_list_model_get_filter (model) == filter);
|
||||
|
||||
gtk_expression_unref (expr);
|
||||
g_object_unref (model);
|
||||
|
||||
+13
-13
@@ -207,7 +207,7 @@ test_simple (void)
|
||||
GtkFilterListModel *model;
|
||||
GtkFilter *filter;
|
||||
|
||||
filter = GTK_FILTER (gtk_custom_filter_new (divisible_by, GUINT_TO_POINTER (3), NULL));
|
||||
filter = gtk_custom_filter_new (divisible_by, GUINT_TO_POINTER (3), NULL);
|
||||
model = new_model (20, filter);
|
||||
g_object_unref (filter);
|
||||
assert_model (model, "3 6 9 12 15 18");
|
||||
@@ -220,9 +220,9 @@ test_any_simple (void)
|
||||
GtkFilterListModel *model;
|
||||
GtkFilter *any, *filter1, *filter2;
|
||||
|
||||
any = GTK_FILTER (gtk_any_filter_new ());
|
||||
filter1 = GTK_FILTER (gtk_custom_filter_new (divisible_by, GUINT_TO_POINTER (3), NULL));
|
||||
filter2 = GTK_FILTER (gtk_custom_filter_new (divisible_by, GUINT_TO_POINTER (5), NULL));
|
||||
any = gtk_any_filter_new ();
|
||||
filter1 = gtk_custom_filter_new (divisible_by, GUINT_TO_POINTER (3), NULL);
|
||||
filter2 = gtk_custom_filter_new (divisible_by, GUINT_TO_POINTER (5), NULL);
|
||||
|
||||
model = new_model (20, any);
|
||||
assert_model (model, "");
|
||||
@@ -253,12 +253,12 @@ test_string_simple (void)
|
||||
GtkFilterListModel *model;
|
||||
GtkFilter *filter;
|
||||
|
||||
filter = GTK_FILTER (gtk_string_filter_new (
|
||||
filter = gtk_string_filter_new (
|
||||
gtk_cclosure_expression_new (G_TYPE_STRING,
|
||||
NULL,
|
||||
0, NULL,
|
||||
G_CALLBACK (get_string),
|
||||
NULL, NULL)));
|
||||
NULL, NULL));
|
||||
|
||||
model = new_model (20, filter);
|
||||
assert_model (model, "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20");
|
||||
@@ -276,12 +276,12 @@ test_string_properties (void)
|
||||
GtkFilterListModel *model;
|
||||
GtkFilter *filter;
|
||||
|
||||
filter = GTK_FILTER (gtk_string_filter_new (
|
||||
filter = gtk_string_filter_new (
|
||||
gtk_cclosure_expression_new (G_TYPE_STRING,
|
||||
NULL,
|
||||
0, NULL,
|
||||
G_CALLBACK (get_spelled_out),
|
||||
NULL, NULL)));
|
||||
NULL, NULL));
|
||||
|
||||
model = new_model (1000, filter);
|
||||
gtk_string_filter_set_search (GTK_STRING_FILTER (filter), "thirte");
|
||||
@@ -316,12 +316,12 @@ test_bool_simple (void)
|
||||
GtkExpression *expr;
|
||||
GtkFilter *filter;
|
||||
|
||||
filter = GTK_FILTER (gtk_bool_filter_new (
|
||||
filter = gtk_bool_filter_new (
|
||||
gtk_cclosure_expression_new (G_TYPE_BOOLEAN,
|
||||
NULL,
|
||||
0, NULL,
|
||||
G_CALLBACK (divisible_by),
|
||||
GUINT_TO_POINTER (3), NULL)));
|
||||
GUINT_TO_POINTER (3), NULL));
|
||||
model = new_model (20, filter);
|
||||
assert_model (model, "3 6 9 12 15 18");
|
||||
|
||||
@@ -358,10 +358,10 @@ test_every_dispose (void)
|
||||
{
|
||||
GtkFilter *filter, *filter1, *filter2;
|
||||
|
||||
filter = GTK_FILTER (gtk_every_filter_new ());
|
||||
filter = gtk_every_filter_new ();
|
||||
|
||||
filter1 = GTK_FILTER (gtk_custom_filter_new (divisible_by, GUINT_TO_POINTER (3), NULL));
|
||||
filter2 = GTK_FILTER (gtk_custom_filter_new (divisible_by, GUINT_TO_POINTER (5), NULL));
|
||||
filter1 = gtk_custom_filter_new (divisible_by, GUINT_TO_POINTER (3), NULL);
|
||||
filter2 = gtk_custom_filter_new (divisible_by, GUINT_TO_POINTER (5), NULL);
|
||||
|
||||
g_object_ref (filter1);
|
||||
g_object_ref (filter2);
|
||||
|
||||
@@ -217,11 +217,11 @@ create_filter (gsize id)
|
||||
{
|
||||
case 0:
|
||||
/* GTK_FILTER_MATCH_ALL */
|
||||
return GTK_FILTER (gtk_string_filter_new (NULL));
|
||||
return gtk_string_filter_new (NULL);
|
||||
|
||||
case 1:
|
||||
/* GTK_FILTER_MATCH_NONE */
|
||||
filter = GTK_FILTER (gtk_string_filter_new (NULL));
|
||||
filter = gtk_string_filter_new (NULL);
|
||||
gtk_string_filter_set_search (GTK_STRING_FILTER (filter), "does not matter, because no expression");
|
||||
return filter;
|
||||
|
||||
@@ -229,7 +229,7 @@ create_filter (gsize id)
|
||||
case 3:
|
||||
case 4:
|
||||
/* match all As, Bs and nothing */
|
||||
filter = GTK_FILTER (gtk_string_filter_new (gtk_property_expression_new (GTK_TYPE_STRING_OBJECT, NULL, "string")));
|
||||
filter = gtk_string_filter_new (gtk_property_expression_new (GTK_TYPE_STRING_OBJECT, NULL, "string"));
|
||||
if (id == 2)
|
||||
gtk_string_filter_set_search (GTK_STRING_FILTER (filter), "A");
|
||||
else if (id == 3)
|
||||
@@ -302,7 +302,7 @@ test_two_filters (gconstpointer model_id)
|
||||
source = create_source_model (10, 10);
|
||||
model1 = create_filter_list_model (model_id, source, NULL);
|
||||
model2 = create_filter_list_model (model_id, G_LIST_MODEL (model1), NULL);
|
||||
every = GTK_FILTER (gtk_every_filter_new ());
|
||||
every = gtk_every_filter_new ();
|
||||
compare = create_filter_list_model (model_id, source, every);
|
||||
g_object_unref (every);
|
||||
g_object_unref (source);
|
||||
@@ -364,7 +364,7 @@ test_model_changes (gconstpointer model_id)
|
||||
gsize i;
|
||||
|
||||
filter = create_random_filter (TRUE);
|
||||
multi = GTK_FILTER (gtk_every_filter_new ());
|
||||
multi = gtk_every_filter_new ();
|
||||
if (filter)
|
||||
gtk_multi_filter_append (GTK_MULTI_FILTER (multi), filter);
|
||||
|
||||
|
||||
@@ -164,7 +164,7 @@ new_model (guint size,
|
||||
GString *changes;
|
||||
|
||||
if (filter_func)
|
||||
filter = GTK_FILTER (gtk_custom_filter_new (filter_func, data, NULL));
|
||||
filter = gtk_custom_filter_new (filter_func, data, NULL);
|
||||
else
|
||||
filter = NULL;
|
||||
result = gtk_filter_list_model_new (g_object_ref (G_LIST_MODEL (new_store (1, size, 1))), filter);
|
||||
@@ -234,9 +234,9 @@ test_empty_set_filter (void)
|
||||
{
|
||||
GtkFilterListModel *filter;
|
||||
GtkFilter *custom;
|
||||
|
||||
|
||||
filter = new_model (10, NULL, NULL);
|
||||
custom = GTK_FILTER (gtk_custom_filter_new (is_smaller_than, GUINT_TO_POINTER (20), NULL));
|
||||
custom = gtk_custom_filter_new (is_smaller_than, GUINT_TO_POINTER (20), NULL);
|
||||
gtk_filter_list_model_set_filter (filter, custom);
|
||||
g_object_unref (custom);
|
||||
assert_model (filter, "1 2 3 4 5 6 7 8 9 10");
|
||||
@@ -244,7 +244,7 @@ test_empty_set_filter (void)
|
||||
g_object_unref (filter);
|
||||
|
||||
filter = new_model (10, NULL, NULL);
|
||||
custom = GTK_FILTER (gtk_custom_filter_new (is_smaller_than, GUINT_TO_POINTER (7), NULL));
|
||||
custom = gtk_custom_filter_new (is_smaller_than, GUINT_TO_POINTER (7), NULL);
|
||||
gtk_filter_list_model_set_filter (filter, custom);
|
||||
g_object_unref (custom);
|
||||
assert_model (filter, "1 2 3 4 5 6");
|
||||
@@ -252,7 +252,7 @@ test_empty_set_filter (void)
|
||||
g_object_unref (filter);
|
||||
|
||||
filter = new_model (10, NULL, NULL);
|
||||
custom = GTK_FILTER (gtk_custom_filter_new (is_smaller_than, GUINT_TO_POINTER (0), NULL));
|
||||
custom = gtk_custom_filter_new (is_smaller_than, GUINT_TO_POINTER (0), NULL);
|
||||
gtk_filter_list_model_set_filter (filter, custom);
|
||||
g_object_unref (custom);
|
||||
assert_model (filter, "");
|
||||
@@ -260,7 +260,7 @@ test_empty_set_filter (void)
|
||||
g_object_unref (filter);
|
||||
|
||||
filter = new_model (10, NULL, NULL);
|
||||
custom = GTK_FILTER (gtk_custom_filter_new (is_larger_than, GUINT_TO_POINTER (0), NULL));
|
||||
custom = gtk_custom_filter_new (is_larger_than, GUINT_TO_POINTER (0), NULL);
|
||||
gtk_filter_list_model_set_filter (filter, custom);
|
||||
g_object_unref (custom);
|
||||
assert_model (filter, "1 2 3 4 5 6 7 8 9 10");
|
||||
@@ -268,7 +268,7 @@ test_empty_set_filter (void)
|
||||
g_object_unref (filter);
|
||||
|
||||
filter = new_model (10, NULL, NULL);
|
||||
custom = GTK_FILTER (gtk_custom_filter_new (is_larger_than, GUINT_TO_POINTER (3), NULL));
|
||||
custom = gtk_custom_filter_new (is_larger_than, GUINT_TO_POINTER (3), NULL);
|
||||
gtk_filter_list_model_set_filter (filter, custom);
|
||||
g_object_unref (custom);
|
||||
assert_model (filter, "4 5 6 7 8 9 10");
|
||||
@@ -276,7 +276,7 @@ test_empty_set_filter (void)
|
||||
g_object_unref (filter);
|
||||
|
||||
filter = new_model (10, NULL, NULL);
|
||||
custom = GTK_FILTER (gtk_custom_filter_new (is_larger_than, GUINT_TO_POINTER (20), NULL));
|
||||
custom = gtk_custom_filter_new (is_larger_than, GUINT_TO_POINTER (20), NULL);
|
||||
gtk_filter_list_model_set_filter (filter, custom);
|
||||
g_object_unref (custom);
|
||||
assert_model (filter, "");
|
||||
@@ -284,7 +284,7 @@ test_empty_set_filter (void)
|
||||
g_object_unref (filter);
|
||||
|
||||
filter = new_model (10, NULL, NULL);
|
||||
custom = GTK_FILTER (gtk_custom_filter_new (is_near, GUINT_TO_POINTER (5), NULL));
|
||||
custom = gtk_custom_filter_new (is_near, GUINT_TO_POINTER (5), NULL);
|
||||
gtk_filter_list_model_set_filter (filter, custom);
|
||||
g_object_unref (custom);
|
||||
assert_model (filter, "3 4 5 6 7");
|
||||
@@ -292,7 +292,7 @@ test_empty_set_filter (void)
|
||||
g_object_unref (filter);
|
||||
|
||||
filter = new_model (10, NULL, NULL);
|
||||
custom = GTK_FILTER (gtk_custom_filter_new (is_not_near, GUINT_TO_POINTER (5), NULL));
|
||||
custom = gtk_custom_filter_new (is_not_near, GUINT_TO_POINTER (5), NULL);
|
||||
gtk_filter_list_model_set_filter (filter, custom);
|
||||
g_object_unref (custom);
|
||||
assert_model (filter, "1 2 8 9 10");
|
||||
@@ -310,37 +310,37 @@ test_change_filter (void)
|
||||
assert_model (filter, "1 2 8 9 10");
|
||||
assert_changes (filter, "");
|
||||
|
||||
custom = GTK_FILTER (gtk_custom_filter_new (is_not_near, GUINT_TO_POINTER (6), NULL));
|
||||
custom = gtk_custom_filter_new (is_not_near, GUINT_TO_POINTER (6), NULL);
|
||||
gtk_filter_list_model_set_filter (filter, custom);
|
||||
g_object_unref (custom);
|
||||
assert_model (filter, "1 2 3 9 10");
|
||||
assert_changes (filter, "2-1+1");
|
||||
|
||||
custom = GTK_FILTER (gtk_custom_filter_new (is_not_near, GUINT_TO_POINTER (9), NULL));
|
||||
custom = gtk_custom_filter_new (is_not_near, GUINT_TO_POINTER (9), NULL);
|
||||
gtk_filter_list_model_set_filter (filter, custom);
|
||||
g_object_unref (custom);
|
||||
assert_model (filter, "1 2 3 4 5 6");
|
||||
assert_changes (filter, "3-2+3");
|
||||
|
||||
custom = GTK_FILTER (gtk_custom_filter_new (is_smaller_than, GUINT_TO_POINTER (6), NULL));
|
||||
custom = gtk_custom_filter_new (is_smaller_than, GUINT_TO_POINTER (6), NULL);
|
||||
gtk_filter_list_model_set_filter (filter, custom);
|
||||
g_object_unref (custom);
|
||||
assert_model (filter, "1 2 3 4 5");
|
||||
assert_changes (filter, "-5");
|
||||
|
||||
custom = GTK_FILTER (gtk_custom_filter_new (is_larger_than, GUINT_TO_POINTER (4), NULL));
|
||||
custom = gtk_custom_filter_new (is_larger_than, GUINT_TO_POINTER (4), NULL);
|
||||
gtk_filter_list_model_set_filter (filter, custom);
|
||||
g_object_unref (custom);
|
||||
assert_model (filter, "5 6 7 8 9 10");
|
||||
assert_changes (filter, "0-5+6");
|
||||
|
||||
custom = GTK_FILTER (gtk_custom_filter_new (is_not_near, GUINT_TO_POINTER (2), NULL));
|
||||
custom = gtk_custom_filter_new (is_not_near, GUINT_TO_POINTER (2), NULL);
|
||||
gtk_filter_list_model_set_filter (filter, custom);
|
||||
g_object_unref (custom);
|
||||
assert_model (filter, "5 6 7 8 9 10");
|
||||
assert_changes (filter, "");
|
||||
|
||||
custom = GTK_FILTER (gtk_custom_filter_new (is_not_near, GUINT_TO_POINTER (4), NULL));
|
||||
custom = gtk_custom_filter_new (is_not_near, GUINT_TO_POINTER (4), NULL);
|
||||
gtk_filter_list_model_set_filter (filter, custom);
|
||||
g_object_unref (custom);
|
||||
assert_model (filter, "1 7 8 9 10");
|
||||
@@ -354,14 +354,14 @@ test_incremental (void)
|
||||
{
|
||||
GtkFilterListModel *filter;
|
||||
GtkFilter *custom;
|
||||
|
||||
|
||||
/* everything is filtered */
|
||||
filter = new_model (1000, is_larger_than, GUINT_TO_POINTER (10000));
|
||||
gtk_filter_list_model_set_incremental (filter, TRUE);
|
||||
assert_model (filter, "");
|
||||
assert_changes (filter, "");
|
||||
|
||||
custom = GTK_FILTER (gtk_custom_filter_new (is_near, GUINT_TO_POINTER (512), NULL));
|
||||
custom = gtk_custom_filter_new (is_near, GUINT_TO_POINTER (512), NULL);
|
||||
gtk_filter_list_model_set_filter (filter, custom);
|
||||
g_object_unref (custom);
|
||||
assert_model (filter, "");
|
||||
|
||||
+18
-18
@@ -274,7 +274,7 @@ test_simple (void)
|
||||
model = new_model (20, NULL);
|
||||
assert_not_model (model, "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20");
|
||||
|
||||
sorter = GTK_SORTER (gtk_custom_sorter_new (compare_numbers, NULL, NULL));
|
||||
sorter = gtk_custom_sorter_new (compare_numbers, NULL, NULL);
|
||||
gtk_sort_list_model_set_sorter (model, sorter);
|
||||
g_object_unref (sorter);
|
||||
|
||||
@@ -296,7 +296,7 @@ test_string (void)
|
||||
model = new_model (20, NULL);
|
||||
assert_not_model (model, "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20");
|
||||
|
||||
sorter = GTK_SORTER (gtk_string_sorter_new (gtk_cclosure_expression_new (G_TYPE_STRING, NULL, 0, NULL, (GCallback)get_string, NULL, NULL)));
|
||||
sorter = gtk_string_sorter_new (gtk_cclosure_expression_new (G_TYPE_STRING, NULL, 0, NULL, (GCallback)get_string, NULL, NULL));
|
||||
|
||||
gtk_sort_list_model_set_sorter (model, sorter);
|
||||
g_object_unref (sorter);
|
||||
@@ -330,7 +330,7 @@ test_change (void)
|
||||
GtkExpression *expression;
|
||||
int counter = 0;
|
||||
|
||||
sorter = GTK_SORTER (gtk_string_sorter_new (NULL));
|
||||
sorter = gtk_string_sorter_new (NULL);
|
||||
g_signal_connect (sorter, "changed", G_CALLBACK (inc_counter), &counter);
|
||||
|
||||
expression = gtk_cclosure_expression_new (G_TYPE_STRING, NULL, 0, NULL, (GCallback)get_string, NULL, NULL);
|
||||
@@ -360,7 +360,7 @@ test_numeric (void)
|
||||
model = new_model (20, NULL);
|
||||
assert_not_model (model, "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20");
|
||||
|
||||
sorter = GTK_SORTER (gtk_numeric_sorter_new (gtk_cclosure_expression_new (G_TYPE_UINT, NULL, 0, NULL, (GCallback)get_number, NULL, NULL)));
|
||||
sorter = gtk_numeric_sorter_new (gtk_cclosure_expression_new (G_TYPE_UINT, NULL, 0, NULL, (GCallback)get_number, NULL, NULL));
|
||||
gtk_sort_list_model_set_sorter (model, sorter);
|
||||
assert_model (model, "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20");
|
||||
|
||||
@@ -409,7 +409,7 @@ test_multi (void)
|
||||
model = new_model (20, NULL);
|
||||
assert_not_model (model, "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20");
|
||||
|
||||
sorter2 = GTK_SORTER (gtk_numeric_sorter_new (NULL));
|
||||
sorter2 = gtk_numeric_sorter_new (NULL);
|
||||
gtk_sort_list_model_set_sorter (model, sorter2);
|
||||
expression = gtk_cclosure_expression_new (G_TYPE_UINT, NULL, 0, NULL, (GCallback)get_number, NULL, NULL);
|
||||
gtk_numeric_sorter_set_expression (GTK_NUMERIC_SORTER (sorter2), expression);
|
||||
@@ -417,10 +417,10 @@ test_multi (void)
|
||||
|
||||
assert_model (model, "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20");
|
||||
|
||||
sorter = GTK_SORTER (gtk_multi_sorter_new ());
|
||||
sorter = gtk_multi_sorter_new ();
|
||||
gtk_sort_list_model_set_sorter (model, sorter);
|
||||
|
||||
sorter1 = GTK_SORTER (gtk_custom_sorter_new (compare_even, NULL, NULL));
|
||||
sorter1 = gtk_custom_sorter_new (compare_even, NULL, NULL);
|
||||
gtk_multi_sorter_append (GTK_MULTI_SORTER (sorter), sorter1);
|
||||
gtk_multi_sorter_append (GTK_MULTI_SORTER (sorter), sorter2);
|
||||
|
||||
@@ -446,8 +446,8 @@ test_multi_destruct (void)
|
||||
{
|
||||
GtkSorter *multi, *sorter;
|
||||
|
||||
multi = GTK_SORTER (gtk_multi_sorter_new ());
|
||||
sorter = GTK_SORTER (gtk_numeric_sorter_new (gtk_cclosure_expression_new (G_TYPE_UINT, NULL, 0, NULL, (GCallback)get_number, NULL, NULL)));
|
||||
multi = gtk_multi_sorter_new ();
|
||||
sorter = gtk_numeric_sorter_new (gtk_cclosure_expression_new (G_TYPE_UINT, NULL, 0, NULL, (GCallback)get_number, NULL, NULL));
|
||||
gtk_multi_sorter_append (GTK_MULTI_SORTER (multi), g_object_ref (sorter));
|
||||
g_object_unref (multi);
|
||||
|
||||
@@ -470,13 +470,13 @@ test_multi_changes (void)
|
||||
model = gtk_sort_list_model_new (G_LIST_MODEL (new_store (1, 20, 1)), NULL);
|
||||
assert_model (model, "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20");
|
||||
|
||||
multi = GTK_SORTER (gtk_multi_sorter_new ());
|
||||
multi = gtk_multi_sorter_new ();
|
||||
g_signal_connect (multi, "changed", G_CALLBACK (inc_counter), &counter);
|
||||
gtk_sort_list_model_set_sorter (model, multi);
|
||||
assert_model (model, "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20");
|
||||
g_assert_cmpint (counter, ==, 0);
|
||||
|
||||
sorter1 = GTK_SORTER (gtk_numeric_sorter_new (NULL));
|
||||
sorter1 = gtk_numeric_sorter_new (NULL);
|
||||
gtk_multi_sorter_append (GTK_MULTI_SORTER (multi), sorter1);
|
||||
assert_model (model, "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20");
|
||||
g_assert_cmpint (counter, ==, 1);
|
||||
@@ -491,7 +491,7 @@ test_multi_changes (void)
|
||||
assert_model (model, "4 9 14 19 3 8 13 18 2 7 12 17 1 6 11 16 5 10 15 20");
|
||||
g_assert_cmpint (counter, ==, 3);
|
||||
|
||||
sorter2 = GTK_SORTER (gtk_custom_sorter_new (compare_even, NULL, NULL));
|
||||
sorter2 = gtk_custom_sorter_new (compare_even, NULL, NULL);
|
||||
gtk_multi_sorter_append (GTK_MULTI_SORTER (multi), sorter2);
|
||||
assert_model (model, "4 14 9 19 8 18 3 13 2 12 7 17 6 16 1 11 10 20 5 15");
|
||||
g_assert_cmpint (counter, ==, 4);
|
||||
@@ -500,7 +500,7 @@ test_multi_changes (void)
|
||||
assert_model (model, "10 20 5 15 6 16 1 11 2 12 7 17 8 18 3 13 4 14 9 19");
|
||||
g_assert_cmpint (counter, ==, 5);
|
||||
|
||||
sorter3 = GTK_SORTER (gtk_string_sorter_new (gtk_cclosure_expression_new (G_TYPE_STRING, NULL, 0, NULL, (GCallback)get_spelled_out, NULL, NULL)));
|
||||
sorter3 = gtk_string_sorter_new (gtk_cclosure_expression_new (G_TYPE_STRING, NULL, 0, NULL, (GCallback)get_spelled_out, NULL, NULL));
|
||||
gtk_multi_sorter_append (GTK_MULTI_SORTER (multi), sorter3);
|
||||
assert_model (model, "10 20 15 5 6 16 11 1 12 2 7 17 8 18 13 3 4 14 9 19");
|
||||
g_assert_cmpint (counter, ==, 6);
|
||||
@@ -524,13 +524,13 @@ test_multi_changes (void)
|
||||
static GtkSorter *
|
||||
even_odd_sorter_new (void)
|
||||
{
|
||||
return GTK_SORTER (gtk_custom_sorter_new (compare_even, NULL, NULL));
|
||||
return gtk_custom_sorter_new (compare_even, NULL, NULL);
|
||||
}
|
||||
|
||||
static GtkSorter *
|
||||
numeric_sorter_new (void)
|
||||
{
|
||||
return GTK_SORTER (gtk_numeric_sorter_new (gtk_cclosure_expression_new (G_TYPE_UINT, NULL, 0, NULL, (GCallback)get_number, NULL, NULL)));
|
||||
return gtk_numeric_sorter_new (gtk_cclosure_expression_new (G_TYPE_UINT, NULL, 0, NULL, (GCallback)get_number, NULL, NULL));
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -615,8 +615,8 @@ test_stable (void)
|
||||
GtkSorter *multi, *a, *b;
|
||||
guint i;
|
||||
|
||||
a = GTK_SORTER (gtk_multi_sorter_new ());
|
||||
b = GTK_SORTER (gtk_multi_sorter_new ());
|
||||
a = gtk_multi_sorter_new ();
|
||||
b = gtk_multi_sorter_new ();
|
||||
/* We create 2 setups:
|
||||
* 1. sortmodel (multisorter [a, b])
|
||||
* 2. sortmodel (b) => sortmodel (a)
|
||||
@@ -627,7 +627,7 @@ test_stable (void)
|
||||
* All we do is make a and b random sorters and assert that the 2 setups
|
||||
* produce the same order every time.
|
||||
*/
|
||||
multi = GTK_SORTER (gtk_multi_sorter_new ());
|
||||
multi = gtk_multi_sorter_new ();
|
||||
gtk_multi_sorter_append (GTK_MULTI_SORTER (multi), a);
|
||||
gtk_multi_sorter_append (GTK_MULTI_SORTER (multi), b);
|
||||
model1 = new_model (20, multi);
|
||||
|
||||
@@ -252,12 +252,12 @@ create_sorter (gsize id)
|
||||
switch (id)
|
||||
{
|
||||
case 0:
|
||||
return GTK_SORTER (gtk_string_sorter_new (NULL));
|
||||
return gtk_string_sorter_new (NULL);
|
||||
|
||||
case 1:
|
||||
case 2:
|
||||
/* match all As, Bs and nothing */
|
||||
sorter = GTK_SORTER (gtk_string_sorter_new (gtk_property_expression_new (GTK_TYPE_STRING_OBJECT, NULL, "string")));
|
||||
sorter = gtk_string_sorter_new (gtk_property_expression_new (GTK_TYPE_STRING_OBJECT, NULL, "string"));
|
||||
if (id == 1)
|
||||
gtk_string_sorter_set_ignore_case (GTK_STRING_SORTER (sorter), TRUE);
|
||||
return sorter;
|
||||
@@ -304,7 +304,7 @@ test_two_sorters (gconstpointer model_id)
|
||||
model2 = create_sort_list_model (model_id, TRUE, source, NULL);
|
||||
/* can't track changes from a sortmodel, where the same items get reordered */
|
||||
model1 = create_sort_list_model (model_id, FALSE, G_LIST_MODEL (model2), NULL);
|
||||
every = GTK_SORTER (gtk_multi_sorter_new ());
|
||||
every = gtk_multi_sorter_new ();
|
||||
compare = create_sort_list_model (model_id, TRUE, source, every);
|
||||
g_object_unref (every);
|
||||
g_object_unref (source);
|
||||
|
||||
@@ -219,7 +219,7 @@ new_model (gpointer model)
|
||||
{
|
||||
GtkSorter *sorter;
|
||||
|
||||
sorter = GTK_SORTER (gtk_custom_sorter_new (compare, NULL, NULL));
|
||||
sorter = gtk_custom_sorter_new (compare, NULL, NULL);
|
||||
result = gtk_sort_list_model_new (g_object_ref (model), sorter);
|
||||
}
|
||||
else
|
||||
@@ -312,7 +312,7 @@ test_set_sorter (void)
|
||||
assert_model (sort, "2 4 6 8 10");
|
||||
assert_changes (sort, "");
|
||||
|
||||
sorter = GTK_SORTER (gtk_custom_sorter_new (compare_modulo, GUINT_TO_POINTER (5), NULL));
|
||||
sorter = gtk_custom_sorter_new (compare_modulo, GUINT_TO_POINTER (5), NULL);
|
||||
gtk_sort_list_model_set_sorter (sort, sorter);
|
||||
g_object_unref (sorter);
|
||||
assert_model (sort, "10 6 2 8 4");
|
||||
@@ -322,7 +322,7 @@ test_set_sorter (void)
|
||||
assert_model (sort, "4 8 2 6 10");
|
||||
assert_changes (sort, "0-5+5");
|
||||
|
||||
sorter = GTK_SORTER (gtk_custom_sorter_new (compare, NULL, NULL));
|
||||
sorter = gtk_custom_sorter_new (compare, NULL, NULL);
|
||||
gtk_sort_list_model_set_sorter (sort, sorter);
|
||||
g_object_unref (sorter);
|
||||
assert_model (sort, "2 4 6 8 10");
|
||||
@@ -424,7 +424,7 @@ test_stability (void)
|
||||
assert_model (sort, "1 11 21 31");
|
||||
assert_changes (sort, "");
|
||||
|
||||
sorter = GTK_SORTER (gtk_custom_sorter_new (compare_modulo, GUINT_TO_POINTER (5), NULL));
|
||||
sorter = gtk_custom_sorter_new (compare_modulo, GUINT_TO_POINTER (5), NULL);
|
||||
gtk_sort_list_model_set_sorter (sort, sorter);
|
||||
g_object_unref (sorter);
|
||||
assert_model (sort, "11 31 21 1");
|
||||
@@ -467,7 +467,7 @@ test_incremental_remove (void)
|
||||
|
||||
gtk_sort_list_model_set_model (model, G_LIST_MODEL (store));
|
||||
|
||||
sorter = GTK_SORTER (gtk_custom_sorter_new (compare, NULL, NULL));
|
||||
sorter = gtk_custom_sorter_new (compare, NULL, NULL);
|
||||
gtk_sort_list_model_set_sorter (model, sorter);
|
||||
g_object_unref (sorter);
|
||||
|
||||
|
||||
@@ -175,7 +175,7 @@ test_simple (void)
|
||||
model = new_model (3);
|
||||
assert_model (model, "1 2 21 3 31 32 321");
|
||||
|
||||
sorter = GTK_SORTER (gtk_tree_list_row_sorter_new (NULL));
|
||||
sorter = gtk_tree_list_row_sorter_new (NULL);
|
||||
sort = gtk_sort_list_model_new (model, sorter);
|
||||
assert_model (sort, "1 2 21 3 31 32 321");
|
||||
|
||||
@@ -185,7 +185,7 @@ test_simple (void)
|
||||
static GtkSorter *
|
||||
new_numeric_sorter (void)
|
||||
{
|
||||
return GTK_SORTER (gtk_numeric_sorter_new (gtk_cclosure_expression_new (G_TYPE_UINT, NULL, 0, NULL, (GCallback)get_number, NULL, NULL)));
|
||||
return gtk_numeric_sorter_new (gtk_cclosure_expression_new (G_TYPE_UINT, NULL, 0, NULL, (GCallback)get_number, NULL, NULL));
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -198,7 +198,7 @@ test_compare_total_order (void)
|
||||
model = new_model (3);
|
||||
assert_model (model, "1 2 21 3 31 32 321");
|
||||
|
||||
sorter = GTK_SORTER (gtk_tree_list_row_sorter_new (new_numeric_sorter ()));
|
||||
sorter = gtk_tree_list_row_sorter_new (new_numeric_sorter ());
|
||||
|
||||
n = g_list_model_get_n_items (model);
|
||||
for (i = 0; i < n; i++)
|
||||
@@ -228,7 +228,7 @@ test_compare_no_order (void)
|
||||
model = new_model (3);
|
||||
assert_model (model, "1 2 21 3 31 32 321");
|
||||
|
||||
sorter = GTK_SORTER (gtk_tree_list_row_sorter_new (NULL));
|
||||
sorter = gtk_tree_list_row_sorter_new (NULL);
|
||||
|
||||
n = g_list_model_get_n_items (model);
|
||||
for (i = 0; i < n; i++)
|
||||
|
||||
Reference in New Issue
Block a user