mask UI for space image

This commit is contained in:
Campbell Barton
2012-07-25 12:15:22 +00:00
parent 7eaef1068d
commit 62187c386e
4 changed files with 51 additions and 21 deletions

View File

@@ -349,6 +349,7 @@ class IMAGE_HT_header(Header):
ima = sima.image
iuser = sima.image_user
toolsettings = context.tool_settings
mode = sima.mode
show_render = sima.show_render
# show_paint = sima.show_paint
@@ -402,13 +403,16 @@ class IMAGE_HT_header(Header):
mesh = context.edit_object.data
layout.prop_search(mesh.uv_textures, "active", mesh, "uv_textures", text="")
layout.prop(sima, "mode", text="")
if mode == 'MASK':
row = layout.row()
row.template_ID(sima, "mask", new="mask.new")
if ima:
# layers
layout.template_image_layers(ima, iuser)
# painting
layout.prop(sima, "mode", text="")
# draw options
row = layout.row(align=True)
row.prop(sima, "draw_channels", text="", expand=True)
@@ -419,7 +423,7 @@ class IMAGE_HT_header(Header):
if ima.type == 'COMPOSITE' and ima.source in {'MOVIE', 'SEQUENCE'}:
row.operator("image.play_composite", icon='PLAY')
if show_uvedit or sima.mode == 'PAINT':
if show_uvedit or mode == 'PAINT':
layout.prop(sima, "use_realtime_update", text="", icon_only=True, icon='LOCKED')

View File

@@ -65,15 +65,16 @@
#include "WM_api.h"
#include "WM_types.h"
#include "ED_util.h"
#include "ED_image.h"
#include "ED_screen.h"
#include "ED_object.h"
#include "ED_armature.h"
#include "ED_screen_types.h"
#include "ED_keyframes_draw.h"
#include "ED_view3d.h"
#include "ED_clip.h"
#include "ED_image.h"
#include "ED_keyframes_draw.h"
#include "ED_object.h"
#include "ED_screen.h"
#include "ED_screen_types.h"
#include "ED_sequencer.h"
#include "ED_util.h"
#include "ED_view3d.h"
#include "RNA_access.h"
#include "RNA_define.h"
@@ -458,9 +459,29 @@ int ED_operator_editmball(bContext *C)
int ED_operator_mask(bContext *C)
{
SpaceClip *sc = CTX_wm_space_clip(C);
ScrArea *sa = CTX_wm_area(C);
if (sa && sa->spacedata.first) {
switch (sa->spacetype) {
case SPACE_CLIP:
{
SpaceClip *sc = sa->spacedata.first;
return ED_space_clip_check_show_maskedit(sc);
}
case SPACE_SEQ:
{
SpaceSeq *sseq = sa->spacedata.first;
Scene *scene = CTX_data_scene(C);
return ED_space_sequencer_check_show_maskedit(sseq, scene);
}
case SPACE_IMAGE:
{
SpaceImage *sima = sa->spacedata.first;
return ED_space_image_check_show_maskedit(sima);
}
}
}
return ED_space_clip_check_show_maskedit(sc);
return FALSE;
}
/* *************************** action zone operator ************************** */

View File

@@ -301,9 +301,7 @@ int ED_space_image_show_uvshadow(SpaceImage *sima, Object *obedit)
/* matches clip function */
int ED_space_image_check_show_maskedit(SpaceImage *sima)
{
/* MASKTODO - whem we have a mask edit option */
(void)sima;
return TRUE;
return (sima->mode == SI_MODE_MASK);
}
int ED_space_image_maskedit_poll(bContext *C)

View File

@@ -563,6 +563,13 @@ static void rna_SpaceImageEditor_image_set(PointerRNA *ptr, PointerRNA value)
ED_space_image_set(sima, sc->scene, sc->scene->obedit, (Image *)value.data);
}
static void rna_SpaceImageEditor_mask_set(PointerRNA *ptr, PointerRNA value)
{
SpaceImage *sima = (SpaceImage *)(ptr->data);
ED_space_image_set_mask(NULL, sima, (Mask *)value.data);
}
static EnumPropertyItem *rna_SpaceImageEditor_draw_channels_itemf(bContext *UNUSED(C), PointerRNA *ptr,
PropertyRNA *UNUSED(prop), int *free)
{
@@ -1104,7 +1111,7 @@ static void rna_def_space(BlenderRNA *brna)
}
/* for all spaces that use a mask */
void mask_space_info(StructRNA *srna, int noteflag, const char *mask_set_func)
void rna_def_space_mask_info(StructRNA *srna, int noteflag, const char *mask_set_func)
{
PropertyRNA *prop;
@@ -1245,9 +1252,6 @@ static void rna_def_space_image_uv(BlenderRNA *brna)
RNA_def_property_enum_items(prop, pivot_items);
RNA_def_property_ui_text(prop, "Pivot", "Rotation/Scaling Pivot");
RNA_def_property_update(prop, NC_SPACE | ND_SPACE_IMAGE, NULL);
/* mask */
mask_space_info(srna, NC_SPACE | ND_SPACE_IMAGE, NULL);
}
static void rna_def_space_outliner(BlenderRNA *brna)
@@ -2071,6 +2075,9 @@ static void rna_def_space_image(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "Show UV Editor", "Show UV editing related properties");
rna_def_space_image_uv(brna);
/* mask */
rna_def_space_mask_info(srna, NC_SPACE | ND_SPACE_IMAGE, "rna_SpaceImageEditor_mask_set");
}
static void rna_def_space_sequencer(BlenderRNA *brna)
@@ -3099,7 +3106,7 @@ static void rna_def_space_clip(BlenderRNA *brna)
RNA_def_property_update(prop, NC_SPACE | ND_SPACE_CLIP, NULL);
/* mask */
mask_space_info(srna, NC_SPACE | ND_SPACE_CLIP, "rna_SpaceClipEditor_mask_set");
rna_def_space_mask_info(srna, NC_SPACE | ND_SPACE_CLIP, "rna_SpaceClipEditor_mask_set");
/* mode */
prop = RNA_def_property(srna, "mode", PROP_ENUM, PROP_NONE);