예제 #1
0
        /// <summary>
        /// クリップボードにオブジェクトを貼り付けるためのユーティリティ.
        /// </summary>
        /// <param name="events"></param>
        /// <param name="tempo"></param>
        /// <param name="timesig"></param>
        /// <param name="curve"></param>
        /// <param name="bezier"></param>
        /// <param name="copy_started_clock"></param>
        private void setClipboard(
            List <VsqEvent> events,
            List <TempoTableEntry> tempo,
            List <TimeSigTableEntry> timesig,
            SortedDictionary <CurveType, VsqBPList> curve,
            SortedDictionary <CurveType, List <BezierChain> > bezier,
            int copy_started_clock)
        {
            ClipboardEntry ce = new ClipboardEntry();

            ce.events           = events;
            ce.tempo            = tempo;
            ce.timesig          = timesig;
            ce.points           = curve;
            ce.beziers          = bezier;
            ce.copyStartedClock = copy_started_clock;
#if CLIPBOARD_AS_TEXT
            String clip = "";
            try
            {
                clip = getSerializedText(ce);
#if DEBUG
                sout.println("ClipboardModel#setClipboard; clip=" + clip);
#endif
            }
            catch (Exception ex)
            {
                serr.println("ClipboardModel#setClipboard; ex=" + ex);
                Logger.write(typeof(ClipboardModel) + ".setClipboard; ex=" + ex + "\n");
                return;
            }
            PortUtil.setClipboardText(clip);
#else // CLIPBOARD_AS_TEXT
#if DEBUG
            // ClipboardEntryがシリアライズ可能かどうかを試すため,
            // この部分のコードは残しておくこと
            System.Runtime.Serialization.Formatters.Binary.BinaryFormatter bf = null;
            System.IO.MemoryStream ms = null;
            try {
                bf = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
                ms = new System.IO.MemoryStream();
                bf.Serialize(ms, ce);
            } catch (Exception ex) {
                sout.println("ClipboardModel#setClipboard; ex=" + ex);
            }
#endif // DEBUG
            Clipboard.SetDataObject(ce, false);
#endif // CLIPBOARD_AS_TEXT
        }
예제 #2
0
        /// <summary>
        /// クリップボードにオブジェクトを貼り付けます.
        /// </summary>
        /// <param name="item">貼り付けるオブジェクトを格納したClipboardEntryのインスタンス</param>
        public void setClipboard(ClipboardEntry item)
        {
#if CLIPBOARD_AS_TEXT
            String clip = "";
            try
            {
                clip = getSerializedText(item);
#if DEBUG
                sout.println("ClipboardModel#setClipboard; clip=" + clip);
#endif
            }
            catch (Exception ex)
            {
                serr.println("ClipboardModel#setClipboard; ex=" + ex);
                Logger.write(typeof(ClipboardModel) + ".setClipboard; ex=" + ex + "\n");
                return;
            }
            PortUtil.setClipboardText(clip);
#else
            Clipboard.SetDataObject(item, false);
#endif
        }