/////////////////////////////////////////////////////////////////////////////
// Name: wconfiguration.h
// Purpose:
// Author: Cesar Mauri Loba
// Modified by:
// Created: 29/12/2008 16:35:20
// RCS-ID:
// Copyright: (C) 2008 Cesar Mauri from CREA Sistemes Informatics
// License:
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 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 General Public License
// along with this program. If not, see .
/////////////////////////////////////////////////////////////////////////////
#ifndef _WCONFIGURATION_H_
#define _WCONFIGURATION_H_
/*!
* Includes
*/
#include "hotkeymanager.h"
////@begin includes
#include "wx/listbook.h"
#include "wx/notebook.h"
#include "wx/spinctrl.h"
////@end includes
#include
#include
#include
#include
#include
#include
#include
/*!
* Forward declarations
*/
////@begin forward declarations
class wxSpinCtrl;
class wxFlexGridSizer;
////@end forward declarations
class wxPanel;
/*!
* Control identifiers
*/
////@begin control identifiers
#define ID_WCONFIGURATION 10014
#define ID_LISTBOOK 10051
#define ID_NOTEBOOK 10019
#define ID_PANEL_MOTION 10021
#define ID_SPINCTRL_XSPEED 10026
#define ID_SPINCTRL_YSPEED 10000
#define ID_SPINCTRL_ACCELERATION 10001
#define ID_SPINCTRL_SMOOTHNESS 10002
#define ID_SPINCTRL_EASYSTOP 10003
#define ID_BUTTON 10074
#define ID_PANEL_WORKSPACE 10061
#define ID_CHECKBOX_WORKSPACE_LIMIT 10062
#define ID_SPINCTRL_TOP_WORKSPACE 10063
#define ID_SPINCTRL_LEFT_WORKSPACE 10064
#define ID_SPINCTRL_RIGHT_WORKSPACE 10065
#define ID_SPINCTRL_BOTTOM_WORKSPACE 10066
#define ID_CHECKBOX2 10067
#define ID_PANEL_CLICK 10024
#define ID_CHECKBOX_ENABLE_DWELL 10031
#define ID_STATIC_DWELL_TIME 10072
#define ID_SPINCTRL_DWELL_TIME 10005
#define ID_STATIC_DWELL_AREA 10073
#define ID_SPINCTRL_DWELL_AREA 10004
#define ID_CHECKBOX_ALLOW_CONSECUTIVE 10032
#define ID_CHECKBOX_BEEP_ON_CLICK 10033
#define ID_CHECKBOX_ALLOW_VISUAL_ALERTS 10089
#define ID_STATICBOX_CLICK_WIN 10007
#define ID_CHECKBOX_SHOW_CLICKWIN 10037
#define ID_STATIC_DESIGN 10081
#define ID_CHOICE_DESIGN 10087
#define ID_STATIC_BEHAVIOUR 10082
#define ID_CHOICE_BEHAVIOUR 10006
#define ID_CHOICE5 10068
#define ID_CHECKBOX_AUTOHIDE 10113
#define ID_STATICBOX_GESTURE_CLICK 10008
#define ID_CHECKBOX 10034
#define ID_STATIC_MOVE_LEFT 10083
#define ID_CHOICE 10035
#define ID_STATIC_MOVE_RIGHT 10084
#define ID_CHOICE1 10088
#define ID_STATIC_MOVE_UP 10085
#define ID_CHOICE2 10102
#define ID_STATIC_MOVE_DOWN 10086
#define ID_CHOICE3 10105
#define ID_PANEL_KEYS 10110
#define ID_PANEL_ADVANCED 10025
#define ID_CHECKBOX_STARTUP 10071
#define ID_CHECKBOX_ENABLE_AT_STARTUP 10023
#define ID_TEXTCTRL_ONSCREENKEYBOARDCOMMAND 10036
#define ID_BUTTON_ONSCREENKEYBOARDCOMMAND 10049
#define ID_CHECKBO_LEGACY_TRACKER 10009
#define ID_CHECKBOX_AUTO_LOCATE_FACE 10038
#define ID_CHOICE4 10109
#define ID_CHECKBOX_ENABLE_WHEN_FACE_DETECTED 10039
#define ID_SPINCTRL2 10107
#define ID_SPIN_SEND_ACTION_WAIT 10131
#define ID_PANEL 10050
#define ID_CHOICE_PROFILE 10015
#define ID_BUTTON_ADD_PROFILE 10017
#define ID_BUTTON_DEL_PROFILE 10018
#define ID_TEXTCTRL_SELECTED_CAMERA 10052
#define ID_BUTTON_CAMERA_SETTINGS 10053
#define ID_BUTTON_CHANGE_CAMERA 10054
#define ID_CHOICE_LANGUAGE 10012
#define ID_CHECKBOX_CHECK_UPDATES 10010
#define SYMBOL_WCONFIGURATION_STYLE wxCAPTION|wxSYSTEM_MENU|wxCLOSE_BOX|wxTAB_TRAVERSAL
#define SYMBOL_WCONFIGURATION_TITLE _("Configuration")
#define SYMBOL_WCONFIGURATION_IDNAME ID_WCONFIGURATION
#define SYMBOL_WCONFIGURATION_SIZE wxDefaultSize
#define SYMBOL_WCONFIGURATION_POSITION wxDefaultPosition
////@end control identifiers
#define ID_COMBOBOX_LEFT 10007
#define ID_COMBOBOX_RIGHT 10008
#define ID_COMBOBOX_TOP 10009
#define ID_COMBOBOX_BOTTOM 10010
/*!
* WConfiguration class declaration
*/
class WConfiguration: public wxDialog
{
DECLARE_DYNAMIC_CLASS( WConfiguration )
DECLARE_EVENT_TABLE()
public:
/// Constructors
WConfiguration();
WConfiguration( wxWindow* parent, wxWindowID id = SYMBOL_WCONFIGURATION_IDNAME, const wxString& caption = SYMBOL_WCONFIGURATION_TITLE, const wxPoint& pos = SYMBOL_WCONFIGURATION_POSITION, const wxSize& size = SYMBOL_WCONFIGURATION_SIZE, long style = SYMBOL_WCONFIGURATION_STYLE );
/// Creation
bool Create( wxWindow* parent, wxWindowID id = SYMBOL_WCONFIGURATION_IDNAME, const wxString& caption = SYMBOL_WCONFIGURATION_TITLE, const wxPoint& pos = SYMBOL_WCONFIGURATION_POSITION, const wxSize& size = SYMBOL_WCONFIGURATION_SIZE, long style = SYMBOL_WCONFIGURATION_STYLE );
/// Destructor
~WConfiguration();
private:
/// Initialises member variables
void Init();
/// Creates the controls and sizers
void CreateControls();
////@begin WConfiguration event handler declarations
/// wxEVT_COMMAND_SPINCTRL_UPDATED event handler for ID_SPINCTRL_XSPEED
void OnSpinctrlXspeedUpdated( wxSpinEvent& event );
/// wxEVT_COMMAND_SPINCTRL_UPDATED event handler for ID_SPINCTRL_YSPEED
void OnSpinctrlYspeedUpdated( wxSpinEvent& event );
/// wxEVT_COMMAND_SPINCTRL_UPDATED event handler for ID_SPINCTRL_ACCELERATION
void OnSpinctrlAccelerationUpdated( wxSpinEvent& event );
/// wxEVT_COMMAND_SPINCTRL_UPDATED event handler for ID_SPINCTRL_SMOOTHNESS
void OnSpinctrlSmoothnessUpdated( wxSpinEvent& event );
/// wxEVT_COMMAND_SPINCTRL_UPDATED event handler for ID_SPINCTRL_EASYSTOP
void OnSpinctrlEasystopUpdated( wxSpinEvent& event );
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON
void OnButtonClick( wxCommandEvent& event );
/// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_CHECKBOX_WORKSPACE_LIMIT
void OnCheckboxWorkspaceLimitClick( wxCommandEvent& event );
/// wxEVT_COMMAND_SPINCTRL_UPDATED event handler for ID_SPINCTRL_TOP_WORKSPACE
void OnSpinctrlTopWorkspaceUpdated( wxSpinEvent& event );
/// wxEVT_COMMAND_SPINCTRL_UPDATED event handler for ID_SPINCTRL_LEFT_WORKSPACE
void OnSpinctrlLeftWorkspaceUpdated( wxSpinEvent& event );
/// wxEVT_COMMAND_SPINCTRL_UPDATED event handler for ID_SPINCTRL_RIGHT_WORKSPACE
void OnSpinctrlRightWorkspaceUpdated( wxSpinEvent& event );
/// wxEVT_COMMAND_SPINCTRL_UPDATED event handler for ID_SPINCTRL_BOTTOM_WORKSPACE
void OnSpinctrlBottomWorkspaceUpdated( wxSpinEvent& event );
/// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_CHECKBOX2
void OnCheckboxWrapPointer( wxCommandEvent& event );
/// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_CHECKBOX_ENABLE_DWELL
void OnCheckboxEnableDwellClick( wxCommandEvent& event );
/// wxEVT_COMMAND_SPINCTRL_UPDATED event handler for ID_SPINCTRL_DWELL_TIME
void OnSpinctrlDwellTimeUpdated( wxSpinEvent& event );
/// wxEVT_COMMAND_SPINCTRL_UPDATED event handler for ID_SPINCTRL_DWELL_AREA
void OnSpinctrlDwellAreaUpdated( wxSpinEvent& event );
/// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_CHECKBOX_ALLOW_CONSECUTIVE
void OnCheckboxAllowConsecutiveClick( wxCommandEvent& event );
/// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_CHECKBOX_BEEP_ON_CLICK
void OnCheckboxBeepOnClickClick( wxCommandEvent& event );
#if defined(__WXGTK__)
/// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_CHECKBOX_ALLOW_VISUAL_ALERTS
void OnCheckboxAllowVisualAlertsClick( wxCommandEvent& event );
#endif
/// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_CHECKBOX_SHOW_CLICKWIN
void OnCheckboxShowClickwinClick( wxCommandEvent& event );
/// wxEVT_COMMAND_CHOICE_SELECTED event handler for ID_CHOICE_DESIGN
void OnChoiceDesignSelected( wxCommandEvent& event );
/// wxEVT_COMMAND_CHOICE_SELECTED event handler for ID_CHOICE_BEHAVIOUR
void OnChoiceBehaviourSelected( wxCommandEvent& event );
#if defined(__WXGTK__)
/// wxEVT_COMMAND_CHOICE_SELECTED event handler for ID_CHOICE5
void OnChoiceClickWindowModeSelected( wxCommandEvent& event );
#endif
#if defined(__WXGTK__)
/// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_CHECKBOX_AUTOHIDE
void OnCheckboxAutohideClick( wxCommandEvent& event );
#endif
#if defined(__WXGTK__)
/// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_CHECKBOX
void OnCheckboxEnableGestureClick( wxCommandEvent& event );
#endif
#if defined(__WXGTK__)
/// wxEVT_COMMAND_CHOICE_SELECTED event handler for ID_CHOICE
void OnLeftGestureChoiceSelected( wxCommandEvent& event );
#endif
#if defined(__WXGTK__)
/// wxEVT_COMMAND_CHOICE_SELECTED event handler for ID_CHOICE1
void OnRightGestureChoiceSelected( wxCommandEvent& event );
#endif
#if defined(__WXGTK__)
/// wxEVT_COMMAND_CHOICE_SELECTED event handler for ID_CHOICE2
void OnUpGestureChoiceSelected( wxCommandEvent& event );
#endif
#if defined(__WXGTK__)
/// wxEVT_COMMAND_CHOICE_SELECTED event handler for ID_CHOICE3
void OnDownGestureChoiceSelected( wxCommandEvent& event );
#endif
#if defined(__WXGTK__)
/// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_CHECKBOX_STARTUP
void OnCheckboxStartupClick( wxCommandEvent& event );
#endif
/// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_CHECKBOX_ENABLE_AT_STARTUP
void OnCheckboxEnableAtStartupClick( wxCommandEvent& event );
/// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_TEXTCTRL_ONSCREENKEYBOARDCOMMAND
void OnTextctrlOnscreenkeyboardcommandTextUpdated( wxCommandEvent& event );
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON_ONSCREENKEYBOARDCOMMAND
void OnButtonOnscreenkeyboardcommandClick( wxCommandEvent& event );
/// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_CHECKBO_LEGACY_TRACKER
void OnCheckboLegacyTrackerClick( wxCommandEvent& event );
/// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_CHECKBOX_AUTO_LOCATE_FACE
void OnCheckboxAutoLocateFaceClick( wxCommandEvent& event );
/// wxEVT_COMMAND_CHOICE_SELECTED event handler for ID_CHOICE4
void OnChoCpuUsageSelected( wxCommandEvent& event );
/// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_CHECKBOX_ENABLE_WHEN_FACE_DETECTED
void OnCheckboxEnableWhenFaceDetectedClick( wxCommandEvent& event );
/// wxEVT_COMMAND_SPINCTRL_UPDATED event handler for ID_SPINCTRL2
void OnSpinLocateFaceTimeoutUpdated( wxSpinEvent& event );
/// wxEVT_COMMAND_SPINCTRL_UPDATED event handler for ID_SPIN_SEND_ACTION_WAIT
void OnSpinSendActionWaitUpdated( wxSpinEvent& event );
/// wxEVT_COMMAND_CHOICE_SELECTED event handler for ID_CHOICE_PROFILE
void OnChoiceProfileSelected( wxCommandEvent& event );
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON_ADD_PROFILE
void OnButtonAddProfileClick( wxCommandEvent& event );
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON_DEL_PROFILE
void OnButtonDelProfileClick( wxCommandEvent& event );
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON_CAMERA_SETTINGS
void OnButtonCameraSettingsClick( wxCommandEvent& event );
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON_CHANGE_CAMERA
void OnButtonChangeCameraClick( wxCommandEvent& event );
/// wxEVT_COMMAND_CHOICE_SELECTED event handler for ID_CHOICE_LANGUAGE
void OnChoiceLanguageSelected( wxCommandEvent& event );
/// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_CHECKBOX_CHECK_UPDATES
void OnCheckboxCheckUpdatesClick( wxCommandEvent& event );
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_OK
void OnOkClick( wxCommandEvent& event );
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CANCEL
void OnCancelClick( wxCommandEvent& event );
////@end WConfiguration event handler declarations
/// wxEVT_COMMAND_COMBOBOX_SELECTED event handler for ID_COMBOBOX_LEFT
void OnComboboxLeftSelected( wxCommandEvent& event );
/// wxEVT_COMMAND_COMBOBOX_SELECTED event handler for ID_COMBOBOX_RIGHT
void OnComboboxRightSelected( wxCommandEvent& event );
/// wxEVT_COMMAND_COMBOBOX_SELECTED event handler for ID_COMBOBOX_TOP
void OnComboboxTopSelected( wxCommandEvent& event );
/// wxEVT_COMMAND_COMBOBOX_SELECTED event handler for ID_COMBOBOX_BOTTOM
void OnComboboxBottomSelected( wxCommandEvent& event );
void OnHotkeyCheckboxClick( wxCommandEvent& event );
void OnHotkeyButtonClick( wxCommandEvent& event );
////@begin WConfiguration member function declarations
/// Retrieves bitmap resources
wxBitmap GetBitmapResource( const wxString& name );
/// Retrieves icon resources
wxIcon GetIconResource( const wxString& name );
////@end WConfiguration member function declarations
void CreateHotkey (const eviacam::HotKey& kc, wxWindow* parent, wxSizer* sizer);
/// Should we show tooltips?
static bool ShowToolTips();
// Enable/disable GUI areas
void UpdateGUIClickOptions();
void EnableGUIGeneralClickOptions(bool enable);
void EnableGUIGestureOptions(bool enable);
void EnableGUIClickWindowOptions(bool enable);
// Read info from model classes
void InitializeData ();
void Changed ();
void UnChanged ();
////@begin WConfiguration member variables
wxSpinCtrl* m_spinXSpeed;
wxSpinCtrl* m_spinYSpeed;
wxSpinCtrl* m_spinAcceleration;
wxSpinCtrl* m_spinSmoothness;
wxSpinCtrl* m_spinEasyStop;
wxButton* m_buttonCalibrateMotion;
wxCheckBox* m_chkEnabledWorkspace;
wxSpinCtrl* m_spin_top_workspace;
wxSpinCtrl* m_spin_left_workspace;
wxSpinCtrl* m_spin_right_workspace;
wxSpinCtrl* m_spin_bottom_workspace;
wxCheckBox* m_chkWrapPointer;
wxPanel* m_panelClick;
wxCheckBox* m_chkDwellClickEnabled;
wxStaticText* m_stDwellTime;
wxSpinCtrl* m_spinDwellTime;
wxStaticText* m_stDwellArea;
wxSpinCtrl* m_spinDwellArea;
wxCheckBox* m_chkAllowConsecutiveClick;
wxCheckBox* m_chkBeepOnClick;
#if defined(__WXGTK__)
wxCheckBox* m_chkAllowVisualAlerts;
#endif
wxStaticBox* m_sboxClickWin;
wxCheckBox* m_chkShowClickWin;
wxStaticText* m_stDesign;
wxChoice* m_choClickWindowDesign;
wxStaticText* m_stBehaviour;
wxChoice* m_choClickWindowBehaviour;
#if defined(__WXGTK__)
wxStaticText* m_stDocking;
#endif
#if defined(__WXGTK__)
wxChoice* m_choDockingMode;
#endif
#if defined(__WXGTK__)
wxCheckBox* m_chkAutohide;
#endif
#if defined(__WXGTK__)
wxStaticBox* m_sboxGestureClick;
#endif
#if defined(__WXGTK__)
wxCheckBox* m_chkEnableGestureClick;
#endif
#if defined(__WXGTK__)
wxStaticText* m_stMoveLeft;
#endif
#if defined(__WXGTK__)
wxChoice* m_choLeft;
#endif
#if defined(__WXGTK__)
wxStaticText* m_stMoveRight;
#endif
#if defined(__WXGTK__)
wxChoice* m_choRight;
#endif
#if defined(__WXGTK__)
wxStaticText* m_stMoveUp;
#endif
#if defined(__WXGTK__)
wxChoice* m_choUp;
#endif
#if defined(__WXGTK__)
wxStaticText* m_stMoveDown;
#endif
#if defined(__WXGTK__)
wxChoice* m_choDown;
#endif
wxStaticBox* m_panelKeys;
wxFlexGridSizer* m_hotkeysSizer;
#if defined(__WXGTK__)
wxCheckBox* m_chkStartup;
#endif
wxCheckBox* m_chkEnabledAtStartup;
wxTextCtrl* m_txtOnScreenKeyboardCommand;
wxButton* m_btntOnScreenKeyboardCommand;
wxStaticBox* m_sizerFaceLocalization;
wxCheckBox* m_chkLegacyTracker;
wxCheckBox* m_chkAutoLocateFace;
wxStaticText* m_staticCpuUsage;
wxChoice* m_choCpuUsage;
wxCheckBox* m_chkEnableWhenFaceDetected;
wxStaticText* m_staticLocateFaceTimeout2;
wxSpinCtrl* m_spinLocateFaceTimeout;
wxStaticText* m_staticLocateFaceTimeout;
wxSpinCtrl* m_spinSendActionWait;
wxChoice* m_choProfile;
wxButton* m_btnAddProfile;
wxButton* m_btnDeleteProfile;
wxTextCtrl* m_txtSelectedCamera;
wxButton* m_btnCameraSettings;
wxChoice* m_choLanguage;
wxCheckBox* m_chkCheckUpdatesAtStartup;
wxButton* m_btnCancel;
////@end WConfiguration member variables
wxComboBox* m_cmbLeft;
wxComboBox* m_cmbRight;
wxComboBox* m_cmbTop;
wxComboBox* m_cmbBottom;
std::vector m_controlList;
int m_lastId;
bool m_dirty;
};
#endif
// _WCONFIGURATION_H_