The outliner is a hierarchical diagram displaying a list of data in Blender and its dependencies. The 'databrowse' doesn't really show it, and Oops is too chaotic still. And most of all, the former two don't offer much tools. After discussions on irc, Matt came with this design proposal; http://mke3.net/blender/interface/layout/outliner/ Which is closely followed for the implementation. The current version only shows all 'library data' in Blender (objects, meshes, ipos, etc) and not the 'direct data' such as vertex groups or NLA. I decided to make it inside the Oopw window, as an option. You can find the option in the "View" pulldown, or directly invoke it with ALT+SHIFT+F9 Here's a quick overview of the Outliner GUI: - Header pulldown has options what it can show (Visible = in current layers) - click on triangle arrow to open/close - press AKEY to open/close all - Leftmouse click on an item activates; and does based on type a couple of extra things: - activates a scene - selects/activates the Object - enters editmode (if clicked on Mesh, Curve, etc) - shows the appropriate Shading buttons (Lamp, Material, Texture) - sets the IpoWindow to the current IPO - activates the Ipo-channel in an Action - Selected and Active objects are drawn in its Theme selection color - SHIFT+click on Object does extend-select - Press DOTkey to get the current active data in center of view TODO; - rightmouse selection; for indicating operations like delete or duplicate - showing more data types - icon (re)design... - lotsof options as described in Matts paper still...
124 lines
4.0 KiB
C++
124 lines
4.0 KiB
C++
/**
|
|
* $Id$
|
|
*
|
|
* ***** BEGIN GPL/BL DUAL 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. The Blender
|
|
* Foundation also sells licenses for use in proprietary software under
|
|
* the Blender License. See http://www.blender.org/BL/ for information
|
|
* about this.
|
|
*
|
|
* 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) 2001-2002 by NaN Holding BV.
|
|
* All rights reserved.
|
|
*
|
|
* The Original Code is: all of this file.
|
|
*
|
|
* Contributor(s): none yet.
|
|
*
|
|
* ***** END GPL/BL DUAL LICENSE BLOCK *****
|
|
*/
|
|
|
|
#ifndef BIF_SPACE_H
|
|
#define BIF_SPACE_H
|
|
|
|
struct ListBase;
|
|
struct ScrArea;
|
|
struct SpaceButs;
|
|
struct View2D;
|
|
struct BWinEvent;
|
|
|
|
#define REMAKEIPO 1
|
|
#define OOPS_TEST 2
|
|
#define REMAKEALLIPO 3 /* Reevan's ipo fixing test */
|
|
|
|
#define BUT_HORIZONTAL 1
|
|
#define BUT_VERTICAL 2
|
|
|
|
/* is hardcoded in DNA_space_types.h */
|
|
#define SPACE_MAXHANDLER 8
|
|
|
|
/* view3d handler codes */
|
|
#define VIEW3D_HANDLER_BACKGROUND 1
|
|
#define VIEW3D_HANDLER_PROPERTIES 2
|
|
#define VIEW3D_HANDLER_OBJECT 3
|
|
|
|
/* ipo handler codes */
|
|
#define IPO_HANDLER_PROPERTIES 20
|
|
|
|
/* image handler codes */
|
|
#define IMAGE_HANDLER_PROPERTIES 30
|
|
#define IMAGE_HANDLER_PAINT 31
|
|
|
|
/* action handler codes */
|
|
#define ACTION_HANDLER_PROPERTIES 40
|
|
|
|
/* nla handler codes */
|
|
#define NLA_HANDLER_PROPERTIES 50
|
|
|
|
/* sequence handler codes */
|
|
#define SEQ_HANDLER_PROPERTIES 60
|
|
|
|
|
|
void scrarea_do_windraw (struct ScrArea *sa);
|
|
void scrarea_do_winchange (struct ScrArea *sa);
|
|
void scrarea_do_winhandle (struct ScrArea *sa, struct BWinEvent *evt);
|
|
void scrarea_do_headdraw (struct ScrArea *sa);
|
|
void scrarea_do_headchange (struct ScrArea *sa);
|
|
|
|
/* space.c */
|
|
extern void add_blockhandler(struct ScrArea *sa, short eventcode, short action);
|
|
extern void rem_blockhandler(struct ScrArea *sa, short eventcode);
|
|
extern void toggle_blockhandler(struct ScrArea *sa, short eventcode, short action);
|
|
|
|
extern void space_set_commmandline_options(void);
|
|
extern void allqueue(unsigned short event, short val);
|
|
extern void allspace(unsigned short event, short val);
|
|
extern void copy_view3d_lock(short val);
|
|
extern void drawemptyspace(struct ScrArea *sa, void *spacedata);
|
|
extern void drawinfospace(struct ScrArea *sa, void *spacedata);
|
|
extern void duplicatespacelist(struct ScrArea *area, struct ListBase *lb1, struct ListBase *lb2);
|
|
extern void extern_set_butspace(int fkey);
|
|
extern void force_draw(void);
|
|
extern void force_draw_all(void);
|
|
extern void force_draw_plus(int type);
|
|
extern void freespacelist(struct ListBase *lb);
|
|
extern void handle_view3d_around(void);
|
|
extern void handle_view3d_lock(void);
|
|
extern void init_v2d_oops(struct ScrArea *, struct SpaceOops *);
|
|
extern void initipo(struct ScrArea *sa);
|
|
extern void newspace(struct ScrArea *sa, int type);
|
|
extern void set_rects_butspace(struct SpaceButs *buts);
|
|
extern void test_butspace(void);
|
|
extern void start_game(void);
|
|
extern void select_group_menu(void);
|
|
extern void select_group(short nr);
|
|
|
|
extern void BIF_undo_push(char *str);
|
|
extern void BIF_undo(void);
|
|
extern void BIF_redo(void);
|
|
extern void BIF_undo_menu(void);
|
|
|
|
#ifdef _WIN32 // FULLSCREEN
|
|
extern void mainwindow_toggle_fullscreen(int fullscreen);
|
|
#endif
|
|
|
|
extern void mainwindow_set_filename_to_title(char *title);
|
|
extern void mainwindow_raise(void);
|
|
extern void mainwindow_make_active(void);
|
|
extern void mainwindow_close(void);
|
|
|
|
#endif
|
|
|