vimage.Config.Load C# (CSharp) Method

Load() public method

Loads and parses a config txt file. If it doesn't exist, a default one will be made.
public Load ( string configFile ) : void
configFile string
return void
        public void Load(string configFile)
        {
            // If config file doesn't exist, make one
            if (!File.Exists(configFile))
                Save(configFile);
            // Clear default controls and context menu before they are loaded back in
            foreach (var list in Settings)
            {
                if (list.Value is List<int>)
                    ((List<int>)list.Value).Clear();
            }
            ContextMenu.Clear();
            ContextMenu_Animation.Clear();
            CustomActions.Clear();
            CustomActionBindings.Clear();

            StreamReader reader = File.OpenText(configFile);
            string line = reader.ReadLine();

            while (line != null)
            {
                // if line is empty of has no '=' symbol, go to next
                if (line.Equals("") || line.IndexOf('=') == -1)
                {
                    line = reader.ReadLine();
                    continue;
                }

                // trim
                line = RemoveSpaces(line);

                // ignore comments
                if (line.IndexOf("//") != -1)
                    line = line.Substring(0, line.IndexOf("//"));

                // split variable name and values
                string[] nameValue = line.Split('=');

                // invalid name?
                string name = nameValue[0].ToUpper();
                if (!Settings.ContainsKey(name))
                {
                    line = reader.ReadLine();
                    continue;
                }

                // nothing after '='?, check next line
                if (nameValue[1].Equals(""))
                {
                    line = RemoveSpaces(reader.ReadLine());

                    // line is empty or is part of another setting, skip
                    if (line.Equals("") || line.IndexOf('=') != -1)
                        continue;
                    // line doesn't have open brace, skip
                    if (!line.Equals("{"))
                        continue;

                    // read section
                    line = ReadSection(reader, Settings[name] as List<object>, name);
                    continue;
                }

                // split values by commas
                string[] values = nameValue[1].Split(',');

                // Assign Values
                if (Settings[name] is List<int>)
                {
                    // Control
                    List<int> list = (List<int>)Settings[name];
                    for (int i = 0; i < values.Length; i++)
                    {
                        if (values[i].ToUpper().StartsWith("MOUSE"))
                        {
                            // Mouse Button
                            int btn = StringToMouseButton(values[i].ToUpper());
                            if (btn != -1)
                                list.Add(btn);
                        }
                        else if (values[i].Contains("+"))
                        {
                            // Keboard Combo
                            list.Add(-2); // denote that it's a key combo

                            string[] v = values[i].Split('+');

                            Keyboard.Key key1 = StringToKey(v[0].ToUpper());
                            if (key1 != Keyboard.Key.Unknown)
                                list.Add((int)key1);
                            Keyboard.Key key2 = StringToKey(v[1].ToUpper());
                            if (key2 != Keyboard.Key.Unknown)
                                list.Add((int)key2);
                        }
                        else
                        {
                            // Keyboard Key
                            Keyboard.Key key = StringToKey(values[i].ToUpper());
                            if (key != Keyboard.Key.Unknown)
                                list.Add((int)key);
                        }
                    }
                }
                else if (Settings[name] is int || Settings[name] is Enum)
                {
                    // Integer
                    int i;
                    if (int.TryParse(values[0], out i))
                        Settings[name] = i;
                }
                else if (Settings[name] is Boolean)
                {
                    // Boolean
                    if (values[0].Equals("1") || values[0].ToUpper().Equals("T") || values[0].ToUpper().Equals("TRUE"))
                        Settings[name] = true;
                    else
                        Settings[name] = false;
                }
                else if (Settings[name] is String)
                {
                    Settings[name] = values[0];
                }

                // next line
                line = reader.ReadLine();
            }

            reader.Close();
        }

Usage Example

Beispiel #1
0
        public ConfigWindow()
        {
            InitializeComponent();

            linkLabel1.TabStop = false; // won't set to false in the Designer.cs for weird reason

            // Load Config File
            vimageConfig = new Config();
            vimageConfig.Load(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "config.txt"));

            // Set Settings
            checkBox_OpenAtMousePosition.Checked = vimageConfig.Setting_OpenAtMousePosition;
            checkBox_SmoothingDefault.Checked = vimageConfig.Setting_SmoothingDefault;
            checkBox_BackgroundForImagesWithTransparencyDefault.Checked = vimageConfig.Setting_BackgroundForImagesWithTransparencyDefault;
            checkBox_PositionLargeWideImagesInCorner.Checked = vimageConfig.Setting_PositionLargeWideImagesInCorner;
            checkBox_PreloadNextImage.Checked = vimageConfig.Setting_PreloadNextImage;
            checkBox_OpenSettingsEXE.Checked = vimageConfig.Setting_OpenSettingsEXE;
            checkBox_ListenForConfigChanges.Checked = vimageConfig.Setting_ListenForConfigChanges;
            comboBox_LimitImagesToMonitor.SelectedIndex = vimageConfig.Setting_LimitImagesToMonitor;
            numericUpDown_MinImageSize.Value = vimageConfig.Setting_MinImageSize;
            numericUpDown_SmoothingMinImageSize.Value = vimageConfig.Setting_SmoothingMinImageSize;
            numericUpDown_ZoomSpeed.Value = vimageConfig.Setting_ZoomSpeed;
            numericUpDown_ZoomSpeedFast.Value = vimageConfig.Setting_ZoomSpeedFast;
            comboBox_DefaultSortBy.SelectedIndex = (int)vimageConfig.Setting_DefaultSortBy;
            comboBox_DefaultSortDir.SelectedIndex = (int)vimageConfig.Setting_DefaultSortDir;

            // Setup Control Bindings
            AddControlItem("Drag", vimageConfig.Control_Drag);
            AddControlItem("Close", vimageConfig.Control_Close);
            AddControlItem("Open Context Menu", vimageConfig.Control_OpenContextMenu);
            AddControlItem("Prev Image", vimageConfig.Control_PrevImage);
            AddControlItem("Next Image", vimageConfig.Control_NextImage);
            AddControlItem("Rotate Clockwise", vimageConfig.Control_RotateClockwise);
            AddControlItem("Rotate Anti-Clockwise", vimageConfig.Control_RotateAntiClockwise);
            AddControlItem("Flip", vimageConfig.Control_Flip);
            AddControlItem("Fit To Monitor Auto", vimageConfig.Control_FitToMonitorAuto);
            AddControlItem("Fit To Monitor Width", vimageConfig.Control_FitToMonitorWidth);
            AddControlItem("Fit To Monitor Height", vimageConfig.Control_FitToMonitorHeight);
            AddControlItem("Fit To Monitor Alt", vimageConfig.Control_FitToMonitorAlt);
            AddControlItem("Zoom Faster", vimageConfig.Control_ZoomFaster);
            AddControlItem("Zoom Alt", vimageConfig.Control_ZoomAlt);
            AddControlItem("Toggle Smoothing", vimageConfig.Control_ToggleSmoothing);
            AddControlItem("Toggle Background For Transparency", vimageConfig.Control_ToggleBackgroundForTransparency);
            AddControlItem("Toggle Always On Top", vimageConfig.Control_ToggleAlwaysOnTop);
            AddControlItem("Pause Animation", vimageConfig.Control_PauseAnimation);
            AddControlItem("Prev Frame", vimageConfig.Control_PrevFrame);
            AddControlItem("Next Frame", vimageConfig.Control_NextFrame);
            AddControlItem("Open Config", vimageConfig.Control_OpenConfig);
            AddControlItem("Reload Config", vimageConfig.Control_ReloadConfig);
            AddControlItem("Reset Image", vimageConfig.Control_ResetImage);
            AddControlItem("Open At Location", vimageConfig.Control_OpenAtLocation);
            AddControlItem("Delete", vimageConfig.Control_Delete);
            AddControlItem("Copy", vimageConfig.Control_Copy);
            AddControlItem("Copy as Image", vimageConfig.Control_CopyAsImage);
            AddControlItem("Open Duplicate Image", vimageConfig.Control_OpenDuplicateImage);
            AddControlItem("Random Image", vimageConfig.Control_RandomImage);

            // Setup Context Menu Editor
            checkBox_ContextMenuShowMargin.Checked = vimageConfig.ContextMenuShowMargin;
            numericUpDown_ContextMenu_Animation_InsertAtIndex.Value = vimageConfig.ContextMenu_Animation_InsertAtIndex;

            AddContextMenuItems(vimageConfig.ContextMenu);
            tabControl_ContextMenus.SelectedIndex = 1;
            AddContextMenuItems(vimageConfig.ContextMenu_Animation);
            tabControl_ContextMenus.SelectedIndex = 0;

            if (ContextMenuItems.Count > 0)
                ContextMenuItems[0].GiveItemFocus();

            AddCustomActionItems(vimageConfig.CustomActions);
            AddCustomActionBindings(vimageConfig.CustomActionBindings);
        }
All Usage Examples Of vimage.Config::Load