Blender V4.3
BKE_workspace.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
9#pragma once
10
11#include "BLI_compiler_attrs.h"
12
13struct Main;
14struct bScreen;
15struct bToolRef;
16struct WorkSpace;
18struct WorkSpaceLayout;
19
20namespace blender::bke {
21
23 int icon = 0;
24 std::string text = {};
25 float space_factor = 0.0f;
26 bool inverted = false;
27};
28
32
33} // namespace blender::bke
34
35/* -------------------------------------------------------------------- */
39WorkSpace *BKE_workspace_add(Main *bmain, const char *name);
47void BKE_workspace_remove(Main *bmain, WorkSpace *workspace);
48
51
56 WorkSpace *workspace,
57 bScreen *screen,
58 const char *name) ATTR_NONNULL();
59void BKE_workspace_layout_remove(Main *bmain, WorkSpace *workspace, WorkSpaceLayout *layout)
61
62void BKE_workspace_relations_free(ListBase *relation_list);
63
66/* -------------------------------------------------------------------- */
70WorkSpaceLayout *BKE_workspace_layout_find(const WorkSpace *workspace, const bScreen *screen)
80 const bScreen *screen,
81 WorkSpace **r_workspace) ATTR_NONNULL(1, 2);
82
93 WorkSpaceLayout *start,
94 bool (*callback)(const WorkSpaceLayout *layout,
95 void *arg),
96 void *arg,
97 bool iter_backward);
98
100
112 const int space_type,
113 const int mode,
114 const char *idname_prefix_skip,
115 const char *replace_table[][2],
116 int replace_table_num) ATTR_NONNULL(1, 5);
117
120/* -------------------------------------------------------------------- */
124#define GETTER_ATTRS ATTR_NONNULL() ATTR_WARN_UNUSED_RESULT
125#define SETTER_ATTRS ATTR_NONNULL(1)
126
146 int winid,
147 WorkSpace *workspace,
151 int winid,
152 WorkSpace *workspace,
153 bScreen *screen) SETTER_ATTRS;
154
157 WorkSpaceLayout *layout,
158 const char *new_name) ATTR_NONNULL();
160
165 const WorkSpaceInstanceHook *hook, const WorkSpace *workspace) GETTER_ATTRS;
166
167bool BKE_workspace_owner_id_check(const WorkSpace *workspace, const char *owner_id) ATTR_NONNULL();
168
170
175
176#undef GETTER_ATTRS
177#undef SETTER_ATTRS
178
#define GETTER_ATTRS
WorkSpaceLayout * BKE_workspace_layout_find(const WorkSpace *workspace, const bScreen *screen) ATTR_NONNULL() ATTR_WARN_UNUSED_RESULT
Definition workspace.cc:427
const char * BKE_workspace_layout_name_get(const WorkSpaceLayout *layout) GETTER_ATTRS
Definition workspace.cc:627
void BKE_workspace_layout_name_set(WorkSpace *workspace, WorkSpaceLayout *layout, const char *new_name) ATTR_NONNULL()
Definition workspace.cc:631
WorkSpace * BKE_workspace_add(Main *bmain, const char *name)
Definition workspace.cc:317
void BKE_workspace_tool_remove(WorkSpace *workspace, bToolRef *tref) ATTR_NONNULL(1
void void BKE_workspace_tool_id_replace_table(WorkSpace *workspace, const int space_type, const int mode, const char *idname_prefix_skip, const char *replace_table[][2], int replace_table_num) ATTR_NONNULL(1
void BKE_workspace_status_clear(WorkSpace *workspace)
Definition workspace.cc:649
WorkSpaceInstanceHook * BKE_workspace_instance_hook_create(const Main *bmain, int winid)
Definition workspace.cc:337
void BKE_workspace_instance_hook_free(const Main *bmain, WorkSpaceInstanceHook *hook)
Definition workspace.cc:351
bScreen * BKE_workspace_layout_screen_get(const WorkSpaceLayout *layout) GETTER_ATTRS
Definition workspace.cc:638
void BKE_workspace_active_screen_set(WorkSpaceInstanceHook *hook, int winid, WorkSpace *workspace, bScreen *screen) SETTER_ATTRS
Definition workspace.cc:617
void BKE_workspace_id_tag_all_visible(Main *bmain, int tag) ATTR_NONNULL()
Definition workspace.cc:546
void BKE_workspace_layout_remove(Main *bmain, WorkSpace *workspace, WorkSpaceLayout *layout) ATTR_NONNULL()
Definition workspace.cc:397
WorkSpaceLayout WorkSpaceLayout * BKE_workspace_layout_iter_circular(const WorkSpace *workspace, WorkSpaceLayout *start, bool(*callback)(const WorkSpaceLayout *layout, void *arg), void *arg, bool iter_backward)
Definition workspace.cc:469
bool BKE_workspace_owner_id_check(const WorkSpace *workspace, const char *owner_id) ATTR_NONNULL()
Definition workspace.cc:536
WorkSpaceLayout * BKE_workspace_layout_add(Main *bmain, WorkSpace *workspace, bScreen *screen, const char *name) ATTR_NONNULL()
Definition workspace.cc:378
void BKE_workspace_relations_free(ListBase *relation_list)
Definition workspace.cc:408
void BKE_workspace_remove(Main *bmain, WorkSpace *workspace)
Definition workspace.cc:324
void BKE_workspace_active_layout_set(WorkSpaceInstanceHook *hook, int winid, WorkSpace *workspace, WorkSpaceLayout *layout) SETTER_ATTRS
Activate a layout.
Definition workspace.cc:604
bScreen * BKE_workspace_active_screen_get(const WorkSpaceInstanceHook *hook) GETTER_ATTRS
Definition workspace.cc:613
#define SETTER_ATTRS
WorkSpaceLayout * BKE_workspace_active_layout_for_workspace_get(const WorkSpaceInstanceHook *hook, const WorkSpace *workspace) GETTER_ATTRS
Definition workspace.cc:591
WorkSpace * BKE_workspace_active_get(WorkSpaceInstanceHook *hook) GETTER_ATTRS
Definition workspace.cc:562
void BKE_workspace_active_set(WorkSpaceInstanceHook *hook, WorkSpace *workspace) SETTER_ATTRS
Definition workspace.cc:566
WorkSpaceLayout * BKE_workspace_active_layout_get(const WorkSpaceInstanceHook *hook) GETTER_ATTRS
Definition workspace.cc:586
WorkSpaceLayout * BKE_workspace_layout_find_global(const Main *bmain, const bScreen *screen, WorkSpace **r_workspace) ATTR_NONNULL(1
#define ATTR_WARN_UNUSED_RESULT
#define ATTR_NONNULL(...)
DEGForeachIDComponentCallback callback
Wrapper for bScreen.
Vector< WorkSpaceStatusItem > status
int winid
Definition wm_draw.cc:169