from pymol.wizard import Wizard
from pymol import cmd
import pymol
import types

class Toggle(Wizard):

    def __init__(self,*arg,**kw):
        _self = kw.get('_self',cmd)
        self.message = []
        for a in arg:
            if not isinstance(a,types.ListType):
                self.message.append(a)
            else:
                self.message.extend(a)
        for a in self.message:
            print a
        self.message_visible = 1
            
    def toggle(self):
        self.message_visible = not self.message_visible
        cmd.refresh_wizard()

    def get_prompt(self):
        if self.message_visible:
            self.prompt = self.message
        else:
            self.prompt = None
        return self.prompt

    def get_panel(self):
        panel = [
            [ 2, 'Toggle Fullscreen', 
              'cmd.full_screen(apply(lambda x:{ "off":"on", "on":"off"}[x],(cmd.get("full_screen"),)))'],
            [ 2, 'Toggle Stereo 3D', 
              'cmd.stereo(apply(lambda x:{ "off":"on", "on":"off"}[x],(cmd.get("stereo"),)))'],
            [ 2, 'Toggle Message', 
              'cmd.get_wizard().toggle()'],
            [ 2, 'Dismiss', 'cmd.set_wizard()' ]
            ]
        if len(self.message)==0:
            del panel[2]
        return panel



