2002-10-12 11:37:38 +00:00
|
|
|
/**
|
|
|
|
|
* $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;
|
2003-03-23 22:52:11 +00:00
|
|
|
struct BWinEvent;
|
2002-10-12 11:37:38 +00:00
|
|
|
|
|
|
|
|
#define REMAKEIPO 1
|
|
|
|
|
#define OOPS_TEST 2
|
|
|
|
|
#define REMAKEALLIPO 3 /* Reevan's ipo fixing test */
|
|
|
|
|
|
2003-10-04 20:35:50 +00:00
|
|
|
#define BUT_HORIZONTAL 1
|
|
|
|
|
#define BUT_VERTICAL 2
|
|
|
|
|
|
2003-10-15 12:26:26 +00:00
|
|
|
/* is hardcoded in DNA_space_types.h */
|
|
|
|
|
#define SPACE_MAXHANDLER 8
|
|
|
|
|
|
|
|
|
|
/* view3d handler codes */
|
2003-10-15 16:01:08 +00:00
|
|
|
#define VIEW3D_HANDLER_BACKGROUND 1
|
2003-10-25 22:03:19 +00:00
|
|
|
#define VIEW3D_HANDLER_PROPERTIES 2
|
2003-10-15 16:01:08 +00:00
|
|
|
#define VIEW3D_HANDLER_OBJECT 3
|
2003-10-15 12:26:26 +00:00
|
|
|
|
|
|
|
|
/* ipo handler codes */
|
2003-10-28 14:20:03 +00:00
|
|
|
#define IPO_HANDLER_PROPERTIES 20
|
2003-10-15 12:26:26 +00:00
|
|
|
|
2004-04-19 22:05:37 +00:00
|
|
|
/* image handler codes */
|
|
|
|
|
#define IMAGE_HANDLER_PROPERTIES 30
|
2004-05-15 02:28:03 +00:00
|
|
|
#define IMAGE_HANDLER_PAINT 31
|
2004-04-19 22:05:37 +00:00
|
|
|
|
2004-04-20 22:00:33 +00:00
|
|
|
/* action handler codes */
|
|
|
|
|
#define ACTION_HANDLER_PROPERTIES 40
|
2004-04-20 18:27:10 +00:00
|
|
|
|
2004-04-20 22:00:33 +00:00
|
|
|
/* nla handler codes */
|
|
|
|
|
#define NLA_HANDLER_PROPERTIES 50
|
2004-04-19 22:05:37 +00:00
|
|
|
|
2004-06-16 20:25:56 +00:00
|
|
|
/* sequence handler codes */
|
|
|
|
|
#define SEQ_HANDLER_PROPERTIES 60
|
|
|
|
|
|
2003-10-04 20:35:50 +00:00
|
|
|
|
2002-10-12 11:37:38 +00:00
|
|
|
void scrarea_do_windraw (struct ScrArea *sa);
|
|
|
|
|
void scrarea_do_winchange (struct ScrArea *sa);
|
2003-03-23 22:52:11 +00:00
|
|
|
void scrarea_do_winhandle (struct ScrArea *sa, struct BWinEvent *evt);
|
2002-10-12 11:37:38 +00:00
|
|
|
void scrarea_do_headdraw (struct ScrArea *sa);
|
|
|
|
|
void scrarea_do_headchange (struct ScrArea *sa);
|
|
|
|
|
|
|
|
|
|
/* space.c */
|
2003-10-16 00:17:24 +00:00
|
|
|
extern void add_blockhandler(struct ScrArea *sa, short eventcode, short action);
|
2003-10-15 12:26:26 +00:00
|
|
|
extern void rem_blockhandler(struct ScrArea *sa, short eventcode);
|
2004-06-19 12:25:28 +00:00
|
|
|
extern void toggle_blockhandler(struct ScrArea *sa, short eventcode, short action);
|
2003-10-15 12:26:26 +00:00
|
|
|
|
2002-10-12 11:37:38 +00:00
|
|
|
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);
|
2003-03-24 01:46:05 +00:00
|
|
|
extern void drawemptyspace(struct ScrArea *sa, void *spacedata);
|
2003-05-04 11:20:14 +00:00
|
|
|
extern void drawinfospace(struct ScrArea *sa, void *spacedata);
|
2002-10-12 11:37:38 +00:00
|
|
|
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);
|
2004-07-19 07:08:51 +00:00
|
|
|
extern void handle_view3d_around(void);
|
2002-10-12 11:37:38 +00:00
|
|
|
extern void handle_view3d_lock(void);
|
Version 1.0 of the new Outliner
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...
2004-10-06 18:55:00 +00:00
|
|
|
extern void init_v2d_oops(struct ScrArea *, struct SpaceOops *);
|
2002-10-12 11:37:38 +00:00
|
|
|
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);
|
2004-01-12 13:30:00 +00:00
|
|
|
extern void select_group_menu(void);
|
|
|
|
|
extern void select_group(short nr);
|
2003-10-04 20:35:50 +00:00
|
|
|
|
Another step in the undo evolution.
- Made unified API for undo calls, to be found in space.c
BIF_undo_push(char *str)
BIF_undo(void)
BIF_redo(void)
These calls will do all undo levels, including editmode and vpaint.
The transition is work in progress, because mesh undo needs recode.
- New global hotkey CTR+Z for undo
Note: 'shaded draw mode' still is SHIFT+Z, the old CTRL+Z was to recalc
the lighting in shaded mode, which already became much more interactive,
like during/after any transform().
Recalc hotkey now is SHIFT+ALT+Z
CTRL+<any modifier>+Z is redo.
- For OSX users; the Apple-key ("Command") now maps to CTRL as well. This
disables the one-mouse-button hack for rightmouse btw, will be fixed in
next commit. At least we can use Apple-Z :)
- Old Ukey for undo is still there, as a training period... my preference is
to restore Ukey to "reload original data" as in past, and only use new
CTRL+Z for undo.
- Added undo_push() for all of editobject.c and editview.c. Meaning we can
start using/testing global undo in the 3d window. Please dont comment on
missing parts for now, first I want someone to volunteer to tackle all of
that.
- Since the global undo has a full 'file' in memory, it can save extremely
fast on exit to <temp dir>/quit.blend. That's default now when global undo
is enabled. It prints "Saved session recovery to ..." in console then.
- In file menu, a new option is added "Recover Last Session". Note that this
reads the undo-save, which is without UI.
- With such nice new features we then can also kill the disputed
Cancel/Confirm menu on Q-KEY.
- Added fix which initializes seam/normal theme color on saved themes.
They showed black now.... (Note: that's in usiblender.c!)
2004-09-18 12:12:45 +00:00
|
|
|
extern void BIF_undo_push(char *str);
|
|
|
|
|
extern void BIF_undo(void);
|
|
|
|
|
extern void BIF_redo(void);
|
|
|
|
|
extern void BIF_undo_menu(void);
|
2002-10-12 11:37:38 +00:00
|
|
|
|
2003-05-08 16:24:58 +00:00
|
|
|
#ifdef _WIN32 // FULLSCREEN
|
|
|
|
|
extern void mainwindow_toggle_fullscreen(int fullscreen);
|
|
|
|
|
#endif
|
|
|
|
|
|
2003-12-08 15:13:00 +00:00
|
|
|
extern void mainwindow_set_filename_to_title(char *title);
|
2002-10-12 11:37:38 +00:00
|
|
|
extern void mainwindow_raise(void);
|
|
|
|
|
extern void mainwindow_make_active(void);
|
|
|
|
|
extern void mainwindow_close(void);
|
|
|
|
|
|
|
|
|
|
#endif
|
2002-10-30 02:07:20 +00:00
|
|
|
|