cevent.cpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include <cevent.h>
00021
00022
00023 #include <iostream>
00024 #include <stdwindow.h>
00025
00026
00027 using std::cerr;
00028 using std::endl;
00029
00030 namespace stdui {
00031
00032
00033
00034 cevent::cevent()
00035 {
00036 _translate();
00037 }
00038
00039
00040 cevent::~cevent()
00041 {
00042 }
00043
00044
00045
00046
00047
00051 void cevent::_translate()
00052 {
00054 }
00058 void cmouseevent::_translate()
00059 {
00060
00061 pos = cxy(_data.x, _data.y);
00062 identify_event();
00063 }
00064
00068 bool cmouseevent::identify_event()
00069 {
00070
00071 int bs = _data.bstate;
00072 right = mleft = mmiddle = 0;
00073 if( ( bs & BUTTON1_RELEASED ) ||
00074 ( bs & BUTTON1_PRESSED ) ||
00075 ( bs & BUTTON1_CLICKED ) ||
00076 ( bs & BUTTON1_DOUBLE_CLICKED) ||
00077 ( bs & BUTTON1_TRIPLE_CLICKED)) left = 1;
00078 else
00079 if( ( bs & BUTTON2_RELEASED ) ||
00080 ( bs & BUTTON2_PRESSED ) ||
00081 ( bs & BUTTON2_CLICKED ) ||
00082 ( bs & BUTTON2_DOUBLE_CLICKED) ||
00083 ( bs & BUTTON2_TRIPLE_CLICKED)) middle = 1;
00084 else
00085 if( ( bs & BUTTON3_RELEASED ) ||
00086 ( bs & BUTTON3_PRESSED ) ||
00087 ( bs & BUTTON3_CLICKED ) ||
00088 ( bs & BUTTON3_DOUBLE_CLICKED) ||
00089 ( bs & BUTTON3_TRIPLE_CLICKED)) right = 1;
00090
00091 if( left ) {
00092 if( _data.bstate & BUTTON1_RELEASED ) setevent( events::mousebuttonrelease );
00093 else
00094 if( _data.bstate & BUTTON1_PRESSED ) setevent( events::mousebuttonpress );
00095 else
00096 if( _data.bstate & BUTTON1_CLICKED ) setevent( events::mousebuttonclick );
00097 else
00098 if( _data.bstate & BUTTON1_DOUBLE_CLICKED ) setevent( events::mousebuttondblclick );
00099 else
00100 if( _data.bstate & BUTTON1_TRIPLE_CLICKED ) setevent( events::mousebuttondblclick );
00101 }
00102 else
00103 if( middle ) {
00104 if( _data.bstate & BUTTON2_RELEASED ) setevent( events::mousebuttonrelease );
00105 else
00106 if( _data.bstate & BUTTON2_PRESSED ) setevent( events::mousebuttonpress );
00107 else
00108 if( _data.bstate & BUTTON2_CLICKED ) setevent( events::mousebuttonclick );
00109 else
00110 if( _data.bstate & BUTTON2_DOUBLE_CLICKED ) setevent( events::mousebuttondblclick );
00111 else
00112 if( _data.bstate & BUTTON2_TRIPLE_CLICKED ) setevent( events::mousebuttondblclick );
00113 }
00114 else
00115 if( right ) {
00116 if( _data.bstate & BUTTON3_RELEASED ) setevent( events::mousebuttonrelease );
00117 else
00118 if( _data.bstate & BUTTON3_PRESSED ) setevent( events::mousebuttonpress );
00119 else
00120 if( _data.bstate & BUTTON3_CLICKED ) setevent( events::mousebuttonclick );
00121 else
00122 if( _data.bstate & BUTTON3_DOUBLE_CLICKED ) setevent( events::mousebuttondblclick );
00123 else
00124 if( _data.bstate & BUTTON3_TRIPLE_CLICKED ) setevent( events::mousebuttondblclick );
00125 }
00126 else
00127 if( _oldpos != pos ){
00128 setevent( events::mousemove );
00129 }
00130 return true;
00131 }
00132
00133
00134
00135
00139 void ckeypressevent::_translate()
00140 {
00141
00142 }
00143
00144
00145
00149 bool cmouseevent::isleft()
00150 {
00151 return left != 0;
00152 }
00153
00154
00158 bool cmouseevent::ismiddle()
00159 {
00160 return middle != 0;
00161 }
00162
00163
00167 bool cmouseevent::isright()
00168 {
00169 return right !=0;
00170 }
00171
00172
00176 void cevent::clear(cevent::list& l)
00177 {
00178 for( cevent::iterator it = l.begin(); it != l.end(); it++) delete *it;
00179 l.clear();
00180 }
00181
00182 }
00183
API Documentation Generated by:
1.4.0
About the author |

Site started with trial version of DreamWeaver MX 2004 |
Finalizing with

|
Contact | ©2005, Serge Lussier ( Bretzel )