|
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
namespace System.Windows.Forms;
public partial class Control
{
[Flags]
private protected enum ExtendedStates
{
/// <summary>
/// When we change RightToLeft, we need to change the scrollbar thumb. We can't do that until after the
/// control has been created, and all the items added back. This is because the system control won't know
/// the nMin and nMax of the scroll bar until the items are added. So in RightToLeftChanged, we set a
/// flag that indicates that we want to set the scroll position. In OnHandleCreated we check this flag,
/// and if set, we BeginInvoke. We have to BeginInvoke since we have to wait until the items are added.
/// We only want to do this when RightToLeft changes thus the flags HAVEINVOKED and SETSCROLLPOS.
/// Otherwise we would do this on each HandleCreated.
/// </summary>
HaveInvoked = 0x00000001,
SetScrollPosition = 0x00000002,
/// <summary>
/// If set, the control will listen to SystemEvents.UserPreferenceChanged when TopLevel is true and handle is created.
/// </summary>
InterestedInUserPreferenceChanged = 0x00000008,
/// <summary>
/// If set, the control DOES NOT necessarily take capture on MouseDown
/// </summary>
MaintainsOwnCaptureMode = 0x00000010,
/// <summary>
/// Set to true by ContainerControl when this control is becoming its active control
/// </summary>
BecomingActiveControl = 0x00000020,
/// <summary>
/// If set, the next time PerformLayout is called, cachedLayoutEventArg will be cleared.
/// </summary>
ClearLayoutArgs = 0x00000040,
/// <summary>
/// Used to flag that <see cref="IsInputKey(Keys)"/> returned true in <see cref="PreProcessMessage(ref Message)" />
/// so that <see cref="PreProcessControlMessageInternal(Control, ref Message)"/> doesn't call it again.
/// </summary>
InputKey = 0x00000080,
/// <summary>
/// Used to flag that <see cref="IsInputChar(char)"/> returned true in <see cref="PreProcessMessage(ref Message)" />
/// so that <see cref="PreProcessControlMessageInternal(Control, ref Message)"/> doesn't call it again.
/// </summary>
InputChar = 0x00000100,
/// <summary>
/// Used by <see cref="PreProcessControlMessageInternal(Control, ref Message)"/> to avoid calling
/// <see cref="ProcessUICues(ref Message)"/> multiple times.
/// </summary>
UiCues = 0x00000200,
IsActiveX = 0x00000400,
UserPreferredSizeCache = 0x00000800,
TopMDIWindowClosing = 0x00001000,
/// <summary>
/// If set, the control is being scaled currently
/// </summary>
CurrentlyBeingScaled = 0x00002000
}
}
|