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
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)
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)))
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)))
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)
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)))