Пример #1
0
 //============================================================
 // <T>删除一个组件。</T>
 //
 // @param component 组件
 //============================================================
 public virtual void Remove(FRcComponent component)
 {
     if (_components != null)
     {
         _components.Remove(component);
     }
 }
Пример #2
0
 //============================================================
 // <T>测试子组件是否需要序列化。</T>
 //
 // @param component 子组件
 //============================================================
 public virtual bool TestSerializeComponent(FRcComponent component)
 {
     if (!component.OptionValid)
     {
         return(false);
     }
     return(true);
 }
Пример #3
0
 //============================================================
 // <T>将来源组件插入到目标组件之后。</T>
 //
 // @param sourceComponent 组件
 // @param targetComponent 组件
 //============================================================
 public virtual void InsertAfter(FRcComponent sourceComponent, FRcComponent targetComponent)
 {
     if (sourceComponent != null)
     {
         sourceComponent.Parent = this;
     }
     Components.InsertAfter(sourceComponent, targetComponent);
 }
Пример #4
0
        //============================================================
        // <T>在父对象中删除自己。</T>
        //============================================================
        public void RemoveFromParent()
        {
            FRcComponent parent = _parent as FRcComponent;

            if (parent != null)
            {
                parent.Remove(this);
            }
        }
Пример #5
0
 //============================================================
 // <T>测试子组件是否需要序列化。</T>
 //
 // @param component 子组件
 //============================================================
 public override bool TestSerializeComponent(FRcComponent component)
 {
     if (!component.OptionValid)
     {
         return(false);
     }
     if (component is FRcScrollItem)
     {
         return(false);
     }
     return(true);
 }
Пример #6
0
 //============================================================
 // <T>在父对象中激活自己。</T>
 //
 // @param component 组件
 //============================================================
 protected void ActiveFromParent(FRcComponent component)
 {
     if (component != null)
     {
         FRcComponent parent = component.Parent as FRcComponent;
         if (parent != null)
         {
             parent.ActiveChildren(component);
             ActiveFromParent(parent);
         }
     }
 }
Пример #7
0
        //============================================================
        // <T>从输入流中反序列化内容。</T>
        //
        // @param input 输入流
        //============================================================
        public override void Unserialize(IInput input)
        {
            base.Unserialize(input);
            // 创建所有子节点
            int count = input.ReadInt16();

            for (int n = 0; n < count; n++)
            {
                string       typeName  = input.ReadString();
                FRcComponent component = _console.CreateComponent(typeName);
                component.Unserialize(input);
            }
        }
Пример #8
0
        //============================================================
        // <T>序列化内容到输出流。</T>
        //
        // @param output 输出流
        //============================================================
        public override void OnSerialize(IOutput output)
        {
            base.OnSerialize(output);
            // 序列化属性
            output.WriteUint8((byte)_spreadCd);
            output.WriteUint8((byte)_horizontalCount);
            output.WriteUint8((byte)_horizontalSpace);
            output.WriteUint8((byte)_verticalCount);
            output.WriteUint8((byte)_verticalSpace);
            output.WriteUint8((byte)_initialCount);
            // 获得项目数量
            int itemCount = 0;
            int total     = ComponmentCount;

            for (int n = 0; n < total; n++)
            {
                FRcComponent component = _components[n];
                if (!component.OptionValid)
                {
                    continue;
                }
                if (component is FRcScrollItem)
                {
                    itemCount++;
                }
            }
            // 写入模版集合
            output.WriteInt16((short)itemCount);
            for (int n = 0; n < total; n++)
            {
                FRcComponent component = _components[n];
                if (!component.OptionValid)
                {
                    continue;
                }
                if (component is FRcScrollItem)
                {
                    FByteStream stream = new FByteStream();
                    component.Serialize(stream);
                    output.WriteString(component.Name);
                    //output.WriteInt16((short)REnumUiComponent.Parse(_typeName));
                    output.WriteString(component.ClassName);
                    output.WriteInt32(stream.Length);
                    output.WriteBytes(stream.Memory, 0, stream.Length);
                }
            }
        }
Пример #9
0
 //============================================================
 // <T>加载配置信息。</T>
 //
 // @param xconfig 配置节点
 //============================================================
 public override void LoadConfig(FXmlNode xconfig)
 {
     base.LoadConfig(xconfig);
     if (xconfig.HasNode())
     {
         // 创建所有子节点
         foreach (FXmlNode xnode in xconfig.Nodes)
         {
             string       nodeName  = xnode.Name;
             FRcComponent component = _console.CreateComponent(nodeName);
             if (component != null)
             {
                 // 增加为子节点
                 component.Parent = this;
                 Push(component);
                 // 加载配置信息
                 component.LoadConfig(xnode);
             }
         }
     }
 }
Пример #10
0
 //============================================================
 // <T>增加一个子组件。</T>
 //
 // @param componment 子组件
 //============================================================
 public virtual void Push(FRcComponent component)
 {
     component.Parent = this;
     Components.Push(component);
 }
Пример #11
0
 //============================================================
 // <T>测试是否可以放入父控件内。</T>
 //
 // @param parent 父组件
 // @return 是否可以放入
 //============================================================
 public virtual bool TestParent(FRcComponent parent)
 {
     return(true);
 }
Пример #12
0
 //============================================================
 // <T>激活子节点处理。</T>
 //
 // @param component 组件
 //============================================================
 public virtual void ActiveChildren(FRcComponent component)
 {
 }