Exemplo n.º 1
0
        /// <summary>
        ///     This needs to be called to initialize the quick settings menu entries
        /// </summary>
        private void InitializeQuickSettingsMenu()
        {
            contextmenu_quicksettings.DropDownItems.Clear();

            if (_coreConfiguration.DisableQuickSettings)
            {
                return;
            }

            // Only add if the value is not fixed
            if (!_coreConfiguration.IsWriteProtected("CaptureMousepointer"))
            {
                // For the capture mousecursor option
                var captureMouseItem = new ToolStripMenuSelectListItem
                {
                    Text         = _greenshotLanguage.SettingsCaptureMousepointer,
                    Checked      = _coreConfiguration.CaptureMousepointer,
                    CheckOnClick = true
                };
                captureMouseItem.CheckStateChanged += CheckStateChangedHandler;

                contextmenu_quicksettings.DropDownItems.Add(captureMouseItem);
            }
            ToolStripMenuSelectList selectList;

            if (!_coreConfiguration.IsWriteProtected("Destinations"))
            {
                // screenshot destination
                selectList = new ToolStripMenuSelectList("destinations", true)
                {
                    Text = _greenshotLanguage.SettingsDestination
                };
                // Working with IDestination:
                foreach (var destination in _destinationHolder.SortedActiveDestinations)
                {
                    selectList.AddItem(destination.Description, destination, _coreConfiguration.OutputDestinations.Contains(destination.Designation));
                }
                selectList.CheckedChanged += QuickSettingDestinationChanged;
                contextmenu_quicksettings.DropDownItems.Add(selectList);
            }

            if (!_coreConfiguration.IsWriteProtected("WindowCaptureMode"))
            {
                // Capture Modes
                selectList = new ToolStripMenuSelectList("capturemodes", false)
                {
                    Text = _greenshotLanguage.SettingsWindowCaptureMode
                };
                var enumTypeName = typeof(WindowCaptureModes).Name;
                foreach (WindowCaptureModes captureMode in Enum.GetValues(typeof(WindowCaptureModes)))
                {
                    selectList.AddItem(Language.GetString(enumTypeName + "." + captureMode), captureMode, _coreConfiguration.WindowCaptureMode == captureMode);
                }
                selectList.CheckedChanged += QuickSettingCaptureModeChanged;
                contextmenu_quicksettings.DropDownItems.Add(selectList);
            }

            // print options
            selectList = new ToolStripMenuSelectList("printoptions", true)
            {
                Text = _greenshotLanguage.SettingsPrintoptions
            };

            foreach (var outputPrintIniValue in _coreConfiguration.GetIniValues().Values.Where(value => value.PropertyName.StartsWith("OutputPrint") && value.ValueType == typeof(bool) && !_coreConfiguration.IsWriteProtected(value.PropertyName)))
            {
                selectList.AddItem(Language.GetString(outputPrintIniValue.PropertyName), outputPrintIniValue, (bool)outputPrintIniValue.Value);
            }
            if (selectList.DropDownItems.Count > 0)
            {
                selectList.CheckedChanged += QuickSettingBoolItemChanged;
                contextmenu_quicksettings.DropDownItems.Add(selectList);
            }
            else
            {
                selectList.Dispose();
            }

            // effects
            selectList = new ToolStripMenuSelectList("effects", true)
            {
                Text = _greenshotLanguage.SettingsVisualization
            };

            var iniValue    = _coreConfiguration["PlayCameraSound"];
            var languageKey = _coreConfiguration.GetTagValue(iniValue.PropertyName, ConfigTags.LanguageKey) as string;

            if (!_coreConfiguration.IsWriteProtected(iniValue.PropertyName))
            {
                selectList.AddItem(Language.GetString(languageKey), iniValue, (bool)iniValue.Value);
            }
            iniValue    = _coreConfiguration["ShowTrayNotification"];
            languageKey = _coreConfiguration.GetTagValue(iniValue.PropertyName, ConfigTags.LanguageKey) as string;
            if (!_coreConfiguration.IsWriteProtected(iniValue.PropertyName))
            {
                selectList.AddItem(Language.GetString(languageKey), iniValue, (bool)iniValue.Value);
            }
            if (selectList.DropDownItems.Count > 0)
            {
                selectList.CheckedChanged += QuickSettingBoolItemChanged;
                contextmenu_quicksettings.DropDownItems.Add(selectList);
            }
            else
            {
                selectList.Dispose();
            }
        }