// copyright: The programs and associated files contained in this
// distribution were developed by Mete Ciragan. The programs
// are not in the public domain, but they are freely
// distributable without licensing fees. These programs are
// provided without guarantee or warrantee expressed or
// implied.
//
#ifndef INCLUDED_MXINIT
#define INCLUDED_MXINIT
#ifdef WIN32
#include<windows.h>
#endif
classmxWindow;
classmx
{
public:
// NO CREATORS
mx(){}
virtual~mx(){}
// MANIPULATORS
staticintinit(intargc,char*argv[]);
staticintrun();
staticintcheck();
staticvoidquit();
staticvoidcleanup();
staticvoidsetEventWindow(mxWindow*window);
staticintsetDisplayMode(intw,inth,intbpp);
staticvoidsetIdleWindow(mxWindow*window);
// ACCESSORS
staticintgetDisplayWidth();
staticintgetDisplayHeight();
staticmxWindow*getMainWindow();
staticconstchar*getApplicationPath();
staticunsignedintgetTickCount();
enum
{
ACCEL_ALT=(1<<0),// The ALT key must be held down when the accelerator key is pressed.
ACCEL_CONTROL=(1<<1),// The CTRL key must be held down when the accelerator key is pressed.
ACCEL_SHIFT=(1<<2),// The SHIFT key must be held down when the accelerator key is pressed.
ACCEL_VIRTKEY=(1<<3),// The key member specifies a virtual-key code. If this flag is not specified, key is assumed to specify a character code.
};
// Based on windows.h ACCEL structure!!!
structAccel_t
{
Accel_t():
flags(0),
key(0),
command(0)
{
}
unsignedcharflags;// one or more of above ACCEL_ flags
unsignedshortkey;// Specifies the accelerator key. This member can be either a virtual-key code or a character code.
unsignedshortcommand;// Specifies the accelerator identifier. This value is placed in the low-order word of the wParam parameter of the WM_COMMAND or WM_SYSCOMMAND message when the accelerator is pressed.