Esempio n. 1
0
        void showOptions()
        {
            if (options == null || options.IsDisposed)
            {
                options = new formOptions();

                options.Main = this;
                options.Starting = true;

                //load font list
                options.comboFont.Items.Clear();
                foreach (FontFamily font in System.Drawing.FontFamily.Families)
                    options.comboFont.Items.Add(font.Name);

                //build launcher scan dirs dictionary
                options.LauncherScanDirsOriginal = launcherScanDirs;
                options.LauncherScanDirs = new Dictionary<string, string>();
                List<string> dirList = new List<string>();

                foreach (string scanDir in launcherScanDirs.Split('/'))
                    if (scanDir != "")
                    {
                        string[] dirOptions = scanDir.Split('>');
                        options.LauncherScanDirs.Add(dirOptions[0], dirOptions[1]);

                        dirList.Add(dirOptions[0]);
                    }

                //set constraints
                options.numX.Minimum = 0;
                options.numX.Maximum = Screen.PrimaryScreen.WorkingArea.Width;
                options.numY.Minimum = 0;
                options.numY.Maximum = Screen.PrimaryScreen.WorkingArea.Height;
                options.numW.Minimum = 0;
                options.numW.Maximum = Screen.PrimaryScreen.WorkingArea.Width;
                options.numMinH.Minimum = 0;
                options.numMinH.Maximum = Screen.PrimaryScreen.WorkingArea.Height;
                options.numMaxH.Minimum = 0;
                options.numMaxH.Maximum = Screen.PrimaryScreen.WorkingArea.Height;

                //set tags
                options.numX.Tag = x;
                options.numY.Tag = y;
                options.numW.Tag = this.Width;
                options.numMinH.Tag = minH;
                options.numMaxH.Tag = maxH;
                options.txtHotkey.Tag = Hotkey.HotkeyToString(hotkey, hotkeyCtrl, hotkeyAlt, hotkeyShift);
                options.numAutoHideDelay.Tag = autoHideDelay;
                options.comboHideStyle.Tag = hideStyle.ToString();
                options.numOpacityActive.Tag = (int)(opacityActive * 100);
                options.numOpacityPassive.Tag = (int)(opacityPassive * 100);
                options.picBackColor.Tag = txtCMD.BackColor;

                options.comboFont.Tag = txtCMD.Font.Name;
                options.numFontSize.Tag = (int)txtCMD.Font.Size;
                options.chkBold.Tag = txtCMD.Font.Bold;
                options.chkItalic.Tag = txtCMD.Font.Italic;
                options.picTextColor.Tag = txtCMD.ForeColor;

                options.txtStartDir.Tag = dir;
                options.numPrintDelay.Tag = getDelay(timerPrint);
                options.numPrintAtOnce.Tag = printAtOnce;
                options.chkPrompt.Tag = prompt;
                options.chkBlankLine.Tag = blankLine;
                options.chkEcho.Tag = echo;
                options.picEchoColor.Tag = echoColor;
                options.picErrorColor.Tag = errorColor;

                options.txtTodoDir.Tag = todoDir;
                options.chkTodoHideDone.Tag = todoHideDone;
                options.chkTodoAutoTransfer.Tag = todoAutoTransfer;
                options.picTodoMiscColor.Tag = todoMiscColor;
                options.picTodoItemColor.Tag = todoItemColor;
                options.picTodoDoneColor.Tag = todoDoneColor;

                options.txtUser.Tag = mailUser;
                options.txtPass.Tag = mailPass;
                options.chkMailCountOnNewMail.Tag = mailUpdateOnNewMail;
                options.chkMailCountOnFocus.Tag = mailUpdateOnFocus;
                options.numMailCheckPeriod.Tag = timerMailCheck.Interval / 60000;
                options.txtMailSound.Tag = mailSound;
                options.numMailSoundThreshold.Tag = mailSoundThreshold;
                options.picMailCountColor.Tag = mailCountColor;
                options.picMailHeaderColor.Tag = mailHeaderColor;
                options.picMailSummaryColor.Tag = mailSummaryColor;

                options.chkTwCountOnNewTweet.Tag = twUpdateOnNewTweet;
                options.chkTwCountOnFocus.Tag = twUpdateOnFocus;
                options.numTwCountMinPeriod.Tag = minTweetPeriod;
                options.chkTwDisplayPictures.Tag = twDisplayPictures;
                options.chkTwDisplayInstagrams.Tag = twDisplayInstagrams;
                options.txtTwSound.Tag = twSound;
                options.numTwSoundThreshold.Tag = twSoundThreshold;
                options.picTwUsernameColor.Tag = twUserColor;
                options.picTwMiscColor.Tag = twMiscColor;
                options.picTwTweetColor.Tag = twTweetColor;
                options.picTwLinkColor.Tag = twLinkColor;
                options.picTwTimestampColor.Tag = twTimeColor;
                options.picTwCountColor.Tag = twCountColor;

                options.picRedditLinkColor.Tag = redditLinkColor;
                options.picRedditMiscColor.Tag = redditMiscColor;

                options.txtLauncherHotkey.Tag = Hotkey.HotkeyToString(launcherHotkey, launcherHotkeyCtrl, launcherHotkeyAlt, launcherHotkeyShift);
                options.numLauncherMaxSuggestions.Tag = launcherMaxSuggestions;
                options.chkLauncherAutohide.Tag = launcherAutohide;
                options.numLauncherScanPeriod.Tag = launcherScanPeriod;

                options.txtWeatherLocation.Tag = weatherLocation;
                options.txtWeatherWebcam.Tag = weatherWebcam;
                options.rdbWeatherMetric.Tag = weatherMetric;
                options.chkWeatherShowOnStart.Tag = weatherShowOnStart;
                options.comboWeatherLang.Tag = weatherLang;

                //set current values
                options.numX.Value = x;
                options.numY.Value = y;
                options.numW.Value = this.Width;
                options.numMinH.Value = minH;
                options.numMaxH.Value = maxH;
                options.txtHotkey.Text = Hotkey.HotkeyToString(hotkey, hotkeyCtrl, hotkeyAlt, hotkeyShift);
                options.numAutoHideDelay.Value = autoHideDelay;
                options.comboHideStyle.Text = hideStyle.ToString();
                options.numOpacityActive.Value = (int)(opacityActive * 100);
                options.numOpacityPassive.Value = (int)(opacityPassive * 100);
                options.picBackColor.BackColor = txtCMD.BackColor;

                options.comboFont.Text = txtCMD.Font.Name;
                options.numFontSize.Value = (int)txtCMD.Font.Size;
                options.chkBold.Checked = txtCMD.Font.Bold;
                options.chkItalic.Checked = txtCMD.Font.Italic;
                options.picTextColor.BackColor = txtCMD.ForeColor;

                options.txtStartDir.Text = dir;
                options.numPrintDelay.Value = getDelay(timerPrint);
                options.numPrintAtOnce.Value = printAtOnce;
                options.chkPrompt.Checked = prompt;
                options.chkBlankLine.Checked = blankLine;
                options.chkEcho.Checked = echo;
                options.picEchoColor.BackColor = echoColor;
                options.picErrorColor.BackColor = errorColor;

                options.txtTodoDir.Text = todoDir;
                options.chkTodoHideDone.Checked = todoHideDone;
                options.chkTodoAutoTransfer.Checked = todoAutoTransfer;
                options.picTodoMiscColor.BackColor = todoMiscColor;
                options.picTodoItemColor.BackColor = todoItemColor;
                options.picTodoDoneColor.BackColor = todoDoneColor;

                options.txtUser.Text = mailUser;
                options.txtPass.Text = mailPass;
                options.chkMailCountOnNewMail.Checked = mailUpdateOnNewMail;
                options.chkMailCountOnFocus.Checked = mailUpdateOnFocus;
                options.numMailCheckPeriod.Value = timerMailCheck.Interval / 60000;
                options.txtMailSound.Text = mailSound;
                options.numMailSoundThreshold.Value = mailSoundThreshold;
                options.picMailCountColor.BackColor = mailCountColor;
                options.picMailHeaderColor.BackColor = mailHeaderColor;
                options.picMailSummaryColor.BackColor = mailSummaryColor;

                options.chkTwCountOnNewTweet.Checked = twUpdateOnNewTweet;
                options.chkTwCountOnFocus.Checked = twUpdateOnFocus;
                options.numTwCountMinPeriod.Value = minTweetPeriod;
                options.chkTwDisplayPictures.Checked = twDisplayPictures;
                options.chkTwDisplayInstagrams.Checked = twDisplayInstagrams;
                options.txtTwSound.Text = twSound;
                options.numTwSoundThreshold.Value = twSoundThreshold;
                options.picTwUsernameColor.BackColor = twUserColor;
                options.picTwMiscColor.BackColor = twMiscColor;
                options.picTwTweetColor.BackColor = twTweetColor;
                options.picTwLinkColor.BackColor = twLinkColor;
                options.picTwTimestampColor.BackColor = twTimeColor;
                options.picTwCountColor.BackColor = twCountColor;

                options.picRedditLinkColor.BackColor = redditLinkColor;
                options.picRedditMiscColor.BackColor = redditMiscColor;

                options.txtLauncherHotkey.Text = Hotkey.HotkeyToString(launcherHotkey, launcherHotkeyCtrl, launcherHotkeyAlt, launcherHotkeyShift);
                options.numLauncherMaxSuggestions.Value = launcherMaxSuggestions;
                options.chkLauncherAutohide.Checked = launcherAutohide;
                options.numLauncherScanPeriod.Value = launcherScanPeriod;
                options.lstLauncherDirs.Items.AddRange(dirList.ToArray());

                options.txtWeatherLocation.Text = weatherLocation;
                options.txtWeatherWebcam.Text = weatherWebcam;
                if (weatherMetric)
                    options.rdbWeatherMetric.Checked = true;
                else
                    options.rdbWeatherImperial.Checked = true;
                options.chkWeatherShowOnStart.Checked = weatherShowOnStart;
                for (int i = 0; i < options.comboWeatherLang.Items.Count; i++)
                    if (options.comboWeatherLang.Items[i].ToString().Contains("/" + weatherLang))
                    {
                        options.comboWeatherLang.SelectedIndex = i;
                        break;
                    }

                //runs at startup?
                RegistryKey rkApp = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
                options.chkRunAtStartup.Checked = rkApp.GetValue("Adjutant") != null;

                options.Starting = false;

                options.Show();
            }
        }
Esempio n. 2
0
        public void UpdateOptions(formOptions options)
        {
            //if todo dir changed copy existing todo lists there
            if (options.txtTodoDir.Text != todoDir)
            {
                string dest = options.txtTodoDir.Text;
                if (dest[dest.Length - 1] != '\\')
                    dest += "\\";

                foreach (string file in Directory.GetFiles(todoDir))
                    File.Copy(file, dest + Path.GetFileName(file));
            }

            int prevHotkey = hotkey, prevLauncherHotkey = launcherHotkey;

            //assign new options
            x = (int)options.numX.Value;
            y = (int)options.numY.Value;
            this.Width = (int)options.numW.Value;
            minH = (int)options.numMinH.Value;
            maxH = (int)options.numMaxH.Value;
            Hotkey.StringToHotkey(options.txtHotkey.Text, out hotkey, out hotkeyCtrl, out hotkeyAlt, out hotkeyShift);
            autoHideDelay = (int)options.numAutoHideDelay.Value;
            hideStyle = (HideStyle)Enum.Parse(typeof(HideStyle), options.comboHideStyle.Text);
            opacityActive = (double)options.numOpacityActive.Value / 100;
            opacityPassive = (double)options.numOpacityPassive.Value / 100;

            txtCMD.BackColor = options.picBackColor.BackColor;

            FontStyle style;
            if (options.chkBold.Checked && options.chkItalic.Checked)
                style = FontStyle.Bold | FontStyle.Italic;
            else if (options.chkBold.Checked)
                style = FontStyle.Bold;
            else if (options.chkItalic.Checked)
                style = FontStyle.Italic;
            else
                style = FontStyle.Regular;

            Font prevFont = lblPrompt.Font;

            txtCMD.Font = new Font(options.comboFont.Text, (float)options.numFontSize.Value, style);
            txtCMD.ForeColor = options.picTextColor.BackColor;

            if (lblPrompt.Font != prevFont)
            {
                this.OnResize(new EventArgs());

                foreach (Chunk chunk in chunks)
                    chunk.SetTextBounds(new Rectangle(0, 0, measureWidth(chunk.ToString()), lineH));

                update();
            }

            applyUIStyle();

            dir = options.txtStartDir.Text;
            setDelay(timerPrint, (int)options.numPrintDelay.Value);
            printAtOnce = (int)options.numPrintAtOnce.Value;
            prompt = options.chkPrompt.Checked;
            blankLine = options.chkBlankLine.Checked;
            echo = options.chkEcho.Checked;
            echoColor = options.picEchoColor.BackColor;
            errorColor = options.picErrorColor.BackColor;

            todoDir = options.txtTodoDir.Text;
            todoHideDone = options.chkTodoHideDone.Checked;
            todoAutoTransfer = options.chkTodoAutoTransfer.Checked;
            todoMiscColor = options.picTodoMiscColor.BackColor;
            todoItemColor = options.picTodoItemColor.BackColor;
            todoDoneColor = options.picTodoDoneColor.BackColor;

            mailUser = options.txtUser.Text;
            mailPass = options.txtPass.Text;
            mailUpdateOnNewMail = options.chkMailCountOnNewMail.Checked;
            mailUpdateOnFocus = options.chkMailCountOnFocus.Checked;
            timerMailCheck.Interval = (int)options.numMailCheckPeriod.Value * 60000;
            mailSound = options.txtMailSound.Text;
            mailSoundThreshold = (int)options.numMailSoundThreshold.Value;
            mailCountColor = options.picMailCountColor.BackColor;
            mailHeaderColor = options.picMailHeaderColor.BackColor;
            mailSummaryColor = options.picMailSummaryColor.BackColor;

            twUpdateOnNewTweet = options.chkTwCountOnNewTweet.Checked;
            twUpdateOnFocus = options.chkTwCountOnFocus.Checked;
            minTweetPeriod = (int)options.numTwCountMinPeriod.Value;
            twDisplayPictures = options.chkTwDisplayPictures.Checked;
            twDisplayInstagrams = options.chkTwDisplayInstagrams.Checked;
            twSound = options.txtTwSound.Text;
            twSoundThreshold = (int)options.numTwSoundThreshold.Value;
            twUserColor = options.picTwUsernameColor.BackColor;
            twMiscColor = options.picTwMiscColor.BackColor;
            twTweetColor = options.picTwTweetColor.BackColor;
            twLinkColor = options.picTwLinkColor.BackColor;
            twTimeColor = options.picTwTimestampColor.BackColor;
            twCountColor = options.picTwCountColor.BackColor;

            redditLinkColor = options.picRedditLinkColor.BackColor;
            redditMiscColor = options.picRedditMiscColor.BackColor;

            Hotkey.StringToHotkey(options.txtLauncherHotkey.Text, out launcherHotkey, out launcherHotkeyCtrl, out launcherHotkeyAlt, out launcherHotkeyShift);
            launcherMaxSuggestions = (int)options.numLauncherMaxSuggestions.Value;
            launcherAutohide = options.chkLauncherAutohide.Checked;
            launcherScanPeriod = (int)options.numLauncherScanPeriod.Value;
            launcherScanDirs = options.GetLauncherScanDirs();

            weatherWebcam = options.txtWeatherWebcam.Text;
            weatherLocation = options.txtWeatherLocation.Text;
            weatherMetric = options.rdbWeatherMetric.Checked;
            weatherShowOnStart = options.chkWeatherShowOnStart.Checked;
            weatherLang = options.comboWeatherLang.Text.Substring(options.comboWeatherLang.Text.IndexOf('/') + 1);

            //apply changes & save
            Chunk.Font = txtCMD.Font;
            Chunk.PrintAtOnce = printAtOnce;
            Chunk.InstantOutput = timerPrint.Interval == ZERO_DELAY;
            Chunk.ErrorColor = errorColor;

            if (hotkey != prevHotkey)
            {
                Hotkey.UnregisterHotKey(this, false);
                Hotkey.RegisterHotKey(this, hotkey, hotkeyCtrl, hotkeyAlt, hotkeyShift, false);
            }

            if (launcherHotkey != prevLauncherHotkey)
            {
                Hotkey.UnregisterHotKey(this, true);
                Hotkey.RegisterHotKey(this, launcherHotkey, launcherHotkeyCtrl, launcherHotkeyAlt, launcherHotkeyShift, true);
            }

            Twitter.DisplayPictures = twDisplayPictures;
            Twitter.DisplayInstagrams = twDisplayInstagrams;

            this.Top = y;
            this.Left = x;

            initGrafx();
            windowAutosize();
            setPrompt();

            if (gmail != null)
                gmail.ChangeLogin(mailUser, mailPass);

            saveOptions();
        }