예제 #1
0
        protected WidgetViewModelBase(WidgetId id)
        {
            Id               = id;
            _settings        = id.GetSettings();
            DismissWidget    = new RelayCommand(DismissWidgetExecute);
            EditWidget       = new RelayCommand(EditWidgetExecute);
            ReloadWidget     = new RelayCommand(ReloadWidgetExecute);
            DisableWidget    = new RelayCommand(DisableWidgetExecute);
            MuteWidget       = new RelayCommand(MuteWidgetExecute);
            MuteUnmuteWidget = new RelayCommand(MuteUnmuteWidgetExecute);
            ManageAllWidgets = new RelayCommand(ManageAllWidgetsExecute);

            MouseMove        = new RelayCommand <MouseEventArgs>(MouseMoveExecute);
            MouseDown        = new RelayCommand <MouseButtonEventArgs>(MouseDownExecute);
            MouseUp          = new RelayCommand <MouseButtonEventArgs>(MouseUpExecute);
            KeyDown          = new RelayCommand <KeyEventArgs>(KeyDownExecute);
            KeyUp            = new RelayCommand <KeyEventArgs>(KeyUpExecute);
            PreviewKeyDown   = new RelayCommand <KeyEventArgs>(PreviewKeyDownExecute);
            PreviewKeyUp     = new RelayCommand <KeyEventArgs>(PreviewKeyUpExecute);
            MouseDoubleClick = new RelayCommand <MouseButtonEventArgs>(MouseDoubleClickExecute);

            WidgetDockHorizontal = new RelayCommand <HorizontalAlignment>(WidgetDockHorizontalExecute);
            WidgetDockVertical   = new RelayCommand <VerticalAlignment>(WidgetDockVerticalExecute);
            WidgetUndock         = new RelayCommand(WidgetUndockExecute);
        }
        protected WidgetViewModelBase(WidgetId id)
        {
            Id = id;
            _settings = id.GetSettings();
            DismissWidget = new RelayCommand(DismissWidgetExecute);
            EditWidget = new RelayCommand(EditWidgetExecute);
            ReloadWidget = new RelayCommand(ReloadWidgetExecute);
            ToggleEnableWidget = new RelayCommand(ToggleEnableWidgetExecute);
            MuteWidget = new RelayCommand(MuteWidgetExecute);
            MuteUnmuteWidget = new RelayCommand(MuteUnmuteWidgetExecute);
            ManageAllWidgets = new RelayCommand(ManageAllWidgetsExecute);

            Drop = new RelayCommand<DragEventArgs>(DropExecute);
            MouseMove = new RelayCommand<MouseEventArgs>(MouseMoveExecute);
            MouseDown = new RelayCommand<MouseButtonEventArgs>(MouseDownExecute);
            MouseUp = new RelayCommand<MouseButtonEventArgs>(MouseUpExecute);
            KeyDown = new RelayCommand<KeyEventArgs>(KeyDownExecute);
            KeyUp = new RelayCommand<KeyEventArgs>(KeyUpExecute);
            PreviewKeyDown = new RelayCommand<KeyEventArgs>(PreviewKeyDownExecute);
            PreviewKeyUp = new RelayCommand<KeyEventArgs>(PreviewKeyUpExecute);
            MouseDoubleClick = new RelayCommand<MouseButtonEventArgs>(MouseDoubleClickExecute);

            WidgetDockHorizontal = new RelayCommand<HorizontalAlignment>(WidgetDockHorizontalExecute);
            WidgetDockVertical = new RelayCommand<VerticalAlignment>(WidgetDockVerticalExecute);
            WidgetUndock = new RelayCommand(WidgetUndockExecute);
        }
        public WidgetView(WidgetId id, WidgetViewModelBase viewModel, UserControl userControl, bool systemStartup)
        {
            InitializeComponent();

            Opacity = 0;
            Hide();

            Id = id;
            Settings = id.GetSettings();
            ViewModel = viewModel;
            UserControl = userControl;

            SetupWidgetControl();

            SetScrollPosition();

            SetupFrame();

            ViewModel.View = this;

            _mouseChecker = new MouseChecker(this, Settings);

            if (!systemStartup && Settings.ShowIntroOnLaunch)
                _mouseChecker.QueueIntro = new IntroData {ExecuteFinishAction = false};

            DataContext = ViewModel;

            _mouseChecker.Start();

            ViewModel.OnLoad();

            HasLoaded = true;
        }
        public WidgetPackageExport(WidgetSettingsBase settings)
        {
            InitializeComponent();

            if (string.IsNullOrWhiteSpace(Properties.Settings.Default.WidgetPackagePublisherName))
                Properties.Settings.Default.WidgetPackagePublisherName = Environment.UserName;

            Settings = settings;

            DataContext = this;
        }
예제 #5
0
        public static WidgetSettingsBase DeserialiseWidgetFromPath(string path)
        {
            WidgetSettingsBase settings = null;

            try
            {
                settings = Deserialise(File.ReadAllText(path));
            }
            catch
            {
                // ignored
            }
            return(settings);
        }
예제 #6
0
        public static void ExportDialog(this WidgetSettingsBase settings)
        {
            var dialog = new SaveFileDialog
            {
                Filter   = Resources.PackageExtensionFilter,
                FileName = settings.Name
            };

            if (dialog.ShowDialog() != true)
            {
                return;
            }

            settings.Export(dialog.FileName);
        }
예제 #7
0
 private static void AddWidget(RenderTreeBuilder builder, Type widgetType, WidgetSettingsBase setting, ref int seq)
 {
     builder.OpenComponent(++seq, widgetType);
     Console.WriteLine(setting.GetType().Name);
     if (setting is WidgetSettings widgetSettings)
     {
         foreach (var param in widgetSettings.parameters)
         {
             builder.AddAttribute(++seq, param.Key, param.Value);
             Console.WriteLine($"{seq}, {param.Key}, {param.Value}");
         }
     }
     else
     {
         builder.AddAttribute(++seq, "Settings", setting);
         Console.WriteLine($"{seq} -- Settings");
     }
     builder.CloseComponent();
 }
예제 #8
0
        public MouseChecker(WidgetView view, WidgetSettingsBase settings)
        {
            _view = view;
            _settings = settings;
            _mouseCheckTimer = new DispatcherTimer();
            _hideTimer = new DispatcherTimer();
            _showTimer = new DispatcherTimer();

            _mouseCheckTimer.Tick += (sender, args) => Update();
            _hideTimer.Tick += delegate
            {
                _hideTimer.Stop();
                Hide(checkIdleStatus: false);
            };
            _showTimer.Tick += delegate
            {
                _showTimer.Stop();
                Show(activate: true);
            };

            UpdateIntervals();
        }
예제 #9
0
        public MouseChecker(WidgetView view, WidgetSettingsBase settings)
        {
            _view            = view;
            _settings        = settings;
            _mouseCheckTimer = new DispatcherTimer();
            _hideTimer       = new DispatcherTimer();
            _showTimer       = new DispatcherTimer();

            _mouseCheckTimer.Tick += (sender, args) => Update();
            _hideTimer.Tick       += delegate
            {
                _hideTimer.Stop();
                Hide(checkIdleStatus: false);
            };
            _showTimer.Tick += delegate
            {
                _showTimer.Stop();
                Show(activate: true);
            };

            UpdateIntervals();
        }
예제 #10
0
        public WidgetView(WidgetId id, WidgetViewModelBase viewModel, UserControl userControl, bool systemStartup)
        {
            InitializeComponent();

            Opacity = 0;
            Hide();

            Id          = id;
            Settings    = id.GetSettings();
            ViewModel   = viewModel;
            UserControl = userControl;

            SetupWidgetControl();

            SetScrollPosition();

            SetupFrame();

            ViewModel.View = this;

            _mouseChecker = new MouseChecker(this, Settings);

            if (!systemStartup && Settings.ShowIntroOnLaunch)
            {
                _mouseChecker.QueueIntro = new IntroData {
                    ExecuteFinishAction = false
                };
            }

            DataContext = ViewModel;

            _mouseChecker.Start();

            ViewModel.OnLoad();

            HasLoaded = true;
        }
 private void DeselectAllExecute()
 {
     SelectedWidget = null;
 }
예제 #12
0
 private static string Serialise(WidgetSettingsBase settings)
 {
     return(JsonConvert.SerializeObject(settings, SettingsHelper.JsonSerializerSettingsAllTypeHandling));
 }
예제 #13
0
 private void btnOK_Click(object sender, RoutedEventArgs e)
 {
     SelectedItem = lsWidgets.SelectedItem as WidgetSettingsBase;
     DialogResult = true;
 }
예제 #14
0
 public static void Export(this WidgetSettingsBase settings, string path)
 {
     FileSystemHelper.WriteTextToFile(path, Serialise(settings));
 }
예제 #15
0
        public static void Backup(this WidgetSettingsBase settings)
        {
            var filename = $"{settings.Name}-{settings.Identifier.Guid}{Resources.PackageExtension}";

            settings.Export(Path.Combine(SettingsHelper.AppDocumentsDirectory, filename));
        }
예제 #16
0
 private static void AddNewWidget(WidgetSettingsBase settings)
 {
     App.WidgetsSettingsStore.Widgets.Add(settings);
     settings.Identifier.LoadView();
 }
예제 #17
0
 public static void Export(WidgetSettingsBase widget)
 {
     var settings = SettingsHelper.CloneObject(widget) as WidgetSettingsBase;
     if (settings == null)
         return;
     settings.PackageInfo = new WidgetPackageInfo {Name = settings.Name};
     var dialog = new WidgetPackageExport(settings);
     if (dialog.ShowDialog() != true)
         return;
     File.WriteAllText(dialog.Path, Serialise(settings));
     Popup.Show($"\"{settings.PackageInfo.Name}\" has been saved to \"{dialog.Path}\".");
 }
예제 #18
0
 private static string Serialise(WidgetSettingsBase settings)
 {
     return JsonConvert.SerializeObject(settings, SettingsHelper.JsonSerializerSettingsAllTypeHandling);
 }
예제 #19
0
 public static bool IsMuted(this WidgetSettingsBase settings) => settings.MuteEndTime > DateTime.Now;
 private void MoveUpWidgetExecute()
 {
     SelectedWidget = SelectedWidget.Identifier.MoveUp();
 }
 private void btnOK_Click(object sender, RoutedEventArgs e)
 {
     SelectedItem = lsWidgets.SelectedItem as WidgetSettingsBase;
     DialogResult = true;
 }
예제 #22
0
 private static WidgetSettingsBase AddNewWidget(WidgetSettingsBase settings)
 {
     App.WidgetsSettingsStore.Widgets.Add(settings);
     settings.Identifier.LoadView();
     return(settings);
 }