Example #1
0
        /**
 * Allocates new shape id for the new drawing group id.
 *
 * @return a new shape id.
 */
        public int AllocateShapeId(short drawingGroupId, EscherDgRecord dg)
        {
            dgg.NumShapesSaved=(dgg.NumShapesSaved + 1);

            // Add to existing cluster if space available
            for (int i = 0; i < dgg.FileIdClusters.Length; i++)
            {
                EscherDggRecord.FileIdCluster c = dgg.FileIdClusters[i];
                if (c.DrawingGroupId == drawingGroupId && c.NumShapeIdsUsed != 1024)
                {
                    int result = c.NumShapeIdsUsed + (1024 * (i + 1));
                    c.IncrementShapeId();
                    dg.NumShapes=(dg.NumShapes + 1);
                    dg.LastMSOSPID=(result);
                    if (result >= dgg.ShapeIdMax)
                        dgg.ShapeIdMax=(result + 1);
                    return result;
                }
            }

            // Create new cluster
            dgg.AddCluster(drawingGroupId, 0);
            dgg.FileIdClusters[dgg.FileIdClusters.Length - 1].IncrementShapeId();
            dg.NumShapes=(dg.NumShapes + 1);
            int result2 = (1024 * dgg.FileIdClusters.Length);
            dg.LastMSOSPID = (result2);
            if (result2 >= dgg.ShapeIdMax)
                dgg.ShapeIdMax = (result2 + 1);
            return result2;
        }
Example #2
0
 public EscherDgRecord CreateDgRecord()
 {
     EscherDgRecord dg = new EscherDgRecord();
     dg.RecordId = EscherDgRecord.RECORD_ID;
     short dgId = FindNewDrawingGroupId();
     dg.Options=(short)(dgId << 4);
     dg.NumShapes=0;
     dg.LastMSOSPID=(-1);
     drawingGroups.Add(dg);
     dgg.AddCluster(dgId, 0);
     dgg.DrawingsSaved=dgg.DrawingsSaved + 1;
     return dg;
 }
Example #3
0
 public EscherDgRecord CreateDgRecord()
 {
     EscherDgRecord dg = new EscherDgRecord();
     dg.RecordId=(EscherDgRecord.RECORD_ID);
     short dgId = FindNewDrawingGroupId();
     dg.Options=((short)(dgId << 4));
     dg.NumShapes=(0);
     dg.LastMSOSPID=(-1);
     dgg.AddCluster(dgId, 0);
     dgg.DrawingsSaved=(dgg.DrawingsSaved + 1);
     dgMap[dgId]= dg;
     return dg;
 }