[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17620] branches/blender2.5/blender/source : 2.5: work on bringing back SpaceTime options
Ton Roosendaal
ton at blender.org
Sat Nov 29 16:10:34 CET 2008
Revision: 17620
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17620
Author: ton
Date: 2008-11-29 16:10:31 +0100 (Sat, 29 Nov 2008)
Log Message:
-----------
2.5: work on bringing back SpaceTime options
- RMB select, also with SHIFT
- RMB tweak for translate
- SHIFT+D dupli
- BKEY border select/deselect
- AKEY (de)select all
- XKEY delete
- GKEY grab
Added some XXX comments for future todos, especially for when other
spaces come back with time markers.
Also added ED_util for putting in all to-be-cleaned cruft
Context conflict: input methods for Markers can conflict with other
spacetypes. It was solved in pre-2.5 with manually tweaking it all over,
but I would prefer one keymap for all marker stuff. Needs some thinking...
could be solved with a boundbox check for bottom part of 2d window.
Tweak issue: both tweak styles are possible:
- Hold mouse button, move, operator ends on mouse release
- Hold mouse button, move, operator ends on mouse click
Problem is that modally handled operators use fixed keymaps... like ESC,
SPACE, ENTER, or press/release mousebutton for 'assign'. There's a lot
to say for making this all consistant, or become part of 1 general keymap?
Should also be possibe to define 'tweak' defaults for Tablet different
than for mouse...
Modified Paths:
--------------
branches/blender2.5/blender/source/Makefile
branches/blender2.5/blender/source/blender/editors/Makefile
branches/blender2.5/blender/source/blender/editors/SConscript
branches/blender2.5/blender/source/blender/editors/include/ED_markers.h
branches/blender2.5/blender/source/blender/editors/include/ED_mesh.h
branches/blender2.5/blender/source/blender/editors/include/ED_screen.h
branches/blender2.5/blender/source/blender/editors/screen/area.c
branches/blender2.5/blender/source/blender/editors/screen/screen_ops.c
branches/blender2.5/blender/source/blender/editors/space_time/ed_markers.c
branches/blender2.5/blender/source/blender/editors/space_time/time_ops.c
branches/blender2.5/blender/source/blender/makesdna/DNA_userdef_types.h
branches/blender2.5/blender/source/blender/makesdna/DNA_windowmanager_types.h
branches/blender2.5/blender/source/blender/windowmanager/intern/wm_gesture.c
branches/blender2.5/blender/source/blender/windowmanager/intern/wm_operators.c
branches/blender2.5/blender/source/blender/windowmanager/wm_event_types.h
Added Paths:
-----------
branches/blender2.5/blender/source/blender/editors/include/ED_util.h
branches/blender2.5/blender/source/blender/editors/util/
branches/blender2.5/blender/source/blender/editors/util/ed_util.c
Modified: branches/blender2.5/blender/source/Makefile
===================================================================
--- branches/blender2.5/blender/source/Makefile 2008-11-29 15:04:19 UTC (rev 17619)
+++ branches/blender2.5/blender/source/Makefile 2008-11-29 15:10:31 UTC (rev 17620)
@@ -238,6 +238,7 @@
PULIB += $(OCGDIR)/blender/ed_time/libed_time.a
PULIB += $(OCGDIR)/blender/ed_view3d/libed_view3d.a
PULIB += $(OCGDIR)/blender/ed_interface/libed_interface.a
+PULIB += $(OCGDIR)/blender/ed_util/libed_util.a
PULIB += $(OCGDIR)/blender/ed_datafiles/libed_datafiles.a
PULIB += $(OCGDIR)/blender/windowmanager/libwindowmanager.a
PULIB += $(OCGDIR)/blender/python/$(DEBUG_DIR)libpython.a
Modified: branches/blender2.5/blender/source/blender/editors/Makefile
===================================================================
--- branches/blender2.5/blender/source/blender/editors/Makefile 2008-11-29 15:04:19 UTC (rev 17619)
+++ branches/blender2.5/blender/source/blender/editors/Makefile 2008-11-29 15:10:31 UTC (rev 17620)
@@ -29,6 +29,6 @@
# Bounces make to subdirectories.
SOURCEDIR = source/blender/editors
-DIRS = datafiles screen space_outliner space_time space_view3d interface
+DIRS = datafiles screen space_outliner space_time space_view3d interface util
include nan_subdirs.mk
Modified: branches/blender2.5/blender/source/blender/editors/SConscript
===================================================================
--- branches/blender2.5/blender/source/blender/editors/SConscript 2008-11-29 15:04:19 UTC (rev 17619)
+++ branches/blender2.5/blender/source/blender/editors/SConscript 2008-11-29 15:10:31 UTC (rev 17620)
@@ -3,6 +3,7 @@
SConscript(['datafiles/SConscript',
+ 'util/SConscript',
'interface/SConscript',
'mesh/SConscript',
'object/SConscript',
Modified: branches/blender2.5/blender/source/blender/editors/include/ED_markers.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/include/ED_markers.h 2008-11-29 15:04:19 UTC (rev 17619)
+++ branches/blender2.5/blender/source/blender/editors/include/ED_markers.h 2008-11-29 15:10:31 UTC (rev 17620)
@@ -36,13 +36,10 @@
-struct wmOperatorType;
-
-
void draw_markers_time(const bContext *C, int flag);
-/* operators */
-void ED_MARKER_OT_add(struct wmOperatorType *ot);
+/* register operators, called in ED_operatortypes_screen() */
+void ED_marker_operatortypes(void);
#endif /* ED_MARKERS_H */
Modified: branches/blender2.5/blender/source/blender/editors/include/ED_mesh.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/include/ED_mesh.h 2008-11-29 15:04:19 UTC (rev 17619)
+++ branches/blender2.5/blender/source/blender/editors/include/ED_mesh.h 2008-11-29 15:10:31 UTC (rev 17620)
@@ -25,9 +25,9 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
-#ifndef ED_AREA_H
-#define ED_AREA_H
+#ifndef ED_MESH_H
+#define ED_MESH_H
-#endif /* ED_AREA_H */
+#endif /* ED_MESH_H */
Modified: branches/blender2.5/blender/source/blender/editors/include/ED_screen.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/include/ED_screen.h 2008-11-29 15:04:19 UTC (rev 17619)
+++ branches/blender2.5/blender/source/blender/editors/include/ED_screen.h 2008-11-29 15:10:31 UTC (rev 17620)
@@ -43,6 +43,7 @@
void ED_region_do_draw(struct bContext *C, ARegion *ar);
void ED_region_do_refresh(struct bContext *C, ARegion *ar);
void ED_region_exit(struct bContext *C, ARegion *ar);
+void ED_region_pixelspace(struct bContext *C, ARegion *ar);
/* spaces */
void ED_spacetypes_init(void);
Added: branches/blender2.5/blender/source/blender/editors/include/ED_util.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/include/ED_util.h (rev 0)
+++ branches/blender2.5/blender/source/blender/editors/include/ED_util.h 2008-11-29 15:10:31 UTC (rev 17620)
@@ -0,0 +1,34 @@
+/**
+ * $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) 2008 Blender Foundation.
+ * All rights reserved.
+ *
+ *
+ * Contributor(s): Blender Foundation
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+#ifndef ED_UTIL_H
+#define ED_UTIL_H
+
+void apply_keyb_grid(float *val, float fac1, float fac2, float fac3, int invert);
+
+#endif /* ED_UTIL_H */
+
Modified: branches/blender2.5/blender/source/blender/editors/screen/area.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/screen/area.c 2008-11-29 15:04:19 UTC (rev 17619)
+++ branches/blender2.5/blender/source/blender/editors/screen/area.c 2008-11-29 15:10:31 UTC (rev 17620)
@@ -90,6 +90,15 @@
glDisable( GL_BLEND );
}
+void ED_region_pixelspace(bContext *C, ARegion *ar)
+{
+ int width= ar->winrct.xmax-ar->winrct.xmin+1;
+ int height= ar->winrct.ymax-ar->winrct.ymin+1;
+
+ wmOrtho2(C->window, -0.375, (float)width-0.375, -0.375, (float)height-0.375);
+ wmLoadIdentity(C->window);
+
+}
void ED_region_do_listen(ARegion *ar, wmNotifier *note)
{
@@ -161,6 +170,9 @@
region_draw_emboss(ar);
}
+ /* XXX test: add convention to end regions always in pixel space, for drawing of borders/gestures etc */
+ ED_region_pixelspace(C, ar);
+
ar->do_draw= 0;
}
Modified: branches/blender2.5/blender/source/blender/editors/screen/screen_ops.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/screen/screen_ops.c 2008-11-29 15:04:19 UTC (rev 17619)
+++ branches/blender2.5/blender/source/blender/editors/screen/screen_ops.c 2008-11-29 15:10:31 UTC (rev 17620)
@@ -1213,7 +1213,7 @@
RNA_def_property_int_default(prop, -100);
}
-/* ************** border select operator (test only) ***************************** */
+/* ************** border select operator (template) ***************************** */
/* operator state vars used: (added by default WM callbacks)
xmin, ymin
@@ -1233,7 +1233,7 @@
poll() has to be filled in by user for context
*/
-
+#if 0
static int border_select_do(bContext *C, wmOperator *op)
{
int event_type= RNA_int_get(op->ptr, "event_type");
@@ -1263,10 +1263,14 @@
/* rna */
RNA_def_property(ot->srna, "event_type", PROP_INT, PROP_NONE);
+ RNA_def_property(ot->srna, "xmin", PROP_INT, PROP_NONE);
+ RNA_def_property(ot->srna, "xmax", PROP_INT, PROP_NONE);
+ RNA_def_property(ot->srna, "ymin", PROP_INT, PROP_NONE);
+ RNA_def_property(ot->srna, "ymax", PROP_INT, PROP_NONE);
}
+#endif
-
/* **************** Assigning operatortypes to global list, adding handlers **************** */
/* called in spacetypes.c */
@@ -1283,11 +1287,8 @@
WM_operatortype_append(ED_SCR_OT_area_rip);
/* tools shared by more space types */
- WM_operatortype_append(ED_MARKER_OT_add);
+ ED_marker_operatortypes();
-
- /* for test only */
- WM_operatortype_append(ED_SCR_OT_border_select);
}
/* called in spacetypes.c */
@@ -1301,8 +1302,5 @@
WM_keymap_verify_item(&wm->screenkeymap, "ED_SCR_OT_area_join", EVT_ACTIONZONE, 0, 0, 0); /* action tria */
WM_keymap_verify_item(&wm->screenkeymap, "ED_SCR_OT_area_rip", RKEY, KM_PRESS, KM_ALT, 0);
- /* for test only */
- WM_keymap_verify_item(&wm->screenkeymap, "ED_SCR_OT_border_select", BKEY, KM_PRESS, 0, 0);
-
}
Modified: branches/blender2.5/blender/source/blender/editors/space_time/ed_markers.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_time/ed_markers.c 2008-11-29 15:04:19 UTC (rev 17619)
+++ branches/blender2.5/blender/source/blender/editors/space_time/ed_markers.c 2008-11-29 15:10:31 UTC (rev 17620)
@@ -27,6 +27,7 @@
*/
#include <stdlib.h>
+#include <math.h>
#include "MEM_guardedalloc.h"
@@ -34,6 +35,7 @@
#include "DNA_screen_types.h"
#include "DNA_space_types.h"
#include "DNA_view2d_types.h"
+#include "DNA_userdef_types.h"
#include "DNA_windowmanager_types.h"
#include "RNA_access.h"
@@ -42,6 +44,7 @@
#include "BLI_blenlib.h"
#include "BKE_global.h"
+#include "BKE_utildefines.h"
#include "WM_api.h"
#include "WM_types.h"
@@ -55,8 +58,37 @@
#include "UI_resources.h"
#include "ED_markers.h"
+#include "ED_screen.h"
#include "ED_types.h"
+#include "ED_util.h"
+/* ************* Marker API **************** */
+
+static ListBase *context_get_markers(const bContext *C)
+{
+
+#if 0
+ /* XXX get them from pose */
+ if ((slink->spacetype == SPACE_ACTION) && (saction->flag & SACTION_POSEMARKERS_MOVE)) {
+ if (saction->action)
+ markers= &saction->action->markers;
+ else
+ markers= NULL;
+ }
+ else
+#endif
+
+ return &C->scene->markers;
+}
+
+static View2D *context_get_view2d(const bContext *C)
+{
+ /* XXX solve, get from view2d api? */
+ SpaceTime *stime= C->area->spacedata.first;
+
+ return &stime->v2d;
+}
+
/* ************* Marker Drawing ************ */
/* XXX */
@@ -128,81 +160,370 @@
glScalef(xscale, yscale, 1.0);
}
-/* Draw Scene-Markers in time window (XXX make generic) */
+/* Draw Scene-Markers in time window */
void draw_markers_time(const bContext *C, int flag)
{
+ ListBase *markers= context_get_markers(C);
+ View2D *v2d= context_get_view2d(C);
TimeMarker *marker;
- SpaceTime *stime= C->area->spacedata.first;
- View2D *v2d= &stime->v2d;
/* unselected markers are drawn at the first time */
- for (marker= C->scene->markers.first; marker; marker= marker->next) {
+ for (marker= markers->first; marker; marker= marker->next) {
if (!(marker->flag & SELECT)) draw_marker(v2d, marker, C->scene->r.cfra, flag);
}
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list