Ejemplo 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;
        }
Ejemplo n.º 2
0
        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

            AddField (right,
                EditorUtilities.CreateLabel (""),
                /* Translators: "of" is the word beteen a track/disc number and the total count. */
                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;
                },
                // Write closure
                delegate (EditorTrackInfo track, Widget widget) {
                    RangeEntry entry = (RangeEntry)widget;
                    track.TrackNumber = (int)entry.From.Value;
                    track.TrackCount = (int)entry.To.Value;
                },
                // Sync closure (doesn't modify TrackNumber)
                delegate (EditorTrackInfo track, Widget widget) {
                    RangeEntry entry = (RangeEntry)widget;
                    track.TrackCount = (int)entry.To.Value;
                },
                FieldOptions.NoShowSync
            );

            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;
            year_entry.Output += delegate (object o, OutputArgs args) {
                if (0 == year_entry.ValueAsInt) {
                    year_entry.Text = "";
                } else {
                    year_entry.Text = year_entry.Value.ToString ();
                }
                args.RetVal = 1;
            };
            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
            );
        }
Ejemplo 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; }
            );
        }