]> git.vomp.tv Git - vompclient-marten.git/commitdiff
Mouse code for windows
authorChris Tallon <chris@vomp.tv>
Sun, 20 Apr 2008 16:21:04 +0000 (16:21 +0000)
committerChris Tallon <chris@vomp.tv>
Sun, 20 Apr 2008 16:21:04 +0000 (16:21 +0000)
vaudioselector.cc
vvideolivetv.cc

index 2d89a346dbff352ae0f7dc827327eb74165307dc..a12397b89300dd4eb51c3c928ecc713a0d9fe1a1 100644 (file)
@@ -314,10 +314,19 @@ void VAudioSelector::processMessage(Message* m)
 {
   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)
@@ -337,3 +346,4 @@ void VAudioSelector::processMessage(Message* m)
     }
   }
 }
+
index 0fbd44b22e83ed642c9a28bb5cdd30cc93f3553d..f1bbcbf9e6ef52b1f2e698d8aba477bcb9230768 100644 (file)
@@ -785,7 +785,30 @@ void VVideoLiveTV::processMessage(Message* m)
 {
   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)
   {