예제 #1
0
        public static void RecordObject(object target, object state, ApplyCallback applyCallback, PurgeCallback purgeCallback = null)
        {
            if (!Enabled)
            {
                return;
            }

            if (purgeCallback == null)
            {
                purgeCallback = record => { };
            }

            if (m_group != null)
            {
                m_group.Add(new Record(target, state, applyCallback, purgeCallback));
            }
            else
            {
                Record[] purgeItems = m_stack.Push(new[] { new Record(target, state, applyCallback, purgeCallback) });
                if (purgeItems != null)
                {
                    for (int i = 0; i < purgeItems.Length; ++i)
                    {
                        purgeItems[i].Purge();
                    }
                }

                if (StateChanged != null)
                {
                    StateChanged();
                }
            }
        }
예제 #2
0
 public GameModeSetting RemoveApplyCallback(ApplyCallback callback)
 {
     if (onApplyCallback == null)
     {
         return(this);
     }
     onApplyCallback -= callback;
     return(this);
 }
예제 #3
0
 public GameModeSetting AddApplyCallback(ApplyCallback callback)
 {
     if (onApplyCallback == null)
     {
         onApplyCallback = callback;
         return(this);
     }
     onApplyCallback += callback;
     return(this);
 }
예제 #4
0
        public void Apply(ApplyCallback callback, object info = null)
        {
            var data = new Tuple <ApplyCallback, object> (callback, info);
            var gch  = GCHandle.Alloc(data);

            try {
                CGPDFDictionaryApplyFunction(Handle, applyblock_handler, GCHandle.ToIntPtr(gch));
            } finally {
                gch.Free();
            }
        }
 public void Show(string name, string role, bool hasRole, string[] roles, Die.SpecialColor specialColorType, ApplyCallback applyCallback, UserActionCallback userActionCallback)
 {
     _nameInput.text             = name;
     _roleDropdown.options       = roles.Select(str => new Dropdown.OptionData(str)).ToList();
     _roleDropdown.value         = System.Array.IndexOf(roles, role);
     _roleToggle.isOn            = hasRole;
     _specialColorDropdown.value = (int)specialColorType;
     _doneCb       = applyCallback;
     _userActionCb = userActionCallback;
     gameObject.SetActive(true);
     _nameInput.Select();
 }
예제 #6
0
파일: SettingForm.cs 프로젝트: r3c/cottle
        public SettingForm(ApplyCallback apply, Parameters parameters)
        {
            this.apply = apply;

            InitializeComponent ();

            foreach (string name in TrimmerCollection.TrimmerNames)
                this.comboBoxTrimmer.Items.Add (name);

            this.comboBoxTrimmer.SelectedIndex = parameters.TrimmerIndex;
            this.textBoxBlockBegin.Text = parameters.BlockBegin;
            this.textBoxBlockContinue.Text = parameters.BlockContinue;
            this.textBoxBlockEnd.Text = parameters.BlockEnd;
        }
예제 #7
0
        public Record(object target, object state, ApplyCallback applyCallback, PurgeCallback purgeCallback)
        {
            if (applyCallback == null)
            {
                throw new System.ArgumentNullException("callback");
            }

            m_target        = target;
            m_applyCallback = applyCallback;
            m_purgeCallback = purgeCallback;
            if (state != null)
            {
                m_state = state;
            }
        }
예제 #8
0
        public SettingForm(ApplyCallback apply, Parameters parameters)
        {
            this.apply = apply;

            InitializeComponent();

            foreach (string name in TrimmerCollection.TrimmerNames)
            {
                this.comboBoxTrimmer.Items.Add(name);
            }

            this.comboBoxTrimmer.SelectedIndex = parameters.TrimmerIndex;
            this.textBoxBlockBegin.Text        = parameters.BlockBegin;
            this.textBoxBlockContinue.Text     = parameters.BlockContinue;
            this.textBoxBlockEnd.Text          = parameters.BlockEnd;
        }
예제 #9
0
        public bool Apply(ApplyCallback callback, object info = null)
        {
            if (callback == null)
            {
                throw new ArgumentNullException(nameof(callback));
            }

            BlockLiteral block_handler = new BlockLiteral();

            block_handler.SetupBlockUnsafe(applyblock_handler, callback);
            var gc_handle = info == null ? default(GCHandle) : GCHandle.Alloc(info);

            try {
                return(CGPDFArrayApplyBlock(handle, ref block_handler, info == null ? IntPtr.Zero : GCHandle.ToIntPtr(gc_handle)));
            } finally {
                block_handler.CleanupBlock();
                if (info != null)
                {
                    gc_handle.Free();
                }
            }
        }
예제 #10
0
 public void RecordObject(object target, object state, ApplyCallback applyCallback, PurgeCallback purgeCallback = null)
 {
 }