예제 #1
0
파일: Parser.cs 프로젝트: slagusev/Gwen.CS
 /// <summary>
 /// Parse content of the container element.
 /// </summary>
 /// <param name="parent">Parent control.</param>
 public void ParseContainerContent(Gwen.Control.ControlBase parent)
 {
     foreach (string elementName in NextElement())
     {
         ParseElement(parent);
     }
 }
예제 #2
0
파일: Parser.cs 프로젝트: phinoox/Gwen.CS
        /// <summary>
        /// Parse attributes.
        /// </summary>
        /// <param name="element">Control.</param>
        public void ParseAttributes(Gwen.Control.ControlBase element)
        {
            if (m_Reader.HasAttributes)
            {
                while (m_Reader.MoveToNextAttribute())
                {
                    if (m_CurrentElement != null)
                    {
                        //xmlns only for code completion in vs code
                        if (m_Reader.Name == "xmlns")
                        {
                            continue;
                        }
                        if (!SetAttributeValue(m_CurrentElement, element, m_Reader.Name, m_Reader.Value))
                        {
                            throw new XmlException(String.Format("Attribute '{0}' not found.", m_Reader.Name));
                        }
                    }
                    else
                    {
                        throw new XmlException("Trying to set an attribute value without an element.");
                    }
                }

                m_Reader.MoveToElement();
            }
        }
예제 #3
0
        public DynValue GetComponent(Gwen.Control.ControlBase view, string name)
        {
            Gwen.Control.ControlBase control = null;
            if (view.Name == name)
            {
                control = view;
            }
            else
            {
                control = view.FindChildByName(name, true);
            }

            if (control == null)
            {
                return(null);
            }

            if (control.Component != null)
            {
                LuaComponent luaComponent = control.Component as LuaComponent;
                if (luaComponent != null)
                {
                    return(luaComponent.Self);
                }
                else
                {
                    return(null);
                }
            }
            else
            {
                return(null);
            }
        }
예제 #4
0
 public void Invoke(Gwen.Control.ControlBase sender, IDictionary parameters)
 {
     Invoked?.Invoke(sender, new LuaEventArgs()
     {
         Parameters = parameters
     });
 }
예제 #5
0
        public LuaComponent(Gwen.Control.ControlBase parent, DynValue constructor, Gwen.Xml.IXmlSource xmlSource, Script script)
            : base(parent, xmlSource)
        {
            this.script = script;

            DynValue result = script.Call(constructor, View);

            switch (result.Type)
            {
            case DataType.Table:
                self = result;
                break;

            case DataType.Tuple:
                if (result.Tuple.Length >= 1)
                {
                    self = result.Tuple[0];
                }
                if (result.Tuple.Length >= 2)
                {
                    if (result.Tuple[1].Type == DataType.Function)
                    {
                        onCreated = result.Tuple[1];
                    }
                }
                break;
            }

            if (self == null)
            {
                throw new ScriptRuntimeException("Component must be implemented as a lua table.");
            }
        }
예제 #6
0
        protected ControlBase(Gwen.Control.ControlBase target)
        {
            if (target == null)
            {
                throw new ScriptRuntimeException("Target must not be null");
            }

            this.target = target;
        }
예제 #7
0
 public static HSVColorPicker Create(Gwen.Control.ControlBase control)
 {
     if (control == null)
     {
         return(null);
     }
     else
     {
         return(new HSVColorPicker(control));
     }
 }
예제 #8
0
 public static new ProgressBar Create(Gwen.Control.ControlBase control)
 {
     if (control == null)
     {
         return(null);
     }
     else
     {
         return(new ProgressBar(control));
     }
 }
예제 #9
0
 public static TextBox Create(Gwen.Control.ControlBase control)
 {
     if (control == null)
     {
         return(null);
     }
     else
     {
         return(new TextBox(control));
     }
 }
예제 #10
0
 public static Table Create(Gwen.Control.ControlBase control)
 {
     if (control == null)
     {
         return(null);
     }
     else
     {
         return(new Table(control));
     }
 }
예제 #11
0
 public static new Popup Create(Gwen.Control.ControlBase control)
 {
     if (control == null)
     {
         return(null);
     }
     else
     {
         return(new Popup(control));
     }
 }
예제 #12
0
 public static Border Create(Gwen.Control.ControlBase control)
 {
     if (control == null)
     {
         return(null);
     }
     else
     {
         return(new Border(control));
     }
 }
예제 #13
0
 public static new TextBoxPassword Create(Gwen.Control.ControlBase control)
 {
     if (control == null)
     {
         return(null);
     }
     else
     {
         return(new TextBoxPassword(control));
     }
 }
예제 #14
0
 public static HorizontalSplitter Create(Gwen.Control.ControlBase control)
 {
     if (control == null)
     {
         return(null);
     }
     else
     {
         return(new HorizontalSplitter(control));
     }
 }
예제 #15
0
 public static CrossSplitter Create(Gwen.Control.ControlBase control)
 {
     if (control == null)
     {
         return(null);
     }
     else
     {
         return(new CrossSplitter(control));
     }
 }
예제 #16
0
 public static NumericUpDown Create(Gwen.Control.ControlBase control)
 {
     if (control == null)
     {
         return(null);
     }
     else
     {
         return(new NumericUpDown(control));
     }
 }
예제 #17
0
 public static new LinkLabel Create(Gwen.Control.ControlBase control)
 {
     if (control == null)
     {
         return(null);
     }
     else
     {
         return(new LinkLabel(control));
     }
 }
예제 #18
0
 public static StackLayout Create(Gwen.Control.ControlBase control)
 {
     if (control == null)
     {
         return(null);
     }
     else
     {
         return(new StackLayout(control));
     }
 }
예제 #19
0
 public static LabeledCheckBox Create(Gwen.Control.ControlBase control)
 {
     if (control == null)
     {
         return(null);
     }
     else
     {
         return(new LabeledCheckBox(control));
     }
 }
예제 #20
0
 public static new RadioButton Create(Gwen.Control.ControlBase control)
 {
     if (control == null)
     {
         return(null);
     }
     else
     {
         return(new RadioButton(control));
     }
 }
예제 #21
0
 public static Menu Create(Gwen.Control.ControlBase control)
 {
     if (control == null)
     {
         return(null);
     }
     else
     {
         return(new Menu(control));
     }
 }
예제 #22
0
 public static CollapsibleList Create(Gwen.Control.ControlBase control)
 {
     if (control == null)
     {
         return(null);
     }
     else
     {
         return(new CollapsibleList(control));
     }
 }
예제 #23
0
 public static DockControl Create(Gwen.Control.ControlBase control)
 {
     if (control == null)
     {
         return(null);
     }
     else
     {
         return(new DockControl(control));
     }
 }
예제 #24
0
 public static HorizontalLayout Create(Gwen.Control.ControlBase control)
 {
     if (control == null)
     {
         return(null);
     }
     else
     {
         return(new HorizontalLayout(control));
     }
 }
예제 #25
0
 public static ImagePanel Create(Gwen.Control.ControlBase control)
 {
     if (control == null)
     {
         return(null);
     }
     else
     {
         return(new ImagePanel(control));
     }
 }
예제 #26
0
 public static EditableComboBox Create(Gwen.Control.ControlBase control)
 {
     if (control == null)
     {
         return(null);
     }
     else
     {
         return(new EditableComboBox(control));
     }
 }
예제 #27
0
 public static VerticalSlider Create(Gwen.Control.ControlBase control)
 {
     if (control == null)
     {
         return(null);
     }
     else
     {
         return(new VerticalSlider(control));
     }
 }
예제 #28
0
 public static ToolWindow Create(Gwen.Control.ControlBase control)
 {
     if (control == null)
     {
         return(null);
     }
     else
     {
         return(new ToolWindow(control));
     }
 }
예제 #29
0
 public static new ListBoxRow Create(Gwen.Control.ControlBase control)
 {
     if (control == null)
     {
         return(null);
     }
     else
     {
         return(new ListBoxRow(control));
     }
 }
예제 #30
0
파일: Parser.cs 프로젝트: slagusev/Gwen.CS
        private static Gwen.Control.ControlBase DefaultElementHandler(Parser parser, Type type, Gwen.Control.ControlBase parent)
        {
            Gwen.Control.ControlBase element = Activator.CreateInstance(type, parent) as Gwen.Control.ControlBase;

            parser.ParseAttributes(element);
            if (parser.MoveToContent())
            {
                parser.ParseContainerContent(element);
            }

            return(element);
        }