1998-07-31 13:22:58 +00:00
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
// Name: accel.h
|
|
|
|
// Purpose: wxAcceleratorTable class
|
|
|
|
// Author: Julian Smart
|
|
|
|
// Modified by:
|
|
|
|
// Created: 31/7/98
|
|
|
|
// RCS-ID: $Id$
|
|
|
|
// Copyright: (c) Julian Smart
|
1999-06-28 21:39:49 +00:00
|
|
|
// Licence: wxWindows licence
|
1998-07-31 13:22:58 +00:00
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
#ifndef _WX_ACCEL_H_
|
|
|
|
#define _WX_ACCEL_H_
|
|
|
|
|
|
|
|
#ifdef __GNUG__
|
1999-06-28 21:39:49 +00:00
|
|
|
#pragma interface "accel.h"
|
1998-07-31 13:22:58 +00:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#include "wx/object.h"
|
|
|
|
|
|
|
|
class WXDLLEXPORT wxAcceleratorTable;
|
|
|
|
|
1999-06-28 21:39:49 +00:00
|
|
|
// ----------------------------------------------------------------------------
|
|
|
|
// constants
|
|
|
|
// ----------------------------------------------------------------------------
|
|
|
|
|
1998-07-31 13:22:58 +00:00
|
|
|
// Hold Ctrl key down
|
|
|
|
#define wxACCEL_ALT 0x01
|
|
|
|
|
|
|
|
// Hold Ctrl key down
|
|
|
|
#define wxACCEL_CTRL 0x02
|
|
|
|
|
|
|
|
// Hold Shift key down
|
|
|
|
#define wxACCEL_SHIFT 0x04
|
|
|
|
|
1998-08-17 09:39:39 +00:00
|
|
|
// Hold no other key
|
|
|
|
#define wxACCEL_NORMAL 0x00
|
|
|
|
|
1999-06-28 21:39:49 +00:00
|
|
|
// ----------------------------------------------------------------------------
|
|
|
|
// an entry in wxAcceleratorTable corresponds to one accelerator
|
|
|
|
// ----------------------------------------------------------------------------
|
|
|
|
|
1998-07-31 13:22:58 +00:00
|
|
|
class WXDLLEXPORT wxAcceleratorEntry
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
wxAcceleratorEntry(int flags = 0, int keyCode = 0, int cmd = 0)
|
|
|
|
{
|
1999-06-28 21:39:49 +00:00
|
|
|
Set(flags, keyCode, cmd);
|
1998-07-31 13:22:58 +00:00
|
|
|
}
|
|
|
|
|
1999-06-28 21:39:49 +00:00
|
|
|
void Set(int flags, int keyCode, int cmd)
|
|
|
|
{
|
|
|
|
m_flags = flags; m_keyCode = keyCode; m_command = cmd;
|
|
|
|
}
|
1998-07-31 13:22:58 +00:00
|
|
|
|
1999-06-28 21:39:49 +00:00
|
|
|
int GetFlags() const { return m_flags; }
|
|
|
|
int GetKeyCode() const { return m_keyCode; }
|
|
|
|
int GetCommand() const { return m_command; }
|
1998-07-31 13:22:58 +00:00
|
|
|
|
1999-06-28 21:39:49 +00:00
|
|
|
//private:
|
|
|
|
int m_flags;
|
|
|
|
int m_keyCode; // ASCII or virtual keycode
|
|
|
|
int m_command; // Command id to generate
|
1998-07-31 13:22:58 +00:00
|
|
|
};
|
|
|
|
|
1999-06-28 21:39:49 +00:00
|
|
|
// ----------------------------------------------------------------------------
|
|
|
|
// the accel table has all accelerators for a given window or menu
|
|
|
|
// ----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
class WXDLLEXPORT wxAcceleratorTable : public wxObject
|
1998-07-31 13:22:58 +00:00
|
|
|
{
|
|
|
|
DECLARE_DYNAMIC_CLASS(wxAcceleratorTable)
|
|
|
|
public:
|
|
|
|
wxAcceleratorTable();
|
|
|
|
wxAcceleratorTable(const wxString& resource); // Load from .rc resource
|
1998-09-07 08:46:57 +00:00
|
|
|
wxAcceleratorTable(int n, const wxAcceleratorEntry entries[]); // Load from array
|
1998-07-31 13:22:58 +00:00
|
|
|
|
|
|
|
// Copy constructors
|
1999-10-14 04:43:46 +00:00
|
|
|
inline wxAcceleratorTable(const wxAcceleratorTable& accel) { Ref(accel); }
|
|
|
|
inline wxAcceleratorTable(const wxAcceleratorTable* accel) { if (accel) Ref(*accel); }
|
1998-07-31 13:22:58 +00:00
|
|
|
|
|
|
|
~wxAcceleratorTable();
|
|
|
|
|
1999-10-14 04:43:46 +00:00
|
|
|
inline wxAcceleratorTable& operator = (const wxAcceleratorTable& accel) { if ( *this != accel ) Ref(accel); return *this; }
|
|
|
|
inline bool operator == (const wxAcceleratorTable& accel) const { return m_refData == accel.m_refData; }
|
|
|
|
inline bool operator != (const wxAcceleratorTable& accel) const { return m_refData != accel.m_refData; }
|
1999-06-28 21:39:49 +00:00
|
|
|
|
|
|
|
bool Ok() const;
|
1998-07-31 13:22:58 +00:00
|
|
|
void SetHACCEL(WXHACCEL hAccel);
|
|
|
|
WXHACCEL GetHACCEL() const;
|
1999-06-28 21:39:49 +00:00
|
|
|
|
|
|
|
// translate the accelerator, return TRUE if done
|
|
|
|
bool Translate(wxWindow *window, WXMSG *msg) const;
|
1998-07-31 13:22:58 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
WXDLLEXPORT_DATA(extern wxAcceleratorTable) wxNullAcceleratorTable;
|
|
|
|
|
|
|
|
#endif
|
|
|
|
// _WX_ACCEL_H_
|