예제 #1
0
        public ControlTile(ControlContainerMembers data)
        {
            tileMembers = data;

            var GetControlDataFunc = data.Item2.Item1 as Func <int, ControlMembers>;
            Func <int, TerminalControlBase> GetControlFunc = (x => new TerminalControl(GetControlDataFunc(x)));

            Controls = new ReadOnlyApiCollection <TerminalControlBase>(GetControlFunc, data.Item2.Item2);
        }
예제 #2
0
            public ControlCategory(ControlContainerMembers data)
            {
                this.data = data;

                var GetTileDataFunc = data.Item2.Item1 as Func <int, ControlContainerMembers>;
                Func <int, ControlTile> GetTileFunc = x => new ControlTile(GetTileDataFunc(x));

                Tiles = new ReadOnlyApiCollection <ControlTile>(GetTileFunc, data.Item2.Item2);
            }
예제 #3
0
            public TerminalPageCategoryBase(ControlContainerMembers data)
            {
                this.data = data;

                var GetPageDataFunc = data.Item2.Item1 as Func <int, ControlMembers>;
                Func <int, TerminalPageBase> GetPageFunc = (x => new TerminalPage(GetPageDataFunc(x)));

                Pages = new ReadOnlyApiCollection <TerminalPageBase>(GetPageFunc, data.Item2.Item2);
            }
                private FontManager() : base(ApiModuleTypes.FontManager, false, true)
                {
                    var members = GetApiData();

                    Func <int, IFontMin> fontGetter = x => new FontData(members.Item1.Item1(x));

                    fonts = new ReadOnlyApiCollection <IFontMin>(fontGetter, members.Item1.Item2);

                    TryAddFontFunc = members.Item2;
                    GetFontFunc    = members.Item3;
                }
예제 #5
0
                    public LineData(TextBuilder parent, int index)
                    {
                        this.parent = parent;
                        this.index  = index;

                        characters = new ReadOnlyApiCollection <IRichChar>
                                     (
                            x => new RichCharData(parent, new Vector2I(index, x)),
                            () => (int)parent.GetLineMemberFunc(index, (int)LineAccessors.Count)
                                     );
                    }
예제 #6
0
                public TextBuilder(TextBuilderMembers data)
                {
                    GetLineMemberFunc = data.Item1.Item1;
                    GetLineCountFunc  = data.Item1.Item2;

                    GetCharMemberFunc  = data.Item2;
                    GetOrSetMemberFunc = data.Item3;
                    InsertTextAction   = data.Item4;
                    SetTextAction      = data.Item5;
                    ClearAction        = data.Item6;

                    lines = new ReadOnlyApiCollection <ILine>(x => new LineData(this, x), GetLineCountFunc);
                }
예제 #7
0
            private BindManager() : base(ApiModuleTypes.BindManager, false, true)
            {
                var clientData = GetApiData();

                GetOrSetMemberFunc = clientData.Item1;
                UnloadAction       = clientData.Item6;

                // Group list
                GetOrSetGroupMemberFunc = clientData.Item2.Item1;
                GetGroupCountFunc       = clientData.Item2.Item2;

                // Bind lists
                IsBindPressedFunc      = clientData.Item4;
                GetOrSetBindMemberFunc = clientData.Item3.Item1;
                GetBindCountFunc       = clientData.Item3.Item2;

                // Control list
                GetControlMember    = clientData.Item5.Item1;
                GetControlCountFunc = clientData.Item5.Item2;

                groups   = new ReadOnlyApiCollection <IBindGroup>(x => new BindGroup(x), GetGroupCountFunc);
                controls = new ReadOnlyApiCollection <IControl>(x => new Control(x), GetControlCountFunc);
            }