Cleanup: Split header for Outliner tree building into C and C++ headers
See https://developer.blender.org/D9499. It's odd to include a C++ header (".hh") in C code, we should avoid that. All of the Outliner code should be moved to C++, I don't expect this C header to stay for long.
This commit is contained in:
parent
c2b3a68f24
commit
40aa69e2eb
|
@ -50,6 +50,7 @@ set(SRC
|
|||
tree/tree_display_view_layer.cc
|
||||
|
||||
outliner_intern.h
|
||||
tree/tree_display.h
|
||||
tree/tree_display.hh
|
||||
)
|
||||
|
||||
|
|
|
@ -85,7 +85,7 @@
|
|||
#include "UI_interface.h"
|
||||
|
||||
#include "outliner_intern.h"
|
||||
#include "tree/tree_display.hh"
|
||||
#include "tree/tree_display.h"
|
||||
|
||||
#ifdef WIN32
|
||||
# include "BLI_math_base.h" /* M_PI */
|
||||
|
|
|
@ -0,0 +1,64 @@
|
|||
/*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
/** \file
|
||||
* \ingroup spoutliner
|
||||
*
|
||||
* C-API for the Tree-Display types.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "DNA_space_types.h"
|
||||
|
||||
struct ListBase;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/** C alias for an #AbstractTreeDisplay handle. */
|
||||
typedef struct TreeDisplay TreeDisplay;
|
||||
|
||||
/**
|
||||
* \brief The data to build the tree from.
|
||||
*/
|
||||
typedef struct TreeSourceData {
|
||||
struct Main *bmain;
|
||||
struct Scene *scene;
|
||||
struct ViewLayer *view_layer;
|
||||
} TreeSourceData;
|
||||
|
||||
TreeDisplay *outliner_tree_display_create(eSpaceOutliner_Mode mode, SpaceOutliner *space_outliner);
|
||||
void outliner_tree_display_destroy(TreeDisplay **tree_display);
|
||||
|
||||
ListBase outliner_tree_display_build_tree(TreeDisplay *tree_display, TreeSourceData *source_data);
|
||||
|
||||
/* The following functions are needed to build the tree. They are calls back into C; the way
|
||||
* elements are created should be refactored and ported to C++ with a new design/API too. */
|
||||
struct TreeElement *outliner_add_element(SpaceOutliner *space_outliner,
|
||||
ListBase *lb,
|
||||
void *idv,
|
||||
struct TreeElement *parent,
|
||||
short type,
|
||||
short index);
|
||||
void outliner_make_object_parent_hierarchy(ListBase *lb);
|
||||
|
||||
const char *outliner_idcode_to_plural(short idcode);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
|
@ -34,7 +34,7 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#include "DNA_space_types.h"
|
||||
#include "tree_display.h"
|
||||
|
||||
struct ListBase;
|
||||
struct Main;
|
||||
|
@ -42,8 +42,6 @@ struct SpaceOutliner;
|
|||
struct TreeElement;
|
||||
struct TreeSourceData;
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
namespace blender::ed::outliner {
|
||||
|
||||
/* -------------------------------------------------------------------- */
|
||||
|
@ -113,42 +111,3 @@ class TreeDisplayLibraries final : public AbstractTreeDisplay {
|
|||
};
|
||||
|
||||
} // namespace blender::ed::outliner
|
||||
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* -------------------------------------------------------------------- */
|
||||
/* C-API */
|
||||
|
||||
/** C alias for an #AbstractTreeDisplay handle. */
|
||||
typedef struct TreeDisplay TreeDisplay;
|
||||
|
||||
/**
|
||||
* \brief The data to build the tree from.
|
||||
*/
|
||||
typedef struct TreeSourceData {
|
||||
struct Main *bmain;
|
||||
struct Scene *scene;
|
||||
struct ViewLayer *view_layer;
|
||||
} TreeSourceData;
|
||||
|
||||
TreeDisplay *outliner_tree_display_create(eSpaceOutliner_Mode mode, SpaceOutliner *space_outliner);
|
||||
void outliner_tree_display_destroy(TreeDisplay **tree_display);
|
||||
|
||||
ListBase outliner_tree_display_build_tree(TreeDisplay *tree_display, TreeSourceData *source_data);
|
||||
|
||||
/* The following functions are needed to build the tree. They are calls back into C; the way
|
||||
* elements are created should be refactored and ported to C++ with a new design/API too. */
|
||||
struct TreeElement *outliner_add_element(struct SpaceOutliner *space_outliner,
|
||||
ListBase *lb,
|
||||
void *idv,
|
||||
struct TreeElement *parent,
|
||||
short type,
|
||||
short index);
|
||||
void outliner_make_object_parent_hierarchy(ListBase *lb);
|
||||
|
||||
const char *outliner_idcode_to_plural(short idcode);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue