movetest
This commit is contained in:
parent
955c2358fb
commit
4880851f13
1 changed files with 83 additions and 0 deletions
83
src/tests/movetest.cc
Normal file
83
src/tests/movetest.cc
Normal file
|
@ -0,0 +1,83 @@
|
|||
#include <iostream>
|
||||
|
||||
#include "../FbTk/FbWindow.hh"
|
||||
#include "../FbTk/App.hh"
|
||||
#include "../FbTk/EventManager.hh"
|
||||
#include "../FbTk/EventHandler.hh"
|
||||
#include "../FbTk/Color.hh"
|
||||
|
||||
using namespace std;
|
||||
using namespace FbTk;
|
||||
|
||||
class Ev: public EventHandler {
|
||||
public:
|
||||
Ev():m_window(0,
|
||||
0, 0,
|
||||
512, 512,
|
||||
ExposureMask | ButtonPressMask |
|
||||
ButtonReleaseMask | ButtonMotionMask | SubstructureRedirectMask),
|
||||
m_drag(m_window,
|
||||
0, 0,
|
||||
32, 32,
|
||||
|
||||
ExposureMask) { /* | ButtonPressMask) {
|
||||
ButtonReleaseMask | ButtonMotionMask) {
|
||||
*/
|
||||
m_window.setName("hello");
|
||||
m_window.show();
|
||||
m_drag.setBackgroundColor(Color("blue", 0));
|
||||
m_drag.show();
|
||||
EventManager::instance()->add(*this, m_window);
|
||||
EventManager::instance()->add(*this, m_drag);
|
||||
drag = false;
|
||||
}
|
||||
|
||||
void exposeEvent(XExposeEvent &event) {
|
||||
m_drag.clear();
|
||||
m_window.clear();
|
||||
}
|
||||
|
||||
void buttonPressEvent(XButtonEvent &event) {
|
||||
if (m_drag != event.subwindow)
|
||||
return;
|
||||
|
||||
cerr<<"drag!"<<endl;
|
||||
drag = true;
|
||||
grab_x = event.x - m_drag.x();
|
||||
grab_y = event.y - m_drag.y();
|
||||
}
|
||||
|
||||
void buttonReleaseEvent(XButtonEvent &event) {
|
||||
drag = false;
|
||||
}
|
||||
|
||||
void motionNotifyEvent(XMotionEvent &event) {
|
||||
if (!drag)
|
||||
return;
|
||||
cerr<<"event.x_root: "<<event.x_root<<endl;
|
||||
cerr<<"event.y_root: "<<event.y_root<<endl;
|
||||
cerr<<"event.x: "<<event.x<<endl;
|
||||
cerr<<"event.y: "<<event.y<<endl;
|
||||
cerr<<"event.window: "<<hex<<event.window<<endl;
|
||||
cerr<<"event.subwindow: "<<event.subwindow<<endl;
|
||||
cerr<<"event.root: "<<event.root<<dec<<endl;
|
||||
cerr<<"event.is_hint: "<<event.is_hint<<endl;
|
||||
cerr<<"event.same_screen: "<<event.same_screen<<endl;
|
||||
cerr<<"event.send_event: "<<event.send_event<<endl;
|
||||
cerr<<"window pos: "<<m_window.x()<<", "<<m_window.y()<<endl;
|
||||
|
||||
m_drag.move(event.x - grab_x,
|
||||
event.y - grab_y);
|
||||
}
|
||||
int grab_x, grab_y;
|
||||
bool drag;
|
||||
FbWindow m_window, m_drag;
|
||||
};
|
||||
|
||||
int main() {
|
||||
App app;
|
||||
Ev ev;
|
||||
cerr<<"Drag the blue rectangle! ...please :D"<<endl;
|
||||
app.eventLoop();
|
||||
|
||||
}
|
Loading…
Reference in a new issue