[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [48573] branches/soc-2012-bratwurst/source /blender: Created an invisible region that lays over top of the 3d view and can be used for placing floating controls .

Jorge Rodriguez bs.vino at gmail.com
Wed Jul 4 01:59:50 CEST 2012


Revision: 48573
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=48573
Author:   vino
Date:     2012-07-03 23:59:49 +0000 (Tue, 03 Jul 2012)
Log Message:
-----------
Created an invisible region that lays over top of the 3d view and can be used for placing floating controls. The controls can't be interacted with yet.

Modified Paths:
--------------
    branches/soc-2012-bratwurst/source/blender/blenkernel/BKE_screen.h
    branches/soc-2012-bratwurst/source/blender/editors/screen/area.c
    branches/soc-2012-bratwurst/source/blender/editors/space_view3d/space_view3d.c
    branches/soc-2012-bratwurst/source/blender/editors/space_view3d/view3d_draw.c
    branches/soc-2012-bratwurst/source/blender/editors/space_view3d/view3d_intern.h
    branches/soc-2012-bratwurst/source/blender/editors/space_view3d/view3d_view.c

Modified: branches/soc-2012-bratwurst/source/blender/blenkernel/BKE_screen.h
===================================================================
--- branches/soc-2012-bratwurst/source/blender/blenkernel/BKE_screen.h	2012-07-03 23:18:49 UTC (rev 48572)
+++ branches/soc-2012-bratwurst/source/blender/blenkernel/BKE_screen.h	2012-07-03 23:59:49 UTC (rev 48573)
@@ -155,6 +155,8 @@
 	short do_lock, lock;
 	/* call cursor function on each move event */
 	short event_cursor;
+	/* If it's enabled, don't clear the region before drawing panels (ED_region_panels) */
+	char dont_clear;
 } ARegionType;
 
 /* panel types */

Modified: branches/soc-2012-bratwurst/source/blender/editors/screen/area.c
===================================================================
--- branches/soc-2012-bratwurst/source/blender/editors/screen/area.c	2012-07-03 23:18:49 UTC (rev 48572)
+++ branches/soc-2012-bratwurst/source/blender/editors/screen/area.c	2012-07-03 23:59:49 UTC (rev 48573)
@@ -1655,8 +1655,11 @@
 	uiEndPanels(C, ar, &x, &y);
 
 	/* clear */
-	UI_ThemeClearColor((ar->type->regionid == RGN_TYPE_PREVIEW) ? TH_PREVIEW_BACK : TH_BACK);
-	glClear(GL_COLOR_BUFFER_BIT);
+	if (!ar->type->dont_clear)
+	{
+		UI_ThemeClearColor((ar->type->regionid == RGN_TYPE_PREVIEW) ? TH_PREVIEW_BACK : TH_BACK);
+		glClear(GL_COLOR_BUFFER_BIT);
+	}
 	
 	/* before setting the view */
 	if (vertical) {

Modified: branches/soc-2012-bratwurst/source/blender/editors/space_view3d/space_view3d.c
===================================================================
--- branches/soc-2012-bratwurst/source/blender/editors/space_view3d/space_view3d.c	2012-07-03 23:18:49 UTC (rev 48572)
+++ branches/soc-2012-bratwurst/source/blender/editors/space_view3d/space_view3d.c	2012-07-03 23:59:49 UTC (rev 48573)
@@ -61,6 +61,7 @@
 #include "RNA_access.h"
 
 #include "UI_resources.h"
+#include "UI_view2d.h"
 
 #include "view3d_intern.h"  // own include
 
@@ -381,6 +382,9 @@
 	ListBase *lb;
 	wmKeyMap *keymap;
 
+	UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_PANELS_UI, ar->winx, ar->winy);
+	ar->v2d.scroll = 0;
+
 	/* object ops. */
 	
 	/* important to be before Pose keymap since they can both be enabled at once */
@@ -1167,8 +1171,11 @@
 	art->listener = view3d_main_area_listener;
 	art->cursor = view3d_main_area_cursor;
 	art->lock = 1;   /* can become flag, see BKE_spacedata_draw_locks */
+	art->dont_clear = 1;
 	BLI_addhead(&st->regiontypes, art);
-	
+
+	view3d_main_register(art);
+
 	/* regions: listview/buttons */
 	art = MEM_callocN(sizeof(ARegionType), "spacetype view3d buttons region");
 	art->regionid = RGN_TYPE_UI;

Modified: branches/soc-2012-bratwurst/source/blender/editors/space_view3d/view3d_draw.c
===================================================================
--- branches/soc-2012-bratwurst/source/blender/editors/space_view3d/view3d_draw.c	2012-07-03 23:18:49 UTC (rev 48572)
+++ branches/soc-2012-bratwurst/source/blender/editors/space_view3d/view3d_draw.c	2012-07-03 23:59:49 UTC (rev 48573)
@@ -3076,6 +3076,11 @@
 
 }
 
+static void view3d_main_area_draw_floating_controls(const bContext *C, ARegion *ar)
+{
+	ED_region_panels(C, ar, 1, CTX_data_mode_string(C), -1);
+}
+
 static void view3d_main_area_draw_info(const bContext *C, ARegion *ar, const char *grid_unit)
 {
 	wmWindowManager *wm = CTX_wm_manager(C);
@@ -3128,6 +3133,8 @@
 		BLF_draw_default_ascii(22,  ar->winy - (USER_SHOW_VIEWPORTNAME ? 40 : 20), 0.0f,
 		                       numstr[0] ? numstr : grid_unit, sizeof(numstr));
 	}
+
+	view3d_main_area_draw_floating_controls(C, ar);
 }
 
 void view3d_main_area_draw(const bContext *C, ARegion *ar)

Modified: branches/soc-2012-bratwurst/source/blender/editors/space_view3d/view3d_intern.h
===================================================================
--- branches/soc-2012-bratwurst/source/blender/editors/space_view3d/view3d_intern.h	2012-07-03 23:18:49 UTC (rev 48572)
+++ branches/soc-2012-bratwurst/source/blender/editors/space_view3d/view3d_intern.h	2012-07-03 23:59:49 UTC (rev 48573)
@@ -186,6 +186,9 @@
 void viewzoom_modal_keymap(struct wmKeyConfig *keyconf);
 void viewdolly_modal_keymap(struct wmKeyConfig *keyconf);
 
+/* view3d_view.c */
+void view3d_main_register(struct ARegionType *art);
+
 /* view3d_buttons.c */
 void VIEW3D_OT_properties(struct wmOperatorType *ot);
 void view3d_buttons_register(struct ARegionType *art);

Modified: branches/soc-2012-bratwurst/source/blender/editors/space_view3d/view3d_view.c
===================================================================
--- branches/soc-2012-bratwurst/source/blender/editors/space_view3d/view3d_view.c	2012-07-03 23:18:49 UTC (rev 48572)
+++ branches/soc-2012-bratwurst/source/blender/editors/space_view3d/view3d_view.c	2012-07-03 23:59:49 UTC (rev 48573)
@@ -64,6 +64,11 @@
 #include "ED_screen.h"
 #include "ED_armature.h"
 
+#ifdef TEST_CONTROLS
+#include "UI_interface.h"
+#include "UI_resources.h"
+#endif
+
 #ifdef WITH_GAMEENGINE
 #include "BL_System.h"
 #endif
@@ -1871,6 +1876,27 @@
 	        ) * rv3d->pixsize;
 }
 
+static void view3d_panel_main(const bContext *C, Panel *pa)
+{
+#ifdef TEST_CONTROLS
+	uiLayout *col;
+	col = uiLayoutColumn(pa->layout, TRUE);
+	uiItemFullO(col, "TRANSFORM_OT_transform", NULL, ICON_SIZE_ICON, NULL, WM_OP_INVOKE_REGION_WIN, 0);
+#endif
+}
+
+void view3d_main_register(ARegionType *art)
+{
+	PanelType *pt;
+
+	pt = MEM_callocN(sizeof(PanelType), "spacetype view3d panel floating");
+	strcpy(pt->idname, "VIEW3D_PT_floating_controls");
+	strcpy(pt->label, "Floating Controls");
+	pt->draw = view3d_panel_main;
+	pt->flag = PNL_NO_HEADER;
+	BLI_addtail(&art->paneltypes, pt);
+}
+
 /* view matrix properties utilities */
 
 /* unused */




More information about the Bf-blender-cvs mailing list