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