[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