py api:
authorCampbell Barton <ideasman42@gmail.com>
Tue, 26 Jul 2011 07:39:00 +0000 (07:39 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Tue, 26 Jul 2011 07:39:00 +0000 (07:39 +0000)
- added menu templates
- move template menu into the header of the text editor (so users will find more easily)
- updated mathutils examples, switching the order of multiplication.

doc/python_api/examples/mathutils.Vector.py
release/scripts/startup/bl_ui/space_text.py
release/scripts/templates/ui_menu.py [new file with mode: 0644]
release/scripts/templates/ui_menu_simple.py [new file with mode: 0644]
release/scripts/templates/ui_panel_simple.py [moved from release/scripts/templates/panel_simple.py with 76% similarity]
source/blenderplayer/bad_level_call_stubs/stubs.c

index 880b4ef2590185231f94419acb32aaa59e789349..bf1fc70353f52978b027243e79544c556118fd2e 100644 (file)
@@ -1,15 +1,15 @@
 import mathutils
 
 # zero length vector
-vec = mathutils.Vector((0, 0, 1))
+vec = mathutils.Vector((0.0, 0.0, 1.0))
 
 # unit length vector
 vec_a = vec.copy().normalize()
 
-vec_b = mathutils.Vector((0, 1, 2))
+vec_b = mathutils.Vector((0.0, 1.0, 2.0))
 
-vec2d = mathutils.Vector((1, 2))
-vec3d = mathutils.Vector((1, 0, 0))
+vec2d = mathutils.Vector((1.0, 2.0))
+vec3d = mathutils.Vector((1.0, 0.0, 0.0))
 vec4d = vec_a.to_4d()
 
 # other mathutuls types
@@ -34,9 +34,9 @@ vec_a + vec_b
 vec_a - vec_b
 vec_a * vec_b
 vec_a * 10.0
-vec_a * matrix
+matrix * vec_a
+quat * vec_a
 vec_a * vec_b
-vec_a * quat
 -vec_a
 
 
@@ -44,6 +44,7 @@ vec_a * quat
 x = vec_a[0]
 len(vec)
 vec_a[:] = vec_b
+vec_a[:] = 1.0, 2.0, 3.0
 vec2d[:] = vec3d[:2]
 
 
index 0fc8d937f6683b05b9a067a84fcb21786bf80878..582c9442a4a2ce56273ab9fd169d0c17780eaf82 100644 (file)
@@ -16,7 +16,7 @@
 #
 # ##### END GPL LICENSE BLOCK #####
 
-# <pep8 compliant>
+# <pep8-80 compliant>
 import bpy
 
 
@@ -36,10 +36,13 @@ class TEXT_HT_header(bpy.types.Header):
             sub = row.row(align=True)
             sub.menu("TEXT_MT_view")
             sub.menu("TEXT_MT_text")
+
             if text:
                 sub.menu("TEXT_MT_edit")
                 sub.menu("TEXT_MT_format")
 
+            sub.menu("TEXT_MT_templates")
+
         if text and text.is_modified:
             row = layout.row()
             row.alert = True
@@ -63,11 +66,13 @@ class TEXT_HT_header(bpy.types.Header):
             row = layout.row()
             if text.filepath:
                 if text.is_dirty:
-                    row.label(text="File: *%s (unsaved)" % text.filepath)
+                    row.label(text="File: *%r (unsaved)" % text.filepath)
                 else:
-                    row.label(text="File: %s" % text.filepath)
+                    row.label(text="File: %r" % text.filepath)
             else:
-                row.label(text="Text: External" if text.library else "Text: Internal")
+                row.label(text="Text: External"
+                          if text.library
+                          else "Text: Internal")
 
 
 class TEXT_PT_properties(bpy.types.Panel):
@@ -150,8 +155,12 @@ class TEXT_MT_view(bpy.types.Menu):
 
         layout.separator()
 
-        layout.operator("text.move", text="Top of File").type = 'FILE_TOP'
-        layout.operator("text.move", text="Bottom of File").type = 'FILE_BOTTOM'
+        layout.operator("text.move",
+                        text="Top of File",
+                        ).type = 'FILE_TOP'
+        layout.operator("text.move",
+                        text="Bottom of File",
+                        ).type = 'FILE_BOTTOM'
 
 
 class TEXT_MT_text(bpy.types.Menu):
@@ -185,19 +194,15 @@ class TEXT_MT_text(bpy.types.Menu):
             # XXX   uiMenuItemO(head, 0, "text.refresh_pyconstraints");
             #endif
 
-        layout.separator()
-
-        layout.menu("TEXT_MT_templates")
-
 
 class TEXT_MT_templates(bpy.types.Menu):
-    '''
-    Creates the menu items by scanning scripts/templates
-    '''
-    bl_label = "Script Templates"
+    bl_label = "Templates"
 
     def draw(self, context):
-        self.path_menu(bpy.utils.script_paths("templates"), "text.open", {"internal": True})
+        self.path_menu(bpy.utils.script_paths("templates"),
+                       "text.open",
+                       {"internal": True},
+                       )
 
 
 class TEXT_MT_edit_select(bpy.types.Menu):
@@ -246,8 +251,12 @@ class TEXT_MT_edit_to3d(bpy.types.Menu):
     def draw(self, context):
         layout = self.layout
 
-        layout.operator("text.to_3d_object", text="One Object").split_lines = False
-        layout.operator("text.to_3d_object", text="One Object Per Line").split_lines = True
+        layout.operator("text.to_3d_object",
+                        text="One Object",
+                        ).split_lines = False
+        layout.operator("text.to_3d_object",
+                        text="One Object Per Line",
+                        ).split_lines = True
 
 
 class TEXT_MT_edit(bpy.types.Menu):
diff --git a/release/scripts/templates/ui_menu.py b/release/scripts/templates/ui_menu.py
new file mode 100644 (file)
index 0000000..aa6b172
--- /dev/null
@@ -0,0 +1,49 @@
+import bpy
+
+
+class CustomMenu(bpy.types.Menu):
+    bl_label = "Custom Menu"
+    bl_idname = "OBJECT_MT_custom_menu"
+
+    def draw(self, context):
+        layout = self.layout
+
+        layout.operator("wm.open_mainfile")
+        layout.operator("wm.save_as_mainfile").copy = True
+
+        layout.operator("object.shade_smooth")
+
+        layout.label(text="Hello world!", icon='WORLD_DATA')
+
+        # use an operator enum property to populate a submenu
+        layout.operator_menu_enum("object.select_by_type",
+                                  property="type",
+                                  text="Select All by Type...",
+                                  )
+
+        # call another menu
+        layout.operator("wm.call_menu", text="Unwrap").name = "VIEW3D_MT_uv_map"
+
+
+def draw_item(self, context):
+       layout = self.layout
+       layout.menu(CustomMenu.bl_idname)
+
+
+def register():
+    bpy.utils.register_class(CustomMenu)
+
+    # lets add ourselves to the file menu
+    bpy.types.INFO_HT_header.append(draw_item)
+
+
+def unregister():
+    bpy.utils.unregister_class(CustomMenu)
+
+    bpy.types.INFO_HT_header.remove(draw_item)
+
+if __name__ == "__main__":
+    register()
+
+    # The menu can also be called from scripts
+    bpy.ops.wm.call_menu(name=CustomMenu.bl_idname)
diff --git a/release/scripts/templates/ui_menu_simple.py b/release/scripts/templates/ui_menu_simple.py
new file mode 100644 (file)
index 0000000..2129dfd
--- /dev/null
@@ -0,0 +1,26 @@
+import bpy
+
+
+class SimpleCustomMenu(bpy.types.Menu):
+    bl_label = "Simple Custom Menu"
+    bl_idname = "OBJECT_MT_simple_custom_menu"
+
+    def draw(self, context):
+        layout = self.layout
+
+        layout.operator("wm.open_mainfile")
+        layout.operator("wm.save_as_mainfile")
+
+
+def register():
+    bpy.utils.register_class(SimpleCustomMenu)
+
+
+def unregister():
+    bpy.utils.unregister_class(SimpleCustomMenu)
+
+if __name__ == "__main__":
+    register()
+
+    # The menu can also be called from scripts
+    bpy.ops.wm.call_menu(name=SimpleCustomMenu.bl_idname)
similarity index 76%
rename from release/scripts/templates/panel_simple.py
rename to release/scripts/templates/ui_panel_simple.py
index e5bf70cb6546743bbd6c1574b9b06d811efed9bf..cde6126b6262c26a7cf45c36fea3872559622261 100644 (file)
@@ -1,8 +1,9 @@
 import bpy
 
 
-class OBJECT_PT_hello(bpy.types.Panel):
+class HelloWorldPanel(bpy.types.Panel):
     bl_label = "Hello World Panel"
+    bl_idname = "OBJECT_PT_hello"
     bl_space_type = "PROPERTIES"
     bl_region_type = "WINDOW"
     bl_context = "object"
@@ -22,11 +23,11 @@ class OBJECT_PT_hello(bpy.types.Panel):
 
 
 def register():
-    bpy.utils.register_class(OBJECT_PT_hello)
+    bpy.utils.register_class(HelloWorldPanel)
 
 
 def unregister():
-    bpy.utils.unregister_class(OBJECT_PT_hello)
+    bpy.utils.unregister_class(HelloWorldPanel)
 
 
 if __name__ == "__main__":
index 7bf5fe9dde34f07e4934859f7bbf175786078497..548d272ffd2c1a8c36ab9a659099b0dfbcd035cd 100644 (file)
@@ -136,7 +136,6 @@ int RE_RenderInProgress(struct Render *re){return 0;}
 struct Scene *RE_GetScene(struct Render *re){return (struct Scene *) NULL;}
 void RE_Database_Free(struct Render *re){}
 void RE_FreeRender(struct Render *re){}
-void RE_shade_external(struct Render *re, struct ShadeInput *shi, struct ShadeResult *shr){}
 void RE_DataBase_GetView(struct Render *re, float mat[][4]){}
 int externtex(struct MTex *mtex, float *vec, float *tin, float *tr, float *tg, float *tb, float *ta){return 0;}
 float texture_value_blend(float tex, float out, float fact, float facg, int blendtype, int flip){return 0.0f;}