diff options
Diffstat (limited to 'source/blender/editors/space_api')
-rw-r--r-- | source/blender/editors/space_api/Makefile | 50 | ||||
-rw-r--r-- | source/blender/editors/space_api/SConscript | 15 | ||||
-rw-r--r-- | source/blender/editors/space_api/space.c | 46 | ||||
-rw-r--r-- | source/blender/editors/space_api/spacetypes.c | 164 |
4 files changed, 275 insertions, 0 deletions
diff --git a/source/blender/editors/space_api/Makefile b/source/blender/editors/space_api/Makefile new file mode 100644 index 00000000000..46f926afbc9 --- /dev/null +++ b/source/blender/editors/space_api/Makefile @@ -0,0 +1,50 @@ +# +# $Id: Makefile 14 2002-10-13 15:57:19Z hans $ +# +# ***** BEGIN GPL LICENSE BLOCK ***** +# +# 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# The Original Code is Copyright (C) 2007 Blender Foundation +# All rights reserved. +# +# The Original Code is: all of this file. +# +# Contributor(s): none yet. +# +# ***** END GPL LICENSE BLOCK ***** +# +# Makes module object directory and bounces make to subdirectories. + +LIBNAME = ed_space +DIR = $(OCGDIR)/blender/$(LIBNAME) + +include nan_compile.mk + +CFLAGS += $(LEVEL_1_C_WARNINGS) + +CPPFLAGS += -I$(NAN_GLEW)/include +CPPFLAGS += -I$(OPENGL_HEADERS) + +# not very neat.... +CPPFLAGS += -I../../blenkernel +CPPFLAGS += -I../../blenlib +CPPFLAGS += -I../../makesdna +CPPFLAGS += -I../../makesrna +CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include + +# own include + +CPPFLAGS += -I../include diff --git a/source/blender/editors/space_api/SConscript b/source/blender/editors/space_api/SConscript new file mode 100644 index 00000000000..533c3d8b4d3 --- /dev/null +++ b/source/blender/editors/space_api/SConscript @@ -0,0 +1,15 @@ +#!/usr/bin/python +Import ('env') + +sources = env.Glob('*.c') + +incs = '../include ../../blenlib ../../blenkernel ../../makesdna' +incs += ' ../../windowmanager ../../python ../../makesrna' +incs += ' #/intern/guardedalloc #/extern/glew/include' + +defs = '' + +if not env['WITH_BF_PYTHON']: + defs += 'DISABLE_PYTHON' + +env.BlenderLib ( 'bf_editors_space_api', sources, Split(incs), Split(defs), libtype=['core','intern'], priority=[30, 35] ) diff --git a/source/blender/editors/space_api/space.c b/source/blender/editors/space_api/space.c new file mode 100644 index 00000000000..df844dc527d --- /dev/null +++ b/source/blender/editors/space_api/space.c @@ -0,0 +1,46 @@ +/** + * $Id: + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * The Original Code is Copyright (C) 2007 Blender Foundation. + * All rights reserved. + * + * + * Contributor(s): Blender Foundation + * + * ***** END GPL LICENSE BLOCK ***** + */ + +#include <string.h> +#include <stdio.h> + +#include "MEM_guardedalloc.h" + +#include "BLI_blenlib.h" +#include "BLI_arithb.h" + +#include "BKE_global.h" +#include "BKE_screen.h" + +#include "ED_area.h" +#include "ED_screen.h" + +/* */ + + + diff --git a/source/blender/editors/space_api/spacetypes.c b/source/blender/editors/space_api/spacetypes.c new file mode 100644 index 00000000000..8997daf3a7f --- /dev/null +++ b/source/blender/editors/space_api/spacetypes.c @@ -0,0 +1,164 @@ +/** + * $Id: spacetypes.c + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * The Original Code is Copyright (C) Blender Foundation, 2008 + * + * ***** END GPL/BL DUAL LICENSE BLOCK ***** + */ + +#include <stdlib.h> + +#include "MEM_guardedalloc.h" +#include "BLI_blenlib.h" + +#include "DNA_windowmanager_types.h" + +#include "BKE_global.h" +#include "BKE_screen.h" + +#include "UI_interface.h" +#include "UI_view2d.h" + +#include "BIF_gl.h" + +#include "ED_screen.h" +#include "ED_area.h" + + +ARegionType *ED_regiontype_from_id(SpaceType *st, int regionid) +{ + ARegionType *art; + + for(art= st->regiontypes.first; art; art= art->next) + if(art->regionid==regionid) + return art; + + printf("Error, region type missing in %s\n", st->name); + return st->regiontypes.first; +} + + +/* only call once on startup, storage is global in BKE kernel listbase */ +void ED_spacetypes_init(void) +{ + const ListBase *spacetypes; + SpaceType *type; + + /* create space types */ + ED_spacetype_outliner(); + ED_spacetype_time(); + ED_spacetype_view3d(); +// ED_spacetype_ipo(); +// ... + + /* register operator types for screen and all spaces */ + ED_operatortypes_screen(); + ui_view2d_operatortypes(); + + spacetypes = BKE_spacetypes_list(); + for(type=spacetypes->first; type; type=type->next) + type->operatortypes(); +} + +/* called in wm.c */ +/* keymap definitions are registered only once per WM initialize, usually on file read, + using the keymap the actual areas/regions add the handlers */ +void ED_spacetypes_keymap(wmWindowManager *wm) +{ + const ListBase *spacetypes; + SpaceType *stype; + ARegionType *atype; + + ED_keymap_screen(wm); + UI_view2d_keymap(wm); + + spacetypes = BKE_spacetypes_list(); + for(stype=spacetypes->first; stype; stype=stype->next) { + if(stype->keymap) + stype->keymap(wm); + for(atype=stype->regiontypes.first; atype; atype=atype->next) { + if(atype->keymap) + atype->keymap(wm); + } + } +} + +/* ****************************** space template *********************** */ + +/* allocate and init some vars */ +static SpaceLink *xxx_new(void) +{ + return NULL; +} + +/* not spacelink itself */ +static void xxx_free(SpaceLink *sl) +{ + +} + +/* spacetype; init callback for usage, should be redoable */ +static void xxx_init(wmWindowManager *wm, ScrArea *sa) +{ + + /* link area to SpaceXXX struct */ + + /* define how many regions, the order and types */ + + /* add types to regions */ +} + +static SpaceLink *xxx_duplicate(SpaceLink *sl) +{ + + return NULL; +} + +static void xxx_operatortypes(void) +{ + /* register operator types for this space */ +} + +static void xxx_keymap(wmWindowManager *wm) +{ + /* add default items to keymap */ +} + +/* only called once, from screen/spacetypes.c */ +void ED_spacetype_xxx(void) +{ + static SpaceType st; + + st.spaceid= SPACE_VIEW3D; + + st.new= xxx_new; + st.free= xxx_free; + st.init= xxx_init; + st.duplicate= xxx_duplicate; + st.operatortypes= xxx_operatortypes; + st.keymap= xxx_keymap; + + BKE_spacetype_register(&st); +} + +/* ****************************** end template *********************** */ + + + + |