Esempio n. 1
0
class Example1(App):

    def build(self):

        self.additional_init()

        self.carousel = Carousel(
            direction='right', 
            loop=True)

        for src in k.filenames:
            image = Factory.AsyncImage(source=src, allow_stretch=True)
            self.carousel.add_widget(image)
        return self.carousel

    def additional_init(self):
        self._keyboard = Window.request_keyboard(self._keyboard_closed, self, 'text')
        self._keyboard.bind(on_key_down=self._on_keyboard_down)

    def _keyboard_closed(self):
        print('My keyboard have been closed!')
        self._keyboard.unbind(on_key_down=self._on_keyboard_down)
        self._keyboard = None

    def _print_debug(self, keycode, text, modifiers):
        print('The key', keycode, 'have been pressed')
        print(' - text is %r' % text)
        print(' - modifiers are %r' % modifiers)

    def _on_keyboard_down(self, keyboard, keycode, text, modifiers):
        self._print_debug(keycode, text, modifiers)

        # If we hit escape, release the keyboard
        k = keycode[1]
        if k == 'escape':
            keyboard.release()

        if k == 'right':
            self.carousel.load_next()
            pass
        if k == 'left':
            self.carousel.load_previous()
            pass

        return True
Esempio n. 2
0
class MainScreen(BoxLayout):

    def __init__(self, **kwargs):
        super(MainScreen, self).__init__(**kwargs)
        self.orientation = 'vertical'
        title = TitleBar()

        self.carousel = Carousel(direction='right', loop=False)
        self.spacing=10

        dico = Dictionary()
        self.carousel.add_widget(dico)

        self.m = MainMenu()
        self.m.convert_button.bind(on_release=self.convert)
        self.m.dictionary_button.bind(on_release=self.dictionary)
        self.carousel.add_widget(self.m)
        self.carousel.load_slide(self.m)

        self.textEntry = TextEntry()
        self.textEntry.paragraph_button.bind(on_press=self.convert_paragraph)
        self.carousel.add_widget(self.textEntry)

        self.result = ResultEntry()
        self.result.back.bind(on_press=self.back)
        self.carousel.add_widget(self.result)

        self.add_widget(title)
        self.add_widget(self.carousel)


    def convert(self, object):
        self.carousel.load_next()

    def dictionary(self, object):
        self.carousel.load_previous()

    def back(self, object):
        self.carousel.load_slide(self.m)

    def convert_paragraph(self, object):
        old_text = self.textEntry.paragraph.text
        new_text = politically_correct.polit_changer(old_text)
        self.result.paragraph.text = new_text
        self.carousel.load_next()
Esempio n. 3
0
    def __init__(self, **kwargs):
        super(ArticleCarouselContainer, self).__init__(**kwargs)
        c = Carousel(direction="right")
        for src in active_sources:
            c.add_widget(ScrollContainer(src=src))
        f = BoxLayout(size_hint=(1, 0.1))
        b1 = Button(text='previous source')
        f.add_widget(b1)
        b2 = Button(text='next source')
        f.add_widget(b2)
        self.add_widget(f)
        self.add_widget(c)

        b1.bind(on_press=lambda x: c.load_previous())
        b2.bind(on_press=lambda x: c.load_next())
class Build_CloudWatch_Remote ( App ):

    Period_Buttons = []
    Period_End_Buttons = []

    Period_Value = 24
    Period_End_Value = 0

    def __init__(self, **kwargs):
        super(Build_CloudWatch_Remote, self).__init__(**kwargs)
        Window.bind(on_key_down=self.on_keyboard_down)

        # Window.size = (1280, 800)

        # Automatically size widget images to fit screen real estate
        horizontal_size, vertical_size = Window.size
        # print ("h:", horizontal_size, "v:", vertical_size)
        for widget_descriptor in widget_descriptor_list:
            widget_descriptor["width"] = horizontal_size
            if (cw_remote_duplex_layout):
                widget_descriptor["height"] = int(round(vertical_size * 0.475))
            else:
                widget_descriptor["height"] = int(round(vertical_size * 2 * 0.475))

    def build(self):
        Get_CloudWatch_Graphs()

        self.CloudWatch_Remote = BoxLayout(orientation='vertical')

        self.Control_Bar = BoxLayout(orientation='horizontal', size_hint=(1, 0.05))

        # self.Begin_Time_Slider = \
        #     Slider_Extended(min=-24, max=-1, value=-24, step=1, size_hint=(0.40, 1))
        # self.Begin_Time_Slider.bind(value=self.on_begin_time_value_change)
        # self.Begin_Time_Slider.bind(on_release=self.update)

        # self.Begin_Time_Label = \
        #     Label(text=(str(int(round(self.Begin_Time_Slider.value))) + "H"),
        #           size_hint=(0.05, 1))
        self.Period_Label = Label(text=(str(self.Period_Value) + "H"), size_hint=(0.05, 1))

        # self.Control_Bar.add_widget(self.Begin_Time_Label)
        self.Control_Bar.add_widget(self.Period_Label)
        # self.Control_Bar.add_widget(self.Begin_Time_Slider)
        for button_idx, button_value in enumerate([120, 96, 72, 48, 24, 20, 16, 12, 8, 6, 5, 4, 3, 2, 1]):
            period_button = Button(text=str(button_value))
            period_button.font_size = 14
            period_button.size_hint = (0.0375, 1)
            period_button.bind(on_press=partial(self.on_set_period, button_idx, button_value))
            self.Period_Buttons.append(period_button)
            self.Control_Bar.add_widget(period_button)
        
        button_refresh = Button(text="Refresh", size_hint=(0.075, 1))
        button_refresh.font_size = 14
        button_refresh.bind(on_press=self.update)
        self.Control_Bar.add_widget(button_refresh)

        for button_idx, button_value in enumerate([-72, -48, -36, -24, -12, -10, -8, -6, -5, -4, -3, -2, -1, 0]): # -96,
            end_button = Button(text=str(button_value))
            end_button.font_size = 14
            end_button.size_hint = (0.0375, 1)
            end_button.bind(on_press=partial(self.on_set_period_end, button_idx, button_value))
            self.Period_End_Buttons.append(end_button)
            self.Control_Bar.add_widget(end_button)

        # self.End_Time_Slider = \
        #     Slider_Extended(min=-23, max=0, value=0, step=1, size_hint=(0.40, 1))
        # self.End_Time_Slider.bind(value=self.on_end_time_value_change)
        # self.End_Time_Slider.bind(on_release=self.update)

        # self.End_Time_Label = \
        #     Label(text=(str(int(round(self.End_Time_Slider.value))) + "H"),
        #           size_hint=(0.05, 1))
        self.Period_End_Label = Label(text=(str(self.Period_End_Value) + "H"), size_hint=(0.05, 1))

        # self.Control_Bar.add_widget(self.End_Time_Slider)
        # self.Control_Bar.add_widget(self.End_Time_Label)
        self.Control_Bar.add_widget(self.Period_End_Label)

        if (cw_remote_duplex_layout):
            self.Upper_Widget_Box = BoxLayout(orientation='vertical', size_hint=(1, 0.475))
            self.Lower_Widget_Box = BoxLayout(orientation='vertical', size_hint=(1, 0.475))
        
            self.Upper_Widget_Box.add_widget(Image(texture=ci_widget_image_list[0].texture))
            self.Lower_Widget_Box.add_widget(Image(texture=ci_widget_image_list[1].texture))

            self.CloudWatch_Remote.add_widget(self.Upper_Widget_Box) 
            self.CloudWatch_Remote.add_widget(self.Control_Bar)
            self.CloudWatch_Remote.add_widget(self.Lower_Widget_Box)
        elif (len(widget_descriptor_list) > 1):
            self.Carousel_Widget = Carousel(direction='bottom') 
            for ci_widget_image in ci_widget_image_list:
                self.Carousel_Widget.add_widget(Image(texture=ci_widget_image.texture))

            self.CloudWatch_Remote.add_widget(self.Control_Bar)
            self.CloudWatch_Remote.add_widget(self.Carousel_Widget) 
        else:
            self.Upper_Widget_Box = BoxLayout(orientation='vertical', size_hint=(1, (2 * 0.475)))
            self.Upper_Widget_Box.add_widget(Image(texture=ci_widget_image_list[0].texture))

            self.CloudWatch_Remote.add_widget(self.Control_Bar)
            self.CloudWatch_Remote.add_widget(self.Upper_Widget_Box)

        if (cw_remote_refresh_interval_seconds >= 1):
            Clock.schedule_interval(self.update, cw_remote_refresh_interval_seconds)

        return self.CloudWatch_Remote

    def on_set_period(self, button_index, button_value, *args):
        self.Period_Value = button_value
        self.Period_Label.text = str(self.Period_Value) + "H"
        self.update_period_start_end()

    def on_set_period_end(self, button_index, button_value, *args):
        self.Period_End_Value = button_value
        self.Period_End_Label.text = str(self.Period_End_Value) + "H"
        self.update_period_start_end()

    def update_period_start_end(self):
        for widget_descriptor in widget_descriptor_list:
            widget_descriptor["start"] = "-PT" + str(abs(self.Period_Value) + abs(self.Period_End_Value)) + "H"
            widget_descriptor["end"] = "-PT" + str(abs(self.Period_End_Value)) + "H"
        self.update()

    # def on_begin_time_value_change(self, instance, begin_value, *args):
    #     relative_start_time_value = int(round(begin_value))
    #     if (relative_start_time_value >= int(round(self.End_Time_Slider.value))):
    #         relative_start_time_value = int(round(self.End_Time_Slider.value)) - 1
    #         self.Begin_Time_Slider.value = relative_start_time_value
    #     for widget_descriptor in widget_descriptor_list:
    #         widget_descriptor["start"] = "-PT" + str(abs(relative_start_time_value)) + "H"
    #     self.Begin_Time_Label.text = str(relative_start_time_value) + "H"
    #
    # def on_end_time_value_change(self, instance, end_value, *args):
    #     relative_end_time_value = int(round(end_value))
    #     if (relative_end_time_value <= int(round(self.Begin_Time_Slider.value))):
    #         relative_end_time_value = int(round(self.Begin_Time_Slider.value)) + 1
    #         self.End_Time_Slider.value = relative_end_time_value
    #     for widget_descriptor in widget_descriptor_list:
    #         widget_descriptor["end"] = "-PT" + str(abs(relative_end_time_value)) + "H"
    #     self.End_Time_Label.text = str(relative_end_time_value) + "H"
        
    def update(self, *args):
        Get_CloudWatch_Graphs()

        if (cw_remote_duplex_layout):
            self.Upper_Widget_Box.clear_widgets()
            self.Upper_Widget_Box.add_widget(Image(texture=ci_widget_image_list[0].texture))
            self.Lower_Widget_Box.clear_widgets()
            self.Lower_Widget_Box.add_widget(Image(texture=ci_widget_image_list[1].texture))
        elif (len(widget_descriptor_list) > 1):
            self.Carousel_Widget.clear_widgets()
            for ci_widget_image in ci_widget_image_list:
                self.Carousel_Widget.add_widget(Image(texture=ci_widget_image.texture))
        else:
            self.Upper_Widget_Box.clear_widgets()
            self.Upper_Widget_Box.add_widget(Image(texture=ci_widget_image_list[0].texture))
        
        self.CloudWatch_Remote.canvas.ask_update()

    def on_keyboard_down(self, instance, keyboard, keycode, text, modifiers):
        # print("\nThe key", keycode, "have been pressed")
        # print(" - text is %r" % text)
        # print(" - modifiers are %r" % modifiers)
        # Support keyboard control of carousel on OS-X
        if ((keycode == 81) or (keycode == 79)): self.Carousel_Widget.load_next()
        elif ((keycode == 82) or (keycode == 80)): self.Carousel_Widget.load_previous()
Esempio n. 5
0
class Build_CloudWatch_Remote(App):
    def __init__(self, **kwargs):
        super(Build_CloudWatch_Remote, self).__init__(**kwargs)
        Window.bind(on_key_down=self.on_keyboard_down)

        # Window.size = (1280, 800)

        # Automatically size widget images to fit screen real estate
        horizontal_size, vertical_size = Window.size
        # print ("h:", horizontal_size, "v:", vertical_size)
        for widget_descriptor in widget_descriptor_list:
            widget_descriptor["width"] = horizontal_size
            if (cw_remote_duplex_layout):
                widget_descriptor["height"] = int(round(vertical_size * 0.475))
            else:
                widget_descriptor["height"] = int(
                    round(vertical_size * 2 * 0.475))

    def build(self):
        Get_CloudWatch_Graphs()

        self.CloudWatch_Remote = BoxLayout(orientation='vertical')

        self.Control_Bar = BoxLayout(orientation='horizontal',
                                     size_hint=(1, 0.05))

        self.Begin_Time_Slider = \
            Slider_Extended(min=-24, max=-1, value=-24, step=1, size_hint=(0.40, 1))
        self.Begin_Time_Slider.bind(value=self.on_begin_time_value_change)
        self.Begin_Time_Slider.bind(on_release=self.update)

        self.Begin_Time_Label = \
            Label(text=(str(int(round(self.Begin_Time_Slider.value))) + "H"),
                  size_hint=(0.05, 1))

        self.Control_Bar.add_widget(self.Begin_Time_Label)
        self.Control_Bar.add_widget(self.Begin_Time_Slider)

        button_refresh = Button(text="Refresh", size_hint=(0.1, 1))
        button_refresh.bind(on_press=self.update)
        self.Control_Bar.add_widget(button_refresh)

        self.End_Time_Slider = \
            Slider_Extended(min=-23, max=0, value=0, step=1, size_hint=(0.40, 1))
        self.End_Time_Slider.bind(value=self.on_end_time_value_change)
        self.End_Time_Slider.bind(on_release=self.update)

        self.End_Time_Label = \
            Label(text=(str(int(round(self.End_Time_Slider.value))) + "H"),
                  size_hint=(0.05, 1))

        self.Control_Bar.add_widget(self.End_Time_Slider)
        self.Control_Bar.add_widget(self.End_Time_Label)

        if (cw_remote_duplex_layout):
            self.Upper_Widget_Box = BoxLayout(orientation='vertical',
                                              size_hint=(1, 0.475))
            self.Lower_Widget_Box = BoxLayout(orientation='vertical',
                                              size_hint=(1, 0.475))

            self.Upper_Widget_Box.add_widget(
                Image(texture=ci_widget_image_list[0].texture))
            self.Lower_Widget_Box.add_widget(
                Image(texture=ci_widget_image_list[1].texture))

            self.CloudWatch_Remote.add_widget(self.Upper_Widget_Box)
            self.CloudWatch_Remote.add_widget(self.Control_Bar)
            self.CloudWatch_Remote.add_widget(self.Lower_Widget_Box)
        elif (len(widget_descriptor_list) > 1):
            self.Carousel_Widget = Carousel(direction='bottom')
            for ci_widget_image in ci_widget_image_list:
                self.Carousel_Widget.add_widget(
                    Image(texture=ci_widget_image.texture))

            self.CloudWatch_Remote.add_widget(self.Control_Bar)
            self.CloudWatch_Remote.add_widget(self.Carousel_Widget)
        else:
            self.Upper_Widget_Box = BoxLayout(orientation='vertical',
                                              size_hint=(1, (2 * 0.475)))
            self.Upper_Widget_Box.add_widget(
                Image(texture=ci_widget_image_list[0].texture))

            self.CloudWatch_Remote.add_widget(self.Control_Bar)
            self.CloudWatch_Remote.add_widget(self.Upper_Widget_Box)

        if (cw_remote_refresh_interval_seconds >= 1):
            Clock.schedule_interval(self.update,
                                    cw_remote_refresh_interval_seconds)

        return self.CloudWatch_Remote

    def on_begin_time_value_change(self, instance, begin_value, *args):
        relative_start_time_value = int(round(begin_value))
        if (relative_start_time_value >= int(round(
                self.End_Time_Slider.value))):
            relative_start_time_value = int(round(
                self.End_Time_Slider.value)) - 1
            self.Begin_Time_Slider.value = relative_start_time_value
        for widget_descriptor in widget_descriptor_list:
            widget_descriptor["start"] = "-PT" + str(
                abs(relative_start_time_value)) + "H"
        self.Begin_Time_Label.text = str(relative_start_time_value) + "H"

    def on_end_time_value_change(self, instance, end_value, *args):
        relative_end_time_value = int(round(end_value))
        if (relative_end_time_value <= int(round(
                self.Begin_Time_Slider.value))):
            relative_end_time_value = int(round(
                self.Begin_Time_Slider.value)) + 1
            self.End_Time_Slider.value = relative_end_time_value
        for widget_descriptor in widget_descriptor_list:
            widget_descriptor["end"] = "-PT" + str(
                abs(relative_end_time_value)) + "H"
        self.End_Time_Label.text = str(relative_end_time_value) + "H"

    def update(self, *args):
        Get_CloudWatch_Graphs()

        if (cw_remote_duplex_layout):
            self.Upper_Widget_Box.clear_widgets()
            self.Upper_Widget_Box.add_widget(
                Image(texture=ci_widget_image_list[0].texture))
            self.Lower_Widget_Box.clear_widgets()
            self.Lower_Widget_Box.add_widget(
                Image(texture=ci_widget_image_list[1].texture))
        elif (len(widget_descriptor_list) > 1):
            self.Carousel_Widget.clear_widgets()
            for ci_widget_image in ci_widget_image_list:
                self.Carousel_Widget.add_widget(
                    Image(texture=ci_widget_image.texture))
        else:
            self.Upper_Widget_Box.clear_widgets()
            self.Upper_Widget_Box.add_widget(
                Image(texture=ci_widget_image_list[0].texture))

        self.CloudWatch_Remote.canvas.ask_update()

    def on_keyboard_down(self, instance, keyboard, keycode, text, modifiers):
        # print("\nThe key", keycode, "have been pressed")
        # print(" - text is %r" % text)
        # print(" - modifiers are %r" % modifiers)
        # Support keyboard control of carousel on OS-X
        if ((keycode == 81) or (keycode == 79)):
            self.Carousel_Widget.load_next()
        elif ((keycode == 82) or (keycode == 80)):
            self.Carousel_Widget.load_previous()
Esempio n. 6
0
class CarouselApp(App):
    def myChange(self, instance, value):
        print(self.carousel.index + 1)
        pass

    def build(self):
        global page
        self.window = FloatLayout()
        self.carousel = Carousel(direction='right')
        self.carousel.bind(on_touch_move=self.myChange)
        self.carousel.scroll_distance = 1
        self.carousel.scroll_timeout = 999
        self.layout = []
        # carousel
        for i in range(10):
            self.layout.append(
                FloatLayout(size_hint=(1, .55), pos_hint={
                    'x': 0,
                    'y': .4
                }))
            source = f'{i}.jpg'
            self.image = Image(source=source,
                               pos_hint={
                                   'center_x': .5,
                                   'center_y': .4
                               })
            self.myText = Label(text=page[i],
                                halign='center',
                                valign='top',
                                text_size=[_WIDTH, 100],
                                pos_hint={
                                    'x': 0,
                                    'y': -.8
                                },
                                color='#4B0082')
            self.layout[i].add_widget(self.image)
            self.layout[i].add_widget(self.myText)
            self.carousel.add_widget(self.layout[i])

        # window
        self.btn_next = Button(text='Далее',
                               size_hint=(.455, .08),
                               pos_hint={
                                   'center_x': .745,
                                   'center_y': .1
                               },
                               on_release=self.evt_btn_next)
        self.btn_pre = Button(text='Назад',
                              size_hint=(.455, .08),
                              pos_hint={
                                  'center_x': .255,
                                  'center_y': .1
                              },
                              on_release=self.evt_btn_pre)
        self.window.add_widget(self.carousel)
        self.window.add_widget(self.btn_pre)
        self.window.add_widget(self.btn_next)
        return self.window

    def evt_btn_next(self, instance):
        self.carousel.load_next(mode='next')

    def evt_btn_pre(self, instance):
        self.carousel.load_previous()
Esempio n. 7
0
class ImgCarousel(AnchorLayout):
    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        # padding: [padding_left, padding_top, padding_right, padding_bottom]
        self.padding=("0dp", "50dp", "0dp", "10dp")
        self.carousel = Carousel(direction='right')
        #self.carousel.pos_hint = {"top":.9}
        for i in range(10):
            src = "https://i.imgur.com/x7WdmHBb.jpg"
            image = AsyncImage(source=src, allow_stretch=True)
            self.inner_carousel_layout = MDRelativeLayout()
            self.prev_btn = MDIconButton(icon="menu-left", user_font_size ="200sp", on_release = lambda x:self.carousel.load_previous(), pos_hint={"center_x":.1, "center_y":.5}) # pos_hint={"left":.2, "y":.5},
            self.next_btn = MDIconButton(icon="menu-right", user_font_size ="200sp", on_release = lambda x:self.carousel.load_next(), pos_hint={"center_x":.9, "center_y":.5}) # pos_hint={"right":.8, "y":.5}

            self.inner_carousel_layout.add_widget(image)
            self.inner_carousel_layout.add_widget(self.prev_btn)
            self.inner_carousel_layout.add_widget(self.next_btn)
            self.carousel.add_widget(self.inner_carousel_layout)
        self.add_widget(self.carousel)