Beispiel #1
0
        //выгружает настройки в файл
        public static void SaveToFile(WTrayOptions wTrayOptions)
        {
            XmlSerializer xmlSer     = new XmlSerializer(typeof(WTrayOptions));                          //экземпляр xmlSer класса XmlSerializer
            string        fileName   = System.Environment.CurrentDirectory + "\\Data\\WtrayOptions.xml"; //имя файла с настройками
            FileStream    fileStream = new FileStream(fileName, FileMode.Create);                        //поток fileStream для создания XML-файла

            xmlSer.Serialize(fileStream, wTrayOptions);                                                  //сериализация
            fileStream.Close();                                                                          //закрываем поток
        }
Beispiel #2
0
        //загружает настройки из файла
        public static void LoadFromFile(ref WTrayOptions wTrayOptions)
        {
            XmlSerializer xmlSer     = new XmlSerializer(typeof(WTrayOptions));                          //экземпляр xmlSer класса XmlSerializer
            string        fileName   = System.Environment.CurrentDirectory + "\\Data\\WTrayOptions.xml"; //имя файла с настройками
            FileStream    fileStream = new FileStream(fileName, FileMode.Open);                          //поток fileStream для чтения XML-файла

            wTrayOptions = (WTrayOptions)xmlSer.Deserialize(fileStream);                                 //десериализация
            fileStream.Close();                                                                          //закрываем поток
        }
Beispiel #3
0
        private void настройкиToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //показать окно с настройками
            formOptions.ShowDialog();

            //если поменялся город, или прокси
            if ((wTrayOptions.CityOption != formOptions.iCities[formOptions.comboBoxCities.SelectedIndex])
                ||
                (wTrayOptions.UseProxy != formOptions.checkBoxProxy.Checked)
                ||
                (wTrayOptions.Proxy != formOptions.textBoxProxy.Text && formOptions.checkBoxProxy.Checked == true))
            {
                wTrayOptions.CityOption = formOptions.iCities[formOptions.comboBoxCities.SelectedIndex];

                //запускаем асинхронную загрузку дабы не забивать основной поток
                this.webClient.DownloadFileAsync(new Uri("http://informer.gismeteo.ru/xml/" + wTrayOptions.CityOption.ToString() + ".xml"), System.Environment.CurrentDirectory + "\\Weather\\" + wTrayOptions.CityOption.ToString() + ".xml.new");
            }

            //настройки могли поменяться, поэтому переприсваиваем их
            if (formOptions.radioButton1.Checked == true)
            {
                wTrayOptions.ShowOption = 1;
            }
            if (formOptions.radioButton2.Checked == true)
            {
                wTrayOptions.ShowOption = 2;
            }
            if (formOptions.radioButton3.Checked == true)
            {
                wTrayOptions.ShowOption = 3;
            }
            if (formOptions.radioButton4.Checked == true)
            {
                wTrayOptions.UpdateOption = 4;
            }
            if (formOptions.radioButton5.Checked == true)
            {
                wTrayOptions.UpdateOption = 5;
            }
            if (formOptions.radioButton6.Checked == true)
            {
                wTrayOptions.UpdateOption = 6;
            }
            if (formOptions.radioButton7.Checked == true)
            {
                wTrayOptions.UpdateOption = 7;
            }
            wTrayOptions.UseProxy = formOptions.checkBoxProxy.Checked;
            wTrayOptions.Proxy    = formOptions.textBoxProxy.Text;

            try
            {
                if (wTrayOptions.UseProxy == true)
                {
                    this.webClient.Proxy = new WebProxy(wTrayOptions.Proxy);
                }
                else
                {
                    this.webClient.Proxy = null;
                }
            }
            catch (Exception er)
            {
                MessageBox.Show("Настройки прокси ошибочны!\n" + er.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            //и применяем их
            if (wTrayOptions.ShowOption == 1)
            {
                txtIcon.Visible = true;
                picIcon.Visible = false;
            }
            if (wTrayOptions.ShowOption == 2)
            {
                txtIcon.Visible = false;
                picIcon.Visible = true;
            }
            if (wTrayOptions.ShowOption == 3)
            {
                txtIcon.Visible = true;
                picIcon.Visible = true;
            }
            if (wTrayOptions.UpdateOption == 4)
            {
                this.timerDownload.Interval = 3 * 60 * 60 * 1000;
                this.timerDownload.Enabled  = true;
            }
            if (wTrayOptions.UpdateOption == 5)
            {
                this.timerDownload.Interval = 6 * 60 * 60 * 1000;
                this.timerDownload.Enabled  = true;
            }
            if (wTrayOptions.UpdateOption == 6)
            {
                this.timerDownload.Interval = 12 * 60 * 60 * 1000;
                this.timerDownload.Enabled  = true;
            }
            if (wTrayOptions.UpdateOption == 7)
            {
                this.timerDownload.Enabled = false;
            }

            //и сохраняем
            WTrayOptions.SaveToFile(this.wTrayOptions);
        }
Beispiel #4
0
        public FormMain()
        {
            InitializeComponent();

            System.Environment.CurrentDirectory = Application.StartupPath;

            //перо для отрисовки
            Pen myPen = new Pen(Color.FromArgb(140, 140, 140));

            //создаём рисовалку по иконке с картинкой
            this.picGraphics = Graphics.FromImage(this.picBitmap);
            //рисуем квадратик, ограничивающий иконку
            this.picGraphics.DrawRectangle(myPen, 0, 0, 15, 15);
            //размер текста
            Size textSize = TextRenderer.MeasureText("?", this.textFont);

            //отрисовка текста
            TextRenderer.DrawText(this.picGraphics, "?", this.textFont, new Point((16 - textSize.Width) / 2 + 1, 0), Color.Black);

            //создаём рисовалку по иконке с текстом
            this.txtGraphics = Graphics.FromImage(this.txtBitmap);
            //рисуем квадартик, ограничивающий иконку
            this.txtGraphics.DrawRectangle(myPen, 0, 0, 15, 15);
            //размер текста
            textSize = TextRenderer.MeasureText("t°", this.textFont);
            //отрисовка текста
            TextRenderer.DrawText(this.txtGraphics, "t°", this.textFont, new Point((16 - textSize.Width) / 2 + 3, 0), Color.Black);

            //отрисовываем иконку в трее
            this.picIcon.Icon = Icon.FromHandle(this.picBitmap.GetHicon());
            //отрисовываем иконку в трее
            this.txtIcon.Icon = Icon.FromHandle(this.txtBitmap.GetHicon());

            //загружаем настройки
            WTrayOptions.LoadFromFile(ref this.wTrayOptions);

            //прописываем их в форму с настройками
            formOptions.comboBoxCities.SelectedIndex = formOptions.iCities.IndexOf(wTrayOptions.CityOption);
            if (wTrayOptions.ShowOption == 1)
            {
                formOptions.radioButton1.Checked = true;
            }
            if (wTrayOptions.ShowOption == 2)
            {
                formOptions.radioButton2.Checked = true;
            }
            if (wTrayOptions.ShowOption == 3)
            {
                formOptions.radioButton3.Checked = true;
            }
            if (wTrayOptions.UpdateOption == 4)
            {
                formOptions.radioButton4.Checked = true;
            }
            if (wTrayOptions.UpdateOption == 5)
            {
                formOptions.radioButton5.Checked = true;
            }
            if (wTrayOptions.UpdateOption == 6)
            {
                formOptions.radioButton6.Checked = true;
            }
            if (wTrayOptions.UpdateOption == 7)
            {
                formOptions.radioButton7.Checked = true;
            }
            formOptions.checkBoxProxy.Checked = wTrayOptions.UseProxy;
            formOptions.textBoxProxy.Text     = wTrayOptions.Proxy;

            try
            {
                if (wTrayOptions.UseProxy == true)
                {
                    this.webClient.Proxy = new WebProxy(wTrayOptions.Proxy);
                }
                else
                {
                    this.webClient.Proxy = null;
                }
            }
            catch (Exception e)
            {
                MessageBox.Show("Настройки прокси ошибочны!\n" + e.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            //и применяем их
            if (wTrayOptions.ShowOption == 1)
            {
                txtIcon.Visible = true;
                picIcon.Visible = false;
            }
            if (wTrayOptions.ShowOption == 2)
            {
                txtIcon.Visible = false;
                picIcon.Visible = true;
            }
            if (wTrayOptions.ShowOption == 3)
            {
                txtIcon.Visible = true;
                picIcon.Visible = true;
            }
            if (wTrayOptions.UpdateOption == 4)
            {
                this.timerDownload.Interval = 3 * 60 * 60 * 1000;
                this.timerDownload.Enabled  = true;
            }
            if (wTrayOptions.UpdateOption == 5)
            {
                this.timerDownload.Interval = 6 * 60 * 60 * 1000;
                this.timerDownload.Enabled  = true;
            }
            if (wTrayOptions.UpdateOption == 6)
            {
                this.timerDownload.Interval = 12 * 60 * 60 * 1000;
                this.timerDownload.Enabled  = true;
            }
            if (wTrayOptions.UpdateOption == 7)
            {
                this.timerDownload.Enabled = false;
            }

            //вешаем обработчик на завершение загрузки
            this.webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(this.OnDownloadFileCompleted);
            //запускаем асинхронную загрузку дабы не забивать основной поток
            this.webClient.DownloadFileAsync(new Uri("http://informer.gismeteo.ru/xml/" + wTrayOptions.CityOption.ToString() + ".xml"), System.Environment.CurrentDirectory + "\\Weather\\" + wTrayOptions.CityOption.ToString() + ".xml.new");
        }