/// <summary>
        /// Salvo la posizione e la dimensione della finestra dello SlideShow.
        /// I dati vengono persistiti nella configurazione utente.
        /// </summary>
        public bool salvaGeometriaFinestraSlideShow()
        {
            bool esito;

            if (this.geomSS == null || this.geomSS.isEmpty())
            {
                esito = false;
            }
            else
            {
                // Questo modifica geomSS ...
                memorizzaGeometriaFinestraSlideShow();

                // ... Questo lo persiste
                Configurazione.UserConfigLumen.geometriaFinestraSlideShow = this.geomSS;

                _giornale.Debug("Devo salvare la configurazione utente su file xml");
                UserConfigSerializer.serializeToFile(Configurazione.UserConfigLumen);
                _giornale.Info("Salvata la configurazione utente su file xml");

                esito = true;
            }

            return(esito);
        }
Beispiel #2
0
        /// <summary>
        /// Salvo la nuova configurazione e poi la ricarico
        /// </summary>
        /// <param name="newUserConfig"></param>
        public void SalvaNuovaConfigurazione(UserConfig newUserConfig)
        {
            UserConfigSerializer.serializeToFile(newUserConfig);

            caricaConfigurazione();

            // Per sicurezza riparto da capo
            pagina    = 0;
            puntatore = 999;
        }
Beispiel #3
0
 void caricaConfigurazione()
 {
     userConfig = UserConfigSerializer.deserialize();
     if (userConfig == null)
     {
         userConfig = new UserConfig {
             intervallo = 2000,
             numRighe   = 2,
             numColonne = 3
         }
     }
     ;
 }
Beispiel #4
0
        /// <summary>
        /// Copio i valori delle preferenze utente, nella configurazione e quindi la salvo (serializzo su disco)
        /// </summary>
        private void uscire(bool salvare)
        {
            if (salvare)
            {
                if (cfg.prefGalleryViste == null)
                {
                    cfg.prefGalleryViste = new Griglia[Configurazione.MAX_STELLINE];
                }

                this.prefGalleryViste.CopyTo(cfg.prefGalleryViste, 0);

                UserConfigSerializer.serializeToFile(Configurazione.UserConfigLumen);
                LastUsedConfigSerializer.serializeToFile(Configurazione.LastUsedConfigLumen);
                _giornale.Info("Salvate le preferenze utente su file xml");
            }

            this.CloseCommand.Execute(null);
        }
        /// <summary>
        /// Controllo che la geometria della finestra sia posizionabile in un monitor.
        /// </summary>
        private void gestisciPosizione()
        {
            // Per prima cosa, provo a posizionare la finestra nella posizione indicata in configurazione
            // Mi copio in locale la geometria della finestra per poterla modificare con lo spostamento
            geoCurrent = (GeometriaFinestra)Configurazione.UserConfigLumen.geometriaFinestraSlideShow.Clone();


            WpfScreen scrn = WpfScreen.GetScreenFrom(geoCurrent.deviceEnum);

            if (scrn == null)
            {
                scrn = WpfScreen.GetFirstScreen();                  // Prendo quello di default
            }
            // this.WindowStartupLocation = WindowStartupLocation.Manual;

            _giornale.Debug("SlideShow Primary Device Info:\n " + WpfScreen.Primary.ToDebugString());

            _giornale.Debug("SlideShow Configuration Device Info:\n " + scrn.ToDebugString());



            if (geoCurrent.deviceEnum != scrn.deviceEnum)
            {
                _giornale.Debug("Il monitor impostato non è stato trovato!!!");

                geoCurrent.deviceEnum = WpfScreen.Primary.deviceEnum;
            }

            if (!verificaProiettabile(scrn, geoCurrent))
            {
                _giornale.Debug("I valori calcolati non sono ammissibili utilizzo quelli di default");

                this.geoCurrent = Configurazione.creaGeometriaSlideShowDefault();
            }

            //Se ho messo il full screen resetto i Top e Left
            if (geoCurrent.fullScreen)
            {
                Screen s = (Screen)Screen.AllScreens.GetValue(geoCurrent.deviceEnum);
                System.Drawing.Rectangle r = s.WorkingArea;
                geoCurrent.Top  = r.Top;
                geoCurrent.Left = r.Left;
            }
            else if (geoCurrent.screenHeight != (int)scrn.WorkingArea.Height || geoCurrent.screenWidth != (int)scrn.WorkingArea.Width)
            {
                _giornale.Debug("Ricalcolo la geometria dello slideShow in base al nuovo monitor");
                _giornale.Debug("*** VALORI VECCHI ***");
                _giornale.Debug(geoCurrent.ToDebugString());

                geoCurrent.Top  = geoCurrent.Top <= 0 ? 0 : (int)(geoCurrent.Top * scrn.WorkingArea.Height / geoCurrent.screenHeight);
                geoCurrent.Left = geoCurrent.Left <= 0 ? 0 : (int)(geoCurrent.Left * scrn.WorkingArea.Width / geoCurrent.screenWidth);

                geoCurrent.Height = (int)(geoCurrent.Height * scrn.WorkingArea.Height / geoCurrent.screenHeight);
                geoCurrent.Width  = (int)(geoCurrent.Width * scrn.WorkingArea.Width / geoCurrent.screenWidth);

                Screen s = (Screen)Screen.AllScreens.GetValue(geoCurrent.deviceEnum);
                System.Drawing.Rectangle r = s.WorkingArea;

                geoCurrent.screenHeight = (int)scrn.WorkingArea.Height;
                geoCurrent.screenWidth  = (int)scrn.WorkingArea.Width;

                _giornale.Debug("*** VALORI RICALCOLATI ***");
                _giornale.Debug(geoCurrent.ToDebugString());
            }

            GestoreFinestrePubbliche.risposizionaFinestra(this, geoCurrent);

            // Il salvataggio della posizione, lo farei solo su richiesta esplicita dell'utente

            if (salvaNuoviValori)
            {
                _giornale.Debug("Devo salvare i nuovi valori ricalcolati");
                _giornale.Debug("Devo salvare la configurazione utente su file xml");
                UserConfigSerializer.serializeToFile(cfg);
                _giornale.Info("Salvata la configurazione utente su file xml");
            }
        }