コード例 #1
0
        protected void OnMouseChange(Object sender, MouseChangeEventArgs e)
        {
            logger.Trace("OnMouseChange() received...");
            CheckStatus();
            CheckMouseChangeEvent(e);

            ButtonGroup changes = new ButtonGroup();

            // for this event it's pretty likely that one argument is empty, so check first

            if (!e.MouseOver.IsEmpty())
            {
                Status.UpdateStatus(e.MouseOver, StatusFlags.MouseOver, true);
                changes.Add(e.MouseOver);
            }

            if (!e.MouseOut.IsEmpty())
            {
                Status.UpdateStatus(e.MouseOut, StatusFlags.MouseOver, false);
                changes.Add(e.MouseOut);
            }

            if (!changes.IsEmpty())
            {
                changes.Seal();
                RaiseStatusChangeEvent(new StatusChangeEventArgs(changes));
            }
        }
コード例 #2
0
        /// <summary>
        /// Clears selection flag for all selected buttons and returns them.
        /// </summary>
        public ButtonGroup ClearSelection()
        {
            ButtonGroup changes = new ButtonGroup();

            foreach (var entry in statusDict)
            {
                if (entry.Value.Selected)
                {
                    entry.Value.Update(ButtonStatus.Flags.Selected, false);
                    changes.Add(entry.Key);
                }
            }

            changes.Seal();
            return(changes);
        }
コード例 #3
0
        public ButtonGroup GetButtonsForCol(int x)
        {
            CheckColArgument(x);

            ButtonGroup group = new ButtonGroup();

            for (int y = 0; y < Rows; y++)
            {
                if (buttonGrid[x, y] != null)
                {
                    group.Add(buttonGrid[x, y].Id);
                }
            }

            group.Seal();
            return(group);
        }
コード例 #4
0
        public ButtonGroup GetButtonsForRow(int y)
        {
            CheckRowArgument(y);

            ButtonGroup group = new ButtonGroup();

            for (int x = 0; x < Cols; x++)
            {
                if (buttonGrid[x, y] != null)
                {
                    group.Add(buttonGrid[x, y].Id);
                }
            }

            group.Seal();
            return(group);
        }
コード例 #5
0
        public void OnSelection(Object sender, SelectionEventArgs e)
        {
            logger.Trace("OnSelection() received...");
            CheckStatus();

            ButtonGroup changes = new ButtonGroup();

            // handle unselected first, because of selection race, or in other words: selection is trump
            Status.UpdateStatus(e.Unselected, StatusFlags.Selected, false);
            changes.Add(e.Unselected);

            Status.UpdateStatus(e.Selected, StatusFlags.Selected, true);
            changes.Add(e.Selected);

            if (!changes.IsEmpty())
            {
                changes.Seal();
                RaiseStatusChangeEvent(new StatusChangeEventArgs(changes));
            }
        }