Matthias Clasen
66a0a8d53e
Merge branch 'wip/baedert/test-cflags' into 'master'
...
Pass (almost) all our cflags to tests, testsuite, examples, demos, ...
See merge request GNOME/gtk!1516
2020-03-13 18:40:46 +00:00
Matthias Clasen
703d69692f
demo: stop using gdk_surface_get_state
2020-03-12 14:56:20 -04:00
Timm Bäder
7789d0e23f
builder: Make object names a const array
...
We don't take ownership.
2020-03-07 15:30:38 +01:00
Timm Bäder
dc36c21835
demos/gtk-demo: Add common_cflags to build
...
With a few exceptions.
2020-03-07 15:30:35 +01:00
Timm Bäder
3c28f6d891
demos/widget-factory: Add common_cflags to build
...
And fix the generated warnings
2020-03-06 18:56:40 +01:00
Timm Bäder
6f6ed1e4af
demos/node-editor: Add common_cflags to build
...
And fix the generated warnings
2020-03-06 18:54:37 +01:00
Timm Bäder
e444d7315c
demos/icon-browser: Add common_cflags to build
...
And fix the generated warnings
2020-03-06 18:53:05 +01:00
Timm Bäder
5d1e006a95
demos/constraint-editor: Add common_cflags to build
...
And fix all the warnings and errors generated.
2020-03-06 18:51:10 +01:00
Benjamin Otte
3f7b401de0
gtk-demo: Add a simple peg solitaire DND demo
2020-03-02 03:18:55 +01:00
Benjamin Otte
a411959c91
droptarget: Redo
...
This is a huge reorganization of GtkDropTarget. I did not know how to
split this up, so it's unfortunately all one commit.
Highlights:
- Split GtkDropTarget into GtkDropTarget and GtkDropTargetAsync
GtkDropTarget is the simple one that only works with GTypes and offers
a synchronous interface.
GtkDropTargetAsync retains the full old functionality and allows
handling mime types.
- Drop events are handled differently
Instead of picking a single drop target and sending all DND events to
it, every event is sent to every drop target. The first one to handle
the event gets to call gdk_drop_status(), further handlers do not
interact with the GdkDrop.
Of course, for the ultimate GDK_DROP_STARTING event, only the first
one to accept the drop gets to handle it.
This allows stacking DND event controllers that aren't necessarily
interested in handling the event or that might decide later to drop
it.
- Port all widgets to either of those
Both have a somewhat changed API due to the new event handling.
For the ones who should use the sync version, lots of cleanup was
involved to operate on a sync API.
2020-03-02 03:18:55 +01:00
Matthias Clasen
b5bacb3be6
Drop the margin property
...
Replace it with margin-start, -end, -top, -bottom throughout.
2020-02-25 20:59:04 -05:00
Matthias Clasen
a9c05193a7
Drop the expand property
...
The hexpand and vexpand properties are sufficient.
2020-02-25 18:29:15 -05:00
Matthias Clasen
9d80db29de
Merge branch 'spinning-spinner' into 'master'
...
Rename GtkSpinner::active to ::spinning
See merge request GNOME/gtk!1475
2020-02-25 04:04:46 +00:00
Matthias Clasen
e73a40733f
Rename GtkSpinner::active to ::spinning
...
And add a setter and getter. The old name was
confusing with the widget state of the same
name. 'Active' is just too overloaded.
2020-02-24 22:37:02 -05:00
Matthias Clasen
a43d13aa74
popover: Drop ::relative-to
...
It is enough to just set the parent (and make the parent
call gtk_native_check_resize in size_allocate).
This commit removes the relative_to argument to the
constructors of GtkPopover and GtkPopoverMenu, and
updates all callers.
2020-02-24 20:46:41 -05:00
Emmanuele Bassi
b09e7df81b
Remove GtkFileChooser:local-only
...
Now that the whole API goes through GFile we don't have the weird split
between local-only and non-local-only modes.
2020-02-22 15:22:06 +00:00
Emmanuele Bassi
063ad28b1a
Remove overwrite confirmation machinery from GtkFileChooser
...
Overwrite confirmation should not be optional, and it should not loop
into application code to create their own dialog and user response.
2020-02-22 15:22:06 +00:00
Emmanuele Bassi
5f070ff233
Remove filename/URI API from GtkFileChooser
...
GtkFileChooser's API predates GIO by a few years, so it started off with
filenames and URI as character arrays. After introducing GIO as a
dependency, the API included GFile-based entry points.
It's much more appropriate to use GFile everywhere, as we want to
encourage people to use GIO instead of passing random bytes to low level
POSIX API.
See: #2455
2020-02-22 15:22:06 +00:00
Matthias Clasen
1c7191f45c
gtk-demo: Stop using gtk_get_event_widget
...
This is convenience api that will be going away.
2020-02-21 00:51:03 -05:00
Matthias Clasen
b1eaa502df
events: reorganize getters
...
Restructure the getters for event fields to
be more targeted at particular event types.
Update all callers, and replace all direct
event struct access with getters.
As a side-effect, this drops some unused getters.
2020-02-21 00:51:03 -05:00
Matthias Clasen
31bf9da63a
Strip const from GdkEvent
...
Events are refcounted structs, and we generally don't
pass these as const.
2020-02-21 00:51:02 -05:00
Matthias Clasen
c343031a0e
Stop using g_object_ref/unref on events
...
Use gdk_event_ref/unref instead of g_object_ref/unref.
Events will stop being object soon.
2020-02-21 00:47:53 -05:00
Matthias Clasen
66307f00f1
icontheme: Update the api
...
Add properties, and use string arrays instead of lists.
Among other things, this renames gtk_icon_theme_list_icons
to gtk_icon_theme_get_icon_names.
Fixes: https://gitlab.gnome.org/GNOME/gtk/issues/2410
2020-02-18 20:32:17 -05:00
Benjamin Otte
b8cf7ea1c6
dnd: Port the TreeModel machinery to GValue DND
2020-02-18 02:40:00 +01:00
Benjamin Otte
80ba7fd682
dragdest: Make gtk_drop_target_new() args be transfer full
...
Saves tons of code.
2020-02-17 04:04:21 +01:00
Benjamin Otte
da83457a60
dnd: Remove gdk_content_provider_new_with_callback()
...
Content providers are meant to be immutable, apart from very special
cases, but in those cases they need to emit
gdk_content_provider_content_changed().
Having a constructor that just uses a get_func invites abuse of this
by not making developers aware of those requirments.
In fact, all users in GTK failed to do this.
Instead, code should use the GtkDragSource::prepare signal to create
content providers when needed.
The same problem exists with gdk_content_provider_new_with_formats(),
but this commit doesn't touch that.
2020-02-16 20:10:31 +01:00
Timm Bäder
78a5bf8e21
Remove gtk_info_bar_get_content_area() uses
...
We can just add() to the info bar directly.
2020-02-15 17:18:26 +01:00
Benjamin Otte
a278edab22
window: Remove type argument from gtk_window_new()
2020-02-14 21:18:49 +01:00
Emmanuele Bassi
cdd7e4c5ec
Add a notify function to GdkContentProvider
...
The callback-based content providers need a GDestroyNotify function to
free the data passed to them on construction, otherwise they are going
to leak.
2020-02-13 14:53:25 +00:00
Alexander Larsson
1698369d52
Merge branch 'icon-theme-api-rework' into 'master'
...
Icon theme api rework
See merge request GNOME/gtk!1390
2020-02-10 12:45:56 +00:00
Alexander Larsson
904eecd1ed
icon paintable: Replace get_filename and get_resource_path with get_file()
...
This returns a GFile which can represent both the above.
2020-02-10 12:33:17 +01:00
Matthias Clasen
55b60f6da9
gtk-demo: Don't call gtk_main_quit
...
It doesn't work with GtkApplications that do not
call gtk_main().
2020-02-07 16:25:02 -05:00
Benjamin Otte
44e153d8a8
GtkToolbar: remove
2020-02-07 14:08:26 +01:00
Benjamin Otte
e00030dff2
css: Remove .primary-toolbar
...
It's not used anywhere anymore.
2020-02-07 14:08:08 +01:00
Benjamin Otte
9cccb944ef
css: Remove .inline-toolbar
...
It's not used anywhere anymore.
2020-02-07 14:08:08 +01:00
Benjamin Otte
1363cacb3a
widget-factory: Get rid of toolbars
2020-02-07 14:08:08 +01:00
Benjamin Otte
68dbb3f31a
gtk-demo: Get rid of toolbars
2020-02-07 14:08:08 +01:00
Alexander Larsson
8282698201
textview: Use paintables instead of textures, and fix the support
...
This changes gtk_text_buffer_insert_texture() to
gtk_text_buffer_insert_paintable() which is strictly more useful
(as textures are paintables). It also fixes the code to actually
support drawing the paintables (as well as tracking changes
to the paintables.
2020-02-06 17:47:56 +01:00
Alexander Larsson
d69f7fd63e
IconTheme: Never fail a lookup or icon load
...
If icon lookup fails or if loading it fails later, just always
fall back to the built in image-missing icon. Nobody is handling
missing icons in a sane way anyway.
If you *truly* need to handle missing icons, you need to manually
use gtk_icon_theme_has_icon().
While changing the loading code I also fixed an issue where it
was always passing "png" to pixbuf, now it also handles "xpm" if
that is the filename suffix.
2020-02-06 09:38:25 +01:00
Alexander Larsson
b529f77827
IconTheme: Simplify icon scaling
...
We had a pretty complex setup where we tried to avoid scaling up themes from dirs
that specified a size. However, not only was it very complex, but it didn't quite
work with window scales, because when using e.g. a size 32 directory for 16@2x
the dir size is wrong anyway. Additionally it turns out most code either picks
an existing icon size, or uses the FORCE_SIZE flags, so it doesn't seem
like a useful behaviour.
This change drops the FORCE_SIZE flags, and always scales
icons. Additionally it moves the scaling of the icon to rendering,
which seems more modern, and allows us to (later) share icons loaded
for different sizes that happened to use the same source file (at
different scales).
Note that this changes the behaviour of
gtk_icon_paintable_download_texture() is it now returns the unscaled
source icon. However, ignore thats, as I plan to remove this function
and replace it with a way to render a paintable to a cairo-surface
instead.
2020-02-06 09:38:25 +01:00
Matthias Clasen
ac7dd02f8f
Merge branch 'master.msvc' into 'master'
...
Fix building recent GTK master on Visual Studio
See merge request GNOME/gtk!1369
2020-02-05 18:26:22 +00:00
Alexander Larsson
410541f82b
Rename GtkIcon to GtkIconPaintable
2020-02-04 17:19:22 +01:00
Benjamin Otte
138de60ab2
icontheme: Remove GENERIC_FALLBACKS
...
Instead, rely on people passing fallbacks explicitly.
Alternatively, GThemedIcon provides the functionality to create
fallbacks, which is what GtkImage and the testsuite now use.
That method is slightly better, too, so the expected test results
have been updated accordingly.
2020-02-04 16:51:54 +01:00
Benjamin Otte
571021cbc1
icontheme: Pass fallbacks as optional argument to lookup_icon()
...
This way, we can remove gtk_icon_theme_choose_icon() completely.
2020-02-04 16:51:54 +01:00
Benjamin Otte
f7a5dd7b8b
icontheme: Remove contexts
...
There is no way to query contexts or do anything useful with them.
So don't keep track of them and don't make them an argument in public
APIs with the docs saying "I don't know what to use here, maybe read
some spec somewhere".
2020-02-04 16:51:54 +01:00
Benjamin Otte
bbbe39fb44
icontheme: Make text direction a lookup argument
...
Most users were just forgetting to set the proper flags.
And flags aren't the right way to set this anyway, it was just
acceptable as a workaround during GTK3 to not break API.
2020-02-04 16:41:36 +01:00
Benjamin Otte
bfebc2b01a
icontheme: Remove gtk_icon_theme_get_default()
...
The API encouraged wrong usage - most of the users were indeed wrong.
Use the correct version instead:
gtk_icon_theme_get_for_display (gtk_widget_get_display ())
2020-02-04 16:41:36 +01:00
Chun-wei Fan
69ed4c90e5
demos/widget-factory/widget-factory.c: Include stdlib.h
...
Include it for exit().
2020-02-03 17:18:36 +08:00
Alexander Larsson
5f8c2b52c6
indentation: fix various alignment issues
...
Most of these stem from the GtkIconInfo -> GtkIcon rename
2020-01-30 12:27:15 +01:00
Alexander Larsson
27799ba4f5
Remove final references to "icon info" with just "icon"
2020-01-30 10:53:43 +01:00
Alexander Larsson
b087f9ca51
icon-theme: Drop the _for_scale() versions and always take scale
2020-01-30 10:53:43 +01:00
Alexander Larsson
e2f778602b
icon-theme: Rename GtkIconInfo to GtkIcon
2020-01-30 10:53:43 +01:00
Alexander Larsson
dbe021239f
icons: Convert use of load() to download_texture()
2020-01-29 19:06:16 +01:00
Alexander Larsson
c42977af04
Convert trivial users of icon theme loading to use info as paintable
2020-01-29 19:06:16 +01:00
Benjamin Otte
49b47c9133
Remove GtkWidgetPath
...
... and all associated demos and tests.
2020-01-28 02:17:02 +01:00
Matthias Clasen
a6f300cefd
widget-factory: Add a way to quit automatically
...
This can be used to measure startup cost in tests.
2020-01-21 17:31:48 -05:00
Benjamin Otte
c85d9a3259
stylecontext: Change semantics of gtk_style_context_get_path()
...
Widget contexts now return NULL here. A non-NULL result requires a
previous call to gtk_style_context_set_path()
2020-01-21 12:47:16 +01:00
Yariv Barkan
1a9b1f38a4
demo: Use pinch translation in the gestures demo
...
Add the pinch translation offset to the pinch gesture demo. That allows
moving the square around in addition to the already-supported rotate and
zoom.
2020-01-17 22:34:48 +02:00
Matthias Clasen
794ee0b8c0
gtk-demo: Use a default action in the infobars demo
...
This makes the question infobar activatable by clicking
anywhere in it.
2020-01-14 00:05:23 -05:00
Matthias Clasen
5206a92522
Update all callers
2020-01-08 18:48:22 -05:00
Matthias Clasen
6b7c5174ed
gtk-demo: Update the ::prepare handler
2020-01-08 18:48:22 -05:00
Matthias Clasen
2ee087f25f
iconbrowser: Use GDK content formats api
2020-01-08 18:48:22 -05:00
Matthias Clasen
9cc29efa25
gtk-demo: Use GDK content formats api
2020-01-08 18:48:22 -05:00
Matthias Clasen
bf98ebcb12
iconbrowser: Use gtk_widget_add_controller for drag source
2020-01-08 18:48:21 -05:00
Matthias Clasen
1a5dece09c
gtk-demo: Use gtk_widget_add_controller for drag source
2020-01-08 18:48:21 -05:00
Matthias Clasen
e8b830a3dd
dragsource: Reshuffle api a bit
...
Remove arguments from the constructor.
For actions, we now default to COPY, which is the most common one
that we should enable by default (MOVE requires handling deletion
on the the source side, and ASK only makes sense if we have
multiple actions).
For the content provider, we add a new ::prepare signal where
it should be provided just-in-time.
2020-01-08 18:48:21 -05:00
Matthias Clasen
38974d7d2b
dragsource: Tweak api, update all callers
...
Add GdkDrag back to signals, drop ::drag-data-delete,
and replace it with a boolean in ::drag-end.
2020-01-08 18:48:21 -05:00
Matthias Clasen
e9067ae2db
Replace gtk_drop_target_attach/detach
...
Since drop targets are now just event controller,
gtk_widget_add/remove_controller works just fine
for them.
2020-01-08 18:48:21 -05:00
Matthias Clasen
46f42fc53d
droptarget: Drop defaults flags
...
These no longer have any effect.
Update all callers.
2020-01-08 18:48:20 -05:00
Matthias Clasen
ac09500d74
gtk-demo: Convert clipboard demo to GtkDropTarget
2020-01-08 18:48:20 -05:00
Matthias Clasen
993d6388ee
iconbrowser: Port to GtkDragSource
2020-01-08 18:48:19 -05:00
Matthias Clasen
5ad4b75ae2
gtk-demo: Convert the clipboard demo to GtkDragSource
2020-01-08 18:48:19 -05:00
Matthias Clasen
ca87048045
gtk-demo: Remove the change display demo
...
The window picking code has been broken for a while.
Since this is not really functionality that we should
highlight to application developers, remove the demo
instead of patching it up.
2019-12-29 18:45:40 -05:00
Matthias Clasen
5ec9b15d84
gtk-demo: Convert the builder demo to a menu model
2019-12-29 18:45:40 -05:00
Matthias Clasen
6b691bc02d
gtk-demo: Remove menus from listbox demo
2019-12-29 18:45:40 -05:00
Matthias Clasen
abcd83dd78
gtk-demo: Cosmetics
2019-12-29 18:45:40 -05:00
Matthias Clasen
5d2113ff5d
gtk-demo: Remove the menus demo
...
Menus are going away.
2019-12-29 18:45:40 -05:00
Matthias Clasen
5c086b9d44
gtk-demo: Convert the dnd demo to a popover
2019-12-29 18:45:40 -05:00
Matthias Clasen
8efa612288
gtk-demo: Remove a somewhat silly bit of code
...
Putting a context menu on an overlay scrollbar
is too much of an easter egg to count as a useful
demo. Remove it, rather than changing it to a
popover.
2019-12-29 18:45:40 -05:00
Matthias Clasen
928f7faf7d
gtk-demo: Use a popover in the clipboard demo
2019-12-29 18:45:40 -05:00
Matthias Clasen
4b4cf36b03
gtk-demo: Replace a menu with a popover
2019-12-29 18:45:40 -05:00
Matthias Clasen
62e9ea412a
widget-factory: Remove the menubar
2019-12-29 18:44:26 -05:00
Matthias Clasen
24c66f831f
widgetfactory: Undo more builder-tool damage
...
The two volume buttons are supposed to be
vertically arranged.
2019-12-24 09:59:23 -05:00
Matthias Clasen
663fb93af7
gtk-demo: Fix font explore initial state
2019-12-23 22:35:44 -05:00
Matthias Clasen
db42c23c0a
gtk-demo: Fix a crash in the font explorer demo
...
gtk_widget_add_controller is transfer-full.
2019-12-23 22:33:02 -05:00
Matthias Clasen
33716d1e50
gtk-demo: Cosmetic fixes to the dnd demo
2019-12-23 22:14:52 -05:00
Matthias Clasen
65769fd7a6
gtk-demo: Cosmetic fixes to the assistant demo
2019-12-23 21:58:45 -05:00
Matthias Clasen
e6d3f3d91e
gtk-demo: Fix the application demo
...
This was broken in d223752c55
, when the
support for internal children was removed
from GtkInfoBar.
2019-12-23 21:52:52 -05:00
Matthias Clasen
4470e5bc93
gtk-demo: Some touchups
...
Make the theming style classes demo look a bit less odd.
2019-12-12 18:46:53 -05:00
Matthias Clasen
c33a7670d0
Merge branch 'wip/otte/builder' into 'master'
...
More builder work
Closes #2267
See merge request GNOME/gtk!1230
2019-12-12 20:36:08 +00:00
Benjamin Otte
101298c54d
gtk-demo: Don't include "gtk.h"
2019-12-12 19:50:55 +01:00
Benjamin Otte
f8a7f30a0d
builder: Add GtkBuilderScope
...
GtkBuilderScope is an interface that provides the scope that a builder
instance operates in.
It creates closures and resolves types. Language bindings are meant to
use this interface to customize the behavior of builder files, in
particular when instantiating templates.
A default implementation for C is provided via GtkBuilderCScope (to keep
with the awkward naming that glib uses for closures). It is derivable on
purpose so that languages or extensions that extend C can use it.
The reftest code in fact does derive GtkBuilderCScope for its own scope
implementation that implements looking up symbols in modules.
gtk-widget-factory was updated to use the new GtkBuilderCScope to add
its custom callback symbols.
So it does it different from gtk-demo, which uses the normal way of
exporting symbols for dlsym() and thereby makes the 2 demos test the 2
ways GtkBuilder uses for looking up symbols.
2019-12-12 19:39:23 +01:00
Matthias Clasen
41bb40feee
widget factory: Fix more grid layout fallout
2019-12-09 21:29:03 -05:00
Benjamin Otte
a15fb95c46
gtk-demo: Use normal way to lookup up symbols
...
We're a normal application, so we can use the normal way to hook up code
into builder files, which is using dlsym() for the function pointers.
There's no need to to extra work exporting static symbols.
2019-12-03 18:12:25 +01:00
Matthias Clasen
da063a8aa5
Fix up widget-factory ui
2019-11-29 08:34:09 -05:00
Matthias Clasen
be74be0e3b
widget-factory: Fix a popover menu
...
This one is manually constructed, and things have
changed enough for that to break. Fix it up.
2019-11-27 17:41:44 -05:00
Robert Ancell
25e4174a38
gtk-demo: Fix incorrect use of g_strdup_printf
...
Was broken in a refactoring in 4a2f313
2019-11-26 10:11:28 +13:00
Benjamin Otte
b025ee428c
builder: Connect signals automatically
...
gtk_builder_connect_signals() is no longer necessary, because all the
setup that made it necessary to have this extra step is now done
automatically via the closure functions.
2019-11-22 17:42:31 +01:00
Benjamin Otte
27d05102ab
builder: Remove user_data argument from gtk_builder_connect_signals()
...
This is pretty unused and gets in the way of the next steps.
A potential side effect is that for templates the widget was passed as
the user data argument. If that turns out to be important, we have to
special case that situation.
2019-11-22 07:46:18 +01:00
Benjamin Otte
ab407ba57c
Merge branch 'kill-entry-buffer-demo' into 'master'
...
gtk-demo: Drop the entry buffer demo
See merge request GNOME/gtk!1166
2019-11-05 19:08:22 +00:00
Matthias Clasen
e8d890ae0c
gtk-demo: Drop the entry buffer demo
...
We all agree that entry buffers are not something
we should promote in demos.
2019-11-05 18:50:06 +00:00
Christian Hergert
dba9298c14
gtk-demo: set irreversable actions for textview demos
2019-11-05 10:27:29 -08:00
Christian Hergert
67c0f88c00
gtk-demo: add a demo for TextView undo/redo
2019-11-05 10:27:29 -08:00
Christian Hergert
e93408e962
gtk-demo: add an undo demo for GtkEntry
2019-11-05 10:27:29 -08:00
Christian Hergert
6d193d7cb4
gtk-demo: wrap text operations in irreversible actions
...
This ensures that the actions to set the text for the demo tabs cannot
be undone. This matches the previous behavior for GtkTextBuffer.
2019-11-05 10:27:29 -08:00
Matthias Clasen
4a2f3130d2
gtk-demo: Use harfbuzz for font features
...
We don't need freetype anymore here; harfbuzz
has what we need.
2019-11-01 13:01:54 -04:00
Matthias Clasen
1f0310ddff
gtk-demo: Add a scrolling image demo
...
This tests big textures.
2019-10-22 21:20:36 -04:00
Timm Bäder
d36d7d93e6
Merge branch 'fix-popover-styles' into 'master'
...
Fix popover styles (GTK 4)
Closes #2061
See merge request GNOME/gtk!1079
2019-10-16 07:42:45 +00:00
Benjamin Otte
427deb4f13
widget: Make gtk_widget_grab_focus() return a boolean
...
So now it can actually fail.
It doesn't yet though.
2019-10-15 16:33:05 +02:00
Matthias Clasen
019e3c02ed
Make the scrolling demo more versatile
...
Allow to swap out the content, so we can compare
text and icon scrolling.
2019-10-11 22:04:30 -04:00
Matthias Clasen
60e2242256
Add an icon scrolling demo
...
This is good to exercise the GL renderer icon cache.
2019-10-11 17:36:38 -04:00
Timm Bäder
542b95e7e8
widget-factory: Remove double border around textview
...
Replace the scrolledwindow border with two separator on top/bottom.
2019-10-09 16:57:22 +02:00
Timm Bäder
7cdb8d8565
gtk-demo: Fix up sidebar demo style
...
Remove a superfluous separator and add the icon-dropshadow class to the
gtk logo
2019-10-09 16:57:22 +02:00
Timm Bäder
3944d64d08
demo: Don't manually add labels to menubuttons
2019-10-09 16:57:22 +02:00
Timm Bäder
e20f547317
demo: Fix modelbutton demo
2019-10-09 16:57:22 +02:00
Timm Bäder
bcd8941769
widget-factory: Skip xml files in background selection dialog
...
The default contains a xml file for an animated background, so don't try
loading it as a pixbuf.
2019-10-09 16:57:22 +02:00
Timm Bäder
b5b81dea7f
modelbutton: Rework
...
Create all the widgets on demand and use a box layout to arrange them
instead of manual size allocation.
Also don't inherit from GtkButton
2019-10-09 16:57:21 +02:00
Matthias Clasen
9501fc2c14
Merge branch 'nested-popover-menu' into 'master'
...
Nested popover menus
See merge request GNOME/gtk!1076
2019-09-10 01:09:31 +00:00
Timm Bäder
71339225eb
icontheme: Remove gtk_icon_info_load_texture
...
It's the same as load_icon now.
2019-09-09 17:36:26 +02:00
Timm Bäder
fd16ac4d5e
icontheme: Return paintables from more API
2019-09-09 17:36:26 +02:00
Timm Bäder
f3099afcc5
icontheme: Return textures from load_icon{,_for_scale}
2019-09-09 17:36:26 +02:00
Timm Bäder
c3f82534bd
widget-factory: Use proper setter to set has-arrow
2019-09-09 17:36:26 +02:00
Timm Bäder
6821fe0c13
icontheme: Add error argument to _load_texture
...
Loading an icon might fail.
2019-09-09 17:36:26 +02:00
Timm Bäder
b9473bc99c
glarea: Fix buffer initialization
...
This only worked when the vao id and the buffer id accidentally matched,
for example when running gtk4-demo with --run=glarea
Fixes #2042
2019-09-09 17:36:25 +02:00
Timm Bäder
d223752c55
infobar: Inherit from GtkContainer
...
infobars being a GtkBox doesn't make sense.
Also implement infobars without exposing internal children.
Closes #1957 because it adds the bottom border.
2019-09-09 17:36:25 +02:00
Timm Bäder
e62f10d5f0
widget-factory: Add a spinbutton in a list
2019-09-09 17:36:23 +02:00
Timm Bäder
4cc4868e93
label: Remove "line" from wrap properties
...
The property names are "wrap" and "wrap-mode", so it doesn't make sense
that the accessors refer to line_wrap and line_wrap_mode.
2019-09-09 17:36:23 +02:00
Matthias Clasen
bc8d2add04
widget-factory: Add more submenus
...
Split the "Checks & Radios" submenu in the menubar
into two, so we can test opening multiple submenus.
2019-09-08 19:02:06 -04:00
nana-4
3eec90cdc0
node editor: Avoid inheriting textview styles
...
...to its descendant selectors
Without ">", "text" style is propagated to entry in the emoji chooser.
https://gitlab.gnome.org/GNOME/gtk/issues/2061
2019-09-03 01:44:55 +09:00
Дилян Палаузов
6ded38de2b
Minor typos in the Documentation (a/an)
2019-08-25 12:52:46 +00:00
Timm Bäder
ee27587428
scale: Add a destroy notify to set_format_value_func
...
Closes #2098
2019-08-15 17:21:47 +02:00
Timm Bäder
ea5fc348fa
scale: Replace format-value signal
...
There is no reason for this to be a signal, since multiple handlers
don't make sense anyway. It was also broken because the scale needs to
know when a signal handler is added so it can update the value
representation.
Replace the signal with a set_format_value_func function which allows us
to do that.
Fixes #113
2019-08-09 14:30:01 +02:00
Timm Bäder
20d7b7f59b
widget factory: add a tooltip to a button in a popover
2019-07-30 07:05:45 +02:00
Matthias Clasen
8b1f3936b6
font rendering demo: Make boxes optional
2019-07-26 00:31:07 -04:00
Matthias Clasen
108ea50179
font rendering demo: Show unrounded extents
...
This makes more sense.
2019-07-25 23:35:09 -04:00
Matthias Clasen
df1892c052
font rendering: Show ink rect too
2019-07-25 22:06:34 -04:00
Matthias Clasen
0820a79bf5
Improve the font rendering demo
...
Show the pixel grid, extents, and baseline.
2019-07-25 19:07:12 -04:00
Matthias Clasen
dec4db5943
Add a font rendering demo
...
This renders a magnified version of the text,
to make the effect of various font rendering options
more visible.
It also shows the phases of subpixel rendering,
if you have a recent pango and cairo.
2019-07-25 16:43:22 -04:00
Matthias Clasen
dea309144b
gtk-demo: Fix a crash
2019-07-25 13:51:34 -04:00
Timm Bäder
1866aa93e3
fishbowl: Plug a small leak
2019-07-13 10:10:17 +02:00
Timm Bäder
0f3ca349e7
node editor: Manually unrealize all created renderers
...
This has not been a problem before since we were leaking them.
2019-07-13 09:37:47 +02:00
Matthias Clasen
bda3c6c084
Merge branch 'wip/baedert/for-master' into 'master'
...
Improve the valgrind experience
See merge request GNOME/gtk!984
2019-07-09 19:39:13 +00:00
Chun-wei Fan
a20fd5e14e
demos/constraint-editor: Fix linking on MSVC builds
...
We must apply the /entry:mainCRTStartup linker flag in order to link GTK
apps in pure GUI form. This follows what is done in demos/gtk-demo,
etc.
2019-07-08 18:37:27 +08:00
Timm Bäder
1459ca2c26
widget factory: Plug a memory leak
2019-07-07 07:24:00 +02:00
Matthias Clasen
aa8687316f
constraint editor: Implement loading
...
Allow to reread the ui builder files we write out.
Just barely.
2019-07-02 10:03:48 -04:00
Matthias Clasen
5a3cf5a194
constraints editor: Stop naming constraints
...
We don't have a field for the name in ui files,
so stop naming constraints.
2019-07-02 10:03:48 -04:00
Matthias Clasen
c5e1b00994
constraint editor: Implement saving
...
Save to a ui file.
2019-07-02 10:03:48 -04:00
Matthias Clasen
377f0c1a0a
constraint editor: Use name properties
2019-07-02 10:03:48 -04:00
Matthias Clasen
a442e6e8de
constraint editor: Use the list models
...
Instead of handrolling our own list models,
use the ones provided by GtkConstraintLayout.
2019-07-02 10:03:48 -04:00
Matthias Clasen
b2f15a622d
Merge branch 'wip/ebassi/constraint-layout' into 'master'
...
Add constraint-based layout manager
Closes #1090
See merge request GNOME/gtk!973
2019-07-02 14:01:01 +00:00
Daniel Boles
33bd7051f2
widget-factory: Use correct StyleProvider priority
...
We are an application, not a user.
cherry-pick of !974
2019-07-02 09:09:47 +01:00
Matthias Clasen
48e6cd4255
constraint editor: Allow dragging children
...
We add a weak constraint for the position
and update it as the widget is dragged.
2019-07-01 04:24:26 +00:00
Matthias Clasen
670fc5bb94
constraint editor: Enable max size for guide
...
Also, use the apis we have now, and make the
spin buttons display 'unset' values as such.
2019-07-01 02:23:39 +00:00
Matthias Clasen
514de0b91a
Add a constraint editor demo
...
This is an initial cut at providing a tool
for interactive exploration of constraints.
2019-07-01 00:10:11 +01:00
Matthias Clasen
a9dfca04e4
constraint guide: Make strength tweakable
...
The strength for the natural width can be used
as a tie-breaker to make instable systems behave
in a more predictable way. This can be seen
in the simple constraints demo in gtk-demo.
2019-07-01 00:10:11 +01:00
Matthias Clasen
71b52f485e
constraints demo: Update comments
2019-07-01 00:10:11 +01:00
Matthias Clasen
5a019bfccd
constraints demo: Give space a name
...
Lets call it 'space'.
2019-07-01 00:10:11 +01:00
Matthias Clasen
47237d32eb
demo: Use constraint guide api
...
Use proper api to create and set up
the guide, and also try max-width.
2019-07-01 00:10:11 +01:00
Emmanuele Bassi
06c825df90
Add a C convenience function for VFL constraints
...
The dictionary-based function is convenient for language bindings, but C
developers will feel more at home with a variadic arguments list.
2019-06-30 23:42:45 +01:00
Emmanuele Bassi
46430ea85b
Add Constraints/VFL demo
...
Shows how to describe constraints using VFL instead of constructing
objects manually.
2019-06-30 23:42:45 +01:00
Matthias Clasen
ba2125d8e1
Add an interactive constraints demo
2019-06-30 23:42:44 +01:00
Matthias Clasen
7c96326c18
Make the constraints demo more interesting
...
Add a max size to the buttons, to force the
space to open up.
2019-06-30 23:42:44 +01:00
Matthias Clasen
38d353dc1a
Add GtkConstraintGuide
...
This is meant to be a flexible space.
2019-06-30 23:42:44 +01:00
Emmanuele Bassi
636fbc0f1a
Add GtkConstraintLayout demo
2019-06-30 23:42:44 +01:00
Matthias Clasen
fcf92eb6e7
widget-factory: Redo the context menu example
...
Redo the context menu on the page1 text view in
terms of actions.
2019-06-13 11:59:51 +00:00
Matthias Clasen
441a9dfa80
gtk-demo: Rewrite the search entry demo
...
Port this from ::populate-popup to the new context
menu api. At the same time, fix some parts of the demo
that were broken since it was changed to use GtkStearchEntry.
2019-06-13 11:59:50 +00:00
Matthias Clasen
17ec958f30
Rename GtkPopoverBar to GtkPopoverMenuBar
...
Clarity over beauty.
2019-06-09 17:42:07 +00:00
Matthias Clasen
f1eb0724bd
widget-factory: Move the popover bar to the ui file
2019-06-09 17:38:54 +00:00
Matthias Clasen
3d56a89506
widget-factory: Don't use Return as accel
...
This is a bad idea, as it interacts badly with
general use of Return for activation.
2019-06-09 17:38:54 +00:00
Matthias Clasen
d48a8fddab
widget factory: Add mnemonics in popovers
...
These don't work!
2019-06-09 17:38:54 +00:00
Matthias Clasen
4d191aa0b5
widget factory: Redo the menubar with a model
...
No UI change intended, except for the fact that
actions don't do inconsistent states for checks
and radios.
2019-06-09 17:38:54 +00:00
Matthias Clasen
609f1659bd
Rationalize popover menu apis
...
Make gtk_popover_new_from_model() return a GtkPopoverMenu,
rename it to gtk_popover_menu_new_from_model() and add
a relative_to argument to gtk_popover_menu_new().
Update all callers.
2019-06-09 17:38:54 +00:00
Matthias Clasen
0755491b77
widget factory: Add a context menu example
...
This is also taken from
https://gitlab.gnome.org/Teams/Design/os-mockups/blob/master/menus/menu-design-patterns.png
2019-06-09 17:38:53 +00:00
Matthias Clasen
06470c2378
widget factory: Improve manual popover menu example
...
Set up the size group, so things line up.
2019-06-09 17:38:53 +00:00
Matthias Clasen
84243d0f55
widget-factory: Redo the new-style menu
...
Do this from a menu model first, since that
is easier to get right.
2019-06-09 17:38:53 +00:00
Matthias Clasen
b4aac42605
widget-factory: Add another popover menu example
...
This one is taken from
https://gitlab.gnome.org/GNOME/gtk/issues/1824
2019-06-09 17:38:53 +00:00
Matthias Clasen
1a93ab053c
Add a theme loading benchmark
2019-06-05 04:20:31 +00:00
Benjamin Otte
098f182d8f
widget-factory: Show proper separators
2019-06-04 06:11:44 +02:00
Benjamin Otte
6b1cfd0bca
gtk-demo: Fix sliding puzzle demo
...
1. Menubuttons aren't buttons
2. For paintables without aspect ratios, use 1.0
2019-05-31 05:36:44 +02:00
Matthias Clasen
d691393f5f
Merge branch 'wip/baedert/nodeeditor-fuckery' into 'master'
...
node editor: Add a quick way to save a testcase
See merge request GNOME/gtk!880
2019-05-30 03:28:41 +00:00
Matthias Clasen
90f330e27a
Merge branch 'gesture-click' into 'master'
...
Rename GtkGestureMultiPress to GtkGestureClick
See merge request GNOME/gtk!878
2019-05-29 18:39:09 +00:00
Timm Bäder
3874f37395
node editor: Add a quick way to save a testcase
2019-05-29 20:30:21 +02:00
Matthias Clasen
4f9c1bf14e
gtk-demo: Stop using gtk_window_set_position
...
This api is going away.
2019-05-29 18:04:08 +00:00
Matthias Clasen
7f65e5f96b
Rename GtkGestureMultiPress to GtkGestureClick
...
The name just made it hard for people to find the
right gesture to use.
2019-05-29 17:10:46 +00:00
Matthias Clasen
37f8df2722
fishbowl: Don't pop up popovers too early
...
Wayland does not like this.
2019-05-28 20:25:17 +00:00
Matthias Clasen
7447abb52b
Stop using gtk_widget_get_toplevel
...
All uses of it can be replaced by gtk_widget_get_root.
2019-05-28 20:25:16 +00:00
Matthias Clasen
948347afa9
Stop using gtk_widget_is_toplevel
2019-05-28 20:25:16 +00:00
Matthias Clasen
302d2a04ae
Stop using gtk_widget_get_surface
...
Replace all uses of gtk_widget_get_surface by
gtk_native_get_surface.
2019-05-28 20:25:16 +00:00
Matthias Clasen
25aef96d5d
popover: Rename modal to autohide
...
This is the term we use for the surface,
and it matches the behavior a bit better
than modal.
Update all callers.
2019-05-28 20:25:15 +00:00
Matthias Clasen
18788c2a86
Remove gtk_widget_get/set_has_surface
...
These serve no purpose anymore - widgets don't
have surfaces, unless they're a GtkNative.
2019-05-28 20:25:15 +00:00
Matthias Clasen
c1d5e82d95
Use GtkNative APIs instead of GtkRoot
2019-05-28 20:24:39 +00:00
Matthias Clasen
e95e39cbd3
widget-factory: Add some animation in a popover
2019-05-24 07:44:21 -04:00
Matthias Clasen
63f6aca1cf
fishbowl: Add a menubutton demo
...
This reveals some issues with the position tracking.
2019-05-24 00:31:07 +00:00
Matthias Clasen
018795127e
fishbowl: Fix the lock button
2019-05-24 00:13:03 +00:00
Matthias Clasen
e2fc00222e
fishbowl: Don't show ridiculous precision
...
Two decimals are more than enough for the frame rate.
2019-05-23 12:38:57 +00:00
Matthias Clasen
d0137ef627
gtk-demo: Reinstate flat menu buttons
2019-05-21 19:05:41 -04:00
Matthias Clasen
4594d82b14
widget-factory: Reinstate flat menu buttons
2019-05-21 19:05:41 -04:00
Matthias Clasen
fc2dc82b70
gtk-demo: Fix menubutton usage in listbox demo
...
Menu buttons are no longer buttons, so they
can't have children, and don't have a relief
property.
2019-05-21 00:04:24 +00:00
Matthias Clasen
3030e887a4
widget-factory: menu buttons can't have children
...
GtkMenuButton is no longer a container, so we
can't pack children in it.
2019-05-19 04:15:49 +00:00
Matthias Clasen
5368f98dd5
demos: Stop using gtk_button_clicked
2019-05-18 14:33:41 -04:00
Matthias Clasen
9d16715eb3
Merge branch 'menubutton-no-button' into 'master'
...
Menubutton: don't derive from GtkButton
See merge request GNOME/gtk!853
2019-05-18 13:13:48 +00:00
Matthias Clasen
0eb7784785
Update all users for menubutton changes
2019-05-18 13:06:32 +00:00
Timm Bäder
8e9ac826a1
widget-factory: Add icon-dropshadow class to large icon
...
Looks stupid without the shadow.
2019-05-18 13:47:59 +02:00
Benjamin Otte
4bccd17941
node-editor: Report all errors in tooltip
...
Don't just report the first one.
2019-05-12 17:27:01 +02:00
Benjamin Otte
0049b39375
node-editor: Don't remove all text tags when saving
2019-05-12 17:27:01 +02:00
Benjamin Otte
9117ee83eb
node-editor: Never scale nodes up
...
Scaling down is fine so one can see the nodes, but scaling up just
makes the nodes wrong for no reason at all.
2019-05-08 19:47:40 +02:00
Timm Bäder
b3c4320bc2
node editor: Do some simple syntax highlighting
2019-05-07 17:21:16 +02:00
Timm Bäder
759a97403c
Some node editor improvements
2019-05-06 17:34:48 +02:00
Benjamin Otte
00b947124f
node-editor: Add renderings with alternative renderers
...
That's pretty rough around the edges, but it mostly works.
Apart from sizing, screw listbox sizing.
2019-05-05 07:18:39 +02:00
Benjamin Otte
008b7bc94f
Add gtk4-node-editor
...
It's meant to be a little editor for render nodes so we can do testing
with it.
2019-05-05 07:18:39 +02:00
Matthias Clasen
0d2a7f876b
gtk-demo: Make the expander demo behave again
...
Changes to the dialog hierarchy have affected
this demo, that admittedly pokes at message
dialog internals. Do that some more, to fix
things up.
2019-05-01 21:12:36 +00:00
Matthias Clasen
92e21c3f1c
Drop the can-default property
...
It was added at a time when default buttons
had a very large external border that would disrupt
aligment. Not a problem nowadays.
2019-04-28 23:28:39 +00:00
Matthias Clasen
fe3796ed5b
widget-factory: Stop setting has-default in ui files
...
We can just set the default-widget property. The
special handling for has-default in ui files is
going away.
2019-04-28 23:21:51 +00:00
Matthias Clasen
89f7b974f2
Stop using gtk_widget_grab_default
...
Replace gtk_widget_grab_default by gtk_window_set_default_widget.
2019-04-28 23:21:51 +00:00
Matthias Clasen
65052a5d6c
Rename gtk_window_set_default
...
Call it gtk_window_set_default_widget, to match
the getter, and the property name. Update all
callers.
2019-04-28 23:20:13 +00:00
Matthias Clasen
aab803b7ae
widget-factory: Make a resizing popover
...
Add an expander to a popover to test how
changing sizes works with popovers.
2019-04-27 18:00:22 +00:00
Matthias Clasen
e1200230c4
widget-factory: Add some nested popovers
...
These are mainly for stress-testing our
popover implementations.
2019-04-27 17:50:22 +00:00
Matthias Clasen
d3ad816d63
widget-factory: Add non-modal popovers
...
This makes is easy to test moving the toplevel
or repositioning the parent while the popover
is shown.
2019-04-27 17:50:14 +00:00
Matthias Clasen
bc8ecef605
Merge branch 'icon-browser-tweaks' into 'master'
...
Icon browser tweaks
See merge request GNOME/gtk!754
2019-04-17 01:19:13 +00:00
Matthias Clasen
e2d821fa59
icon-browser: Left-align the sidebar
...
The centered labels just look disorderly.
2019-04-16 21:00:47 -04:00
Matthias Clasen
8d001e3573
icon-browser: Recover from GtkDialog api change
...
When we moved content_area to a sibling of action area,
it changed orientation from vertical to horizontal.
Adapt to this change.
2019-04-16 20:59:57 -04:00
Matthias Clasen
f6afa3d03f
gtk-demo: Add a gear menu
...
Modernize the about dialog, and make it available
from a gear menu, together with a way to bring up
the inspector.
2019-04-16 20:34:59 -04:00
Matthias Clasen
f4e32f29e1
widget-factory: Update copyright line
...
Update the years to 2019, and use some better typography.
2019-04-16 18:09:46 -04:00
Matthias Clasen
226e0eadf0
widget-factory: Add an Inspector menu item
...
Just because we can.
2019-04-16 18:06:12 -04:00
Benjamin Otte
44ce36bef5
menubar: Remove pack direction
2019-04-15 14:38:23 +02:00
Emmanuele Bassi
f39ae35e4b
demo: Ignore deprecated HarfBuzz API
...
We should avoid warnings just because we're building against bleeding
edge HarfBuzz.
2019-04-13 14:30:09 +01:00
Benjamin Otte
a8f712b09a
cssection: Return locations, not numbers
...
Now that we have GtkCssLocation, actually use it.
2019-04-12 19:34:28 +02:00
Benjamin Otte
a938c14d11
build: Add gtk-css static library
...
This library is meant to be the new CSS library that gets used from GDK,
GSK and GTK for string printing and parsing.
As a first step, move GtkCssProviderError into it.
While doing so, split it into GtkCssParserError (for critical problems)
and GtkCssParserWarning (for non-critical problems).
2019-04-12 19:34:28 +02:00
Matthias Clasen
ef982b7d46
Rename things
...
Rename the can-pick property to can-target,
and redo the pick flags with more descriptive names.
2019-04-08 08:42:25 -04:00
Matthias Clasen
b804235aea
Add a flags argument to gtk_widget_pick
...
This will be used to let the inspector and other users
pick insensitive widgets again. For now, update all
callers to pass no flags, preserving the current
behavior.
2019-04-07 17:19:09 +00:00
Matthias Clasen
7f6213291d
gtk-demo: Stop using child properties
2019-04-05 12:01:43 +00:00
Matthias Clasen
69d4081ff8
Merge branch 'wip/ebassi/grid-layout' into 'master'
...
Implement GtkGridLayout
See merge request GNOME/gtk!714
2019-04-05 02:42:55 +00:00
Emmanuele Bassi
31b65e6721
demos: Update GtkGrid definitions in UI files
2019-04-05 00:12:26 +01:00
Carlos Garnacho
edccf89020
icon-browser: Drop usage of gtk_search_bar_handle_event()
...
Make it capture key events from the toplevel.
2019-04-03 13:23:34 +02:00
Matthias Clasen
e720006110
gtk-demo: Don't expand tabs
...
It is a little irritating to see super-wide
tabs in demos which have just one extra file,
such as "Fixed layout".
2019-04-02 21:32:14 +00:00
Emmanuele Bassi
c70c677b5a
Add GtkFixed demo
...
This demo has everything:
- a GtkFixed inside another GtkFixed
- a cube made out of GtkFrame widgets
- an example of 3D transformations
And what's there, in the window once I launch it? The GTK logo made of
widgets.
2019-04-02 20:52:49 +01:00
Matthias Clasen
998c1f83a6
icon-browser: Rename to org.gtk.IconBrowser4
2019-04-02 00:27:33 +00:00
Matthias Clasen
41bb875221
widget-factory: Rename to org.gtk.WidgetFactory4
2019-04-02 00:27:33 +00:00
Matthias Clasen
365400c13e
gtk-demo: Rename to org.gtk.Demo4
2019-04-02 00:27:32 +00:00
Matthias Clasen
19d9d69343
icon-browser: Fix name alignment
...
The icon names were left-aligned, not centered
under the icon.
Closes: https://gitlab.gnome.org/GNOME/gtk/issues/18
2019-04-01 00:27:58 -04:00
Benjamin Otte
9d0a42dc14
stack: Add a cube spin transition
...
Add a transition to GtkStack that pretends pages
are the sides or a cube, and switch them by
rotating the cube.
Use this transition in widget-factory.
2019-03-29 10:03:18 -04:00
Emmanuele Bassi
3d6a456c85
Add release info to our demo apps
...
The appstream-util check performed by Flatpak on recent GNOME SDKs has
become more stringent, and now it requires a <release> tag in the
AppData XML file. If we don't have it, the Flatpak bundles of gtk-demo
and gtk-widget-factory will fail on our CI infrastructure.
2019-03-28 12:16:53 +00:00
Matthias Clasen
6b050a277e
Convert ui files
...
Run gtk4-builder-tool simplify --3to4 over all ui files.
2019-03-27 20:03:59 -04:00
Matthias Clasen
e5722367b3
Merge branch 'fixed-layout' into 'master'
...
Add GtkFixedLayout
See merge request GNOME/gtk!668
2019-03-27 18:51:04 +00:00
Matthias Clasen
7ac250dea7
Convert all ui files
...
Run gtk4-builder-tool simplify --3to4 over all ui files.
2019-03-27 13:36:24 -04:00
Emmanuele Bassi
dd5c981b63
Use GtkFixedLayout in GtkFixed
...
Drop the child properties and the sizing code.
2019-03-26 18:15:13 +00:00
Matthias Clasen
34e859a5bc
Add a tagged entry demo
...
This can serve as an example for how composite entries
can now be done outside of GTK, easily.
2019-03-15 13:21:26 -04:00
Matthias Clasen
5822a35087
gtk-demo: Show password peek icon
2019-03-14 20:43:15 -04:00
Matthias Clasen
f5e112fd2d
gtk-demo: Add a password entry demo
2019-03-14 18:55:51 -04:00
Benjamin Otte
ad5c5d477e
revealer: Add swing transitions
...
And make the revealer on page 2 of the widget-factory use one.
2019-03-07 15:06:12 +01:00