{
if (m->message == Message::MOUSE_MOVE)
{
+ UINT lastsel=sl.getCurrentOption();
if (sl.mouseMove((m->parameter>>16)-getScreenX(),(m->parameter&0xFFFF)-getScreenY()))
{
sl.draw();
BoxStack::getInstance()->update(this);
+ if ((int)lastsel!=sl.getCurrentOption()) {
+ Message* m2 = new Message();
+ m2->from = this;
+ m2->to = parent;
+ m2->message = Message::AUDIO_CHANGE_CHANNEL;
+ m2->parameter = (((AudioChannel*)sl.getCurrentOptionData())->pestype&0xFF)|(((AudioChannel*)sl.getCurrentOptionData())->type &0xFF)<<8 ;
+ Command::getInstance()->postMessageNoLock(m2);
+ }
}
}
else if (m->message == Message::MOUSE_LBDOWN)
}
}
}
+
{
if (m->message == Message::MOUSE_LBDOWN)
{
- BoxStack::getInstance()->handleCommand(Remote::OK); //simulate rok press
+ //check if press is outside this view! then simulate cancel
+ int x=(m->parameter>>16)-osd.getScreenX();
+ int y=(m->parameter&0xFFFF)-osd.getScreenY();
+ if (osd.getVisible()) {
+
+ if ((boxRed.getX()<=x) && (boxRed.getX()+(int)boxRed.getWidth()>=x ) &&
+ (boxRed.getY()<=y) && (boxRed.getY()+(int)boxRed.getHeight()>=y )) {
+ BoxStack::getInstance()->handleCommand(Remote::RED);
+ } else if ((boxGreen.getX()<=x) && (boxGreen.getX()+(int)boxGreen.getWidth()>=x ) &&
+ (boxGreen.getY()<=y) && (boxGreen.getY()+(int)boxGreen.getHeight()>=y)){
+ BoxStack::getInstance()->handleCommand(Remote::GREEN);
+ } else if ((boxYellow.getX()<=x) && (boxYellow.getX()+(int)boxYellow.getWidth()>=x ) &&
+ (boxYellow.getY()<=y) && (boxYellow.getY()+(int)boxYellow.getHeight()>=y )){
+ BoxStack::getInstance()->handleCommand(Remote::YELLOW);
+ } else if ((boxBlue.getX()<=x) && (boxBlue.getX()+(int)boxBlue.getWidth()>=x ) &&
+ (boxBlue.getY()<=y) && (boxBlue.getY()+(int)boxBlue.getHeight()>=y )){
+ BoxStack::getInstance()->handleCommand(Remote::BLUE);
+ } else {
+ BoxStack::getInstance()->handleCommand(Remote::OK); //simulate rok press
+ }
+
+ } else {
+ BoxStack::getInstance()->handleCommand(Remote::OK); //simulate rok press
+ }
}
else if (m->message == Message::CHANNEL_CHANGE)
{