[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