Пример #1
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())
Пример #2
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))
Пример #3
0
class Prefs(Configurator):

    ICON = theme.fmradio_viewer_radio
    TITLE = "FM Radio"
    DESCRIPTION = "Change the FM band of the FM radio"

    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)




    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_fm_band(self, value):

        config.set_region(value)
Пример #4
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)
Пример #5
0
class InputDialog(Window):
    def __init__(self, title, label_ok="OK", label_cancel="Cancel"):

        self.__inputs = []
        self.__return_code = self.RETURN_CANCEL

        # list of value retrieving functions
        self.__retrievers = []

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

        self.__box = Widget()
        self.add(self.__box)

        self.__button_ok = Button(label_ok)
        self.__button_ok.connect_clicked(self.__on_close, self.RETURN_OK)
        self.__box.add(self.__button_ok)

        if (not platforms.MAEMO5):
            self.__button_cancel = Button(label_cancel)
            self.__button_cancel.connect_clicked(self.__on_close,
                                                 self.RETURN_CANCEL)
            self.__box.add(self.__button_cancel)

        self.__vbox = VBox()
        self.__box.add(self.__vbox)

    def __on_close(self, return_code):

        self.__return_code = return_code
        self.set_visible(False)

    def render_this(self):

        Window.render_this(self)

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

        screen.fill_area(x, y, w, h, theme.color_mb_background)

        if (not platforms.MAEMO5):
            self.__vbox.set_geometry(4, 4, w - 8, h - 78)
            self.__button_ok.set_geometry(w - 260, h - 60, 120, 60)
            self.__button_cancel.set_geometry(w - 130, h - 60, 120, 60)

        else:
            self.__vbox.set_geometry(6, 5, w - 165 - 12, h - 5)
            self.__button_ok.set_geometry(w - 120, h - 80, 100, 60)

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

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

    def get_values(self):

        return [r() for r in self.__retrievers]

    def run(self):

        w = gtk.gdk.screen_width()
        h = min(gtk.gdk.screen_height() - 120, len(self.__retrievers) * 120)

        if (not platforms.MAEMO5):
            w -= 80
            h += 70
        self.set_window_size(w, h)
        Window.run(self)

        return self.__return_code
Пример #6
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)
Пример #7
0
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.")