Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
window_manager.c File Reference
#include "common/darktable.h"
#include "control/control.h"
#include "develop/develop.h"
#include "develop/imageop.h"
#include "views/view.h"
#include "bauhaus/bauhaus.h"
#include "gui/window_manager.h"
#include "gui/actions/menu.h"
#include "dtgtk/sidepanel.h"
#include "libs/lib.h"
+ Include dependency graph for window_manager.c:

Go to the source code of this file.

Data Structures

struct  dt_header_t
 

Macros

#define WINDOW_DEBUG   0
 

Typedefs

typedef struct dt_header_t dt_header_t
 
typedef enum dt_panel_side_t dt_panel_side_t
 

Enumerations

enum  dt_panel_side_t {
  LEFT_PANNEL = 0 ,
  RIGHT_PANNEL = 1 ,
  PANEL_SIDE_COUNT
}
 

Functions

gchar * panels_get_view_path (char *suffix)
 
gchar * panels_get_panel_path (dt_ui_panel_t panel, char *suffix)
 
int dt_ui_panel_get_size (dt_ui_t *ui, const dt_ui_panel_t p)
 get width of right, left, or bottom panel
 
gboolean dt_ui_panel_ancestor (dt_ui_t *ui, const dt_ui_panel_t p, GtkWidget *w)
 is the panel ancestor of widget
 
GtkWidgetdt_ui_center (dt_ui_t *ui)
 get the center drawable widget
 
GtkWidgetdt_ui_center_base (dt_ui_t *ui)
 
GtkWidgetdt_ui_log_msg (dt_ui_t *ui)
 get the log message widget
 
GtkWidgetdt_ui_toast_msg (dt_ui_t *ui)
 get the toast message widget
 
GtkWidgetdt_ui_main_window (dt_ui_t *ui)
 get the main window widget
 
GtkBox * dt_ui_get_container (dt_ui_t *ui, const dt_ui_container_t c)
 
void dt_ui_container_add_widget (dt_ui_t *ui, const dt_ui_container_t c, GtkWidget *w)
 
static void _ui_init_panel_size (GtkWidget *widget, dt_ui_t *ui)
 
void dt_ui_restore_panels (dt_ui_t *ui)
 
static int _panel_handle_get_size (gpointer user_data)
 
static int _panel_handle_resize (int requested_size, gboolean finished, gpointer user_data)
 
static GtkWidget_ui_init_panel_container_top (GtkWidget *container)
 
static gboolean _ui_scroll_target_is_live_widget (const GtkWidget *target, const int side)
 Check whether a deferred panel scroll target is still a live module widget.
 
static void _ui_panel_size_changed (GtkAdjustment *adjustment, GParamSpec *pspec, gpointer user_data)
 
static GtkWidget_ui_init_panel_container_center (GtkWidget *container, gboolean left)
 
static GtkWidget_ui_init_panel_container_bottom (GtkWidget *container)
 
static void _ui_init_panel_left (dt_ui_t *ui, GtkWidget *container)
 
static void _ui_init_panel_right (dt_ui_t *ui, GtkWidget *container)
 
static void _ui_init_panel_top (dt_ui_t *ui, GtkWidget *container)
 
static void _ui_init_panel_bottom (dt_ui_t *ui, GtkWidget *container)
 
static void _ui_widget_redraw_callback (gpointer instance, GtkWidget *widget)
 
void dt_ui_init_main_table (GtkWidget *parent, dt_ui_t *ui)
 
void dt_ui_cleanup_main_table (dt_ui_t *ui)
 
void dt_ui_init_titlebar (dt_ui_t *ui)
 
void dt_ui_titlebar_pack_start (dt_ui_t *ui, GtkWidget *widget)
 
void dt_ui_titlebar_pack_end (dt_ui_t *ui, GtkWidget *widget)
 
void _home_callback ()
 
void _close_callback (GtkWidget *w, gpointer data)
 
void _iconify_callback (GtkWidget *w, gpointer data)
 
void _open_accel_search_callback (GtkWidget *w, gpointer data)
 
void dt_ui_init_global_menu (dt_ui_t *ui)
 
void dt_ui_set_image_info_label (dt_ui_t *ui, const char *label)
 
void dt_ui_set_window_buttons_visible (dt_ui_t *ui, gboolean visible)
 
void dt_hinter_set_message (dt_ui_t *ui, const char *message)
 
void dt_ui_cleanup_titlebar (dt_ui_t *ui)
 

Variables

const char * _ui_panel_config_names [] = { "header", "toolbar_top", "toolbar_bottom", "left", "right", "bottom" }
 

Macro Definition Documentation

◆ WINDOW_DEBUG

#define WINDOW_DEBUG   0

Definition at line 31 of file window_manager.c.

Typedef Documentation

◆ dt_header_t

typedef struct dt_header_t dt_header_t

◆ dt_panel_side_t

Enumeration Type Documentation

◆ dt_panel_side_t

Enumerator
LEFT_PANNEL 
RIGHT_PANNEL 
PANEL_SIDE_COUNT 

Definition at line 46 of file window_manager.c.

Function Documentation

◆ _close_callback()

void _close_callback ( GtkWidget w,
gpointer  data 
)

Definition at line 643 of file window_manager.c.

Referenced by dt_ui_init_global_menu().

◆ _home_callback()

void _home_callback ( )

Definition at line 638 of file window_manager.c.

References dt_ctl_switch_mode_to().

Referenced by dt_ui_init_global_menu().

◆ _iconify_callback()

void _iconify_callback ( GtkWidget w,
gpointer  data 
)

Definition at line 648 of file window_manager.c.

Referenced by dt_ui_init_global_menu().

◆ _open_accel_search_callback()

void _open_accel_search_callback ( GtkWidget w,
gpointer  data 
)

◆ _panel_handle_get_size()

static int _panel_handle_get_size ( gpointer  user_data)
static

◆ _panel_handle_resize()

static int _panel_handle_resize ( int  requested_size,
gboolean  finished,
gpointer  user_data 
)
static

◆ _ui_init_panel_bottom()

◆ _ui_init_panel_container_bottom()

static GtkWidget * _ui_init_panel_container_bottom ( GtkWidget container)
static

Definition at line 397 of file window_manager.c.

References container(), DT_GUI_BOX_SPACING, and FALSE.

Referenced by _ui_init_panel_left(), and _ui_init_panel_right().

◆ _ui_init_panel_container_center()

static GtkWidget * _ui_init_panel_container_center ( GtkWidget container,
gboolean  left 
)
static

◆ _ui_init_panel_container_top()

static GtkWidget * _ui_init_panel_container_top ( GtkWidget container)
static

Definition at line 276 of file window_manager.c.

References container(), DT_GUI_BOX_SPACING, and FALSE.

Referenced by _ui_init_panel_left(), and _ui_init_panel_right().

◆ _ui_init_panel_left()

◆ _ui_init_panel_right()

◆ _ui_init_panel_size()

◆ _ui_init_panel_top()

◆ _ui_panel_size_changed()

static void _ui_panel_size_changed ( GtkAdjustment *  adjustment,
GParamSpec *  pspec,
gpointer  user_data 
)
static

◆ _ui_scroll_target_is_live_widget()

static gboolean _ui_scroll_target_is_live_widget ( const GtkWidget target,
const int  side 
)
static

Check whether a deferred panel scroll target is still a live module widget.

We only accept widgets currently referenced by module descriptors. This avoids dereferencing stale pointers left after asynchronous GTK teardown.

Parameters
targetwidget pointer queued for panel scrolling.
sidepanel side (LEFT_PANNEL or RIGHT_PANNEL).
Returns
gboolean TRUE if target is still referenced by a visible module tree.

Definition at line 294 of file window_manager.c.

References darktable, darktable_t::develop, FALSE, dt_develop_t::iop, IS_NULL_PTR, LEFT_PANNEL, darktable_t::lib, dt_lib_t::plugins, RIGHT_PANNEL, and TRUE.

Referenced by _ui_panel_size_changed().

◆ _ui_widget_redraw_callback()

static void _ui_widget_redraw_callback ( gpointer  instance,
GtkWidget widget 
)
static

Definition at line 517 of file window_manager.c.

Referenced by dt_ui_init_main_table().

◆ dt_hinter_set_message()

void dt_hinter_set_message ( dt_ui_t ui,
const char *  message 
)

Definition at line 761 of file window_manager.c.

References dt_free, dt_ui_t::header, dt_header_t::hinter, and IS_NULL_PTR.

Referenced by dt_control_hinter_message().

◆ dt_ui_center()

◆ dt_ui_center_base()

GtkWidget * dt_ui_center_base ( dt_ui_t ui)

Definition at line 118 of file window_manager.c.

References dt_ui_t::center_base.

Referenced by _control_apply_cursor(), _ui_toast_redraw_callback(), enter(), and leave().

◆ dt_ui_cleanup_main_table()

void dt_ui_cleanup_main_table ( dt_ui_t ui)

◆ dt_ui_cleanup_titlebar()

void dt_ui_cleanup_titlebar ( dt_ui_t ui)

◆ dt_ui_container_add_widget()

void dt_ui_container_add_widget ( dt_ui_t ui,
const dt_ui_container_t  c,
GtkWidget w 
)

◆ dt_ui_get_container()

GtkBox * dt_ui_get_container ( dt_ui_t ui,
const dt_ui_container_t  c 
)

Definition at line 137 of file window_manager.c.

References dt_ui_t::containers.

Referenced by _ensure_page_widgets(), and gui_cleanup().

◆ dt_ui_init_global_menu()

◆ dt_ui_init_main_table()

◆ dt_ui_init_titlebar()

void dt_ui_init_titlebar ( dt_ui_t ui)

◆ dt_ui_log_msg()

GtkWidget * dt_ui_log_msg ( dt_ui_t ui)

get the log message widget

Definition at line 123 of file window_manager.c.

References dt_ui_t::log_msg.

Referenced by _init_widgets().

◆ dt_ui_main_window()

GtkWidget * dt_ui_main_window ( dt_ui_t ui)

get the main window widget

Definition at line 132 of file window_manager.c.

References dt_ui_t::main_window.

Referenced by _act_folders_relocate(), _apply_rename_path(), _ask_before_delete_style(), _ask_text(), _blendop_masks_confirm_delete(), _choose_gpx_callback(), _confirm(), _confirm_delete_layer(), _control_apply_cursor(), _datetime_key_pressed(), _delete_tagids(), _discarded_files_popup(), _dt_delete_dialog_main_thread(), _edit_preset(), _enter_key_pressed(), _export_button_clicked(), _export_button_clicked(), _gui_styles_dialog_run(), _gui_styles_edit_style_response(), _gui_styles_new_style_response(), _hm_ask_user_constraints_choice(), _hm_show_merge_report_popup(), _hm_show_toposort_cycle_popup(), _hm_warn_missing_raster_producers(), _import_button_clicked(), _init_widgets(), _ioporder_add_preset(), _ioporder_init_popup(), _ioporder_rebuild_graph(), _key_pressed(), _lib_tagging_tag_key_press(), _lib_tagging_tag_show_accel(), _main_do_event_help(), _menuitem_delete_preset(), _menuitem_preferences(), _menuitem_update_preset(), _open_uri(), _panel_handle_resize(), _pop_menu_dictionary_change_path(), _pop_menu_dictionary_create_tag(), _pop_menu_dictionary_delete_node(), _pop_menu_dictionary_edit_tag(), _preview_gpx_file(), _prompt_layer_name_dialog(), _resizable_scroll_max_height(), _save_clut_callback(), _save_layer_clicked(), _scope_resize_handle_resize(), _show_drawlayer_modal_message(), _show_drawlayer_wait_dialog(), _styles_open_popup_callback(), _switch_preview_cursor(), _timezone_key_pressed(), _timezone_save(), ask_and_delete(), button_clicked(), button_clicked(), button_clicked(), dt_bauhaus_init(), dt_bauhaus_load_theme(), dt_bauhaus_show_popup(), dt_cleanup(), dt_control_copy_images(), dt_control_crawler_show_image_list(), dt_control_delete_image(), dt_control_delete_images(), dt_control_move_images(), dt_control_remove_images(), dt_gui_gtk_init(), dt_gui_gtk_quit(), dt_gui_gtk_write_config(), dt_gui_hist_dialog_new(), dt_gui_load_theme(), dt_gui_merge_options_dialog(), dt_gui_preferences_show(), dt_gui_refocus_center(), dt_gui_show_standalone_string_dialog(), dt_gui_show_standalone_yes_no_dialog(), dt_key_modifier_state(), dt_lib_export_metadata_configuration_dialog(), dt_masks_gui_confirm_delete_form_dialog(), dt_preview_window_spawn(), dt_ui_notify_user(), dt_view_manager_button_pressed(), dt_view_manager_switch_by_view(), edit_preset(), ensure_focus_idle(), enter(), export_clicked(), export_files_callback(), full_screen_callback(), full_screen_checked_callback(), get_stamp_params(), global_progress_end(), global_progress_set(), global_progress_start(), gui_init(), gui_init(), gui_reset(), import_clicked(), load_xmp_callback(), menuitem_delete_preset(), menuitem_update_preset(), open_chat_callback(), open_doc_callback(), open_forum_callback(), open_search_callback(), search_accels_callback(), shortcuts_callback(), and show_about_dialog().

◆ dt_ui_panel_ancestor()

gboolean dt_ui_panel_ancestor ( dt_ui_t ui,
const dt_ui_panel_t  p,
GtkWidget w 
)

is the panel ancestor of widget

Definition at line 108 of file window_manager.c.

References FALSE, p, and dt_ui_t::panels.

Referenced by _get_preferred_width().

◆ dt_ui_panel_get_size()

int dt_ui_panel_get_size ( dt_ui_t ui,
const dt_ui_panel_t  p 
)

◆ dt_ui_restore_panels()

◆ dt_ui_set_image_info_label()

void dt_ui_set_image_info_label ( dt_ui_t ui,
const char *  label 
)

Definition at line 749 of file window_manager.c.

References dt_ui_t::header, dt_header_t::image_info, and IS_NULL_PTR.

Referenced by dt_view_image_info_update().

◆ dt_ui_set_window_buttons_visible()

void dt_ui_set_window_buttons_visible ( dt_ui_t ui,
gboolean  visible 
)

Definition at line 755 of file window_manager.c.

References dt_header_t::close, dt_ui_t::header, and dt_header_t::iconify.

Referenced by full_screen_callback().

◆ dt_ui_titlebar_pack_end()

void dt_ui_titlebar_pack_end ( dt_ui_t ui,
GtkWidget widget 
)

Definition at line 629 of file window_manager.c.

References FALSE, dt_ui_t::header, and dt_header_t::titlebar.

Referenced by dt_ui_init_global_menu().

◆ dt_ui_titlebar_pack_start()

void dt_ui_titlebar_pack_start ( dt_ui_t ui,
GtkWidget widget 
)

Definition at line 620 of file window_manager.c.

References FALSE, dt_ui_t::header, and dt_header_t::titlebar.

Referenced by dt_ui_init_global_menu().

◆ dt_ui_toast_msg()

GtkWidget * dt_ui_toast_msg ( dt_ui_t ui)

get the toast message widget

Definition at line 127 of file window_manager.c.

References dt_ui_t::toast_msg.

Referenced by _init_widgets().

◆ panels_get_panel_path()

◆ panels_get_view_path()

Variable Documentation

◆ _ui_panel_config_names

const char* _ui_panel_config_names[] = { "header", "toolbar_top", "toolbar_bottom", "left", "right", "bottom" }

Definition at line 53 of file window_manager.c.

Referenced by panels_get_panel_path().