From 360799b1cf9eb00869081d961d16b007d00105e4 Mon Sep 17 00:00:00 2001 From: Vladimir Aleshechkin Date: Thu, 4 Jan 2024 13:14:45 +0500 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B5=D0=BB=D0=B8=D0=B72=5F6=5F0=5F0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DataGridViewRowHeadersWidthSizeMode.cs | 44 +++++++++++++++++-- .../DataGridViewSelectionMode.cs | 40 ++++++++++++++++- .../OneScriptForms/DataGridViewTriState.cs | 38 +++++++++++++++- OneScriptForms/OneScriptForms/DataRowState.cs | 40 ++++++++++++++++- OneScriptForms/OneScriptForms/DataType.cs | 40 ++++++++++++++++- OneScriptForms/OneScriptForms/Day.cs | 43 +++++++++++++++++- OneScriptForms/OneScriptForms/DialogResult.cs | 43 +++++++++++++++++- OneScriptForms/OneScriptForms/DockStyle.cs | 41 ++++++++++++++++- OneScriptForms/OneScriptForms/DrawMode.cs | 38 +++++++++++++++- OneScriptForms/OneScriptForms/FlatStyle.cs | 39 +++++++++++++++- 10 files changed, 394 insertions(+), 12 deletions(-) diff --git a/OneScriptForms/OneScriptForms/DataGridViewRowHeadersWidthSizeMode.cs b/OneScriptForms/OneScriptForms/DataGridViewRowHeadersWidthSizeMode.cs index 4c44c398..fbce9285 100644 --- a/OneScriptForms/OneScriptForms/DataGridViewRowHeadersWidthSizeMode.cs +++ b/OneScriptForms/OneScriptForms/DataGridViewRowHeadersWidthSizeMode.cs @@ -1,16 +1,54 @@ using ScriptEngine.Machine.Contexts; +using ScriptEngine.Machine; +using System.Collections; +using System.Collections.Generic; namespace osf { [ContextClass ("КлРежимШириныЗаголовковСтрок", "ClDataGridViewRowHeadersWidthSizeMode")] - public class ClDataGridViewRowHeadersWidthSizeMode : AutoContext + public class ClDataGridViewRowHeadersWidthSizeMode : AutoContext, ICollectionContext, IEnumerable { - private int m_enableResizing = (int)System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.EnableResizing; // 0 Пользователи могут изменять ширину заголовка столбца с помощью мыши. - private int m_disableResizing = (int)System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.DisableResizing; // 1 Пользователи не могут изменять ширину заголовка столбца с помощью мыши. + private int m_enableResizing = (int)System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.EnableResizing; // 0 Пользователи могут изменять ширину заголовка колонки с помощью мыши. + private int m_disableResizing = (int)System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.DisableResizing; // 1 Пользователи не могут изменять ширину заголовка колонки с помощью мыши. private int m_autoSizeToAllHeaders = (int)System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders; // 2 Ширина заголовка строки изменяется, чтобы вместить содержимое всех ячеек заголовка строки. private int m_autoSizeToDisplayedHeaders = (int)System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.AutoSizeToDisplayedHeaders; // 3 Ширина заголовка строки изменяется, чтобы вместить содержимое всех отображенных ячеек заголовка строки. private int m_autoSizeToFirstHeader = (int)System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.AutoSizeToFirstHeader; // 4 Ширина заголовка строки изменяется, чтобы вместить содержимое первого заголовка строки. + private List _list; + + public int Count() + { + return _list.Count; + } + + public CollectionEnumerator GetManagedIterator() + { + return new CollectionEnumerator(this); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return ((IEnumerable)_list).GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + foreach (var item in _list) + { + yield return (item as IValue); + } + } + + internal ClDataGridViewRowHeadersWidthSizeMode() + { + _list = new List(); + _list.Add(ValueFactory.Create(AutoSizeToAllHeaders)); + _list.Add(ValueFactory.Create(AutoSizeToDisplayedHeaders)); + _list.Add(ValueFactory.Create(AutoSizeToFirstHeader)); + _list.Add(ValueFactory.Create(DisableResizing)); + _list.Add(ValueFactory.Create(EnableResizing)); + } + [ContextProperty("Включить", "EnableResizing")] public int EnableResizing { diff --git a/OneScriptForms/OneScriptForms/DataGridViewSelectionMode.cs b/OneScriptForms/OneScriptForms/DataGridViewSelectionMode.cs index e2fd0f52..2c2786a2 100644 --- a/OneScriptForms/OneScriptForms/DataGridViewSelectionMode.cs +++ b/OneScriptForms/OneScriptForms/DataGridViewSelectionMode.cs @@ -1,9 +1,12 @@ using ScriptEngine.Machine.Contexts; +using ScriptEngine.Machine; +using System.Collections; +using System.Collections.Generic; namespace osf { [ContextClass ("КлРежимВыбораТаблицы", "ClDataGridViewSelectionMode")] - public class ClDataGridViewSelectionMode : AutoContext + public class ClDataGridViewSelectionMode : AutoContext, ICollectionContext, IEnumerable { private int m_cellSelect = (int)System.Windows.Forms.DataGridViewSelectionMode.CellSelect; // 0 Можно выбрать одну или несколько отдельных ячеек. private int m_fullRowSelect = (int)System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; // 1 Вся строка может быть выбрана путем щелчка заголовка строки или ячейки, содержащейся в этой строке. @@ -11,6 +14,41 @@ public class ClDataGridViewSelectionMode : AutoContext _list; + + public int Count() + { + return _list.Count; + } + + public CollectionEnumerator GetManagedIterator() + { + return new CollectionEnumerator(this); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return ((IEnumerable)_list).GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + foreach (var item in _list) + { + yield return (item as IValue); + } + } + + internal ClDataGridViewSelectionMode() + { + _list = new List(); + _list.Add(ValueFactory.Create(CellSelect)); + _list.Add(ValueFactory.Create(ColumnHeaderSelect)); + _list.Add(ValueFactory.Create(FullColumnSelect)); + _list.Add(ValueFactory.Create(FullRowSelect)); + _list.Add(ValueFactory.Create(RowHeaderSelect)); + } + [ContextProperty("ЗаголовокКолонки", "ColumnHeaderSelect")] public int ColumnHeaderSelect { diff --git a/OneScriptForms/OneScriptForms/DataGridViewTriState.cs b/OneScriptForms/OneScriptForms/DataGridViewTriState.cs index 0469258c..575d4186 100644 --- a/OneScriptForms/OneScriptForms/DataGridViewTriState.cs +++ b/OneScriptForms/OneScriptForms/DataGridViewTriState.cs @@ -1,14 +1,50 @@ using ScriptEngine.Machine.Contexts; +using ScriptEngine.Machine; +using System.Collections; +using System.Collections.Generic; namespace osf { [ContextClass ("КлТриСостояния", "ClDataGridViewTriState")] - public class ClDataGridViewTriState : AutoContext + public class ClDataGridViewTriState : AutoContext, ICollectionContext, IEnumerable { private int m_notSet = (int)System.Windows.Forms.DataGridViewTriState.NotSet; // 0 Это свойство не задано и будет функционировать по другому. private int m_true = (int)System.Windows.Forms.DataGridViewTriState.True; // 1 Состояние свойства - Истина. private int m_false = (int)System.Windows.Forms.DataGridViewTriState.False; // 2 Состояние свойства - Ложь. + private List _list; + + public int Count() + { + return _list.Count; + } + + public CollectionEnumerator GetManagedIterator() + { + return new CollectionEnumerator(this); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return ((IEnumerable)_list).GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + foreach (var item in _list) + { + yield return (item as IValue); + } + } + + internal ClDataGridViewTriState() + { + _list = new List(); + _list.Add(ValueFactory.Create(False)); + _list.Add(ValueFactory.Create(NotSet)); + _list.Add(ValueFactory.Create(True)); + } + [ContextProperty("Истина", "True")] public int True { diff --git a/OneScriptForms/OneScriptForms/DataRowState.cs b/OneScriptForms/OneScriptForms/DataRowState.cs index 033ccd3b..979f5cca 100644 --- a/OneScriptForms/OneScriptForms/DataRowState.cs +++ b/OneScriptForms/OneScriptForms/DataRowState.cs @@ -1,9 +1,12 @@ using ScriptEngine.Machine.Contexts; +using ScriptEngine.Machine; +using System.Collections; +using System.Collections.Generic; namespace osf { [ContextClass ("КлСостояниеСтрокиДанных", "ClDataRowState")] - public class ClDataRowState : AutoContext + public class ClDataRowState : AutoContext, ICollectionContext, IEnumerable { private int m_detached = (int)System.Data.DataRowState.Detached; // 1 Строка была создана, но не является частью какой-либо коллекции данных. Поток данных находится в этом состоянии сразу после его создания и до его добавления в коллекцию или после его удаления из коллекции. private int m_unchanged = (int)System.Data.DataRowState.Unchanged; // 2 Строка не изменилась с момента последнего вызова функции СтрокаДанных.ПринятьИзменения (DataRow.AcceptChanges). @@ -11,6 +14,41 @@ public class ClDataRowState : AutoContext private int m_deleted = (int)System.Data.DataRowState.Deleted; // 8 Строка была удалена с помощью метода СтрокаДанных.Удалить (DataRow.Delete). private int m_modified = (int)System.Data.DataRowState.Modified; // 16 Строка была изменена, и функция СтрокаДанных.ПринятьИзменения (DataRow.AcceptChanges) не была вызвана. + private List _list; + + public int Count() + { + return _list.Count; + } + + public CollectionEnumerator GetManagedIterator() + { + return new CollectionEnumerator(this); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return ((IEnumerable)_list).GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + foreach (var item in _list) + { + yield return (item as IValue); + } + } + + internal ClDataRowState() + { + _list = new List(); + _list.Add(ValueFactory.Create(Added)); + _list.Add(ValueFactory.Create(Deleted)); + _list.Add(ValueFactory.Create(Detached)); + _list.Add(ValueFactory.Create(Modified)); + _list.Add(ValueFactory.Create(Unchanged)); + } + [ContextProperty("Добавлена", "Added")] public int Added { diff --git a/OneScriptForms/OneScriptForms/DataType.cs b/OneScriptForms/OneScriptForms/DataType.cs index 0844fc21..24f6f5b6 100644 --- a/OneScriptForms/OneScriptForms/DataType.cs +++ b/OneScriptForms/OneScriptForms/DataType.cs @@ -1,9 +1,12 @@ using ScriptEngine.Machine.Contexts; +using ScriptEngine.Machine; +using System.Collections; +using System.Collections.Generic; namespace osf { [ContextClass ("КлТипДанных", "ClDataType")] - public class ClDataType : AutoContext + public class ClDataType : AutoContext, ICollectionContext, IEnumerable { private int m_string = 0; // 0 Тип данных Строка. private int m_number = 1; // 1 Тип данных Число. @@ -11,6 +14,41 @@ public class ClDataType : AutoContext private int m_date = 3; // 3 Тип данных Дата. private int m_object = 4; // 4 Тип данных Объект. + private List _list; + + public int Count() + { + return _list.Count; + } + + public CollectionEnumerator GetManagedIterator() + { + return new CollectionEnumerator(this); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return ((IEnumerable)_list).GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + foreach (var item in _list) + { + yield return (item as IValue); + } + } + + internal ClDataType() + { + _list = new List(); + _list.Add(ValueFactory.Create(Boolean)); + _list.Add(ValueFactory.Create(Date)); + _list.Add(ValueFactory.Create(Number)); + _list.Add(ValueFactory.Create(Object)); + _list.Add(ValueFactory.Create(String)); + } + [ContextProperty("Булево", "Boolean")] public int Boolean { diff --git a/OneScriptForms/OneScriptForms/Day.cs b/OneScriptForms/OneScriptForms/Day.cs index b79d4333..e9261a52 100644 --- a/OneScriptForms/OneScriptForms/Day.cs +++ b/OneScriptForms/OneScriptForms/Day.cs @@ -1,9 +1,12 @@ using ScriptEngine.Machine.Contexts; +using ScriptEngine.Machine; +using System.Collections; +using System.Collections.Generic; namespace osf { [ContextClass ("КлДень", "ClDay")] - public class ClDay : AutoContext + public class ClDay : AutoContext, ICollectionContext, IEnumerable { private int m_monday = (int)System.Windows.Forms.Day.Monday; // 0 День: понедельник. private int m_tuesday = (int)System.Windows.Forms.Day.Tuesday; // 1 День: вторник. @@ -14,6 +17,44 @@ public class ClDay : AutoContext private int m_sunday = (int)System.Windows.Forms.Day.Sunday; // 6 День: воскресенье. private int m_default = (int)System.Windows.Forms.Day.Default; // 7 День недели, используемый по умолчанию, определенный приложением. + private List _list; + + public int Count() + { + return _list.Count; + } + + public CollectionEnumerator GetManagedIterator() + { + return new CollectionEnumerator(this); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return ((IEnumerable)_list).GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + foreach (var item in _list) + { + yield return (item as IValue); + } + } + + internal ClDay() + { + _list = new List(); + _list.Add(ValueFactory.Create(Default)); + _list.Add(ValueFactory.Create(Friday)); + _list.Add(ValueFactory.Create(Monday)); + _list.Add(ValueFactory.Create(Saturday)); + _list.Add(ValueFactory.Create(Sunday)); + _list.Add(ValueFactory.Create(Thursday)); + _list.Add(ValueFactory.Create(Tuesday)); + _list.Add(ValueFactory.Create(Wednesday)); + } + [ContextProperty("Воскресенье", "Sunday")] public int Sunday { diff --git a/OneScriptForms/OneScriptForms/DialogResult.cs b/OneScriptForms/OneScriptForms/DialogResult.cs index b67b8ce0..6a8fabcb 100644 --- a/OneScriptForms/OneScriptForms/DialogResult.cs +++ b/OneScriptForms/OneScriptForms/DialogResult.cs @@ -1,9 +1,12 @@ using ScriptEngine.Machine.Contexts; +using ScriptEngine.Machine; +using System.Collections; +using System.Collections.Generic; namespace osf { [ContextClass ("КлРезультатДиалога", "ClDialogResult")] - public class ClDialogResult : AutoContext + public class ClDialogResult : AutoContext, ICollectionContext, IEnumerable { private int m_none = (int)System.Windows.Forms.DialogResult.None; // 0 Диалоговое окно возвращает значение Ничего. Это означает, что модальное диалоговое окно не закрывается. private int m_oK = (int)System.Windows.Forms.DialogResult.OK; // 1 Диалоговое окно возвращает значение ОК. @@ -14,6 +17,44 @@ public class ClDialogResult : AutoContext private int m_yes = (int)System.Windows.Forms.DialogResult.Yes; // 6 Диалоговое окно возвращает значение Да. private int m_no = (int)System.Windows.Forms.DialogResult.No; // 7 Диалоговое окно возвращает значение Нет. + private List _list; + + public int Count() + { + return _list.Count; + } + + public CollectionEnumerator GetManagedIterator() + { + return new CollectionEnumerator(this); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return ((IEnumerable)_list).GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + foreach (var item in _list) + { + yield return (item as IValue); + } + } + + internal ClDialogResult() + { + _list = new List(); + _list.Add(ValueFactory.Create(Abort)); + _list.Add(ValueFactory.Create(Cancel)); + _list.Add(ValueFactory.Create(Ignore)); + _list.Add(ValueFactory.Create(No)); + _list.Add(ValueFactory.Create(None)); + _list.Add(ValueFactory.Create(OK)); + _list.Add(ValueFactory.Create(Retry)); + _list.Add(ValueFactory.Create(Yes)); + } + [ContextProperty("Да", "Yes")] public int Yes { diff --git a/OneScriptForms/OneScriptForms/DockStyle.cs b/OneScriptForms/OneScriptForms/DockStyle.cs index 0f8ee5c5..a1c6634f 100644 --- a/OneScriptForms/OneScriptForms/DockStyle.cs +++ b/OneScriptForms/OneScriptForms/DockStyle.cs @@ -1,9 +1,12 @@ using ScriptEngine.Machine.Contexts; +using ScriptEngine.Machine; +using System.Collections; +using System.Collections.Generic; namespace osf { [ContextClass ("КлСтильСтыковки", "ClDockStyle")] - public class ClDockStyle : AutoContext + public class ClDockStyle : AutoContext, ICollectionContext, IEnumerable { private int m_none = (int)System.Windows.Forms.DockStyle.None; // 0 Элемент управления не закреплен к краям содержащего его элемента управления. private int m_top = (int)System.Windows.Forms.DockStyle.Top; // 1 Верхний край элемента управления закрепляется к верхнему краю содержащего его элемента управления. @@ -12,6 +15,42 @@ public class ClDockStyle : AutoContext private int m_right = (int)System.Windows.Forms.DockStyle.Right; // 4 Правый край элемента управления закрепляется к правому краю содержащего его элемента управления. private int m_fill = (int)System.Windows.Forms.DockStyle.Fill; // 5 Края элемента управления закрепляются ко всем краям содержащего его элемента управления, а их размеры изменяются соответствующим образом. + private List _list; + + public int Count() + { + return _list.Count; + } + + public CollectionEnumerator GetManagedIterator() + { + return new CollectionEnumerator(this); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return ((IEnumerable)_list).GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + foreach (var item in _list) + { + yield return (item as IValue); + } + } + + internal ClDockStyle() + { + _list = new List(); + _list.Add(ValueFactory.Create(Bottom)); + _list.Add(ValueFactory.Create(Fill)); + _list.Add(ValueFactory.Create(Left)); + _list.Add(ValueFactory.Create(None)); + _list.Add(ValueFactory.Create(Right)); + _list.Add(ValueFactory.Create(Top)); + } + [ContextProperty("Верх", "Top")] public int Top { diff --git a/OneScriptForms/OneScriptForms/DrawMode.cs b/OneScriptForms/OneScriptForms/DrawMode.cs index d7442529..1559b83d 100644 --- a/OneScriptForms/OneScriptForms/DrawMode.cs +++ b/OneScriptForms/OneScriptForms/DrawMode.cs @@ -1,14 +1,50 @@ using ScriptEngine.Machine.Contexts; +using ScriptEngine.Machine; +using System.Collections; +using System.Collections.Generic; namespace osf { [ContextClass ("КлРежимРисования", "ClDrawMode")] - public class ClDrawMode : AutoContext + public class ClDrawMode : AutoContext, ICollectionContext, IEnumerable { private int m_normal = (int)System.Windows.Forms.DrawMode.Normal; // 0 Рисование всех элементов в элементе управления выполняется операционной системой, и все элементы имеют одинаковый размер. private int m_ownerDrawFixed = (int)System.Windows.Forms.DrawMode.OwnerDrawFixed; // 1 Рисование всех элементов в элементе управления выполняется вручную, и все элементы имеют одинаковый размер. private int m_ownerDrawVariable = (int)System.Windows.Forms.DrawMode.OwnerDrawVariable; // 2 Рисование всех элементов в элементе управления выполняется вручную, и размер их может быть разным. + private List _list; + + public int Count() + { + return _list.Count; + } + + public CollectionEnumerator GetManagedIterator() + { + return new CollectionEnumerator(this); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return ((IEnumerable)_list).GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + foreach (var item in _list) + { + yield return (item as IValue); + } + } + + internal ClDrawMode() + { + _list = new List(); + _list.Add(ValueFactory.Create(Normal)); + _list.Add(ValueFactory.Create(OwnerDrawFixed)); + _list.Add(ValueFactory.Create(OwnerDrawVariable)); + } + [ContextProperty("ВручнуюПеременный", "OwnerDrawVariable")] public int OwnerDrawVariable { diff --git a/OneScriptForms/OneScriptForms/FlatStyle.cs b/OneScriptForms/OneScriptForms/FlatStyle.cs index 8dce9a44..750f0362 100644 --- a/OneScriptForms/OneScriptForms/FlatStyle.cs +++ b/OneScriptForms/OneScriptForms/FlatStyle.cs @@ -1,16 +1,53 @@ using ScriptEngine.Machine.Contexts; +using ScriptEngine.Machine; +using System.Collections; +using System.Collections.Generic; using System.Windows.Forms; namespace osf { [ContextClass ("КлПлоскийСтиль", "ClFlatStyle")] - public class ClFlatStyle : AutoContext + public class ClFlatStyle : AutoContext, ICollectionContext, IEnumerable { private int m_flat = (int)(System.Windows.Forms.FlatStyle)FlatStyle.Flat; // 0 Элемент управления выглядит плоским. private int m_popup = (int)(System.Windows.Forms.FlatStyle)FlatStyle.Popup; // 1 Элемент управления выглядит плоским, пока указатель мыши перемещается над ним, после чего становится объемным. private int m_standard = (int)(System.Windows.Forms.FlatStyle)FlatStyle.Standard; // 2 Элемент управления выглядит объемным. private int m_system = (int)(System.Windows.Forms.FlatStyle)FlatStyle.System; // 3 Внешний вид элемента управления определяется операционной системой пользователя. + private List _list; + + public int Count() + { + return _list.Count; + } + + public CollectionEnumerator GetManagedIterator() + { + return new CollectionEnumerator(this); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return ((IEnumerable)_list).GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + foreach (var item in _list) + { + yield return (item as IValue); + } + } + + internal ClFlatStyle() + { + _list = new List(); + _list.Add(ValueFactory.Create(Flat)); + _list.Add(ValueFactory.Create(Popup)); + _list.Add(ValueFactory.Create(Standard)); + _list.Add(ValueFactory.Create(System)); + } + [ContextProperty("Всплывающий", "Popup")] public int Popup {