Matthias Clasen
a81267c28e
label: Convert to gadgets
...
This removes some hairy code handling with borders and padding,
which may or may not be correct. The examples in testheightforwidth
all continue to work, and min-width now works for labels.
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
Timm Bäder
1db5ed0aae
GtkLabel: Create gestures only when needed
...
And move them into the GtkLabelSelectionInfo struct.
2015-11-20 16:45:17 +01:00
Matthias Clasen
3811eb4f32
label: Use css nodes for links
...
Use a subnode with name link for links in labels. These subnodes
carry the :link or :visited state.
2015-11-15 01:04:27 -05:00
Matthias Clasen
fafa75ac19
label: Use a CSS node for selection rendering
...
This adds new possibilities for themes to render the selection
in fancy ways.
2015-11-10 20:28:10 -05:00
Matthias Clasen
953aa45c04
label docs: Mention common style classes
...
Mention some of the style classes that are commonly used
with labels.
2015-10-26 07:23:07 -04:00
Matthias Clasen
7d98c7f1ae
label: Use the element name label
...
Set the element name on the CSS node, and drop the .label style
class.
2015-10-22 23:27:43 -04:00
Matthias Clasen
3c54fbd3ac
Use stupid quotes instead of dumb quotes
...
Following a similar change in GLib a while ago.
'bla' may by stupid, but it looks less dumb than `bla'.
2015-09-23 07:01:16 -04:00
Matthias Clasen
1bb86c2056
label: Avoid recalculation in some cases
...
Avoid recalculation the entire label layout when nothing changed.
2015-09-23 07:01:15 -04:00
Matthias Clasen
29c799a1e7
Use g_object_get_qdata instead of g_object_get_data
...
This is less expensive.
2015-09-12 12:50:39 -04:00
Matthias Clasen
97b8c2c0aa
label: Convert to g_object_notify_by_pspec
...
This avoids pspec lookup overhead in g_object_notify.
2015-09-06 17:11:34 -04:00
Matthias Clasen
07942446d7
Fix a thinko in GtkLabel
2015-08-15 11:24:55 -04:00
Matthias Clasen
0f871be508
GtkLabel: Add alpha support for buildable attributes
...
Make it possible to set foreground or background alpha in the
builder ui support for Pango attributes.
2015-08-14 23:42:48 -04:00
Matthias Clasen
12e98498f6
label: Flesh out pango attribute support
...
A few attribute types were missing from the support:
rise, letterspacing, fallback, font features. Add support
for these.
2015-08-11 20:57:52 -04:00
Timm Bäder
61ba7adfc8
GtkLabel: Show erroneous text if parsing markup failed
...
https://bugzilla.gnome.org/show_bug.cgi?id=752920
2015-08-03 11:31:00 +02:00
Matthias Clasen
5c2759af3c
Use standard cursor names
...
This changes GTK+ to use gdk_cursor_new_from_name() with the
'standard' css names, instead of GdkCursorType.
https://bugzilla.gnome.org/show_bug.cgi?id=652085
2015-07-26 01:45:06 -04:00
Matthias Clasen
6a9944cbc5
GtkLabel: Remove an unnecessary check
...
Coverity has the annoying habit of guessing backwards that
if we check the value here, it might be NULL earlier.
2015-07-17 18:39:14 -04:00
Paolo Borelli
803430a779
pango: make merge_attrs return the merged list
...
This simplifies all the callers
2015-07-06 00:31:56 +02:00
Paolo Borelli
a19331f231
label: add support for CSS letter-spacing property
...
Support letter-spacing CSS property on GtkLabel.
Reftest is included.
2015-07-06 00:04:05 +02:00
Paolo Borelli
b92c530a61
pango: move an utility function from gtklabel
...
This will be used both by gtklabel and gtkentry
2015-07-06 00:04:05 +02:00
Matthias Clasen
331db35d57
GtkLabel: Prefix more ui parser errors
...
This may become useful in gnome-builder for highlighting errors,
so do it consistently.
2015-04-27 19:20:29 -04:00
Matthias Clasen
d99c3e0332
Formatting fixes
2015-04-27 19:16:41 -04:00
Matthias Clasen
87d3cc47c2
GtkLabel: Use the new helpers
...
Instead of issuing g_warning, fill the provided GError.
This lets us test this error handling, and is the right
thing to do. Use the new GtkBuilder helpers and
g_markup_collect_attributes to do so.
2015-04-27 01:15:21 -04:00
Emmanuele Bassi
3972520fbb
docs: Note the side effects of GtkLabel setters
...
The gtk_label_set_text() and gtk_label_set_markup() functions have
various side effects that ought to be documented, especially for
non-C developers using properties directly.
https://bugzilla.gnome.org/show_bug.cgi?id=747121
2015-04-05 22:46:29 -04:00
Matthias Clasen
eea16f03f5
Stop using GDK_POINTER_MOTION_HINT_MASK in widgets
...
It is deprecated and no longer needed, and,as observed in
https://bugzilla.gnome.org/show_bug.cgi?id=746253 it
interferes with turning off event compression.
2015-03-22 17:33:38 -04:00
Matthias Clasen
c93d66c8a7
Fix a typo in the docs
...
gtk-doc complains about parameter name mismatches.
2015-03-13 23:24:53 -04:00
Philip Withnall
b397dd04c4
gtk: Remove documentation references to the GTK_NO_WINDOW flag
...
It has been removed entirely, and replaced by
gtk_widget_get_has_window().
https://bugzilla.gnome.org/show_bug.cgi?id=744054
2015-02-19 12:48:41 +00:00
Matthias Clasen
4dee1646a1
Fix annotations
...
The function gtk_label_set_attributes() is also used to
unset attributes, by passing %NULL. Reflect that in the
argument annotations.
2015-02-10 06:59:01 -05:00
Timm Bäder
57714b9774
gtklabel: Don't accept unhandled mouse buttons
...
If the pressed mouse button neither triggers a context menu nor
activates a link, set the sequence's state to DENIED.
https://bugzilla.gnome.org/show_bug.cgi?id=742010
2015-01-08 21:52:26 -05:00
Jasper St. Pierre
59629fa9e2
gtklabel: Optimize GtkStyleContext usage
2014-11-26 18:10:55 -08:00
Matthias Clasen
75bcecb363
Add a label style class
2014-10-04 21:53:29 -04:00
Benjamin Otte
8d1227a97c
label: Simplify rendering code
...
Instead of drawing text for selections and links manually, use the
gtk_render_background() and gtk_render_layout() functions.
As a side effect, this allows shadows on selected text and links
and real backgrounds (like gradients or images), too.
2014-10-03 06:18:06 +02:00
Jasper St. Pierre
91d9ae1cc4
label: Don't add in the allocation to our clip again
...
_gtk_widget_set_simple_clip already takes the allocation into account,
so we don't need to do it here.
2014-09-30 13:43:36 -06:00
Matthias Clasen
d39424fc1c
GtkLabel: add x/yalign properties
...
Since it turns out that x/yalign can't be quite equivalently
replaced by h/valign, bring them back as label properties, so
we can eventually get rid of GtkMisc.
https://bugzilla.gnome.org/show_bug.cgi?id=735841
2014-09-29 23:56:20 -04:00
Benjamin Otte
e9ce9a814b
label: Clear layout after setting GtkLabel::lines property
...
Otherwise the label will not pick up the property.
2014-09-15 16:35:40 +02:00
Matthias Clasen
656deeb489
Fix a missing id in the docs
...
label-text-layout was missing, causing two broken links further
down in the page.
2014-09-08 15:36:15 -04:00
Matthias Clasen
1cc5cf3797
GtkLabel: better treatment for selection with ellipsis
...
This commit arranges things so that we treat an ellipsized
region like a single character for the purpose of selection
and cursor navigation.
https://bugzilla.gnome.org/show_bug.cgi?id=328449
2014-09-03 22:23:08 -04:00
Matthias Clasen
fc5f7cc138
GtkLabel: Make it possible to get the ellipsis range
...
This will be used in the next commit to expand the selection.
2014-09-03 22:23:08 -04:00
Matthias Clasen
1cddd14ab4
GtkLabel: better treatment for ellipsized links
...
When links are entirely hidden in an ellipsis, don't let
them be activated by clicking and skip them when moving
the focus around.
This commit depends on enhancements in pango 1.36.7 which
make it possible to find the ellipsed runs in a PangoLayout.
With older pango, things will work the same way as before.
https://bugzilla.gnome.org/show_bug.cgi?id=668258
2014-09-03 22:23:08 -04:00
Matthias Clasen
1c1b51d52d
Don't return from a void function
...
And don't return the value of void functions, either.
2014-08-30 00:53:35 -04:00
Benjamin Otte
1126a34353
label: Respect box-shadow when computing clip
...
Testclase included.
Also reorder headers to be alphabetic.
2014-08-21 00:54:07 +02:00
Carlos Garnacho
261bbd8d8e
label: Update to new GtkGestureSingle/GtkEventController defaults
...
GtkGestureSingle::button is set to 0 on the multipress gesture, as several
buttons are managed by that gesture. Also avoid some extra lines of code
setting what nowadays are default values.
https://bugzilla.gnome.org/show_bug.cgi?id=734285
2014-08-15 13:53:39 +02:00
Benjamin Otte
a3d1db608b
label: Don't clip text shadows
...
The previous code for computing the clip rectangle forgot to respect
the text-shadow CSS property. This is usually not very visible because
text shadows usually don't extend the ink rectangle by very much.
See attached testcase for an example.
2014-07-31 17:50:24 +02:00
Benjamin Otte
f35ec11578
label: Include all of the allocation in the clip
...
Otherwise, the CSS background we draw would be clipped if the ink rect
was smaller than the allocation (a very common thing).
Broken since 37030a7710
where we clipped
to the ink rect.
2014-07-12 07:13:28 +02:00
Timm Bäder
0840f13c15
gtklabel: Set the correct initial cursor
...
Use GDK_XTERM only if the label is really selectable.
https://bugzilla.gnome.org/show_bug.cgi?id=732970
2014-07-11 21:24:21 -04:00
Benjamin Otte
37030a7710
label: Add ink rect support to GtkLabel
2014-07-10 18:56:34 +02:00
Benjamin Otte
a97901b1f7
label: Move function
...
This just moves the function, no actual code changes.
2014-07-10 18:56:34 +02:00
Matthias Clasen
8677446fe0
GtkLabel: Use G_PARAM_EXPLICIT_NOTIFY
2014-06-09 13:30:55 -04:00
Carlos Garnacho
8dcdec58eb
label: Use gestures for event management
...
A multipress gesture takes care of link handling, and char/word/all
selection mode on selectable labels. A drag gesture is used for both
text selection and DnD checks on selectable labels.
2014-06-05 16:15:54 +02:00
Matthias Clasen
24863a0b6a
Revert "GtkLabel: Drop use of GtkMisc::x/yalign"
...
This reverts commit b320c198b6
.
2014-05-27 13:07:03 -04:00