windows-nt/Source/XPSP1/NT/admin/netui/macprint/monitor/dialogs.hxx
2020-09-26 16:20:57 +08:00

335 lines
7.6 KiB
C++

/**********************************************************************/
/** Microsoft Windows/NT **/
/** Copyright(c) Microsoft Corp., 1991 **/
/**********************************************************************/
/*
dialogs.hxx
Class declarations for the CONFIGURE_PORT_DIALOG and
ADD_PORT_DIALOG.
FILE HISTORY:
NarenG 24-May-1993 Created for C version.
*/
#ifndef _DIALOGS_HXX
#define _DIALOGS_HXX
enum SFM_OUTLINE_LB_LEVEL
{
//
// Note, these numbers also indicate the indent level. Hence,
// the order nor the starting point must not be tampered with.
//
SFM_OLLBL_ZONE,
SFM_OLLBL_PRINTER
};
#define COL_WIDTH_OUTLINE_INDENT (12)
/*************************************************************************
NAME: CONFIGURE_PORT_DIALOG
SYNOPSIS: The class represents the configure port dialog
of the Print Manager.
INTERFACE: CONFIGURE_PORT_DIALOG - Class constructor.
~CONFIGURE_PORT_DIALOG - Class destructor.
QueryHelpContext - Called when the user presses "F1"
or the "Help" button. Used for
selecting the appropriate help
text for display.
OnOk - Called when user hits OK button.
PARENT: DIALOG_WINDOW
USES: CHECKBOX
HISTORY:
NarenG 24-May-1993 Created
**************************************************************************/
class CONFIGURE_PORT_DIALOG : public DIALOG_WINDOW
{
private:
//
// Checkbox that indicated whether or not to capture this printer
//
CHECKBOX _chkCapture;
BOOL * _pfCapture;
protected:
//
// Called during help processing to select the appropriate
// help text for display.
//
virtual ULONG QueryHelpContext( VOID );
//
// Called when user hits OK button
//
virtual BOOL OnOK( VOID );
public:
//
// Usual constructor\destructor goodies.
//
CONFIGURE_PORT_DIALOG( HWND hWndOwner, BOOL * pfCapture );
}; // class CONFIGURE_PORT_DIALOG
//
// Forward references
//
class OUTLINE_LISTBOX;
/*************************************************************************
NAME: OLLB_ENTRY
SYNOPSIS: Entry in an outline listbox.
PARENT: LBI
USES: NLS_STR
NOTES:
OLLB_ENTRY:OUTLINE_LISTBOX :: LBI:BLT_LISTBOX
HISTORY:
NarenG 1-June-1993 Stole from file manager
**************************************************************************/
class OLLB_ENTRY : public LBI
{
friend class OUTLINE_LISTBOX;
private:
SFM_OUTLINE_LB_LEVEL _ollbl;
BOOL _fExpanded;
NLS_STR _nlsZone;
NLS_STR _nlsPrinter;
WSH_ATALK_ADDRESS _wshAtalkAddress;
//
// called only by OUTLINE_LISTBOXBOX
//
VOID SetExpanded( BOOL f = TRUE )
{ _fExpanded = f; }
public:
OLLB_ENTRY( SFM_OUTLINE_LB_LEVEL ollbl,
BOOL fExpanded,
const TCHAR * pszZone,
const TCHAR * pszPrinter,
const PWSH_ATALK_ADDRESS pwshAtalkAddress );
virtual ~OLLB_ENTRY();
INT QueryLevel() const
{ return (INT) _ollbl; }
//
// Query the type of this LBI, currently returns an SFM_OUTLINE_LB_LEVEL
//
SFM_OUTLINE_LB_LEVEL QueryType() const
{ return _ollbl; }
BOOL IsExpanded() const
{ return _fExpanded; }
const TCHAR * QueryZone( VOID ) const
{ return _nlsZone.QueryPch(); }
const TCHAR * QueryPrinter( VOID ) const
{ return _nlsPrinter.QueryPch(); }
const PWSH_ATALK_ADDRESS QueryAddress( VOID )
{ return &_wshAtalkAddress; }
virtual VOID Paint( LISTBOX * plb, HDC hdc, const RECT * prect,
GUILTT_INFO * pGUILTT ) const;
virtual INT Compare( const LBI * plbi ) const;
virtual WCHAR QueryLeadingChar() const;
};
/*************************************************************************
NAME: OUTLINE_LISTBOX
SYNOPSIS: Listbox with outline-manipulation support
PARENT: BLT_LISTBOX
USES: DMID_DTE, DM_DTE
HISTORY:
NarenG 1-June-1993 Stole from file manager
**************************************************************************/
class OUTLINE_LISTBOX : public BLT_LISTBOX
{
private:
SOCKET _hSocket;
DMID_DTE * _pdmiddteZone;
DMID_DTE * _pdmiddteZoneExpanded;
DMID_DTE * _pdmiddtePrinter;
INT _nS;
INT AddZone( const TCHAR * pszZone,
BOOL fExpanded = FALSE );
INT AddPrinter( const TCHAR * pszZone,
const TCHAR * pszPrinter,
const PWSH_ATALK_ADDRESS pwshAtalkAddress );
INT FindItem( const TCHAR * pszZone,
const TCHAR * pszPrinter = NULL ) const;
protected:
INT AddItem( SFM_OUTLINE_LB_LEVEL ollbl,
BOOL fExpanded,
const TCHAR * pszZone,
const TCHAR * pszPrinter,
const PWSH_ATALK_ADDRESS pwshAtalkAddress );
INT CD_Char( WCHAR wch, USHORT nLastPos );
public:
OUTLINE_LISTBOX( OWNER_WINDOW * powin, CID cid, SOCKET hSocket );
~OUTLINE_LISTBOX();
DECLARE_LB_QUERY_ITEM( OLLB_ENTRY );
APIERR FillZones( VOID );
APIERR FillPrinters( const TCHAR * pszZone,
UINT * pcServersAdded );
VOID SetZoneExpanded( INT i, BOOL f = TRUE );
BOOL IsS()
{ return ( _nS < 0 ); }
APIERR ExpandZone( INT iZone );
APIERR ExpandZone()
{ return ExpandZone(QueryCurrentItem()); }
APIERR CollapseZone( INT iZone );
APIERR CollapseZone()
{ return CollapseZone(QueryCurrentItem()); }
//
// The following method provides the listbox items with access to the
// different display maps.
//
DM_DTE * QueryDmDte( SFM_OUTLINE_LB_LEVEL ollbl, BOOL fExpanded ) const;
};
/*************************************************************************
NAME: ADD_PORT_DIALOG
SYNOPSIS: The class represents the add port dialog
of the Print Manager.
INTERFACE: ADD_PORT_DIALOG - Class constructor.
~ADD_PORT_DIALOG - Class destructor.
QueryHelpContext - Called when the user presses "F1"
or the "Help" button. Used for
selecting the appropriate help
text for display.
OnOk - Called when user hits OK button.
PARENT: DIALOG_WINDOW
USES: CHECKBOX
HISTORY:
NarenG 24-May-1993 Created
**************************************************************************/
class ADD_PORT_DIALOG : public DIALOG_WINDOW
{
private:
PUSH_BUTTON _pbOK;
PATALKPORT _pNewPort;
OUTLINE_LISTBOX _ollb;
protected:
//
// Called during help processing to select the appropriate
// help text for display.
//
virtual ULONG QueryHelpContext( VOID );
//
// Called when user hits OK button
//
virtual BOOL OnOK( VOID );
//
// Called whenever a WM_COMMAND message is send to the dialog procedure.
//
virtual BOOL OnCommand( const CONTROL_EVENT & event );
public:
//
// Usual constructor\destructor goodies.
//
ADD_PORT_DIALOG( HWND hWndOwner, PATALKPORT pAtalkPort );
~ADD_PORT_DIALOG( VOID );
}; // class ADD_PORT_DIALOG
#endif // _DIALOGS_HXX