2009-06-16 01:22:56 +00:00
import bpy
class IMAGE_MT_view ( bpy . types . Menu ) :
__space_type__ = " IMAGE_EDITOR "
__label__ = " View "
def draw ( self , context ) :
layout = self . layout
sima = context . space_data
uv = sima . uv_editor
show_uvedit = sima . show_uvedit
layout . itemO ( " IMAGE_OT_properties " ) # icon
layout . itemS ( )
layout . itemR ( sima , " update_automatically " )
# XXX if show_uvedit:
# XXX layout.itemR(uv, "local_view") # "UV Local View", Numpad /
layout . itemS ( )
layout . itemO ( " IMAGE_OT_view_zoom_in " )
layout . itemO ( " IMAGE_OT_view_zoom_out " )
layout . itemS ( )
ratios = [ [ 1 , 8 ] , [ 1 , 4 ] , [ 1 , 2 ] , [ 1 , 1 ] , [ 2 , 1 ] , [ 4 , 1 ] , [ 8 , 1 ] ] ;
for a , b in ratios :
text = " Zoom %d : %d " % ( a , b )
layout . item_floatO ( " IMAGE_OT_view_zoom_ratio " , " ratio " , a / b , text = text )
layout . itemS ( )
if show_uvedit :
layout . itemO ( " IMAGE_OT_view_selected " )
layout . itemO ( " IMAGE_OT_view_all " )
layout . itemO ( " SCREEN_OT_screen_full_area " )
class IMAGE_MT_select ( bpy . types . Menu ) :
__space_type__ = " IMAGE_EDITOR "
__label__ = " Select "
def draw ( self , context ) :
layout = self . layout
layout . itemO ( " UV_OT_select_border " )
layout . item_booleanO ( " UV_OT_select_border " , " pinned " , True )
layout . itemS ( )
layout . itemO ( " UV_OT_select_all_toggle " )
layout . itemO ( " UV_OT_select_invert " )
layout . itemO ( " UV_OT_unlink_selection " )
layout . itemS ( )
layout . itemO ( " UV_OT_select_pinned " )
layout . itemO ( " UV_OT_select_linked " )
class IMAGE_MT_image ( bpy . types . Menu ) :
__space_type__ = " IMAGE_EDITOR "
__label__ = " Image "
def draw ( self , context ) :
layout = self . layout
sima = context . space_data
ima = sima . image
layout . itemO ( " IMAGE_OT_new " )
layout . itemO ( " IMAGE_OT_open " )
show_render = sima . show_render
if ima :
if show_render :
layout . itemO ( " IMAGE_OT_replace " )
layout . itemO ( " IMAGE_OT_reload " )
layout . itemO ( " IMAGE_OT_save " )
layout . itemO ( " IMAGE_OT_save_as " )
if ima . source == " SEQUENCE " :
layout . itemO ( " IMAGE_OT_save_sequence " )
if not show_render :
layout . itemS ( )
if ima . packed_file :
layout . itemO ( " IMAGE_OT_unpack " )
else :
layout . itemO ( " IMAGE_OT_pack " )
# only for dirty && specific image types : XXX poll?
#if(ibuf && (ibuf->userflags & IB_BITMAPDIRTY))
if False :
if ima . source in ( " FILE " , " GENERATED " ) and ima . type != " MULTILAYER " :
layout . item_booleanO ( " IMAGE_OT_pack " , " as_png " , True , text = " Pack As PNG " )
layout . itemS ( )
layout . itemR ( sima , " image_painting " )
class IMAGE_MT_uvs_showhide ( bpy . types . Menu ) :
__space_type__ = " IMAGE_EDITOR "
__label__ = " Show/Hide Faces "
def draw ( self , context ) :
layout = self . layout
layout . itemO ( " UV_OT_reveal " )
layout . itemO ( " UV_OT_hide " )
layout . item_booleanO ( " UV_OT_hide " , " unselected " , True )
class IMAGE_MT_uvs_transform ( bpy . types . Menu ) :
__space_type__ = " IMAGE_EDITOR "
__label__ = " Transform "
def draw ( self , context ) :
layout = self . layout
layout . item_enumO ( " TFM_OT_transform " , " mode " , " TRANSLATION " )
layout . item_enumO ( " TFM_OT_transform " , " mode " , " ROTATION " )
layout . item_enumO ( " TFM_OT_transform " , " mode " , " RESIZE " )
class IMAGE_MT_uvs_mirror ( bpy . types . Menu ) :
__space_type__ = " IMAGE_EDITOR "
__label__ = " Mirror "
def draw ( self , context ) :
layout = self . layout
layout . item_enumO ( " UV_OT_mirror " , " axis " , " MIRROR_X " ) # "X Axis", M,
layout . item_enumO ( " UV_OT_mirror " , " axis " , " MIRROR_Y " ) # "Y Axis", M,
class IMAGE_MT_uvs_weldalign ( bpy . types . Menu ) :
__space_type__ = " IMAGE_EDITOR "
__label__ = " Weld/Align "
def draw ( self , context ) :
layout = self . layout
layout . itemO ( " UV_OT_weld " ) # W, 1
layout . items_enumO ( " UV_OT_align " , " axis " ) # W, 2/3/4
class IMAGE_MT_uvs ( bpy . types . Menu ) :
__space_type__ = " IMAGE_EDITOR "
__label__ = " UVs "
def draw ( self , context ) :
layout = self . layout
sima = context . space_data
uv = sima . uv_editor
scene = context . scene
layout . itemR ( uv , " snap_to_pixels " )
layout . itemR ( uv , " constrain_to_image_bounds " )
layout . itemS ( )
layout . itemR ( uv , " live_unwrap " )
layout . itemO ( " UV_OT_unwrap " )
layout . item_booleanO ( " UV_OT_pin " , " clear " , True , text = " Unpin " )
layout . itemO ( " UV_OT_pin " )
layout . itemS ( )
layout . itemO ( " UV_OT_pack_islands " )
layout . itemO ( " UV_OT_average_islands_scale " )
layout . itemO ( " UV_OT_minimize_stretch " )
layout . itemO ( " UV_OT_stitch " )
layout . itemS ( )
2009-06-23 00:19:10 +00:00
layout . itemM ( " IMAGE_MT_uvs_transform " )
layout . itemM ( " IMAGE_MT_uvs_mirror " )
layout . itemM ( " IMAGE_MT_uvs_weldalign " )
2009-06-16 01:22:56 +00:00
layout . itemS ( )
# XXX layout.itemR(scene, "proportional_editing")
layout . item_menu_enumR ( scene , " proportional_editing_falloff " )
layout . itemS ( )
2009-06-23 00:19:10 +00:00
layout . itemM ( " IMAGE_MT_uvs_showhide " )
2009-06-16 01:22:56 +00:00
class IMAGE_HT_header ( bpy . types . Header ) :
__space_type__ = " IMAGE_EDITOR "
def draw ( self , context ) :
sima = context . space_data
ima = sima . image
layout = self . layout
show_render = sima . show_render
show_paint = sima . show_paint
show_uvedit = sima . show_uvedit
2009-06-23 00:19:10 +00:00
layout . template_header ( )
2009-06-16 01:22:56 +00:00
# menus
if context . area . show_menus :
row = layout . row ( )
2009-06-23 00:19:10 +00:00
row . itemM ( " IMAGE_MT_view " )
2009-06-16 01:22:56 +00:00
if show_uvedit :
2009-06-23 00:19:10 +00:00
row . itemM ( " IMAGE_MT_select " )
2009-06-16 01:22:56 +00:00
# XXX menuname= (ibuf && (ibuf->userflags & IB_BITMAPDIRTY))? "Image*": "Image";
2009-06-23 00:19:10 +00:00
row . itemM ( " IMAGE_MT_image " )
2009-06-16 01:22:56 +00:00
if show_uvedit :
2009-06-23 00:19:10 +00:00
row . itemM ( " IMAGE_MT_uvs " )
2009-06-16 01:22:56 +00:00
2009-06-23 00:19:10 +00:00
layout . template_ID ( sima , " image " , new = " IMAGE_OT_new " , open = " IMAGE_OT_open " )
2009-06-16 01:22:56 +00:00
"""
/ * image select * /
pinflag = ( show_render ) ? 0 : UI_ID_PIN ;
xco = uiDefIDPoinButs ( block , CTX_data_main ( C ) , NULL , ( ID * ) sima - > image , ID_IM , & sima - > pin , xco , yco ,
sima_idpoin_handle , UI_ID_BROWSE | UI_ID_BROWSE_RENDER | UI_ID_RENAME | UI_ID_ADD_NEW | UI_ID_OPEN | UI_ID_DELETE | pinflag ) ;
xco + = 8 ;
"""
"""
if ( ima & & ! ELEM3 ( ima - > source , IMA_SRC_SEQUENCE , IMA_SRC_MOVIE , IMA_SRC_VIEWER ) & & ima - > ok ) {
/ * XXX this should not be a static var * /
static int headerbuttons_packdummy ;
headerbuttons_packdummy = 0 ;
if ( ima - > packedfile ) {
headerbuttons_packdummy = 1 ;
}
if ( ima - > packedfile & & ibuf & & ( ibuf - > userflags & IB_BITMAPDIRTY ) )
uiDefIconButBitI ( block , TOG , 1 , 0 / * XXX B_SIMA_REPACK * / , ICON_UGLYPACKAGE , xco , yco , XIC , YIC , & headerbuttons_packdummy , 0 , 0 , 0 , 0 , " Re-Pack this image as PNG " ) ;
else
uiDefIconButBitI ( block , TOG , 1 , 0 / * XXX B_SIMAPACKIMA * / , ICON_PACKAGE , xco , yco , XIC , YIC , & headerbuttons_packdummy , 0 , 0 , 0 , 0 , " Pack/Unpack this image " ) ;
xco + = XIC + 8 ;
}
"""
# uv editing
if show_uvedit :
pass
"""
/ * uv editing * /
if ( show_uvedit ) {
/ * pivot * /
uiDefIconTextButS ( block , ICONTEXTROW , B_NOP , ICON_ROTATE ,
" Pivot: % t|Bounding Box Center %x 0|Median Point %x 3|2D Cursor %x 1 " ,
xco , yco , XIC + 10 , YIC , & ar - > v2d . around , 0 , 3.0 , 0 , 0 ,
" Rotation/Scaling Pivot (Hotkeys: Comma, Shift Comma, Period) " ) ;
xco + = XIC + 18 ;
/ * selection modes * /
uiDefIconButBitS ( block , TOG , UV_SYNC_SELECTION , B_REDR , ICON_EDIT , xco , yco , XIC , YIC , & scene - > toolsettings - > uv_flag , 0 , 0 , 0 , 0 , " Sync UV and Mesh Selection " ) ;
xco + = XIC + 8 ;
if ( scene - > toolsettings - > uv_flag & UV_SYNC_SELECTION ) {
uiBlockBeginAlign ( block ) ;
uiDefIconButBitS ( block , TOG , SCE_SELECT_VERTEX , B_REDR , ICON_VERTEXSEL ,
xco , yco , XIC , YIC , & scene - > selectmode , 1.0 , 0.0 , 0 , 0 , " Vertex select mode " ) ;
uiDefIconButBitS ( block , TOG , SCE_SELECT_EDGE , B_REDR , ICON_EDGESEL ,
xco + = XIC , yco , XIC , YIC , & scene - > selectmode , 1.0 , 0.0 , 0 , 0 , " Edge select mode " ) ;
uiDefIconButBitS ( block , TOG , SCE_SELECT_FACE , B_REDR , ICON_FACESEL ,
xco + = XIC , yco , XIC , YIC , & scene - > selectmode , 1.0 , 0.0 , 0 , 0 , " Face select mode " ) ;
uiBlockEndAlign ( block ) ;
}
else {
uiBlockBeginAlign ( block ) ;
uiDefIconButS ( block , ROW , B_REDR , ICON_VERTEXSEL ,
xco , yco , XIC , YIC , & scene - > toolsettings - > uv_selectmode , 1.0 , UV_SELECT_VERTEX , 0 , 0 , " Vertex select mode " ) ;
uiDefIconButS ( block , ROW , B_REDR , ICON_EDGESEL ,
xco + = XIC , yco , XIC , YIC , & scene - > toolsettings - > uv_selectmode , 1.0 , UV_SELECT_EDGE , 0 , 0 , " Edge select mode " ) ;
uiDefIconButS ( block , ROW , B_REDR , ICON_FACESEL ,
xco + = XIC , yco , XIC , YIC , & scene - > toolsettings - > uv_selectmode , 1.0 , UV_SELECT_FACE , 0 , 0 , " Face select mode " ) ;
uiDefIconButS ( block , ROW , B_REDR , ICON_LINKEDSEL ,
xco + = XIC , yco , XIC , YIC , & scene - > toolsettings - > uv_selectmode , 1.0 , UV_SELECT_ISLAND , 0 , 0 , " Island select mode " ) ;
uiBlockEndAlign ( block ) ;
/ * would use these if const ' s could go in strings
* SI_STICKY_LOC SI_STICKY_DISABLE SI_STICKY_VERTEX * /
but = uiDefIconTextButC ( block , ICONTEXTROW , B_REDR , ICON_STICKY_UVS_LOC ,
" Sticky UV Selection: % t|Disable %x 1|Shared Location %x 0|Shared Vertex %x 2 " ,
xco + = XIC + 10 , yco , XIC + 10 , YIC , & ( sima - > sticky ) , 0 , 3.0 , 0 , 0 ,
" Sticky UV Selection (Hotkeys: Shift C, Alt C, Ctrl C) " ) ;
}
xco + = XIC + 16 ;
/ * snap options , identical to options in 3 d view header * /
uiBlockBeginAlign ( block ) ;
if ( scene - > snap_flag & SCE_SNAP ) {
uiDefIconButBitS ( block , TOG , SCE_SNAP , B_REDR , ICON_SNAP_GEO , xco , yco , XIC , YIC , & scene - > snap_flag , 0 , 0 , 0 , 0 , " Use Snap or Grid (Shift Tab). " ) ;
xco + = XIC ;
uiDefButS ( block , MENU , B_NOP , " Mode % t|Closest %x 0|Center %x 1|Median %x 2 " , xco , yco , 70 , YIC , & scene - > snap_target , 0 , 0 , 0 , 0 , " Snap Target Mode. " ) ;
xco + = 70 ;
}
else {
uiDefIconButBitS ( block , TOG , SCE_SNAP , B_REDR , ICON_SNAP_GEAR , xco , yco , XIC , YIC , & scene - > snap_flag , 0 , 0 , 0 , 0 , " Snap while Ctrl is held during transform (Shift Tab). " ) ;
xco + = XIC ;
}
uiBlockEndAlign ( block ) ;
xco + = 8 ;
/ * uv layers * /
{
Object * obedit = CTX_data_edit_object ( C ) ;
char menustr [ 34 * MAX_MTFACE ] ;
static int act ;
image_menu_uvlayers ( obedit , menustr , & act ) ;
but = uiDefButI ( block , MENU , B_NOP , menustr , xco , yco , 85 , YIC , & act , 0 , 0 , 0 , 0 , " Active UV Layer for editing. " ) ;
/ / uiButSetFunc ( but , do_image_buttons_set_uvlayer_callback , & act , NULL ) ;
xco + = 85 ;
}
xco + = 8 ;
}
"""
if ima :
"""
RenderResult * rr ;
/ * render layers and passes * /
rr = BKE_image_get_renderresult ( scene , ima ) ;
if ( rr ) {
uiBlockBeginAlign ( block ) ;
#if 0
uiblock_layer_pass_buttons ( block , rr , & sima - > iuser , B_REDR , xco , 0 , 160 ) ;
#endif
uiBlockEndAlign ( block ) ;
xco + = 166 ;
}
"""
# painting
layout . itemR ( sima , " image_painting " , text = " " )
# draw options
row = layout . row ( align = True )
row . itemR ( sima , " draw_channels " , text = " " , expand = True )
row = layout . row ( align = True )
if ima . type == " COMPOSITE " :
row . itemO ( " IMAGE_OT_record_composite " , icon = " ICON_REC " )
if ima . type == " COMPOSITE " and ima . source in ( " MOVIE " , " SEQUENCE " ) :
row . itemO ( " IMAGE_OT_play_composite " , icon = " ICON_PLAY " )
layout . itemR ( sima , " update_automatically " , text = " " )
class IMAGE_PT_game_properties ( bpy . types . Panel ) :
__space_type__ = " IMAGE_EDITOR "
__region_type__ = " UI "
__label__ = " Game Properties "
def draw ( self , context ) :
sima = context . space_data
layout = self . layout
ima = sima . image
if ima :
split = layout . split ( )
col = split . column ( align = True )
col . itemR ( ima , " animated " )
subcol = col . column ( )
subcol . itemR ( ima , " animation_start " , text = " Start " )
subcol . itemR ( ima , " animation_end " , text = " End " )
subcol . itemR ( ima , " animation_speed " , text = " Speed " )
subcol . active = ima . animated
col = split . column ( )
col . itemR ( ima , " tiles " )
subrow = col . row ( align = True )
subrow . itemR ( ima , " tiles_x " , text = " X " )
subrow . itemR ( ima , " tiles_y " , text = " Y " )
subrow . active = ima . tiles
col . itemS ( )
col . itemR ( ima , " clamp_x " )
col . itemR ( ima , " clamp_y " )
col . itemR ( ima , " mapping " , expand = True )
bpy . types . register ( IMAGE_MT_view )
bpy . types . register ( IMAGE_MT_select )
bpy . types . register ( IMAGE_MT_image )
bpy . types . register ( IMAGE_MT_uvs_showhide )
bpy . types . register ( IMAGE_MT_uvs_transform )
bpy . types . register ( IMAGE_MT_uvs_mirror )
bpy . types . register ( IMAGE_MT_uvs_weldalign )
bpy . types . register ( IMAGE_MT_uvs )
bpy . types . register ( IMAGE_HT_header )
bpy . types . register ( IMAGE_PT_game_properties )
import bpy
class IMAGE_MT_view ( bpy . types . Menu ) :
__space_type__ = " IMAGE_EDITOR "
__label__ = " View "
def draw ( self , context ) :
layout = self . layout
sima = context . space_data
uv = sima . uv_editor
show_uvedit = sima . show_uvedit
layout . itemO ( " IMAGE_OT_properties " ) # icon
layout . itemS ( )
layout . itemR ( sima , " update_automatically " )
# XXX if show_uvedit:
# XXX layout.itemR(uv, "local_view") # "UV Local View", Numpad /
layout . itemS ( )
layout . itemO ( " IMAGE_OT_view_zoom_in " )
layout . itemO ( " IMAGE_OT_view_zoom_out " )
layout . itemS ( )
ratios = [ [ 1 , 8 ] , [ 1 , 4 ] , [ 1 , 2 ] , [ 1 , 1 ] , [ 2 , 1 ] , [ 4 , 1 ] , [ 8 , 1 ] ] ;
for a , b in ratios :
text = " Zoom %d : %d " % ( a , b )
layout . item_floatO ( " IMAGE_OT_view_zoom_ratio " , " ratio " , a / b , text = text )
layout . itemS ( )
if show_uvedit :
layout . itemO ( " IMAGE_OT_view_selected " )
layout . itemO ( " IMAGE_OT_view_all " )
layout . itemO ( " SCREEN_OT_screen_full_area " )
class IMAGE_MT_select ( bpy . types . Menu ) :
__space_type__ = " IMAGE_EDITOR "
__label__ = " Select "
def draw ( self , context ) :
layout = self . layout
layout . itemO ( " UV_OT_select_border " )
layout . item_booleanO ( " UV_OT_select_border " , " pinned " , True )
layout . itemS ( )
layout . itemO ( " UV_OT_select_all_toggle " )
layout . itemO ( " UV_OT_select_invert " )
layout . itemO ( " UV_OT_unlink_selection " )
layout . itemS ( )
layout . itemO ( " UV_OT_select_pinned " )
layout . itemO ( " UV_OT_select_linked " )
class IMAGE_MT_image ( bpy . types . Menu ) :
__space_type__ = " IMAGE_EDITOR "
__label__ = " Image "
def draw ( self , context ) :
layout = self . layout
sima = context . space_data
ima = sima . image
layout . itemO ( " IMAGE_OT_new " )
layout . itemO ( " IMAGE_OT_open " )
show_render = sima . show_render
if ima :
if show_render :
layout . itemO ( " IMAGE_OT_replace " )
layout . itemO ( " IMAGE_OT_reload " )
layout . itemO ( " IMAGE_OT_save " )
layout . itemO ( " IMAGE_OT_save_as " )
if ima . source == " SEQUENCE " :
layout . itemO ( " IMAGE_OT_save_sequence " )
if not show_render :
layout . itemS ( )
if ima . packed_file :
layout . itemO ( " IMAGE_OT_unpack " )
else :
layout . itemO ( " IMAGE_OT_pack " )
# only for dirty && specific image types : XXX poll?
#if(ibuf && (ibuf->userflags & IB_BITMAPDIRTY))
if False :
if ima . source in ( " FILE " , " GENERATED " ) and ima . type != " MULTILAYER " :
layout . item_booleanO ( " IMAGE_OT_pack " , " as_png " , True , text = " Pack As PNG " )
layout . itemS ( )
layout . itemR ( sima , " image_painting " )
class IMAGE_MT_uvs_showhide ( bpy . types . Menu ) :
__space_type__ = " IMAGE_EDITOR "
__label__ = " Show/Hide Faces "
def draw ( self , context ) :
layout = self . layout
layout . itemO ( " UV_OT_reveal " )
layout . itemO ( " UV_OT_hide " )
layout . item_booleanO ( " UV_OT_hide " , " unselected " , True )
class IMAGE_MT_uvs_transform ( bpy . types . Menu ) :
__space_type__ = " IMAGE_EDITOR "
__label__ = " Transform "
def draw ( self , context ) :
layout = self . layout
layout . item_enumO ( " TFM_OT_transform " , " mode " , " TRANSLATION " )
layout . item_enumO ( " TFM_OT_transform " , " mode " , " ROTATION " )
layout . item_enumO ( " TFM_OT_transform " , " mode " , " RESIZE " )
class IMAGE_MT_uvs_mirror ( bpy . types . Menu ) :
__space_type__ = " IMAGE_EDITOR "
__label__ = " Mirror "
def draw ( self , context ) :
layout = self . layout
layout . item_enumO ( " UV_OT_mirror " , " axis " , " MIRROR_X " ) # "X Axis", M,
layout . item_enumO ( " UV_OT_mirror " , " axis " , " MIRROR_Y " ) # "Y Axis", M,
class IMAGE_MT_uvs_weldalign ( bpy . types . Menu ) :
__space_type__ = " IMAGE_EDITOR "
__label__ = " Weld/Align "
def draw ( self , context ) :
layout = self . layout
layout . itemO ( " UV_OT_weld " ) # W, 1
layout . items_enumO ( " UV_OT_align " , " axis " ) # W, 2/3/4
class IMAGE_MT_uvs ( bpy . types . Menu ) :
__space_type__ = " IMAGE_EDITOR "
__label__ = " UVs "
def draw ( self , context ) :
layout = self . layout
sima = context . space_data
uv = sima . uv_editor
scene = context . scene
layout . itemR ( uv , " snap_to_pixels " )
layout . itemR ( uv , " constrain_to_image_bounds " )
layout . itemS ( )
layout . itemR ( uv , " live_unwrap " )
layout . itemO ( " UV_OT_unwrap " )
layout . item_booleanO ( " UV_OT_pin " , " clear " , True , text = " Unpin " )
layout . itemO ( " UV_OT_pin " )
layout . itemS ( )
layout . itemO ( " UV_OT_pack_islands " )
layout . itemO ( " UV_OT_average_islands_scale " )
layout . itemO ( " UV_OT_minimize_stretch " )
layout . itemO ( " UV_OT_stitch " )
layout . itemS ( )
2009-06-23 00:19:10 +00:00
layout . itemM ( " IMAGE_MT_uvs_transform " )
layout . itemM ( " IMAGE_MT_uvs_mirror " )
layout . itemM ( " IMAGE_MT_uvs_weldalign " )
2009-06-16 01:22:56 +00:00
layout . itemS ( )
# XXX layout.itemR(scene, "proportional_editing")
layout . item_menu_enumR ( scene , " proportional_editing_falloff " )
layout . itemS ( )
2009-06-23 00:19:10 +00:00
layout . itemM ( " IMAGE_MT_uvs_showhide " )
2009-06-16 01:22:56 +00:00
class IMAGE_HT_header ( bpy . types . Header ) :
__space_type__ = " IMAGE_EDITOR "
def draw ( self , context ) :
sima = context . space_data
ima = sima . image
layout = self . layout
show_render = sima . show_render
show_paint = sima . show_paint
show_uvedit = sima . show_uvedit
2009-06-23 00:19:10 +00:00
layout . template_header ( )
2009-06-16 01:22:56 +00:00
# menus
if context . area . show_menus :
row = layout . row ( )
2009-06-23 00:19:10 +00:00
row . itemM ( " IMAGE_MT_view " )
2009-06-16 01:22:56 +00:00
if show_uvedit :
2009-06-23 00:19:10 +00:00
row . itemM ( " IMAGE_MT_select " )
2009-06-16 01:22:56 +00:00
# XXX menuname= (ibuf && (ibuf->userflags & IB_BITMAPDIRTY))? "Image*": "Image";
2009-06-23 00:19:10 +00:00
row . itemM ( " IMAGE_MT_image " )
2009-06-16 01:22:56 +00:00
if show_uvedit :
2009-06-23 00:19:10 +00:00
row . itemM ( " IMAGE_MT_uvs " )
2009-06-16 01:22:56 +00:00
2009-06-23 00:19:10 +00:00
layout . template_ID ( sima , " image " , new = " IMAGE_OT_new " , open = " IMAGE_OT_open " )
2009-06-16 01:22:56 +00:00
"""
/ * image select * /
pinflag = ( show_render ) ? 0 : UI_ID_PIN ;
xco = uiDefIDPoinButs ( block , CTX_data_main ( C ) , NULL , ( ID * ) sima - > image , ID_IM , & sima - > pin , xco , yco ,
sima_idpoin_handle , UI_ID_BROWSE | UI_ID_BROWSE_RENDER | UI_ID_RENAME | UI_ID_ADD_NEW | UI_ID_OPEN | UI_ID_DELETE | pinflag ) ;
xco + = 8 ;
"""
"""
if ( ima & & ! ELEM3 ( ima - > source , IMA_SRC_SEQUENCE , IMA_SRC_MOVIE , IMA_SRC_VIEWER ) & & ima - > ok ) {
/ * XXX this should not be a static var * /
static int headerbuttons_packdummy ;
headerbuttons_packdummy = 0 ;
if ( ima - > packedfile ) {
headerbuttons_packdummy = 1 ;
}
if ( ima - > packedfile & & ibuf & & ( ibuf - > userflags & IB_BITMAPDIRTY ) )
uiDefIconButBitI ( block , TOG , 1 , 0 / * XXX B_SIMA_REPACK * / , ICON_UGLYPACKAGE , xco , yco , XIC , YIC , & headerbuttons_packdummy , 0 , 0 , 0 , 0 , " Re-Pack this image as PNG " ) ;
else
uiDefIconButBitI ( block , TOG , 1 , 0 / * XXX B_SIMAPACKIMA * / , ICON_PACKAGE , xco , yco , XIC , YIC , & headerbuttons_packdummy , 0 , 0 , 0 , 0 , " Pack/Unpack this image " ) ;
xco + = XIC + 8 ;
}
"""
# uv editing
if show_uvedit :
pass
"""
/ * uv editing * /
if ( show_uvedit ) {
/ * pivot * /
uiDefIconTextButS ( block , ICONTEXTROW , B_NOP , ICON_ROTATE ,
" Pivot: % t|Bounding Box Center %x 0|Median Point %x 3|2D Cursor %x 1 " ,
xco , yco , XIC + 10 , YIC , & ar - > v2d . around , 0 , 3.0 , 0 , 0 ,
" Rotation/Scaling Pivot (Hotkeys: Comma, Shift Comma, Period) " ) ;
xco + = XIC + 18 ;
/ * selection modes * /
uiDefIconButBitS ( block , TOG , UV_SYNC_SELECTION , B_REDR , ICON_EDIT , xco , yco , XIC , YIC , & scene - > toolsettings - > uv_flag , 0 , 0 , 0 , 0 , " Sync UV and Mesh Selection " ) ;
xco + = XIC + 8 ;
if ( scene - > toolsettings - > uv_flag & UV_SYNC_SELECTION ) {
uiBlockBeginAlign ( block ) ;
uiDefIconButBitS ( block , TOG , SCE_SELECT_VERTEX , B_REDR , ICON_VERTEXSEL ,
xco , yco , XIC , YIC , & scene - > selectmode , 1.0 , 0.0 , 0 , 0 , " Vertex select mode " ) ;
uiDefIconButBitS ( block , TOG , SCE_SELECT_EDGE , B_REDR , ICON_EDGESEL ,
xco + = XIC , yco , XIC , YIC , & scene - > selectmode , 1.0 , 0.0 , 0 , 0 , " Edge select mode " ) ;
uiDefIconButBitS ( block , TOG , SCE_SELECT_FACE , B_REDR , ICON_FACESEL ,
xco + = XIC , yco , XIC , YIC , & scene - > selectmode , 1.0 , 0.0 , 0 , 0 , " Face select mode " ) ;
uiBlockEndAlign ( block ) ;
}
else {
uiBlockBeginAlign ( block ) ;
uiDefIconButS ( block , ROW , B_REDR , ICON_VERTEXSEL ,
xco , yco , XIC , YIC , & scene - > toolsettings - > uv_selectmode , 1.0 , UV_SELECT_VERTEX , 0 , 0 , " Vertex select mode " ) ;
uiDefIconButS ( block , ROW , B_REDR , ICON_EDGESEL ,
xco + = XIC , yco , XIC , YIC , & scene - > toolsettings - > uv_selectmode , 1.0 , UV_SELECT_EDGE , 0 , 0 , " Edge select mode " ) ;
uiDefIconButS ( block , ROW , B_REDR , ICON_FACESEL ,
xco + = XIC , yco , XIC , YIC , & scene - > toolsettings - > uv_selectmode , 1.0 , UV_SELECT_FACE , 0 , 0 , " Face select mode " ) ;
uiDefIconButS ( block , ROW , B_REDR , ICON_LINKEDSEL ,
xco + = XIC , yco , XIC , YIC , & scene - > toolsettings - > uv_selectmode , 1.0 , UV_SELECT_ISLAND , 0 , 0 , " Island select mode " ) ;
uiBlockEndAlign ( block ) ;
/ * would use these if const ' s could go in strings
* SI_STICKY_LOC SI_STICKY_DISABLE SI_STICKY_VERTEX * /
but = uiDefIconTextButC ( block , ICONTEXTROW , B_REDR , ICON_STICKY_UVS_LOC ,
" Sticky UV Selection: % t|Disable %x 1|Shared Location %x 0|Shared Vertex %x 2 " ,
xco + = XIC + 10 , yco , XIC + 10 , YIC , & ( sima - > sticky ) , 0 , 3.0 , 0 , 0 ,
" Sticky UV Selection (Hotkeys: Shift C, Alt C, Ctrl C) " ) ;
}
xco + = XIC + 16 ;
/ * snap options , identical to options in 3 d view header * /
uiBlockBeginAlign ( block ) ;
if ( scene - > snap_flag & SCE_SNAP ) {
uiDefIconButBitS ( block , TOG , SCE_SNAP , B_REDR , ICON_SNAP_GEO , xco , yco , XIC , YIC , & scene - > snap_flag , 0 , 0 , 0 , 0 , " Use Snap or Grid (Shift Tab). " ) ;
xco + = XIC ;
uiDefButS ( block , MENU , B_NOP , " Mode % t|Closest %x 0|Center %x 1|Median %x 2 " , xco , yco , 70 , YIC , & scene - > snap_target , 0 , 0 , 0 , 0 , " Snap Target Mode. " ) ;
xco + = 70 ;
}
else {
uiDefIconButBitS ( block , TOG , SCE_SNAP , B_REDR , ICON_SNAP_GEAR , xco , yco , XIC , YIC , & scene - > snap_flag , 0 , 0 , 0 , 0 , " Snap while Ctrl is held during transform (Shift Tab). " ) ;
xco + = XIC ;
}
uiBlockEndAlign ( block ) ;
xco + = 8 ;
/ * uv layers * /
{
Object * obedit = CTX_data_edit_object ( C ) ;
char menustr [ 34 * MAX_MTFACE ] ;
static int act ;
image_menu_uvlayers ( obedit , menustr , & act ) ;
but = uiDefButI ( block , MENU , B_NOP , menustr , xco , yco , 85 , YIC , & act , 0 , 0 , 0 , 0 , " Active UV Layer for editing. " ) ;
/ / uiButSetFunc ( but , do_image_buttons_set_uvlayer_callback , & act , NULL ) ;
xco + = 85 ;
}
xco + = 8 ;
}
"""
if ima :
"""
RenderResult * rr ;
/ * render layers and passes * /
rr = BKE_image_get_renderresult ( scene , ima ) ;
if ( rr ) {
uiBlockBeginAlign ( block ) ;
#if 0
uiblock_layer_pass_buttons ( block , rr , & sima - > iuser , B_REDR , xco , 0 , 160 ) ;
#endif
uiBlockEndAlign ( block ) ;
xco + = 166 ;
}
"""
# painting
layout . itemR ( sima , " image_painting " , text = " " )
# draw options
row = layout . row ( align = True )
row . itemR ( sima , " draw_channels " , text = " " , expand = True )
row = layout . row ( align = True )
if ima . type == " COMPOSITE " :
row . itemO ( " IMAGE_OT_record_composite " , icon = " ICON_REC " )
if ima . type == " COMPOSITE " and ima . source in ( " MOVIE " , " SEQUENCE " ) :
row . itemO ( " IMAGE_OT_play_composite " , icon = " ICON_PLAY " )
layout . itemR ( sima , " update_automatically " , text = " " )
class IMAGE_PT_game_properties ( bpy . types . Panel ) :
__space_type__ = " IMAGE_EDITOR "
__region_type__ = " UI "
__label__ = " Game Properties "
def draw ( self , context ) :
sima = context . space_data
layout = self . layout
ima = sima . image
if ima :
split = layout . split ( )
col = split . column ( align = True )
col . itemR ( ima , " animated " )
subcol = col . column ( )
subcol . itemR ( ima , " animation_start " , text = " Start " )
subcol . itemR ( ima , " animation_end " , text = " End " )
subcol . itemR ( ima , " animation_speed " , text = " Speed " )
subcol . active = ima . animated
col = split . column ( )
col . itemR ( ima , " tiles " )
subrow = col . row ( align = True )
subrow . itemR ( ima , " tiles_x " , text = " X " )
subrow . itemR ( ima , " tiles_y " , text = " Y " )
subrow . active = ima . tiles
col . itemS ( )
col . itemR ( ima , " clamp_x " )
col . itemR ( ima , " clamp_y " )
col . itemR ( ima , " mapping " , expand = True )
bpy . types . register ( IMAGE_MT_view )
bpy . types . register ( IMAGE_MT_select )
bpy . types . register ( IMAGE_MT_image )
bpy . types . register ( IMAGE_MT_uvs_showhide )
bpy . types . register ( IMAGE_MT_uvs_transform )
bpy . types . register ( IMAGE_MT_uvs_mirror )
bpy . types . register ( IMAGE_MT_uvs_weldalign )
bpy . types . register ( IMAGE_MT_uvs )
bpy . types . register ( IMAGE_HT_header )
bpy . types . register ( IMAGE_PT_game_properties )