コード例 #1
0
 def __init__(self):
     Widget.__init__(self)
     self.set_widget(gtk.VolumeButton())
     self.wrapped_widget_connect('value-changed', self.on_value_changed)
     self._widget.get_popup().connect("hide", self.on_hide)
     self.create_signal('changed')
     self.create_signal('released')
コード例 #2
0
ファイル: audiobar.py プロジェクト: qingke678/Galicaster
    def __init__(self, vertical = False):
        gtk.Box.__init__(self)
	builder = gtk.Builder()
        guifile=get_ui_path('audiobarv.glade')
        builder.add_from_file(guifile)
        self.bar = builder.get_object("audiobar")
        box = builder.get_object("vbox")
        self.volume = gtk.VolumeButton()
        self.volume.set_value(0.5)
        box.pack_end(self.volume,False,True,0)
        builder.connect_signals(self)
        self.vumeter=builder.get_object("vumeter")
コード例 #3
0
    def __init__(self, gui):
        super(PlayerSlot, self).__init__(1, 15, True)

        self.gmgb_gui = gui

        self.mediaPlayer = gmgbPlayer(self)

        self.fb_needs_reload = False  # workaround flag for gtk drag-drop bug
        self.fb = gtk.FileChooserButton("select a audio file", backend=None)
        self.fileFilter = gtk.FileFilter()
        self.fileFilter.set_name("Audio Files")
        self.fileFilter.add_pattern("*.ogg")
        self.fileFilter.add_pattern("*.mp3")
        self.fileFilter.add_pattern("*.wav")
        self.fb.set_filter(self.fileFilter)
        self.fb.connect("file-set", self.load_file)
        #self.fb.connect("drag-motion",self.load_file_drag_motion)
        #self.fb.connect("drag-leave",self.load_file_drag_leave)
        self.attach(self.fb, 0, 4, 0, 1)

        self.playButton = gtk.ToggleToolButton(gtk.STOCK_MEDIA_PLAY)
        self.playButton.set_sensitive(False)
        self.playButton.connect("toggled", self.toggle_play)
        self.attach(self.playButton, 4, 5, 0, 1)

        self.loopButton = gtk.ToggleToolButton(gtk.STOCK_UNDO)
        self.loopButton.set_sensitive(False)
        self.loopButton.connect("toggled", self.toggle_loop)
        self.attach(self.loopButton, 5, 6, 0, 1)

        self.playbackSlider = gtk.HScale()
        self.playbackSlider.set_sensitive(False)
        self.playbackSlider.set_draw_value(False)
        self.playbackSlider.set_update_policy(gtk.UPDATE_DISCONTINUOUS)
        self.playbackSlider_dragged = False
        self.playbackSlider.connect("button-press-event",
                                    self.slider_button_press)
        self.playbackSlider.connect("button-release-event",
                                    self.slider_button_release)
        self.attach(self.playbackSlider, 6, 14, 0, 1)

        self.volumeButton = gtk.VolumeButton()
        self.volumeButton.set_sensitive(False)
        self.volumeButton.connect("value-changed", self.volume_change)
        self.attach(self.volumeButton, 14, 15, 0, 1)
コード例 #4
0
ファイル: movie_area.py プロジェクト: matttbe/foobnix
    def __init__(self, controls, on_hide_callback):
        self.controls = controls
        ChildTopWindow.__init__(self, "movie")
        self.set_hide_on_escape(False)
        self.on_hide_callback = on_hide_callback

        self.layout = gtk.VBox(False)

        self.drow = AdvancedDrawingArea(controls)
        self.drow.action_function = on_hide_callback
        self.set_resizable(True)
        self.set_border_width(0)

        self.layout.pack_start(self.drow, True)

        self.text_label = gtk.Label("foobnix")
        self.volume_button = gtk.VolumeButton()
        self.volume_button.connect("value-changed", self.volume_changed)

        line = gtk.HBox(False)

        line.pack_start(
            ImageButton(gtk.STOCK_FULLSCREEN, on_hide_callback,
                        _("Exit Fullscrean")), False)
        line.pack_start(PlaybackControls(controls), False)
        line.pack_start(controls.seek_bar_movie, True)
        line.pack_start(gtk.SeparatorToolItem(), False)
        line.pack_start(self.text_label, False)
        line.pack_start(gtk.SeparatorToolItem(), False)
        line.pack_start(self.volume_button, False)

        self.layout.pack_start(line, False)

        self.add(self.layout)
        self.set_opacity(1)

        def my_event(w, e):
            if e.y > gtk.gdk.screen_height() - 50:  #@UndefinedVariable
                line.show()
            else:
                line.hide()

        self.connect("motion-notify-event", my_event)
コード例 #5
0
    def __init__(self, exname, name, sizegroup):
        gtk.VBox.__init__(self)
        cfg.ConfigUtils.__dict__['__init__'](self, exname)
        self.m_name = name
        hbox = gu.bHBox(self)
        hbox.set_spacing(gu.PAD_SMALL)

        self.g_button = gtk.Button(
              soundcard.instrument_names[self.get_int(self.m_name)])
        self.g_button.connect('clicked', self.on_btnclick)
        hbox.pack_start(self.g_button)
        g = gtk.VolumeButton()
        g.props.value = self.get_int('%s_volume' % name) / MAX_VOLUME
        def ff(volumebutton, value):
            self.set_int('%s_volume' % name, int(value * MAX_VOLUME))
        g.connect('value-changed', ff)
        hbox.pack_start(g, False)

        self.g_menu = MidiInstrumentMenu(self.on_instrument_selected)
        self.m_instrument = self.get_int('preferred_instrument')

        hbox = gtk.HBox()
        hbox.set_spacing(6)
        self.pack_start(hbox)
コード例 #6
0
ファイル: volume.py プロジェクト: lucasa/landell-fgdp
    def __init__(self, ui, sltv):
        self.sltv = sltv

        self.button = gtk.VolumeButton()
        self.button.set_value(0.5)
        self.button.connect("value-changed", self.set_volume)
コード例 #7
0
ファイル: TimeLineBar.py プロジェクト: pepe1977/jokosher
    def __init__(self, project, mainview):
        """
		Creates a new instance of TimeLineBar
		
		Parameters:
			project -- reference to Project (Project.py).
			mainview -- reference to MainApp (JokosherApp.py).
		"""
        gtk.HBox.__init__(self)

        self.project = project
        self.mainview = mainview
        self.timeline = TimeLine.TimeLine(self.project, mainview)
        self.Updating = False

        # add click / bpm / signature box
        self.clickbutton = gtk.VolumeButton()
        self.clickbutton.set_value(0)
        self.clickbutton.set_relief(gtk.RELIEF_NORMAL)
        self.clickbutton.set_property("size", gtk.ICON_SIZE_BUTTON)

        self.clickbutton_metronome_image = gtk.Image()
        self.clickbutton_metronome_image.set_from_file(
            os.path.join(Globals.IMAGE_PATH, "icon_click.png"))
        # use get_child() not get_image here because GtkScaleButton
        # uses gtk_container_add() in its internal implementation
        self.clickbutton_volume_image = self.clickbutton.get_child()
        self.clickbutton.set_image(self.clickbutton_metronome_image)

        image_size_group = gtk.SizeGroup(gtk.SIZE_GROUP_BOTH)
        image_size_group.add_widget(self.clickbutton_metronome_image)
        image_size_group.add_widget(self.clickbutton_volume_image)

        self.clickbutton.set_tooltip_text(_("Adjust volume of click track"))

        self.bpmeventbox = gtk.EventBox()
        self.bpmframe = gtk.Frame()
        self.bpmeventbox.set_tooltip_text(_("Beats per minute"))
        self.bpmframe.set_shadow_type(gtk.SHADOW_ETCHED_OUT)

        self.bpmlabel = gtk.Label()
        self.bpmlabel.set_use_markup(True)
        self.bpmlabel.set_markup("<b>%s</b>" % (self.project.bpm))
        self.bpmlabel.set_padding(5, 5)
        self.bpmeventbox.add(self.bpmlabel)
        self.bpmframe.add(self.bpmeventbox)

        self.bpmedit = gtk.SpinButton()
        self.bpmedit.set_range(1, 400)
        self.bpmedit.set_increments(1, 5)
        self.bpmedit.set_value(self.project.bpm)
        self.bpmedit.connect("activate", self.OnAcceptEditBPM)
        self.bpmedit.connect("key_press_event", self.OnEditBPMKey)
        self.bpmedit.connect_after("button-release-event", self.OnEditBPMClick)

        self.sigeventbox = gtk.EventBox()
        self.sigeventbox.set_tooltip_text(_("Time signature"))
        self.sigframe = gtk.Frame()
        self.sigframe.set_shadow_type(gtk.SHADOW_ETCHED_OUT)

        self.siglabel = gtk.Label()
        self.siglabel.set_use_markup(True)
        self.siglabel.set_markup(
            "<b>%d/%d</b>" %
            (self.project.meter_nom, self.project.meter_denom))
        self.siglabel.set_padding(5, 5)
        self.sigeventbox.add(self.siglabel)
        self.sigframe.add(self.sigeventbox)
        self.sigeditPacked = False

        # set events
        self.clickbutton.connect("value-changed", self.OnClickTrackVolume)
        self.clickbutton.connect("enter_notify_event", self.OnClickButtonEnter)
        self.clickbutton.connect("leave_notify_event", self.OnClickButtonEnter)

        self.bpmeventbox.set_events(gtk.gdk.BUTTON_PRESS_MASK)
        self.bpmeventbox.connect("button_release_event", self.OnEditBPM)
        self.bpmeventbox.connect("enter_notify_event", self.OnMouseMoveBPM)
        self.bpmeventbox.connect("leave_notify_event", self.OnMouseMoveBPM)

        self.sigeventbox.set_events(gtk.gdk.BUTTON_PRESS_MASK)
        self.sigeventbox.connect("button_press_event", self.OnEditSig)
        self.sigeventbox.connect("enter_notify_event", self.OnMouseMoveTimeSig)
        self.sigeventbox.connect("leave_notify_event", self.OnMouseMoveTimeSig)

        self.project.connect("bpm", self.OnProjectBPMChange)
        self.project.connect("time-signature", self.OnProjectSigChange)
        self.project.connect("click-track", self.OnProjectClickTrackChange)

        self.sigDialog = None

        # ###########################################################

        self.headerhbox = gtk.HBox()
        self.headerhbox.set_border_width(2)
        self.headerhbox.set_spacing(5)
        self.headerhbox.pack_start(self.clickbutton, True, True)
        self.headerhbox.pack_start(self.bpmframe, True, True)
        self.headerhbox.pack_start(self.sigframe, True, True)

        self.headerVBox = gtk.VBox()
        self.headerVBox.pack_start(self.headerhbox, True, True)
        self.headerVBox.pack_start(gtk.HSeparator(), False, False)

        self.timelineVBox = gtk.VBox()
        self.timelineVBox.pack_start(self.timeline, True, True)
        separator = EventLaneHSeparator.EventLaneHSeparator(
            self.project, self.project.transport)
        self.timelineVBox.pack_start(separator, False, False)

        self.pack_start(self.headerVBox, False, False)
        self.pack_start(self.timelineVBox)
コード例 #8
0
ファイル: videoplayer.py プロジェクト: pchampin/advene
    def build_widget(self):
        vbox = gtk.VBox()

        self.player = self.controller.playerfactory.get_player()

        self.player.sound_mute()

        self.drawable = gtk.Socket()

        def handle_remove(socket):
            # Do not kill the widget if the application exits
            return True

        self.drawable.connect('plug-removed', handle_remove)

        black = gtk.gdk.Color(0, 0, 0)
        for state in (gtk.STATE_ACTIVE, gtk.STATE_NORMAL, gtk.STATE_SELECTED,
                      gtk.STATE_INSENSITIVE, gtk.STATE_PRELIGHT):
            self.drawable.modify_bg(state, black)

        self.drawable.set_size_request(320, 200)

        self.toolbar = gtk.Toolbar()
        self.toolbar.set_style(gtk.TOOLBAR_ICONS)

        # Append the volume control to the toolbar
        def volume_change(scale, value):
            if self.player.sound_get_volume() != int(value * 100):
                self.player.sound_set_volume(int(value * 100))
            return True

        self.audio_volume = gtk.VolumeButton()
        self.audio_volume.set_value(self.player.sound_get_volume() / 100.0)
        ti = gtk.ToolItem()
        ti.add(self.audio_volume)
        self.audio_volume.connect('value-changed', volume_change)
        self.toolbar.insert(ti, -1)

        sync_button = gtk.ToolButton(gtk.STOCK_CONNECT)
        sync_button.set_tooltip_text(_("Synchronize"))
        sync_button.connect('clicked', self.synchronize)
        self.toolbar.insert(sync_button, -1)

        def offset_changed(spin):
            self.offset = long(spin.get_value())
            return True

        ti = gtk.ToolItem()
        self.offset_spin = gtk.SpinButton(
            gtk.Adjustment(value=self.offset,
                           lower=-24 * 60 * 60 * 1000,
                           upper=24 * 60 * 60 * 1000,
                           step_incr=1000 /
                           config.data.preferences['default-fps'],
                           page_incr=1000))
        self.offset_spin.get_adjustment().connect('value-changed',
                                                  offset_changed)
        ti.add(self.offset_spin)
        self.offset_spin.set_tooltip_text(_("Offset in ms"))
        self.toolbar.insert(ti, -1)

        self.label = gtk.Label()
        self.label.set_alignment(0, 0)
        self.label.modify_font(pango.FontDescription("sans 10"))

        timestamp_button = get_pixmap_button('set-to-now.png')
        timestamp_button.set_tooltip_text(
            _("Drag and drop to get player time"))
        enable_drag_source(
            timestamp_button,
            lambda: long(self.player.get_stream_information().position),
            self.controller)
        # Cannot use a gtk.ToolButton since it cannot be drag_source
        ti = gtk.ToolItem()
        ti.add(timestamp_button)
        self.toolbar.insert(ti, -1)

        black = gtk.gdk.color_parse('black')
        white = gtk.gdk.color_parse('white')
        eb = gtk.EventBox()
        eb.add(self.label)
        for state in (gtk.STATE_ACTIVE, gtk.STATE_NORMAL, gtk.STATE_SELECTED,
                      gtk.STATE_INSENSITIVE, gtk.STATE_PRELIGHT):
            self.label.modify_bg(state, black)
            eb.modify_bg(state, black)
            self.label.modify_fg(state, white)

        vbox.add(self.drawable)
        vbox.pack_start(eb, expand=False)
        vbox.pack_start(self.toolbar, expand=False)

        self.drawable.connect_after('realize', self.register_drawable)

        # Accept annotation/timestamp drop, to adjust time offset
        vbox.connect('drag-data-received', self.drag_received_cb)
        vbox.drag_dest_set(
            gtk.DEST_DEFAULT_MOTION | gtk.DEST_DEFAULT_HIGHLIGHT
            | gtk.DEST_DEFAULT_ALL, config.data.drag_type['annotation'] +
            config.data.drag_type['timestamp'],
            gtk.gdk.ACTION_COPY | gtk.gdk.ACTION_LINK | gtk.gdk.ACTION_MOVE)

        vbox.show_all()
        return vbox
コード例 #9
0
ファイル: app.py プロジェクト: machrider18/playitslowly
    def __init__(self, sink, config):
        gtk.Window.__init__(self, gtk.WINDOW_TOPLEVEL)

        self.set_title(NAME)

        try:
            self.set_icon(mygtk.iconfactory.get_icon("playitslowly", 128))
        except gobject.GError:
            print "could not load playitslowly icon"

        self.set_default_size(500, 200)
        self.set_border_width(5)

        self.vbox = gtk.VBox()
        self.accel_group = gtk.AccelGroup()
        self.add_accel_group(self.accel_group)

        self.pipeline = Pipeline(sink)

        self.filedialog = mygtk.FileChooserDialog(None, self,
                                                  gtk.FILE_CHOOSER_ACTION_OPEN)
        self.filedialog.connect("response", self.filechanged)
        self.filedialog.set_local_only(False)
        filechooserhbox = gtk.HBox()
        self.filechooser = gtk.FileChooserButton(self.filedialog)
        self.filechooser.set_local_only(False)
        filechooserhbox.pack_start(self.filechooser, True, True)
        self.recentbutton = gtk.Button(_("Recent"))
        self.recentbutton.connect("clicked", self.show_recent)
        filechooserhbox.pack_end(self.recentbutton, False, False)

        self.speedchooser = mygtk.TextScaleReset(
            gtk.Adjustment(1.00, 0.10, 4.0, 0.05, 0.05))
        self.speedchooser.scale.connect("value-changed", self.speedchanged)
        self.speedchooser.scale.connect("button-press-event", self.speedpress)
        self.speedchooser.scale.connect("button-release-event",
                                        self.speedrelease)
        self.speedchangeing = False

        self.pitchchooser = mygtk.TextScaleReset(
            gtk.Adjustment(0.0, -24.0, 24.0, 1.0, 1.0, 1.0))
        self.pitchchooser.scale.connect("value-changed", self.pitchchanged)

        self.pitchchooser_fine = mygtk.TextScaleReset(
            gtk.Adjustment(0.0, -50, 50, 1.0, 1.0, 1.0))
        self.pitchchooser_fine.scale.connect("value-changed",
                                             self.pitchchanged)

        self.positionchooser = mygtk.ClockScale(gtk.Adjustment(
            0.0, 0.0, 100.0))
        self.positionchooser.scale.connect("button-press-event",
                                           self.start_seeking)
        self.positionchooser.scale.connect("button-release-event",
                                           self.positionchanged)
        self.seeking = False

        self.startchooser = mygtk.TextScaleWithCurPos(
            self.positionchooser, gtk.Adjustment(0.0, 0, 100.0))
        self.startchooser.scale.connect("button-press-event",
                                        self.start_seeking)
        self.startchooser.scale.connect("button-release-event", self.seeked)
        self.startchooser.add_accelerator("clicked", self.accel_group,
                                          ord('['), gtk.gdk.CONTROL_MASK, ())
        self.startchooser.add_accelerator("clicked", self.accel_group,
                                          ord('['), 0, ())

        self.endchooser = mygtk.TextScaleWithCurPos(
            self.positionchooser, gtk.Adjustment(1.0, 0, 100.0, 0.01, 0.01))
        self.endchooser.scale.connect("button-press-event", self.start_seeking)
        self.endchooser.scale.connect("button-release-event", self.seeked)
        self.endchooser.add_accelerator("clicked", self.accel_group, ord(']'),
                                        gtk.gdk.CONTROL_MASK, ())
        self.endchooser.add_accelerator("clicked", self.accel_group, ord(']'),
                                        0, ())

        self.vbox.pack_start(filechooserhbox)
        self.vbox.pack_start(self.positionchooser)
        self.vbox.pack_start(
            mygtk.form([(_(u"Speed (times)"), self.speedchooser),
                        (_(u"Pitch (semitones)"), self.pitchchooser),
                        (_(u"Fine Pitch (cents)"), self.pitchchooser_fine),
                        (_(u"Start Position (seconds)"), self.startchooser),
                        (_(u"End Position (seconds)"), self.endchooser)]),
            False, False)

        buttonbox = gtk.HButtonBox()
        self.vbox.pack_end(buttonbox, False, False)

        self.play_button = gtk.ToggleButton(gtk.STOCK_MEDIA_PLAY)
        self.play_button.connect("toggled", self.play)
        self.play_button.set_use_stock(True)
        self.play_button.set_sensitive(False)
        buttonbox.pack_start(self.play_button)
        # make SPACE a shortcut for play/pause (CTRL-SPC would be better?)
        self.play_button.add_accelerator("clicked", self.accel_group, ord(' '),
                                         0, ())

        self.back_button = gtk.Button(gtk.STOCK_MEDIA_REWIND)
        self.back_button.connect("clicked", self.back)
        self.back_button.set_use_stock(True)
        self.back_button.set_sensitive(False)
        buttonbox.pack_start(self.back_button)

        self.volume_button = gtk.VolumeButton()
        self.volume_button.set_value(1.0)
        self.volume_button.set_relief(gtk.RELIEF_NORMAL)
        self.volume_button.connect("value-changed", self.volumechanged)
        buttonbox.pack_start(self.volume_button)

        self.save_as_button = gtk.Button(stock=gtk.STOCK_SAVE_AS)
        self.save_as_button.connect("clicked", self.save)
        self.save_as_button.set_sensitive(False)
        buttonbox.pack_start(self.save_as_button)

        button_about = gtk.Button(stock=gtk.STOCK_ABOUT)
        button_about.connect("clicked", self.about)
        buttonbox.pack_end(button_about)

        self.connect("key-release-event", self.key_release)

        self.add(self.vbox)
        self.connect("destroy", gtk.main_quit)

        self.config = config
        self.config_saving = False
        self.load_config()