private CGSize PrepareLayout(bool createLayoutInfo, CGSize?size = null)
        {
            using (
                _trace.WriteEventActivity(
                    TraceProvider.ListViewBaseLayout_PrepareLayoutStart,
                    TraceProvider.ListViewBaseLayout_PrepareLayoutStop
                    )
                )
            {
                if (size.HasValue && _lastAvailableSize != size)
                {
                    _dirtyState = DirtyState.NeedsRelayout;
                }

                if (_dirtyState == DirtyState.NeedsRelayout)
                {
                    _lastReportedSize  = PrepareLayoutInternal(createLayoutInfo, size);
                    _lastAvailableSize = size ?? CGSize.Empty;

                    if (createLayoutInfo)
                    {
                        _dirtyState = DirtyState.None;
                        (CollectionView as ListViewBase)?.SetLayoutCreated();
                    }
                }
                else if (_dirtyState == DirtyState.NeedsHeaderRelayout)
                {
                    UpdateHeaderPositions();
                    _dirtyState = DirtyState.None;
                }

                return(_lastReportedSize);
            }
        }
示例#2
0
文件: Camera.cs 项目: eivan/ManagedGL
        /// <summary>
        /// Aktuális projekció feltöltése a megjelenítőnek
        /// </summary>
        /// <param name="onlyIfItGotDirty">Ha nem volt újraszámolás, esetleg nem szükséges újboli feltöltés</param>
        public void UpdateProjection(bool onlyIfItGotDirty)
        {
            // változás esetén az új kiszámítása (identikus a Projection property get ágában találhatóval)
            if ((dirtyState & DirtyState.ProjDirty) == DirtyState.ProjDirty)
            {
                Matrix4.CreatePerspectiveFieldOfView(
                    fieldOfView,
                    aspectRatio,
                    nearPlane,
                    farPlane,
                    out projection);

                dirtyState |= DirtyState.AllProj;
                dirtyState ^= DirtyState.ProjDirty;

                return;
            }

            if (onlyIfItGotDirty)
            {
                return;
            }

            //TODO event: got updated
        }
示例#3
0
        protected override void LockCore(DomainObject obj, DirtyState dirtyState)
        {
            if (dirtyState != DirtyState.Clean)
                throw new InvalidOperationException();

            this.Session.Lock(obj, LockMode.None);
        }
示例#4
0
        protected override void LockCore(DomainObject obj, DirtyState dirtyState)
        {
            if (dirtyState != DirtyState.Clean)
            {
                throw new InvalidOperationException();
            }

            this.Session.Lock(obj, LockMode.None);
        }
示例#5
0
 /// <summary>
 /// Restore data from the session
 /// </summary>
 void ICommitGumpEntity.LoadStateInfo()
 {
     m_State = (m_Gump.Session[((ICommitGumpEntity)this).ID] as DirtyState);
     if (m_State == null)
     {
         m_State = new DirtyState();
         m_Gump.Session[((ICommitGumpEntity)this).ID] = m_State;
         m_State.SetValue <int>("VotedFor", -1);
     }
 }
        public virtual void UpdatePrimaryEntity(TPrimary primaryEntity, bool retainDirtyState)
        {
            DirtyState currentDirtyState = this.DirtyState;

            this.PrimaryEntity = primaryEntity;
            if (retainDirtyState)
            {
                this.DirtyState = currentDirtyState;
            }
        }
示例#7
0
 /// <summary>
 /// Restore data from the session
 /// </summary>
 void ICommitGumpEntity.LoadStateInfo()
 {
     m_State = (m_Gump.Session[((ICommitGumpEntity)this).ID] as DirtyState);
     if (m_State == null)
     {
         m_State = new DirtyState();
         m_Gump.Session[((ICommitGumpEntity)this).ID] = m_State;
         m_State.SetValue("Tax", m_Gump.Data.TaxRate);
         m_State.SetValue("Distribute", false);
     }
 }
示例#8
0
文件: Camera.cs 项目: eivan/ManagedGL
        public Camera()
        {
            aspectRatio = (800 / (float)600);

            fieldOfView = MathHelper.PiOver4;

            position  = Vector3.Zero;
            direction = Vector3.UnitZ;
            up        = Vector3.UnitY;

            dirtyState = DirtyState.All;
        }
示例#9
0
        public Camera(Vector3 position, Vector3 direction, Vector3 up, float aspectRatio, float fieldOfView, float nearPlane, float farPlane)
        {
            Position    = position;
            Direction   = direction;
            Up          = up;
            AspectRatio = aspectRatio;
            FieldOfView = fieldOfView;
            NearPlane   = nearPlane;
            FarPlane    = farPlane;

            dirtyState = DirtyState.All;
        }
示例#10
0
        protected override void LockCore(DomainObject obj, DirtyState dirtyState)
        {
            switch (dirtyState)
            {
            case DirtyState.Dirty:
                Session.Update(obj);
                break;

            case DirtyState.New:
                CheckRequiredFields(obj);
                Session.Save(obj);
                break;

            case DirtyState.Clean:
                Session.Lock(obj, LockMode.None);
                break;
            }
        }
 public override void InvalidateLayout()
 {
     //Called from scrolling, update sticky headers
     if (_invalidatingHeadersOnBoundsChange)
     {
         _invalidatingHeadersOnBoundsChange = false;
         if (_dirtyState == DirtyState.None)
         {
             _dirtyState = DirtyState.NeedsHeaderRelayout;
         }
     }
     //Called for some other reason, update everything
     else
     {
         _dirtyState = DirtyState.NeedsRelayout;
     }
     base.InvalidateLayout();
 }
示例#12
0
文件: Camera.cs 项目: eivan/ManagedGL
        /// <summary>
        /// Aktuális nézet feltöltése a megjelenítőnek
        /// </summary>
        /// <param name="onlyIfItGotDirty">Ha nem volt újraszámolás, esetleg nem szükséges újboli feltöltés</param>
        public void UpdateView(bool onlyIfItGotDirty)
        {
            // változás esetén az új kiszámítása (identikus a View property get ágában találhatóval)
            if ((dirtyState & DirtyState.ViewDirty) == DirtyState.ViewDirty)
            {
                view = Matrix4.LookAt(
                    position,
                    position + direction,
                    up);

                dirtyState |= DirtyState.AllView;
                dirtyState ^= DirtyState.ViewDirty;
            }

            if (onlyIfItGotDirty)
            {
                return;
            }

            return;

            //TODO event: got updated
        }
示例#13
0
 /// <summary>
 /// Restore data from the session
 /// </summary>
 void ICommitGumpEntity.LoadStateInfo()
 {
     m_State = (m_Gump.Session[((ICommitGumpEntity)this).ID] as DirtyState);
     if (m_State == null)
     {
         m_State = new DirtyState();
         m_Gump.Session[((ICommitGumpEntity)this).ID] = m_State;
         m_State.SetValue("Type", GuardPost.GuardType);
         KinCityData data = KinCityManager.GetCityData(GuardPost.City);
         if (data == null)
         {
             return;
         }
         KinCityData.BeneficiaryData bdata = data.BeneficiaryDataList.Find(delegate(KinCityData.BeneficiaryData b) { return(b.Pm == GuardPost.Owner); });
         if (bdata == null && m_Gump.From.AccessLevel <= AccessLevel.Player)
         {
             return;
         }
         m_State.SetValue("Slots", GetSlotsAvailable());
         m_State.SetValue("Target", GuardPost.FightMode);
         m_State.SetValue("Speed", GuardPost.HireSpeed);
     }
 }
 /// <summary>
 /// Locks the specified entity into this context with the specified dirty state.
 /// </summary>
 /// <param name="entity"></param>
 /// <param name="dirtyState"></param>
 public void Lock(Entity entity, DirtyState dirtyState)
 {
     LockCore(entity, dirtyState);
 }
 /// <summary>
 /// Implementation of Lock logic.
 /// </summary>
 /// <param name="entity"></param>
 /// <param name="dirtyState"></param>
 protected abstract void LockCore(DomainObject entity, DirtyState dirtyState);
示例#16
0
 /// <summary>
 /// Locks the specified domain object into this context with the specified dirty state.
 /// </summary>
 /// <param name="domainObject"> </param>
 /// <param name="dirtyState"></param>
 public void Lock(object domainObject, DirtyState dirtyState)
 {
     LockCore((DomainObject)domainObject, dirtyState);
 }
 public LockableEntity(T entity, DirtyState lockState)
 {
     _entity    = entity;
     _lockState = lockState;
 }
示例#18
0
 public void Lock(object domainObject, DirtyState state)
 {
     throw new Exception("The method or operation is not implemented.");
 }
示例#19
0
		protected override void LockCore(DomainObject obj, DirtyState dirtyState)
		{
			switch (dirtyState)
			{
				case DirtyState.Dirty:
					Session.Update(obj);
					break;
				case DirtyState.New:
					CheckRequiredFields(obj);
					Session.Save(obj);
					break;
				case DirtyState.Clean:
					Session.Lock(obj, LockMode.None);
					break;
			}
		}
示例#20
0
			/// <summary>
			/// Restore data from the session
			/// </summary>
			void ICommitGumpEntity.LoadStateInfo()
			{
				
				m_State = (m_Gump.Session[((ICommitGumpEntity)this).ID] as DirtyState);
				if (m_State == null)
				{
					m_State = new DirtyState();
					m_Gump.Session[((ICommitGumpEntity)this).ID] = m_State;
					m_State.SetValue<int>("VotedFor", -1);
				}
			}
 public virtual void MakeClean()
 {
     this._dirtyState = DirtyState.UnChanged;
 }
示例#22
0
			/// <summary>
			/// Restore data from the session
			/// </summary>
			void ICommitGumpEntity.LoadStateInfo()
			{
				m_State = (m_Gump.Session[((ICommitGumpEntity)this).ID] as DirtyState);
				if (m_State == null)
				{
					m_State = new DirtyState();
					m_Gump.Session[((ICommitGumpEntity)this).ID] = m_State;
					m_State.SetValue("Tax", m_Gump.Data.TaxRate);
					m_State.SetValue("Distribute", false);
				}
			}
示例#23
0
		public Camera( Vector3 position, Vector3 direction, Vector3 up, float aspectRatio, float fieldOfView, float nearPlane, float farPlane ) {
			Position = position;
			Direction = direction;
			Up = up;
			AspectRatio = aspectRatio;
			FieldOfView = fieldOfView;
			NearPlane = nearPlane;
			FarPlane = farPlane;

			dirtyState = DirtyState.All;
		}
示例#24
0
 public void Lock(Entity entity, DirtyState state)
 {
     throw new Exception("The method or operation is not implemented.");
 }
示例#25
0
			/// <summary>
			/// Restore data from the session
			/// </summary>
			void ICommitGumpEntity.LoadStateInfo()
			{
				m_State = (m_Gump.Session[((ICommitGumpEntity)this).ID] as DirtyState);
				if (m_State == null)
				{
					m_State = new DirtyState();
					m_Gump.Session[((ICommitGumpEntity)this).ID] = m_State;
					m_State.SetValue("Type",GuardPost.GuardType);
					KinCityData data = KinCityManager.GetCityData(GuardPost.City);
					if (data == null) return;
					KinCityData.BeneficiaryData bdata = data.BeneficiaryDataList.Find(delegate(KinCityData.BeneficiaryData b) { return b.Pm == GuardPost.Owner; });
					if (bdata == null && m_Gump.From.AccessLevel <= AccessLevel.Player ) return;
					m_State.SetValue("Slots",GetSlotsAvailable());
					m_State.SetValue("Target", GuardPost.FightMode);
					m_State.SetValue("Speed", GuardPost.HireSpeed);
				}
			}