2.5 Buttons:
* Some Updates for n-key Areas in View3D and Image Editor and some tweaks in bone panels. Patch by William Reynish. Thanks!
This commit is contained in:
		@@ -23,6 +23,23 @@ class BONE_PT_context_bone(BoneButtonsPanel):
 | 
				
			|||||||
		split.itemL(text="", icon="ICON_BONE_DATA")
 | 
							split.itemL(text="", icon="ICON_BONE_DATA")
 | 
				
			||||||
		split.itemR(bone, "name", text="")
 | 
							split.itemR(bone, "name", text="")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class BONE_PT_transform_bone(BoneButtonsPanel):
 | 
				
			||||||
 | 
						__idname__ = "BONE_PT_transform_bone"
 | 
				
			||||||
 | 
						__label__ = "Transform"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						def draw(self, context):
 | 
				
			||||||
 | 
							layout = self.layout
 | 
				
			||||||
 | 
							bone = context.bone
 | 
				
			||||||
 | 
							if not bone:
 | 
				
			||||||
 | 
								bone = context.edit_bone
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#Seems to be missing from RNA?
 | 
				
			||||||
 | 
							row = layout.row()
 | 
				
			||||||
 | 
							row.column().itemR(bone, "location")
 | 
				
			||||||
 | 
							row.column().itemR(bone, "rotation")
 | 
				
			||||||
 | 
							row.column().itemR(bone, "scale")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class BONE_PT_bone(BoneButtonsPanel):
 | 
					class BONE_PT_bone(BoneButtonsPanel):
 | 
				
			||||||
	__idname__ = "BONE_PT_bone"
 | 
						__idname__ = "BONE_PT_bone"
 | 
				
			||||||
	__label__ = "Bone"
 | 
						__label__ = "Bone"
 | 
				
			||||||
@@ -93,5 +110,6 @@ class BONE_PT_deform(BoneButtonsPanel):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bpy.types.register(BONE_PT_context_bone)
 | 
					bpy.types.register(BONE_PT_context_bone)
 | 
				
			||||||
 | 
					bpy.types.register(BONE_PT_transform_bone)
 | 
				
			||||||
bpy.types.register(BONE_PT_bone)
 | 
					bpy.types.register(BONE_PT_bone)
 | 
				
			||||||
bpy.types.register(BONE_PT_deform)
 | 
					bpy.types.register(BONE_PT_deform)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -90,17 +90,92 @@ class VIEW3D_HT_header(bpy.types.Header):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
		layout.template_header_3D()
 | 
							layout.template_header_3D()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class VIEW3D_PT_random_panel(bpy.types.Panel):
 | 
					class VIEW3D_PT_3dview_properties(bpy.types.Panel):
 | 
				
			||||||
	__space_type__ = "VIEW_3D"
 | 
						__space_type__ = "VIEW_3D"
 | 
				
			||||||
	__region_type__ = "UI"
 | 
						__region_type__ = "UI"
 | 
				
			||||||
	__label__ = "Random Panel"
 | 
						__label__ = "View"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						def poll(self, context):
 | 
				
			||||||
 | 
							view = context.space_data
 | 
				
			||||||
 | 
							return (view)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	def draw(self, context):
 | 
						def draw(self, context):
 | 
				
			||||||
 | 
							view = context.space_data
 | 
				
			||||||
		layout = self.layout
 | 
							layout = self.layout
 | 
				
			||||||
		layout.itemL(text="panel contents")
 | 
							
 | 
				
			||||||
 | 
							split = layout.split()
 | 
				
			||||||
 | 
							col = split.column()
 | 
				
			||||||
 | 
							col.itemR(view, "camera")
 | 
				
			||||||
 | 
							col.itemR(view, "lens")
 | 
				
			||||||
 | 
							col.itemL(text="Clip:")
 | 
				
			||||||
 | 
							col.itemR(view, "clip_start", text="Start")
 | 
				
			||||||
 | 
							col.itemR(view, "clip_end", text="End")
 | 
				
			||||||
 | 
							col.itemL(text="Grid:")
 | 
				
			||||||
 | 
							col.itemR(view, "grid_spacing", text="Spacing")
 | 
				
			||||||
 | 
							col.itemR(view, "grid_subdivisions", text="Subdivisions")
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
					class VIEW3D_PT_3dview_display(bpy.types.Panel):
 | 
				
			||||||
 | 
						__space_type__ = "VIEW_3D"
 | 
				
			||||||
 | 
						__region_type__ = "UI"
 | 
				
			||||||
 | 
						__label__ = "Display"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						def poll(self, context):
 | 
				
			||||||
 | 
							view = context.space_data
 | 
				
			||||||
 | 
							return (view)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						def draw(self, context):
 | 
				
			||||||
 | 
							view = context.space_data
 | 
				
			||||||
 | 
							layout = self.layout
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							split = layout.split()
 | 
				
			||||||
 | 
							col = split.column()
 | 
				
			||||||
 | 
							col.itemR(view, "display_floor", text="Grid Floor")
 | 
				
			||||||
 | 
							col.itemR(view, "display_x_axis", text="X Axis")
 | 
				
			||||||
 | 
							col.itemR(view, "display_y_axis", text="Y Axis")
 | 
				
			||||||
 | 
							col.itemR(view, "display_z_axis", text="Z Axis")
 | 
				
			||||||
 | 
							col.itemR(view, "outline_selected")
 | 
				
			||||||
 | 
							col.itemR(view, "all_object_centers")
 | 
				
			||||||
 | 
							col.itemR(view, "relationship_lines")
 | 
				
			||||||
 | 
							col.itemR(view, "textured_solid")
 | 
				
			||||||
 | 
								
 | 
				
			||||||
 | 
					class VIEW3D_PT_background_image(bpy.types.Panel):
 | 
				
			||||||
 | 
						__space_type__ = "VIEW_3D"
 | 
				
			||||||
 | 
						__region_type__ = "UI"
 | 
				
			||||||
 | 
						__label__ = "Background Image"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						def poll(self, context):
 | 
				
			||||||
 | 
							view = context.space_data
 | 
				
			||||||
 | 
							bg = context.space_data.background_image
 | 
				
			||||||
 | 
							return (view)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						def draw_header(self, context):
 | 
				
			||||||
 | 
							layout = self.layout
 | 
				
			||||||
 | 
							view = context.space_data
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							layout.itemR(view, "display_background_image", text="")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						def draw(self, context):
 | 
				
			||||||
 | 
							view = context.space_data
 | 
				
			||||||
 | 
							bg = context.space_data.background_image
 | 
				
			||||||
 | 
							layout = self.layout
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							layout.active = view.display_background_image
 | 
				
			||||||
 | 
							split = layout.split()
 | 
				
			||||||
 | 
							col = split.column()
 | 
				
			||||||
 | 
							col.itemR(bg, "image")
 | 
				
			||||||
 | 
					#		col.itemR(bg, "image_user")
 | 
				
			||||||
 | 
							col.itemR(bg, "size")
 | 
				
			||||||
 | 
							col.itemR(bg, "transparency", slider=True)
 | 
				
			||||||
 | 
							col.itemL(text="Offset:")
 | 
				
			||||||
 | 
							col.itemR(bg, "x_offset", text="X")
 | 
				
			||||||
 | 
							col.itemR(bg, "y_offset", text="Y")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bpy.types.register(VIEW3D_MT_view_navigation)
 | 
					bpy.types.register(VIEW3D_MT_view_navigation)
 | 
				
			||||||
bpy.types.register(VIEW3D_MT_view)
 | 
					bpy.types.register(VIEW3D_MT_view)
 | 
				
			||||||
bpy.types.register(VIEW3D_HT_header)
 | 
					bpy.types.register(VIEW3D_HT_header)
 | 
				
			||||||
bpy.types.register(VIEW3D_PT_random_panel)
 | 
					bpy.types.register(VIEW3D_PT_3dview_properties)
 | 
				
			||||||
 | 
					bpy.types.register(VIEW3D_PT_3dview_display)
 | 
				
			||||||
 | 
					bpy.types.register(VIEW3D_PT_background_image)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1243,20 +1243,20 @@ void ED_image_uiblock_panel(const bContext *C, uiBlock *block, Image **ima_pp, I
 | 
				
			|||||||
// XXX		uiSetButLock(ima->id.lib!=NULL, ERROR_LIBDATA_MESSAGE);
 | 
					// XXX		uiSetButLock(ima->id.lib!=NULL, ERROR_LIBDATA_MESSAGE);
 | 
				
			||||||
		uiBlockBeginAlign(block);
 | 
							uiBlockBeginAlign(block);
 | 
				
			||||||
		uiBlockSetFunc(block, image_src_change_cb, ima, iuser);
 | 
							uiBlockSetFunc(block, image_src_change_cb, ima, iuser);
 | 
				
			||||||
		uiDefButS(block, ROW, imagechanged, "Still",		10, 180, 60, 20, &ima->source, 0.0, IMA_SRC_FILE, 0, 0, "Single Image file");
 | 
							uiDefButS(block, ROW, imagechanged, "Still",		0, 180, 105, 20, &ima->source, 0.0, IMA_SRC_FILE, 0, 0, "Single Image file");
 | 
				
			||||||
		uiDefButS(block, ROW, imagechanged, "Movie",		70, 180, 60, 20, &ima->source, 0.0, IMA_SRC_MOVIE, 0, 0, "Movie file");
 | 
							uiDefButS(block, ROW, imagechanged, "Movie",		105, 180, 105, 20, &ima->source, 0.0, IMA_SRC_MOVIE, 0, 0, "Movie file");
 | 
				
			||||||
		uiDefButS(block, ROW, imagechanged, "Sequence",	130, 180, 90, 20, &ima->source, 0.0, IMA_SRC_SEQUENCE, 0, 0, "Multiple Image files, as a sequence");
 | 
							uiDefButS(block, ROW, imagechanged, "Sequence",		210, 180, 105, 20, &ima->source, 0.0, IMA_SRC_SEQUENCE, 0, 0, "Multiple Image files, as a sequence");
 | 
				
			||||||
		uiDefButS(block, ROW, imagechanged, "Generated",	220, 180, 90, 20, &ima->source, 0.0, IMA_SRC_GENERATED, 0, 0, "Generated Image");
 | 
							uiDefButS(block, ROW, imagechanged, "Generated",	315, 180, 105, 20, &ima->source, 0.0, IMA_SRC_GENERATED, 0, 0, "Generated Image");
 | 
				
			||||||
		uiBlockSetFunc(block, NULL, NULL, NULL);
 | 
							uiBlockSetFunc(block, NULL, NULL, NULL);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
		uiDefBut(block, LABEL, 0, " ",					10, 180, 300, 20, 0, 0, 0, 0, 0, "");	/* for align in panel */
 | 
							uiDefBut(block, LABEL, 0, " ",					0, 180, 440, 20, 0, 0, 0, 0, 0, "");	/* for align in panel */
 | 
				
			||||||
				 
 | 
									 
 | 
				
			||||||
	 /* Browse */
 | 
						 /* Browse */
 | 
				
			||||||
	 IMAnames_to_pupstring(&strp, NULL, NULL, &(CTX_data_main(C)->image), NULL, &iuser->menunr);
 | 
						 IMAnames_to_pupstring(&strp, NULL, NULL, &(CTX_data_main(C)->image), NULL, &iuser->menunr);
 | 
				
			||||||
	 
 | 
						 
 | 
				
			||||||
	 uiBlockBeginAlign(block);
 | 
						 uiBlockBeginAlign(block);
 | 
				
			||||||
	 but= uiDefButS(block, MENU, imagechanged, strp,		10,155,23,20, &iuser->menunr, 0, 0, 0, 0, "Selects an existing Image or Movie");
 | 
						 but= uiDefButS(block, MENU, imagechanged, strp,		0,155,40,20, &iuser->menunr, 0, 0, 0, 0, "Selects an existing Image or Movie");
 | 
				
			||||||
	 uiButSetFunc(but, image_browse_cb, ima_pp, iuser);
 | 
						 uiButSetFunc(but, image_browse_cb, ima_pp, iuser);
 | 
				
			||||||
	 
 | 
						 
 | 
				
			||||||
	 MEM_freeN(strp);
 | 
						 MEM_freeN(strp);
 | 
				
			||||||
@@ -1265,31 +1265,34 @@ void ED_image_uiblock_panel(const bContext *C, uiBlock *block, Image **ima_pp, I
 | 
				
			|||||||
	 if(ima) {
 | 
						 if(ima) {
 | 
				
			||||||
		 int drawpack= (ima->source!=IMA_SRC_SEQUENCE && ima->source!=IMA_SRC_MOVIE && ima->ok);
 | 
							 int drawpack= (ima->source!=IMA_SRC_SEQUENCE && ima->source!=IMA_SRC_MOVIE && ima->ok);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		 but= uiDefBut(block, TEX, B_IDNAME, "IM:",		33, 155, 177, 20, ima->id.name+2, 0.0, 21.0, 0, 0, "Current Image Datablock name.");
 | 
							 but= uiDefBut(block, TEX, B_IDNAME, "IM:",				40, 155, 220, 20, ima->id.name+2, 0.0, 21.0, 0, 0, "Current Image Datablock name.");
 | 
				
			||||||
		 uiButSetFunc(but, test_idbutton_cb, ima->id.name, NULL);
 | 
							 uiButSetFunc(but, test_idbutton_cb, ima->id.name, NULL);
 | 
				
			||||||
		 but= uiDefBut(block, BUT, imagechanged, "Reload",		210, 155, 60, 20, NULL, 0, 0, 0, 0, "Reloads Image or Movie");
 | 
							 but= uiDefBut(block, BUT, imagechanged, "Reload",		260, 155, 70, 20, NULL, 0, 0, 0, 0, "Reloads Image or Movie");
 | 
				
			||||||
		 uiButSetFunc(but, image_reload_cb, ima, iuser);
 | 
							 uiButSetFunc(but, image_reload_cb, ima, iuser);
 | 
				
			||||||
		 
 | 
							 
 | 
				
			||||||
		 but= uiDefIconBut(block, BUT, imagechanged, ICON_X,	270,155,20,20, 0, 0, 0, 0, 0, "Unlink Image block");
 | 
							 but= uiDefIconBut(block, BUT, imagechanged, ICON_X,	330, 155, 40, 20, 0, 0, 0, 0, 0, "Unlink Image block");
 | 
				
			||||||
		 uiButSetFunc(but, image_unlink_cb, ima_pp, NULL);
 | 
							 uiButSetFunc(but, image_unlink_cb, ima_pp, NULL);
 | 
				
			||||||
		 sprintf(str, "%d", ima->id.us);
 | 
							 sprintf(str, "%d", ima->id.us);
 | 
				
			||||||
		 uiDefBut(block, BUT, B_NOP, str,					290,155,20,20, 0, 0, 0, 0, 0, "Only displays number of users of Image block");
 | 
							 uiDefBut(block, BUT, B_NOP, str,					370, 155, 40, 20, 0, 0, 0, 0, 0, "Only displays number of users of Image block");
 | 
				
			||||||
 | 
							 uiBlockEndAlign(block);
 | 
				
			||||||
		 
 | 
							 
 | 
				
			||||||
		 but= uiDefIconBut(block, BUT, imagechanged, ICON_FILESEL,	10, 135, 23, 20, 0, 0, 0, 0, 0, "Open Fileselect to load new Image");
 | 
							 uiBlockBeginAlign(block);
 | 
				
			||||||
 | 
							 but= uiDefIconBut(block, BUT, imagechanged, ICON_FILESEL,	0, 130, 40, 20, 0, 0, 0, 0, 0, "Open Fileselect to load new Image");
 | 
				
			||||||
		 uiButSetFunc(but, image_load_fs_cb, ima_pp, iuser);
 | 
							 uiButSetFunc(but, image_load_fs_cb, ima_pp, iuser);
 | 
				
			||||||
		 but= uiDefBut(block, TEX, imagechanged, "",				33,135,257+(drawpack?0:20),20, ima->name, 0.0, 239.0, 0, 0, "Image/Movie file name, change to load new");
 | 
							 but= uiDefBut(block, TEX, imagechanged, "",				40,130, 340+(drawpack?0:20),20, ima->name, 0.0, 239.0, 0, 0, "Image/Movie file name, change to load new");
 | 
				
			||||||
		 uiButSetFunc(but, image_load_cb, ima_pp, iuser);
 | 
							 uiButSetFunc(but, image_load_cb, ima_pp, iuser);
 | 
				
			||||||
 | 
							 uiBlockEndAlign(block);
 | 
				
			||||||
		 
 | 
							 
 | 
				
			||||||
		 if(drawpack) {
 | 
							 if(drawpack) {
 | 
				
			||||||
			 if (ima->packedfile) packdummy = 1;
 | 
								 if (ima->packedfile) packdummy = 1;
 | 
				
			||||||
			 else packdummy = 0;
 | 
								 else packdummy = 0;
 | 
				
			||||||
			 but= uiDefIconButBitI(block, TOG, 1, redraw, ICON_PACKAGE, 290,135,20,20, &packdummy, 0, 0, 0, 0, "Toggles Packed status of this Image");
 | 
								 but= uiDefIconButBitI(block, TOG, 1, redraw, ICON_PACKAGE, 380, 130, 40, 20, &packdummy, 0, 0, 0, 0, "Toggles Packed status of this Image");
 | 
				
			||||||
			 uiButSetFunc(but, image_pack_cb, ima, iuser);
 | 
								 uiButSetFunc(but, image_pack_cb, ima, iuser);
 | 
				
			||||||
		 }
 | 
							 }
 | 
				
			||||||
		 
 | 
							 
 | 
				
			||||||
	 }
 | 
						 }
 | 
				
			||||||
	 else {
 | 
						 else {
 | 
				
			||||||
		 but= uiDefBut(block, BUT, imagechanged, "Load",		33, 155, 100,20, NULL, 0, 0, 0, 0, "Load new Image of Movie");
 | 
							 but= uiDefBut(block, BUT, imagechanged, "Load",		33, 155, 200,20, NULL, 0, 0, 0, 0, "Load new Image of Movie");
 | 
				
			||||||
		 uiButSetFunc(but, image_load_fs_cb, ima_pp, iuser);
 | 
							 uiButSetFunc(but, image_load_fs_cb, ima_pp, iuser);
 | 
				
			||||||
	 }
 | 
						 }
 | 
				
			||||||
	 uiBlockEndAlign(block);
 | 
						 uiBlockEndAlign(block);
 | 
				
			||||||
@@ -1320,46 +1323,54 @@ void ED_image_uiblock_panel(const bContext *C, uiBlock *block, Image **ima_pp, I
 | 
				
			|||||||
		 /* left side default per-image options, right half the additional options */
 | 
							 /* left side default per-image options, right half the additional options */
 | 
				
			||||||
		 
 | 
							 
 | 
				
			||||||
		 /* fields */
 | 
							 /* fields */
 | 
				
			||||||
		 uiBlockBeginAlign(block);
 | 
							 
 | 
				
			||||||
		 but= uiDefButBitS(block, TOGBUT, IMA_FIELDS, imagechanged, "Fields",	10, 70, 65, 20, &ima->flag, 0, 0, 0, 0, "Click to enable use of fields in Image");
 | 
							 but= uiDefButBitS(block, TOGBUT, IMA_FIELDS, imagechanged, "Fields",	0, 80, 200, 20, &ima->flag, 0, 0, 0, 0, "Click to enable use of fields in Image");
 | 
				
			||||||
		 uiButSetFunc(but, image_field_test, ima, iuser);
 | 
							 uiButSetFunc(but, image_field_test, ima, iuser);
 | 
				
			||||||
		 uiDefButBitS(block, TOGBUT, IMA_STD_FIELD, B_NOP, "Odd",			75, 70, 45, 20, &ima->flag, 0, 0, 0, 0, "Standard Field Toggle");
 | 
							 uiDefButBitS(block, TOGBUT, IMA_STD_FIELD, B_NOP, "Odd",				0, 55, 200, 20, &ima->flag, 0, 0, 0, 0, "Standard Field Toggle");
 | 
				
			||||||
 | 
							
 | 
				
			||||||
		 
 | 
							 
 | 
				
			||||||
		 uiBlockSetFunc(block, image_reload_cb, ima, iuser);
 | 
							 uiBlockSetFunc(block, image_reload_cb, ima, iuser);
 | 
				
			||||||
		 uiDefButBitS(block, TOGBUT, IMA_ANTIALI, B_NOP, "Anti",			10, 50, 45, 20, &ima->flag, 0, 0, 0, 0, "Toggles Image anti-aliasing, only works with solid colors");
 | 
							 uiDefButBitS(block, TOGBUT, IMA_ANTIALI, B_NOP, "Anti",				0, 5, 200, 20, &ima->flag, 0, 0, 0, 0, "Toggles Image anti-aliasing, only works with solid colors");
 | 
				
			||||||
		 uiDefButBitS(block, TOGBUT, IMA_DO_PREMUL, imagechanged, "Premul",		55, 50, 65, 20, &ima->flag, 0, 0, 0, 0, "Toggles premultiplying alpha");
 | 
							 uiDefButBitS(block, TOGBUT, IMA_DO_PREMUL, imagechanged, "Premul",		0, -20, 200, 20, &ima->flag, 0, 0, 0, 0, "Toggles premultiplying alpha");
 | 
				
			||||||
		 uiBlockEndAlign(block);
 | 
							 
 | 
				
			||||||
		 
 | 
							 
 | 
				
			||||||
		 if( ELEM(ima->source, IMA_SRC_MOVIE, IMA_SRC_SEQUENCE)) {
 | 
							 if( ELEM(ima->source, IMA_SRC_MOVIE, IMA_SRC_SEQUENCE)) {
 | 
				
			||||||
			 sprintf(str, "(%d) Frames:", iuser->framenr);
 | 
								 sprintf(str, "(%d) Frames:", iuser->framenr);
 | 
				
			||||||
			 
 | 
								 
 | 
				
			||||||
			 uiBlockBeginAlign(block);
 | 
								 //uiBlockBeginAlign(block);
 | 
				
			||||||
			 uiBlockSetFunc(block, image_user_change, iuser, NULL);
 | 
								 uiBlockSetFunc(block, image_user_change, iuser, NULL);
 | 
				
			||||||
			 uiDefButBitS(block, TOG, IMA_ANIM_ALWAYS, B_NOP, "Auto Refresh",	120, 70, 190, 20, &iuser->flag, 0, 0, 0, 0, "Always refresh Image on frame changes");
 | 
								 			 
 | 
				
			||||||
			 
 | 
					 | 
				
			||||||
			 if(ima->anim) {
 | 
								 if(ima->anim) {
 | 
				
			||||||
				 uiDefButI(block, NUM, imagechanged, str,		120, 50,170, 20, &iuser->frames, 0.0, MAXFRAMEF, 0, 0, "Sets the number of images of a movie to use");
 | 
								 	 uiBlockBeginAlign(block);
 | 
				
			||||||
				 but= uiDefBut(block, BUT, redraw, "<",		290, 50, 20, 20, 0, 0, 0, 0, 0, "Copies number of frames in movie file to Frames: button");
 | 
									 uiDefButI(block, NUM, imagechanged, str,						220, 80, 160, 20, &iuser->frames, 0.0, MAXFRAMEF, 0, 0, "Sets the number of images of a movie to use");
 | 
				
			||||||
 | 
									 but= uiDefBut(block, BUT, redraw, "<",							380, 80, 40, 20, 0, 0, 0, 0, 0, "Copies number of frames in movie file to Frames: button");
 | 
				
			||||||
				 uiButSetFunc(but, set_frames_cb, ima, iuser);
 | 
									 uiButSetFunc(but, set_frames_cb, ima, iuser);
 | 
				
			||||||
 | 
									 uiBlockEndAlign(block);
 | 
				
			||||||
			 }
 | 
								 }
 | 
				
			||||||
			 else 
 | 
								 else 
 | 
				
			||||||
				 uiDefButI(block, NUM, imagechanged, str,		120, 50,190, 20, &iuser->frames, 0.0, MAXFRAMEF, 0, 0, "Sets the number of images of a movie to use");
 | 
									 uiDefButI(block, NUM, imagechanged, str,						220, 80, 200, 20, &iuser->frames, 0.0, MAXFRAMEF, 0, 0, "Sets the number of images of a movie to use");
 | 
				
			||||||
			 
 | 
								 
 | 
				
			||||||
			 uiDefButI(block, NUM, imagechanged, "Offs:",	120,30,100,20, &iuser->offset, -MAXFRAMEF, MAXFRAMEF, 0, 0, "Offsets the number of the frame to use in the animation");
 | 
								 uiDefButI(block, NUM, imagechanged, "Start Frame:",				220, 55, 200, 20, &iuser->sfra, 1.0, MAXFRAMEF, 0, 0, "Sets the global starting frame of the movie");
 | 
				
			||||||
			 uiDefButS(block, NUM, imagechanged, "Fie/Ima:",	220,30,90,20, &iuser->fie_ima, 1.0, 200.0, 0, 0, "The number of fields per rendered frame (2 fields is 1 image)");
 | 
								 uiDefButI(block, NUM, imagechanged, "Offset:",						220, 30, 200, 20, &iuser->offset, -MAXFRAMEF, MAXFRAMEF, 0, 0, "Offsets the number of the frame to use in the animation");
 | 
				
			||||||
 | 
								 uiDefButS(block, NUM, imagechanged, "Fields:",						0, 30, 200, 20, &iuser->fie_ima, 1.0, 200.0, 0, 0, "The number of fields per rendered frame (2 fields is 1 image)");
 | 
				
			||||||
			 
 | 
								 
 | 
				
			||||||
			 uiDefButI(block, NUM, imagechanged, "StartFr:",	120,10,100,20, &iuser->sfra, 1.0, MAXFRAMEF, 0, 0, "Sets the global starting frame of the movie");
 | 
								uiDefButBitS(block, TOG, IMA_ANIM_ALWAYS, B_NOP, "Auto Refresh",	220, 5, 200, 20, &iuser->flag, 0, 0, 0, 0, "Always refresh Image on frame changes");
 | 
				
			||||||
			 uiDefButS(block, TOG, imagechanged, "Cyclic",	220,10,90,20, &iuser->cycl, 0.0, 1.0, 0, 0, "Cycle the images in the movie");
 | 
					
 | 
				
			||||||
 | 
								 uiDefButS(block, TOG, imagechanged, "Cyclic",						220, -20, 200, 20, &iuser->cycl, 0.0, 1.0, 0, 0, "Cycle the images in the movie");
 | 
				
			||||||
			 
 | 
								 
 | 
				
			||||||
			 uiBlockSetFunc(block, NULL, iuser, NULL);
 | 
								 uiBlockSetFunc(block, NULL, iuser, NULL);
 | 
				
			||||||
		 }
 | 
							 }
 | 
				
			||||||
		 else if(ima->source==IMA_SRC_GENERATED) {
 | 
							 else if(ima->source==IMA_SRC_GENERATED) {
 | 
				
			||||||
			 
 | 
								 
 | 
				
			||||||
 | 
								 uiDefBut(block, LABEL, 0, "Size:",					220, 80, 200, 20, 0, 0, 0, 0, 0, "");	
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			 uiBlockBeginAlign(block);
 | 
								 uiBlockBeginAlign(block);
 | 
				
			||||||
			 uiBlockSetFunc(block, image_generated_change_cb, ima, iuser);
 | 
								 uiBlockSetFunc(block, image_generated_change_cb, ima, iuser);
 | 
				
			||||||
			 uiDefButS(block, NUM, imagechanged, "SizeX:",	120,70,100,20, &ima->gen_x, 1.0, 5000.0, 0, 0, "Image size x");
 | 
								 uiDefButS(block, NUM, imagechanged, "X:",	220, 55,200,20, &ima->gen_x, 1.0, 5000.0, 0, 0, "Image size x");
 | 
				
			||||||
			 uiDefButS(block, NUM, imagechanged, "SizeY:",	220,70,90,20, &ima->gen_y, 1.0, 5000.0, 0, 0, "Image size y");
 | 
								 uiDefButS(block, NUM, imagechanged, "Y:",	220, 35,200,20, &ima->gen_y, 1.0, 5000.0, 0, 0, "Image size y");
 | 
				
			||||||
			 uiDefButS(block, TOGBUT, imagechanged, "UV Test grid",120,50,190,20, &ima->gen_type, 0.0, 1.0, 0, 0, "");
 | 
								 uiBlockEndAlign(block);
 | 
				
			||||||
 | 
								 
 | 
				
			||||||
 | 
								 uiDefButS(block, TOGBUT, imagechanged, "UV Test grid", 220,10,200,20, &ima->gen_type, 0.0, 1.0, 0, 0, "");
 | 
				
			||||||
			 uiBlockSetFunc(block, NULL, NULL, NULL);
 | 
								 uiBlockSetFunc(block, NULL, NULL, NULL);
 | 
				
			||||||
		 }
 | 
							 }
 | 
				
			||||||
	 }
 | 
						 }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -301,42 +301,44 @@ static void v3d_editvertex_buts(const bContext *C, uiBlock *block, View3D *v3d,
 | 
				
			|||||||
		else											but_y = 150;
 | 
							else											but_y = 150;
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		uiBlockBeginAlign(block);
 | 
							uiBlockBeginAlign(block);
 | 
				
			||||||
		uiDefButBitS(block, TOG, V3D_GLOBAL_STATS, B_REDR, "Global",		160, but_y, 70, 19, &v3d->flag, 0, 0, 0, 0, "Displays global values");
 | 
							uiDefButBitS(block, TOG, V3D_GLOBAL_STATS, B_REDR, "Global",		0, 20, 100, 20, &v3d->flag, 0, 0, 0, 0, "Displays global values");
 | 
				
			||||||
		uiDefButBitS(block, TOGN, V3D_GLOBAL_STATS, B_REDR, "Local",		230, but_y, 70, 19, &v3d->flag, 0, 0, 0, 0, "Displays local values");
 | 
							uiDefButBitS(block, TOGN, V3D_GLOBAL_STATS, B_REDR, "Local",		100, 20, 100, 20, &v3d->flag, 0, 0, 0, 0, "Displays local values");
 | 
				
			||||||
		uiBlockEndAlign(block);
 | 
							uiBlockEndAlign(block);
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		memcpy(tfp->ve_median, median, sizeof(tfp->ve_median));
 | 
							memcpy(tfp->ve_median, median, sizeof(tfp->ve_median));
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		uiBlockBeginAlign(block);
 | 
							uiBlockBeginAlign(block);
 | 
				
			||||||
		if(tot==1) {
 | 
							if(tot==1) {
 | 
				
			||||||
			uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Vertex X:",	10, 110, 290, 19, &(tfp->ve_median[0]), -lim, lim, 10, 3, "");
 | 
								uiDefBut(block, LABEL, 0, "Vertex:",					0, 130, 200, 20, 0, 0, 0, 0, 0, "");
 | 
				
			||||||
			uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Vertex Y:",	10, 90, 290, 19, &(tfp->ve_median[1]), -lim, lim, 10, 3, "");
 | 
								uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "X:",		0, 110, 200, 20, &(tfp->ve_median[0]), -lim, lim, 10, 3, "");
 | 
				
			||||||
			uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Vertex Z:",	10, 70, 290, 19, &(tfp->ve_median[2]), -lim, lim, 10, 3, "");
 | 
								uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Y:",		0, 90, 200, 20, &(tfp->ve_median[1]), -lim, lim, 10, 3, "");
 | 
				
			||||||
 | 
								uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Z:",		0, 70, 200, 20, &(tfp->ve_median[2]), -lim, lim, 10, 3, "");
 | 
				
			||||||
			if(totw==1)
 | 
								if(totw==1)
 | 
				
			||||||
				uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Vertex W:",	10, 50, 290, 19, &(tfp->ve_median[3]), 0.01, 100.0, 10, 3, "");
 | 
									uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Vertex W:",	0, 50, 200, 19, &(tfp->ve_median[3]), 0.01, 100.0, 10, 3, "");
 | 
				
			||||||
			uiBlockEndAlign(block);
 | 
								uiBlockEndAlign(block);
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
			if(defstr[0]) {
 | 
								if(defstr[0]) {
 | 
				
			||||||
				uiDefBut(block, LABEL, 1, "Vertex Deform Groups",		10, 40, 290, 20, NULL, 0.0, 0.0, 0, 0, "");
 | 
									uiDefBut(block, LABEL, 1, "Vertex Deform Groups",		0, 40, 200, 20, NULL, 0.0, 0.0, 0, 0, "");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				uiBlockBeginAlign(block);
 | 
									uiBlockBeginAlign(block);
 | 
				
			||||||
				uiDefButF(block, NUM, B_NOP, "Weight:",			10, 20, 150, 19, tfp->defweightp, 0.0f, 1.0f, 10, 3, "Weight value");
 | 
									uiDefButF(block, NUM, B_NOP, "Weight:",					10, 20, 150, 20, tfp->defweightp, 0.0f, 1.0f, 10, 3, "Weight value");
 | 
				
			||||||
				uiDefButI(block, MENU, B_REDR, defstr,	160, 20, 140, 19, &tfp->curdef, 0.0, 0.0, 0, 0, "Current Vertex Group");
 | 
									uiDefButI(block, MENU, B_REDR, defstr,					160, 20, 140, 20, &tfp->curdef, 0.0, 0.0, 0, 0, "Current Vertex Group");
 | 
				
			||||||
				uiBlockEndAlign(block);
 | 
									uiBlockEndAlign(block);
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			else if(totweight)
 | 
								else if(totweight)
 | 
				
			||||||
				uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Weight:",	10, 20, 290, 19, &(tfp->ve_median[4]), 0.0, 1.0, 10, 3, "");
 | 
									uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Weight:",	0, 20, 200, 20, &(tfp->ve_median[4]), 0.0, 1.0, 10, 3, "");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		else {
 | 
							else {
 | 
				
			||||||
			uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Median X:",	10, 110, 290, 19, &(tfp->ve_median[0]), -lim, lim, 10, 3, "");
 | 
								uiDefBut(block, LABEL, 0, "Median:",						0, 130, 200, 20, 0, 0, 0, 0, 0, "");
 | 
				
			||||||
			uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Median Y:",	10, 90, 290, 19, &(tfp->ve_median[1]), -lim, lim, 10, 3, "");
 | 
								uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "X:",		0, 110, 200, 20, &(tfp->ve_median[0]), -lim, lim, 10, 3, "");
 | 
				
			||||||
			uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Median Z:",	10, 70, 290, 19, &(tfp->ve_median[2]), -lim, lim, 10, 3, "");
 | 
								uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Y:",		0, 90, 200, 20, &(tfp->ve_median[1]), -lim, lim, 10, 3, "");
 | 
				
			||||||
 | 
								uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Z:",		0, 70, 200, 20, &(tfp->ve_median[2]), -lim, lim, 10, 3, "");
 | 
				
			||||||
			if(totw==tot)
 | 
								if(totw==tot)
 | 
				
			||||||
				uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Median W:",	10, 50, 290, 19, &(tfp->ve_median[3]), 0.01, 100.0, 10, 3, "");
 | 
									uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "W:",	0, 50, 200, 20, &(tfp->ve_median[3]), 0.01, 100.0, 10, 3, "");
 | 
				
			||||||
			uiBlockEndAlign(block);
 | 
								uiBlockEndAlign(block);
 | 
				
			||||||
			if(totweight)
 | 
								if(totweight)
 | 
				
			||||||
				uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Weight:",	10, 20, 290, 19, &(tfp->ve_median[4]), 0.0, 1.0, 10, 3, "Weight is used for SoftBody Goal");
 | 
									uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Weight:",	0, 20, 200, 20, &(tfp->ve_median[4]), 0.0, 1.0, 10, 3, "Weight is used for SoftBody Goal");
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		if(ob->type==OB_CURVE && (totw==0)) { /* bez curves have no w */
 | 
							if(ob->type==OB_CURVE && (totw==0)) { /* bez curves have no w */
 | 
				
			||||||
@@ -349,9 +351,9 @@ static void v3d_editvertex_buts(const bContext *C, uiBlock *block, View3D *v3d,
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		if(totedge==1)
 | 
							if(totedge==1)
 | 
				
			||||||
			uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Crease W:",	10, 30, 290, 19, &(tfp->ve_median[3]), 0.0, 1.0, 10, 3, "");
 | 
								uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Crease W:",	0, 45, 200, 20, &(tfp->ve_median[3]), 0.0, 1.0, 10, 3, "");
 | 
				
			||||||
		else if(totedge>1)
 | 
							else if(totedge>1)
 | 
				
			||||||
			uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Median Crease W:",	10, 30, 290, 19, &(tfp->ve_median[3]), 0.0, 1.0, 10, 3, "");
 | 
								uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Median Crease W:",	0, 45, 200, 20, &(tfp->ve_median[3]), 0.0, 1.0, 10, 3, "");
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	else {	// apply
 | 
						else {	// apply
 | 
				
			||||||
@@ -1234,15 +1236,15 @@ static void view3d_panel_object(const bContext *C, Panel *pa)
 | 
				
			|||||||
	if(G.f & (G_VERTEXPAINT|G_TEXTUREPAINT|G_WEIGHTPAINT)) {
 | 
						if(G.f & (G_VERTEXPAINT|G_TEXTUREPAINT|G_WEIGHTPAINT)) {
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	else {
 | 
						else {
 | 
				
			||||||
		bt= uiDefBut(block, TEX, B_IDNAME, "OB: ",	10,180,140,20, ob->id.name+2, 0.0, 21.0, 0, 0, "");
 | 
							//bt= uiDefBut(block, TEX, B_IDNAME, "OB: ",	10,180,140,20, ob->id.name+2, 0.0, 21.0, 0, 0, "");
 | 
				
			||||||
		uiButSetFunc(bt, test_idbutton_cb, ob->id.name, NULL);
 | 
							//uiButSetFunc(bt, test_idbutton_cb, ob->id.name, NULL);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if((G.f & G_PARTICLEEDIT)==0) {
 | 
							if((G.f & G_PARTICLEEDIT)==0) {
 | 
				
			||||||
			uiBlockBeginAlign(block);
 | 
							//	uiBlockBeginAlign(block);
 | 
				
			||||||
			uiDefIDPoinBut(block, test_obpoin_but, ID_OB, B_OBJECTPANELPARENT, "Par:", 160, 180, 140, 20, &ob->parent, "Parent Object"); 
 | 
							//	uiDefIDPoinBut(block, test_obpoin_but, ID_OB, B_OBJECTPANELPARENT, "Par:", 160, 180, 140, 20, &ob->parent, "Parent Object"); 
 | 
				
			||||||
			if((ob->parent) && (ob->partype == PARBONE)) {
 | 
								if((ob->parent) && (ob->partype == PARBONE)) {
 | 
				
			||||||
				bt= uiDefBut(block, TEX, B_OBJECTPANELPARENT, "ParBone:", 160, 160, 140, 20, ob->parsubstr, 0, 30, 0, 0, "");
 | 
							//		bt= uiDefBut(block, TEX, B_OBJECTPANELPARENT, "ParBone:", 160, 160, 140, 20, ob->parsubstr, 0, 30, 0, 0, "");
 | 
				
			||||||
				uiButSetCompleteFunc(bt, autocomplete_bone, (void *)ob->parent);
 | 
							//		uiButSetCompleteFunc(bt, autocomplete_bone, (void *)ob->parent);
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			else {
 | 
								else {
 | 
				
			||||||
				strcpy(ob->parsubstr, "");
 | 
									strcpy(ob->parsubstr, "");
 | 
				
			||||||
@@ -1284,14 +1286,15 @@ static void view3d_panel_object(const bContext *C, Panel *pa)
 | 
				
			|||||||
	} 
 | 
						} 
 | 
				
			||||||
	else {
 | 
						else {
 | 
				
			||||||
		BoundBox *bb = NULL;
 | 
							BoundBox *bb = NULL;
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							uiDefBut(block, LABEL, 0, "Location:",					10, 170, 100, 20, 0, 0, 0, 0, 0, "");
 | 
				
			||||||
		uiBlockBeginAlign(block);
 | 
							uiBlockBeginAlign(block);
 | 
				
			||||||
		uiDefIconButBitS(block, ICONTOG, OB_LOCK_LOCX, B_REDR, ICON_UNLOCKED,	10,150,20,19, &(ob->protectflag), 0, 0, 0, 0, "Protects this value from being Transformed");
 | 
							uiDefIconButBitS(block, ICONTOG, OB_LOCK_LOCX, B_REDR, ICON_UNLOCKED,	10,150,20,19, &(ob->protectflag), 0, 0, 0, 0, "Protects this value from being Transformed");
 | 
				
			||||||
		uiDefButF(block, NUM, B_OBJECTPANEL, "LocX:",		30, 150, 120, 19, &(ob->loc[0]), -lim, lim, 100, 3, "");
 | 
							uiDefButF(block, NUM, B_OBJECTPANEL, "X:",		30, 150, 120, 19, &(ob->loc[0]), -lim, lim, 100, 3, "");
 | 
				
			||||||
		uiDefIconButBitS(block, ICONTOG, OB_LOCK_LOCY, B_REDR, ICON_UNLOCKED,	10,130,20,19, &(ob->protectflag), 0, 0, 0, 0, "Protects this value from being Transformed");
 | 
							uiDefIconButBitS(block, ICONTOG, OB_LOCK_LOCY, B_REDR, ICON_UNLOCKED,	10,130,20,19, &(ob->protectflag), 0, 0, 0, 0, "Protects this value from being Transformed");
 | 
				
			||||||
		uiDefButF(block, NUM, B_OBJECTPANEL, "LocY:",		30, 130, 120, 19, &(ob->loc[1]), -lim, lim, 100, 3, "");
 | 
							uiDefButF(block, NUM, B_OBJECTPANEL, "Y:",		30, 130, 120, 19, &(ob->loc[1]), -lim, lim, 100, 3, "");
 | 
				
			||||||
		uiDefIconButBitS(block, ICONTOG, OB_LOCK_LOCZ, B_REDR, ICON_UNLOCKED,	10,110,20,19, &(ob->protectflag), 0, 0, 0, 0, "Protects this value from being Transformed");
 | 
							uiDefIconButBitS(block, ICONTOG, OB_LOCK_LOCZ, B_REDR, ICON_UNLOCKED,	10,110,20,19, &(ob->protectflag), 0, 0, 0, 0, "Protects this value from being Transformed");
 | 
				
			||||||
		uiDefButF(block, NUM, B_OBJECTPANEL, "LocZ:",		30, 110, 120, 19, &(ob->loc[2]), -lim, lim, 100, 3, "");
 | 
							uiDefButF(block, NUM, B_OBJECTPANEL, "Z:",		30, 110, 120, 19, &(ob->loc[2]), -lim, lim, 100, 3, "");
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		tfp->ob_eul[0]= 180.0*ob->rot[0]/M_PI;
 | 
							tfp->ob_eul[0]= 180.0*ob->rot[0]/M_PI;
 | 
				
			||||||
		tfp->ob_eul[1]= 180.0*ob->rot[1]/M_PI;
 | 
							tfp->ob_eul[1]= 180.0*ob->rot[1]/M_PI;
 | 
				
			||||||
@@ -1299,37 +1302,40 @@ static void view3d_panel_object(const bContext *C, Panel *pa)
 | 
				
			|||||||
		
 | 
							
 | 
				
			||||||
		uiBlockBeginAlign(block);
 | 
							uiBlockBeginAlign(block);
 | 
				
			||||||
		if ((ob->parent) && (ob->partype == PARBONE)) {
 | 
							if ((ob->parent) && (ob->partype == PARBONE)) {
 | 
				
			||||||
 | 
								uiDefBut(block, LABEL, 0, "Rotation:",					160, 170, 100, 20, 0, 0, 0, 0, 0, "");
 | 
				
			||||||
			uiDefIconButBitS(block, ICONTOG, OB_LOCK_ROTX, B_REDR, ICON_UNLOCKED,	160,130,20,19, &(ob->protectflag), 0, 0, 0, 0, "Protects this value from being Transformed");
 | 
								uiDefIconButBitS(block, ICONTOG, OB_LOCK_ROTX, B_REDR, ICON_UNLOCKED,	160,130,20,19, &(ob->protectflag), 0, 0, 0, 0, "Protects this value from being Transformed");
 | 
				
			||||||
			uiDefButF(block, NUM, B_OBJECTPANELROT, "RotX:",	180, 130, 120, 19, &(tfp->ob_eul[0]), -lim, lim, 1000, 3, "");
 | 
								uiDefButF(block, NUM, B_OBJECTPANELROT, "X:",	180, 130, 120, 19, &(tfp->ob_eul[0]), -lim, lim, 1000, 3, "");
 | 
				
			||||||
			uiDefIconButBitS(block, ICONTOG, OB_LOCK_ROTY, B_REDR, ICON_UNLOCKED,	160,110,20,19, &(ob->protectflag), 0, 0, 0, 0, "Protects this value from being Transformed");
 | 
								uiDefIconButBitS(block, ICONTOG, OB_LOCK_ROTY, B_REDR, ICON_UNLOCKED,	160,110,20,19, &(ob->protectflag), 0, 0, 0, 0, "Protects this value from being Transformed");
 | 
				
			||||||
			uiDefButF(block, NUM, B_OBJECTPANELROT, "RotY:",	180, 110, 120, 19, &(tfp->ob_eul[1]), -lim, lim, 1000, 3, "");
 | 
								uiDefButF(block, NUM, B_OBJECTPANELROT, "Y:",	180, 110, 120, 19, &(tfp->ob_eul[1]), -lim, lim, 1000, 3, "");
 | 
				
			||||||
			uiDefIconButBitS(block, ICONTOG, OB_LOCK_ROTZ, B_REDR, ICON_UNLOCKED,	160,90,20,19, &(ob->protectflag), 0, 0, 0, 0, "Protects this value from being Transformed");
 | 
								uiDefIconButBitS(block, ICONTOG, OB_LOCK_ROTZ, B_REDR, ICON_UNLOCKED,	160,90,20,19, &(ob->protectflag), 0, 0, 0, 0, "Protects this value from being Transformed");
 | 
				
			||||||
			uiDefButF(block, NUM, B_OBJECTPANELROT, "RotZ:",	180, 90, 120, 19, &(tfp->ob_eul[2]), -lim, lim, 1000, 3, "");
 | 
								uiDefButF(block, NUM, B_OBJECTPANELROT, "Z:",	180, 90, 120, 19, &(tfp->ob_eul[2]), -lim, lim, 1000, 3, "");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		else {
 | 
							else {
 | 
				
			||||||
 | 
								uiDefBut(block, LABEL, 0, "Rotation:",					160, 170, 100, 20, 0, 0, 0, 0, 0, "");
 | 
				
			||||||
			uiDefIconButBitS(block, ICONTOG, OB_LOCK_ROTX, B_REDR, ICON_UNLOCKED,	160,150,20,19, &(ob->protectflag), 0, 0, 0, 0, "Protects this value from being Transformed");
 | 
								uiDefIconButBitS(block, ICONTOG, OB_LOCK_ROTX, B_REDR, ICON_UNLOCKED,	160,150,20,19, &(ob->protectflag), 0, 0, 0, 0, "Protects this value from being Transformed");
 | 
				
			||||||
			uiDefButF(block, NUM, B_OBJECTPANELROT, "RotX:",	180, 150, 120, 19, &(tfp->ob_eul[0]), -lim, lim, 1000, 3, "");
 | 
								uiDefButF(block, NUM, B_OBJECTPANELROT, "X:",	180, 150, 120, 19, &(tfp->ob_eul[0]), -lim, lim, 1000, 3, "");
 | 
				
			||||||
			uiDefIconButBitS(block, ICONTOG, OB_LOCK_ROTY, B_REDR, ICON_UNLOCKED,	160,130,20,19, &(ob->protectflag), 0, 0, 0, 0, "Protects this value from being Transformed");
 | 
								uiDefIconButBitS(block, ICONTOG, OB_LOCK_ROTY, B_REDR, ICON_UNLOCKED,	160,130,20,19, &(ob->protectflag), 0, 0, 0, 0, "Protects this value from being Transformed");
 | 
				
			||||||
			uiDefButF(block, NUM, B_OBJECTPANELROT, "RotY:",	180, 130, 120, 19, &(tfp->ob_eul[1]), -lim, lim, 1000, 3, "");
 | 
								uiDefButF(block, NUM, B_OBJECTPANELROT, "Y:",	180, 130, 120, 19, &(tfp->ob_eul[1]), -lim, lim, 1000, 3, "");
 | 
				
			||||||
			uiDefIconButBitS(block, ICONTOG, OB_LOCK_ROTZ, B_REDR, ICON_UNLOCKED,	160,110,20,19, &(ob->protectflag), 0, 0, 0, 0, "Protects this value from being Transformed");
 | 
								uiDefIconButBitS(block, ICONTOG, OB_LOCK_ROTZ, B_REDR, ICON_UNLOCKED,	160,110,20,19, &(ob->protectflag), 0, 0, 0, 0, "Protects this value from being Transformed");
 | 
				
			||||||
			uiDefButF(block, NUM, B_OBJECTPANELROT, "RotZ:",	180, 110, 120, 19, &(tfp->ob_eul[2]), -lim, lim, 1000, 3, "");
 | 
								uiDefButF(block, NUM, B_OBJECTPANELROT, "Z:",	180, 110, 120, 19, &(tfp->ob_eul[2]), -lim, lim, 1000, 3, "");
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		tfp->ob_scale[0]= ob->size[0];
 | 
							tfp->ob_scale[0]= ob->size[0];
 | 
				
			||||||
		tfp->ob_scale[1]= ob->size[1];
 | 
							tfp->ob_scale[1]= ob->size[1];
 | 
				
			||||||
		tfp->ob_scale[2]= ob->size[2];
 | 
							tfp->ob_scale[2]= ob->size[2];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							uiDefBut(block, LABEL, 0, "Scale:",					10, 90, 100, 20, 0, 0, 0, 0, 0, "");
 | 
				
			||||||
		uiBlockBeginAlign(block);
 | 
							uiBlockBeginAlign(block);
 | 
				
			||||||
		uiDefIconButBitS(block, ICONTOG, OB_LOCK_SCALEX, B_REDR, ICON_UNLOCKED,	10,80,20,19, &(ob->protectflag), 0, 0, 0, 0, "Protects this value from being Transformed");
 | 
							uiDefIconButBitS(block, ICONTOG, OB_LOCK_SCALEX, B_REDR, ICON_UNLOCKED,	10, 70, 20, 19, &(ob->protectflag), 0, 0, 0, 0, "Protects this value from being Transformed");
 | 
				
			||||||
		uiDefButF(block, NUM, B_OBJECTPANELSCALE, "ScaleX:",		30, 80, 120, 19, &(tfp->ob_scale[0]), -lim, lim, 10, 3, "");
 | 
							uiDefButF(block, NUM, B_OBJECTPANELSCALE, "X:",							30, 70, 120, 19, &(tfp->ob_scale[0]), -lim, lim, 10, 3, "");
 | 
				
			||||||
		uiDefIconButBitS(block, ICONTOG, OB_LOCK_SCALEY, B_REDR, ICON_UNLOCKED,	10,60,20,19, &(ob->protectflag), 0, 0, 0, 0, "Protects this value from being Transformed");
 | 
							uiDefIconButBitS(block, ICONTOG, OB_LOCK_SCALEY, B_REDR, ICON_UNLOCKED,	10, 50, 20, 19, &(ob->protectflag), 0, 0, 0, 0, "Protects this value from being Transformed");
 | 
				
			||||||
		uiDefButF(block, NUM, B_OBJECTPANELSCALE, "ScaleY:",		30, 60, 120, 19, &(tfp->ob_scale[1]), -lim, lim, 10, 3, "");
 | 
							uiDefButF(block, NUM, B_OBJECTPANELSCALE, "Y:",							30, 50, 120, 19, &(tfp->ob_scale[1]), -lim, lim, 10, 3, "");
 | 
				
			||||||
		uiDefIconButBitS(block, ICONTOG, OB_LOCK_SCALEZ, B_REDR, ICON_UNLOCKED,	10,40,20,19, &(ob->protectflag), 0, 0, 0, 0, "Protects this value from being Transformed");
 | 
							uiDefIconButBitS(block, ICONTOG, OB_LOCK_SCALEZ, B_REDR, ICON_UNLOCKED,	10, 30, 20, 19, &(ob->protectflag), 0, 0, 0, 0, "Protects this value from being Transformed");
 | 
				
			||||||
		uiDefButF(block, NUM, B_OBJECTPANELSCALE, "ScaleZ:",		30, 40, 120, 19, &(tfp->ob_scale[2]), -lim, lim, 10, 3, "");
 | 
							uiDefButF(block, NUM, B_OBJECTPANELSCALE, "Z:",							30, 30, 120, 19, &(tfp->ob_scale[2]), -lim, lim, 10, 3, "");
 | 
				
			||||||
		uiBlockEndAlign(block);
 | 
							uiBlockEndAlign(block);
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		uiDefButS(block, TOG, B_REDR, "Link Scale",		10, 10, 140, 19, &(tfp->link_scale), 0, 1, 0, 0, "Scale values vary proportionally in all directions");
 | 
							uiDefButS(block, TOG, B_REDR, "Link Scale",		10, 0, 140, 19, &(tfp->link_scale), 0, 1, 0, 0, "Scale values vary proportionally in all directions");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		bb= object_get_boundbox(ob);
 | 
							bb= object_get_boundbox(ob);
 | 
				
			||||||
		if (bb) {
 | 
							if (bb) {
 | 
				
			||||||
@@ -1341,17 +1347,21 @@ static void view3d_panel_object(const bContext *C, Panel *pa)
 | 
				
			|||||||
			tfp->ob_dims[1] = fabs(scale[1]) * (bb->vec[2][1] - bb->vec[0][1]);
 | 
								tfp->ob_dims[1] = fabs(scale[1]) * (bb->vec[2][1] - bb->vec[0][1]);
 | 
				
			||||||
			tfp->ob_dims[2] = fabs(scale[2]) * (bb->vec[1][2] - bb->vec[0][2]);
 | 
								tfp->ob_dims[2] = fabs(scale[2]) * (bb->vec[1][2] - bb->vec[0][2]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			uiBlockBeginAlign(block);
 | 
								
 | 
				
			||||||
			if ((ob->parent) && (ob->partype == PARBONE)) {
 | 
								if ((ob->parent) && (ob->partype == PARBONE)) {
 | 
				
			||||||
				uiDefButF(block, NUM, B_OBJECTPANELDIMS, "DimX:",		160, 60, 140, 19, &(tfp->ob_dims[0]), 0.0, lim, 10, 3, "Manipulate bounding box size");
 | 
									uiDefBut(block, LABEL, 0, "Dimensions:",			160, 90, 100, 20, 0, 0, 0, 0, 0, "");
 | 
				
			||||||
				uiDefButF(block, NUM, B_OBJECTPANELDIMS, "DimY:",		160, 40, 140, 19, &(tfp->ob_dims[1]), 0.0, lim, 10, 3, "Manipulate bounding box size");
 | 
									uiBlockBeginAlign(block);
 | 
				
			||||||
				uiDefButF(block, NUM, B_OBJECTPANELDIMS, "DimZ:",		160, 20, 140, 19, &(tfp->ob_dims[2]), 0.0, lim, 10, 3, "Manipulate bounding box size");
 | 
									uiDefButF(block, NUM, B_OBJECTPANELDIMS, "X:",		160, 70, 140, 19, &(tfp->ob_dims[0]), 0.0, lim, 10, 3, "Manipulate bounding box size");
 | 
				
			||||||
 | 
									uiDefButF(block, NUM, B_OBJECTPANELDIMS, "Y:",		160, 50, 140, 19, &(tfp->ob_dims[1]), 0.0, lim, 10, 3, "Manipulate bounding box size");
 | 
				
			||||||
 | 
									uiDefButF(block, NUM, B_OBJECTPANELDIMS, "Z:",		160, 30, 140, 19, &(tfp->ob_dims[2]), 0.0, lim, 10, 3, "Manipulate bounding box size");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			else {
 | 
								else {
 | 
				
			||||||
				uiDefButF(block, NUM, B_OBJECTPANELDIMS, "DimX:",		160, 80, 140, 19, &(tfp->ob_dims[0]), 0.0, lim, 10, 3, "Manipulate bounding box size");
 | 
									uiDefBut(block, LABEL, 0, "Dimensions:",			160, 90, 100, 20, 0, 0, 0, 0, 0, "");
 | 
				
			||||||
				uiDefButF(block, NUM, B_OBJECTPANELDIMS, "DimY:",		160, 60, 140, 19, &(tfp->ob_dims[1]), 0.0, lim, 10, 3, "Manipulate bounding box size");
 | 
									uiBlockBeginAlign(block);
 | 
				
			||||||
				uiDefButF(block, NUM, B_OBJECTPANELDIMS, "DimZ:",		160, 40, 140, 19, &(tfp->ob_dims[2]), 0.0, lim, 10, 3, "Manipulate bounding box size");
 | 
									uiDefButF(block, NUM, B_OBJECTPANELDIMS, "X:",		160, 70, 140, 19, &(tfp->ob_dims[0]), 0.0, lim, 10, 3, "Manipulate bounding box size");
 | 
				
			||||||
 | 
									uiDefButF(block, NUM, B_OBJECTPANELDIMS, "Y:",		160, 50, 140, 19, &(tfp->ob_dims[1]), 0.0, lim, 10, 3, "Manipulate bounding box size");
 | 
				
			||||||
 | 
									uiDefButF(block, NUM, B_OBJECTPANELDIMS, "Z:",		160, 30, 140, 19, &(tfp->ob_dims[2]), 0.0, lim, 10, 3, "Manipulate bounding box size");
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			uiBlockEndAlign(block);
 | 
								uiBlockEndAlign(block);
 | 
				
			||||||
@@ -1724,29 +1734,30 @@ void view3d_buttons_register(ARegionType *art)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	pt= MEM_callocN(sizeof(PanelType), "spacetype view3d panel object");
 | 
						pt= MEM_callocN(sizeof(PanelType), "spacetype view3d panel object");
 | 
				
			||||||
	strcpy(pt->idname, "VIEW3D_PT_object");
 | 
						strcpy(pt->idname, "VIEW3D_PT_object");
 | 
				
			||||||
	strcpy(pt->label, "Transform Properties");
 | 
						strcpy(pt->label, "Transform");
 | 
				
			||||||
	pt->draw= view3d_panel_object;
 | 
						pt->draw= view3d_panel_object;
 | 
				
			||||||
	BLI_addtail(&art->paneltypes, pt);
 | 
						BLI_addtail(&art->paneltypes, pt);
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
	pt= MEM_callocN(sizeof(PanelType), "spacetype view3d panel properties");
 | 
						pt= MEM_callocN(sizeof(PanelType), "spacetype view3d panel properties");
 | 
				
			||||||
	strcpy(pt->idname, "VIEW3D_PT_properties");
 | 
						strcpy(pt->idname, "VIEW3D_PT_properties");
 | 
				
			||||||
	strcpy(pt->label, "View Properties");
 | 
						strcpy(pt->label, "View Properties");
 | 
				
			||||||
	pt->draw= view3d_panel_properties;
 | 
						pt->draw= view3d_panel_properties;
 | 
				
			||||||
	BLI_addtail(&art->paneltypes, pt);
 | 
						BLI_addtail(&art->paneltypes, pt);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	pt= MEM_callocN(sizeof(PanelType), "spacetype view3d panel background");
 | 
						pt= MEM_callocN(sizeof(PanelType), "spacetype view3d panel background");
 | 
				
			||||||
	strcpy(pt->idname, "VIEW3D_PT_background");
 | 
						strcpy(pt->idname, "VIEW3D_PT_background");
 | 
				
			||||||
	strcpy(pt->label, "Background Image");
 | 
						strcpy(pt->label, "Background Image");
 | 
				
			||||||
	pt->draw= view3d_panel_background;
 | 
						pt->draw= view3d_panel_background;
 | 
				
			||||||
	BLI_addtail(&art->paneltypes, pt);
 | 
						BLI_addtail(&art->paneltypes, pt);
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
	pt= MEM_callocN(sizeof(PanelType), "spacetype view3d panel brush");
 | 
						pt= MEM_callocN(sizeof(PanelType), "spacetype view3d panel brush");
 | 
				
			||||||
	strcpy(pt->idname, "VIEW3D_PT_brush");
 | 
						strcpy(pt->idname, "VIEW3D_PT_brush");
 | 
				
			||||||
	strcpy(pt->label, "Brush");
 | 
						strcpy(pt->label, "Brush");
 | 
				
			||||||
	pt->draw= view3d_panel_brush;
 | 
						pt->draw= view3d_panel_brush;
 | 
				
			||||||
	pt->poll= view3d_panel_brush_poll;
 | 
						pt->poll= view3d_panel_brush_poll;
 | 
				
			||||||
	BLI_addtail(&art->paneltypes, pt);
 | 
						BLI_addtail(&art->paneltypes, pt);
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
	pt= MEM_callocN(sizeof(PanelType), "spacetype view3d panel transform spaces");
 | 
						pt= MEM_callocN(sizeof(PanelType), "spacetype view3d panel transform spaces");
 | 
				
			||||||
	strcpy(pt->idname, "VIEW3D_PT_transform spaces");
 | 
						strcpy(pt->idname, "VIEW3D_PT_transform spaces");
 | 
				
			||||||
	strcpy(pt->label, "Transform Orientations");
 | 
						strcpy(pt->label, "Transform Orientations");
 | 
				
			||||||
@@ -1758,7 +1769,7 @@ void view3d_buttons_register(ARegionType *art)
 | 
				
			|||||||
	strcpy(pt->label, "Greas Pencil");
 | 
						strcpy(pt->label, "Greas Pencil");
 | 
				
			||||||
	pt->draw= view3d_panel_gpencil;
 | 
						pt->draw= view3d_panel_gpencil;
 | 
				
			||||||
	BLI_addtail(&art->paneltypes, pt);*/
 | 
						BLI_addtail(&art->paneltypes, pt);*/
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
	pt= MEM_callocN(sizeof(PanelType), "spacetype view3d panel bonesketch spaces");
 | 
						pt= MEM_callocN(sizeof(PanelType), "spacetype view3d panel bonesketch spaces");
 | 
				
			||||||
	strcpy(pt->idname, "VIEW3D_PT_bonesketch_spaces");
 | 
						strcpy(pt->idname, "VIEW3D_PT_bonesketch_spaces");
 | 
				
			||||||
	strcpy(pt->label, "Bone Sketching");
 | 
						strcpy(pt->label, "Bone Sketching");
 | 
				
			||||||
@@ -1771,7 +1782,7 @@ void view3d_buttons_register(ARegionType *art)
 | 
				
			|||||||
	strcpy(pt->label, "Last Operator");
 | 
						strcpy(pt->label, "Last Operator");
 | 
				
			||||||
	pt->draw= view3d_panel_operator_redo;
 | 
						pt->draw= view3d_panel_operator_redo;
 | 
				
			||||||
	BLI_addtail(&art->paneltypes, pt);
 | 
						BLI_addtail(&art->paneltypes, pt);
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
	// XXX view3d_panel_preview(C, ar, 0);
 | 
						// XXX view3d_panel_preview(C, ar, 0);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user