vimage.Config.Save C# (CSharp) Method

Save() public method

Saves settings to config txt file.
public Save ( string configFile ) : void
configFile string
return void
        public void Save(string configFile)
        {
            // Open
            FileStream fileStream;
            if (File.Exists(configFile))
            {
                // Clear if file already exists
                File.WriteAllText(configFile, String.Empty);
                fileStream = File.Open(configFile, FileMode.Open, FileAccess.Write);
            }
            else
                fileStream = File.Create(configFile);
            StreamWriter writer = new StreamWriter(fileStream);

            // Write
            writer.Write("// General Settings" + Environment.NewLine);

            WriteSetting(writer, "OpenAtMousePosition", Setting_OpenAtMousePosition);
            WriteSetting(writer, "SmoothingDefault", Setting_SmoothingDefault);
            WriteSetting(writer, "BackgroundForImagesWithTransparencyDefault", Setting_BackgroundForImagesWithTransparencyDefault);
            WriteSetting(writer, "LimitImagesToMonitor", Setting_LimitImagesToMonitor, "0=NONE, 1=HEIGHT, 2=WIDTH, 3=AUTO");
            WriteSetting(writer, "PositionLargeWideImagesInCorner", Setting_PositionLargeWideImagesInCorner,
                "ie: Desktop Wallpapers and Screenshots");
            WriteSetting(writer, "PreloadNextImage", Setting_PreloadNextImage,
                "when using the next/prev image buttons, the image after the one just loaded will be loaded as well");
            WriteSetting(writer, "OpenSettingsEXE", Setting_OpenSettingsEXE, "if false, will open config.txt instead");
            WriteSetting(writer, "ListenForConfigChanges", Setting_ListenForConfigChanges,
                "vimage will reload settings automatically when they are changed.");
            WriteSetting(writer, "MinImageSize", Setting_MinImageSize,
                "if an image is smaller than this (in width or height) it will scaled up to it automatically");
            WriteSetting(writer, "SmoothingMinImageSize", Setting_SmoothingMinImageSize,
                "images smaller than this will not have smoothing turned on (if 0, all images with use smoothing)");
            WriteSetting(writer, "ZoomSpeed", Setting_ZoomSpeed);
            WriteSetting(writer, "ZoomSpeedFast", Setting_ZoomSpeedFast);
            WriteSetting(writer, "DefaultSortBy", (int)Setting_DefaultSortBy);
            WriteSetting(writer, "DefaultSortDir", (int)Setting_DefaultSortDir);

            writer.Write(Environment.NewLine);
            writer.Write("// Bindings" + Environment.NewLine);

            WriteControl(writer, "Drag", Control_Drag);
            WriteControl(writer, "Close", Control_Close);
            WriteControl(writer, "OpenContextMenu", Control_OpenContextMenu);
            WriteControl(writer, "PrevImage", Control_PrevImage);
            WriteControl(writer, "NextImage", Control_NextImage);
            WriteControl(writer, "RotateClockwise", Control_RotateClockwise);
            WriteControl(writer, "RotateAntiClockwise", Control_RotateAntiClockwise);
            WriteControl(writer, "Flip", Control_Flip);
            WriteControl(writer, "FitToMonitorHeight", Control_FitToMonitorHeight);
            WriteControl(writer, "FitToMonitorWidth", Control_FitToMonitorWidth);
            WriteControl(writer, "FitToMonitorAuto", Control_FitToMonitorAuto);
            WriteControl(writer, "FitToMonitorAlt", Control_FitToMonitorAlt);
            WriteControl(writer, "ZoomFaster", Control_ZoomFaster);
            WriteControl(writer, "ZoomAlt", Control_ZoomAlt);
            WriteControl(writer, "ToggleSmoothing", Control_ToggleSmoothing);
            WriteControl(writer, "ToggleBackgroundForTransparency", Control_ToggleBackgroundForTransparency);
            WriteControl(writer, "ToggleAlwaysOnTop", Control_ToggleAlwaysOnTop);
            WriteControl(writer, "PauseAnimation", Control_PauseAnimation);
            WriteControl(writer, "PrevFrame", Control_PrevFrame);
            WriteControl(writer, "NextFrame", Control_NextFrame);
            WriteControl(writer, "OpenConfig", Control_OpenConfig);
            WriteControl(writer, "ReloadConfig", Control_ReloadConfig);
            WriteControl(writer, "ResetImage", Control_ResetImage);
            WriteControl(writer, "OpenAtLocation", Control_OpenAtLocation);
            WriteControl(writer, "Delete", Control_Delete);
            WriteControl(writer, "Copy", Control_Copy);
            WriteControl(writer, "CopyAsImage", Control_CopyAsImage);
            WriteControl(writer, "OpenDuplicateImage", Control_OpenDuplicateImage);
            WriteControl(writer, "RandomImage", Control_RandomImage);

            writer.Write(Environment.NewLine);
            writer.Write("// Context Menu" + Environment.NewLine);

            WriteContextMenuSetup(writer, "ContextMenu", ContextMenu);
            WriteContextMenuSetup(writer, "ContextMenu_Animation", ContextMenu_Animation);

            WriteSetting(writer, "ContextMenu_Animation_InsertAtIndex", ContextMenu_Animation_InsertAtIndex);
            WriteSetting(writer, "ContextMenu_ShowMargin", ContextMenuShowMargin, "shows checkboxes for certain menu items");

            writer.Write(Environment.NewLine);
            WriteCustomActions(writer, "CustomActions", CustomActions);
            WriteCustomActionBindings(writer, "CustomActionBindings", CustomActionBindings);

            // Close
            writer.Close();
        }