using System; using Artemis.Core.Models.Profile; using Artemis.Core.Models.Profile.LayerProperties; using Artemis.Core.Models.Profile.LayerProperties.Attributes; using Artemis.Core.Plugins.Abstract; using Artemis.UI.Events; using Artemis.UI.Screens.Module.ProfileEditor.LayerProperties.Abstract; using Artemis.UI.Screens.Module.ProfileEditor.LayerProperties.Tree; namespace Artemis.UI.Services.Interfaces { public interface IProfileEditorService : IArtemisUIService { Profile SelectedProfile { get; } ProfileElement SelectedProfileElement { get; } TimeSpan CurrentTime { get; set; } LayerPropertyBaseViewModel CreateLayerPropertyViewModel(BaseLayerProperty baseLayerProperty, PropertyDescriptionAttribute propertyDescription); void ChangeSelectedProfile(Profile profile); void UpdateSelectedProfile(); void ChangeSelectedProfileElement(ProfileElement profileElement); void UpdateSelectedProfileElement(); void UpdateProfilePreview(); void UndoUpdateProfile(ProfileModule module); void RedoUpdateProfile(ProfileModule module); void StopRegularRender(); void ResumeRegularRender(); /// /// Occurs when a new profile is selected /// event EventHandler ProfileSelected; /// /// Occurs then the currently selected profile is updated /// event EventHandler SelectedProfileUpdated; /// /// Occurs when a new profile element is selected /// event EventHandler ProfileElementSelected; /// /// Occurs when the currently selected profile element is updated /// event EventHandler SelectedProfileElementUpdated; /// /// Occurs when the current editor time is changed /// event EventHandler CurrentTimeChanged; /// /// Occurs when the profile preview has been updated /// event EventHandler ProfilePreviewUpdated; TreePropertyViewModel CreateTreePropertyViewModel(); } }