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();
}