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 c116dd2..5a7f551 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 d95011c..7059e60 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 d0361c5..7f5485a 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 2bfe86a..cae9e5b 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 da8aab3..93b3849 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)