Exemplo n.º 1
0
 def build(self):
     Window.size = 1280, 200
     slider_layout = BoxLayout(
         orientation='horizontal',
         padding=[40],
     )
     slider_layout.bind(
         on_touch_down=self._on_touch_down,
         on_touch_move=self._on_touch_move,
         on_touch_up=self._on_touch_up,
     )
     buttons = []
     for i in range(32):
         btn = Button(
             text=str(i),
             background_color=(0, 0, 0, 1),
             background_normal='',
             background_down='',
         )
         buttons.append(btn)
         slider_layout.add_widget(btn)
     self._slider_buttons = buttons
     Clock.schedule_interval(self._set_slider_colors, 1 / 60)
     self._set_noactivate()
     return slider_layout
Exemplo n.º 2
0
    def _create_popup(self, instance):
        loc_select = BoxLayout(orientation='vertical',
                               spacing='5dp',
                               size_hint_y=None,
                               height=500)
        loc_select.bind(minimum_height=loc_select.setter('height'))
        self.popup = popup = ScrollablePopup()
        popup.scroll_lay.add_widget(loc_select)
        for loc in sorted(location_manager.locations):
            btn = Button(text=loc, size_hint_y=None, height=50)
            btn.bind(on_release=self._create_options)
            loc_select.add_widget(btn)

        box = BoxLayout(size_hint_y=None,
                        height=dp(50),
                        pos_hint={
                            'y': 0,
                            'x': 0
                        })
        popup.button_lay.add_widget(box)

        btn = Button(text='Done', size_hint_y=None, height=dp(50))
        btn.bind(on_release=self._set_options)
        box.add_widget(btn)

        btn = Button(text='Cancel', size_hint_y=None, height=dp(50))
        btn.bind(on_release=self._dismiss)
        box.add_widget(btn)

        popup.open()
Exemplo n.º 3
0
    def build(self):
        """
        Overridden method from the Kivy library that defines the root widget

        Returns: A widget, in this case a BoxLayout that defines spacing
        """
        parent = BoxLayout(orientation='horizontal', spacing=5, padding=5)

        with parent.canvas.before:
            Color(0.9, 0.9, 0.9,
                  1)  # green; colors range from 0-1 instead of 0-255
            self.rect = Rectangle(size=parent.size, pos=parent.pos)

        def update_rect(instance, value):
            self.rect.pos = instance.pos
            self.rect.size = instance.size

        parent.bind(pos=update_rect, size=update_rect)

        l_control_panel = ControlPanel(size_hint=(0.25, 1))
        l_tile_map = TileMap(l_control_panel,
                             parent.width,
                             parent.height,
                             5,
                             size_hint=(0.75, 1))
        l_control_panel.set_tile_map(l_tile_map)
        parent.add_widget(l_control_panel)
        parent.add_widget(l_tile_map)
        return parent
Exemplo n.º 4
0
class SideMenu(BoxLayout):
    def __init__(self, map, **kwargs):
        super().__init__(**kwargs)
        self.width = 0
        self.scrollView = ScrollView(do_scroll_y=True)
        self.scrollView.clear_widgets()
        self.sideMenuItems = []

        self.boxView = BoxLayout(orientation="vertical", size_hint_y=None)
        self.boxView.bind(minimum_height=self.boxView.setter('height'))

        self.scrollView.add_widget(self.boxView)

        self.add_widget(self.scrollView)

    def close(self):
        self.width = 0

    def open(self):
        self.width = 200

    def up(self):
        for i in range(len(self.sideMenuItems)):
            if(self.sideMenuItems[i].selected and i > 0):
                self.selectByIndex(i-1)
                break

    def down(self):
        for i in range(len(self.sideMenuItems)):
            if(self.sideMenuItems[i].selected and i < len(self.sideMenuItems)):
                self.selectByIndex(i+1)
                break


    def resetColors(self):
        for sideMenuItem in self.sideMenuItems:
            sideMenuItem.resetColor()

    def selectByIndex(self, index):        
        if(len(self.sideMenuItems) > index):
            self.sideMenuItems[index].selectWithCallback()

    def select(self, state):
        for sideMenuItem in self.sideMenuItems:
            if( sideMenuItem.contentState == state):
                sideMenuItem.select()

    def clearItems(self):
        self.boxView.clear_widgets()
        self.sideMenuItems = []

    def addSideMenuItem(self, sideMenuItem):
        self.boxView.add_widget(sideMenuItem)
        self.sideMenuItems.append(sideMenuItem)
        sideMenuItem.setSideMenu(self)

    def clearAndAddSideMenuItems(self, sideMenuItems):
        self.clearItems()
        for sideMenu in sideMenuItems:
            self.addSideMenuItem(sideMenu)
Exemplo n.º 5
0
class TodoList(BoxLayout):

    progression = StringProperty("0/0")

    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.box = BoxLayout(orientation="vertical", size_hint_y=None)
        self.box.bind(minimum_height=self.box.setter("height"))
        self.load_items()
        sc = ScrollView(do_scroll_x=False)
        sc.add_widget(self.box)
        self.add_widget(sc)

    def load_items(self):
        with db_session:
            items = [x.to_dict() for x in db.Item.todo_list()]
        if not items:
            return
        date_en_cours = items[0]["date"]

        self.add_date_label(date_en_cours)
        for it in items:
            if it["date"] != date_en_cours:
                date_en_cours = it["date"]
                self.add_date_label(it["date"])
            self.box.add_widget(TodoItemWidget(**it))

    def add_date_label(self, date):
        self.box.add_widget(DateLabel(text=date.strftime("%A %d %B %Y")))
Exemplo n.º 6
0
class SpeedGrid:
    def __init__(self, pause_callback: callable, speed_updated: callable,
                 reset_callback: callable):
        self.force = {}
        self.speed_updated = speed_updated
        self.grid = BoxLayout(orientation='vertical',
                              spacing=5,
                              size_hint=(0.35, 0.15),
                              height=Window.height * 0.5,
                              pos_hint={
                                  'top': 0.97,
                                  'center_x': 0.8
                              })
        self.grid.bind(height=self.grid.setter('top'))
        self.grid.add_widget(self._add_speed_label_and_input("vx"))
        self.grid.add_widget(self._add_speed_label_and_input("vy"))
        g = GridLayout(cols=2)
        self.pause_btn = Button(text="Start",
                                background_color=(0, 1, 0, 1),
                                pos=(Window.width - 150, 20))
        self.pause_btn.bind(on_release=pause_callback)
        self.reset_btn = Button(text="Reset",
                                background_color=(0, 1, 0, 1),
                                pos=(Window.width - 150, 20))
        self.reset_btn.bind(on_release=reset_callback)
        g.add_widget(self.pause_btn)
        g.add_widget(self.reset_btn)
        self.grid.add_widget(g)

    def _add_speed_label_and_input(self, name: str):
        g = GridLayout(cols=3, padding=[2] * 4)
        label = MyLabel(text=name, bg_color=(1, 0, 0, 1), size_hint_x=0.15)
        g.add_widget(label)
        slider = Slider(orientation='horizontal',
                        value_track=True,
                        value_track_color=[0, 0, 1, 1],
                        min=-100,
                        max=100,
                        step=1,
                        value=0.0,
                        size_hint_x=0.7)
        slider.bind(value=self._on_slider_value_updated)
        setattr(self, name, slider)
        g.add_widget(slider)

        label = MyLabel(text="0.0", bg_color=(1, 0, 0, 1), size_hint_x=0.15)
        setattr(self, f"{name}_value", label)
        g.add_widget(label)
        return g

    def _on_slider_value_updated(self, *args):
        for name in ['vx', 'vy']:
            val = round(getattr(self, name).value, 1)
            print(name, val)
            label = MyLabel(text=str(val),
                            bg_color=(1, 0, 0, 1),
                            size_hint_x=0.15)
            setattr(self, f"{name}_value", label)
        self.speed_updated()
Exemplo n.º 7
0
    def handle_exception(self, exception):
        # app = App.get_running_app()

        # If the current problem is cleared, "accept" the next one:
        if self._current_exception is None:
            # In order to make a new dialog, we get rid of a previous one if any:
            self._error_dialog = None
            # While showing the popup to the user with the error's stacktrace, all subsequent calls to handle_exception() should PASS. It turns out that while in error, that his method is constantly triggered!!
            self._PASS_or_RAISE = ExceptionManager.PASS

            if self._error_dialog is None:
                self._current_exception = exception

                bl1 = BoxLayout(orientation='vertical',
                                spacing="12dp",
                                size_hint_y=None)

                # Make sure the height is such that there is something to scroll.
                bl1.bind(minimum_height=bl1.setter('height'))

                mdlbl1 = MDLabel(
                    text=
                    f"[color={get_hex_from_color((1, 0, 0))}][i]{str(self._current_exception)}[/i][/color]{os.linesep}{os.linesep}"
                    f"[b]-> Our apologies for the inconvenience, please consult the stack trace below & mail screenshot to [email protected]:[/b]"
                    f"{os.linesep}{traceback.format_exc()}",
                    size_hint=(1, None),
                    markup=True)

                # TODO: Rather try the .kv alternative also provided at "https://stackoverflow.com/questions/43666381/wrapping-the-text-of-a-kivy-label" and "https://kivy.org/doc/stable/api-kivy.uix.scrollview.html" that will cleaner and more maintainable
                mdlbl1.bind(
                    width=lambda *args, **kwargs: mdlbl1.setter('text_size')
                    (mdlbl1, (mdlbl1.width, None)),
                    texture_size=lambda *args, **kwargs: mdlbl1.setter(
                        'height')(mdlbl1, mdlbl1.texture_size[1]))

                bl1.add_widget(mdlbl1)

                content_obj = ScrollView(do_scroll_x=False,
                                         do_scroll_y=True,
                                         size_hint=(1, None),
                                         scroll_type=['bars', 'content'])
                content_obj.add_widget(bl1)

                self._error_dialog = CU.show_input_dialog(
                    title=
                    f"{CU.tfs.dic['APP_NAME'].value} Encountered an Error & Needs to Shut Down",
                    content_obj=content_obj,
                    size_hint=(.8, .6),
                    text_button_ok="Quit",
                    text_button_cancel="Proceed @ Own Risk",
                    ok_callback_set=lambda *args, **kwargs:
                    (self.set_raise_or_pass(ExceptionManager.RAISE)),
                    cancel_callback_set=lambda *args, **kwargs:
                    (toast("Fingers crossed"),
                     self.set_raise_or_pass(ExceptionManager.PASS)))

        return self._PASS_or_RAISE
Exemplo n.º 8
0
 def BuildButtonss(self, blist, layout, buttons):
     layout = BoxLayout(orientation='vertical',
                        size_hint_y=None,
                        size_hint_x=1)
     # Make sure the height is such that there is something to scroll.
     layout.bind(minimum_height=layout.setter('height'))
     for i in range(3):
         btn = Button(text=str(i), size_hint_y=None, height=60, width=300)
         layout.add_widget(btn)
     return layout
Exemplo n.º 9
0
class SV(ScrollView):
    def __init__(self, **kwargs):
        super(SV, self).__init__(**kwargs)
        self.layout = BoxLayout(cols=20, size_hint=(None, None))
        for i in range(1000):
            self.layout.add_widget(
                MyButton(text=str(i), size_hint=(None, None)))
        self.layout.bind(minimum_height=self.layout.setter('height'),
                         minimum_width=self.layout.setter('width'))
        self.add_widget(self.layout)
Exemplo n.º 10
0
class AddIten(Popup):
    """Popup to add an iten to the order."""
    def close_btn_touch(self, btn, touch):
        """Close and cancel."""
        if is_left_click(btn, touch):
            self.dismiss()

    def new_iten_btn_touch(self, btn, touch):
        """Add a new iten."""
        if is_left_click(btn, touch):
            self.dismiss()
            NewIten().open()

    def __init__(self, **kwargs):
        """Initialization method with style information."""
        super().__init__(**kwargs)
        self.title = "Adicionar Item"
        self.title_size = 25
        self.title_align = 'center'
        self.size_hint = .7, .7
        self.content = BoxLayout(orientation='vertical')
        self.grid = BoxLayout(orientation="vertical", size_hint_y=None)
        self.grid.bind(minimum_height=self.grid.setter('height'))
        scroll = ScrollView()
        scroll.add_widget(self.grid)
        self.content.add_widget(scroll)
        buttons = BoxLayout(size_hint_y=None, height=60)

        buttons.add_widget(
            BorderedButton(background_color=(1, 0, 0, 1),
                           on_touch_down=self.close_btn_touch,
                           text="Fechar",
                           font_size=25,
                           size_hint_y=None,
                           height=60))

        buttons.add_widget(
            BorderedButton(background_color=(0, 1, 0, 1),
                           text="Novo Item",
                           on_touch_down=self.new_iten_btn_touch,
                           font_size=25,
                           size_hint_y=None,
                           height=60))

        self.content.add_widget(buttons)

    def on_open(self):
        """Get all the itens options."""
        app = App.get_running_app()
        for iten in app.session.query(Iten).all():
            self.grid.add_widget(ItenToAdd(iten))

    def on_dismiss(self):
        """Clear the current itens when closed."""
        self.grid.clear_widgets()
Exemplo n.º 11
0
Arquivo: test.py Projeto: fxyjj/HrAPP
 def manuPage(self):
     layout=BoxLayout(orientation='vertical')
     layout.bind(minimum_height=layout.setter('height'))
     layout.add_widget(Button(text='课程-岗位',size=(20,10)))
     layout.add_widget(Button(text='test_btn2', size=(20, 10)))
     layout.add_widget(Button(text='test_btn3', size=(20, 10)))
     layout.add_widget(Button(text='test_btn4', size=(20, 10)))
     layout.add_widget(Button(text='test_btn5', size=(20, 10)))
     root = ScrollView(do_scroll_x=False,do_scroll_y=True,size_hint=(0.2,0.8),size=(80,800),pos_hint ={'center_x': .12, 'center_y': .45})
     root.add_widget(layout)
     return root
Exemplo n.º 12
0
 def build_labels(self):
     layout = BoxLayout(orientation="vertical", size_hint=(0.5, 1))
     layout.bind(width=self._update_labels)
     
     self.label1 = MyLabel(size_hint=(1,0.2), font_size=24, halign="center", underline=True)
     self.label2 = MyLabel(size_hint=(1,0.8), font_size=18, halign="left")
     
     layout.add_widget(self.label1)
     layout.add_widget(self.label2)
     
     return layout
Exemplo n.º 13
0
 def setup_gui(self):
     Config.set('graphics', 'width', '200')
     Config.set('graphics', 'height', '200')
     Window.size = (500, 300)
     layout = BoxLayout(orientation='vertical')
     layout.bind(minimum_height=layout.setter('height'))
     self.textbox = TextInput(size_hint_y=.1, multiline=False)
     self.textbox.bind(on_text_validate=self.send_message)
     self.label = ScrollableLabel(text='connecting...')
     layout.add_widget(self.label)
     layout.add_widget(self.textbox)
     return layout
    def update_section_layout_from_course(self, course):

        self.pop_up.curr_course = course
        self.pop_up.selector_button.text = course.get_name()

        Functions.clear_layout(self.section_layout)

        grid_layout = GridLayout(cols=len(course.activity_dict.keys()),
                                 pos_hint={
                                     'center_x': .5,
                                     'center_y': .5
                                 })

        for activity_key in course.activity_dict:
            grid_layout.add_widget(
                Label(text=Section.Section.activity_dict[activity_key],
                      size_hint=(1, .1),
                      pos_hint={
                          'center_x': .5,
                          'center_y': .5
                      }))

        for activity_key in course.activity_dict:
            activity_layout = BoxLayout(orientation="vertical",
                                        padding=10,
                                        spacing=10,
                                        size_hint=(1, None),
                                        pos_hint={
                                            'center_x': .5,
                                            'center_y': .5
                                        })
            activity_layout.bind(
                minimum_height=activity_layout.setter('height'))

            activity_layout.add_widget(
                ChoiceLayout(label_text="All", check_box_status=True))
            for section in course.activity_dict[activity_key]:
                activity_layout.add_widget(
                    ChoiceLayout(label_text=section.id,
                                 check_box_status=False))

            scroll_view = ScrollView(
                size_hint=(1, 1),
                pos_hint={
                    'center_x': .5,
                    'center_y': .5
                },
                do_scroll_x=False,
            )
            scroll_view.add_widget(activity_layout)
            grid_layout.add_widget(scroll_view)

        self.section_layout.add_widget(grid_layout)
Exemplo n.º 15
0
 def workout_screen_init(self):
     secondary_layout = BoxLayout(orientation="vertical")
     layout = BoxLayout(orientation="vertical", spacing=10, size_hint_y=3)
     layout.bind(minimum_height=layout.setter('height'))
     secondary_layout.add_widget(
         Label(text="Wybierz rodzaj wysiłku sposród poniższych, lub wprowadź własny:", size_hint_y=None,
               height="40dp"))
     workouts = WorkoutRecycleView()
     workouts.show_workouts()
     secondary_layout.add_widget(workouts)
     secondary_layout.add_widget(
         Button(text="Dodaj własny", size_hint_y=None, height="40dp", on_release=self.add_activity))
     return secondary_layout
Exemplo n.º 16
0
 def build(self):
     self.title = 'Выпали из пула'
     box = BoxLayout(orientation='vertical', size_hint_y=None)
     box.bind(minimum_height=box.setter('height'))
     info = json.loads(str(sys.stdin.read()))
     for i in info:
         for asic in i[0]:
             box.add_widget(
                 Button(text='192.168.{}.{}'.format(i[1], asic),
                        size_hint_y=None,
                        height=40,
                        color=(1, 0, 0, 1)))
     sv = ScrollView()
     sv.add_widget(box)
     return sv
Exemplo n.º 17
0
    def ui_layout(self):
        self.clear_widgets()

        layout = BoxLayout(orientation='vertical')
        scroll = ScrollView(do_scroll_x=False,
                            size_hint=(1, None),
                            size=(Window.width, Window.height))
        scroll_box = BoxLayout(orientation='vertical',
                               size_hint_y=None,
                               padding=(dp(12), dp(60)),
                               spacing=dp(5))
        scroll_box.bind(minimum_height=scroll_box.setter('height'))
        # Add more self.scrollbox.add_widget(MDLabel(text='')) to increase padding
        scroll_box.add_widget(MDLabel(text=' '))
        scroll_box.add_widget(MDLabel(text=' '))
        scroll_box.add_widget(MDLabel(text=' '))
        scroll_box.add_widget(MDLabel(text=' ', size_hint=(1, 5)))

        for contact in self.util.contact_list:
            contact_card = ContactCard(util=self.util,
                                       contact=contact
                                       )
            scroll_box.add_widget(contact_card)

        scroll.add_widget(scroll_box)
        layout.add_widget(scroll)

        # Add floating action button to write messages
        add_contact_anchor = AnchorLayout(anchor_x='right', anchor_y='bottom',
                                          padding=[dp(25), dp(25), dp(25), dp(25)])
        add_contact_btn = MDFloatingActionButton(icon='account-plus', size=[dp(56), dp(56)])
        add_contact_btn.md_bg_color = App.get_running_app().theme_cls.primary_color
        add_contact_btn.theme_text_color = "Custom"
        add_contact_btn.text_color = [1, 1, 1, 1]
        add_contact_btn.bind(on_press=lambda x: self.change_screen('add_contact'))
        add_contact_anchor.add_widget(add_contact_btn)

        toolbar_anchor = AnchorLayout(anchor_x='center', anchor_y='top')
        toolbar = MDToolbar(title='Contacts', anchor_title='center')
        toolbar.md_bg_color = App.get_running_app().theme_cls.primary_color
        toolbar.left_action_items = [['arrow-left', lambda x: self.change_screen('message')]]
        toolbar_anchor.add_widget(toolbar)

        self.add_widget(layout)
        self.add_widget(add_contact_anchor)
        self.add_widget(toolbar_anchor)

        self.do_layout()
Exemplo n.º 18
0
class Kniha(PageLayout):
    def __init__(self, nazev, *args, **kwargs):
        super(Kniha, self).__init__(*args, **kwargs)

        #Vytvoříme obal, který bude vše držet pospolu
        self.obal_layout = BoxLayout(orientation="vertical")

        #Vytvoříme si obal pro knížku
        self.layout = PageLayout(size_hint=(1, .9))
        #Vytvoříme si stránku
        self.strana1 = BoxLayout(orientation="vertical")
        #Přidáme barvu do canvasu
        self.strana1.canvas.before.add(Color(rgba=(0.5, 0, 0.5, 1)))
        #Přidáme čtverec do canvasu
        self.ctverec1 = Rectangle(size=self.strana1.size, pos=self.strana1.pos)
        self.strana1.canvas.before.add(self.ctverec1)
        #Přidáme Label, který se zobrazí na stránce
        self.strana1.add_widget(Label(text=nazev))

        #Vytvoříme si stránku
        self.strana2 = BoxLayout(orientation="vertical")
        #Přidáme barvu do canvasu
        self.strana2.canvas.before.add(Color(rgba=(0.5, 0.5, 0, 1)))
        #Přidáme čtverec do canvasu
        self.ctverec2 = Rectangle(size=self.strana2.size, pos=self.strana2.pos)
        self.strana2.canvas.before.add(self.ctverec2)
        #Přidáme Label, který se zobrazí na stránce
        self.strana2.add_widget(Label(text="Strana"))

        #Přídáme strany do PageLayoutu a ten přídáme do obalu
        self.layout.add_widget(self.strana1)
        self.layout.add_widget(self.strana2)
        self.obal_layout.add_widget(self.layout)

        #ZDE BUDE OVLÁDACÍ PANEL

        self.add_widget(self.obal_layout)

        self.strana1.bind(size=self.update, pos=self.update)
        self.strana2.bind(size=self.update, pos=self.update)

    def update(self, *args):
        self.ctverec1.size = self.size
        self.ctverec1.pos = self.strana1.pos

        self.ctverec2.size = self.size
        self.ctverec2.pos = self.strana2.pos
Exemplo n.º 19
0
    def __init__(self, title, labels_text, parent):
        root_layout = BoxLayout(orientation="vertical", padding="10dp")
        layout = BoxLayout(orientation="vertical", spacing=10, size_hint_y=None)
        layout.bind(minimum_height=layout.setter('height'))
        for item in labels_text:
            label = Label(text=item)
            label.size_hint = (1, None)
            label.height = "50dp"
            layout.add_widget(label)
        root = ScrollView(size_hint=(1, 1), size=(Window.width, Window.height))
        root.add_widget(layout)
        root_layout.add_widget(root)
        root_layout.add_widget(Button(text="Zamknij okno", size_hint_y=0.1,
                                      on_release=lambda *args: parent.close_info()))

        self.popup = Popup(title=title,
                           content=root_layout, size_hint=(0.9, 0.7))
Exemplo n.º 20
0
class kar(Screen):
    def __init__(self):
        super(kar, self).__init__()
        self.name = 'all'
        self.kw = BoxLayout(orientation='vertical')
        self.k = BoxLayout()
        self.k1 = BoxLayout(padding=10, orientation='vertical', spacing=10)
        l = Label(text='[b]Hello, Welcome to Cezar 2020\b',
                  color=[0, 0, 0, 1],
                  markup=True)
        d = MDRaisedButton(text='login',
                           size_hint=[1, 0.5],
                           on_press=lambda x: self.reg(1))
        d1 = MDRaisedButton(text='register',
                            size_hint=[1, 0.5],
                            on_press=lambda x: self.reg(2))
        self.k1.add_widget(l)
        self.k1.add_widget(d)
        self.k1.add_widget(d1)
        self.k.bind(size=self._update1, pos=self._update1)
        with self.k.canvas.before:
            Color(rgb=(1, 1, 1))
            self.rect = Rectangle(
                source='cezar.png',
                pos=[0, 0],
                size=[self.k.size[0] / 2, self.k.size[1] / 2])
        self.kw.add_widget(self.k)
        self.kw.add_widget(self.k1)
        self.add_widget(self.kw)

    #return MDRaisedButton(text='datta',pos_hint={'center_x':0.5,'center_y':0.4},elevation_normal=2,size_hint=[1,0.1])
        #return Button(text='datta',pos_hint={'center_x':0.5,'center_y':0.4})

    def _update1(self, instance, value):
        self.rect.pos = instance.pos
        self.rect.size = instance.size

    def reg(self, i):
        if (i == 2):
            a = App.get_running_app()
            a.path_back.append('all')
            self.manager.current = 'rege'
        else:
            a = App.get_running_app()
            a.path_back.append('all')
            self.manager.current = 'logi'
Exemplo n.º 21
0
class IssueList(Screen):

    def __init__(self, **kwargs):
        super().__init__(**kwargs)

        self.kc = KivyConfig()
        fcd = FiveCallsData()

        self.layout = BoxLayout(
                orientation='vertical',
                size_hint_y=None,
        )
        self.layout.bind(minimum_height=self.layout.setter('height'))

        self.t = FCToolbar()
        self.t.back_label = '< Welcome'
        self.layout.add_widget(self.t)

        top_label = FCHeaderLabel(text='Top Issues')
        self.layout.add_widget(top_label)

        for i in fcd.active_issues:
            btn = FCIssueButton(issue=i)
            btn.bind(on_press=button_callback)

            self.layout.add_widget(btn)

        # for cat in fcd.categories:
        #     cat_label = FCListLabel(text=cat, bold=True)
        #     self.layout.add_widget(cat_label)
        #
        #     issues = fcd.categories[cat]
        #
        #     for i in issues:
        #         if i.inactive:
        #             btn = FCIssueButton(text=i.name, issue=i)
        #             btn.bind(on_press=button_callback)
        #
        #             self.layout.add_widget(btn)

        self.scrollview = ScrollView(
                do_scroll_x=False,
        )
        self.scrollview.add_widget(self.layout)
        self.add_widget(self.scrollview)
Exemplo n.º 22
0
    def build(self):
        #Window.size = (300, 400)

        def update(instance):
            if self.lan == 'pl':
                t_ru.text = self.translator(text=t_pl.text, org_lan='pl', trans_lan='ru')
                t_en.text = self.translator(text=t_pl.text, org_lan='pl', trans_lan='en')
            elif self.lan == 'ru':
                t_pl.text = self.translator(text=t_ru.text, org_lan='ru', trans_lan='pl')
                t_en.text = self.translator(text=t_ru.text, org_lan='ru', trans_lan='en')
            elif self.lan == 'en':
                t_pl.text = self.translator(text=t_en.text, org_lan='en', trans_lan='pl')
                t_ru.text = self.translator(text=t_en.text, org_lan='en', trans_lan='ru')

        def update_lan(instance, value):
            coordinate_y = value.pos[1]
            height = Window.size[1]
            if coordinate_y > height*3/4 and coordinate_y <= height:
                self.lan = 'pl'
            elif coordinate_y > height/2 and coordinate_y <= height*3/4:
                self.lan = 'ru'
            elif coordinate_y > height/4 and coordinate_y <= height/2:
                self.lan = 'en'

        b = BoxLayout(orientation='vertical')
        translate_button = Button(text='Translate')

        t_pl = TextInput(text="jakiś tekst",
                         font_size=self.f_size)
        t_ru = TextInput(text=self.translator(text=t_pl.text, org_lan='pl', trans_lan='ru'),
                         font_size=self.f_size)
        t_en = TextInput(text=self.translator(text=t_pl.text, org_lan='pl', trans_lan='en'),
                         font_size=self.f_size)

        b.bind(on_touch_down=update_lan)

        translate_button.bind(on_press=update)

        b.add_widget(t_pl)
        b.add_widget(t_ru)
        b.add_widget(t_en)
        b.add_widget(translate_button)

        return b
Exemplo n.º 23
0
    def _create_sub_popup(self, instance, loc):
        content = BoxLayout(orientation='vertical',
                            spacing='5dp',
                            size_hint_y=None,
                            height=500)
        content.bind(minimum_height=content.setter('height'))
        self.popup = popup = ScrollablePopup()
        config = ConfigParser()
        config.read('mysteryonline.ini')
        fav_list = str(config.get('other', 'fav_subloc').strip('[]'))
        fav_list = fav_list.replace("'", "")
        fav_list = fav_list.split(',')
        fav_list = [x.strip() for x in fav_list]
        for option in sorted(self.options):

            state = 'down' if option in self.value and option in fav_list else 'normal'
            btn = ToggleButton(text=option,
                               state=state,
                               size_hint_y=None,
                               height=50)
            self.buttons.append(btn)
            for subloc in loc.sublocations:
                if btn.text == loc.name + '_' + subloc:
                    content.add_widget(btn)

        popup.scroll_lay.add_widget(content)

        box = BoxLayout(size_hint_y=None,
                        height=dp(50),
                        pos_hint={
                            'y': 0,
                            'x': 0
                        })
        popup.button_lay.add_widget(box)

        btn = Button(text='Done', size_hint_y=None, height=dp(50))
        btn.bind(on_release=self._set_options)
        box.add_widget(btn)

        btn = Button(text='Cancel', size_hint_y=None, height=dp(50))
        btn.bind(on_release=self._dismiss)
        box.add_widget(btn)

        popup.open()
Exemplo n.º 24
0
    def open(self, selection):
        path = "".join(selection)

        self.path_file = path
        arq_dic = open(path, 'rb')
        dic_lang_load = pickle.load(arq_dic)
        arq_dic.close()

        list_keys = dic_lang_load.keys()

        box_keys = BoxLayout(orientation='vertical')
        box_keys.size_hint_y = None
        box_keys.bind(minimum_height=box_keys.setter('height'))
        box_keys.id = 'box_keys'
        self.ids['box_keys'] = box_keys

        scroll = ScrollView()

        global i
        for key in list_keys:

            box_keys_trad = BoxLayout(size_hint_y=None, height=30)
            trad = dic_lang_load[key]

            tex_in_key = TextInput(text=str(key))
            tex_in_key.multiline = False
            tex_in_key.id = 'text_key_' + str(self.i)
            self.ids['text_key_' + str(self.i)] = tex_in_key

            tex_in_trad = TextInput(text=str(trad))
            tex_in_trad.multiline = False
            tex_in_trad.id = 'text_trad_' + str(self.i)
            self.ids['text_trad_' + str(self.i)] = tex_in_trad

            box_keys_trad.add_widget(tex_in_key)
            box_keys_trad.add_widget(tex_in_trad)

            box_keys.add_widget(box_keys_trad)
            self.i += 1

        scroll.add_widget(box_keys)
        self.ids.screen_dic.add_widget(scroll)
Exemplo n.º 25
0
class IssueView(Screen):

    def __init__(self, issue: Issue = None, **kwargs):
        super().__init__(**kwargs)

        self.issue = issue
        self.kc = KivyConfig()

        self.layout = BoxLayout(
                orientation='vertical',
                size_hint_y=None,
        )
        self.layout.bind(minimum_height=self.layout.setter('height'))
        self.t = FCToolbar()
        self.t.back_label = '< Issues'
        self.layout.add_widget(self.t)

        hl = FCHeaderLabel(text=issue.name)
        hl.font_size = sp(30)
        self.layout.add_widget(hl)

        c_label = FCCategoryLabel()
        c_label.text = self.issue.categories[0]['name'].upper()
        self.layout.add_widget(c_label)

        # newline added to push 'calls' down a bit
        self.layout.add_widget(FCSectionLabelWithBorder(text="\nCalls"))

        for c in self.issue.contacts:
            c_button = FCContactButtonWithBorder(issue=self.issue, contact=c)
            c_button.bind(on_press=button_callback)
            self.layout.add_widget(c_button)

        self.layout.add_widget(FCSectionLabel(text="Background"))

        self.layout.add_widget(FCTextLabel(text=issue.reason))

        self.scrollview = ScrollView(
                do_scroll_x=False,
        )
        self.scrollview.add_widget(self.layout)
        self.add_widget(self.scrollview)
Exemplo n.º 26
0
    def __init__(self, title, labels_text, buttons=()):
        self.screen_names = ["workout", "meal", "water", "hunger", "home"]
        root_layout = BoxLayout(orientation="vertical")
        self.screen_manager = ScreenManager()
        """Home Popup Screen"""
        home_screen = Screen(name=self.screen_names[-1])
        secondary_layout = BoxLayout(orientation="vertical")
        layout = BoxLayout(orientation="vertical", spacing=10, size_hint_y=None)
        layout.bind(minimum_height=layout.setter('height'))
        for item in labels_text:
            label = Label(text=item)
            label.size_hint = (1, None)
            label.height = 80
            layout.add_widget(label)
        buttons = ("Wysiłek fizyczny", "Posiłek", "Woda", "Głód")
        button0 = Button(text=buttons[0], on_release=lambda *args: self.change_screen(self.screen_names[0]))
        button1 = Button(text=buttons[1], on_release=lambda *args: self.change_screen(self.screen_names[1]))
        button2 = Button(text=buttons[2], on_release=lambda *args: self.open_water_popup())
        button3 = Button(text=buttons[3], on_release=lambda *args: self.hunger())
        for button in [button0, button1, button2, button3]:
            button.size_hint_y = None
            button.height = "60dp"
            layout.add_widget(button)
        root = ScrollView(size_hint=(1, 1), size=(Window.width, Window.height))
        root.add_widget(layout)
        secondary_layout.add_widget(root)
        home_screen.add_widget(secondary_layout)
        self.screen_manager.add_widget(home_screen)
        root_layout.add_widget(self.screen_manager)
        root_layout.add_widget(Button(text="Zamknij okno", size_hint_y=0.1,
                                      on_release=lambda *args: UserHub.close_info()))
        """Workout Screen"""
        workout_screen = Screen(name=self.screen_names[0])
        workout_screen.add_widget(self.workout_screen_init())
        self.screen_manager.add_widget(workout_screen)

        meal_screen = Screen(name=self.screen_names[1])
        meal_screen.add_widget(MealScreen())
        self.screen_manager.add_widget(meal_screen)

        self.popup = Popup(title=title,
                           content=root_layout, size_hint=(0.9, 0.9))
Exemplo n.º 27
0
class Run(Screen):
    def __init__(self, tarefas, **kwargs):
        super(Run, self).__init__(**kwargs)

        self.scroll_view = ScrollView()
        self.scroll_view.orientation = "vertical"

        self.box = BoxLayout()
        self.scroll_view.add_widget(self.box)

        self.box.orientation = "vertical"
        self.box.size_hint_y = None
        self.box.bind(minimum_height=self.box.setter("height"))

        for tarefa in tarefas:
            # self.box.add_widget(Button(text = tarefa, font_size = 30, size_hint_y = None, height = 200))
            self.box.add_widget(
                ContactBox(tarefa, size_hint_y=None, width=402, height=80))

        self.add_widget(self.scroll_view)
Exemplo n.º 28
0
 def build (self):
     parent = BoxLayout ()
     def print_move (self, touch):
         print touch.x, ', ', touch.y
     parent.bind (on_touch_move=print_move)
     self.btnIndex = 1
     self.c = CircularLayout ()
     editlayout = BoxLayout (orientation='vertical', size_hint = (0.2, 1))
     addwidgetbutton = Button (text='Add buttons')
     addwidgetbutton.bind (on_press=self.add_widget_action)
     rotateleftbutton = Button (text='Rotate Left')
     rotateleftbutton.bind (on_press=self.rotate_left_action)
     rotaterightbutton = Button (text='Rotate right')
     rotaterightbutton.bind (on_press=self.rotate_right_action)
     editlayout.add_widget (addwidgetbutton)
     editlayout.add_widget (rotateleftbutton)
     editlayout.add_widget (rotaterightbutton)
     parent.add_widget (self.c)
     parent.add_widget (editlayout)
     return parent
Exemplo n.º 29
0
    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.force = {}
        self.add_widget(StaticBackground())
        self._description = CoreMarkupLabel(text="[size=50][color=#FFFFFF]Earth Orbit Game[/color][/size]",
                                            markup=True, multiline=False)
        self._description.refresh()
        with self.canvas:
            w, h = self._description.texture.size
            self._text_label = Rectangle(texture=self._description.texture,
                                         pos=(40, Window.height - 2.5 * h),
                                         size=self._description.texture.size)
        self.bind(pos=self._update_rect, size=self._update_rect)

        grid = BoxLayout(orientation='vertical', spacing=10, size_hint=(0.2, 0.2),
                         height=Window.height, pos_hint={'top': 0.35, 'center_x': 0.8})
        grid.bind(height=grid.setter('top'))
        btn = Button(text="Start", background_color=(0, 1, 0, 1), font_size=40)
        btn.bind(on_release=self._on_start_clicked)
        grid.add_widget(btn)
        self.add_widget(grid)
Exemplo n.º 30
0
class MyScrollView(ScrollView):
    def __init__(self, **kwargs):
        super(MyScrollView, self).__init__(**kwargs)
        self.layout = BoxLayout(orientation="vertical",
                                pos_hint={
                                    "center_x": 0.2,
                                    "center_y": 0.5
                                },
                                size_hint=(None, None),
                                spacing=30,
                                width=300)
        self.layout.bind(minimum_height=self.layout.setter("height"))
        self.add_widget(self.layout)

    def msg_layout(self, username, content):

        #MainLayout___________________________________________________
        self.msglayout = BoxLayout(orientation="vertical",
                                   size_hint=(None, None),
                                   pos_hint={"center_x": 0.7},
                                   spacing=5,
                                   width=300)
        self.msglayout.bind(minimum_height=self.msglayout.setter("height"))

        #UsernameLayout_______________________________________________
        a = Label(text=username,
                  size_hint_y=None,
                  color=H("ff0000"),
                  bold=True)
        a.bind(width=lambda s, w: s.setter("text_size")(s, (w, None)))
        a.bind(texture_size=a.setter("size"))
        self.msglayout.add_widget(a)

        #MessageContentLayout_________________________________________
        l = Label(text=content, size_hint_y=None)
        l.bind(width=lambda s, w: s.setter("text_size")(s, (w, None)))
        l.bind(texture_size=l.setter("size"))
        self.msglayout.add_widget(l)

        self.layout.add_widget(self.msglayout)
Exemplo n.º 31
0
    def __init__(self, **kwargs):
        super(MenuScreen, self).__init__(**kwargs)
        self.name = 'screen_main'

        self.base_layout = FloatLayout()
        self.add_widget(self.base_layout)
        scroll = RecycleView(size=(400, 400),
                             size_hint=(None, None),
                             center=Window.center)
        scroll.background = (1, 1, 1)
        self.base_layout.add_widget(scroll)
        scroll_box = BoxLayout(orientation='vertical',
                               spacing=2,
                               padding=10,
                               size_hint_y=None)
        scroll_box.bind(minimum_height=scroll_box.setter('height'))
        scroll.add_widget(scroll_box)

        self.load_data()

        for key, item in list(self.data.items()):
            l = Button(text=item['name'], size=(400, 30), size_hint=(1, None))
            scroll_box.add_widget(l)
Exemplo n.º 32
0
    def make_layout(self):
        layout = BoxLayout(orientation="vertical")
        
        settingslayout = BoxLayout(orientation="horizontal")
        left_settings = BoxLayout(orientation="horizontal")
        settingslayout.add_widget(left_settings)
        
        
        on_off_layout = BoxLayout(orientation="vertical")
        self.on_off_layout = on_off_layout
        
        button_heating = Button(background_normal="pic/flame_off.png", background_down="pic/flame_pressed.png",allow_stretch=False, size_hint=(0.7, 1), border=[0,0,0,0])
        button_heating.bind(on_press=self.on_button_heating)
        self.button_heating = button_heating
        
        
        
        button_pump = Button(background_normal="pic/pump_off.png", background_down="pic/pump_pressed.png",allow_stretch=False, size_hint=(0.7, 1), border=[0,0,0,0])
        button_pump.bind(on_press=self.on_button_pump)
        self.button_pump = button_pump
        
        
        temperatur_panel = BoxLayout(orientation="vertical")
        
        oil_temp_label = Label(text = "0 Grad", color=[0,0,0,1], font_size = 30)
        self.oil_temp_label = oil_temp_label
        temperatur_panel.add_widget(oil_temp_label)
        
        water_temp_label = Label(text = "0 Grad", color=[0,0,0,1], font_size = 30)
        self.water_temp_label = water_temp_label
        temperatur_panel.add_widget(water_temp_label)
        
        time_label = Label(text = "0 min", color=[0,0,0,1], font_size = 30)
        self.time_label = time_label
        temperatur_panel.add_widget(time_label)
        
        heating_image = Image(source = 'pic/heating_off.png')
        self.heating_image = heating_image
        temperatur_panel.add_widget(heating_image)
        
        
        names_panel = BoxLayout(orientation="vertical")
        name_oil = Label(text = "Öl:", color=[0,0,0,1], font_size = 30)
        names_panel.add_widget(name_oil)
        name_water = Label(text = "Wasser:", color=[0,0,0,1], font_size = 30)
        names_panel.add_widget(name_water)
        name_time = Label(text = "Zeit:", color=[0,0,0,1], font_size = 30)
        names_panel.add_widget(name_time)
        name_heating = Label(text = "Heizen:", color=[0,0,0,1], font_size = 30)
        names_panel.add_widget(name_heating)
        
        
        
        set_value_panel = BoxLayout(orientation="vertical")
        set_value_oil_panel = BoxLayout(orientation="horizontal")
        set_value_water_panel = BoxLayout(orientation="horizontal")
        set_delta_heating_panel = BoxLayout(orientation="horizontal")
        set_delta_cooling_panel = BoxLayout(orientation="horizontal")
        set_value_panel.add_widget(set_value_oil_panel)
        set_value_panel.add_widget(set_value_water_panel)
        set_value_panel.add_widget(set_delta_heating_panel)
        set_value_panel.add_widget(set_delta_cooling_panel)
        
        
        set_oil_temp_slider = Slider(min = 0, max = 150, value = 50)
        self.set_oil_temp_slider = set_oil_temp_slider
        set_oil_temp_slider.bind(value=self.on_set_oil_temp_slider)
        set_value_oil_panel.add_widget(set_oil_temp_slider)
        set_oil_temp_label = Label(text = "50 °C", color=[0,0,0,1], font_size = 30, size_hint=(None,1))
        self.set_oil_temp_label = set_oil_temp_label
        set_value_oil_panel.add_widget(set_oil_temp_label)
        
        set_water_temp_slider = Slider(min = 0, max = 50, value = 10)
        self.set_water_temp_slider = set_water_temp_slider
        set_water_temp_slider.bind(value=self.on_set_water_temp_slider)
        set_value_water_panel.add_widget(set_water_temp_slider)
        set_water_temp_label = Label(text = "10 °C", color=[0,0,0,1], font_size = 30, size_hint=(None,1))
        self.set_water_temp_label = set_water_temp_label
        set_value_water_panel.add_widget(set_water_temp_label)
        
        name_delta_heating_label = Label(text = u"\u0394"+"Th", color=[0,0,0,1], font_size = 30, size_hint=(None,1))
        set_delta_heating_panel.add_widget(name_delta_heating_label)
        set_delta_heating_slider = Slider(min = 0, max = 10, value = 5)
        self.set_delta_heating_slider = set_delta_heating_slider
        set_delta_heating_slider.bind(value=self.on_set_delta_heating_slider)
        set_delta_heating_panel.add_widget(set_delta_heating_slider)
        set_delta_heating_label = Label(text = "5 °C", color=[0,0,0,1], font_size = 30, size_hint=(None,1))
        self.set_delta_heating_label = set_delta_heating_label
        set_delta_heating_panel.add_widget(set_delta_heating_label)
        
        name_delta_cooling_label = Label(text = u"\u0394"+"Tk", color=[0,0,0,1], font_size = 30, size_hint=(None,1))
        set_delta_cooling_panel.add_widget(name_delta_cooling_label)
        set_delta_cooling_slider = Slider(min = 0, max = 10, value = 5)
        self.set_delta_cooling_slider = set_delta_cooling_slider
        set_delta_cooling_slider.bind(value=self.on_set_delta_cooling_slider)
        set_delta_cooling_panel.add_widget(set_delta_cooling_slider)
        set_delta_cooling_label = Label(text = "5 °C", color=[0,0,0,1], font_size = 30, size_hint=(None,1))
        self.set_delta_cooling_label = set_delta_cooling_label
        set_delta_cooling_panel.add_widget(set_delta_cooling_label)
        
        
        
        
        left_settings.add_widget(on_off_layout)
        left_settings.add_widget(names_panel)
        left_settings.add_widget(temperatur_panel)
        settingslayout.add_widget(set_value_panel)
        on_off_layout.add_widget(button_heating)
        on_off_layout.add_widget(button_pump)
        layout.add_widget(settingslayout)
        
        
        
        with layout.canvas.before:
            Color(1, 1, 1, 1) 
            layout.rect = Rectangle(size=layout.size,
                           pos=layout.pos)
            
        layout.bind(pos=self.update_rect, size=self.update_rect)
        
        graph_theme = {
            'label_options':{
                'color':rgb('444444'), # color of tick labels and titles
                'bold':True}, 
            'background_color':rgb('ffffff'), # back ground color of canvas
            'tick_color':rgb('808080'), # ticks and grid
            'border_color':rgb('808080')}
        graph_oil = Graph( 
            xlabel="Zeit [s]",
            ylabel="Öltemperatur [°C]", 
            x_ticks_major=1, 
            y_ticks_major=1, 
            y_grid_label=True, 
            x_grid_label=True, 
            padding=5, 
            xlog=False, 
            ylog=False, 
            x_grid=True, 
            y_grid=True, 
            xmin=0, 
            xmax=10, 
            **graph_theme)
        self.graph_oil = graph_oil
        
        graph_water = Graph(
            xlabel="Zeit [s]", 
            ylabel="Wassertemperatur [°C]", 
            x_ticks_major=1, 
            y_ticks_major=10, 
            y_grid_label=True, 
            x_grid_label=True, 
            padding=5, 
            xlog=False, 
            ylog=False, 
            x_grid=True, 
            y_grid=True, 
            xmin=0, 
            xmax=10, 
            **graph_theme)
        self.graph_water = graph_water
        
        plot_oil = SmoothLinePlot(color=rgb('ff0000'))
        self.plot_oil = plot_oil
        
        plot_oil_set = SmoothLinePlot(color=rgb('00ff00'))
        self.plot_oil_set = plot_oil_set
        
        plot_water = SmoothLinePlot(color=rgb('0000ff'))
        self.plot_water = plot_water
        plot_water.points = [(x, x * x) for x in range(0, 11)]
        graph_oil.add_plot(plot_oil)
        graph_oil.add_plot(plot_oil_set)
        graph_water.add_plot(plot_water)
        layout.add_widget(graph_oil)
        layout.add_widget(graph_water)
        
        

        
        
        
        
        return layout
Exemplo n.º 33
0
class LeafScreen(Screen):
  def on_pre_enter(self):
    self.clear_widgets()
    
    self.leafLayout = BoxLayout(orientation = 'vertical')
    
    self.readMode()
    #self.editMode()

    self.add_widget(self.leafLayout)

    self.win = Window
    self.win.bind(on_keyboard=self.keyboardHandler)

    self.leafLayout.bind(
          size=self._update_rect,
          pos=self._update_rect)
    with self.leafLayout.canvas.before:
      Color(0.5, 0.8, 1, 0.9) 
      self.rect = Rectangle(
                  size=self.leafLayout.size,
                  pos=self.leafLayout.pos)
  def _update_rect(self, instance, value):
    self.rect.pos = instance.pos
    self.rect.size = instance.size

  def on_pre_leave(self):
    self.win.unbind(on_keyboard=self.keyboardHandler)

  def keyboardHandler(self, window, keycode1, keycode2, text, modifiers):
    if keycode1 == systemBtnBack:
      self.back()
      return True
    return False

  def readMode(self, *args):
    self.leafLayout.clear_widgets()
    # top
    btnBack = Button(text='Back', size_hint_x=0.1)
    capture = Label(text=tree.curItem().name, size_hint_x=0.8, color = color['lblPath'])
    btnEdit = Button(text='Edit', size_hint_x=0.1)
    topLayout = BoxLayout(size_hint_y = 0.1)
    topLayout.add_widget(btnBack)
    topLayout.add_widget(capture)
    topLayout.add_widget(btnEdit)
    self.leafLayout.add_widget(topLayout) 
    btnBack.bind(on_press=self.back)

    # Content
    self.textField = TextInputForScroll(
        size_hint_y=None,
        text=tree.curItem().read(), 
        background_color = color['readLeaf'],
        readonly = True,
        focus = True)
    self.textField.on_text()
    textFieldScroll = ScrollView( bar_width = 10)
    textFieldScroll.add_widget(self.textField)

    self.leafLayout.add_widget(textFieldScroll) 

    btnEdit.bind(on_release=self.editMode)

  def editMode(self, *args):
    self.leafLayout.clear_widgets()
    # top
    btnBack = Button(text='Back', size_hint_x=0.1)
    capture = Label(text=tree.curItem().name, size_hint_x=0.8, color = color['lblPath'])
    btnSave = Button(text='Save', size_hint_x=0.1)
    topLayout = BoxLayout(size_hint_y = 0.1)
    topLayout.add_widget(btnBack)
    topLayout.add_widget(capture)
    topLayout.add_widget(btnSave)
    self.leafLayout.add_widget(topLayout) 
    btnBack.bind(on_press=self.back)

    # Content
    self.textField = TextInput(
        text=tree.curItem().read(), 
        background_color = color['editLeaf'],
        focus = True)
    self.leafLayout.add_widget(self.textField)

    btnSave.bind(on_release=self.readMode,
                on_press=self.save)

  def save(self, *args):  
    tree.curItem().write(self.textField.text)

  def back(self, *args):
    if sm.current == "leafScreen" :
      self.save()
      if not tree.reachRoot():
        tree.down()
        sm.transition = SlideTransition(direction='right')
        sm.current = 'mainScreen'
Exemplo n.º 34
0
    def build(self):
        
        self.sm = ScreenManager(transition=SlideTransition())
        layout = BoxLayout(padding=20, orientation=self.orient, spacing=20)

        self.graphScreen = GraphScreen()

        self.console = Console(app=app)
        
        self.sm.switch_to(self.console)
        
        self.graph = self.graphScreen.getGraph();
        
        layout.add_widget(self.sm)

        menuWrapper = BoxLayout()
        
        for i in range(0,3):            
            #pragma mark boczne menu z lewej
            if(i==0):
                menuInside = BoxLayout(orientation="vertical")
                self.meuCenterWrapper = menuInside;
                self.buildLeftMenu(menuInside)
                menuWrapper.add_widget(menuInside)
                
            #srodkowa czesc
            if(i==1):
                scrollView = ScrollView(bar_margin=10, bar_color=[1,1,1,1])
                #pragma mark padding narzucony w srodkowym menu
                menuInside = GridLayout(cols=4, row_default_height=40,size_hint_y=None,padding=[50,0,0,0])
                menuInside.bind(minimum_height=menuInside.setter('height'))
                self.menuCenterWrapper = menuInside;
                self.buildCenterMenu(menuInside)
                scrollView.add_widget(menuInside)
                menuWrapper.add_widget(scrollView)
                    
            #menu po prawej
            if(i==2):
                menuInside = BoxLayout(orientation="vertical")
                gridWrapper = GridLayout(cols=2)
                #liczba przedzialow
                s = Slider(min=0, max=10, value=5, step=1)
                s.value = 10
                numberOfIntervalsBaseString = Constant("Liczba przedzialow:",1)
                textNumberOfIntervalsBaseString = "{0} {1}".format(numberOfIntervalsBaseString.value, s.value)
                l = Label(text=textNumberOfIntervalsBaseString, halign="center")
                gridWrapper.add_widget(l)
                s.bind(value=partial(self.sliderValueChanged,l,numberOfIntervalsBaseString))
                gridWrapper.add_widget(s)
                
                #wartosc min delklaracja
                minSlider = Slider(min=0, max=100, value=5, step=1)
                #wartosc max deklaracja
                maxSlider = Slider(min=0, max=100, value=5, step=1)
                
                #wartosc min cd
                minSlider.value = 0
                textMinBaseString = Constant("Wartosc min\nuzytkownika:",2)
                textMinString = "{0} {1}".format(textMinBaseString.value, minSlider.value)
                min = Label(text=textMinString, halign="center")
                gridWrapper.add_widget(min)
                minSlider.bind(value=partial(self.sliderValueChanged,min,textMinBaseString, maxSlider))
                gridWrapper.add_widget(minSlider)
                
                #wartosc max cd
                maxSlider.value = 100
                textMaxBaseString = Constant("Wartosc max\nuzytkownika:",3)
                textMaxString = "{0} {1}".format(textMaxBaseString.value, maxSlider.value)
                max = Label(text=textMaxString, halign="center")
                gridWrapper.add_widget(max)
                maxSlider.bind(value=partial(self.sliderValueChanged,max,textMaxBaseString, minSlider))
                gridWrapper.add_widget(maxSlider)
                
                #skok dla przedzialu
                s = Slider(min=0, max=10, value=5, step=.1)
                s.value = 0
                textJumpBaseString = Constant("Szerokosc przedzialu:",4)
                textJump = "{0} {1}".format(textJumpBaseString.value, s.value_normalized)
                j = Label(text=textJump, halign="left")
                s.bind(value=partial(self.sliderValueChanged,j,textJumpBaseString))
                gridWrapper.add_widget(j)
                gridWrapper.add_widget(s)
                
                # Normalizacja zmiennych rzeczywistych ( (wartosc-srednia)/odchylenie_standardowe)
                b = Button(text="Normalizacja danych", on_press=self.buttonCallback)
                gridWrapper.add_widget(b)
                
                
                z = Button(text="Zamiana danych tekstowych\nna numeryczne",  halign='center')
                gridWrapper.add_widget(z)

                menuInside.add_widget(gridWrapper);
                menuWrapper.add_widget(menuInside)
            
        layout.add_widget(menuWrapper)
        return layout
Exemplo n.º 35
0
class SelecSitePath(BoxLayout):

    # Lang
    bt_add_site = lang['Add_Site']
    bt_remove_site = lang['Remove_Site']
    bt_automatically = lang['Automatically']
    bt_help = lang['Help']
    bt_next = lang['Next']
    bt_cancel = lang['Cancel']
    lb_select_the_sites = lang['Select_the_sites']
    lb_site = lang['Site']
    lb_equipment = lang['Equipment']
    lb_path = lang['Path']



    # Function
    next = ObjectProperty(None)
    cancel = ObjectProperty(None)

    list_sites = []


    def __init__(self, **kwargs):
        super(SelecSitePath, self).__init__(**kwargs)

        self.box_lay_scroll = BoxLayout()
        self.box_lay_scroll.orientation = 'vertical'
        self.box_lay_scroll.size_hint_y = None
        self.box_lay_scroll.bind(minimum_height=self.box_lay_scroll.setter('height'))

        self.scroll_view = ScrollView()

        self.scroll_view.add_widget(self.box_lay_scroll)
        self.ids.lay_box_sites.add_widget(self.scroll_view)

        self.popup_new_site = Popup()
        self.popup_new_site.title = lang['New_Site']
        self.popup_new_site.size_hint = None, None
        self.popup_new_site.size = 300, 160
        self.popup_new_site.title_size = 16
        self.popup_new_site.content = PopupNewSite(make_new_site=self.add_site)

    def open_pop_new_site(self):
        self.popup_new_site.open()

    def add_site(self, site):
        self.popup_new_site.dismiss()

        new_site = SiteBoxSelecTS()
        new_site.name = site
        new_site.open_popup_search_path = new_site.open_pop_search_path

        lis_check_equipments = [self.popup_new_site.content.ids.check_ADU06,
                               self.popup_new_site.content.ids.check_ADU07,
                               self.popup_new_site.content.ids.check_Lims]

        if lis_check_equipments[0].active == True:
            new_site.equipment = 'ADU06'

        elif lis_check_equipments[1].active == True:
            new_site.equipment = 'ADU07'

        elif lis_check_equipments[2].active == True:
            new_site.equipment = 'Lims'

        box_site = new_site.add_box_info()
        box_site.id = site
        self.ids[site] = box_site

        self.box_lay_scroll.add_widget(box_site)
        new_site.save_site(self.list_sites, new_site)


    key_check = True
    def remove_site(self):
        print(self.list_sites)
        self.ids.bt_remove_site.text = lang['Finish_Remove']
        for site in self.list_sites:
            site.box_check_remove.width = 25

        self.key_check_new = self.key_check
        self.key_check = False

        if self.key_check_new == self.key_check:
            self.finish_remove()
            self.key_check = True
        self.key_check_new = False

    def finish_remove(self):

        for site in self.list_sites:
            if site.check_remove.active == True:

                print(site.name)
                self.box_lay_scroll.remove_widget(self.ids[site.name])
                self.list_sites.remove(site)

        for site in self.list_sites:
            site.box_check_remove.width = 0

        for i in self.list_sites:
            print(i.name)
        self.ids.bt_remove_site.text = lang['Remove_Site']

    def auto_fill(self):
        self.popup_auto_fill_site = Popup()
        self.window_popup_auto_fill_site = SelectAutoFillSites(open_search_path_all_site=self.open_pop_search_auto_fill_site)
        self.window_popup_auto_fill_site.cancel = self.cancel_pop_search_auto_fill_site
        self.window_popup_auto_fill_site.auto_fill = self.auto_fill_box_scroll
        self.popup_auto_fill_site.content = self.window_popup_auto_fill_site
        self.popup_auto_fill_site.size_hint = None, None
        self.popup_auto_fill_site.size= 450, 350
        self.popup_auto_fill_site.title = lang['Automatic_Site_Selection']
        self.popup_auto_fill_site.title_size = 17
        self.popup_auto_fill_site.open()

    def cancel_pop_search_auto_fill_site(self):
        self.popup_auto_fill_site.dismiss()

    # Press ... in Auto Fill
    def open_pop_search_auto_fill_site(self):
        self.popup_search_path_auto_fill = Popup()
        self.window_pop_path_auto_fill = SelecSite()
        self.window_pop_path_auto_fill.cancel = self.cancel_pop_path_site_auto_fill_site
        self.window_pop_path_auto_fill.select = self.selec_path_site_auto_fill
        self.popup_search_path_auto_fill.title_size = 17
        self.popup_search_path_auto_fill.title = lang['Select_Directory_with_all_Sites']
        self.popup_search_path_auto_fill.content = self.window_pop_path_auto_fill
        self.popup_search_path_auto_fill.open()

    def cancel_pop_path_site_auto_fill_site(self):
        self.popup_search_path_auto_fill.dismiss()

    def selec_path_site_auto_fill(self, path_all_sites):
        print('select path')
        print(path_all_sites)
        self.window_popup_auto_fill_site.ids.tex_inp_path_all_sites.text = path_all_sites
        self.window_popup_auto_fill_site.ids.lb_path_all_site.text = os.path.basename(path_all_sites) + '/site/'
        self.popup_search_path_auto_fill.dismiss()

    # Press OK in Auto Fill
    def auto_fill_box_scroll(self):
        path_all_site = self.window_popup_auto_fill_site.ids.tex_inp_path_all_sites.text
        structure = self.window_popup_auto_fill_site.ids.tex_inp_structure_site.text

        lis_check_equipments = [self.window_popup_auto_fill_site.ids.check_ADU06,
                                self.window_popup_auto_fill_site.ids.check_ADU07,
                                self.window_popup_auto_fill_site.ids.check_Lims]

        if lis_check_equipments[0].active == True:
            equipment = 'ADU06'

        elif lis_check_equipments[2].active == True:
            equipment = 'Lims'

        elif lis_check_equipments[1].active == True:
            equipment = 'ADU07'

        list_path_site = glob.glob(path_all_site + '/*')
        list_path_site = sorted(list_path_site)

        for path_site in list_path_site:
            if os.path.isdir(path_site):
                new_site = SiteBoxSelecTS()
                new_site.name = os.path.basename(path_site)
                new_site.equipment = equipment
                new_site.path = path_site + '/' + structure


                box_site = new_site.add_box_info()
                new_site.tin_path.text = path_site + '/' + structure
                box_site.id = new_site.name
                self.ids[new_site.name] = box_site

                self.box_lay_scroll.add_widget(box_site)
                new_site.save_site(self.list_sites, new_site)
        self.popup_auto_fill_site.dismiss()


    def help(self):
        pass
Exemplo n.º 36
0
class InfoForm(BoxLayout):

    def __init__(self, group, **kwargs):
        super(InfoForm, self).__init__(**kwargs)  # You'll see these throughout.  This calls the superclass' constructor for this kivy component.
        # self.set_up_act_bar()
        self.set_up_panes()
        self.members = {}
        self.empties = []
        self.group = group

    # def set_up_act_bar(self):
    #     self.add_widget(self.act_bar)

    def add_member(self, name):
        """Adds group member from display

        Args:
            name: Name of member.  Used as key in GUI for layout refering to
            that member.
        """
        if len(self.members) > 5:
            raise InternalError("More than 5 Party members in group")
        self.members[name] = StatEntry(name, 0, self.group)
        #  Removing all dummy layouts to avoid newly added members
        #  Having gaps between them
        for i in self.empties:
            self.player_pane.remove_widget(i)
        del self.empties[:]
        self.player_pane.add_widget(self.members[name])
        # Adding empty dummy layouts back in under all real layouts
        for i in range(0, 5 - len(self.members)):
            self.add_empty()

    def remove_member(self, name):
        """Removes group member from display"""
        self.player_pane.remove_widget(self.members[name])
        self.members.pop(name)
        self.add_empty()

    def add_empty(self):
        self.empties.append(Empty_Space())
        self.player_pane.add_widget(self.empties[-1])

    def set_up_panes(self):
        """Sets up left and right panes that display group members and <undecided> information, respectively"""
        self.player_pane = BoxLayout(orientation='vertical', size_hint=(.7, 1))
        with self.player_pane.canvas.before:
            Color(0, 1, 0, 1)
            self.player_pane.rect = Rectangle(size=self.player_pane.size, pos=self.player_pane.pos)
        self.info_pane = BoxLayout(orientation='vertical', size_hint=(.3, 1))
        with self.info_pane.canvas.before:
            Color(0, 1, 1, 1)
            self.info_pane.rect = Rectangle(size=self.info_pane.size, pos=self.info_pane.pos)
        self.add_widget(self.player_pane)
        self.add_widget(self.info_pane)
        self.player_pane.bind(pos=InfoForm.update_rect, size=InfoForm.update_rect)
        self.info_pane.bind(pos=InfoForm.update_rect, size=InfoForm.update_rect)

    def update_rect(instance, value):
        """Ensures background rectangles stay correct size"""
        instance.rect.pos = instance.pos
        instance.rect.size = instance.size

    def update_stats(self, grp):
        """recieves group data and updates GUI.

        Args:
            grp: Group() object contains various dictionaries with scraped
            data"""
        # iterate over key, value pair in group member dictionary
        for member in self.members:
            self.members[member].ids.stat_prog.ids.DPS_lab.text = str(grp.DPS(member))
            self.members[member].ids.stat_prog.value = grp.percentage_damage(member)