fereria
8/23/2014 - 4:21 PM

createShelfBtn

createShelfBtn

## -*- coding: utf-8 -*-
import pymel.core              as pm
import maya.mel                as mm
import sys

from PySide           import QtCore, QtGui
from PySide.QtUiTools import QUiLoader

import remitools.foundation.qt as qt

def createNewShelf(shelfName):

    """
    新しいシェルフを作成して、作成したShelfのPymel.ShelfLayoutObjectを返す
    """

    if pm.shelfLayout(shelfName,exists=True) != True:
        mm.eval("addNewShelfTab \""+ shelfName +"\"")

    shelfOBj = pm.shelfLayout(shelfName,e=True)
    return qt.getMayaShelfObj(shelfOBj)

class ShelfMenuBtn(QtGui.QPushButton):

    actions = {}
    subMenu = {}

    def __init__(self,btnName):
        super(ShelfMenuBtn,self).__init__(btnName)
        self.Menu   = QtGui.QMenu()
        self.clicked.connect(self.btnClick)

    def btnClick(self):
        pos = QtGui.QCursor().pos()
        self.Menu.popup(pos)

    def addItem(self,itemMenu,pMenu=None):
        self.actions[itemMenu] = QtGui.QAction(itemMenu,self)
        if pMenu != None:
            if self.subMenu.has_key(pMenu) == True:
                self.subMenu[pMenu].addAction(self.actions[itemMenu])
            else:
                self.Menu.addAction(self.actions[itemMenu])
        else:
            self.Menu.addAction(self.actions[itemMenu])

    def addMenu(self,menuName):
        self.subMenu[menuName] = self.Menu.addMenu(menuName)

    def ShelfSize(self,num):
        """
        defaultサイズからどれぐらいの大きさにするのか設定する
        """
        self.setFixedWidth(34 * num)