Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
scroll_wrap.h File Reference
#include <gtk/gtk.h>
+ Include dependency graph for scroll_wrap.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  dt_gui_widget_auto_height_t
 

Typedefs

typedef enum dt_ui_resize_mode_t dt_ui_resize_mode_t
 
typedef struct dt_gui_widget_auto_height_t dt_gui_widget_auto_height_t
 

Enumerations

enum  {
  TREE_LIST_MIN_ROWS = 3 ,
  TREE_LIST_MAX_ROWS = 11
}
 
enum  dt_ui_resize_mode_t {
  DT_UI_RESIZE_DYNAMIC = 0 ,
  DT_UI_RESIZE_STATIC
}
 

Functions

GtkWidgetdt_ui_scroll_wrap (GtkWidget *w, gint min_size, char *config_str, dt_ui_resize_mode_t mode)
 Wrap a scrollable widget in a recessed, vertically resizable scrolled window with a drag handle.
 
GtkWidgetdt_ui_scroll_wrap_get_scrolled_window (GtkWidget *wrapper)
 Return the inner GtkScrolledWindow of a dt_ui_scroll_wrap() wrapper, or NULL.
 
GtkWidgetdt_ui_resizable_drawing_area (GtkWidget *area, char *config_str, int default_height, int min_height)
 Make a self-drawing widget (typically a GtkDrawingArea graph or scope) vertically resizable.
 

Typedef Documentation

◆ dt_gui_widget_auto_height_t

◆ dt_ui_resize_mode_t

Enumeration Type Documentation

◆ anonymous enum

Enumerator
TREE_LIST_MIN_ROWS 
TREE_LIST_MAX_ROWS 

Definition at line 32 of file scroll_wrap.h.

◆ dt_ui_resize_mode_t

Enumerator
DT_UI_RESIZE_DYNAMIC 
DT_UI_RESIZE_STATIC 

Definition at line 38 of file scroll_wrap.h.

Function Documentation

◆ dt_ui_resizable_drawing_area()

GtkWidget * dt_ui_resizable_drawing_area ( GtkWidget area,
char *  config_str,
int  default_height,
int  min_height 
)

Make a self-drawing widget (typically a GtkDrawingArea graph or scope) vertically resizable.

The widget is given a fixed height-request (persisted under config_str) and a drag grip floating on its bottom edge – the same grip used by panels, scroll wrappers and the histogram scope. The content is not scrolled: it keeps drawing to its live allocation, only the height-request changes. Returns a wrapper overlay to pack in place of area.

Parameters
areathe drawing widget (its callbacks/refs stay valid; pack the returned overlay).
config_strconf key persisting the user-chosen height (copied internally).
default_heightdefault height in device-independent px (rescaled by DT_PIXEL_APPLY_DPI).
min_heightminimum height floor in device-independent px.

Definition at line 573 of file scroll_wrap.c.

References _resizable_area_free(), _resizable_area_get_size(), _resizable_area_resize(), _resizable_scroll_max_height(), DT_PIXEL_APPLY_DPI, DT_UI_RESIZABLE_AREA_KEY, dt_widget_stored_int(), dtgtk_resize_handle_new(), FALSE, height, L, MAX, and state.

Referenced by gui_init(), gui_init(), and gui_init().

◆ dt_ui_scroll_wrap()

GtkWidget * dt_ui_scroll_wrap ( GtkWidget w,
gint  min_size,
char *  config_str,
dt_ui_resize_mode_t  mode 
)

Wrap a scrollable widget in a recessed, vertically resizable scrolled window with a drag handle.

Compatible with GtkTreeView, GtkTextView and any other content widget. A drag grip floats on the scrolled window's bottom edge (invisible until hovered); the chosen height is persisted under config_str. Returns the wrapper overlay, not the scrolled window.

Parameters
wcontent widget.
min_sizeminimum height floor, in device-independent pixels (rescaled by DT_PIXEL_APPLY_DPI). In DT_UI_RESIZE_STATIC mode it also serves as the default height before the user drags.
config_strconf key persisting the user-chosen height (copied internally).
modeDT_UI_RESIZE_DYNAMIC to auto-fit content, or DT_UI_RESIZE_STATIC to keep a fixed height regardless of content (avoids layout shifts for hover-/selection-driven widgets).

Wrap a scrollable widget in a recessed, vertically resizable scrolled window with a drag handle.

Returns an overlay wrapping the scrolled window, with a themed drag grip floating on its bottom edge (the same grip primitive used by panels and the histogram scope). The grip takes no layout space and is invisible until hovered. Sizing follows mode: DT_UI_RESIZE_DYNAMIC auto-fits the content up to the user height, DT_UI_RESIZE_STATIC keeps a fixed height (see _resizable_scroll_apply).

The returned widget is the wrapper overlay, not the scrolled window; callers needing the inner scrolled window (e.g. to tweak its scroll policy) must use dt_ui_scroll_wrap_get_scrolled_window().

Parameters
wcontent widget (treeview, textview or any container)
min_sizeminimum height floor in device pixels (also the static default before the user drags)
config_strconf key persisting the user-chosen height (copied internally)
modeDT_UI_RESIZE_DYNAMIC (auto-fit) or DT_UI_RESIZE_STATIC (fixed height)

Definition at line 465 of file scroll_wrap.c.

References _resizable_scroll_draw(), _resizable_scroll_handle_get_size(), _resizable_scroll_handle_resize(), _resizable_scroll_realize(), _widget_auto_connect_buffer(), _widget_auto_connect_model(), _widget_auto_height_free(), _widget_auto_on_buffer_changed(), _widget_auto_on_model_changed(), _widget_auto_update(), dt_gui_add_class(), DT_GUI_WIDGET_AUTO_HEIGHT_KEY, DT_PIXEL_APPLY_DPI, DT_UI_RESIZE_DYNAMIC, dtgtk_resize_handle_new(), FALSE, L, MAX, and state.

Referenced by dt_iop_gui_init_masks(), and gui_init().

◆ dt_ui_scroll_wrap_get_scrolled_window()

GtkWidget * dt_ui_scroll_wrap_get_scrolled_window ( GtkWidget wrapper)

Return the inner GtkScrolledWindow of a dt_ui_scroll_wrap() wrapper, or NULL.

Return the inner GtkScrolledWindow of a dt_ui_scroll_wrap() wrapper, or NULL.

Definition at line 527 of file scroll_wrap.c.

References L.

Referenced by gui_init().