Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
supervisor_window.c File Reference
#include "gui/actions/supervisor_window.h"
#include "caches/image_cache.h"
#include "caches/mipmap_cache.h"
#include "common/opencl.h"
#include "caches/pixelpipe_cache.h"
#include "common/conf.h"
#include "develop/supervisor.h"
#include "gui/application.h"
#include "system/sys_resources.h"
#include "widgets/scroll_wrap.h"
#include "widgets/widget_style.h"
#include <gtk/gtk.h>
#include <json-glib/json-glib.h>
+ Include dependency graph for supervisor_window.c:

Go to the source code of this file.

Data Structures

struct  _group_t
 
struct  _bar_segment_t
 
struct  _bar_t
 

Macros

#define TIMELINE_MAX_ROWS   4000
 
#define TIMELINE_TRIM_SLACK   (TIMELINE_MAX_ROWS / 4)
 
#define POLL_INTERVAL_MS   300
 
#define MEMORY_MAX_ROWS   500
 
#define MEMORY_REFRESH_TICKS   4
 
#define MEMORY_LIST_ROWS   20
 
#define BAR_SEGMENTS   4
 
#define BAR_SEGMENT_GAP   2.0
 
#define COLOR_PIPELINE   "#3987e5"
 
#define COLOR_ALLOCATIONS   "#d95926"
 
#define COLOR_MIPMAP   "#199e70"
 
#define SUPERVISOR_CONF_PAGE   "ui/supervisor/page"
 
#define SUPERVISOR_CONF_GROUP_BY   "ui/supervisor/group_by"
 
#define SUPERVISOR_CONF_RECORD   "ui/supervisor/record"
 
#define SUPERVISOR_CONF_X   "ui/supervisor/window_x"
 
#define SUPERVISOR_CONF_Y   "ui/supervisor/window_y"
 
#define SUPERVISOR_CONF_WIDTH   "ui/supervisor/window_width"
 
#define SUPERVISOR_CONF_HEIGHT   "ui/supervisor/window_height"
 

Typedefs

typedef struct _group_t _group_t
 
typedef struct _bar_segment_t _bar_segment_t
 
typedef struct _bar_t _bar_t
 

Functions

static void _group_free (gpointer p)
 
static gchar * _hashhex (const uint64_t h)
 
static const char * _domain_color (const char *d)
 
static gchar * _pretty_json (const char *compact)
 
static void _run_search (const char *query)
 
static void _scroll_row_into_view (GtkWidget *row)
 
static gboolean _scroll_target_idle (gpointer u)
 
static gboolean _on_link (GtkLabel *label, gchar *uri, gpointer user_data)
 
static void _on_search_this_hash (GtkMenuItem *item, gpointer u)
 
static gboolean _on_label_button (GtkWidget *label, GdkEventButton *e, gpointer u)
 
static void _wire_hash_label (GtkWidget *label)
 
static GtkWidget * _event_body_from (const char *json, GArray *links)
 
static void _on_toggle (GtkToggleButton *t, gpointer u)
 
static GtkWidget * _collapsible (const char *header_markup, GtkWidget *body, const gboolean expanded)
 
static gchar * _header_markup (const dt_sv_logged_event_t *ev)
 
static void _links_free (gpointer p)
 
static GtkWidget * _event_widget (const dt_sv_logged_event_t *ev)
 
static void _timeline_append (const dt_sv_logged_event_t *ev)
 
static void _timeline_trim (const guint incoming)
 
static void _clear_list (GtkWidget *list)
 
static void _update_count (void)
 
static const char * _group_key (const dt_sv_logged_event_t *ev, const char *by)
 
static void _group_set_header (_group_t *g)
 
static void _grouped_append (const dt_sv_logged_event_t *ev, const char *by)
 
static void _grouped_catch_up (void)
 
static void _rebuild_grouped_now (void)
 
static void _add_mem_item (GtkWidget *box, const char *markup, const char *trailing, const gboolean evictable)
 
static gchar * _age_text (const int64_t us)
 
static gint _cmp_ram_size (gconstpointer a, gconstpointer b)
 
static gint _cmp_mip_size (gconstpointer a, gconstpointer b)
 
static gint _cmp_image_imgid (gconstpointer a, gconstpointer b)
 
static size_t _bar_segment_size (const _bar_segment_t *seg)
 
static size_t _bar_used (const _bar_t *bar)
 
static size_t _bar_held (const _bar_t *bar)
 
static size_t _bar_free (const _bar_t *bar)
 
static void _bar_segment_span (const _bar_t *bar, const double width, const int k, double *x0, double *x1)
 
static gboolean _bar_draw (GtkWidget *widget, cairo_t *cr, gpointer user_data)
 
static gchar * _bar_segment_text (const _bar_segment_t *seg)
 
static gboolean _bar_tooltip (GtkWidget *widget, gint x, gint y, gboolean keyboard, GtkTooltip *tooltip, gpointer user_data)
 
static GtkWidget * _bar_legend_block (const _bar_segment_t *seg, const char *swatch)
 
static void _add_bar (GtkWidget *box, const _bar_t *bar)
 
static void _rebuild_memory (void)
 
static gboolean _rebuild_memory_idle (gpointer user_data)
 
static gchar * _mem_conf_key (const char *section, const char *setting)
 
static void _on_mem_section_expanded (GObject *expander, GParamSpec *pspec, gpointer user_data)
 
static GtkWidget * _add_mem_section (GtkWidget *parent, const char *key, const char *title, const _bar_t *bar)
 
static GtkWidget * _mem_list (GtkWidget *body, const char *section)
 
static gint _cmp_device_size (gconstpointer a, gconstpointer b, gpointer data)
 
static void _add_device_section (GArray *pe, const int devid)
 
static gboolean _hex_contains (const uint64_t h, const char *needle)
 
static gboolean _event_matches (const dt_sv_logged_event_t *ev, const char *hash_needle, const char *text_needle)
 
static void _on_search_changed (GtkSearchEntry *e, gpointer u)
 
static gboolean _scroll_bottom_idle (gpointer u)
 
static gboolean _pointer_button_down (void)
 
static gboolean _poll (gpointer u)
 
static void _full_reload (void)
 
static void _on_refresh (GtkButton *b, gpointer u)
 
static void _on_clear (GtkButton *b, gpointer u)
 
static const char * _page_name (const int page)
 
static int _page_from_name (const char *name)
 
static void _on_groupby_changed (GtkComboBox *c, gpointer u)
 
static void _on_record_toggled (GtkToggleButton *t, gpointer u)
 
static void _on_page_changed (GtkNotebook *nb, GtkWidget *page, guint page_num, gpointer u)
 
static gboolean _window_position_is_usable (GtkWidget *window)
 
static gboolean _on_configure (GtkWidget *window, GdkEventConfigure *event, gpointer user_data)
 
static void _restore_geometry (GtkWidget *window)
 
static void _on_destroy (GtkWidget *w, gpointer u)
 
void dt_gui_supervisor_window_show (void)
 

Variables

struct { 
 
   GtkWidget *   window 
 
   GtkWidget *   notebook 
 
   GtkWidget *   timeline_list 
 
   GtkWidget *   timeline_scroll 
 
   GtkWidget *   grouped_list 
 
   GtkWidget *   mem_box 
 
   GHashTable *   mem_lists 
 
   GtkWidget *   search_entry 
 
   GtkWidget *   search_list 
 
   GtkWidget *   count_label 
 
   GtkWidget *   groupby 
 
   GHashTable *   decl_map 
 
   GHashTable *   group_map 
 
   uint64_t   last_seq 
 
   uint64_t   grouped_last_seq 
 
   gchar *   scroll_target 
 
   guint   timer_id 
 
   guint   tick 
 
   int   page_timeline 
 
   int   page_grouped 
 
   int   page_memory 
 
   int   page_search 
 
} _g = { 0 } 
 

Macro Definition Documentation

◆ BAR_SEGMENT_GAP

#define BAR_SEGMENT_GAP   2.0

Definition at line 559 of file supervisor_window.c.

◆ BAR_SEGMENTS

#define BAR_SEGMENTS   4

Definition at line 558 of file supervisor_window.c.

◆ COLOR_ALLOCATIONS

#define COLOR_ALLOCATIONS   "#d95926"

Definition at line 561 of file supervisor_window.c.

◆ COLOR_MIPMAP

#define COLOR_MIPMAP   "#199e70"

Definition at line 562 of file supervisor_window.c.

◆ COLOR_PIPELINE

#define COLOR_PIPELINE   "#3987e5"

Definition at line 560 of file supervisor_window.c.

◆ MEMORY_LIST_ROWS

#define MEMORY_LIST_ROWS   20

Definition at line 49 of file supervisor_window.c.

◆ MEMORY_MAX_ROWS

#define MEMORY_MAX_ROWS   500

Definition at line 47 of file supervisor_window.c.

◆ MEMORY_REFRESH_TICKS

#define MEMORY_REFRESH_TICKS   4

Definition at line 48 of file supervisor_window.c.

◆ POLL_INTERVAL_MS

#define POLL_INTERVAL_MS   300

Definition at line 46 of file supervisor_window.c.

◆ SUPERVISOR_CONF_GROUP_BY

#define SUPERVISOR_CONF_GROUP_BY   "ui/supervisor/group_by"

Definition at line 1332 of file supervisor_window.c.

◆ SUPERVISOR_CONF_HEIGHT

#define SUPERVISOR_CONF_HEIGHT   "ui/supervisor/window_height"

Definition at line 1381 of file supervisor_window.c.

◆ SUPERVISOR_CONF_PAGE

#define SUPERVISOR_CONF_PAGE   "ui/supervisor/page"

Definition at line 1331 of file supervisor_window.c.

◆ SUPERVISOR_CONF_RECORD

#define SUPERVISOR_CONF_RECORD   "ui/supervisor/record"

Definition at line 1333 of file supervisor_window.c.

◆ SUPERVISOR_CONF_WIDTH

#define SUPERVISOR_CONF_WIDTH   "ui/supervisor/window_width"

Definition at line 1380 of file supervisor_window.c.

◆ SUPERVISOR_CONF_X

#define SUPERVISOR_CONF_X   "ui/supervisor/window_x"

Definition at line 1378 of file supervisor_window.c.

◆ SUPERVISOR_CONF_Y

#define SUPERVISOR_CONF_Y   "ui/supervisor/window_y"

Definition at line 1379 of file supervisor_window.c.

◆ TIMELINE_MAX_ROWS

#define TIMELINE_MAX_ROWS   4000

Definition at line 40 of file supervisor_window.c.

◆ TIMELINE_TRIM_SLACK

#define TIMELINE_TRIM_SLACK   (TIMELINE_MAX_ROWS / 4)

Definition at line 45 of file supervisor_window.c.

Typedef Documentation

◆ _bar_segment_t

◆ _bar_t

typedef struct _bar_t _bar_t

◆ _group_t

typedef struct _group_t _group_t

Function Documentation

◆ _add_bar()

◆ _add_device_section()

◆ _add_mem_item()

static void _add_mem_item ( GtkWidget *  box,
const char *  markup,
const char *  trailing,
const gboolean  evictable 
)
static

Definition at line 492 of file supervisor_window.c.

References _wire_hash_label(), FALSE, row, and TRUE.

Referenced by _add_device_section(), _mem_list(), and _rebuild_memory().

◆ _add_mem_section()

static GtkWidget * _add_mem_section ( GtkWidget *  parent,
const char *  key,
const char *  title,
const _bar_t *  bar 
)
static

◆ _age_text()

static gchar * _age_text ( const int64_t  us)
static

Definition at line 523 of file supervisor_window.c.

Referenced by _rebuild_memory().

◆ _bar_draw()

static gboolean _bar_draw ( GtkWidget *  widget,
cairo_t *  cr,
gpointer  user_data 
)
static

◆ _bar_free()

static size_t _bar_free ( const _bar_t *  bar)
static

Definition at line 604 of file supervisor_window.c.

References _bar_used(), and _bar_t::total.

Referenced by _add_bar(), and _bar_tooltip().

◆ _bar_held()

static size_t _bar_held ( const _bar_t *  bar)
static

Definition at line 596 of file supervisor_window.c.

References _bar_segment_size(), _bar_t::count, k, _bar_segment_t::right, and _bar_t::seg.

Referenced by _add_mem_section().

◆ _bar_legend_block()

static GtkWidget * _bar_legend_block ( const _bar_segment_t *  seg,
const char *  swatch 
)
static

Definition at line 719 of file supervisor_window.c.

References _bar_segment_text(), _bar_segment_t::color, FALSE, _bar_segment_t::label, and size.

Referenced by _add_bar().

◆ _bar_segment_size()

static size_t _bar_segment_size ( const _bar_segment_t *  seg)
static

◆ _bar_segment_span()

static void _bar_segment_span ( const _bar_t *  bar,
const double  width,
const int  k,
double *  x0,
double *  x1 
)
static

◆ _bar_segment_text()

static gchar * _bar_segment_text ( const _bar_segment_t *  seg)
static

◆ _bar_tooltip()

static gboolean _bar_tooltip ( GtkWidget *  widget,
gint  x,
gint  y,
gboolean  keyboard,
GtkTooltip *  tooltip,
gpointer  user_data 
)
static

◆ _bar_used()

static size_t _bar_used ( const _bar_t *  bar)
static

Definition at line 588 of file supervisor_window.c.

References _bar_segment_size(), _bar_t::count, k, and _bar_t::seg.

Referenced by _bar_draw(), _bar_free(), and _bar_segment_span().

◆ _clear_list()

static void _clear_list ( GtkWidget *  list)
static

◆ _cmp_device_size()

static gint _cmp_device_size ( gconstpointer  a,
gconstpointer  b,
gpointer  data 
)
static

Definition at line 903 of file supervisor_window.c.

References x.

Referenced by _add_device_section().

◆ _cmp_image_imgid()

static gint _cmp_image_imgid ( gconstpointer  a,
gconstpointer  b 
)
static

Definition at line 546 of file supervisor_window.c.

References x.

Referenced by _rebuild_memory().

◆ _cmp_mip_size()

static gint _cmp_mip_size ( gconstpointer  a,
gconstpointer  b 
)
static

Definition at line 540 of file supervisor_window.c.

References x.

Referenced by _rebuild_memory().

◆ _cmp_ram_size()

static gint _cmp_ram_size ( gconstpointer  a,
gconstpointer  b 
)
static

Definition at line 532 of file supervisor_window.c.

References x.

Referenced by _rebuild_memory().

◆ _collapsible()

static GtkWidget * _collapsible ( const char *  header_markup,
GtkWidget *  body,
const gboolean  expanded 
)
static

Definition at line 247 of file supervisor_window.c.

References _on_toggle(), _wire_hash_label(), FALSE, and TRUE.

Referenced by _event_widget(), and _grouped_append().

◆ _domain_color()

static const char * _domain_color ( const char *  d)
static

Definition at line 97 of file supervisor_window.c.

References d.

Referenced by _header_markup().

◆ _event_body_from()

static GtkWidget * _event_body_from ( const char *  json,
GArray *  links 
)
static

◆ _event_matches()

static gboolean _event_matches ( const dt_sv_logged_event_t *  ev,
const char *  hash_needle,
const char *  text_needle 
)
static

◆ _event_widget()

◆ _full_reload()

static void _full_reload ( void  )
static

◆ _group_free()

static void _group_free ( gpointer  p)
static

Definition at line 84 of file supervisor_window.c.

References g, and p.

Referenced by dt_gui_supervisor_window_show().

◆ _group_key()

static const char * _group_key ( const dt_sv_logged_event_t *  ev,
const char *  by 
)
static

◆ _group_set_header()

static void _group_set_header ( _group_t *  g)
static

Definition at line 428 of file supervisor_window.c.

References g.

Referenced by _grouped_append().

◆ _grouped_append()

static void _grouped_append ( const dt_sv_logged_event_t *  ev,
const char *  by 
)
static

Definition at line 439 of file supervisor_window.c.

References _collapsible(), _event_widget(), _g, _group_key(), _group_set_header(), FALSE, g, k, and row.

Referenced by _grouped_catch_up().

◆ _grouped_catch_up()

static void _grouped_catch_up ( void  )
static

◆ _hashhex()

static gchar * _hashhex ( const uint64_t  h)
static

◆ _header_markup()

◆ _hex_contains()

static gboolean _hex_contains ( const uint64_t  h,
const char *  needle 
)
static

Definition at line 1168 of file supervisor_window.c.

References _hashhex(), and m.

Referenced by _event_matches().

◆ _links_free()

static void _links_free ( gpointer  p)
static

Definition at line 345 of file supervisor_window.c.

References p, and TRUE.

Referenced by _event_widget().

◆ _mem_conf_key()

static gchar * _mem_conf_key ( const char *  section,
const char *  setting 
)
static

Definition at line 788 of file supervisor_window.c.

Referenced by _add_mem_section(), _mem_list(), and _on_mem_section_expanded().

◆ _mem_list()

◆ _on_clear()

static void _on_clear ( GtkButton *  b,
gpointer  u 
)
static

Definition at line 1323 of file supervisor_window.c.

References _full_reload(), and dt_supervisor_events_clear().

Referenced by dt_gui_supervisor_window_show().

◆ _on_configure()

static gboolean _on_configure ( GtkWidget *  window,
GdkEventConfigure *  event,
gpointer  user_data 
)
static

◆ _on_destroy()

static void _on_destroy ( GtkWidget *  w,
gpointer  u 
)
static

Definition at line 1448 of file supervisor_window.c.

References _g, dt_supervisor_set_recording(), and FALSE.

Referenced by dt_gui_supervisor_window_show().

◆ _on_groupby_changed()

static void _on_groupby_changed ( GtkComboBox *  c,
gpointer  u 
)
static

◆ _on_label_button()

static gboolean _on_label_button ( GtkWidget *  label,
GdkEventButton *  e,
gpointer  u 
)
static

Definition at line 190 of file supervisor_window.c.

References _on_search_this_hash(), FALSE, and TRUE.

Referenced by _wire_hash_label().

◆ _on_link()

static gboolean _on_link ( GtkLabel *  label,
gchar *  uri,
gpointer  user_data 
)
static

Definition at line 159 of file supervisor_window.c.

References _g, _scroll_target_idle(), row, and TRUE.

Referenced by _wire_hash_label().

◆ _on_mem_section_expanded()

static void _on_mem_section_expanded ( GObject *  expander,
GParamSpec *  pspec,
gpointer  user_data 
)
static

Definition at line 793 of file supervisor_window.c.

References _mem_conf_key(), _rebuild_memory_idle(), dt_conf_set_bool(), and key.

Referenced by _add_mem_section().

◆ _on_page_changed()

static void _on_page_changed ( GtkNotebook *  nb,
GtkWidget *  page,
guint  page_num,
gpointer  u 
)
static

◆ _on_record_toggled()

static void _on_record_toggled ( GtkToggleButton *  t,
gpointer  u 
)
static

◆ _on_refresh()

static void _on_refresh ( GtkButton *  b,
gpointer  u 
)
static

Definition at line 1321 of file supervisor_window.c.

References _full_reload().

Referenced by dt_gui_supervisor_window_show().

◆ _on_search_changed()

static void _on_search_changed ( GtkSearchEntry *  e,
gpointer  u 
)
static

Definition at line 1228 of file supervisor_window.c.

References _g, and _run_search().

Referenced by dt_gui_supervisor_window_show().

◆ _on_search_this_hash()

static void _on_search_this_hash ( GtkMenuItem *  item,
gpointer  u 
)
static

Definition at line 179 of file supervisor_window.c.

References _g.

Referenced by _on_label_button().

◆ _on_toggle()

static void _on_toggle ( GtkToggleButton *  t,
gpointer  u 
)
static

Definition at line 220 of file supervisor_window.c.

References _event_body_from(), and t.

Referenced by _collapsible().

◆ _page_from_name()

static int _page_from_name ( const char *  name)
static

Definition at line 1343 of file supervisor_window.c.

References _g, and name.

Referenced by dt_gui_supervisor_window_show().

◆ _page_name()

static const char * _page_name ( const int  page)
static

Definition at line 1335 of file supervisor_window.c.

References _g.

Referenced by _on_page_changed().

◆ _pointer_button_down()

static gboolean _pointer_button_down ( void  )
static

Definition at line 1246 of file supervisor_window.c.

References _g, FALSE, IS_NULL_PTR, and window.

Referenced by _poll().

◆ _poll()

◆ _pretty_json()

static gchar * _pretty_json ( const char *  compact)
static

Definition at line 111 of file supervisor_window.c.

References g, out, p, and TRUE.

Referenced by _event_body_from().

◆ _rebuild_grouped_now()

static void _rebuild_grouped_now ( void  )
static

Definition at line 478 of file supervisor_window.c.

References _clear_list(), _g, and _grouped_catch_up().

Referenced by _full_reload(), and _on_groupby_changed().

◆ _rebuild_memory()

◆ _rebuild_memory_idle()

static gboolean _rebuild_memory_idle ( gpointer  user_data)
static

Definition at line 779 of file supervisor_window.c.

References _rebuild_memory().

Referenced by _on_mem_section_expanded().

◆ _restore_geometry()

◆ _run_search()

static void _run_search ( const char *  query)
static

◆ _scroll_bottom_idle()

static gboolean _scroll_bottom_idle ( gpointer  u)
static

Definition at line 1236 of file supervisor_window.c.

References _g.

Referenced by _poll().

◆ _scroll_row_into_view()

static void _scroll_row_into_view ( GtkWidget *  row)
static

Definition at line 130 of file supervisor_window.c.

References _g, double(), MAX, and row.

Referenced by _scroll_target_idle().

◆ _scroll_target_idle()

static gboolean _scroll_target_idle ( gpointer  u)
static

Definition at line 147 of file supervisor_window.c.

References _g, _scroll_row_into_view(), and row.

Referenced by _on_link().

◆ _timeline_append()

static void _timeline_append ( const dt_sv_logged_event_t *  ev)
static

Definition at line 375 of file supervisor_window.c.

References _event_widget(), _g, _hashhex(), dt_sv_logged_event_t::hash, dt_sv_logged_event_t::op, and row.

Referenced by _poll().

◆ _timeline_trim()

static void _timeline_trim ( const guint  incoming)
static

Definition at line 392 of file supervisor_window.c.

References _g, row, TIMELINE_MAX_ROWS, and TIMELINE_TRIM_SLACK.

Referenced by _poll().

◆ _update_count()

static void _update_count ( void  )
static

Definition at line 414 of file supervisor_window.c.

References _g, and dt_supervisor_events_count().

Referenced by _poll().

◆ _window_position_is_usable()

static gboolean _window_position_is_usable ( GtkWidget *  window)
static

Definition at line 1384 of file supervisor_window.c.

References TRUE, and window.

Referenced by _on_configure(), and _restore_geometry().

◆ _wire_hash_label()

static void _wire_hash_label ( GtkWidget *  label)
static

Definition at line 210 of file supervisor_window.c.

References _on_label_button(), _on_link(), and FALSE.

Referenced by _add_mem_item(), _collapsible(), and _event_body_from().

◆ dt_gui_supervisor_window_show()

Variable Documentation

◆ [struct]

◆ count_label

GtkWidget* count_label

Definition at line 62 of file supervisor_window.c.

◆ decl_map

GHashTable* decl_map

Definition at line 64 of file supervisor_window.c.

◆ group_map

GHashTable* group_map

Definition at line 65 of file supervisor_window.c.

◆ groupby

GtkWidget* groupby

Definition at line 63 of file supervisor_window.c.

◆ grouped_last_seq

uint64_t grouped_last_seq

Definition at line 67 of file supervisor_window.c.

◆ grouped_list

GtkWidget* grouped_list

Definition at line 57 of file supervisor_window.c.

◆ last_seq

uint64_t last_seq

Definition at line 66 of file supervisor_window.c.

◆ mem_box

GtkWidget* mem_box

Definition at line 58 of file supervisor_window.c.

◆ mem_lists

GHashTable* mem_lists

Definition at line 59 of file supervisor_window.c.

◆ notebook

◆ page_grouped

int page_grouped

Definition at line 71 of file supervisor_window.c.

◆ page_memory

int page_memory

Definition at line 71 of file supervisor_window.c.

◆ page_search

int page_search

Definition at line 71 of file supervisor_window.c.

◆ page_timeline

int page_timeline

Definition at line 71 of file supervisor_window.c.

◆ scroll_target

gchar* scroll_target

Definition at line 68 of file supervisor_window.c.

◆ search_entry

GtkWidget* search_entry

Definition at line 60 of file supervisor_window.c.

Referenced by _find_and_rank_matches(), and dt_accels_search().

◆ search_list

GtkWidget* search_list

Definition at line 61 of file supervisor_window.c.

◆ tick

guint tick

Definition at line 70 of file supervisor_window.c.

◆ timeline_list

GtkWidget* timeline_list

Definition at line 55 of file supervisor_window.c.

◆ timeline_scroll

GtkWidget* timeline_scroll

Definition at line 56 of file supervisor_window.c.

◆ timer_id

guint timer_id

Definition at line 69 of file supervisor_window.c.

◆ window