Timm Bäder
2da82f890a
image: Remove priv pointer
...
Look at all the free ram!
2017-10-01 09:19:09 +02:00
Timm Bäder
a32725bc9a
iconhelper: Don't inherit from GObject
...
It's not a GtkCssGadget anymore, it doesn't have any properties or
signals either and it's not public. Further, its lifetime is very clear
the way it's being used inside GTK+.
2017-10-01 09:19:09 +02:00
Timm Bäder
584d613bfd
image: Remove irrelevant code sample
...
Both the description and the sample itself are obsolete or uninteresting
now that all widgets can receive events.
2017-07-19 21:27:16 -04:00
Timm Bäder
36ab70ddf5
widget: Add baseline and out_clip parameters to size-allocate
...
Since setting a clip is mandatory for almost all widgets, we can as well
change the size-allocate signature to include a out_clip parameter, just
like GtkCssGadget did. And since we now always propagate baselines, we
might as well pass that one on to size-allocate.
This way we can also make sure to transform the clip returned from
size-allocate to parent-coordinates, i.e. the same coordinate space
priv->allocation is in.
2017-07-19 21:27:16 -04:00
Timm Bäder
c2abb698be
Replace a few get_content_allocation calls with get_content_size
...
The position of the content allocation is almost never relevant since
it's 0/0 for measure, size_allocate and snapshot.
2017-07-19 21:27:14 -04:00
Timm Bäder
00d720d8a4
image: Add private _get_definition
2017-07-19 21:27:14 -04:00
Timm Bäder
225306a21e
image: Fold gtk_image_reset into only caller
2017-07-19 21:27:14 -04:00
Timm Bäder
dc93903cd3
image: Fix snapshot position
2017-07-19 21:27:13 -04:00
Timm Bäder
3e555e1646
image: Offset rendering to the content allocation
2017-07-19 21:27:13 -04:00
Timm Bäder
2cd1a984cf
set clip of more widgets
2017-07-19 21:27:11 -04:00
Timm Bäder
3094b341ed
image: Remove gadget
2017-07-19 21:27:11 -04:00
Timm Bäder
6e7f135f62
image: Remove css box drawing
2017-07-19 21:27:11 -04:00
Bastien Nocera
eb338feff9
image: Warn when attempting to load pixdata GResources
...
GdkPixdata is deprecated. Warn when the application tries to load
pixdata embedded resources. The application developer will have to
remove the "to-pixdata" keyword from the GResource definition file.
https://bugzilla.gnome.org/show_bug.cgi?id=781583
2017-07-12 14:54:02 +02:00
Timm Bäder
9fc739e2c7
image: Remove useless queue_resize call
...
This will be done form GtkIconHelper already when we call
gtk_image_reset
2017-02-18 19:01:41 +01:00
Daniel Boles
1a8a35f347
Image—Add some more missing (nullable) annotations
2017-02-17 22:17:08 +00:00
Timm Bäder
548f6138ef
Add a few missing (nullable) annotations
2017-02-17 18:23:01 +01:00
Benjamin Otte
87497ca2e1
snapshot: Rename gtk_snapshot_translate_2d()
...
It's now called gtk_snapshot_offset().
2017-01-13 14:37:48 +01:00
Benjamin Otte
0dbdf0c428
gadget: Remove gtk_css_gadget_draw()
...
And with it, remove the draw func from custom gadgets, that has been
NULL everywhere.
All gadgets are snapshot now.
2016-12-20 18:01:12 +01:00
Benjamin Otte
970f99615e
image: Don't translate twice
...
The animation can pass x/y through to the render_icon() function, so
don't gtk_snapshot_translate() it.
2016-11-30 23:54:49 +01:00
Benjamin Otte
4b8b06bb08
image: Invalidate icon helper when unrealizing
...
This frees up any cached surfaces and textures in the iconhelper,
ensuring that the renderer can release its texture data.
2016-11-15 17:49:19 +01:00
Benjamin Otte
c0aa065ac1
snapshot: Convert GtkImage and GtkIconHelper
...
Adds a bunch of new APIs to render textures with theming.
FIXME: Cannot draw shadows for textures.
2016-11-15 17:49:19 +01:00
Benjamin Otte
da207c9fdd
snapshot: Add a snapshot function to GtkCssCustomGadget
2016-11-15 17:48:45 +01:00
Matthias Clasen
7b2313a6df
Avoid criticals in gtk_image_get_render_node
...
These nodes can be NULL, we need to handle that.
2016-11-10 08:26:37 -05:00
Benjamin Otte
1259a489f2
iconhelper: Add support for GskTexture
...
... and use that in GtkImage.
2016-11-08 20:31:34 +01:00
Benjamin Otte
a0e63b8a07
rendernode: Require passing a renderer to get_draw_context()
...
This is in preparation of making render nodes independent of the
renderer, so that they can be rendered multiple times with different
renderers.
2016-11-01 16:32:26 +01:00
Timm Bäder
9992a616ef
widget: Use ::measure vfunc to measure size
...
Add a new ::measure vfunc similar to GtkCssGadget's that widget
implementations have to override instead of the old get_preferred_width,
get_preferred_height, get_preferred_width_for_height,
get_preferred_height_for_width and
get_preferred_height_and_baseline_for_width.
2016-10-22 19:05:47 +02:00
Matthias Clasen
8f5db4bc32
Convert GtkImage to indirect rendering
2016-10-18 11:49:15 +01:00
Timm Bäder
627a824cab
image: Remove GtkIconSet API
2016-10-16 18:17:21 +02:00
Timm Bäder
ad155fb26c
Remove GtkStock API from GtkImage
2016-10-16 18:17:21 +02:00
Timm Bäder
9d43644153
label,image: Remove GtkMisc usage
2016-10-16 18:17:21 +02:00
Timm Bäder
486a0a467d
image: _get_style_context never returns NULL
2016-02-07 19:16:26 +01:00
Timm Bäder
0bd6c48315
Add and use gtk_icon_helper_invalidate_for_change
2016-02-07 19:16:26 +01:00
Matthias Clasen
68edc67bde
image: use GtkMisc padding again
...
This was lost in the gadget conversion.
Thankfully, the misc-alignment reftest catches this.
2016-01-29 13:44:45 -05:00
Alberto Ruiz
496f0892fc
introspection: This patch fixes nullable return values fixes for the following symbols in gtk
...
gtk_accel_group_query
gtk_accel_group_from_accel_closure
gtk_accel_label_get_accel_widget
gtk_accessible_get_widget
gtk_actionable_get_action_name
gtk_app_chooser_get_app_info
gtk_app_chooser_button_get_heading
gtk_app_chooser_dialog_get_heading
gtk_application_get_window_by_id
gtk_assistant_get_nth_page
gtk_binding_set_find
gtk_builder_get_object
gtk_builder_lookup_callback_symbol
gtk_builder_get_application
gtk_button_get_image
gtk_cell_area_get_focus_from_sibling
gtk_cell_renderer_start_editing
gtk_cell_view_get_model
gtk_cell_view_get_displayed_row
gtk_clipboard_get_owner
gtk_container_get_focus_child
gtk_container_get_focus_vadjustment
gtk_container_get_focus_hadjustment
gtk_dialog_get_widget_for_response
gtk_drag_get_source_widget
gtk_drag_dest_get_target_list
gtk_drag_source_get_target_list
gtk_entry_completion_get_model
gtk_entry_completion_compute_prefix
gtk_expander_get_label_widget
gtk_file_chooser_get_filename
gtk_file_chooser_get_current_folder
gtk_file_chooser_get_uri
gtk_file_chooser_get_current_folder_uri
gtk_file_chooser_get_preview_widget
gtk_file_chooser_get_preview_file
gtk_file_chooser_get_preview_filename
gtk_file_chooser_get_preview_uri
gtk_file_chooser_get_extra_widget
gtk_file_chooser_get_filter
gtk_file_chooser_native_get_accept_label
gtk_file_chooser_native_get_cancel_label
gtk_file_filter_get_name
gtk_font_chooser_get_font_family
gtk_font_chooser_get_font_face
gtk_font_chooser_get_font
gtk_font_chooser_get_font_desc
gtk_font_chooser_get_font_map
gtk_frame_get_label
gtk_gesture_get_device
gtk_gesture_get_window
gtk_gl_area_get_error
gtk_header_bar_get_title
gtk_header_bar_get_subtitle
gtk_header_bar_get_custom_title
gtk_icon_info_get_filename
gtk_icon_view_get_path_at_pos
gtk_icon_view_get_model
gtk_image_get_pixbuf
gtk_image_get_animation
gtk_label_get_mnemonic_widget
gtk_label_get_attributes
gtk_check_version
gtk_menu_button_get_popup
gtk_menu_button_get_menu_model
gtk_menu_button_get_align_widget
gtk_menu_button_get_popover
gtk_menu_item_get_submenu
gtk_menu_item_get_accel_path
gtk_native_dialog_get_title
gtk_native_dialog_get_transient_for
gtk_notebook_get_nth_page
gtk_notebook_get_tab_label_text
gtk_notebook_get_menu_label
gtk_notebook_get_menu_label_text
gtk_notebook_get_group_name
gtk_notebook_get_action_widget
gtk_offscreen_window_get_surface
gtk_offscreen_window_get_pixbuf
gtk_paned_get_child1
gtk_paned_get_child2
gtk_places_sidebar_get_location
gtk_places_sidebar_get_nth_bookmark
gtk_plug_get_socket_window
gtk_popover_get_default_widget
gtk_progress_bar_get_text
gtk_recent_filter_get_name
gtk_recent_manager_lookup_item
gtk_settings_get_default
gtk_socket_get_plug_window
gtk_stack_sidebar_get_stack
gtk_stack_switcher_get_stack
gtk_style_context_get_section
gtk_style_context_get_parent
gtk_style_context_get_frame_clock
gtk_test_find_widget
gtk_text_buffer_get_mark
gtk_text_tag_table_lookup
gtk_text_view_get_tabs
gtk_text_view_toggle_cursor_visible
gtk_text_view_get_window
gtk_toolbar_get_nth_item
gtk_tool_button_get_label
gtk_tool_button_get_icon_name
gtk_tool_button_get_label_widget
gtk_tool_button_get_icon_widget
gtk_tool_palette_get_drop_item
gtk_tool_palette_get_drop_group
gtk_tree_model_filter_convert_child_path_to_path
gtk_tree_model_filter_convert_path_to_child_path
gtk_tree_model_sort_convert_child_path_to_path
gtk_tree_model_sort_convert_path_to_child_path
gtk_tree_view_get_column
gtk_tree_view_get_bin_window
gtk_tree_view_column_get_widget
gtk_tree_view_column_get_tree_view
gtk_widget_get_frame_clock
gtk_window_group_get_current_device_grab
GtkTextBufferSerializeFunc
2016-01-08 12:18:23 +00:00
Matthias Clasen
f63e8edec6
Make sure icons update on theme change
...
Gadgets don't connect to style-changed for widget nodes, and
GtkImage uses its widget node for the icon helper. The visible
effect of this is that symbolic icons don't change color when
switching to the dark variant of Adwaita.
Fix this by manually invalidating the icon helper.
2016-01-04 21:32:19 -05:00
Christoph Reiter
f66191346c
Mention GtkIconSize in all docs where the argument/return is annotated as taking an int instead of GtkIconSize
...
In https://bugzilla.gnome.org/show_bug.cgi?id=601425 the annotations
were changed to int as they not only take the predefined enum values
but also user defined values registered through gtk_icon_size_register()
As a result the typelib doesn't contain any information about
GtkIconSize for those arguments and the Python docstring only
shows the corresponding Python type "int".
This changes the argument docs to mention the type explicitly
so the Python doc generator can add a link to Gtk.IconSize
which contains the most useful predefined values.
https://bugzilla.gnome.org/show_bug.cgi?id=757411
2016-01-04 11:56:44 +01:00
Timm Bäder
3758762119
GtkImage: Simplify _set_from_icon_name
...
We don't need to strdup icon_name since that will happen in
_gtk_icon_helper_set_icon_name anyway.
2016-01-02 15:46:45 +01:00
Matthias Clasen
3075dac106
image: Don't assume baseline parameters are non-NULL
...
The GetSize callback *can* assume that minimum and natural are
non-NULL. Buy minimum_baseline and natural_baseline can and
will be NULL, so handle that. This was causing crashes e.g. in
pavucontrol.
2015-12-21 12:55:12 -05:00
Benjamin Otte
b79a187d47
iconhelper: Handle invalidation
...
When CSS, direction or scale factor change, handle the invalidation
inside the iconhelper.
This way the widgets using them don't have to.
2015-12-15 08:41:16 -05:00
Benjamin Otte
ad22612ab2
iconhelper: Require passing a cssnode to the constructor
...
Note that we don't use it yet.
2015-12-15 08:41:16 -05:00
Matthias Clasen
c0fd106019
image: Port to gadgets
2015-12-15 08:41:16 -05:00
Benjamin Otte
5cbbc62026
widget: Pass a GtkCssStyleChange instead of a bitmask
2015-12-13 04:11:58 +01:00
Benjamin Otte
ccfc4d3f12
iconhelper: Remove the context argument
...
Instead, use the widget's context.
2015-12-09 13:30:40 +01:00
Benjamin Otte
e95e2d5048
iconhelper: Get rid of _gtk_icon_helper_set_window()
...
Instead use the window of the owner widget.
2015-12-09 13:30:40 +01:00
Benjamin Otte
c9d1a45d30
iconhelper: Require a widget as construction argument
...
Note that the caller needs to ensure the widget lives as long as the
iconhelper as the iconhelper will not ref the widget.
2015-12-09 13:30:40 +01:00
Benjamin Otte
c10b6b7297
dnd: Add gtk_image_set_from_definition()
...
... and use it in the DND code, thereby getting rid of the icon helper.
2015-12-02 15:45:14 +01:00
Benjamin Otte
8a7dbe5f36
image: Remove unused code
...
I wonder how long that stuff has existed and not been used...
2015-12-02 14:56:15 +01:00
Benjamin Otte
c66a2057af
image: Split out a function
2015-12-02 14:54:15 +01:00
Benjamin Otte
a81bdf1e60
image: queue_resize() after changing icon-size property
2015-12-02 00:29:29 +01:00
Matthias Clasen
34be4de1ad
image: Use the element name image
...
Set hte element name on the CSS node.
2015-10-23 00:04:47 -04:00
Matthias Clasen
38901acea3
image: Convert to g_object_notify_by_pspec
...
This avoids pspec lookup overhead in g_object_notify.
2015-09-06 17:11:35 -04:00
Matthias Clasen
a56bd1c490
GtkImage: Plug a memory leak
2015-07-21 23:04:30 -04:00
cedlemo
d31e1fbef0
GtkImage: Make resource property work properly
...
gtk_image_set_from_resource was setting the resource_path,
only to have it overwritten again before returning. That
is not as it should be, so change things to set the resource
path late.
https://bugzilla.gnome.org/show_bug.cgi?id=751443
2015-06-25 06:50:44 -04:00
Matthias Clasen
c6a77d0f68
Revert "image: Optimize non-resize changes"
...
This reverts commit bae97a4c6b
.
We're still seeing regressions from there, see
http://bugzilla.redhat.com/show_bug.cgi?id=1208183
2015-04-08 14:13:20 -04:00
Matthias Clasen
bae97a4c6b
image: Optimize non-resize changes
...
When the image content is changed, only queue a resize
if the size is actually changing, otherwise just a
redraw. Suggested by Owen in
https://bugzilla.gnome.org/show_bug.cgi?id=613833
2015-03-21 22:40:46 -04:00
Matthias Clasen
278fa902e2
Revert "image: Optimize non-resize changes"
...
This reverts commit 6276b9cda0
.
This change was causing problems in gnome-mines. Revert it
until we can figure out what exactly is going wrong there.
See https://bugzilla.redhat.com/show_bug.cgi?id=1190887
2015-02-11 12:07:32 -05:00
Matthias Clasen
6276b9cda0
image: Optimize non-resize changes
...
Suggested by Owen in
https://bugzilla.gnome.org/show_bug.cgi?id=613833
2015-01-30 23:32:50 -05:00
Benjamin Otte
488ea44a59
image: Use _gtk_css_style_property_get_mask_affecting()
...
... to avoid recomputing the cached surface all the time.
2015-01-27 05:04:34 +01:00
Benjamin Otte
22967f1612
image: Compute clip properly
...
Use the helper function we have for this, don't do it manually. This has
the side effect of also supporting icon transforms.
2015-01-20 06:30:20 +01:00
Benjamin Otte
7afac9670b
image: Implement clipping support for icon-shadow
...
Testcase is attached.
2014-10-03 06:18:04 +02:00
Matthias Clasen
83c9fe109e
GtkImage: Always close the loader
...
This was causing some tests to fail with a critical.
2014-07-31 00:12:30 +02:00
Cosimo Cecchi
7e425f3019
image: support scale factor when loading from GResource and file
...
Currently, when loading an image from a GResource or file we don't take
the scale factor of the display into consideration, and let
GtkIconHelper scale it accordingly.
While this in general works for non-scalable images, we can take
advantage of the native loader's scaling for e.g. SVG images, and load
them at the right scale factor automatically.
This is achieved by switching to a pixbuf loader instead of using the
native function.
https://bugzilla.gnome.org/show_bug.cgi?id=733416
2014-07-29 10:13:21 +02:00
Matthias Clasen
d49d592316
GtkImage: Add cairo surface api to the docs
...
https://bugzilla.gnome.org/show_bug.cgi?id=732861
2014-07-07 22:36:56 -04:00
Matthias Clasen
68673963fc
GtkImage: Use G_PARAM_EXPLICIT_NOTIFY
...
And make use of the new icon helper API to avoid
redundant notification.
2014-06-09 13:31:04 -04:00
Matthias Clasen
7fa0228755
Revert "GtkImage: Drop use of GtkMisc::x/yalign"
...
This reverts commit 54d5b426fc
.
Conflicts:
gtk/gtkimage.c
2014-05-27 13:08:25 -04:00
Matthias Clasen
6ce2a8fb13
Revert "Fix up GtkLabel and GtkImage sizing"
...
This reverts commit 3b30cfa344
.
2014-05-27 13:04:43 -04:00
Matthias Clasen
7c83a71239
Revert "More label and image sizing fixes"
...
This reverts commit 68c1e83cf0
.
2014-05-27 13:04:34 -04:00
Matthias Clasen
68c1e83cf0
More label and image sizing fixes
...
Go back to respecting GtkMisc::xpad/ypad. Not doing so breaks
the misc-alignment reftest. As long as we still derive from
GtkMisc, we may as well do this.
2014-05-27 06:00:21 -04:00
Matthias Clasen
3b30cfa344
Fix up GtkLabel and GtkImage sizing
...
When GtkMisc was removed, I forgot to apply the style context
padding. This caused the info-bar-message-types reftest to fail.
2014-05-27 00:22:40 -04:00
Benjamin Otte
0430ae0ca5
image: Draw the image again
...
An important line of code was removed in
54d5b426fc
that lead to an undefined
variable. Add that line back.
2014-05-24 19:38:56 +02:00
Benjamin Otte
b03d54b75f
image: Remove unused variable
2014-05-24 16:16:32 +02:00
Matthias Clasen
54d5b426fc
GtkImage: Drop use of GtkMisc::x/yalign
...
Instead, use GtkWidget::h/valign to position the image inside
the allocation. And just stop using GtkMisc::x/ypad.
https://bugzilla.gnome.org/show_bug.cgi?id=730613
2014-05-24 00:04:41 -04:00
Matthias Clasen
ec0a60a248
Deprecate GtkMisc
...
This has been dangling ever since 3.0.
2014-05-13 08:45:00 -04:00
William Jon McCann
469d333aa2
docs: use Returns: consistently
...
Instead of Return value:
2014-02-19 18:56:05 -05:00
Matthias Clasen
c779b42476
Docs: use // for comments in examples
...
Without sgml mode, we can't escape /* as /* anymore,
so just switch to // for comments in examples.
2014-02-14 23:34:22 -05:00
William Jon McCann
37a8ee6e95
docs: fully break lines in examples
...
Try to do a better job of keeping example content
from being too wide. It is often rendered as <pre>
text so the only time we can wrap it is in the source.
It is best to full break lines at all punctuation and
to try to keep the width under 70 chars or so.
2014-02-12 18:42:50 -05:00
Matthias Clasen
7f6a964c47
Docs: Remove all entities and turn off sgml mode
...
With all element markup gone, it is time to turn off
sgml mode, and get rid of entities as well.
2014-02-09 17:58:07 -05:00
William Jon McCann
e34bd4137d
docs: use apostrophes in *n't
2014-02-07 13:32:47 -05:00
William Jon McCann
7a208fbbf3
docs: use proper apostrophe
...
https://wiki.gnome.org/Design/OS/Typography
2014-02-07 13:06:10 -05:00
William Jon McCann
2a45418b67
docs: use proper quotes
2014-02-05 15:08:42 -05:00
William Jon McCann
a3bad427c7
docs: don't use <application> tags
2014-02-04 18:01:24 -05:00
William Jon McCann
63e887e165
docs: replace all <examples> with markdown headings
2014-02-04 16:58:54 -05:00
William Jon McCann
4c8bd8e7cf
docs: Identify examples that are C code
...
https://bugzilla.gnome.org/show_bug.cgi?id=723119
2014-01-29 12:45:49 -05:00
William Jon McCann
768bc44081
docs: use |[ ]| instead of <programlisting></programlisting>
...
https://bugzilla.gnome.org/show_bug.cgi?id=723119
2014-01-29 12:45:49 -05:00
William Jon McCann
22586ea7c2
docs: use #*-struct instead of <structname>
2014-01-27 19:59:55 -05:00
Bastien Nocera
438cd857c4
all: Add names to timeouts
...
Add names to every timeout we setup, so it's easier to track their
usage, and debug possible misbehaviour.
https://bugzilla.gnome.org/show_bug.cgi?id=710651
2013-10-23 13:31:18 +02:00
Matthias Clasen
e5317f0f9a
Improve struct packing in various places
2013-09-21 23:50:55 -04:00
Matthias Clasen
0aa57d26b5
Move wholly deprecated classes to gtk/deprecated/
...
We've recently a number of classes wholly. For these cases,
move the headers and sources to gtk/deprecated/ and adjust
Makefiles and includes accordingly.
Affected classes:
GtkAction
GtkActionGroup
GtkActivatable
GtkIconFactory
GtkImageMenuItem
GtkRadioAction
GtkRecentAction
GtkStock
GtkToggleAction
GtkUIManager
2013-07-19 21:39:47 -04:00
Kjell Ahlstedt
4d86472b92
Continue the deprecation of GtkIconSet
...
Deprecate gtk_icon_set_render_icon_surface() and gtk_image_get_icon_set(),
which take parameters of the deprecated GtkIconSet.
https://bugzilla.gnome.org/show_bug.cgi?id=703616
2013-07-09 06:54:27 -04:00
Emmanuele Bassi
0899ef7cc9
gtk: Use new macros for defining private data
...
https://bugzilla.gnome.org/show_bug.cgi?id=702996
2013-07-09 09:30:02 +01:00
William Jon McCann
72c3879893
Add missing G_PARAM_DEPRECATED to stock deprecations
2013-07-08 15:39:55 -04:00
Alexander Larsson
31fc70721e
GtkImage: Add new_from_surface() and set_from_surface()
2013-07-03 14:39:26 +02:00
Alexander Larsson
e042ffa71e
GtkImage: Set the window on the gtkiconhelper
2013-07-03 14:39:26 +02:00
William Jon McCann
aef9dca9d5
Deprecate GtkIconFactory, GtkIconSet, GtkIconSource
...
We want to use GtkIconTheme instead. It is worth noting that
the parts that remain undeprecated are GtkIconSize and gtk_icon_size_lookup.
2013-06-26 20:02:27 -04:00
William Jon McCann
424e1d0059
Start deprecating some GtkStock API
2013-06-25 19:05:32 -04:00
William Jon McCann
02c793f24a
Start migrating internals away from GtkStock
2013-06-24 22:20:49 -04:00
Matthias Clasen
c9ec4ba5a1
GtkImage: Fix the initial value of icon-size
...
Since we are pulling the icon-size out of the icon helper now,
we should set its icon-size when constructing it.
2013-06-15 20:23:01 -04:00
Paolo Borelli
d35596fe92
GtkImage: do not leak metrics in baseline align
...
https://bugzilla.gnome.org/show_bug.cgi?id=699020
2013-04-27 13:59:29 +02:00
Alexander Larsson
c630804647
GtkImage: Reuse previously calculated baseline_align in draw()
...
No need to recalculate this every time we draw.
2013-04-23 05:58:08 +02:00
Alexander Larsson
7523b25942
GtkImage: Support baselines
...
This uses the current font metrics to guess the baseline of the image.
Without this any non-centered baseline in buttons with images look weird.
2013-04-23 05:50:38 +02:00