示例#1
0
 /// ------------------------------------------------------------------------------------
 /// <summary>
 /// Watch for keys to do the cut/copy/paste operations
 /// </summary>
 /// <param name="e"></param>
 /// ------------------------------------------------------------------------------------
 protected override void OnKeyDown(KeyEventArgs e)
 {
     m_sda.GetActionHandler().BeginUndoTask("dummy undo Key Down", "dummy redo Key Down");
     if (!EditingHelper.HandleOnKeyDown(e))
     {
         base.OnKeyDown(e);
     }
     m_sda.GetActionHandler().EndUndoTask();
 }
		internal int m_chvoDel; // On Do, Redo; #inserted on Undo.

		/// <summary>
		/// Make an instance and add it to the undo stack. Also, if it's the 'redo' action added after the
		/// actual changes (fForRedo is true), issue the propchanged at once to complete the original action.
		/// </summary>
		/// <param name="sda"></param>
		/// <param name="hvo"></param>
		/// <param name="tag"></param>
		/// <param name="ihvo"></param>
		/// <param name="chvoIns"></param>
		/// <param name="chvoDel"></param>
		/// <param name="fForRedo"></param>
		static public ExtraPropChangedAction AddAndInvokeIfRedo(ISilDataAccess sda, int hvo, int tag, int
			ihvo, int chvoIns, int chvoDel, bool fForRedo)
		{

			ExtraPropChangedAction action = new ExtraPropChangedAction(sda, hvo, tag, ihvo, chvoIns, chvoDel, fForRedo);
			sda.GetActionHandler().AddAction(action);
			if (fForRedo)
				action.Redo(false);
			return action;
		}
        internal int m_chvoDel;         // On Do, Redo; #inserted on Undo.

        /// <summary>
        /// Make an instance and add it to the undo stack. Also, if it's the 'redo' action added after the
        /// actual changes (fForRedo is true), issue the propchanged at once to complete the original action.
        /// </summary>
        /// <param name="sda"></param>
        /// <param name="hvo"></param>
        /// <param name="tag"></param>
        /// <param name="ihvo"></param>
        /// <param name="chvoIns"></param>
        /// <param name="chvoDel"></param>
        /// <param name="fForRedo"></param>
        static public ExtraPropChangedAction AddAndInvokeIfRedo(ISilDataAccess sda, int hvo, int tag, int
                                                                ihvo, int chvoIns, int chvoDel, bool fForRedo)
        {
            ExtraPropChangedAction action = new ExtraPropChangedAction(sda, hvo, tag, ihvo, chvoIns, chvoDel, fForRedo);

            sda.GetActionHandler().AddAction(action);
            if (fForRedo)
            {
                action.Redo(false);
            }
            return(action);
        }
 /// <summary>
 ///
 /// </summary>
 /// <returns></returns>
 public IActionHandler GetActionHandler()
 {
     return(m_sda.GetActionHandler());
 }
示例#5
0
		/// <summary>
		/// When in the middle of recording an undoable sequence, force the Undo (or subsequent
		/// Redo) to do a Refresh.
		/// </summary>
		/// <param name="sda"></param>
		public static void ForceRefreshOnUndoRedo(ISilDataAccess sda)
		{
			IActionHandler acth = sda.GetActionHandler();
			try
			{
				if (acth != null)
					acth.AddAction(new UndoRefreshAction());
			}
			finally
			{
				if (acth != null && Marshal.IsComObject(acth))
					Marshal.ReleaseComObject(acth);
			}
		}