Example #1
0
        /// <summary>
        /// If configured, some auto-steps could be performed after a check.
        /// </summary>
        /// <param name="args">The <see cref="ZetaLib.Windows.Controls.TriStateCheckBoxesTreeView.TreeViewTriStateEventArgs"/> instance containing the event data.</param>
        private void CheckPerformAutoStepsAfterTriStateCheck(
            TreeViewTriStateEventArgs args)
        {
            if (args.Action == TreeViewAction.ByKeyboard ||
                args.Action == TreeViewAction.ByMouse)
            {
                if (AutoCheckChilds)
                {
                    if (args.CheckState == CheckState.Checked)
                    {
                        ChangeNodesCheckStates(
                            args.Node,
                            TreeViewEx.NodesCheckState.
                            CheckAllChilds);
                    }
                    else if (args.CheckState == CheckState.Unchecked)
                    {
                        ChangeNodesCheckStates(
                            args.Node,
                            TreeViewEx.NodesCheckState.
                            UncheckAllChilds);
                    }
                }

                // --

                if (AutoCheckParents)
                {
                    ChangeNodesCheckStates(
                        args.Node,
                        TreeViewEx.NodesCheckState.
                        UpdateParentStates);
                }
            }
        }
Example #2
0
        /// <summary>
        /// Raises the <see cref="E:AfterTriStateCheck"/> event.
        /// </summary>
        /// <param name="args">The <see cref="ZetaLib.Windows.Controls.TriStateCheckBoxesTreeView.TreeViewTriStateEventArgs"/> instance containing the event data.</param>
        protected virtual void OnAfterTriStateCheck(
            TreeViewTriStateEventArgs args)
        {
            if (AfterTriStateCheck != null)
            {
                AfterTriStateCheck(this, args);
            }

            CheckPerformAutoStepsAfterTriStateCheck(args);
        }
Example #3
0
        /// <summary>
        /// Applies the given state to the given node.
        /// Raises events, too.
        /// </summary>
        /// <param name="node">The node.</param>
        /// <param name="action">The action.</param>
        /// <param name="stateImageIndex">Index of the state image.</param>
        /// <param name="raiseEvents">if set to <c>true</c> [raise events].</param>
        private void SetTriStateToNode(
            TreeNode node,
            TreeViewAction action,
            int stateImageIndex,
            bool raiseEvents)
        {
            bool canSet = true;

            if (raiseEvents)
            {
                TreeViewCancelEventArgs args =
                    new TreeViewCancelEventArgs(node, false, action);

                OnBeforeCheck(args);

                TreeViewCancelTriStateEventArgs triArgs =
                    new TreeViewCancelTriStateEventArgs(
                        node,
                        args.Cancel,
                        action,
                        node.StateImageIndex,
                        stateImageIndex);

                OnBeforeTriStateCheck(triArgs);

                canSet = !triArgs.Cancel;
            }

            if (canSet)
            {
                // Actually set.
                // THIS IS THE ONLY PLACE to set.
                node.StateImageIndex = stateImageIndex;

                if (raiseEvents)
                {
                    TreeViewEventArgs args =
                        new TreeViewEventArgs(node, action);

                    OnAfterCheck(args);

                    TreeViewTriStateEventArgs triArgs =
                        new TreeViewTriStateEventArgs(
                            node,
                            action,
                            node.StateImageIndex);

                    OnAfterTriStateCheck(triArgs);
                }
            }
        }
		/// <summary>
		/// If configured, some auto-steps could be performed after a check.
		/// </summary>
		/// <param name="args">The <see cref="ZetaLib.Windows.Controls.TriStateCheckBoxesTreeView.TreeViewTriStateEventArgs"/> instance containing the event data.</param>
		private void CheckPerformAutoStepsAfterTriStateCheck(
			TreeViewTriStateEventArgs args )
		{
			if ( args.Action == TreeViewAction.ByKeyboard ||
				args.Action == TreeViewAction.ByMouse )
			{
				if ( AutoCheckChilds )
				{
					if ( args.CheckState == CheckState.Checked )
					{
						ChangeNodesCheckStates(
							args.Node,
							TriStateCheckBoxesTreeView.NodesCheckState.
							CheckAllChilds );
					}
					else if ( args.CheckState == CheckState.Unchecked )
					{
						ChangeNodesCheckStates(
							args.Node,
							TriStateCheckBoxesTreeView.NodesCheckState.
							UncheckAllChilds );
					}
				}

				// --

				if ( AutoCheckParents )
				{
					ChangeNodesCheckStates(
						args.Node,
						TriStateCheckBoxesTreeView.NodesCheckState.
						UpdateParentStates );
				}
			}
		}
		/// <summary>
		/// Raises the <see cref="E:AfterTriStateCheck"/> event.
		/// </summary>
		/// <param name="args">The <see cref="ZetaLib.Windows.Controls.TriStateCheckBoxesTreeView.TreeViewTriStateEventArgs"/> instance containing the event data.</param>
		protected virtual void OnAfterTriStateCheck(
			TreeViewTriStateEventArgs args )
		{
			if ( AfterTriStateCheck != null )
			{
				AfterTriStateCheck( this, args );
			}

			CheckPerformAutoStepsAfterTriStateCheck( args );
		}
		/// <summary>
		/// Applies the given state to the given node.
		/// Raises events, too.
		/// </summary>
		/// <param name="node">The node.</param>
		/// <param name="action">The action.</param>
		/// <param name="stateImageIndex">Index of the state image.</param>
		/// <param name="raiseEvents">if set to <c>true</c> [raise events].</param>
		private void SetTriStateToNode(
			TreeNode node,
			TreeViewAction action,
			int stateImageIndex,
			bool raiseEvents )
		{
			bool canSet = true;

			if ( raiseEvents )
			{
				TreeViewCancelEventArgs args =
					new TreeViewCancelEventArgs( node, false, action );

				OnBeforeCheck( args );

				TreeViewCancelTriStateEventArgs triArgs =
					new TreeViewCancelTriStateEventArgs(
					node,
					args.Cancel,
					action,
					node.StateImageIndex,
					stateImageIndex );

				OnBeforeTriStateCheck( triArgs );

				canSet = !triArgs.Cancel;
			}

			if ( canSet )
			{
				// Actually set.
				// THIS IS THE ONLY PLACE to set.
				node.StateImageIndex = stateImageIndex;

				if ( raiseEvents )
				{
					TreeViewEventArgs args =
						new TreeViewEventArgs( node, action );

					OnAfterCheck( args );

					TreeViewTriStateEventArgs triArgs =
						new TreeViewTriStateEventArgs(
						node,
						action,
						node.StateImageIndex );

					OnAfterTriStateCheck( triArgs );
				}
			}
		}