private void copyToolStripMenuItem_Click(object sender, EventArgs e)
 {
     string[] from = mData.getFrame(mState, mFromFrame);
     for (int i = 0; i < from.Length; ++i)
     {
         mData.setFramePart(mState, mToFrame, i, from[i]);
         Vec2i offset = mData.getFramePartOffset(mState, mFromFrame, i);
         mData.setFramePartOffset(mState, mToFrame, i, offset);
     }
     mFrame = mToFrame;
     framecontrol.Invalidate();
 }
        void copyState()
        {
            IStateFrameData data      = stateFrameImage1.Data;
            int             currState = stateFrameImage1.State;

            mCopiedFrames  = new Dictionary <int, string[]>();
            mCopiedOffsets = new Dictionary <int, ArrayList>();
            for (int i = 0; i < stateFrameImage1.Frames; ++i)
            {
                if (data.frameExists(currState, i))
                {
                    mCopiedFrames[i]  = (string[])data.getFrame(currState, i).Clone();
                    mCopiedOffsets[i] = new ArrayList();
                    for (int j = 0; j < stateFrameImage1.FrameParts; ++j)
                    {
                        Vec2i offset = data.getFramePartOffset(currState, i, j);
                        mCopiedOffsets[i].Add(offset);
                    }
                }
            }
            mCopiedSize    = data.getSize(currState);
            mCopiedHotspot = data.getHotspot(currState);
        }