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()
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()
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()
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()