/// <summary> /// Both cluster and link keep Id of text caption in ints[0] /// </summary> /// <param name="captionHostSh"></param> /// <returns></returns> private string TryGetTextCaption(IServerVdShape captionHostSh) { var st = captionHostSh.GetState(); var captionShId = st.ints[0]; if (captionShId != -1) { //caption exists var captionSh = _doc.TryGetShape(captionShId); if (captionSh != null) { var st2 = captionSh.GetState(); if (st2.bytes != null) { using (var s = new MemoryStream(st2.bytes)) { using (var br = new BinaryReader(s)) { return(br.ReadString()); } } } } } return(null); }
public void RemoveShape(IServerVdShape sh) { if (sh.GetCursor() != null) { throw new InvalidOperationException("cannot remove shape locked by cursor!"); } _shapeIdToShape.Remove(sh.Id()); }
public void UnlockAndRemoveShape(IServerVdShape sh) { var curs = sh.GetCursor(); if (curs != null) { UnlockShape(sh, curs.OwnerId); } RemoveShape(sh); }
//returns previously locked shape, caller should broadcast cursor free event if result != null public void LockShape(IServerVdShape sh, int owner) { if (sh.GetCursor() != null) { throw new InvalidOperationException("cannot lock locked shape"); } var cursor = new ServerCursor(owner); sh.SetCursor(cursor); _userIdToCursor.Add(owner, sh); }
public bool editingPermission(IServerVdShape sh, int owner) { if (sh.GetCursor() == null) { return(true); } else if (sh.GetCursor().OwnerId == owner) { return(true); } else { return(false); } }
public void AddShapeAndLock(IServerVdShape sh) { _shapeIdToShape.Add(sh.Id(), sh); LockShape(sh, sh.InitialOwner()); }
public void AddShape(IServerVdShape sh) { _shapeIdToShape.Add(sh.Id(), sh); }
public void UnlockShape(IServerVdShape sh, int owner) { sh.UnsetCursor(); _userIdToCursor.Remove(owner); }
/// <summary> /// Both cluster and link keep Id of text caption in ints[0] /// </summary> /// <param name="captionHostSh"></param> /// <returns></returns> private string TryGetTextCaption(IServerVdShape captionHostSh) { var st = captionHostSh.GetState(); var captionShId = st.ints[0]; if (captionShId != -1) { //caption exists var captionSh = _doc.TryGetShape(captionShId); if (captionSh != null) { var st2 = captionSh.GetState(); if (st2.bytes != null) { using (var s = new MemoryStream(st2.bytes)) { using (var br = new BinaryReader(s)) { return br.ReadString(); } } } } } return null; }
public void UnlockAndRemoveShape(IServerVdShape sh) { var curs = sh.GetCursor(); if (curs != null) UnlockShape(sh, curs.OwnerId); RemoveShape(sh); }
public bool editingPermission(IServerVdShape sh, int owner) { if (sh.GetCursor() == null) return true; else if (sh.GetCursor().OwnerId == owner) return true; else return false; }
public void RemoveShape(IServerVdShape sh) { if (sh.GetCursor() != null) throw new InvalidOperationException("cannot remove shape locked by cursor!"); _shapeIdToShape.Remove(sh.Id()); }
//returns previously locked shape, caller should broadcast cursor free event if result != null public void LockShape(IServerVdShape sh, int owner) { if (sh.GetCursor() != null) throw new InvalidOperationException("cannot lock locked shape"); var cursor = new ServerCursor(owner); sh.SetCursor(cursor); _userIdToCursor.Add(owner, sh); }