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 */

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to