bayguiのEventにはまる
e->getSource()がおかしいなぁ。
作法を間違えたか?
追記
最小再現コード
class Sample : public Frame {
private:
Button* button_;
Label* label_;
public:
Sample()
{
setBounds(50, 50, 200, 200);
button_ = new Button("test");
button_->setBounds(100, 100, 24, 24);
setTitle("Sample");
add(button_);
label_ = new Label("");
label_->setBounds(10, 30, 150, 40);
add(label_);
}
~Sample()
{
delete label_;
delete button_;
}
void processEvent(Event *event)
{
if (event->getType() == MouseEvent::MOUSE_PRESSED)
{
char buf[64];
sprintf(buf, "source=%x\n", event->getSource());
label_->setText(buf);
}
}
};
int MonaMain(List<char*>* pekoe)
{
Sample* sample = new Sample;
sample->run();
delete sample;
return 0;
}event source をラベルに表示するコードですが、一度ボタンを押した後にボタン外を押してもボタンと同じsourceの event が来る場合がある。