예제 #1
0
    def __init__(self, uuid, label):

        #self.__last_rotate = 0

        # throbber pixbuf
        #self.__throbber = None
        #self.__throbber_width = 0
        #self.__throbber_height = 0

        # number of frames in throbber animation
        #self.__number_of_frames = 0
        #self.__current_frame = 0

        self.uuid = uuid

        self.__save_under = Pixmap(None, _WIDTH, _HEIGHT)
        self.__buffer = Pixmap(None, _WIDTH, _HEIGHT)

        Widget.__init__(self)
        self.set_size(_WIDTH, 200)

        self.__label = Label(label, theme.font_mb_plain,
                             theme.color_mb_panel_text)
        self.__label.set_alignment(self.__label.CENTERED)
        self.__label.set_pos(10, 10)
        self.__label.set_size(_WIDTH - 20, 0)
        self.add(self.__label)
예제 #2
0
파일: Prefs.py 프로젝트: buzztiaan/mediabox
    def __init__(self):

        Configurator.__init__(self)

        self.__vbox = VBox()
        self.__vbox.set_spacing(12)
        self.add(self.__vbox)

        lbl = Label("Voice:", theme.font_mb_plain,
                    theme.color_mb_listitem_text)
        self.__vbox.add(lbl)

        hbox = HBox()
        hbox.set_size(600, 80)
        self.__vbox.add(hbox)

        current_voice = config.get_voice()
        chbox = ChoiceBox("Male A", "m1", "Male B", "m2", "Male C", "m3",
                          "Male D", "m4", "Female A", "f1", "Female B", "f2",
                          "Female C", "f3", "Female D", "f4", "Whisper",
                          "whisper")
        chbox.select_by_value(current_voice)
        chbox.connect_changed(self.__on_select_voice)
        hbox.add(chbox)

        button = Button("Test Voice")
        button.connect_clicked(self.__on_test_voice)
        hbox.add(button)

        pitch = config.get_pitch()
        self.__lbl_pitch = Label("Pitch: %d" % pitch, theme.font_mb_plain,
                                 theme.color_mb_listitem_text)
        self.__vbox.add(self.__lbl_pitch)

        slider = Slider(theme.mb_slider_gauge)
        slider.set_background_color(theme.color_mb_gauge)
        slider.connect_value_changed(self.__on_set_pitch)
        slider.set_value(pitch / 99.0)
        slider.set_size(600, 40)
        self.__vbox.add(slider)

        speed = config.get_speed()
        self.__lbl_speed = Label("Words per minute: %d" % speed,
                                 theme.font_mb_plain,
                                 theme.color_mb_listitem_text)
        self.__vbox.add(self.__lbl_speed)

        slider = Slider(theme.mb_slider_gauge)
        slider.set_background_color(theme.color_mb_gauge)
        slider.connect_value_changed(self.__on_set_speed)
        slider.set_value((speed - 80) / 290.0)
        slider.set_size(600, 40)
        self.__vbox.add(slider)

        lbl = Label(
            "Talk Navigation powered by espeak - http://espeak.sourceforge.net",
            theme.font_mb_tiny, theme.color_mb_listitem_text)
        self.__vbox.add(lbl)
예제 #3
0
    def add_input(self, label, default):

        vbox = VBox()
        vbox.set_spacing(12)
        vbox.set_valign(vbox.VALIGN_CENTER)
        self.__vbox.add(vbox, True)

        lbl = Label(label, theme.font_mb_plain, theme.color_mb_text)
        vbox.add(lbl, True)

        entry = TextInput()
        vbox.add(entry, True)

        self.__retrievers.append(lambda: entry.get_text())
예제 #4
0
    def __init__(self):
    
        Configurator.__init__(self)
        
        self.__vbox = VBox()
        self.__vbox.set_spacing(12)
        #self.__vbox.set_geometry(0, 0, 620, 370)
        self.add(self.__vbox)
        
        lbl = Label("FM radio region:\n",
                    theme.font_mb_plain, theme.color_mb_listitem_text)
        self.__vbox.add(lbl)

        chbox = ChoiceBox("US/Europe", "EUR",
                          "Japan", "JPN")
        chbox.select_by_value(config.get_region())
        chbox.connect_changed(self.__on_select_fm_band)
        self.__vbox.add(chbox)

        lbl = Label("\nDepending on the laws in your country,\n"
                    "operating a FM radio with an inappropriate\n"
                    "region setting may be illegal.",
                    theme.font_mb_plain, theme.color_mb_listitem_text)
        self.__vbox.add(lbl)
예제 #5
0
    def __init__(self):

        self.__labels = []
        self.__values = [0] * 4

        Window.__init__(self, Window.TYPE_DIALOG)
        self.set_flag(windowflags.EXCLUSIVE, True)
        self.connect_closed(self.__on_close)

        self.__hbox = HBox()
        self.__hbox.set_spacing(12)
        self.add(self.__hbox)

        for item in ["h1", "h2", ":", "m1", "m2"]:
            if (item == ":"):
                lbl = Label(":", theme.font_sleeptimer_clocksetter,
                            theme.color_mb_text)
                lbl.set_alignment(lbl.CENTERED)
                self.__hbox.add(lbl, True)

            else:
                vbox = VBox()
                vbox.set_spacing(12)
                vbox.set_halign(VBox.HALIGN_CENTER)
                self.__hbox.add(vbox, True)

                btn = Button(_UP_ARROW)
                btn.set_size(80, 80)
                btn.connect_clicked(self.__on_btn_down, item)
                vbox.add(btn, False)

                lbl = Label("0", theme.font_sleeptimer_clocksetter,
                            theme.color_mb_text)
                lbl.set_alignment(lbl.CENTERED)
                vbox.add(lbl, True)
                self.__labels.append(lbl)

                btn = Button(_DOWN_ARROW)
                btn.set_size(80, 80)
                btn.connect_clicked(self.__on_btn_up, item)
                vbox.add(btn, False)
예제 #6
0
    def add_range(self, label, min_value, max_value, preset):
        def update_label(v):
            value = min_value + v * total
            lbl.set_text(label + " %d" % value)

        vbox = VBox()
        vbox.set_spacing(12)
        vbox.set_valign(vbox.VALIGN_CENTER)
        self.__vbox.add(vbox, True)

        total = max_value - min_value

        lbl = Label(label + " %d" % preset, theme.font_mb_plain,
                    theme.color_mb_text)
        vbox.add(lbl, True)

        slider = HSlider(theme.mb_slider_gauge)
        slider.connect_value_changed(update_label)
        slider.set_value((preset - min_value) / float(total))
        vbox.add(slider, True)

        self.__retrievers.append(lambda: min_value + slider.get_value() *
                                 (max_value - min_value))
예제 #7
0
class DeviceDialog(Widget):
    def __init__(self, uuid, label):

        #self.__last_rotate = 0

        # throbber pixbuf
        #self.__throbber = None
        #self.__throbber_width = 0
        #self.__throbber_height = 0

        # number of frames in throbber animation
        #self.__number_of_frames = 0
        #self.__current_frame = 0

        self.uuid = uuid

        self.__save_under = Pixmap(None, _WIDTH, _HEIGHT)
        self.__buffer = Pixmap(None, _WIDTH, _HEIGHT)

        Widget.__init__(self)
        self.set_size(_WIDTH, 200)

        self.__label = Label(label, theme.font_mb_plain,
                             theme.color_mb_panel_text)
        self.__label.set_alignment(self.__label.CENTERED)
        self.__label.set_pos(10, 10)
        self.__label.set_size(_WIDTH - 20, 0)
        self.add(self.__label)

    """def set_throbber(self, throbber):

        self.__throbber = throbber
        self.__throbber_height = throbber.get_height()
        self.__throbber_width = self.__throbber_height
        self.__current_frame = 0
        self.__number_of_frames = throbber.get_width() / self.__throbber_width

        w, h = self.get_size()
        h = self.__throbber_height + 60
        self.set_size(w, h)

        self.__label.set_pos(10, self.__throbber_height + 20)

        self.__save_under = Pixmap(None, w, h)
        self.__buffer = Pixmap(None, w, h)"""
    """def set_text(self, text):
    
        self.__label.set_text(text)"""

    def render_this(self):

        parent = self.get_parent()
        px, py = parent.get_screen_pos()
        pw, ph = parent.get_size()

        w, h = self.get_size()
        screen = self.get_screen()

        x = (pw - w) / 2
        y = (ph - h) / 2
        self.set_pos(x, y)

        x, y = self.get_screen_pos()

        screen.draw_frame(theme.mb_panel, x, y, w, h, True)

        self.__save_under.copy_buffer(screen, x, y, 0, 0, w, h)
        #self.__render_current()

    """def __render_current(self):

        x, y = self.get_screen_pos()
        w, h = self.get_size()
        screen = self.get_screen()

        self.__buffer.copy_pixmap(self.__save_under, 0, 0, 0, 0, w, h)

        if (self.__throbber):
            tx = (w - self.__throbber_width) / 2
            ty = 10

            frame_offset = self.__current_frame * self.__throbber_width
            self.__buffer.draw_subpixbuf(self.__throbber, frame_offset, 0, 
                         tx, ty, self.__throbber_width, self.__throbber_height)
        
        if (self.may_render()):
            screen.copy_pixmap(self.__buffer, tx, ty, x + tx, y + ty,
                               self.__throbber_width, self.__throbber_height)"""
    """def rotate(self):
    
        now = time.time()
        if (now - self.__last_rotate > 0.05):    
            self.__render_current()
            self.__current_frame += 1
            self.__current_frame %= self.__number_of_frames
            while(gtk.events_pending()): gtk.main_iteration()
        
            self.__last_rotate = now
        #end if"""

    def set_visible(self, value):

        if (not value): time.sleep(0.25)
        self.set_events_blocked(value)
        Widget.set_visible(self, value)
예제 #8
0
    def __init__(self):

        Configurator.__init__(self)

        self.__vbox = VBox()
        self.__vbox.set_spacing(12)
        self.add(self.__vbox)

        lbl = Label("Log Level:", theme.font_mb_tiny,
                    theme.color_mb_listitem_text)
        self.__vbox.add(lbl)

        log_level = logging.get_level()
        chbox = ChoiceBox("Off", logging.OFF, "Error", logging.ERROR,
                          "Warning", logging.WARNING, "Info", logging.INFO,
                          "Debug", logging.DEBUG)
        chbox.select_by_value(log_level)
        chbox.connect_changed(self.__on_select_log_level)
        self.__vbox.add(chbox)

        lbl = Label(
            "Running since: %s" %
            time.asctime(time.localtime(values.START_TIME)),
            theme.font_mb_tiny, theme.color_mb_listitem_text)
        self.__vbox.add(lbl)

        lbl = Label("Device: %s" % maemo.get_product_code(),
                    theme.font_mb_tiny, theme.color_mb_listitem_text)
        self.__vbox.add(lbl)

        lbl = Label("OS: %s" % commands.getoutput("uname -a"),
                    theme.font_mb_tiny, theme.color_mb_listitem_text)
        self.__vbox.add(lbl)
        lbl.set_size(560, 0)

        self.__lbl_mem_size = Label("", theme.font_mb_tiny,
                                    theme.color_mb_listitem_text)
        self.__vbox.add(self.__lbl_mem_size)

        self.__lbl_bpp = Label("", theme.font_mb_tiny,
                               theme.color_mb_listitem_text)
        self.__vbox.add(self.__lbl_bpp)
예제 #9
0
class Prefs(Configurator):

    ICON = theme.mb_viewer_prefs
    TITLE = "Debugging"
    DESCRIPTION = "Information and settings for developers"

    def __init__(self):

        Configurator.__init__(self)

        self.__vbox = VBox()
        self.__vbox.set_spacing(12)
        self.add(self.__vbox)

        lbl = Label("Log Level:", theme.font_mb_tiny,
                    theme.color_mb_listitem_text)
        self.__vbox.add(lbl)

        log_level = logging.get_level()
        chbox = ChoiceBox("Off", logging.OFF, "Error", logging.ERROR,
                          "Warning", logging.WARNING, "Info", logging.INFO,
                          "Debug", logging.DEBUG)
        chbox.select_by_value(log_level)
        chbox.connect_changed(self.__on_select_log_level)
        self.__vbox.add(chbox)

        lbl = Label(
            "Running since: %s" %
            time.asctime(time.localtime(values.START_TIME)),
            theme.font_mb_tiny, theme.color_mb_listitem_text)
        self.__vbox.add(lbl)

        lbl = Label("Device: %s" % maemo.get_product_code(),
                    theme.font_mb_tiny, theme.color_mb_listitem_text)
        self.__vbox.add(lbl)

        lbl = Label("OS: %s" % commands.getoutput("uname -a"),
                    theme.font_mb_tiny, theme.color_mb_listitem_text)
        self.__vbox.add(lbl)
        lbl.set_size(560, 0)

        self.__lbl_mem_size = Label("", theme.font_mb_tiny,
                                    theme.color_mb_listitem_text)
        self.__vbox.add(self.__lbl_mem_size)

        self.__lbl_bpp = Label("", theme.font_mb_tiny,
                               theme.color_mb_listitem_text)
        self.__vbox.add(self.__lbl_bpp)

    def __get_mem_size(self):

        import os
        pid = os.getpid()
        size = int(
            open("/proc/%d/status" % pid,
                 "r").read().splitlines()[15].split()[1])
        size /= 1024.0
        logging.debug("current Resident Set Size: %0.02f MB", size)
        return size

    def render_this(self):

        x, y = self.get_screen_pos()
        w, h = self.get_size()
        screen = self.get_screen()

        self.__lbl_mem_size.set_text("Resident set size: %0.02f MB" \
                                     % self.__get_mem_size())
        try:
            composited = self.get_window().is_composited() and "composited" \
                                                           or "not composited"
        except:
            composited = "not composited"
        self.__lbl_bpp.set_text("Screen: %d x %d x %d, %s" \
                                % (gtk.gdk.screen_width(),
                                   gtk.gdk.screen_height(),
                                   screen.get_color_depth(),
                                   composited))

        self.__vbox.set_geometry(32, 32, w - 64, h - 64)
        screen.fill_area(x, y, w, h, theme.color_mb_background)

    def __on_select_log_level(self, level):

        logging.set_level(level)
예제 #10
0
파일: Prefs.py 프로젝트: buzztiaan/mediabox
class Prefs(Configurator):
    """
    Configurator for the TalkNavigator.
    """

    ICON = theme.youtube_device
    TITLE = "Talk Navigation"
    DESCRIPTION = "Configure the Talk Navigation plugin"

    def __init__(self):

        Configurator.__init__(self)

        self.__vbox = VBox()
        self.__vbox.set_spacing(12)
        self.add(self.__vbox)

        lbl = Label("Voice:", theme.font_mb_plain,
                    theme.color_mb_listitem_text)
        self.__vbox.add(lbl)

        hbox = HBox()
        hbox.set_size(600, 80)
        self.__vbox.add(hbox)

        current_voice = config.get_voice()
        chbox = ChoiceBox("Male A", "m1", "Male B", "m2", "Male C", "m3",
                          "Male D", "m4", "Female A", "f1", "Female B", "f2",
                          "Female C", "f3", "Female D", "f4", "Whisper",
                          "whisper")
        chbox.select_by_value(current_voice)
        chbox.connect_changed(self.__on_select_voice)
        hbox.add(chbox)

        button = Button("Test Voice")
        button.connect_clicked(self.__on_test_voice)
        hbox.add(button)

        pitch = config.get_pitch()
        self.__lbl_pitch = Label("Pitch: %d" % pitch, theme.font_mb_plain,
                                 theme.color_mb_listitem_text)
        self.__vbox.add(self.__lbl_pitch)

        slider = Slider(theme.mb_slider_gauge)
        slider.set_background_color(theme.color_mb_gauge)
        slider.connect_value_changed(self.__on_set_pitch)
        slider.set_value(pitch / 99.0)
        slider.set_size(600, 40)
        self.__vbox.add(slider)

        speed = config.get_speed()
        self.__lbl_speed = Label("Words per minute: %d" % speed,
                                 theme.font_mb_plain,
                                 theme.color_mb_listitem_text)
        self.__vbox.add(self.__lbl_speed)

        slider = Slider(theme.mb_slider_gauge)
        slider.set_background_color(theme.color_mb_gauge)
        slider.connect_value_changed(self.__on_set_speed)
        slider.set_value((speed - 80) / 290.0)
        slider.set_size(600, 40)
        self.__vbox.add(slider)

        lbl = Label(
            "Talk Navigation powered by espeak - http://espeak.sourceforge.net",
            theme.font_mb_tiny, theme.color_mb_listitem_text)
        self.__vbox.add(lbl)

    def render_this(self):

        x, y = self.get_screen_pos()
        w, h = self.get_size()
        screen = self.get_screen()

        self.__vbox.set_geometry(32, 32, w - 64, h - 64)
        screen.fill_area(x, y, w, h, theme.color_mb_background)

    def __on_select_voice(self, voice):

        config.set_voice(voice)

    def __on_set_pitch(self, v):

        pitch = int(v * 99)
        config.set_pitch(pitch)
        self.__lbl_pitch.set_text("Pitch: %d" % pitch)

    def __on_set_speed(self, v):

        speed = 80 + int(v * 290)
        config.set_speed(speed)
        self.__lbl_speed.set_text("Words per minute: %d" % speed)

    def __on_test_voice(self):

        self.emit_message(msgs.TALKNAV_ACT_SAY,
                          "The quick brown fox jumped over the fence.")