py/rna access to setting the header text - can be used in modal operators.
authorCampbell Barton <ideasman42@gmail.com>
Sat, 2 Oct 2010 21:02:40 +0000 (21:02 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Sat, 2 Oct 2010 21:02:40 +0000 (21:02 +0000)
eg: context.area.header_text_set("Some Text")
 included example in the view3d modal operator template.

release/scripts/templates/operator_modal_view3d.py
source/blender/editors/include/ED_screen.h
source/blender/editors/screen/area.c
source/blender/makesrna/intern/rna_internal.h
source/blender/makesrna/intern/rna_screen.c

index c116dd28b9e66a2c8aaf6a49213cec3ab778c725..5a7f5513992e56b341161f679c5392382d089a0b 100644 (file)
@@ -23,12 +23,15 @@ class ViewOperator(bpy.types.Operator):
         if event.type == 'MOUSEMOVE':
             self.offset = (self._initial_mouse - Vector((event.mouse_x, event.mouse_y, 0.0))) * 0.02
             self.execute(context)
+            context.area.header_text_set("Offset %.4f %.4f %.4f" % tuple(self.offset))
 
         elif event.type == 'LEFTMOUSE':
+            context.area.header_text_set()
             return {'FINISHED'}
 
         elif event.type in ('RIGHTMOUSE', 'ESC'):
             rv3d.view_location = self._initial_location
+            context.area.header_text_set()
             return {'CANCELLED'}
 
         return {'RUNNING_MODAL'}
index d95011c5961f6fc123d8042dd01a2baf2a39bd18..7059e607218c7c62e2d3e90336f7a7d4755a477e 100644 (file)
@@ -80,7 +80,7 @@ void  ED_area_do_listen(ScrArea *sa, struct wmNotifier *note);
 void   ED_area_tag_redraw(ScrArea *sa);
 void   ED_area_tag_refresh(ScrArea *sa);
 void   ED_area_do_refresh(struct bContext *C, ScrArea *sa);
-void   ED_area_headerprint(ScrArea *sa, const char *str);
+void   ED_area_headerprint(ScrArea *sa, char *str);
 void   ED_area_newspace(struct bContext *C, ScrArea *sa, int type);
 void   ED_area_prevspace(struct bContext *C, ScrArea *sa);
 void   ED_area_swapspace(struct bContext *C, ScrArea *sa1, ScrArea *sa2);
index d0361c5fa014f51cb0287f2a3cb46fd6cc7da123..7f5485ae8b64c4c42b45310fd676eb421bd0c769 100644 (file)
@@ -414,7 +414,7 @@ void ED_area_tag_refresh(ScrArea *sa)
 /* *************************************************************** */
 
 /* use NULL to disable it */
-void ED_area_headerprint(ScrArea *sa, const char *str)
+void ED_area_headerprint(ScrArea *sa, char *str)
 {
        ARegion *ar;
        
index 2bfe86a15ee12a06912928c4c4bfb8303dc746bc..cae9e5bb974a1576f31f535c612cdbd4b7ffe5ff 100644 (file)
@@ -233,6 +233,7 @@ void RNA_api_keyconfig(struct StructRNA *srna);
 void RNA_api_keyingset(struct StructRNA *srna);
 void RNA_api_keymap(struct StructRNA *srna);
 void RNA_api_keymapitem(struct StructRNA *srna);
+void RNA_api_area(struct StructRNA *srna);
 void RNA_api_main(struct StructRNA *srna);
 void RNA_api_material(StructRNA *srna);
 void RNA_api_mesh(struct StructRNA *srna);
index da8aab32f31a3e0c3c413d1228aa2b1a2f936ae8..93b38499673fdde0b930ed95547467550291e859 100644 (file)
@@ -106,6 +106,8 @@ static void rna_def_area(BlenderRNA *brna)
 {
        StructRNA *srna;
        PropertyRNA *prop;
+       FunctionRNA *func;
+       PropertyRNA *parm;
        
        srna= RNA_def_struct(brna, "Area", NULL);
        RNA_def_struct_ui_text(srna, "Area", "Area in a subdivided screen, containing an editor");
@@ -139,6 +141,10 @@ static void rna_def_area(BlenderRNA *brna)
        RNA_def_property_update(prop, 0, "rna_Area_type_update");
 
        RNA_def_function(srna, "tag_redraw", "ED_area_tag_redraw");
+
+       func= RNA_def_function(srna, "header_text_set", "ED_area_headerprint");
+       RNA_def_function_ui_description(func, "Set the header text");
+       parm= RNA_def_string(func, "text", NULL, 0, "Text", "New string for the header, no argument clears the text.");
 }
 
 static void rna_def_region(BlenderRNA *brna)