Example #1
0
 def end(self, rect):
     if rect:
         self.scanner.close()
         desktop = QtGui.QPixmap.grabWindow(
             QtGui.QApplication.desktop().winId(), 0, 0,
             QTUtil.anchoEscritorio(), QTUtil.altoEscritorio())
         selected_pixmap = desktop.copy(rect)
         selected_pixmap = selected_pixmap.scaled(
             256, 256, transformMode=QtCore.Qt.SmoothTransformation)
         selected_pixmap.save(self.fich_png)
     else:
         with open(self.fich_png, "wb") as q:
             q.write("")
Example #2
0
    def __init__(self, procesador):
        super(WAbout, self).__init__(procesador.pantalla)

        self.setWindowTitle(_("About"))
        self.setWindowIcon(Iconos.Aplicacion())
        self.setWindowFlags(QtCore.Qt.Dialog | QtCore.Qt.WindowTitleHint)
        self.setMaximumWidth(QTUtil.anchoEscritorio())

        f = Controles.TipoLetra(puntos=10)  # 0, peso=75 )

        cabecera = '<span style="font-size:30pt; font-weight="700"; font-family:arial; color:#2D2B2B">%s</span><br>' % _(
            "Lucas Chess")
        cabecera += '<span style="font-size:15pt;">%s</span><br>' % _X(
            _("version %1"), procesador.version)
        cabecera += '<span style="font-size:10pt;color:2D2B2B">%s: %s</span>' % (
            _("Author"),
            '<a href="mailto:[email protected]">Lucas Monge</a>')
        cabecera += ' - <a style="font-size:10pt; color:2D2B2B" href="%s">%s</a>' % (
            procesador.web, procesador.web)
        cabecera += ' - <a style="font-size:10pt; color:2D2B2B" href="%s">Blog : Fresh news</a><br>' % (
            procesador.blog, )
        cabecera += '%s <a style="font-size:10pt; color:2D2B2B" href="http://www.gnu.org/copyleft/gpl.html"> GPL</a>' % _(
            "License")

        lbIco = Controles.LB(self).ponImagen(Iconos.pmAplicacion64())
        lbTitulo = Controles.LB(self, cabecera)
        btSeguir = Controles.PB(self, _("Continue"),
                                self.accept).ponPlano(False)

        # Tabs
        tab = Controles.Tab()
        tab.ponFuente(f)

        ib = InfoBase.ThanksTo()

        for n, (k, titulo) in enumerate(ib.dic.iteritems()):
            txt = ib.texto(k)
            lb = Controles.LB(self, txt)
            lb.ponFondoN("#F6F3EE")
            lb.ponFuente(f)
            tab.addTab(lb, titulo)

        lyV1 = Colocacion.H().control(lbIco).espacio(15).control(
            lbTitulo).relleno()
        layout = Colocacion.V().otro(lyV1).espacio(10).control(tab).control(
            btSeguir).margen(10)

        self.setLayout(layout)
 def quit(self, ok):
     self.hide()
     if ok:
         self.vars.write()
         rect = QtCore.QRect(self.x, self.y, self.width, self.height)
         desktop = QtGui.QPixmap.grabWindow(
             QtGui.QApplication.desktop().winId(), 0, 0,
             QTUtil.anchoEscritorio(), QTUtil.altoEscritorio())
         selected_pixmap = desktop.copy(rect)
         selected_pixmap = selected_pixmap.scaled(
             256, 256, transformMode=QtCore.Qt.SmoothTransformation)
         selected_pixmap.save(self.fich_png)
     else:
         with open(self.fich_png, "wb") as q:
             q.write("")
     self.close()
Example #4
0
 def quit(self, ok):
     self.hide()
     if ok:
         self.vars.write()
         rect = QtCore.QRect(self.x, self.y, self.width, self.height)
         screen = QtWidgets.QApplication.primaryScreen()
         desktop = screen.grabWindow(0, 0, 0, QTUtil.anchoEscritorio(), QTUtil.altoEscritorio())
         selected_pixmap = desktop.copy(rect)
         selected_pixmap = selected_pixmap.scaled(
             256, 256, QtCore.Qt.IgnoreAspectRatio, QtCore.Qt.SmoothTransformation
         )
         selected_pixmap.save(self.fich_png)
     else:
         with open(self.fich_png, "w"):
             pass
     self.close()
Example #5
0
 def leeConfBoards(self):
     db = UtilSQL.DictSQL(self.ficheroConfBoards)
     self.dic_conf_boards_pk = db.as_dictionary()
     if not ("BASE" in self.dic_conf_boards_pk):
         with open(Code.path_resource("IntFiles", "basepk.board"),
                   "rb") as f:
             var = pickle.loads(f.read())
             alto = QTUtil.altoEscritorio()
             ancho = QTUtil.anchoEscritorio()
             base = ancho * 950 / 1495
             if alto > base:
                 alto = base
             var["x_anchoPieza"] = int(alto * 8 / 100)
             db["BASE"] = self.dic_conf_boards_pk["BASE"] = var
     # with open("../resources/IntFiles/basepk.board", "wb") as f:
     #      f.write(pickle.dumps(db["BASE"]))
     db.close()
Example #6
0
    def __init__(self, procesador):
        super(WAbout, self).__init__(procesador.pantalla)

        self.setWindowTitle(_("About"))
        self.setWindowIcon(Iconos.Aplicacion())
        self.setWindowFlags(QtCore.Qt.Dialog | QtCore.Qt.WindowTitleHint)
        self.setMaximumWidth(QTUtil.anchoEscritorio())

        f = Controles.TipoLetra(puntos=10)  # 0, peso=75 )

        cabecera = '<span style="font-size:30pt; font-weight="700"; font-family:arial; color:#2D2B2B">%s</span><br>' % _(
            "Lucas Chess")
        cabecera += '<span style="font-size:15pt;">%s</span><br>' % _X(_("version %1"), procesador.version)
        cabecera += '<span style="font-size:8pt;color:2D2B2B">%s</span>' % "Lucas Monge"
        cabecera += ' - <a style="font-size:8pt; color:2D2B2B" href="%s">%s</a>' % (procesador.web, procesador.web)
        cabecera += ' - <a style="font-size:8pt; color:2D2B2B" href="%s">Blog : Fresh news</a><br>' % (procesador.blog, )
        cabecera += '%s <a style="font-size:8pt; color:2D2B2B" href="http://www.gnu.org/copyleft/gpl.html"> GPL</a>' % _(
            "License")

        lbIco = Controles.LB(self).ponImagen(Iconos.pmAplicacion64())
        lbTitulo = Controles.LB(self, cabecera)
        btSeguir = Controles.PB(self, _("Continue"), self.accept).ponPlano(False)

        # Tabs
        tab = Controles.Tab()
        tab.ponFuente(f)

        ib = InfoBase.ThanksTo()

        for n, (k, titulo) in enumerate(ib.dic.iteritems()):
            txt = ib.texto(k)
            lb = Controles.LB(self, txt)
            lb.ponFondoN("Ivory")
            lb.ponFuente(f)
            tab.addTab(lb, titulo)

        lyV1 = Colocacion.H().control(lbIco).espacio(15).control(lbTitulo).relleno()
        layout = Colocacion.V().otro(lyV1).espacio(10).control(tab).control(btSeguir).margen(10)

        self.setLayout(layout)
Example #7
0
    def __init__(self, manager, tutor, siRival, siOpenings, is_white,
                 siPuntos):
        titulo = _("Analyzing your move")
        icono = Iconos.Tutor()
        extparam = "tutor"
        QTVarios.WDialogo.__init__(self, manager.main_window, titulo, icono,
                                   extparam)

        self.tutor = tutor
        self.manager = manager
        self.respLibro = None
        self.siElegidaOpening = False

        self.x_tutor_view = manager.configuration.x_tutor_view

        # ~ self.setStyleSheet("QDialog,QGroupBox { background: #f0f0f0; }")

        f = Controles.TipoLetra(puntos=12, peso=75)
        flb = Controles.TipoLetra(puntos=10)
        flba = Controles.TipoLetra(puntos=8)

        ae = QTUtil.anchoEscritorio()
        mx = 32 if ae > 1000 else 20
        config_board = Code.configuration.config_board("TUTOR", mx)

        # Boards

        def create_board(name, si=True, siLibre=True, siMas=False):
            if not si:
                return None, None, None
            board = Board.Board(self, config_board)
            board.crea()
            board.ponerPiezasAbajo(is_white)
            lytb, tb = QTVarios.lyBotonesMovimiento(self,
                                                    name,
                                                    siLibre,
                                                    siMas=siMas)
            return board, lytb, tb

        self.boardTutor, lytbtutor, self.tbtutor = create_board("tutor")
        self.boardUsuario, lytbuser, self.tbuser = create_board("user")
        self.boardRival, lytbRival, self.tbRival = create_board(
            "rival", siRival)
        self.boardOpening, lytbOpening, self.tbOpening = create_board(
            "opening", siOpenings, siLibre=False)
        tutor.ponBoardsGUI(self.boardTutor, self.boardUsuario, self.boardRival,
                           self.boardOpening)

        # Puntuaciones
        self.lbTutorPuntuacion = Controles.LB(self).align_center().ponFuente(
            flb)
        self.lbUsuarioPuntuacion = Controles.LB(self).align_center().ponFuente(
            flb)
        if siRival:
            self.lbRivalPuntuacion = Controles.LB(
                self).align_center().ponFuente(flb)

        # Openings
        if siOpenings:
            li_options = self.tutor.opcionesOpenings()
            self.cbOpenings = Controles.CB(self, li_options, 0)
            self.cbOpenings.setFont(flba)
            self.connect(self.cbOpenings,
                         QtCore.SIGNAL("currentIndexChanged(int)"),
                         self.tutor.cambiarOpening)

        # RM
        liRM = []
        for n, uno in enumerate(tutor.list_rm):
            liRM.append((uno[1], n))

        self.cbRM, self.lbRM = QTUtil2.comboBoxLB(self, liRM, liRM[0][1],
                                                  _("Moves analyzed"))
        self.connect(self.cbRM, QtCore.SIGNAL("currentIndexChanged (int)"),
                     tutor.cambiadoRM)
        lyRM = Colocacion.H().control(self.lbRM).control(self.cbRM)

        lyTutor = Colocacion.V().relleno().control(
            self.lbTutorPuntuacion).relleno()
        gbTutor = Controles.GB(self, _("Tutor's suggestion"),
                               lyTutor).ponFuente(f).align_center()
        if siPuntos:
            gbTutor.to_connect(self.elegirTutor)
            self.lbTutorPuntuacion.setEnabled(True)

        lyUsuario = Colocacion.V().relleno().control(
            self.lbUsuarioPuntuacion).relleno()
        gbUsuario = Controles.GB(
            self, _("Your move"),
            lyUsuario).ponFuente(f).align_center().to_connect(
                self.elegirUsuario)
        self.lbUsuarioPuntuacion.setEnabled(True)
        btLibros = Controles.PB(self, _("Consult a book"),
                                self.consultaLibro).ponPlano(False)

        if siRival:
            lyRival = Colocacion.V().relleno().control(
                self.lbRivalPuntuacion).relleno()
            gbRival = Controles.GB(self, _("Opponent's prediction"),
                                   lyRival).ponFuente(f).align_center()

        if siOpenings:
            lyOpenings = Colocacion.V().relleno().control(
                self.cbOpenings).relleno()
            gbOpenings = Controles.GB(self, _("Opening"),
                                      lyOpenings).align_center().ponFuente(f)
            if siPuntos:
                gbOpenings.to_connect(self.elegirOpening)
            self.cbOpenings.setEnabled(True)
            self.tutor.cambiarOpening(0)

        dicVista = {
            POS_TUTOR_HORIZONTAL: ((0, 1), (0, 2)),
            POS_TUTOR_HORIZONTAL_2_1: ((0, 1), (4, 0)),
            POS_TUTOR_HORIZONTAL_1_2: ((4, 0), (4, 1)),
            POS_TUTOR_VERTICAL: ((4, 0), (8, 0)),
        }

        usu, riv = dicVista[self.x_tutor_view]

        fu, cu = usu
        fr, cr = riv

        layout = Colocacion.G()
        layout.controlc(gbTutor, 0, 0).controlc(self.boardTutor, 1,
                                                0).otro(lytbtutor, 2,
                                                        0).otroc(lyRM, 3, 0)
        layout.controlc(gbUsuario, fu,
                        cu).controlc(self.boardUsuario, fu + 1,
                                     cu).otro(lytbuser, fu + 2, cu).controlc(
                                         btLibros, fu + 3, cu)
        if siRival:
            layout.controlc(gbRival, fr,
                            cr).controlc(self.boardRival, fr + 1,
                                         cr).otro(lytbRival, fr + 2, cr)
        elif siOpenings:
            layout.controlc(gbOpenings, fr,
                            cr).controlc(self.boardOpening, fr + 1,
                                         cr).otro(lytbOpening, fr + 2, cr)

        layout.margen(8)

        self.setLayout(layout)

        self.restore_video(siTam=False)
Example #8
0
    def __init__(self, gestor, tutor, siRival, siAperturas, siBlancas,
                 siPuntos):
        titulo = _("Analyzing your move")
        icono = Iconos.Tutor()
        extparam = "tutor"
        QTVarios.WDialogo.__init__(self, gestor.pantalla, titulo, icono,
                                   extparam)

        self.tutor = tutor
        self.gestor0 = gestor.gestor
        self.respLibro = None
        self.siElegidaApertura = False

        self.vistaTutor = gestor.procesador.configuracion.vistaTutor

        # ~ self.setStyleSheet("QDialog,QGroupBox { background: #f0f0f0; }")

        f = Controles.TipoLetra(puntos=12, peso=75)
        flb = Controles.TipoLetra(puntos=10)
        flba = Controles.TipoLetra(puntos=8)

        ae = QTUtil.anchoEscritorio()
        mx = 32 if ae > 1000 else 20
        confTablero = VarGen.configuracion.confTablero("TUTOR", mx)

        # Tableros

        def creaTablero(nombre, si=True, siLibre=True, siMas=False):
            if not si:
                return None, None, None
            tablero = Tablero.Tablero(self, confTablero)
            tablero.crea()
            tablero.ponerPiezasAbajo(siBlancas)
            lytb, tb = QTVarios.lyBotonesMovimiento(self,
                                                    nombre,
                                                    siLibre,
                                                    siMas=siMas)
            return tablero, lytb, tb

        self.tableroTutor, lytbTutor, self.tbTutor = creaTablero("tutor")
        self.tableroUsuario, lytbUsuario, self.tbUsuario = creaTablero(
            "usuario")
        self.tableroRival, lytbRival, self.tbRival = creaTablero(
            "rival", siRival)
        self.tableroApertura, lytbApertura, self.tbApertura = creaTablero(
            "apertura", siAperturas, siLibre=False)
        tutor.ponTablerosGUI(self.tableroTutor, self.tableroUsuario,
                             self.tableroRival, self.tableroApertura)

        # Puntuaciones
        self.lbTutorPuntuacion = Controles.LB(self).alinCentrado().ponFuente(
            flb)
        self.lbUsuarioPuntuacion = Controles.LB(self).alinCentrado().ponFuente(
            flb)
        if siRival:
            self.lbRivalPuntuacion = Controles.LB(
                self).alinCentrado().ponFuente(flb)

        # Aperturas
        if siAperturas:
            liOpciones = self.tutor.opcionesAperturas()
            self.cbAperturas = Controles.CB(self, liOpciones, 0)
            self.cbAperturas.setFont(flba)
            self.connect(self.cbAperturas,
                         QtCore.SIGNAL("currentIndexChanged(int)"),
                         self.tutor.cambiarApertura)

        # RM
        liRM = []
        for n, uno in enumerate(tutor.listaRM):
            liRM.append((uno[1], n))

        self.cbRM, self.lbRM = QTUtil2.comboBoxLB(self, liRM, liRM[0][1],
                                                  _("Moves analyzed"))
        self.connect(self.cbRM, QtCore.SIGNAL("currentIndexChanged (int)"),
                     tutor.cambiadoRM)
        lyRM = Colocacion.H().control(self.lbRM).control(self.cbRM)

        lyTutor = Colocacion.V().relleno().control(
            self.lbTutorPuntuacion).relleno()
        gbTutor = Controles.GB(self, _("Tutor's suggestion"),
                               lyTutor).ponFuente(f).alinCentrado()
        if siPuntos:
            gbTutor.conectar(self.elegirTutor)
            self.lbTutorPuntuacion.setEnabled(True)

        lyUsuario = Colocacion.V().relleno().control(
            self.lbUsuarioPuntuacion).relleno()
        gbUsuario = Controles.GB(
            self, _("Your move"),
            lyUsuario).ponFuente(f).alinCentrado().conectar(self.elegirUsuario)
        self.lbUsuarioPuntuacion.setEnabled(True)
        btLibros = Controles.PB(self, _("Consult a book"),
                                self.consultaLibro).ponPlano(False)

        if siRival:
            lyRival = Colocacion.V().relleno().control(
                self.lbRivalPuntuacion).relleno()
            gbRival = Controles.GB(self, _("Opponent's prediction"),
                                   lyRival).ponFuente(f).alinCentrado()

        if siAperturas:
            lyAperturas = Colocacion.V().relleno().control(
                self.cbAperturas).relleno()
            gbAperturas = Controles.GB(self, _("Opening"),
                                       lyAperturas).alinCentrado().ponFuente(f)
            if siPuntos:
                gbAperturas.conectar(self.elegirApertura)
            self.cbAperturas.setEnabled(True)
            self.tutor.cambiarApertura(0)

        dicVista = {
            kTutorH: ((0, 1), (0, 2)),
            kTutorH2_1: ((0, 1), (4, 0)),
            kTutorH1_2: ((4, 0), (4, 1)),
            kTutorV: ((4, 0), (8, 0))
        }

        usu, riv = dicVista[self.vistaTutor]

        fu, cu = usu
        fr, cr = riv

        layout = Colocacion.G()
        layout.controlc(gbTutor, 0, 0).controlc(self.tableroTutor, 1,
                                                0).otro(lytbTutor, 2,
                                                        0).otroc(lyRM, 3, 0)
        layout.controlc(gbUsuario, fu,
                        cu).controlc(self.tableroUsuario, fu + 1, cu).otro(
                            lytbUsuario, fu + 2,
                            cu).controlc(btLibros, fu + 3, cu)
        if siRival:
            layout.controlc(gbRival, fr,
                            cr).controlc(self.tableroRival, fr + 1,
                                         cr).otro(lytbRival, fr + 2, cr)
        elif siAperturas:
            layout.controlc(gbAperturas, fr,
                            cr).controlc(self.tableroApertura, fr + 1,
                                         cr).otro(lytbApertura, fr + 2, cr)

        layout.margen(8)

        self.setLayout(layout)

        self.recuperarVideo(siTam=False)
Example #9
0
    def __init__(self, procesador):
        super(WAbout, self).__init__(procesador.main_window)

        # gen_web_bootstrap()

        self.setWindowTitle(_("About"))
        self.setWindowIcon(Iconos.Aplicacion64())
        self.setWindowFlags(QtCore.Qt.WindowCloseButtonHint | QtCore.Qt.Dialog
                            | QtCore.Qt.WindowTitleHint)
        self.setMaximumWidth(QTUtil.anchoEscritorio())

        f = Controles.TipoLetra(puntos=10)  # 0, peso=75 )

        head = '<span style="font-size:30pt; font-weight="700"; font-family:arial; color:#2D2B2B">%s</span><br>' % Code.lucas_chess
        head += '<span style="font-size:15pt;">%s</span><br>' % _X(
            _("version %1"), procesador.version)
        head += '<span style="font-size:10pt;color:2D2B2B">%s: %s</span>' % (_(
            "Author"), '<a href="mailto:[email protected]">Lucas Monge</a>')
        head += ' - <a style="font-size:10pt; color:2D2B2B" href="%s">%s</a>' % (
            procesador.web, procesador.web)
        head += ' - <a style="font-size:10pt; color:2D2B2B" href="%s">Blog : Fresh news</a>' % (
            procesador.blog, )
        head += ' - <a style="font-size:10pt; color:2D2B2B" href="%s">Sources: github</a><br>' % (
            procesador.github, )
        head += '%s <a style="font-size:10pt; color:2D2B2B" href="http://www.gnu.org/copyleft/gpl.html"> GPL</a>' % _(
            "License")

        lb_ico = Controles.LB(self).ponImagen(Iconos.pmAplicacion64())
        lb_titulo = Controles.LB(self, head)

        # Tabs
        tab = Controles.Tab()
        tab.ponFuente(f)

        ib = AboutBase.ThanksTo()

        sub_tab = None
        for k, titulo in ib.dic.items():
            txt = ib.texto(k)
            lb = Controles.LB(self, txt)
            lb.set_background("#F6F3EE")
            lb.ponFuente(f)
            if "-" in k:
                base, num = k.split("-")
                if num == "1":
                    sub_tab = Controles.Tab()
                    sub_tab.ponFuente(f)
                    sub_tab.set_position("S")
                    tab.addTab(sub_tab, _("Engines"))
                lm = ib.list_engines(num)
                titulo = lm[0][0].split(" ")[1] + " - " + lm[-1][0].split(
                    " ")[1]
                sub_tab.addTab(lb, titulo)
            else:
                tab.addTab(lb, titulo)

        ly_v1 = Colocacion.H().control(lb_ico).espacio(15).control(
            lb_titulo).relleno()
        layout = Colocacion.V().otro(ly_v1).espacio(10).control(tab).margen(10)

        self.setLayout(layout)
Example #10
0
    def __init__(self, gestor, tutor, siRival, siAperturas, siBlancas, siPuntos):

        titulo = _("Analyzing your move")
        icono = Iconos.Tutor()
        extparam = "tutor"
        QTVarios.WDialogo.__init__(self, gestor.pantalla, titulo, icono, extparam)

        self.tutor = tutor
        self.gestor0 = gestor.gestor
        self.respLibro = None
        self.siElegidaApertura = False

        self.vistaTutor = gestor.procesador.configuracion.vistaTutor

        # ~ self.setStyleSheet("QDialog,QGroupBox { background: #f0f0f0; }")

        f = Controles.TipoLetra(puntos=12, peso=75)
        flb = Controles.TipoLetra(puntos=10)
        flba = Controles.TipoLetra(puntos=8)

        ae = QTUtil.anchoEscritorio()
        mx = 32 if ae > 1000 else 20
        confTablero = VarGen.configuracion.confTablero("TUTOR", mx)
        # Tableros
        def creaTablero(nombre, si=True, siLibre=True, siPunto=False):
            if not si:
                return None, None, None
            tablero = Tablero.Tablero(self, confTablero)
            tablero.crea()
            tablero.ponerPiezasAbajo(siBlancas)
            lytb, tb = QTVarios.lyBotonesMovimiento(self, nombre, siLibre)
            return tablero, lytb, tb

        self.tableroTutor, lytbTutor, self.tbTutor = creaTablero("tutor", siPunto=True)
        self.tableroUsuario, lytbUsuario, self.tbUsuario = creaTablero("usuario")
        self.tableroRival, lytbRival, self.tbRival = creaTablero("rival", siRival)
        self.tableroApertura, lytbApertura, self.tbApertura = creaTablero("apertura", siAperturas, siLibre=False)
        tutor.ponTablerosGUI(self.tableroTutor, self.tableroUsuario, self.tableroRival, self.tableroApertura)

        # Puntuaciones
        self.lbTutorPuntuacion = Controles.LB(self).alinCentrado().ponFuente(flb)
        self.lbUsuarioPuntuacion = Controles.LB(self).alinCentrado().ponFuente(flb)
        if siRival:
            self.lbRivalPuntuacion = Controles.LB(self).alinCentrado().ponFuente(flb)

        # Aperturas
        if siAperturas:
            liOpciones = self.tutor.opcionesAperturas()
            self.cbAperturas = Controles.CB(self, liOpciones, 0)
            self.cbAperturas.setFont(flba)
            self.connect(self.cbAperturas, QtCore.SIGNAL("currentIndexChanged(int)"), self.tutor.cambiarApertura)

        # RM
        liRM = []
        for n, uno in enumerate(tutor.listaRM):
            liRM.append((uno[1], n))

        self.cbRM, self.lbRM = QTUtil2.comboBoxLB(self, liRM, liRM[0][1], _("Moves analyzed"))
        self.connect(self.cbRM, QtCore.SIGNAL("currentIndexChanged (int)"), tutor.cambiadoRM)
        lyRM = Colocacion.H().control(self.lbRM).control(self.cbRM)

        lyTutor = Colocacion.V().relleno().control(self.lbTutorPuntuacion).relleno()
        gbTutor = Controles.GB(self, _("Tutor's suggestion"), lyTutor).ponFuente(f).alinCentrado()
        if siPuntos:
            gbTutor.conectar(self.elegirTutor)
            self.lbTutorPuntuacion.setEnabled(True)

        lyUsuario = Colocacion.V().relleno().control(self.lbUsuarioPuntuacion).relleno()
        gbUsuario = Controles.GB(self, _("Your move"), lyUsuario).ponFuente(f).alinCentrado().conectar(
            self.elegirUsuario)
        self.lbUsuarioPuntuacion.setEnabled(True)
        btLibros = Controles.PB(self, _("Consult a book"), self.consultaLibro).ponPlano(False)

        if siRival:
            lyRival = Colocacion.V().relleno().control(self.lbRivalPuntuacion).relleno()
            gbRival = Controles.GB(self, _("Opponent's prediction"), lyRival).ponFuente(f).alinCentrado()

        if siAperturas:
            lyAperturas = Colocacion.V().relleno().control(self.cbAperturas).relleno()
            gbAperturas = Controles.GB(self, _("Opening"), lyAperturas).alinCentrado().ponFuente(f)
            if siPuntos:
                gbAperturas.conectar(self.elegirApertura)
            self.cbAperturas.setEnabled(True)
            self.tutor.cambiarApertura(0)

        dicVista = {kTutorH: ((0, 1), (0, 2)), kTutorH2_1: ((0, 1), (4, 0)), kTutorH1_2: ((4, 0), (4, 1)),
                    kTutorV: ((4, 0), (8, 0))}

        usu, riv = dicVista[self.vistaTutor]

        fu, cu = usu
        fr, cr = riv

        layout = Colocacion.G()
        layout.controlc(gbTutor, 0, 0).controlc(self.tableroTutor, 1, 0).otro(lytbTutor, 2, 0).otroc(lyRM, 3, 0)
        layout.controlc(gbUsuario, fu, cu).controlc(self.tableroUsuario, fu + 1, cu).otro(lytbUsuario, fu + 2,
                                                                                          cu).controlc(btLibros, fu + 3,
                                                                                                       cu)
        if siRival:
            layout.controlc(gbRival, fr, cr).controlc(self.tableroRival, fr + 1, cr).otro(lytbRival, fr + 2, cr)
        elif siAperturas:
            layout.controlc(gbAperturas, fr, cr).controlc(self.tableroApertura, fr + 1, cr).otro(lytbApertura, fr + 2,
                                                                                                 cr)

        layout.margen(8)

        self.setLayout(layout)

        self.recuperarVideo(siTam=False)