Ejemplo n.º 1
0
def handler_post_load(dummy):
    print('debug post load handler')
    if addon_utils.check("piemenus")[1]:
        print('made bpy.data ready for pies')
        #load the icon image in case it's not there
        img = bpy.data.images.get('blender_icons_x2.png')
        if not img:
            #load the icon image into blend data.
            addons_folder = os.path.dirname(__file__)
            icondir = os.path.join(addons_folder, 'icons', 'blender_icons')
            pie_menu_utils.icons_to_blend_data(icondir)
            img = bpy.data.images['blender_icons_x2.png']
        img.gl_load()

        #set the icon loaded property to True and remember the bindcode
        scn = bpy.context.scene
        scn.piemenus.pieIconBindcode = img.bindcode

        if not len(scn.pie_settings):
            scn.piemenus.initSceneProperties()
Ejemplo n.º 2
0
def handler_post_load(dummy):
    print('debug post load handler')
    if addon_utils.check("piemenus")[1]:
        print('made bpy.data ready for pies')
        #load the icon image in case it's not there
        img = bpy.data.images.get('blender_icons_x2.png')
        if not img:
            #load the icon image into blend data.                
            addons_folder = os.path.dirname(__file__)
            icondir=os.path.join(addons_folder, 'icons','blender_icons')
            pie_menu_utils.icons_to_blend_data(icondir)
            img = bpy.data.images['blender_icons_x2.png']
        img.gl_load()
        
        #set the icon loaded property to True and remember the bindcode
        scn = bpy.context.scene
        scn.piemenus.pieIconBindcode = img.bindcode
        

        if not len(scn.pie_settings):
            scn.piemenus.initSceneProperties()
Ejemplo n.º 3
0
    def __init__(self,
                 context,
                 x,
                 y,
                 layout_radius,
                 text_size,
                 text_dpi,
                 center_radius_squared,
                 max_radius_squared,
                 keybind,
                 corner_radius=5,
                 icon=""):

        settings = context.user_preferences.addons['piemenus'].preferences

        self.menu_x = x
        self.menu_y = y
        self.radius = layout_radius
        self.text_size = text_size
        self.text_dpi = text_dpi
        #self.center_radius = center_radius_squared  #use if each pie needs own inner radius setting
        #self.center_radius = 900
        self.center_radius = settings.pieInnerRadius**2
        #self.max_radius = max_radius_squared #use if each pie needs own outer radius setting
        self.max_radius = settings.pieOuterRadius**2  #TODO addon_prefs
        self.corner_radius = corner_radius
        self.angle = 0
        self.item_offset = 0
        self.menu_items = []
        self.sliders = []

        self.vec_cache = None

        self.biggest_dim_x = 0
        self.biggest_dim_y = 0
        self.dimension_radio = 0

        self.keybind = keybind
        self.init_time = time.time()
        self.mouse_drag = False

        self.precision = False
        self.precision_origin = x
        self.precision_item = None

        self.init_x = x
        self.init_y = y

        self.aspect = settings.pieSquish
        self.diamond = settings.pieDiamond
        self.theta_shift = settings.pieThetaShift

        ui = bpy.context.user_preferences.themes[
            'Default'].user_interface  #alias

        #inner color selected
        self.ris = ui.wcol_pulldown.inner_sel[0]
        self.gis = ui.wcol_pulldown.inner_sel[1]
        self.bis = ui.wcol_pulldown.inner_sel[2]
        self.ais = ui.wcol_pulldown.inner_sel[3]

        #inner color
        self.ri = ui.wcol_menu.inner[0]
        self.gi = ui.wcol_menu.inner[1]
        self.bi = ui.wcol_menu.inner[2]
        self.ai = ui.wcol_menu.inner[3]

        #outline color
        self.ro = ui.wcol_menu.outline[0]
        self.go = ui.wcol_menu.outline[1]
        self.bo = ui.wcol_menu.outline[2]

        #text color
        self.rt = ui.wcol_menu.text[0]
        self.gt = ui.wcol_menu.text[1]
        self.bt = ui.wcol_menu.text[2]

        #slider item color (forground)
        self.rsItem = ui.wcol_numslider.item[0]
        self.gsItem = ui.wcol_numslider.item[1]
        self.bsItem = ui.wcol_numslider.item[2]

        #slider inner color (background)
        self.rsInner = ui.wcol_numslider.inner[0]
        self.gsInner = ui.wcol_numslider.inner[1]
        self.bsInner = ui.wcol_numslider.inner[2]

        #slider outline color
        self.rsOutline = ui.wcol_numslider.outline[0]
        self.gsOutline = ui.wcol_numslider.outline[1]
        self.bsOutline = ui.wcol_numslider.outline[2]

        #slider selected color (background)
        self.rsSelected = ui.wcol_numslider.inner_sel[0]
        self.gsSelected = ui.wcol_numslider.inner_sel[1]
        self.bsSelected = ui.wcol_numslider.inner_sel[2]

        self.pointerangle = 0

        #image originally loaded into graphics mem at addon init
        #switching out of texture paint clears it. Other things might too...test

        img = bpy.data.images.get('blender_icons_x2.png')
        if not img:
            #this should never happen...except on first menu call
            #load the icon image into blend data.
            addons_folder = os.path.dirname(__file__)
            icondir = os.path.join(addons_folder, 'icons', 'blender_icons')
            pmu.icons_to_blend_data(icondir)
            img = bpy.data.images['blender_icons_x2.png']

        bindcode = img.bindcode  #will be 0 if not loaded
        if not bindcode:
            img.gl_load()
            settings.pieIconBindcode = img.bindcode

        #TODO addon_prefs
        scn = bpy.context.scene
        if not len(scn.pie_settings):
            scn.piemenus.initSceneProperties()
Ejemplo n.º 4
0
    def __init__(self, context, x, y, layout_radius, text_size,
                 text_dpi, center_radius_squared,
                 max_radius_squared, keybind,
                 corner_radius=5, icon = ""):
        
        
        settings = context.user_preferences.addons['piemenus'].preferences
        
        self.menu_x = x
        self.menu_y = y
        self.radius = layout_radius
        self.text_size = text_size
        self.text_dpi = text_dpi
        #self.center_radius = center_radius_squared  #use if each pie needs own inner radius setting
        #self.center_radius = 900
        self.center_radius = settings.pieInnerRadius**2
        #self.max_radius = max_radius_squared #use if each pie needs own outer radius setting
        self.max_radius = settings.pieOuterRadius**2  #TODO addon_prefs
        self.corner_radius = corner_radius
        self.angle = 0
        self.item_offset = 0
        self.menu_items = []
        self.sliders = []
        
        self.vec_cache = None
        
        self.biggest_dim_x = 0
        self.biggest_dim_y = 0
        self.dimension_radio = 0
        
        self.keybind = keybind
        self.init_time = time.time()
        self.mouse_drag = False
        
        self.precision = False
        self.precision_origin = x
        self.precision_item = None
        
        self.init_x = x
        self.init_y = y
        
        self.aspect = settings.pieSquish
        self.diamond = settings.pieDiamond
        self.theta_shift = settings.pieThetaShift

        ui=bpy.context.user_preferences.themes['Default'].user_interface #alias

        #inner color selected
        self.ris = ui.wcol_pulldown.inner_sel[0]
        self.gis = ui.wcol_pulldown.inner_sel[1]
        self.bis = ui.wcol_pulldown.inner_sel[2]
        self.ais = ui.wcol_pulldown.inner_sel[3]
    
        #inner color
        self.ri = ui.wcol_menu.inner[0]
        self.gi = ui.wcol_menu.inner[1]
        self.bi = ui.wcol_menu.inner[2]
        self.ai = ui.wcol_menu.inner[3]

        #outline color
        self.ro = ui.wcol_menu.outline[0]
        self.go = ui.wcol_menu.outline[1]
        self.bo = ui.wcol_menu.outline[2]

        #text color
        self.rt = ui.wcol_menu.text[0]
        self.gt = ui.wcol_menu.text[1]
        self.bt = ui.wcol_menu.text[2] 

        #slider item color (forground)
        self.rsItem = ui.wcol_numslider.item[0]
        self.gsItem = ui.wcol_numslider.item[1]
        self.bsItem = ui.wcol_numslider.item[2]

        #slider inner color (background)
        self.rsInner = ui.wcol_numslider.inner[0]
        self.gsInner = ui.wcol_numslider.inner[1]
        self.bsInner = ui.wcol_numslider.inner[2]

        #slider outline color
        self.rsOutline = ui.wcol_numslider.outline[0]
        self.gsOutline = ui.wcol_numslider.outline[1]
        self.bsOutline = ui.wcol_numslider.outline[2]

        #slider selected color (background)
        self.rsSelected = ui.wcol_numslider.inner_sel[0]
        self.gsSelected = ui.wcol_numslider.inner_sel[1]
        self.bsSelected = ui.wcol_numslider.inner_sel[2]
    
        self.pointerangle=0
        
        #image originally loaded into graphics mem at addon init
        #switching out of texture paint clears it. Other things might too...test
        
        img = bpy.data.images.get('blender_icons_x2.png')
        if not img:
            #this should never happen...except on first menu call
            #load the icon image into blend data.                
            addons_folder = os.path.dirname(__file__)
            icondir=os.path.join(addons_folder, 'icons','blender_icons')
            pmu.icons_to_blend_data(icondir)
            img = bpy.data.images['blender_icons_x2.png']
            
        bindcode = img.bindcode #will be 0 if not loaded
        if not bindcode:
            img.gl_load()
            settings.pieIconBindcode = img.bindcode
        
        #TODO addon_prefs
        scn = bpy.context.scene   
        if not len(scn.pie_settings):
            scn.piemenus.initSceneProperties()