home *** CD-ROM | disk | FTP | other *** search
- //
- // *************************************************************************
- // * *
- // * OMEGA C++ Windowing Class Library *
- // * ================================= *
- // * *
- // * Copyright 1991,92 Tom Clancy *
- // * Submitted to the public domain, April 1992 *
- // * *
- // *************************************************************************
- // * *
- // * Event Handling Methods *
- // * *
- // *************************************************************************
- //
-
- #include <dos.h>
- #include "omevent.hpp"
-
- static int TheEvent, Emx, Emy, Emb, Cmd, Disabled;
-
- int event_handler::getlastevent() {
-
- return TheEvent;
- }
-
- void event_handler::setlastevent(int e) {
-
- TheEvent=e;
- }
-
- void event_handler::setlastcmd(int c) {
-
- Cmd=c;
- }
-
- int event_handler::getlastcmd() {
-
- return Cmd;
- }
-
- int event_handler::buttonx() {
-
- return Emx;
- }
-
- int event_handler::buttony() {
-
- return Emy;
- }
-
- void event_handler::setbuttonx(int x) {
- Emx=x;
- }
-
- void event_handler::setbuttony(int y) {
- Emy=y;
- }
-
- int event_handler::buttonb() {
-
- return Emb;
- }
-
- void event_handler::disable_handler() {
-
- Disabled=1;
- }
-
- void event_handler::enable_handler() {
-
- Disabled=0;
- }
-
- int event_handler::isdisabled() {
-
- return Disabled;
- }
-
- int event_handler::event() {
-
- int s,p;
-
- TheEvent=0;
- showmouse();
- if(!isdisabled()) {
- getbuttonpress(0,s,p,Emx,Emy);
- if((s&1)==1) {
- TheEvent=evMButton;
- mouse::getmouse(Emx,Emy,Emb);
- }
- else
- if((s&2)==2) {
- TheEvent=evMButton;
- mouse::getmouse(Emx,Emy,Emb);
- }
- else
- if(keypressed()) {
- TheEvent=evKeyboard;
- readkey();
- }
- }
- return TheEvent;
- }
-
- void event_handler::handle_events() {
-
- int ev,cm;
-
- if(event()) {
- switch(getlastevent()) {
- case evMButton :
- cm=handle_mouse_event();
- break;
- case evKeyboard :
- cm=handle_key_event();
- break;
- }
- setlastcmd(cm);
- }
- }
-
- void event_handler::run() {
-
- while(getlastcmd()!=cmdClose)
- handle_events();
- }
-