windows-nt/Source/XPSP1/NT/admin/netui/common/h/bltctlvl.hxx

155 lines
5.2 KiB
C++
Raw Normal View History

2020-09-26 03:20:57 -05:00
/**********************************************************************/
/** Microsoft Windows/NT **/
/** Copyright(c) Microsoft Corp., 1991 **/
/**********************************************************************/
/*
bltctlvl.hxx
This file contains the definition for the CONTROL_VALUE class.
FILE HISTORY:
Johnl 23-Apr-1991 Created
beng 14-May-1991 Made dependent on blt.hxx for client
KeithMo 23-Oct-1991 Added forward references.
*/
#ifndef _BLT_HXX_
#error "Don't include this file directly; instead, include it through blt.hxx"
#endif // _BLT_HXX_
#ifndef _BLTCTLVL_HXX_
#define _BLTCTLVL_HXX_
#include "bltevent.hxx"
/* Bitfield value returns for QueryEventEffects.
*/
#define CVMI_NO_VALUE_CHANGE 0x0000 // No control change
#define CVMI_VALUE_CHANGE 0x0001 // Control has changed
#define CVMI_RESTORE_ON_INACTIVE 0x0002 // Restore if control was inactive
//
// Forward references.
//
DLL_CLASS CONTROL_VALUE;
DLL_CLASS CONTROL_GROUP;
DLL_CLASS CUSTOM_CONTROL;
/*************************************************************************
NAME: CONTROL_VALUE
SYNOPSIS: This class provides the basic virtual functions for objects
that can be disabled (i.e., no focus or value, does *not* mean
unable to receive a user's input) or restored. See BLT.DOC for
a full explanation.
INTERFACE:
CONTROL_VALUE
Constructor
SaveValue() - virtual
SaveValue stores the value currently contained in the
control and "empties" it (i.e., an SLE would delete its
contents, a listbox would remove the selection bar etc.).
The boolean value passed in is TRUE if we want to make
the contents invisible and FALSE otherwise.
RestoreValue() - virtual
RestoreValue takes the value previously saved by SaveValue
and puts it back into the control. It is not valid to
call RestoreValue without having first called SaveValue.
The boolean value passed in is TRUE if the contents
is invisible and FALSE otherwise.
QueryEventEffects() - virtual
Returns CVMI_VALUE_CHANGE IF this message indicates that the
control has "changed" (and thus this group should be activated).
Additionally, CVMI_RESTORE_ON_INACTIVE can be ored with
CVMI_VALUE_CHANGE which will cause this control to be restored
if it is not currently active (this is currently only done
for drop down list combos where the value needs to be set when
the user drops the combo down). It is not valid to return
CVMI_RESTORE_ON_INACTIVE by itself (must be ored with
CVMI_VALUE_CHANGE).
SetControlValueFocus() - virtual
Tells a CONTROL_VALUE to set the windows focus to itself. For
example, CONTROL_WINDOWS set the focus to themselves, RADIO_GROUPS
set the focus to the currently selected RADIO_BUTTON and
MAGIC_GROUPS set the focus to their member RADIO_GROUPs.
SetGroup()
Sets the group of this CONTROL_VALUE to pgroupOwner. Note that
you can only call this once. Calling it more then once will
will cause an assertion error under debug, under retail the call
will have no effect.
QueryGroup()
Returns a pointer to the group this control value belongs to.
CAVEATS:
SaveValue should not be called twice without an intervening
RestoreValue (you will overwrite the contents
of the first save!).
NOTES:
HISTORY:
Johnl 23-Apr-1991 Created
terryk 10-Jul-1991 Delete MAGIC_GROUP from friend.
From now on, MAGIC_GROUP will call its own
member functions - CVSaveValue, CVRestoreValue
to restore and save the control value object.
beng 04-Oct-1991 Win32 conversion
**************************************************************************/
DLL_CLASS CONTROL_VALUE
{
friend class CONTROL_GROUP;
friend class CUSTOM_CONTROL;
private:
/* The private member _pgroupOwner keeps track of what group this
* control belongs to.
*/
CONTROL_GROUP * _pgroupOwner;
protected:
virtual VOID SaveValue( BOOL fInvisible = TRUE );
virtual VOID RestoreValue( BOOL fInvisible = TRUE );
virtual VOID SetTabStop( BOOL fTabStop = TRUE );
public:
CONTROL_VALUE( CONTROL_GROUP * pgroupOwner = NULL )
: _pgroupOwner( pgroupOwner )
{ /* do nothing */; }
virtual VOID SetControlValueFocus();
virtual UINT QueryEventEffects( const CONTROL_EVENT & e );
VOID SetGroup( CONTROL_GROUP * pgroupOwner )
{
ASSERTSZ( (_pgroupOwner == NULL),
"CONTROL_VALUE::SetGroup - Attempting to set group twice!");
if ( _pgroupOwner == NULL )
_pgroupOwner = pgroupOwner;
}
CONTROL_GROUP * QueryGroup() const
{ return _pgroupOwner ; }
};
#endif // _BLTCTLVL_HXX_ - end of file