Ejemplo n.º 1
0
        private MainWindow(Builder builder) : base(builder.GetRawOwnedObject("MainWindow"))
        {
            this.Icon = new Gdk.Pixbuf(Assembly.GetExecutingAssembly().GetManifestResourceStream("LoopMusicPlayer.icon.ico"));
            Bass.Init();

            Bass.Configure(Configuration.UpdatePeriod, 1);
            Bass.Configure(Configuration.PlaybackBufferLength, 50);

            builder.Autoconnect(this);

            _seekbararea.AddTickCallback(onframetick);

            TitleNameCell  = new Gtk.CellRendererText();
            TimeCell       = new Gtk.CellRendererText();
            LoopCell       = new Gtk.CellRendererText();
            ArtistNameCell = new Gtk.CellRendererText();
            PathCell       = new Gtk.CellRendererText();

            _titlecolumn.PackStart(TitleNameCell, true);
            _timecolumn.PackStart(TimeCell, true);
            _loopcolumn.PackStart(LoopCell, true);
            _artistcolumn.PackStart(ArtistNameCell, true);
            _pathcolumn.PackStart(PathCell, true);

            _titlecolumn.AddAttribute(TitleNameCell, "text", 0);
            _timecolumn.AddAttribute(TimeCell, "text", 1);
            _loopcolumn.AddAttribute(LoopCell, "text", 2);
            _artistcolumn.AddAttribute(ArtistNameCell, "text", 3);
            _pathcolumn.AddAttribute(PathCell, "text", 4);

            DeleteEvent += Window_DeleteEvent;

            var targets = new[] {
                new TargetEntry("text/uri-list", TargetFlags.OtherApp, 0)
            };

            Drag.DestSet(this, DestDefaults.All, targets, Gdk.DragAction.Copy | Gdk.DragAction.Move);
            DragDataReceived += TreeViewDragDataReceived;
            this.AddEvents((int)(Gdk.EventMask.ButtonPressMask | Gdk.EventMask.ButtonReleaseMask));

            _labelseektimemenu.Toggle();
            _singlerepeat.Toggle();
            _streamingplay.Toggle();
            UpdateLoopCountLabel();
            _aboutmenu.Activated       += ShowAbout;
            _listaddmenu.Activated     += OpenFileFromMenu;
            _seekbararea.Drawn         += DrawingArea_OnDraw;
            _quitmenu.Activated        += WindowQuit;
            _listclearmenu.Activated   += ListClear;
            _listdeletemenu.Activated  += ListDelete;
            _treeview.RowActivated     += ActivateLow;
            _volumebutton.ValueChanged += VolumeChanged;
            _pausebutton.Clicked       += PauseClicked;
            _stopbutton.Clicked        += StopClicked;
            _playbutton.Clicked        += PlayClicked;
            _previousbutton.Clicked    += PreviousClicked;
            _nextbutton.Clicked        += NextClicked;
            _ejectbutton.Clicked       += EjectClicked;
            _streamingplay.Toggled     += EjectClicked;
            _onmemoryplay.Toggled      += EjectClicked;
            _seekbararea.AddEvents((int)(Gdk.EventMask.ButtonPressMask | Gdk.EventMask.ButtonReleaseMask));
            _seekbararea.ButtonPressEvent   += SeekBarButtonPress;
            _seekbararea.ButtonReleaseEvent += SeekBarButtonRelease;
            _windowkeepabovemenu.Toggled    += WindowAboveToggled;
            _showgridlinemenu.Toggled       += ShowGridMenuToggled;
            _loopcountupbutton.Clicked      += LoopCountUpButtonClicked;
            _loopcountdownbutton.Clicked    += LoopCountDownButtonClicked;
            _singleplay.Toggled             += LoopMethodToggled;
            _singlerepeat.Toggled           += LoopMethodToggled;
            _allrepeat.Toggled  += LoopMethodToggled;
            _randomplay.Toggled += LoopMethodToggled;
        }