Blender V5.0
DNA_theme_types.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2001-2002 NaN Holding BV. All rights reserved.
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
8
9#pragma once
10
17#define UI_SCALE_FAC ((void)0, U.scale_factor)
18
19/* Inverse of UI_SCALE_FAC ( 1 / UI_SCALE_FAC). */
20#define UI_INV_SCALE_FAC ((void)0, U.inv_scale_factor)
21
22/* 16 to copy ICON_DEFAULT_HEIGHT */
23#define UI_ICON_SIZE ((float)16 * U.scale_factor)
24
25/* Themes; defines in `BIF_resource.h`. */
26
27/* ************************ style definitions ******************** */
28
33typedef enum eUIFont_ID {
35 // UIFONT_BITMAP = 1, /* UNUSED */
36
37 /* free slots */
39 // UIFONT_CUSTOM2 = 3, /* UNUSED */
41
46#
47#
48typedef struct uiFont {
49 struct uiFont *next, *prev;
50 char filepath[/*FILE_MAX*/ 1024];
52 short blf_id;
54 short uifont_id;
56
58typedef struct uiFontStyle {
60 short uifont_id;
61 char _pad1[2];
63 float points;
65 short italic, bold;
67 short shadow;
69 short shadx, shady;
70 char _pad0[2];
78
79/* this is fed to the layout engine and widget code */
80
108
110 unsigned char back[4];
111 unsigned char header_back[4];
113
114typedef struct ThemeRegionsChannels {
115 unsigned char back[4];
116 unsigned char text[4];
117 unsigned char text_selected[4];
118 char _pad0[4];
120
121typedef struct ThemeRegionsScrubbing {
122 unsigned char back[4];
123 unsigned char text[4];
124 unsigned char time_marker[4], time_marker_selected[4];
126
127typedef struct ThemeRegionsSidebars {
128 unsigned char back[4];
129 unsigned char tab_back[4];
131
138
158
173
179
180typedef struct uiWidgetColors {
181 unsigned char outline[4];
182 unsigned char outline_sel[4];
183 unsigned char inner[4];
184 unsigned char inner_sel[4];
185 unsigned char item[4];
186 unsigned char text[4];
187 unsigned char text_sel[4];
188 unsigned char shaded;
189 char _pad0[3];
193
194typedef struct uiWidgetStateColors {
195 unsigned char error[4];
196 unsigned char warning[4];
197 unsigned char info[4];
198 unsigned char success[4];
199 unsigned char inner_anim[4];
200 unsigned char inner_anim_sel[4];
201 unsigned char inner_key[4];
202 unsigned char inner_key_sel[4];
203 unsigned char inner_driven[4];
204 unsigned char inner_driven_sel[4];
205 unsigned char inner_overridden[4];
206 unsigned char inner_overridden_sel[4];
207 unsigned char inner_changed[4];
208 unsigned char inner_changed_sel[4];
209 float blend;
210 char _pad0[4];
212
213typedef struct ThemeUI {
214 /* Interface Elements (buttons, menus, icons) */
220
222
223 unsigned char widget_emboss[4];
224
225 /* fac: 0 - 1 for blend factor, width in pixels */
228
229 unsigned char editor_border[4];
230 unsigned char editor_outline[4];
231 unsigned char editor_outline_active[4];
232
233 /* Transparent Grid */
236 char _pad1[5];
237
240 unsigned char widget_text_cursor[4];
241
242 /* Axis Colors */
243 unsigned char xaxis[4], yaxis[4], zaxis[4], waxis[4];
244
245 /* Gizmo Colors. */
246 unsigned char gizmo_hi[4];
247 unsigned char gizmo_primary[4];
248 unsigned char gizmo_secondary[4];
249 unsigned char gizmo_view_align[4];
250 unsigned char gizmo_a[4];
251 unsigned char gizmo_b[4];
252
253 /* Icon Colors. */
255 unsigned char icon_scene[4];
257 unsigned char icon_collection[4];
259 unsigned char icon_object[4];
261 unsigned char icon_object_data[4];
263 unsigned char icon_modifier[4];
265 unsigned char icon_shading[4];
267 unsigned char icon_folder[4];
269 unsigned char icon_autokey[4];
270 char _pad3[4];
274 /* Panels. */
276 unsigned char panel_header[4];
277 unsigned char panel_back[4];
278 unsigned char panel_sub_back[4];
279 unsigned char panel_outline[4];
280 unsigned char panel_title[4];
281 unsigned char panel_text[4];
282 unsigned char panel_active[4];
283
285
286/* try to put them all in one, if needed a special struct can be created as well
287 * for example later on, when we introduce wire colors for ob types or so...
288 */
289typedef struct ThemeSpace {
290 /* main window colors */
291 unsigned char back[4];
292 unsigned char back_grad[4];
293
295 char _pad0[3];
296
298 unsigned char title[4];
299 unsigned char text[4];
300 unsigned char text_hi[4];
301
302 /* header colors */
304 unsigned char header[4];
306 unsigned char header_title[4];
307 unsigned char header_text[4];
308 unsigned char header_text_hi[4];
309
310 /* button/tool regions */
311 unsigned char shade1[4];
312 unsigned char shade2[4];
313
314 unsigned char hilite[4];
315 unsigned char grid[4];
316
317 unsigned char view_overlay[4];
318
319 unsigned char wire[4], wire_edit[4], select[4];
320 unsigned char lamp[4], speaker[4], empty[4], camera[4];
321 unsigned char active[4], transform[4];
323 unsigned char edge[4], edge_select[4], edge_mode_select[4];
325 unsigned char face[4], face_select[4], face_mode_select[4], face_retopology[4];
326 unsigned char face_back[4], face_front[4];
329 unsigned char normal[4];
330 unsigned char vertex_normal[4];
331 unsigned char loop_normal[4];
333 unsigned char strip[4], strip_select[4];
335 unsigned char time_gp_keyframe[4];
336
338 unsigned char bevel[4], seam[4], sharp[4], crease[4], freestyle[4];
339
340 unsigned char nurb_uline[4], nurb_vline[4];
341 unsigned char nurb_sel_uline[4], nurb_sel_vline[4];
342
344 unsigned char ds_ipoline[4];
346 unsigned char keyborder[4], keyborder_select[4];
347 char _pad4[3];
348
350 unsigned char console_cursor[4], console_select[4];
351
353 unsigned char noodle_curving;
354 unsigned char grid_levels;
355 char _pad2[2];
357
358 /* Syntax for text-window and nodes. */
359 unsigned char syntaxl[4], syntaxs[4]; /* In node-space used for backdrop matte. */
360 unsigned char syntaxb[4], syntaxn[4]; /* In node-space used for color input. */
361 unsigned char syntaxv[4], syntaxc[4]; /* In node-space used for converter group. */
362 unsigned char syntaxd[4], syntaxr[4]; /* In node-space used for distort. */
363
364 unsigned char line_numbers[4];
365
366 unsigned char node_outline[4];
367
368 unsigned char nodeclass_output[4], nodeclass_filter[4];
370 unsigned char nodeclass_shader[4], nodeclass_script[4];
372
373 unsigned char node_zone_simulation[4];
374 unsigned char node_zone_repeat[4];
376 unsigned char node_zone_closure[4];
377 unsigned char simulated_frames[4];
378
380 unsigned char movie[4], movieclip[4], mask[4], image[4], scene[4], audio[4];
381 unsigned char effect[4], transition[4], meta[4], text_strip[4], color_strip[4];
383
386
387 unsigned char editmesh_active[4];
388 char _pad3[1];
389
390 unsigned char clipping_border_3d[4];
391
392 unsigned char marker_outline[4], marker[4], act_marker[4], sel_marker[4], dis_marker[4],
394 unsigned char bundle_solid[4];
395 unsigned char path_before[4], path_after[4];
397 unsigned char camera_path[4];
398 unsigned char camera_passepartout[4];
399 unsigned char _pad1[2];
400
401 unsigned char gp_vertex_size;
402 unsigned char gp_vertex[4], gp_vertex_select[4];
403
404 unsigned char preview_back[4];
405 unsigned char preview_stitch_face[4];
406 unsigned char preview_stitch_edge[4];
407 unsigned char preview_stitch_vert[4];
410 unsigned char preview_stitch_active[4];
411
413 unsigned char uv_shadow[4];
414
416 unsigned char match[4];
418 unsigned char selected_highlight[4];
420 unsigned char selected_object[4];
422 unsigned char active_object[4];
424 unsigned char edited_object[4];
426 unsigned char row_alternate[4];
427
429 unsigned char skin_root[4];
430
431 /* NLA */
433 unsigned char anim_active[4];
435 unsigned char anim_non_active[4];
436
438 unsigned char nla_tweaking[4];
440 unsigned char nla_tweakdupli[4];
441
443 unsigned char nla_transition[4], nla_transition_sel[4];
445 unsigned char nla_meta[4], nla_meta_sel[4];
447 unsigned char nla_sound[4], nla_sound_sel[4];
448
449 /* info */
450 unsigned char info_selected[4], info_selected_text[4];
451 unsigned char info_error_text[4];
452 unsigned char info_warning_text[4];
453 unsigned char info_info_text[4];
454 unsigned char info_debug[4], info_debug_text[4];
455 unsigned char info_property[4], info_property_text[4];
456 unsigned char info_operator[4], info_operator_text[4];
457
458 unsigned char metadatabg[4];
459 unsigned char metadatatext[4];
461
462/* Viewport Background Gradient Types. */
463
469
471typedef struct ThemeWireColor {
472 unsigned char solid[4];
473 unsigned char select[4];
474 unsigned char active[4];
475
477 short flag;
478 char _pad0[2];
480
482typedef enum eWireColor_Flags {
484 /* TH_WIRECOLOR_TEXTCOLS = (1 << 1), */ /* UNUSED */
486
487typedef struct ThemeCollectionColor {
488 unsigned char color[4];
490
491typedef struct ThemeStripColor {
492 unsigned char color[4];
494
501typedef struct bTheme {
502 struct bTheme *next, *prev;
503 char name[/*MAX_NAME*/ 64];
504
505 /* NOTE: Values after `name` are copied when resetting the default theme. */
506
513 char filepath[/*FILE_MAX*/ 1024];
514
516
519
542
543 /* 20 sets of bone colors for this theme */
545 // ThemeWireColor tobj[20];
546
547 /* See COLLECTION_COLOR_TOT for the number of collection colors. */
549
550 /* See STRIP_COLOR_TOT for the total number of strip colors. */
552
555
556#define UI_THEMESPACE_START(btheme) \
557 (CHECK_TYPE_INLINE(btheme, bTheme *), &((btheme)->space_properties))
558#define UI_THEMESPACE_END(btheme) \
559 (CHECK_TYPE_INLINE(btheme, bTheme *), (&((btheme)->space_spreadsheet) + 1))
eWireColor_Flags
@ TH_WIRECOLOR_CONSTCOLS
eUIFont_ID
@ UIFONT_DEFAULT
@ UIFONT_CUSTOM1
eBackgroundGradientTypes
@ TH_BACKGROUND_GRADIENT_RADIAL
@ TH_BACKGROUND_SINGLE_COLOR
@ TH_BACKGROUND_GRADIENT_LINEAR
unsigned char color[4]
unsigned char keyframe_extreme_selected[4]
unsigned char keyframe_breakdown[4]
unsigned char keyframe[4]
unsigned char scene_strip_range[4]
unsigned char keyframe_jitter_selected[4]
unsigned char keyframe_jitter[4]
unsigned char keyframe_breakdown_selected[4]
unsigned char channel_selected[4]
unsigned char channels[4]
unsigned char keyframe_selected[4]
unsigned char keyframe_extreme[4]
unsigned char keyframe_moving_hold[4]
unsigned char keyframe_moving_hold_selected[4]
unsigned char long_key[4]
unsigned char playhead[4]
unsigned char long_key_selected[4]
unsigned char keyframe_generated[4]
unsigned char channel[4]
unsigned char channel_group_active[4]
unsigned char channel_group[4]
unsigned char channels_sub[4]
unsigned char preview_range[4]
unsigned char keyframe_generated_selected[4]
unsigned char handle_free[4]
unsigned char handle_sel_auto_clamped[4]
unsigned char handle_align[4]
unsigned char handle_auto_clamped[4]
unsigned char handle_auto[4]
unsigned char handle_sel_align[4]
unsigned char handle_vertex_size
unsigned char handle_sel_free[4]
unsigned char handle_vertex_select[4]
unsigned char handle_sel_auto[4]
unsigned char handle_vertex[4]
unsigned char handle_sel_vect[4]
unsigned char handle_vect[4]
ThemeCommonCurves curves
ThemeCommonAnim anim
unsigned char header_back[4]
unsigned char back[4]
unsigned char text[4]
unsigned char text_selected[4]
unsigned char text[4]
unsigned char time_marker_selected[4]
unsigned char time_marker[4]
unsigned char back[4]
unsigned char back[4]
unsigned char tab_back[4]
ThemeRegionsScrubbing scrubbing
ThemeRegionsChannels channels
ThemeRegionsSidebars sidebars
ThemeRegionsAssetShelf asset_shelf
unsigned char back_grad[4]
unsigned char preview_stitch_vert[4]
unsigned char path_before[4]
unsigned char noodle_curving
unsigned char active_strip[4]
unsigned char movie[4]
unsigned char edge_mode_select[4]
unsigned char lock_marker[4]
unsigned char movieclip[4]
unsigned char bundle_solid[4]
unsigned char dis_marker[4]
unsigned char ds_ipoline[4]
unsigned char sharp[4]
unsigned char syntaxl[4]
unsigned char active_object[4]
unsigned char nodeclass_filter[4]
unsigned char anim_active[4]
unsigned char anim_non_active[4]
unsigned char shade2[4]
unsigned char console_info[4]
unsigned char edge_select[4]
unsigned char selected_highlight[4]
unsigned char editmesh_active[4]
unsigned char console_select[4]
unsigned char vertex[4]
unsigned char vertex_size
unsigned char marker[4]
unsigned char text[4]
unsigned char gp_vertex_size
unsigned char syntaxv[4]
unsigned char freestyle[4]
unsigned char syntaxc[4]
unsigned char syntaxn[4]
unsigned char gp_vertex_select[4]
unsigned char sel_marker[4]
unsigned char vertex_unreferenced[4]
unsigned char effect[4]
unsigned char transition[4]
unsigned char active[4]
unsigned char vertex_select[4]
unsigned char outline_width
unsigned char selected_object[4]
unsigned char empty[4]
unsigned char header_text_hi[4]
unsigned char face_back[4]
unsigned char edge[4]
unsigned char selected_text[4]
float keyframe_scale_fac
unsigned char seam[4]
unsigned char info_property_text[4]
unsigned char normal[4]
unsigned char syntaxs[4]
unsigned char transform[4]
unsigned char select[4]
unsigned char before_current_frame[4]
unsigned char marker_outline[4]
unsigned char bone_pose_active[4]
unsigned char match[4]
unsigned char obcenter_dia
unsigned char act_marker[4]
unsigned char camera_path[4]
unsigned char nla_meta[4]
unsigned char info_selected_text[4]
unsigned char syntaxr[4]
unsigned char extra_edge_len[4]
unsigned char speaker[4]
unsigned char view_overlay[4]
unsigned char wire_edit[4]
unsigned char skin_root[4]
unsigned char node_zone_repeat[4]
unsigned char after_current_frame[4]
unsigned char console_error[4]
unsigned char camera_passepartout[4]
unsigned char bone_solid[4]
unsigned char clipping_border_3d[4]
unsigned char extra_edge_angle[4]
unsigned char header[4]
unsigned char face_select[4]
unsigned char mask[4]
unsigned char facedot_size
unsigned char loop_normal[4]
unsigned char node_zone_foreach_geometry_element[4]
unsigned char nodeclass_vector[4]
unsigned char camera[4]
unsigned char preview_stitch_face[4]
unsigned char path_after[4]
unsigned char title[4]
unsigned char face[4]
unsigned char bone_locked_weight[4]
unsigned char keyborder_select[4]
unsigned char extra_face_angle[4]
unsigned char metadatatext[4]
unsigned char preview_stitch_edge[4]
unsigned char nodeclass_attribute[4]
unsigned char edge_width
unsigned char face_mode_select[4]
unsigned char preview_back[4]
unsigned char gp_vertex[4]
unsigned char extra_face_area[4]
unsigned char crease[4]
unsigned char nurb_sel_vline[4]
unsigned char line_numbers[4]
unsigned char node_zone_simulation[4]
unsigned char preview_stitch_stitchable[4]
unsigned char console_cursor[4]
unsigned char text_strip[4]
unsigned char metadatabg[4]
unsigned char preview_stitch_unstitchable[4]
unsigned char meta[4]
unsigned char syntaxd[4]
unsigned char strip[4]
unsigned char nurb_sel_uline[4]
unsigned char info_property[4]
unsigned char info_selected[4]
unsigned char nurb_vline[4]
unsigned char text_strip_cursor[4]
unsigned char bone_pose[4]
unsigned char wire[4]
unsigned char shade1[4]
unsigned char color_strip[4]
unsigned char vertex_active[4]
unsigned char preview_stitch_active[4]
unsigned char nodeclass_geometry[4]
unsigned char path_keyframe_before[4]
unsigned char nodeclass_script[4]
unsigned char nodeclass_shader[4]
unsigned char _pad1[2]
unsigned char image[4]
unsigned char vertex_normal[4]
unsigned char nla_tweakdupli[4]
unsigned char info_debug_text[4]
unsigned char nla_transition[4]
unsigned char face_retopology[4]
unsigned char nla_sound_sel[4]
unsigned char grid_levels
unsigned char nla_sound[4]
unsigned char header_text[4]
unsigned char text_hi[4]
unsigned char node_outline[4]
unsigned char uv_shadow[4]
unsigned char edited_object[4]
unsigned char node_zone_closure[4]
unsigned char grid[4]
unsigned char path_keyframe_after[4]
unsigned char hilite[4]
unsigned char nla_transition_sel[4]
unsigned char nodeclass_output[4]
unsigned char info_operator[4]
unsigned char simulated_frames[4]
unsigned char header_title[4]
unsigned char info_operator_text[4]
unsigned char back[4]
unsigned char console_output[4]
unsigned char info_info_text[4]
unsigned char time_gp_keyframe[4]
unsigned char lamp[4]
unsigned char audio[4]
unsigned char nurb_uline[4]
unsigned char info_debug[4]
unsigned char nodeclass_texture[4]
unsigned char face_front[4]
unsigned char keyborder[4]
unsigned char row_alternate[4]
unsigned char nla_tweaking[4]
unsigned char console_input[4]
unsigned char bevel[4]
unsigned char nla_meta_sel[4]
unsigned char strip_select[4]
unsigned char info_warning_text[4]
unsigned char info_error_text[4]
unsigned char selected_strip[4]
unsigned char scene[4]
unsigned char syntaxb[4]
unsigned char color[4]
float menu_shadow_fac
unsigned char gizmo_primary[4]
uiWidgetColors wcol_pulldown
uiWidgetColors wcol_numslider
uiWidgetColors wcol_list_item
unsigned char panel_active[4]
uiWidgetColors wcol_menu
unsigned char editor_border[4]
uiWidgetColors wcol_progress
unsigned char xaxis[4]
char _pad3[4]
unsigned char panel_text[4]
char _pad1[5]
uiWidgetColors wcol_menu_back
unsigned char transparent_checker_secondary[4]
uiWidgetColors wcol_num
float icon_border_intensity
short menu_shadow_width
float panel_roundness
unsigned char icon_modifier[4]
unsigned char zaxis[4]
unsigned char editor_outline_active[4]
unsigned char icon_shading[4]
uiWidgetColors wcol_curve
unsigned char transparent_checker_size
float icon_alpha
unsigned char gizmo_view_align[4]
uiWidgetColors wcol_menu_item
uiWidgetColors wcol_toggle
unsigned char panel_header[4]
unsigned char panel_sub_back[4]
uiWidgetColors wcol_regular
uiWidgetColors wcol_tooltip
unsigned char panel_outline[4]
uiWidgetColors wcol_option
unsigned char icon_folder[4]
uiWidgetColors wcol_text
unsigned char icon_scene[4]
unsigned char gizmo_hi[4]
unsigned char editor_outline[4]
unsigned char gizmo_secondary[4]
unsigned char icon_object[4]
uiWidgetColors wcol_tab
uiWidgetStateColors wcol_state
uiWidgetColors wcol_radio
unsigned char gizmo_a[4]
uiWidgetColors wcol_scroll
uiWidgetColors wcol_pie_menu
uiWidgetColors wcol_toolbar_item
unsigned char icon_collection[4]
unsigned char widget_text_cursor[4]
uiWidgetColors wcol_tool
unsigned char gizmo_b[4]
unsigned char widget_emboss[4]
unsigned char waxis[4]
unsigned char transparent_checker_primary[4]
unsigned char icon_autokey[4]
unsigned char panel_back[4]
float icon_saturation
unsigned char yaxis[4]
unsigned char panel_title[4]
unsigned char icon_object_data[4]
uiWidgetColors wcol_box
unsigned char select[4]
unsigned char solid[4]
unsigned char active[4]
ThemeSpace space_sequencer
int active_theme_area
ThemeStripColor strip_color[9]
ThemeSpace space_clip
ThemeSpace space_topbar
ThemeSpace space_action
ThemeSpace space_view3d
struct bTheme * next
ThemeSpace space_properties
ThemeSpace space_outliner
ThemeSpace space_nla
char filepath[1024]
ThemeRegions regions
ThemeSpace space_graph
ThemeUI tui
ThemeSpace space_preferences
ThemeSpace space_image
ThemeCommon common
ThemeWireColor tarm[20]
ThemeSpace space_node
ThemeSpace space_console
struct bTheme * prev
ThemeSpace space_spreadsheet
ThemeCollectionColor collection_color[8]
char name[64]
ThemeSpace space_text
ThemeSpace space_info
ThemeSpace space_statusbar
ThemeSpace space_file
short blf_id
struct uiFont * next
struct uiFont * prev
char filepath[1024]
short uifont_id
struct uiStyle * next
short buttonspacey
uiFontStyle tooltip
uiFontStyle paneltitle
short minlabelchars
uiFontStyle grouplabel
short buttonspacex
short panelouter
short templatespace
short panelspace
float panelzoom
struct uiStyle * prev
short minwidgetchars
uiFontStyle widget
char _pad0[2]
short columnspace
char name[64]
unsigned char inner_sel[4]
unsigned char inner[4]
unsigned char outline[4]
unsigned char outline_sel[4]
unsigned char text[4]
unsigned char item[4]
unsigned char text_sel[4]
unsigned char shaded
unsigned char inner_key_sel[4]
unsigned char inner_changed_sel[4]
unsigned char inner_anim_sel[4]
unsigned char inner_changed[4]
unsigned char success[4]
unsigned char info[4]
unsigned char warning[4]
unsigned char error[4]
unsigned char inner_key[4]
unsigned char inner_driven_sel[4]
unsigned char inner_anim[4]
unsigned char inner_overridden[4]
unsigned char inner_overridden_sel[4]
unsigned char inner_driven[4]