The GtkScrolledWindow
widget is an old friend of Gtk+ application developers; its purpose is to allow big widgets to fit into small spaces through the use of scroll bars.
Since Gtk+ 3.0, GtkScrolledWindow has the ability to set the minimum content sizes (both width and height) through the GtkScrolledWindow:min-content-width
and GtkScrolledWindow:min-content-height
properties, and their related functions.
Starting from the next stable release, Gtk+ will also provide the maximum size counterparts of those properties.
What Do They Do?
The minimum sizes properties, as the name implies, define the minimum size, be it width or height, that the scrollable area will have – even if its child does not completely fill the available space.
The maximum content sizes, on the other hand, define how much the scrollable area is allowed to grow before its contents will starts scrolling.
Lets see it in action:
Where & How to Use Them
You want to use the new properties whenever you want to limit the size of the scrollable area. For example, GtkPopover always shrinks its children widgets to their minimum sizes. The following section exemplifies how to make the content grow to at most 300px, both width and height wise:
<template> <object class="GtkPopover"> <child> <object class="GtkScrolledWindow"> <property name="visible">True</property> <property name="max-content-width">300</property> <property name="max-content-height">300</property> </object> </child> </object> </template>
Alternatively, you can call gtk_scrolled_window_set_max_content_width()
and gtk_scrolled_window_set_max_content_height()
if you want to achieve the same thing programmatically.