コード例 #1
0
    def buildHeaders(self):
        headers = BoxLayout(orientation='vertical')
        topButtons = BoxLayout(orientation='horizontal')

        topButtons.add_widget(buildMenu(self.mediator, size_hint=(0.2, 1.0)))
        topButtons.add_widget(
            buildButton('Terug',
                        lambda ins: self.onUndo(),
                        size_hint=(0.8, 1.0)))
        headers.add_widget(topButtons)
        suits = GridLayout(cols=4, spacing=[gap, 0], padding=[0, gap])

        def createCallback(whoStarts):
            return lambda instance: self.mediator.bidding.setWhoStarts(
                whoStarts)

        # create buttons for suits
        if self.mediator.bidding != None:
            for elem in playOrder:
                suits.add_widget(
                    buildToggle(elem, elem == self.mediator.bidding.whoStarts,
                                createCallback(elem), 'whoStarts'))

        headers.add_widget(suits)
        return headers
コード例 #2
0
    def build(self):
        topLayout = BoxLayout(orientation='vertical', size_hint=(1.0, 0.2))
        topLayout.add_widget(self.buildHeaders())

        if len(self.mediator.bidding.current) == 0:
            currentBidding = buildText('''
BridgeBiddingBuddy is een app dat beginnende bridgers die onzeker zijn over hun bieding kan helpen.

U heeft zojuist ingevuld hoe uw hand eruit ziet, met die informatie en de bieding kan BidBud bepalen wat waarschijnlijk de beste volgende stap is.
        
Ook BidBud (de naam van het programma dat u helpt met biedingen) is niet perfect, dus lees de uitleg en denk goed na of dat past bij wat u wilt bereiken.
        
Druk als eerste stap op de windrichting die de leider is, en vul in welke bieding deze persoon doet.
Als u de leider bent geldt dit uiteraard ook. 
        
Als u aan de beurt bent en u weet niet wat u moet doen kunt u op het vraagtekentje drukken.
        
Als de bieding klaar is kunt u deze bieding een naam geven door op het potloodje de drukken, zo kunt u als u de spellen nog wilt bespreken of bekijken later de bieding goed terug vinden.
        
Veel speel plezier! Van BidBud en van ons!
            ''')
        else:
            currentBidding = self.buildCurrentBidding()

        if (not self.mediator.bidding.finished()):
            bottom = BoxLayout(orientation='vertical', size_hint=(1.0, 0.3))
            bottom.add_widget(self.buildBidChooser())
        else:
            bottom = buildButton('Klaar',
                                 lambda i: self.mediator.closeBidding(),
                                 size_hint=(1.0, 0.1))

        self.rootLayout.add_widget(topLayout)
        self.rootLayout.add_widget(currentBidding)
        self.rootLayout.add_widget(bottom)
コード例 #3
0
    def build(self):
        self.rootLayout.add_widget(buildMenu(self.mediator, size_hint=(0.2, 0.1)))
        self.rootLayout.add_widget(buildText('''
Bridge Bidding Buddy (BidBud) is gemaakt door de volgende mensen:
 * [b]Marieke van der Valk[/b]: Domein expert en backend developer
 * [b]Steven van Dijk[/b]: Frontend developer
 * [b]Meike van der Valk[/b]: Tester
 * [b]Pepijn van der Valk[/b]: Kleuren
 * [b]Kasper van der Valk[/b]: Tekenen van het BidBud logo 

BidBud is geschreven in [ref=https://www.python.org]Python[/ref] en maakt gebruik van [ref=https://kivy.org]Kivy[/ref].
''', size_hint=(1.0, 0.8)))
        self.rootLayout.add_widget(
            buildButton('Klaar', lambda i: self.mediator.closeSpecification(), size_hint=(1.0, 0.1)))
コード例 #4
0
                def cb(instance):
                    dad = instance.parent.parent  # GridLayout -> BoxLayout
                    dad.clear_widgets()

                    def setNameCallback(instance):
                        self.mediator.changeBiddingName(key, instance.text)

                    input = buildTextInput(setNameCallback,
                                           size_hint=(0.8, 1.0))
                    input.text = name
                    dad.add_widget(input)
                    dad.add_widget(
                        buildButton('Klaar',
                                    lambda i: setNameCallback(input),
                                    size_hint=(0.2, 1.0)))
コード例 #5
0
    def build(self):
        newBidBtn = buildButton('Nieuwe bieding',
                                lambda i: self.mediator.editBidding(Bidding()),
                                size_hint=(1.0, 0.1))

        encloseLyt = BoxLayout(size_hint=(1.0, 0.85))
        scrlView = ScrollView(size_hint=(1.0, None),
                              scroll_type=['content', 'bars'],
                              bar_width='10dp')
        encloseLyt.bind(size=scrlView.setter('size'))
        listLyt = GridLayout(cols=1, spacing=10, size_hint_y=None)
        listLyt.bind(minimum_height=listLyt.setter('height'))
        keys = self.mediator.getBiddingKeys()
        for (key, name,
             contract) in reversed(keys):  # ensure most recent is at the top

            def createCallbackSelect(key):
                def cb(instance):
                    self.mediator.loadBidding(key)

                return cb

            def createCallbackDelete(key):
                def cb(instance):
                    self.mediator.deleteBidding(key)

                return cb

            def createCallbackEdit(key, name):
                def cb(instance):
                    dad = instance.parent.parent  # GridLayout -> BoxLayout
                    dad.clear_widgets()

                    def setNameCallback(instance):
                        self.mediator.changeBiddingName(key, instance.text)

                    input = buildTextInput(setNameCallback,
                                           size_hint=(0.8, 1.0))
                    input.text = name
                    dad.add_widget(input)
                    dad.add_widget(
                        buildButton('Klaar',
                                    lambda i: setNameCallback(input),
                                    size_hint=(0.2, 1.0)))

                return cb

            itemLyt = BoxLayout(orientation='horizontal',
                                size_hint=(1.0, None))

            btns = GridLayout(rows=1,
                              spacing=[gap, 0],
                              padding=[gap, 0],
                              size_hint=(0.2, 1.0))
            btns.add_widget(
                buildIconButton(iconPencil, createCallbackEdit(key, name)))
            btns.add_widget(
                buildIconButton(iconTrashcan, createCallbackDelete(key)))

            itemNameLyt = AnchorLayout()
            itemNameLyt.add_widget(buildMultilineLabel(name))
            itemLyt.add_widget(
                buildButton(itemNameLyt,
                            createCallbackSelect(key),
                            size_hint=(0.7, 1.0)))
            itemLyt.add_widget(buildText(contract, size_hint=(0.1, 1.0)))
            itemLyt.add_widget(btns)

            newBidBtn.bind(height=itemLyt.setter('height'))

            listLyt.add_widget(itemLyt)

        scrlView.add_widget(listLyt)
        encloseLyt.add_widget(scrlView)
        self.rootLayout.add_widget(encloseLyt)
        self.rootLayout.add_widget(BoxLayout(size_hint=(1.0, 0.05)))
        self.rootLayout.add_widget(newBidBtn)
コード例 #6
0
 def build(self):
     self.rootLayout.add_widget(buildMenu(self.mediator, size_hint=(0.2, 0.1)))
     self.rootLayout.add_widget(self.buildQuestions())
     self.rootLayout.add_widget(
         buildButton('Klaar', lambda i: self.mediator.closeSpecification(), size_hint=(1.0, 0.1)))