/// <summary> /// Creats a group object /// </summary> /// <returns>The Shape observer for the newly created group or <c>null</c>.</returns> private OoShapeObserver createGroup() { OoShapeObserver group = null; OoAccessibleDocWnd draw = null; OoDrawPagesObserver doc = null; OoDrawPageObserver page = null; if (IsShapeSelected && LastSelectedShape != null) { page = LastSelectedShape.Page; doc = page.PagesObserver; draw = doc.DocWnd; } else { // TODO: how to get those things } if (doc != null && draw != null && draw.DrawPageSupplier != null) { Logger.Instance.Log(LogPriority.DEBUG, this, "[NOTICE]\t[DRAWING]\t[CREATE]\t" + "build group shape"); var grpShape = OoDrawUtils.CreateGroupShape_anonymous(draw.DrawPageSupplier); OoUtils.SetStringProperty(grpShape, "Name", LL.GetTrans("tangram.oomanipulation.shape.group")); if (page != null && page.DrawPage_anonymouse != null) { var pageObj = page.DrawPage_anonymouse; OoDrawUtils.AddShapeToDrawPageUndoable(grpShape, pageObj, draw.DrawPageSupplier); group = doc.RegisterNewShape(grpShape); } } return(group); }
/// <summary> /// Groups the current selected obejct into a group /// </summary> /// <returns><c>true</c> if the shape was added to a group successfully; otherwise, <c>false</c>.</returns> private bool grouping() { if (IsShapeSelected && LastSelectedShape != null) { OoAccessibleDocWnd draw = null; OoDrawPagesObserver doc = null; OoDrawPageObserver page = null; page = LastSelectedShape.Page; if (page != null) { doc = page.PagesObserver; if (doc != null) { draw = doc.DocWnd; if (draw != null && draw.DrawPageSupplier != null) { var undoManager = draw.DrawPageSupplier; if (_group == null) // start grouping { _group = createGroup(); } if (_group != null && _group.IsGroup) { // set Title bar // size & position var size = LastSelectedShape.Size; var pos = LastSelectedShape.Position; // TODO: check if this is a group if (OoDrawUtils.AddShapeToGroupUndoable(_group.DomShape, LastSelectedShape.DomShape, undoManager, "Add shape to group")) { LastSelectedShape.Size = size; LastSelectedShape.Position = pos; var b = _group.Bounds; _group.Position = b.Location; play(LL.GetTrans("tangram.oomanipulation.group.added", OoElementSpeaker.GetElementAudioText(LastSelectedShape)), false); LastSelectedShape = _group; // sayLastSelectedShape(false); return(true); } return(false); } } } } } return(false); }