opennx/MyWizard.h
2025-08-08 20:34:09 +02:00

465 lines
12 KiB
C++

// $Id: MyWizard.h 625 2011-06-09 14:50:12Z felfert $
//
// Copyright (C) 2006 The OpenNX Team
// Author: Fritz Elfert
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU Library General Public License as
// published by the Free Software Foundation; either version 2 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this program; if not, write to the
// Free Software Foundation, Inc.,
// 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
#ifndef _MYWIZARD_H_
#define _MYWIZARD_H_
#if defined(__GNUG__) && !defined(__APPLE__)
#pragma interface "MyWizard.cpp"
#endif
/*!
* Includes
*/
////@begin includes
#include "MyWizard_symbols.h"
#include "wx/xrc/xmlres.h"
#include "wx/wizard.h"
#include "wx/valgen.h"
#include "wx/spinctrl.h"
////@end includes
#include "MyValidator.h"
/*!
* Forward declarations
*/
////@begin forward declarations
class WizardPageWelcome;
class WizardPageSession;
class WizardPageDesktop;
class wxSpinCtrl;
class WizardPageSecurity;
class WizardPageFinish;
class WrappedStaticText;
////@end forward declarations
class MyXmlConfig;
/*!
* Control identifiers
*/
////@begin control identifiers
#define ID_WIZARD 10076
#define ID_WIZARDPAGE_WELCOME 10077
#define ID_WIZARDPAGE_SESSION 10084
#define ID_WIZARDPAGE_DESKTOP 10133
#define ID_WIZARDPAGE_SECURITY 10141
#define ID_WIZARDPAGE_FINISH 10179
#define SYMBOL_MYWIZARD_IDNAME ID_WIZARD
////@end control identifiers
/*!
* Compatibility
*/
#ifndef wxCLOSE_BOX
#define wxCLOSE_BOX 0x1000
#endif
/*!
* MyWizard class declaration
*/
class MyWizard: public wxWizard, public KeyTypeCallback
{
DECLARE_CLASS( MyWizard )
DECLARE_EVENT_TABLE()
public:
/// Constructors
MyWizard( );
MyWizard( wxWindow* parent, wxWindowID id = SYMBOL_MYWIZARD_IDNAME, const wxPoint& pos = wxDefaultPosition );
~MyWizard();
/// Creation
bool Create( wxWindow* parent, wxWindowID id = SYMBOL_MYWIZARD_IDNAME, const wxPoint& pos = wxDefaultPosition );
/// Creates the controls and sizers
void CreateControls();
// Local implementation handles modality
// on OSX differently.
virtual bool RunWizard(wxWizardPage *firstPage);
virtual wxSize GetPageSize() const;
void EnableNext(bool enable = true);
virtual void KeyTyped();
void SetCancelled() { m_bCancelForced = true; }
wxString sGetConfigName();
MyXmlConfig *pGetConfig() { return m_pCfg; }
////@begin MyWizard event handler declarations
////@end MyWizard event handler declarations
////@begin MyWizard member function declarations
/// Runs the wizard
bool Run();
/// Retrieves bitmap resources
wxBitmap GetBitmapResource( const wxString& name );
/// Retrieves icon resources
wxIcon GetIconResource( const wxString& name );
////@end MyWizard member function declarations
private:
/// Should we show tooltips?
static bool ShowToolTips();
////@begin MyWizard member variables
WizardPageWelcome* m_pPageWelcome;
WizardPageSession* m_pPageSession;
WizardPageDesktop* m_pPageDesktop;
WizardPageSecurity* m_pPageSecurity;
WizardPageFinish* m_pPageFinish;
////@end MyWizard member variables
wxButton *nextButton;
MyXmlConfig *m_pCfg;
bool m_bCancelForced;
int minW, minH;
};
/*!
* WizardPageWelcome class declaration
*/
class WizardPageWelcome: public wxWizardPageSimple
{
DECLARE_DYNAMIC_CLASS( WizardPageWelcome )
DECLARE_EVENT_TABLE()
public:
/// Constructors
WizardPageWelcome( );
WizardPageWelcome( wxWizard* parent );
/// Creation
bool Create( wxWizard* parent );
private:
/// Creates the controls and sizers
void CreateControls();
////@begin WizardPageWelcome event handler declarations
/// wxEVT_WIZARD_PAGE_CHANGED event handler for ID_WIZARDPAGE_WELCOME
void OnWizardpageWelcomePageChanged( wxWizardEvent& event );
////@end WizardPageWelcome event handler declarations
////@begin WizardPageWelcome member function declarations
/// Retrieves bitmap resources
wxBitmap GetBitmapResource( const wxString& name );
/// Retrieves icon resources
wxIcon GetIconResource( const wxString& name );
////@end WizardPageWelcome member function declarations
/// Should we show tooltips?
static bool ShowToolTips();
////@begin WizardPageWelcome member variables
////@end WizardPageWelcome member variables
};
/*!
* WizardPageSession class declaration
*/
class WizardPageSession: public wxWizardPageSimple
{
DECLARE_DYNAMIC_CLASS( WizardPageSession )
DECLARE_EVENT_TABLE()
public:
/// Constructors
WizardPageSession( );
WizardPageSession( wxWizard* parent );
/// Creation
bool Create( wxWizard* parent );
void KeyTyped();
private:
/// Creates the controls and sizers
void CreateControls();
bool ConfigExists(wxString &);
void CheckNextEnable();
////@begin WizardPageSession event handler declarations
/// wxEVT_WIZARD_PAGE_CHANGED event handler for ID_WIZARDPAGE_SESSION
void OnWizardpageSessionPageChanged( wxWizardEvent& event );
/// wxEVT_WIZARD_PAGE_CHANGING event handler for ID_WIZARDPAGE_SESSION
void OnWizardpageSessionPageChanging( wxWizardEvent& event );
/// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_TEXTCTRL_SESSION_NAME
void OnTextctrlSessionNameUpdated( wxCommandEvent& event );
/// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_TEXTCTRL_SVRNAME
void OnTextctrlSvrnameUpdated( wxCommandEvent& event );
/// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_TEXTCTRL_SVRPORT
void OnTextctrlSvrportUpdated( wxCommandEvent& event );
////@end WizardPageSession event handler declarations
////@begin WizardPageSession member function declarations
/// Retrieves bitmap resources
wxBitmap GetBitmapResource( const wxString& name );
/// Retrieves icon resources
wxIcon GetIconResource( const wxString& name );
////@end WizardPageSession member function declarations
/// Should we show tooltips?
static bool ShowToolTips();
////@begin WizardPageSession member variables
wxTextCtrl* m_pCtrlSessionName;
wxTextCtrl* m_pCtrlHostName;
wxTextCtrl* m_pCtrlPort;
wxString m_sHostName;
int m_iPort;
int m_iConnectionSpeed;
wxString m_sSessionName;
////@end WizardPageSession member variables
bool m_bKeyTyped;
};
/*!
* WizardPageDesktop class declaration
*/
class WizardPageDesktop: public wxWizardPageSimple
{
DECLARE_DYNAMIC_CLASS( WizardPageDesktop )
DECLARE_EVENT_TABLE()
public:
/// Constructors
WizardPageDesktop( );
WizardPageDesktop( wxWizard* parent );
~WizardPageDesktop( );
/// Creation
bool Create( wxWizard* parent );
private:
void UpdateDialogConstraints(bool);
void ShowRdpPropertyDialog();
void ShowVncPropertyDialog();
/// Creates the controls and sizers
void CreateControls();
void CheckNextEnable();
////@begin WizardPageDesktop event handler declarations
/// wxEVT_WIZARD_PAGE_CHANGED event handler for ID_WIZARDPAGE_DESKTOP
void OnWizardpageDesktopPageChanged( wxWizardEvent& event );
/// wxEVT_WIZARD_PAGE_CHANGING event handler for ID_WIZARDPAGE_DESKTOP
void OnWizardpageDesktopPageChanging( wxWizardEvent& event );
/// wxEVT_COMMAND_COMBOBOX_SELECTED event handler for ID_COMBOBOX_DPROTO
void OnComboboxDprotoSelected( wxCommandEvent& event );
/// wxEVT_COMMAND_COMBOBOX_SELECTED event handler for ID_COMBOBOX_DTYPE
void OnComboboxDtypeSelected( wxCommandEvent& event );
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON_DSETTINGS
void OnButtonDsettingsClick( wxCommandEvent& event );
/// wxEVT_COMMAND_COMBOBOX_SELECTED event handler for ID_COMBOBOX_DISPTYPE
void OnComboboxDisptypeSelected( wxCommandEvent& event );
////@end WizardPageDesktop event handler declarations
void OnRdpDialogTimer(wxTimerEvent &);
void OnVncDialogTimer(wxTimerEvent &);
////@begin WizardPageDesktop member function declarations
/// Retrieves bitmap resources
wxBitmap GetBitmapResource( const wxString& name );
/// Retrieves icon resources
wxIcon GetIconResource( const wxString& name );
////@end WizardPageDesktop member function declarations
/// Should we show tooltips?
static bool ShowToolTips();
////@begin WizardPageDesktop member variables
wxComboBox* m_pCtrlDesktopType;
wxButton* m_pCtrlDesktopSettings;
wxComboBox* m_pCtrlDisplayType;
wxSpinCtrl* m_pCtrlDisplayWidth;
wxSpinCtrl* m_pCtrlDisplayHeight;
int m_iSessionType;
int m_iDesktopTypeDialog;
int m_iDisplayType;
int m_iDisplayWidth;
int m_iDisplayHeight;
private:
int m_iPseudoDesktopTypeIndex;
int m_iPseudoDisplayTypeIndex;
////@end WizardPageDesktop member variables
int m_iDesktopType;
int m_iUnixDesktopType;
wxTimer *m_pRdpDialogTimer;
wxTimer *m_pVncDialogTimer;
};
/*!
* WizardPageSecurity class declaration
*/
class WizardPageSecurity: public wxWizardPageSimple
{
DECLARE_DYNAMIC_CLASS( WizardPageSecurity )
DECLARE_EVENT_TABLE()
public:
/// Constructors
WizardPageSecurity( );
WizardPageSecurity( wxWizard* parent );
/// Creation
bool Create( wxWizard* parent );
private:
/// Creates the controls and sizers
void CreateControls();
////@begin WizardPageSecurity event handler declarations
/// wxEVT_WIZARD_PAGE_CHANGED event handler for ID_WIZARDPAGE_SECURITY
void OnWizardpageSecurityPageChanged( wxWizardEvent& event );
/// wxEVT_WIZARD_PAGE_CHANGING event handler for ID_WIZARDPAGE_SECURITY
void OnWizardpageSecurityPageChanging( wxWizardEvent& event );
/// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_CHECKBOX_SCARD
void OnCheckboxScardClick( wxCommandEvent& event );
////@end WizardPageSecurity event handler declarations
////@begin WizardPageSecurity member function declarations
/// Retrieves bitmap resources
wxBitmap GetBitmapResource( const wxString& name );
/// Retrieves icon resources
wxIcon GetIconResource( const wxString& name );
////@end WizardPageSecurity member function declarations
/// Should we show tooltips?
static bool ShowToolTips();
////@begin WizardPageSecurity member variables
wxCheckBox* m_pCtrlUseSmartCard;
wxCheckBox* m_pCtrlEnableSSL;
bool m_bUseSmartCard;
bool m_bEnableSSL;
////@end WizardPageSecurity member variables
};
/*!
* WizardPageFinish class declaration
*/
class WizardPageFinish: public wxWizardPageSimple
{
DECLARE_DYNAMIC_CLASS( WizardPageFinish )
DECLARE_EVENT_TABLE()
public:
/// Constructors
WizardPageFinish( );
WizardPageFinish( wxWizard* parent );
/// Creation
bool Create( wxWizard* parent );
private:
/// Creates the controls and sizers
void CreateControls();
////@begin WizardPageFinish event handler declarations
/// wxEVT_WIZARD_PAGE_CHANGED event handler for ID_WIZARDPAGE_FINISH
void OnWizardpageFinishPageChanged( wxWizardEvent& event );
/// wxEVT_WIZARD_PAGE_CHANGING event handler for ID_WIZARDPAGE_FINISH
void OnWizardpageFinishPageChanging( wxWizardEvent& event );
////@end WizardPageFinish event handler declarations
////@begin WizardPageFinish member function declarations
/// Retrieves bitmap resources
wxBitmap GetBitmapResource( const wxString& name );
/// Retrieves icon resources
wxIcon GetIconResource( const wxString& name );
////@end WizardPageFinish member function declarations
/// Should we show tooltips?
static bool ShowToolTips();
////@begin WizardPageFinish member variables
WrappedStaticText* m_pCtrlHeader;
bool m_bCreateShortcut;
bool m_bShowAdvancedConfig;
////@end WizardPageFinish member variables
};
#endif
// _MYWIZARD_H_