pascalabcnet/VisualPascalABCNETLinux/OptionsContent/ViewOptionsContent.cs
Mikhalkovich Stanislav 3072383106 Для Linux-версии исправлен DockContent, редактор (показ всплывающего окна)
Сделан новый проект VisualPABCLinux
И пришлось склонировать PluginsSupport, поскольку он вносит зависимость по редактору
Компоненты WeifenLuo для Linux надо после перекомпиляции скопировать в Libraries - подшить их к основному проекту просто не получилось
2022-06-30 09:47:11 +03:00

153 lines
6.4 KiB
C#

// Copyright (c) Ivan Bondarev, Stanislav Mikhalkovich (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using VisualPascalABCPlugins;
using PascalABCCompiler.Errors;
namespace VisualPascalABC.OptionsContent
{
public partial class ViewOptionsContent : UserControl,IOptionsContent
{
Form1 MainForm;
string strprefix = "VP_OC_VIEWOPTIONS_";
public ViewOptionsContent(Form1 MainForm)
{
this.MainForm = MainForm;
InitializeComponent();
PascalABCCompiler.StringResources.SetTextForAllObjects(this, strprefix);
foreach (string lng in PascalABCCompiler.StringResourcesLanguage.AccessibleLanguages)
{
languageSelect.Items.Add(lng);
}
if (PascalABCCompiler.StringResourcesLanguage.AccessibleLanguages.Count == 0)
languageSelect.Enabled = false;
}
private bool alreadyShown;
#region IOptionsContent Members
public string ContentName
{
get
{
return PascalABCCompiler.StringResources.Get(strprefix + "NAME");
}
}
public string Description
{
get
{
return PascalABCCompiler.StringResources.Get(strprefix + "DESCRIPTION");
}
}
public UserControl Content
{
get { return this; }
}
public void Action(OptionsContentAction action)
{
switch (action)
{
case OptionsContentAction.Show:
if (!alreadyShown)
{
languageSelect.SelectedItem = PascalABCCompiler.StringResourcesLanguage.CurrentLanguageName;
cbSaveFilesIfComilationOk.Checked = MainForm.UserOptions.SaveSourceFilesIfComilationOk;
cbPauseInRunModeIfConsole.Checked = MainForm.UserOptions.PauseInRunModeIfConsole;
cbAutoInsertCodeIsEnabledOnStartup.Checked = MainForm.UserOptions.AutoInsertCodeIsEnabledOnStartup;
addErrorStrategyComboBox();
cbShowDebugPlayPauseButtons.Checked = MainForm.PlayPauseButtonsVisibleInPanel;
alreadyShown = true;
}
break;
case OptionsContentAction.Ok:
UserOptions UsOpt = MainForm.UserOptions;
UsOpt.SaveSourceFilesIfComilationOk = cbSaveFilesIfComilationOk.Checked;
UsOpt.AutoInsertCodeIsEnabledOnStartup = cbAutoInsertCodeIsEnabledOnStartup.Checked;
MainForm.ErrorsManager.Strategy = (ErrorsStrategy)cbErrorsStrategy.Items.IndexOf(cbErrorsStrategy.SelectedItem);
switch (cbErrorsStrategy.Items.IndexOf(cbErrorsStrategy.SelectedItem))
{
case 0:
MainForm.ErrorsManager.Strategy = ErrorsStrategy.FirstOnly;
break;
case 1:
MainForm.ErrorsManager.Strategy = ErrorsStrategy.FirstSemanticAndSyntax;
break;
}
/*switch (cbErrorsStrategy.Items.IndexOf(cbErrorsStrategy.SelectedItem))
{
case 0:
MainForm.ErrorsManager.Strategy = ErrorsStrategy.All;
break;
case 1:
MainForm.ErrorsManager.Strategy = ErrorsStrategy.FirstOnly;
break;
case 2:
MainForm.ErrorsManager.Strategy = ErrorsStrategy.FirstSemanticAndSyntax;
break;
}
*/
UsOpt.PauseInRunModeIfConsole = cbPauseInRunModeIfConsole.Checked;
MainForm.UpdateUserOptions();
MainForm.PlayPauseButtonsVisibleInPanel = cbShowDebugPlayPauseButtons.Checked;
alreadyShown = false;
WorkbenchServiceFactory.OptionsService.SaveOptions();
//this.Enabled = true;
break;
case OptionsContentAction.Cancel:
alreadyShown = false;
break;
}
}
#endregion
private void addErrorStrategyComboBox()
{
cbErrorsStrategy.Items.Clear();
//cbErrorsStrategy.Items.Add(PascalABCCompiler.StringResources.Get(strprefix + "ES_ALL"));
cbErrorsStrategy.Items.Add(PascalABCCompiler.StringResources.Get(strprefix + "ES_FIRSTONLY"));
cbErrorsStrategy.Items.Add(PascalABCCompiler.StringResources.Get(strprefix + "ES_FIRSTSEMANTICANDSYNTAX"));
switch (MainForm.ErrorsManager.Strategy)
{
/*case ErrorsStrategy.All:
cbErrorsStrategy.SelectedItem = cbErrorsStrategy.Items[1];
break;*/
case ErrorsStrategy.FirstOnly:
cbErrorsStrategy.SelectedItem = cbErrorsStrategy.Items[0];
break;
case ErrorsStrategy.FirstSemanticAndSyntax:
cbErrorsStrategy.SelectedItem = cbErrorsStrategy.Items[1];
break;
default:
cbErrorsStrategy.SelectedItem = cbErrorsStrategy.Items[1];
break;
}
}
private void languageSelect_SelectedIndexChanged(object sender, EventArgs e)
{
PascalABCCompiler.StringResourcesLanguage.CurrentLanguageName = (string)languageSelect.SelectedItem;
CodeCompletionParserController.CurrentTwoLetterISO = PascalABCCompiler.StringResourcesLanguage.CurrentTwoLetterISO;
PascalABCCompiler.StringResources.SetTextForAllObjects(this, strprefix);
addErrorStrategyComboBox();
MainForm.UpdateOptionsForm();
}
private void cbShowDebugPlayPauseButtons_CheckedChanged(object sender, EventArgs e)
{
MainForm.PlayPauseButtonsVisibleInPanel = cbShowDebugPlayPauseButtons.Checked;
}
}
}