from otp.otpbase import OTPLocalizer
from otp.speedchat.SCMenu import SCMenu
from otp.speedchat import SCMenuHolder, SCStaticTextTerminal

class SCSpecialMenu(SCMenu):

    def __init__(self, sections):
        SCMenu.__init__(self)
        self.sections = sections
        self.__messagesChanged()

    def appendPhrases(self, section, menu):
        for phrase in section[1]:
            if phrase not in OTPLocalizer.SpeedChatStaticText:
                print 'warning: tried to link speedchat menu phrase %s which does not seem to exist' % phrase
                break

            menu.append(SCStaticTextTerminal.SCStaticTextTerminal(phrase))

    def __messagesChanged(self):
        self.clearMenu()

        try:
            lt = base.localAvatar
        except:
            return

        for section in self.sections:
            if section[0] == -1:
                self.appendPhrases(section, self)
            else:
                menu = SCMenu()

                self.appendPhrases(section, menu)
                self.append(SCMenuHolder.SCMenuHolder(str(section[0]), menu))