Revision: 23287
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=23287
Author:   blendix
Date:     2009-09-16 21:27:08 +0200 (Wed, 16 Sep 2009)

Log Message:
-----------
Image Panels

* The image panels in the image editor and texture buttons
  should be more complete now, with working new/open,
  refreshes, and using the layout engine.
* Paint panels in image editor are now consistent with the
  ones in the 3d view toolbar.
* Curves panel also uses layout engine, and doesn't look
  squashed anymore.

Modified Paths:
--------------
    trunk/blender/release/ui/space_image.py
    trunk/blender/source/blender/blenkernel/intern/image.c
    trunk/blender/source/blender/blenkernel/intern/paint.c
    trunk/blender/source/blender/editors/include/ED_image.h
    trunk/blender/source/blender/editors/interface/interface_templates.c
    trunk/blender/source/blender/editors/space_image/image_buttons.c
    trunk/blender/source/blender/editors/space_image/image_ops.c
    trunk/blender/source/blender/editors/uvedit/uvedit_ops.c
    trunk/blender/source/blender/makesrna/intern/rna_color.c
    trunk/blender/source/blender/makesrna/intern/rna_image.c
    trunk/blender/source/blender/makesrna/intern/rna_space.c
    trunk/blender/source/blender/makesrna/intern/rna_texture.c
    trunk/blender/source/blender/makesrna/intern/rna_ui_api.c

Modified: trunk/blender/release/ui/space_image.py
===================================================================
--- trunk/blender/release/ui/space_image.py     2009-09-16 18:59:13 UTC (rev 
23286)
+++ trunk/blender/release/ui/space_image.py     2009-09-16 19:27:08 UTC (rev 
23287)
@@ -277,6 +277,24 @@
                if show_uvedit or sima.image_painting:
                        layout.itemR(sima, "update_automatically", text="")
 
+class IMAGE_PT_image_properties(bpy.types.Panel):
+       __space_type__ = 'IMAGE_EDITOR'
+       __region_type__ = 'UI'
+       __label__ = "Image"
+
+       def poll(self, context):
+               sima = context.space_data
+               return (sima.image)
+
+       def draw(self, context):
+               layout = self.layout
+
+               sima = context.space_data
+               ima = sima.image
+               iuser = sima.image_user
+
+               layout.template_image(sima, "image", iuser, compact=True)
+
 class IMAGE_PT_game_properties(bpy.types.Panel):
        __space_type__ = 'IMAGE_EDITOR'
        __region_type__ = 'UI'
@@ -368,6 +386,92 @@
                        #col.itemR(uvedit, "draw_edges")
                        #col.itemR(uvedit, "draw_faces")
 
+class IMAGE_PT_paint(bpy.types.Panel):
+       __space_type__ = 'IMAGE_EDITOR'
+       __region_type__ = 'UI'
+       __label__ = "Paint"
+
+       def poll(self, context):
+               sima = context.space_data
+               return sima.show_paint
+
+       def draw(self, context):
+               layout = self.layout
+               
+               settings = context.tool_settings.image_paint
+               brush = settings.brush
+
+               col = layout.split().column()
+               row = col.row()
+               row.template_list(settings, "brushes", settings, 
"active_brush_index", rows=2)
+                       
+               col.template_ID(settings, "brush", new="brush.add")
+                
+               row = layout.row(align=True)
+               row.item_enumR(settings, "tool", 'DRAW')
+               row.item_enumR(settings, "tool", 'SOFTEN')
+               row.item_enumR(settings, "tool", 'CLONE')
+               row.item_enumR(settings, "tool", 'SMEAR')
+                       
+               col = layout.column()
+               col.itemR(brush, "color", text="")
+
+               row = col.row(align=True)
+               row.itemR(brush, "size", slider=True)
+               row.itemR(brush, "size_pressure", toggle=True, text="")
+               
+               row = col.row(align=True)
+               row.itemR(brush, "strength", slider=True)
+               row.itemR(brush, "strength_pressure", toggle=True, text="")
+               
+               col.itemR(brush, "blend", text="Blend")
+
+class IMAGE_PT_paint_stroke(bpy.types.Panel):
+       __space_type__ = 'IMAGE_EDITOR'
+       __region_type__ = 'UI'
+       __label__ = "Paint Stroke"
+       __default_closed__ = True
+
+       def poll(self, context):
+               sima = context.space_data
+               return sima.show_paint
+
+       def draw(self, context):
+               layout = self.layout
+               
+               settings = context.tool_settings.image_paint
+               brush = settings.brush
+
+               layout.itemR(brush, "airbrush")
+               col = layout.column()
+               col.active = brush.airbrush
+               col.itemR(brush, "rate", slider=True)
+
+               layout.itemR(brush, "space")
+               row = layout.row(align=True)
+               row.active = brush.space
+               row.itemR(brush, "spacing", text="Distance", slider=True)
+               row.itemR(brush, "spacing_pressure", toggle=True, text="")      
+
+class IMAGE_PT_paint_curve(bpy.types.Panel):
+       __space_type__ = 'IMAGE_EDITOR'
+       __region_type__ = 'UI'
+       __label__ = "Paint Curve"
+       __default_closed__ = True
+
+       def poll(self, context):
+               sima = context.space_data
+               return sima.show_paint
+
+       def draw(self, context):
+               layout = self.layout
+               
+               settings = context.tool_settings.image_paint
+               brush = settings.brush
+
+               layout.template_curve_mapping(brush, "curve")
+               layout.item_menu_enumO("brush.curve_preset", property="shape")
+
 bpy.types.register(IMAGE_MT_view)
 bpy.types.register(IMAGE_MT_select)
 bpy.types.register(IMAGE_MT_image)
@@ -377,5 +481,10 @@
 bpy.types.register(IMAGE_MT_uvs_weldalign)
 bpy.types.register(IMAGE_MT_uvs)
 bpy.types.register(IMAGE_HT_header)
+bpy.types.register(IMAGE_PT_image_properties)
+bpy.types.register(IMAGE_PT_paint)
+bpy.types.register(IMAGE_PT_paint_stroke)
+bpy.types.register(IMAGE_PT_paint_curve)
 bpy.types.register(IMAGE_PT_game_properties)
 bpy.types.register(IMAGE_PT_view_properties)
+

Modified: trunk/blender/source/blender/blenkernel/intern/image.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/image.c      2009-09-16 
18:59:13 UTC (rev 23286)
+++ trunk/blender/source/blender/blenkernel/intern/image.c      2009-09-16 
19:27:08 UTC (rev 23287)
@@ -277,7 +277,7 @@
                
                ima->xrep= ima->yrep= 1;
                ima->aspx= ima->aspy= 1.0;
-               ima->gen_x= 256; ima->gen_y= 256;
+               ima->gen_x= 1024; ima->gen_y= 1024;
                ima->gen_type= 1;       /* no defines yet? */
                
                ima->source= source;
@@ -1472,9 +1472,11 @@
                        iuser->ok= 1;
                break;
        case IMA_SIGNAL_SRC_CHANGE:
-               if(ima->type==IMA_TYPE_MULTILAYER)
-                       image_free_buffers(ima);
-               else if(ima->source==IMA_SRC_GENERATED) {
+               if(ima->type == IMA_TYPE_UV_TEST)
+                       if(ima->source != IMA_SRC_GENERATED)
+                               ima->type= IMA_TYPE_IMAGE;
+
+               if(ima->source==IMA_SRC_GENERATED) {
                        if(ima->gen_x==0 || ima->gen_y==0) {
                                ImBuf *ibuf= image_get_ibuf(ima, IMA_NO_INDEX, 
0);
                                if(ibuf) {
@@ -1483,6 +1485,9 @@
                                }
                        }
                }
+
+               image_free_buffers(ima);
+
                ima->ok= 1;
                if(iuser)
                        iuser->ok= 1;
@@ -2090,8 +2095,8 @@
                        else if(ima->source == IMA_SRC_GENERATED) {
                                /* generated is: ibuf is allocated dynamically 
*/
                                /* UV testgrid or black or solid etc */
-                               if(ima->gen_x==0) ima->gen_x= 256;
-                               if(ima->gen_y==0) ima->gen_y= 256;
+                               if(ima->gen_x==0) ima->gen_x= 1024;
+                               if(ima->gen_y==0) ima->gen_y= 1024;
                                ibuf= add_ibuf_size(ima->gen_x, ima->gen_y, 
ima->name, 0, ima->gen_type, color);
                                image_assign_ibuf(ima, ibuf, IMA_NO_INDEX, 0);
                                ima->ok= IMA_OK_LOADED;

Modified: trunk/blender/source/blender/blenkernel/intern/paint.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/paint.c      2009-09-16 
18:59:13 UTC (rev 23286)
+++ trunk/blender/source/blender/blenkernel/intern/paint.c      2009-09-16 
19:27:08 UTC (rev 23287)
@@ -46,19 +46,24 @@
 
 Paint *paint_get_active(Scene *sce)
 {
-       if(sce && sce->basact && sce->basact->object) {
+       if(sce) {
                ToolSettings *ts = sce->toolsettings;
+               
+               if(sce->basact && sce->basact->object) {
+                       switch(sce->basact->object->mode) {
+                       case OB_MODE_SCULPT:
+                               return &ts->sculpt->paint;
+                       case OB_MODE_VERTEX_PAINT:
+                               return &ts->vpaint->paint;
+                       case OB_MODE_WEIGHT_PAINT:
+                               return &ts->wpaint->paint;
+                       case OB_MODE_TEXTURE_PAINT:
+                               return &ts->imapaint.paint;
+                       }
+               }
 
-               switch(sce->basact->object->mode) {
-               case OB_MODE_SCULPT:
-                       return &ts->sculpt->paint;
-               case OB_MODE_VERTEX_PAINT:
-                       return &ts->vpaint->paint;
-               case OB_MODE_WEIGHT_PAINT:
-                       return &ts->wpaint->paint;
-               case OB_MODE_TEXTURE_PAINT:
-                       return &ts->imapaint.paint;
-               }
+               /* default to image paint */
+               return &ts->imapaint.paint;
        }
 
        return NULL;

Modified: trunk/blender/source/blender/editors/include/ED_image.h
===================================================================
--- trunk/blender/source/blender/editors/include/ED_image.h     2009-09-16 
18:59:13 UTC (rev 23286)
+++ trunk/blender/source/blender/editors/include/ED_image.h     2009-09-16 
19:27:08 UTC (rev 23287)
@@ -53,9 +53,6 @@
 int ED_space_image_show_uvedit(struct SpaceImage *sima, struct Object *obedit);
 int ED_space_image_show_uvshadow(struct SpaceImage *sima, struct Object 
*obedit);
 
-void ED_image_uiblock_panel(const struct bContext *C, struct uiBlock *block, 
struct Image **ima_pp, 
-                                                       struct ImageUser 
*iuser, short redraw, short imagechanged);
-
 /* image_render.c, export for screen_ops.c, render operator */
 void ED_space_image_output(struct bContext *C);
 

Modified: trunk/blender/source/blender/editors/interface/interface_templates.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_templates.c        
2009-09-16 18:59:13 UTC (rev 23286)
+++ trunk/blender/source/blender/editors/interface/interface_templates.c        
2009-09-16 19:27:08 UTC (rev 23287)
@@ -2125,17 +2125,4 @@
                uiDefIconTextBut(block, BUT, B_STOPANIM, ICON_REC, "Anim 
Player", 0,0,85,UI_UNIT_Y, NULL, 0.0f, 0.0f, 0, 0, "Stop animation playback");
 }
 
-/************************* Image Template **************************/
 
-#include "ED_image.h"
-
-void uiTemplateTextureImage(uiLayout *layout, bContext *C, Tex *tex)
-{
-       uiBlock *block;
-
-       if(tex) {
-               block= uiLayoutFreeBlock(layout);
-               ED_image_uiblock_panel(C, block, &tex->ima, &tex->iuser, 0, 0);
-       }
-}
-

Modified: trunk/blender/source/blender/editors/space_image/image_buttons.c
===================================================================
--- trunk/blender/source/blender/editors/space_image/image_buttons.c    
2009-09-16 18:59:13 UTC (rev 23286)
+++ trunk/blender/source/blender/editors/space_image/image_buttons.c    
2009-09-16 19:27:08 UTC (rev 23287)
@@ -100,8 +100,6 @@
 #define B_FACESEL_PAINT_TEST   11
 #define B_SIMA_RECORD          12
 #define B_SIMA_PLAY                    13
-#define B_SIMARANGE                    14
-#define B_SIMACURVES           15
 
 #define B_SIMANOTHING          16
 #define B_SIMABRUSHCHANGE      17      
@@ -116,10 +114,8 @@
 #define B_SIMACLONEDELETE      26
 
 /* XXX */
-static int okee() {return 0;}
 static int simaFaceDraw_Check() {return 0;}
 static int simaUVSel_Check() {return 0;}
-static int is_uv_tface_editing_allowed_silent() {return 0;}
 /* XXX */
 
 /* proto */
@@ -135,13 +131,6 @@
        switch(event) {
                case B_REDR:
                        break;
-               case B_SIMACURVES:
-                       curvemapping_do_ibuf(sima->cumap, 
ED_space_image_buffer(sima));
-                       break;
-               case B_SIMARANGE:
-                       curvemapping_set_black_white(sima->cumap, NULL, NULL);
-                       curvemapping_do_ibuf(sima->cumap, 
ED_space_image_buffer(sima));
-                       break;
                case B_TRANS_IMAGE:
                        image_editvertex_buts(C, NULL);
                        break;
@@ -149,12 +138,11 @@
                        image_editcursor_buts(C, &ar->v2d, NULL);
                        break;
        }
+
        /* all events now */
        WM_event_add_notifier(C, NC_IMAGE, sima->image);
 }
 
-
-
 static void image_info(Image *ima, ImBuf *ibuf, char *str)
 {
        int ofs= 0;
@@ -168,12 +156,12 @@
        }
        
        if(ima->source==IMA_SRC_MOVIE) {
-               ofs= sprintf(str, "Movie ");
+               ofs= sprintf(str, "Movie");
                if(ima->anim) 
                        ofs+= sprintf(str+ofs, "%d frs", 
IMB_anim_get_duration(ima->anim));
        }
        else
-               ofs= sprintf(str, "Image ");
+               ofs= sprintf(str, "Image");
        
        ofs+= sprintf(str+ofs, ": size %d x %d,", ibuf->x, ibuf->y);
        
@@ -246,10 +234,6 @@
        EditFace *efa;
        MTFace *tf;
        
-       if(obedit==NULL || obedit->type!=OB_MESH) return;
-       
-       if( is_uv_tface_editing_allowed_silent()==0 ) return;
-       
        image_transform_but_attr(sima, &imx, &imy, &step, &digits);
        
        em= BKE_mesh_get_editmesh((Mesh *)obedit->data);
@@ -354,8 +338,6 @@
        int imx= 256, imy= 256;
        int step, digits;
        

@@ Diff output truncated at 10240 characters. @@

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to