Blender V4.5
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
109typedef struct uiWidgetColors {
110 unsigned char outline[4];
111 unsigned char inner[4];
112 unsigned char inner_sel[4];
113 unsigned char item[4];
114 unsigned char text[4];
115 unsigned char text_sel[4];
116 unsigned char shaded;
117 char _pad0[7];
121
122typedef struct uiWidgetStateColors {
123 unsigned char error[4];
124 unsigned char warning[4];
125 unsigned char info[4];
126 unsigned char success[4];
127 unsigned char inner_anim[4];
128 unsigned char inner_anim_sel[4];
129 unsigned char inner_key[4];
130 unsigned char inner_key_sel[4];
131 unsigned char inner_driven[4];
132 unsigned char inner_driven_sel[4];
133 unsigned char inner_overridden[4];
134 unsigned char inner_overridden_sel[4];
135 unsigned char inner_changed[4];
136 unsigned char inner_changed_sel[4];
137 float blend;
138 char _pad0[4];
140
141typedef struct uiPanelColors {
142 unsigned char header[4];
143 unsigned char back[4];
144 unsigned char sub_back[4];
145 char _pad0[4];
147
148typedef struct ThemeUI {
149 /* Interface Elements (buttons, menus, icons) */
155
157
158 unsigned char widget_emboss[4];
159
160 /* fac: 0 - 1 for blend factor, width in pixels */
163
164 unsigned char editor_border[4];
165 unsigned char editor_outline[4];
166 unsigned char editor_outline_active[4];
167
168 /* Transparent Grid */
171 char _pad1[1];
172
175 unsigned char widget_text_cursor[4];
176
177 /* Axis Colors */
178 unsigned char xaxis[4], yaxis[4], zaxis[4];
179
180 /* Gizmo Colors. */
181 unsigned char gizmo_hi[4];
182 unsigned char gizmo_primary[4];
183 unsigned char gizmo_secondary[4];
184 unsigned char gizmo_view_align[4];
185 unsigned char gizmo_a[4];
186 unsigned char gizmo_b[4];
187
188 /* Icon Colors. */
190 unsigned char icon_scene[4];
192 unsigned char icon_collection[4];
194 unsigned char icon_object[4];
196 unsigned char icon_object_data[4];
198 unsigned char icon_modifier[4];
200 unsigned char icon_shading[4];
202 unsigned char icon_folder[4];
204 unsigned char icon_autokey[4];
205 char _pad3[4];
210 char _pad2[4];
211
213
214typedef struct ThemeAssetShelf {
215 unsigned char header_back[4];
216 unsigned char back[4];
218
219/* try to put them all in one, if needed a special struct can be created as well
220 * for example later on, when we introduce wire colors for ob types or so...
221 */
222typedef struct ThemeSpace {
223 /* main window colors */
224 unsigned char back[4];
225 unsigned char back_grad[4];
226
228 char _pad0[3];
229
231 unsigned char title[4];
232 unsigned char text[4];
233 unsigned char text_hi[4];
234
235 /* header colors */
237 unsigned char header[4];
239 unsigned char header_title[4];
240 unsigned char header_text[4];
241 unsigned char header_text_hi[4];
242
243 /* region tabs */
244 unsigned char tab_active[4];
245 unsigned char tab_inactive[4];
246 unsigned char tab_back[4];
247 unsigned char tab_outline[4];
248
249 /* button/tool regions */
251 unsigned char button[4];
253 unsigned char button_title[4];
254 unsigned char button_text[4];
255 unsigned char button_text_hi[4];
256
257 /* List-view regions. */
259 unsigned char list[4];
261 unsigned char list_title[4];
262 unsigned char list_text[4];
263 unsigned char list_text_hi[4];
264
265 /* navigation bar regions */
267 unsigned char navigation_bar[4];
269 unsigned char execution_buts[4];
270
271 /* NOTE: cannot use name 'panel' because of DNA mapping old files. */
273
275
276 unsigned char shade1[4];
277 unsigned char shade2[4];
278
279 unsigned char hilite[4];
280 unsigned char grid[4];
281
282 unsigned char view_overlay[4];
283
284 unsigned char wire[4], wire_edit[4], select[4];
285 unsigned char lamp[4], speaker[4], empty[4], camera[4];
286 unsigned char active[4], group[4], group_active[4], transform[4];
287 unsigned char vertex[4], vertex_select[4], vertex_active[4], vertex_bevel[4],
289 unsigned char edge[4], edge_select[4], edge_mode_select[4];
290 unsigned char edge_seam[4], edge_sharp[4], edge_facesel[4], edge_crease[4], edge_bevel[4];
292 unsigned char face[4], face_select[4], face_mode_select[4], face_retopology[4];
293 unsigned char face_back[4], face_front[4];
295 unsigned char face_dot[4];
297 unsigned char normal[4];
298 unsigned char vertex_normal[4];
299 unsigned char loop_normal[4];
301 unsigned char strip[4], strip_select[4];
302 unsigned char cframe[4];
304 unsigned char time_keyframe[4], time_gp_keyframe[4];
306 unsigned char time_scrub_background[4];
308
309 unsigned char nurb_uline[4], nurb_vline[4];
311
312 unsigned char handle_free[4], handle_auto[4], handle_vect[4], handle_align[4],
316
318 unsigned char ds_channel[4], ds_subchannel[4], ds_ipoline[4];
325 unsigned char keyborder[4], keyborder_select[4];
326 char _pad4[3];
327
329 unsigned char console_cursor[4], console_select[4];
330
332 unsigned char noodle_curving;
333 unsigned char grid_levels;
334 char _pad5[2];
336
337 /* Syntax for text-window and nodes. */
338 unsigned char syntaxl[4], syntaxs[4]; /* In node-space used for backdrop matte. */
339 unsigned char syntaxb[4], syntaxn[4]; /* In node-space used for color input. */
340 unsigned char syntaxv[4], syntaxc[4]; /* In node-space used for converter group. */
341 unsigned char syntaxd[4], syntaxr[4]; /* In node-space used for distort. */
342
343 unsigned char line_numbers[4];
344
345 unsigned char nodeclass_output[4], nodeclass_filter[4];
347 unsigned char nodeclass_shader[4], nodeclass_script[4];
350
351 unsigned char node_zone_simulation[4];
352 unsigned char node_zone_repeat[4];
354 unsigned char node_zone_closure[4];
355 unsigned char simulated_frames[4];
356 char _pad7[4];
357
359 unsigned char movie[4], movieclip[4], mask[4], image[4], scene[4], audio[4];
360 unsigned char effect[4], transition[4], meta[4], text_strip[4], color_strip[4];
362
365
366 unsigned char editmesh_active[4];
367
368 unsigned char handle_vertex[4];
369 unsigned char handle_vertex_select[4];
370
371 unsigned char handle_vertex_size;
372
373 unsigned char clipping_border_3d[4];
374
375 unsigned char marker_outline[4], marker[4], act_marker[4], sel_marker[4], dis_marker[4],
377 unsigned char bundle_solid[4];
378 unsigned char path_before[4], path_after[4];
380 unsigned char camera_path[4];
381 unsigned char camera_passepartout[4];
382 unsigned char _pad1[2];
383
384 unsigned char gp_vertex_size;
385 unsigned char gp_vertex[4], gp_vertex_select[4];
386
387 unsigned char preview_back[4];
388 unsigned char preview_stitch_face[4];
389 unsigned char preview_stitch_edge[4];
390 unsigned char preview_stitch_vert[4];
393 unsigned char preview_stitch_active[4];
394
396 unsigned char uv_shadow[4];
397
399 unsigned char match[4];
401 unsigned char selected_highlight[4];
403 unsigned char selected_object[4];
405 unsigned char active_object[4];
407 unsigned char edited_object[4];
409 unsigned char row_alternate[4];
410
412 unsigned char skin_root[4];
413
414 /* NLA */
416 unsigned char anim_active[4];
418 unsigned char anim_non_active[4];
420 unsigned char anim_preview_range[4];
421
423 unsigned char nla_tweaking[4];
425 unsigned char nla_tweakdupli[4];
426
428 unsigned char nla_track[4];
430 unsigned char nla_transition[4], nla_transition_sel[4];
432 unsigned char nla_meta[4], nla_meta_sel[4];
434 unsigned char nla_sound[4], nla_sound_sel[4];
435
436 /* info */
437 unsigned char info_selected[4], info_selected_text[4];
438 unsigned char info_error_text[4];
439 unsigned char info_warning_text[4];
440 unsigned char info_info_text[4];
441 unsigned char info_debug[4], info_debug_text[4];
442 unsigned char info_property[4], info_property_text[4];
443 unsigned char info_operator[4], info_operator_text[4];
444 char _pad6[4];
445
446 unsigned char paint_curve_pivot[4];
447 unsigned char paint_curve_handle[4];
448
449 unsigned char metadatabg[4];
450 unsigned char metadatatext[4];
451
453
454/* Viewport Background Gradient Types. */
455
461
463typedef struct ThemeWireColor {
464 unsigned char solid[4];
465 unsigned char select[4];
466 unsigned char active[4];
467
469 short flag;
470 char _pad0[2];
472
474typedef enum eWireColor_Flags {
476 /* TH_WIRECOLOR_TEXTCOLS = (1 << 1), */ /* UNUSED */
478
479typedef struct ThemeCollectionColor {
480 unsigned char color[4];
482
483typedef struct ThemeStripColor {
484 unsigned char color[4];
486
493typedef struct bTheme {
494 struct bTheme *next, *prev;
495 char name[/*MAX_NAME*/ 64];
496
497 /* NOTE: Values after `name` are copied when resetting the default theme. */
498
505 char filepath[/*FILE_MAX*/ 1024];
506
508
531
532 /* 20 sets of bone colors for this theme */
534 // ThemeWireColor tobj[20];
535
536 /* See COLLECTION_COLOR_TOT for the number of collection colors. */
538
539 /* See STRIP_COLOR_TOT for the total number of strip colors. */
541
544
545#define UI_THEMESPACE_START(btheme) \
546 (CHECK_TYPE_INLINE(btheme, bTheme *), &((btheme)->space_properties))
547#define UI_THEMESPACE_END(btheme) \
548 (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 back[4]
unsigned char header_back[4]
unsigned char color[4]
unsigned char keytype_keyframe_select[4]
unsigned char back_grad[4]
unsigned char preview_stitch_vert[4]
unsigned char path_before[4]
unsigned char edge_bevel[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]
ThemeAssetShelf asset_shelf
unsigned char handle_sel_auto[4]
unsigned char time_scrub_background[4]
unsigned char syntaxl[4]
unsigned char active_object[4]
unsigned char nodeclass_filter[4]
unsigned char keytype_jitter[4]
unsigned char keytype_keyframe[4]
unsigned char keytype_breakdown_select[4]
unsigned char anim_active[4]
unsigned char anim_non_active[4]
unsigned char shade2[4]
unsigned char handle_free[4]
unsigned char console_info[4]
unsigned char edge_crease[4]
unsigned char group_active[4]
unsigned char edge_select[4]
unsigned char handle_sel_vect[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 keytype_extreme[4]
unsigned char text[4]
unsigned char gp_vertex_size
unsigned char syntaxv[4]
unsigned char ds_subchannel[4]
unsigned char syntaxc[4]
unsigned char syntaxn[4]
unsigned char gp_vertex_select[4]
unsigned char sel_marker[4]
unsigned char navigation_bar[4]
unsigned char keytype_movehold_select[4]
unsigned char vertex_unreferenced[4]
unsigned char effect[4]
unsigned char list_text[4]
unsigned char transition[4]
unsigned char keytype_extreme_select[4]
unsigned char active[4]
unsigned char vertex_select[4]
unsigned char outline_width
unsigned char selected_object[4]
unsigned char time_marker_line_selected[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 info_property_text[4]
unsigned char normal[4]
unsigned char syntaxs[4]
unsigned char time_keyframe[4]
unsigned char transform[4]
unsigned char select[4]
unsigned char handle_vertex_size
unsigned char before_current_frame[4]
unsigned char list[4]
unsigned char face_dot[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]
uiPanelColors panelcolors
unsigned char handle_vect[4]
unsigned char syntaxr[4]
unsigned char handle_auto[4]
unsigned char extra_edge_len[4]
unsigned char list_title[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 handle_auto_clamped[4]
unsigned char keytype_breakdown[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 nla_track[4]
unsigned char node_zone_foreach_geometry_element[4]
unsigned char nodeclass_vector[4]
unsigned char camera[4]
unsigned char button_text_hi[4]
unsigned char preview_stitch_face[4]
unsigned char freestyle_face_mark[4]
unsigned char nodeclass_layout[4]
unsigned char path_after[4]
unsigned char title[4]
unsigned char edge_facesel[4]
unsigned char button_title[4]
unsigned char face[4]
unsigned char bone_locked_weight[4]
unsigned char group[4]
unsigned char keyborder_select[4]
unsigned char extra_face_angle[4]
unsigned char tab_back[4]
unsigned char vertex_bevel[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 freestyle_edge_mark[4]
unsigned char anim_preview_range[4]
unsigned char preview_back[4]
unsigned char gp_vertex[4]
unsigned char extra_face_area[4]
unsigned char handle_sel_align[4]
unsigned char lastsel_point[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 button_text[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 edge_sharp[4]
unsigned char wire[4]
unsigned char shade1[4]
unsigned char handle_align[4]
unsigned char color_strip[4]
unsigned char vertex_active[4]
unsigned char preview_stitch_active[4]
unsigned char nodeclass_geometry[4]
unsigned char cframe[4]
unsigned char path_keyframe_before[4]
unsigned char nodeclass_script[4]
unsigned char tab_inactive[4]
unsigned char nodeclass_shader[4]
unsigned char time_marker_line[4]
unsigned char paint_curve_pivot[4]
unsigned char _pad1[2]
unsigned char nodeclass_pattern[4]
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 uv_shadow[4]
unsigned char edited_object[4]
unsigned char node_zone_closure[4]
unsigned char button[4]
unsigned char grid[4]
unsigned char path_keyframe_after[4]
unsigned char keytype_generated[4]
unsigned char hilite[4]
unsigned char edge_seam[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 handle_sel_auto_clamped[4]
unsigned char info_operator_text[4]
unsigned char back[4]
unsigned char tab_active[4]
unsigned char console_output[4]
unsigned char act_spline[4]
unsigned char info_info_text[4]
unsigned char time_gp_keyframe[4]
unsigned char lamp[4]
unsigned char handle_vertex_select[4]
unsigned char handle_sel_free[4]
unsigned char audio[4]
unsigned char nurb_uline[4]
unsigned char keytype_movehold[4]
unsigned char info_debug[4]
unsigned char nodeclass_texture[4]
unsigned char paint_curve_handle[4]
unsigned char face_front[4]
unsigned char handle_vertex[4]
unsigned char keyborder[4]
unsigned char execution_buts[4]
unsigned char row_alternate[4]
unsigned char ds_channel[4]
unsigned char nla_tweaking[4]
unsigned char list_text_hi[4]
unsigned char console_input[4]
unsigned char nla_meta_sel[4]
unsigned char strip_select[4]
unsigned char info_warning_text[4]
unsigned char tab_outline[4]
unsigned char info_error_text[4]
unsigned char selected_strip[4]
unsigned char keytype_generated_select[4]
unsigned char keytype_jitter_select[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
uiWidgetColors wcol_menu
unsigned char editor_border[4]
uiWidgetColors wcol_progress
unsigned char xaxis[4]
char _pad3[4]
uiWidgetColors wcol_menu_back
char _pad1[1]
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]
unsigned char transparent_checker_size
float icon_alpha
unsigned char gizmo_view_align[4]
uiWidgetColors wcol_menu_item
uiWidgetColors wcol_toggle
uiWidgetColors wcol_regular
uiWidgetColors wcol_tooltip
uiWidgetColors wcol_option
char _pad2[4]
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 transparent_checker_primary[4]
unsigned char icon_autokey[4]
float icon_saturation
unsigned char yaxis[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]
ThemeSpace space_graph
ThemeUI tui
ThemeSpace space_preferences
ThemeSpace space_image
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
unsigned char sub_back[4]
unsigned char back[4]
unsigned char header[4]
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 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]