Esempio n. 1
0
        public RangeEntry(string rangeLabel, RangeOrderClosure orderClosure, string orderTooltip)
        {
            AutoOrderButton auto_order_button;

            PackStart(from_entry = new SpinButtonEntry(0, 999, 1), true, true, 0);
            PackStart(new Label(rangeLabel), false, false, 6);
            PackStart(to_entry = new SpinButtonEntry(0, 999, 1), true, true, 0);
            if (orderClosure != null)
            {
                PackStart(auto_order_button = new AutoOrderButton(), false, false, 1);
                auto_order_button.Clicked  += delegate { orderClosure(this); };
                if (orderTooltip != null)
                {
                    auto_order_button.TooltipText = orderTooltip;
                }
            }

            ShowAll();

            from_entry.WidthChars = 2;
            to_entry.WidthChars   = 2;

            from_entry.ValueChanged += OnChanged;
            to_entry.ValueChanged   += OnChanged;
            from_entry.Output       += OnOutput;
            to_entry.Output         += OnOutput;
        }
Esempio n. 2
0
        protected void OnOutput (object o, OutputArgs args)
        {
            SpinButtonEntry entry = (SpinButtonEntry) o;

            if (0 == entry.ValueAsInt) {
                entry.Text = "";
            } else {
                entry.Text = entry.ValueAsInt.ToString ();
            }
            args.RetVal = 1;
        }
Esempio n. 3
0
        protected override void AddFields()
        {
            AddField(this, new TextEntry("CoreTracks", "Composer"),
                     Catalog.GetString("Set all composers to this value"),
                     delegate { return(Catalog.GetString("C_omposer:")); },
                     delegate(EditorTrackInfo track, Widget widget) { ((TextEntry)widget).Text = track.Composer; },
                     delegate(EditorTrackInfo track, Widget widget) { track.Composer = ((TextEntry)widget).Text; }
                     );

            AddField(this, new TextEntry("CoreTracks", "Conductor"),
                     Catalog.GetString("Set all conductors to this value"),
                     delegate { return(Catalog.GetString("Con_ductor:")); },
                     delegate(EditorTrackInfo track, Widget widget) { ((TextEntry)widget).Text = track.Conductor; },
                     delegate(EditorTrackInfo track, Widget widget) { track.Conductor = ((TextEntry)widget).Text; }
                     );

            HBox box = new HBox();

            box.Spacing = 12;
            box.Show();
            PackStart(box, false, false, 0);

            AddField(box, new TextEntry("CoreTracks", "Grouping"),
                     Catalog.GetString("Set all groupings to this value"),
                     delegate { return(Catalog.GetString("_Grouping:")); },
                     delegate(EditorTrackInfo track, Widget widget) { ((TextEntry)widget).Text = track.Grouping; },
                     delegate(EditorTrackInfo track, Widget widget) { track.Grouping = ((TextEntry)widget).Text; }
                     );

            SpinButtonEntry bpm_entry = new SpinButtonEntry(0, 999, 1);

            bpm_entry.Digits    = 0;
            bpm_entry.MaxLength = 3;
            bpm_entry.Numeric   = true;
            AddField(box, bpm_entry,
                     Catalog.GetString("Set all beats per minute to this value"),
                     delegate { return(Catalog.GetString("Bea_ts Per Minute:")); },
                     delegate(EditorTrackInfo track, Widget widget) { ((SpinButtonEntry)widget).Value = track.Bpm; },
                     delegate(EditorTrackInfo track, Widget widget) { track.Bpm = ((SpinButtonEntry)widget).ValueAsInt; },
                     FieldOptions.Shrink | FieldOptions.NoSync
                     );

            HBox copyright_box = new HBox();

            copyright_box.Spacing = 12;
            copyright_box.Show();
            PackStart(copyright_box, true, true, 0);

            AddField(copyright_box, new TextEntry("CoreTracks", "Copyright"),
                     Catalog.GetString("Set all copyrights to this value"),
                     delegate { return(Catalog.GetString("Copyrig_ht:")); },
                     delegate(EditorTrackInfo track, Widget widget) { ((TextEntry)widget).Text = track.Copyright; },
                     delegate(EditorTrackInfo track, Widget widget) { track.Copyright = ((TextEntry)widget).Text; }
                     );

            AddField(copyright_box, new LicenseEntry(),
                     Catalog.GetString("Set all licenses to this value"),
                     delegate { return(Catalog.GetString("_License URI:")); },
                     delegate(EditorTrackInfo track, Widget widget) { ((LicenseEntry)widget).Value = track.LicenseUri; },
                     delegate(EditorTrackInfo track, Widget widget) { track.LicenseUri = ((LicenseEntry)widget).Value; }
                     );

            TextViewEntry comment_entry = new TextViewEntry();

            comment_entry.HscrollbarPolicy  = PolicyType.Automatic;
            comment_entry.TextView.WrapMode = WrapMode.WordChar;
            AddField(this, comment_entry,
                     Catalog.GetString("Set all comments to this value"),
                     delegate { return(Catalog.GetString("Co_mment:")); },
                     delegate(EditorTrackInfo track, Widget widget) { ((TextViewEntry)widget).Text = track.Comment; },
                     delegate(EditorTrackInfo track, Widget widget) { track.Comment = ((TextViewEntry)widget).Text; }
                     );
        }
        protected override void AddFields()
        {
            HBox box   = new HBox();
            VBox left  = EditorUtilities.CreateVBox();
            VBox right = EditorUtilities.CreateVBox();

            box.PackStart(left, true, true, 0);
            box.PackStart(new VSeparator(), false, false, 12);
            box.PackStart(right, false, false, 0);
            box.ShowAll();

            PackStart(box, false, false, 0);

            // Left

            PageNavigationEntry title_entry = new PageNavigationEntry(Dialog);

            AddField(left, title_entry, null,
                     delegate { return(Catalog.GetString("Track _Title:")); },
                     delegate(EditorTrackInfo track, Widget widget) { ((PageNavigationEntry)widget).Text = track.TrackTitle; },
                     delegate(EditorTrackInfo track, Widget widget) { track.TrackTitle = ((PageNavigationEntry)widget).Text; },
                     FieldOptions.NoSync
                     );

            PageNavigationEntry track_artist_entry = new PageNavigationEntry(Dialog, "CoreArtists", "Name");

            FieldPage.FieldSlot track_artist_slot = AddField(left, track_artist_entry,
                                                             Catalog.GetString("Set all track artists to this value"),
                                                             delegate { return(Catalog.GetString("Track _Artist:")); },
                                                             delegate(EditorTrackInfo track, Widget widget) { ((PageNavigationEntry)widget).Text = track.ArtistName; },
                                                             delegate(EditorTrackInfo track, Widget widget) { track.ArtistName = ((PageNavigationEntry)widget).Text; }
                                                             );

            AlbumArtistEntry album_artist_entry = new AlbumArtistEntry(track_artist_slot.SyncButton,
                                                                       title_entry, track_artist_entry);

            AddField(left, null, album_artist_entry,
                     Catalog.GetString("Set all compilation album artists to these values"), null,
                     delegate(EditorTrackInfo track, Widget widget) {
                AlbumArtistEntry entry = widget as AlbumArtistEntry;
                entry.IsCompilation    = track.IsCompilation;
                entry.Text             = track.AlbumArtist;
            },
                     delegate(EditorTrackInfo track, Widget widget) {
                AlbumArtistEntry entry = widget as AlbumArtistEntry;
                track.IsCompilation    = entry.IsCompilation;
                track.AlbumArtist      = entry.Text;
            }
                     );

            track_artist_entry.Changed += delegate {
                if (!album_artist_entry.IsCompilation)
                {
                    album_artist_entry.Text = track_artist_entry.Text;
                }
            };

            AddField(left, new TextEntry("CoreAlbums", "Title"),
                     Catalog.GetString("Set all album titles to this value"),
                     delegate { return(Catalog.GetString("Albu_m Title:")); },
                     delegate(EditorTrackInfo track, Widget widget) { ((TextEntry)widget).Text = track.AlbumTitle; },
                     delegate(EditorTrackInfo track, Widget widget) { track.AlbumTitle = ((TextEntry)widget).Text; }
                     );

            AddField(left, new GenreEntry(),
                     Catalog.GetString("Set all genres to this value"),
                     delegate { return(Catalog.GetString("_Genre:")); },
                     delegate(EditorTrackInfo track, Widget widget) { ((GenreEntry)widget).Value = track.Genre; },
                     delegate(EditorTrackInfo track, Widget widget) { track.Genre = ((GenreEntry)widget).Value; }
                     );

            // Right

            /* Translators: "of" is the word beteen a track/disc number and the total count. */
            AddField(right, new RangeEntry(Catalog.GetString("of"), !MultipleTracks
                ? null as RangeEntry.RangeOrderClosure
                : delegate(RangeEntry entry) {
                for (int i = 0, n = Dialog.TrackCount; i < n; i++)
                {
                    EditorTrackInfo track = Dialog.LoadTrack(i);

                    if (Dialog.CurrentTrackIndex == i)
                    {
                        // In this case the writeClosure is invoked,
                        // which will take care of updating the TrackInfo
                        entry.From.Value = i + 1;
                        entry.To.Value   = n;
                    }
                    else
                    {
                        track.TrackNumber = i + 1;
                        track.TrackCount  = n;
                    }
                }
            }, Catalog.GetString("Automatically set track number and count")),
                     null,
                     delegate { return(Catalog.GetString("Track _Number:")); },
                     delegate(EditorTrackInfo track, Widget widget) {
                RangeEntry entry = (RangeEntry)widget;
                entry.From.Value = track.TrackNumber;
                entry.To.Value   = track.TrackCount;
            },
                     delegate(EditorTrackInfo track, Widget widget) {
                RangeEntry entry  = (RangeEntry)widget;
                track.TrackNumber = (int)entry.From.Value;
                track.TrackCount  = (int)entry.To.Value;
            },
                     FieldOptions.NoSync
                     );

            AddField(right, new RangeEntry(Catalog.GetString("of")),
                     // Catalog.GetString ("Automatically set disc number and count"),
                     Catalog.GetString("Set all disc numbers and counts to these values"),
                     delegate { return(Catalog.GetString("_Disc Number:")); },
                     delegate(EditorTrackInfo track, Widget widget) {
                RangeEntry entry = (RangeEntry)widget;
                entry.From.Value = track.DiscNumber;
                entry.To.Value   = track.DiscCount;
            },
                     delegate(EditorTrackInfo track, Widget widget) {
                RangeEntry entry = (RangeEntry)widget;
                track.DiscNumber = (int)entry.From.Value;
                track.DiscCount  = (int)entry.To.Value;
            },
                     FieldOptions.None
                     );

            Label year_label = EditorUtilities.CreateLabel(null);

            album_artist_entry.LabelWidget.SizeAllocated += delegate {
                year_label.HeightRequest = album_artist_entry.LabelWidget.Allocation.Height;
            };
            SpinButtonEntry year_entry = new SpinButtonEntry(0, 3000, 1);

            year_entry.Numeric = true;
            AddField(right, year_label, year_entry,
                     Catalog.GetString("Set all years to this value"),
                     delegate { return(Catalog.GetString("_Year:")); },
                     delegate(EditorTrackInfo track, Widget widget) { ((SpinButtonEntry)widget).Value = track.Year; },
                     delegate(EditorTrackInfo track, Widget widget) { track.Year = ((SpinButtonEntry)widget).ValueAsInt; },
                     FieldOptions.Shrink
                     );

            AddField(right, new RatingEntry(),
                     Catalog.GetString("Set all ratings to this value"),
                     delegate { return(Catalog.GetString("_Rating:")); },
                     delegate(EditorTrackInfo track, Widget widget) { ((RatingEntry)widget).Value = track.Rating; },
                     delegate(EditorTrackInfo track, Widget widget) { track.Rating = ((RatingEntry)widget).Value; },
                     FieldOptions.Shrink | FieldOptions.NoSync
                     );
        }