Example #1
0
//--------------------------------------------------------------
/*protected */void ofxSimpleButton::touchDown(ofTouchEventArgs &touch)
{
    if (touch.id == 0 && isInside(touch.x, touch.y)) {
        buttonAction(true);
    }
    
}
Example #2
0
void MythThemedMenu::customEvent(QEvent *event)
{
    if (event->type() == DialogCompletionEvent::kEventType)
    {
        DialogCompletionEvent *dce = (DialogCompletionEvent*)(event);

        QString resultid = dce->GetId();
        //int buttonnum = dce->GetResult();
        QString halt_cmd = GetMythDB()->GetSetting("HaltCommand");
        QString reboot_cmd = GetMythDB()->GetSetting("RebootCommand");

        if (resultid == "popmenu")
        {
            QString action = dce->GetData().toString();
            if (action == "shutdown")
            {
                if (!halt_cmd.isEmpty())
                    myth_system(halt_cmd);
            }
            else if (action == "reboot")
            {
                if (!reboot_cmd.isEmpty())
                    myth_system(reboot_cmd);
            }
            else if (action == "about")
            {
                aboutScreen();
            }
            else if (action == "standby")
            {
                QString arg("standby_mode");
                m_state->m_callback(m_state->m_callbackdata, arg);
            }
        }
        else if (resultid == "password")
        {
            QString text = dce->GetResultText();
            MythUIButtonListItem *item = m_buttonList->GetItemCurrent();
            ThemedButton button = item->GetData().value<ThemedButton>();
            QString password = GetMythDB()->GetSetting(button.password);
            if (text == password)
            {
                QString timestamp_setting = QString("%1Time").arg(button.password);
                QDateTime curr_time = QDateTime::currentDateTime();
                QString last_time_stamp = curr_time.toString(Qt::TextDate);
                GetMythDB()->SetSetting(timestamp_setting, last_time_stamp);
                GetMythDB()->SaveSetting(timestamp_setting, last_time_stamp);
                buttonAction(item, true);
            }
        }

        m_menuPopup = NULL;
    }
}
Example #3
0
void Frame::OnLButtonup(int x,int y)
{
    for(int i=0; i<10; i++) {
        if(button[i]) {
            if(x > posButton[i].x && x < posButton[i].x+button[i]->clip_rect.w
                    && y > posButton[i].y&& y < posButton[i].y+button[i]->clip_rect.h
              ) {
                switchButtonImg(i,false) ;
                buttonAction(i) ;
                printf( "ONLButton");
                break;
            }
        }
    }
}
bool Server::winEvent(MSG *m, long *result)
{

//    HandleDevice *thread = new HandleDevice(m, result, this);
//    connect(thread, SIGNAL(finished()), thread, SLOT(deleteLater()));
//    thread->start();
//    return true;

    if(WM_INPUT == m->message){
        HandleDevice *t = new HandleDevice(m, result, this);
        connect(t, SIGNAL(finished()), t, SLOT(deleteLater()));
        connect(t,SIGNAL(buttonAction(QString)), Mapper::instance(), SLOT(checkActions(QString)));
        t->start();
        t->wait();
        //return QWidget::winEvent(m, result);
        return true;
    }
    else{
        return false;
    }
}
void button_reaction_Method (ButtonValues sw_button)
{
	static bool wait_unpressing = false;
	static uint16_t period = BUTTON_PERIOD_REACTION;
	
	if (wait_unpressing)
	{
		if (button_G == UNPRESSED) wait_unpressing=false;				
	}
	else
	{
		if (button_G!=UNPRESSED)
		{
			wait_unpressing= buttonAction(button_G, &period);			
		}
		else 
		{
			period=longpress_check(sw_button);			
			wait_unpressing=false;
		}
	}		
}
Example #6
0
int
spadAction (void)
{
  int code, viewCommand;
  float f1, f2, f3;
  int i1, i2, i3;


  if (viewAloned==yes) {
      close(0);
      return(-1);
      }
  readViewman(&viewCommand, intSize);

  switch (viewCommand) {

  case rotate:
    readViewman(&f1, floatSize);
    readViewman(&f2, floatSize);
    viewport->theta = f1;
    viewport->phi   = f2;
    while (viewport->theta >= two_pi) viewport->theta -= two_pi;
    while (viewport->theta < 0.0)     viewport->theta += two_pi;
    while (viewport->phi > pi)        viewport->phi   -= two_pi;
    while (viewport->phi <= -pi)      viewport->phi   += two_pi;
    viewport->axestheta = viewport->theta;
    viewport->axesphi = viewport->phi;
    spadDraw=yes;
    rotated=yes;
    viewport->yzOn = viewport->xzOn = viewport->xyOn = no;

    break;

  case zoom:
    readViewman(&f1, floatSize);
    viewport->scale = f1;
    if (viewport->scale > maxScale) viewport->scale = maxScale;
    else if (viewport->scale < minScale) viewport->scale = minScale;

    spadDraw=yes;
    zoomed = yes;
    break;

  case zoomx:
    readViewman(&f1, floatSize);
    readViewman(&f2, floatSize);
    readViewman(&f3, floatSize);
    viewport->scaleX = f1;  viewport->scaleY = f2;  viewport->scaleZ = f3;
    if ((viewport->scaleX == 1.0) &&
        (viewport->scaleY == 1.0) &&
        (viewport->scaleZ == 1.0)) {
      viewport->zoomXOn = viewport->zoomYOn = viewport->zoomZOn = yes;
    } else {
      if (viewport->scaleX == 1.0) viewport->zoomXOn = no;
      else {
        if (viewport->scaleX > maxScale) viewport->scaleX = maxScale;
        else if (viewport->scaleX < minScale) viewport->scaleX = minScale;
      }
      if (viewport->scaleY == 1.0) viewport->zoomYOn = no;
      else {
        if (viewport->scaleY > maxScale) viewport->scaleY = maxScale;
        else if (viewport->scaleY < minScale) viewport->scaleY = minScale;
      }
      if (viewport->scaleZ == 1.0) viewport->zoomZOn = no;
      else {
        if (viewport->scaleZ > maxScale) viewport->scaleZ = maxScale;
        else if (viewport->scaleZ < minScale) viewport->scaleZ = minScale;
      }
    }

    spadDraw=yes;
    zoomed = yes;
    break;

  case translate:
    readViewman(&(viewport->deltaX),floatSize);
    readViewman(&(viewport->deltaY),floatSize);
    if (viewport->deltaX > maxDeltaX) viewport->deltaX = maxDeltaX;
    else if (viewport->deltaX < -maxDeltaX) viewport->deltaX = -maxDeltaX;
    if (viewport->deltaY > maxDeltaY) viewport->deltaY = maxDeltaY;
    else if (viewport->deltaY < -maxDeltaY) viewport->deltaY = -maxDeltaY;
    spadDraw=yes;
    translated = yes;
    break;

  case modifyPOINT:
    readViewman(&i1,intSize);
    i1--;
    readViewman(&(refPt3D(viewData,i1)->x),floatSize);
    readViewman(&(refPt3D(viewData,i1)->y),floatSize);
    readViewman(&(refPt3D(viewData,i1)->z),floatSize);
    readViewman(&(refPt3D(viewData,i1)->c),floatSize);
    scalePoint(refPt3D(viewData,i1));
    spadDraw=yes;
    break;

  case hideControl:
    readViewman(&i1,intSize);
    if (i1) {                         /* show control panel */
      if (viewport->haveControl)
        XUnmapWindow(dsply,control->controlWindow);
      putControlPanelSomewhere(someInt);
    } else {    /* turn off control panel */
      if (viewport->haveControl) {
        viewport->haveControl = no;
        XUnmapWindow(dsply,control->controlWindow);
      }
    }
    break;

  case axesOnOff:
    readViewman(&i1,intSize);
    viewport->axesOn = i1;
    spadDraw=yes;
    if (viewData.style == smooth) {
      if (multiColorFlag) redoDither = yes;
      else redoColor = yes;
    }
    if (viewport->haveControl) drawControlPanel();
    break;

/* Non-uniform scaling is not in AXIOM yet. */
/* Neither is object or origin rotation. */

  case perspectiveOnOff:
    readViewman(&i1,intSize);
    viewData.perspective = i1;
    switchedPerspective = yes;
    spadDraw=yes;
    break;

  case region3D:
    readViewman(&i1,intSize);
    viewport->regionOn = i1;
    viewData.box = i1;
    spadDraw=yes;
    if (viewport->haveControl) drawControlPanel();
    redoSmooth = yes;
    break;

  case clipRegionOnOff:
    readViewman(&i1,intSize);
    viewData.clipbox = i1;
    spadDraw=yes;
    break;

  case clipSurfaceOnOff:
    readViewman(&i1,intSize);
    viewData.clipStuff = i1;
    spadDraw=yes;
    break;

  case eyeDistanceData:
    readViewman(&f1,floatSize);
    viewData.eyeDistance = f1;
    if (viewData.eyeDistance > maxEyeDistance)
      viewData.eyeDistance = maxEyeDistance;
    else if (viewData.eyeDistance < minEyeDistance)
           viewData.eyeDistance = minEyeDistance;
    spadDraw=yes;
    changedEyeDistance = yes;
    break;

  case hitherPlaneData:
    readViewman(&f1,floatSize);
    viewData.clipPlane = f1;
    spadDraw=yes;
    changedEyeDistance = yes;
    break;

  case queryVIEWPOINT:
    f1 = viewport->deltaX;
    code = check(write(Socket, &f1, floatSize));
    f1 = viewport->deltaY;
    code = check(write(Socket, &f1, floatSize));
    f1 = viewport->scale;
    code = check(write(Socket, &f1, floatSize));
    f1 = viewport->scaleX;
    code = check(write(Socket, &f1, floatSize));
    f1 = viewport->scaleY;
    code = check(write(Socket, &f1, floatSize));
    f1 = viewport->scaleZ;
    code = check(write(Socket, &f1, floatSize));
    f1 = viewport->theta;
    code = check(write(Socket, &f1, floatSize));
    f1 = viewport->phi;
    code = check(write(Socket, &f1, floatSize));
    break;

  case changeVIEWPOINT:
    readViewman(&f1, floatSize);
    readViewman(&f2, floatSize);
    viewport->deltaX = f1;
    viewport->deltaY = f2;
    if (viewport->deltaX > maxDeltaX) viewport->deltaX = maxDeltaX;
    else if (viewport->deltaX < -maxDeltaX) viewport->deltaX = -maxDeltaX;
    if (viewport->deltaY > maxDeltaY) viewport->deltaY = maxDeltaY;
    else if (viewport->deltaY < -maxDeltaY) viewport->deltaY = -maxDeltaY;
    translated = yes;

    readViewman(&f1, floatSize);
    viewport->scale = f1;
    if (viewport->scale > maxScale) viewport->scale = maxScale;
    else if (viewport->scale < minScale) viewport->scale = minScale;
    zoomed = yes;

    readViewman(&f1, floatSize);
    readViewman(&f2, floatSize);
    readViewman(&f3, floatSize);
    viewport->scaleX = f1;
    viewport->scaleY = f2;
    viewport->scaleZ = f3;
    if ((viewport->scaleX == 1.0) &&
        (viewport->scaleY == 1.0) &&
        (viewport->scaleZ == 1.0)) {
      viewport->zoomXOn = viewport->zoomYOn = viewport->zoomZOn = yes;
    } else {
      if (viewport->scaleX == 1.0) viewport->zoomXOn = no;
      else {
        if (viewport->scaleX > maxScale) viewport->scaleX = maxScale;
        else if (viewport->scaleX < minScale) viewport->scaleX = minScale;
      }
      if (viewport->scaleY == 1.0) viewport->zoomYOn = no;
      else {
        if (viewport->scaleY > maxScale) viewport->scaleY = maxScale;
        else if (viewport->scaleY < minScale) viewport->scaleY = minScale;
      }
      if (viewport->scaleZ == 1.0) viewport->zoomZOn = no;
      else {
        if (viewport->scaleZ > maxScale) viewport->scaleZ = maxScale;
        else if (viewport->scaleZ < minScale) viewport->scaleZ = minScale;
      }
    }

    readViewman(&f1, floatSize);
    readViewman(&f2, floatSize);
    viewData.theta = f1;
    viewData.phi = f2;
    while (viewport->theta >= two_pi) viewport->theta -= two_pi;
    while (viewport->theta < 0.0)     viewport->theta += two_pi;
    while (viewport->phi > pi)        viewport->phi   -= two_pi;
    while (viewport->phi <= -pi)      viewport->phi   += two_pi;
    viewport->axestheta = viewport->theta;
    viewport->axesphi = viewport->phi;
    spadDraw=yes;
    rotated=yes;
    break;

  case colorDef:
    readViewman(&(viewport->hueOffset),intSize);
    readViewman(&(viewport->numberOfHues),intSize);
    /* spadcolors is indexed by 0 */
    viewport->hueOffset --;
    viewport->numberOfHues --;
    viewport->hueTop = viewport->numberOfHues;
    if (viewport->hueOffset < 0) viewport->hueOffset = 0;
    if (viewport->hueTop < 0) viewport->hueTop = 0;
    if (viewport->hueOffset >= totalHues)
      viewport->hueOffset = totalHues-1;
    if (viewport->hueTop >= totalHues) viewport->hueTop = totalHues-1;
    viewport->numberOfHues = viewport->hueTop - viewport->hueOffset;
    if ((viewport->hueTop == viewport->hueOffset) && (!viewport->monoOn))
      redoColor = yes;
    else {
      redoColor = no;
      redoDither = yes;
    }
    if (viewport->haveControl) drawColorMap();
    break;

  case closeAll:
    code = check(write(Socket,&ack,intSize));
    goodbye(-1);


  case moveViewport:
    readViewman(&i1,intSize);
    readViewman(&i2,intSize);
    XMoveWindow(dsply,viewport->titleWindow,i1,i2);
    XSync(dsply,0);
    break;

 case resizeViewport:
    readViewman(&i1,intSize);
    readViewman(&i2,intSize);
    XResizeWindow(dsply,viewport->titleWindow,i1,i2+titleHeight);
    XResizeWindow(dsply,viewport->viewWindow,i1,i2);
    spadDraw=yes;
    redoSmooth =yes;
    break;

  case transparent:
  case opaqueMesh:
  case render:
  case smooth:
    viewData.style = viewCommand;
    spadDraw=yes;
    redoSmooth =yes;
    break;

  case lightDef:
    readViewman(&(viewport->lightVector[0]),floatSize);
    readViewman(&(viewport->lightVector[1]),floatSize);
    readViewman(&(viewport->lightVector[2]),floatSize);
    normalizeVector(viewport->lightVector);
    movingLight = yes;
    drawLightingAxes();
    XSync(dsply,0);
    break;

  case translucenceDef:
    readViewman(&backLightIntensity,floatSize);
    tempLightIntensity = backLightIntensity;
    lightIntensity = tempLightIntensity;
    changedIntensity = yes;
    drawLightTransArrow();
    XSync(dsply,0);
    break;

  case changeTitle:
    readViewman(&i1,intSize);
    readViewman(viewport->title,i1);
    viewport->title[i1] = '\0';
    writeTitle();
    switch (doingPanel) {
    case CONTROLpanel:
    case CONTOURpanel:
      writeControlTitle(control->controlWindow);
      break;
    case VOLUMEpanel:
      writeControlTitle(volumeWindow);
      break;
    case LIGHTpanel:
      writeControlTitle(lightingWindow);
      break;
    } /* switch */
    XFlush(dsply);
    break;

  case writeView:
    readViewman(&i1,intSize);
    readViewman(filename,i1);
    filename[i1] = '\0';
    sprintf(errorStr,"writing of viewport data");
    i3 = 0;
    readViewman(&i2,intSize);
    while (i2) {
      i3 = i3 | (1<<i2);
      readViewman(&i2,intSize);
    }
    if (writeViewport(i3) < 0)
      fprintf(stderr,"          Nothing was written\n");
    break;

  case diagOnOff:
    readViewman(&i1,intSize);
    if (viewData.outlineRenderOn) {
      viewport->diagonals = i1;
      spadDraw=yes;
    } else {
      strcpy(control->message,"  Use this option with Outline  ");
      writeControlMessage();
    }
    break;

  case outlineOnOff:
    readViewman(&i1,intSize);
    if (viewData.style == render) {
      viewData.outlineRenderOn = i1;
      spadDraw=yes;
      if (viewport->haveControl) drawControlPanel();
    } else {
      strcpy(control->message," Use this option in Shaded mode ");
      writeControlMessage();
    }
    break;

  case spadPressedAButton:
    readViewman(&i1,intSize);
    buttonAction(i1);
    break;
  default:
    return(-1);
  } /* switch */


  ack++;
  code = check(write(Socket,&ack,intSize));
  return(0);

}
Example #7
0
/**
  * @brief  Processes serial input and button preses
  * @param  None
  * @retval None
  */
void processInput(void)
{
  static uint8_t buffer[BUFFER_SIZE];
  static uint8_t bufferSize = 0;
  static uint32_t bufferTimeout = TIMEOUT_VALUE;

  if (bufferSize ==0)
  {
    bufferTimeout = TIMEOUT_VALUE;
  }
  
  if (__io_getcharNonBlocking(buffer+bufferSize))
  {
    bufferSize+=1;
  }
  
  if (getButtonStatus(BUTTON_S1) == BUTTON_CLICKED)
  {
    buttonAction(BUTTON_ACTION_1);
  }
#ifdef USE_MB950
  else if (getButtonStatus(BUTTON_S2) == BUTTON_CLICKED)
  {
    buttonAction(BUTTON_ACTION_2);
  }
  else if (getButtonStatus(BUTTON_S3) == BUTTON_CLICKED)
  {
    buttonAction(BUTTON_ACTION_3);
  } 
  else if (getButtonStatus(BUTTON_S4) == BUTTON_CLICKED)
  {
    buttonAction(BUTTON_ACTION_4);
  } 
  else if (getButtonStatus(BUTTON_S5) == BUTTON_CLICKED)
  {
    buttonAction(BUTTON_ACTION_5);
  }
#endif /* USE_MB950 */  
  else
  {
    bufferTimeout--;
    if ((bufferTimeout == 0) || (bufferSize == BUFFER_SIZE))
    {
      if (bufferSize > 0)
      {
        sendData(bufferSize, buffer, TYPE_SERIAL);
		/*if (0==mz_t_)
		{
			mz_t_=1;
			printf("MZ Start\n");
			//ST_RadioStartTransmitTone();
			ST_RadioStartTransmitStream();
		} else {
			mz_t_=0;
			printf("MZ Stop\n");
			//ST_RadioStopTransmitTone();
			ST_RadioStopTransmitStream();
		}*/
        bufferSize = 0;
      }
    }
  }
}
void HandleDevice::handleIt(RAWINPUT *raw)
{
    // Find Vid and Pid
    UINT size = 256;
    TCHAR tBuffer[256] = {0};

    // Error in reading device name
    if(GetRawInputDeviceInfo(raw->header.hDevice, RIDI_DEVICENAME, tBuffer, &size) < 0)
        return;

    int VendorID;
    int ProductID;
    QString myString = QString::fromWCharArray(tBuffer);

    if(myString.contains("HID"))
    {
        int index = myString.toLower().indexOf("vid");
        QString VID = "0000";
        VID[0] = '0';
        VID[1] = 'x';
        VID[2] = myString[index+4];
        VID[3] = myString[index+5];
        VID[4] = myString[index+6];
        VID[5] = myString[index+7];

        VID.toLower();
        VendorID = 0;

        if(VID.startsWith("0x"))
            VendorID = VID.mid(2).toInt(0,16);
        else
            VendorID = VID.toInt();

        index = myString.toLower().indexOf("pid");
        QString PID = "0000";
        PID[0] = '0';
        PID[1] = 'x';
        PID[2] = myString[index+4];
        PID[3] = myString[index+5];
        PID[4] = myString[index+6];
        PID[5] = myString[index+7];

        PID.toLower();
        ProductID = 0;

        if(PID.startsWith("0x"))
            ProductID = PID.mid(2).toInt(0,16);
        else
            ProductID = PID.toInt();
    }

    unsigned long long keyValue;
    unsigned long long value;
    unsigned long long mask3;
    unsigned long long value3;

    switch (raw->header.dwType)
    {
    case RIM_TYPEHID:
        keyValue = *reinterpret_cast<unsigned long long *>(&raw->data.hid.bRawData);
        break;

    case RIM_TYPEKEYBOARD:
        keyValue = raw->data.keyboard.VKey;
        break;

    case RIM_TYPEMOUSE:
    default:
        break;
    }

    QString message;
    int i = 0;

    while(i < UsableControllers::getList().size())
    {
        if(UsableControllers::getList()[i].getVendorID() == VendorID && UsableControllers::getList()[i].getProductID() == ProductID)
        {
            QString nrContr;
            nrContr = nrContr.setNum(i);
            message += nrContr;

            int k = 0;
            while(k<UsableControllers::getList()[i].getSensorXYList().size())
            {
                QString nr;
                nr = nr.setNum(k);
                bool pressed = true;

                switch (raw->header.dwType)
                {
                case RIM_TYPEHID:
                    // value after using bitmask
                    value = keyValue; //UsableControllers::getList()[i].getSensorXYList()[k].getGeneralXYMask() &
                    break;

                case RIM_TYPEKEYBOARD:
                    value = raw->data.keyboard.VKey;

                    // Check if press or release
                    if(raw->data.keyboard.Flags == 3 || raw->data.keyboard.Flags == 1){
                        pressed = false;
                    }
                    break;

                case RIM_TYPEMOUSE:
                default:
                    break;
                }

                //qDebug() << "Keyboard" << value;
                if(!pressed)
                    return;

                //test if we have axis or buttons
                if(UsableControllers::getList()[i].getSensorXYList()[k].getFixed())
                {
                    //fixed buttons
                    //qDebug() << "fixed";


                    unsigned int up = UsableControllers::getList()[i].getSensorXYList()[k].getUp();
                    unsigned int down = UsableControllers::getList()[i].getSensorXYList()[k].getDown();
                    unsigned int left = UsableControllers::getList()[i].getSensorXYList()[k].getLeft();
                    unsigned int right = UsableControllers::getList()[i].getSensorXYList()[k].getRight();
                    unsigned int upLeft;
                    unsigned int upRight;
                    unsigned int downLeft;
                    unsigned int downRight;

                    mask3 = UsableControllers::getList()[i].getSensorXYList()[k].getGeneralXYMask();
                    //qDebug() << mask3;
                    value3 = value & mask3;

                    //qDebug() << up << value << value3;
                    //qDebug() << down;
                    //qDebug() << left;
                    //qDebug() << right;

                    if(UsableControllers::getList()[i].getSensorXYList()[k].getNumberOfButtons() == 4 && raw->header.dwType == RIM_TYPEHID)
                    {
                        upLeft = up|left;
                        upRight = up|right;
                        downLeft = down|left;
                        downRight = down|right;
                    }
                    else if(UsableControllers::getList()[i].getSensorXYList()[k].getNumberOfButtons() == 8)
                    {
                        upLeft = UsableControllers::getList()[i].getSensorXYList()[k].getUpLeft();
                        upRight = UsableControllers::getList()[i].getSensorXYList()[k].getUpRight();
                        downLeft = UsableControllers::getList()[i].getSensorXYList()[k].getDownLeft();
                        downRight = UsableControllers::getList()[i].getSensorXYList()[k].getDownRight();
                    }
                    //qDebug() << up << value << value3;
                    //qDebug() << down;
                    //qDebug() << left;
                    //qDebug() << right;

                    if(up == value3){message += " Up" + nr;}
                    if(down == value3){message += " Down" + nr;}
                    if(left == value3){message += " Left" + nr;}
                    if(right == value3){message += " Right" + nr;}
                    if(upLeft == value3){message += " Up" + nr + " Left" + nr;}
                    if(upRight == value3){message += " Up" + nr + " Right" + nr;}
                    if(downLeft == value3){message += " Down" + nr + " Left" + nr;}
                    if(downRight == value3){message += " Down" + nr + " Right" + nr;}
                }
                else
                {
                    //XY-axis, because XY was not fixed
                    //X-axis
                    signed long long valueX = UsableControllers::getList()[i].getSensorXYList()[k].getXAxis().getMask() & value;
                    qDebug("%x %x %x \n", valueX , value , UsableControllers::getList()[i].getSensorXYList()[k].getXAxis().getMask());
                    valueX /= (UsableControllers::getList()[i].getSensorXYList()[k].getXAxis().getMask()/0xff);
                    //qDebug() << valueX;
                    if(valueX > UsableControllers::getList()[i].getSensorXYList()[k].getXAxis().getRangeStop()){
                        valueX -= (UsableControllers::getList()[i].getSensorXYList()[k].getXAxis().getRangeStop()-UsableControllers::getList()[i].getSensorXYList()[k].getXAxis().getRangeStart() + 1);
                    }
                    QString valX;
                    valX = valX.setNum(valueX);
                    message += " PX" + nr + "_" + valX;

                    //Y-axis
                    long long valueY = UsableControllers::getList()[i].getSensorXYList()[k].getYAxis().getMask() & value;
                    valueY /= (UsableControllers::getList()[i].getSensorXYList()[k].getYAxis().getMask()/0xff);
                    if(valueY > UsableControllers::getList()[i].getSensorXYList()[k].getYAxis().getRangeStop() && UsableControllers::getList()[i].getSensorXYList()[k].getYAxis().getFormat().toLower() == "signed"){
                        valueY -= (UsableControllers::getList()[i].getSensorXYList()[k].getYAxis().getRangeStop()-UsableControllers::getList()[i].getSensorXYList()[k].getYAxis().getRangeStart() + 1);
                    }
                    QString valY;
                    valY = valY.setNum(valueY);
                    message += " PY" + nr + "_" + valY;
                }
                k++;
            }

            // Check buttons
            if(raw->header.dwType == RIM_TYPEHID)
            {
                int j = 0;
                int value2 = UsableControllers::getList()[i].getGeneralButtonMask() & keyValue;
                while(j < UsableControllers::getList()[i].getButtonList().size())
                {
                    if(UsableControllers::getList()[i].getButtonList()[j].getBitMaskPressed() & value2 )
                    {
                        message += " " + UsableControllers::getList()[i].getButtonList()[j].getName();
                    }
                    j++;
                }
            }
            else if(raw->header.dwType == RIM_TYPEKEYBOARD)
            {
                int j = 0;
                int value2 = raw->data.keyboard.VKey;
                while(j<UsableControllers::getList()[i].getButtonList().size())
                {
                    if(UsableControllers::getList()[i].getButtonList()[j].getBitMaskPressed() == value2 )
                    {
                        message += " " + UsableControllers::getList()[i].getButtonList()[j].getName();
                    }
                    j++;
                }
            }
        }
        i++;
    }

    if(message != "")
    {
        qDebug() << message;
        emit buttonAction(message);
    }
}
Example #9
0
//--------------------------------------------------------------
/*public */void ofxSimpleButton::mousePressed(float x, float y)
{
    if (isInside(x, y)) {
        buttonAction(true);
    }
}
Example #10
0
//--------------------------------------------------------------
/*public */void ofxSimpleButton::touchDown(float x, float y)
{
    if (isInside(x, y)) {
        buttonAction(true);
    }
}
Example #11
0
void MythThemedMenu::customEvent(QEvent *event)
{
    if (event->type() == DialogCompletionEvent::kEventType)
    {
        DialogCompletionEvent *dce = (DialogCompletionEvent*)(event);

        QString resultid = dce->GetId();
        int buttonnum = dce->GetResult();
        QString halt_cmd = GetMythDB()->GetSetting("HaltCommand");
        QString reboot_cmd = GetMythDB()->GetSetting("RebootCommand");

        if (resultid == "popmenu_exit")
        {
            switch (buttonnum)
            {
                case 0:
                    if (!halt_cmd.isEmpty())
                        myth_system(halt_cmd);
                    break;
                case 1:
                    if (!reboot_cmd.isEmpty())
                        myth_system(reboot_cmd);
                    break;
                case 2:
                    aboutScreen();
                    break;
            }
        }
        else if (resultid == "popmenu_noexit")
        {
            if (buttonnum == 0)
                aboutScreen();
        }
        else if (resultid == "popmenu_reboot")
        {
            switch (buttonnum)
            {
                case 0:
                    if (!reboot_cmd.isEmpty())
                        myth_system(reboot_cmd);
                    break;
                case 1:
                    aboutScreen();
                    break;
            }
        }
        else if (resultid == "popmenu_shutdown")
        {
            switch (buttonnum)
            {
                case 0:
                    if (!halt_cmd.isEmpty())
                        myth_system(halt_cmd);
                    break;
                case 1:
                    aboutScreen();
                    break;
            }
        }
        else if (resultid == "password")
        {
            QString text = dce->GetResultText();
            MythUIButtonListItem *item = m_buttonList->GetItemCurrent();
            ThemedButton button = item->GetData().value<ThemedButton>();
            QString password = GetMythDB()->GetSetting(button.password);
            if (text == password)
            {
                QString timestamp_setting = QString("%1Time").arg(button.password);
                QDateTime curr_time = QDateTime::currentDateTime();
                QString last_time_stamp = curr_time.toString(Qt::TextDate);
                GetMythDB()->SetSetting(timestamp_setting, last_time_stamp);
                GetMythDB()->SaveSetting(timestamp_setting, last_time_stamp);
                buttonAction(item, true);
            }
        }

        m_menuPopup = NULL;
    }
}
Example #12
0
/** \brief keyboard/LIRC event handler.
 *
 *  This translates key presses through the "Main Menu" context into MythTV
 *  actions and then handles them as appropriate.
 */
bool MythThemedMenu::keyPressEvent(QKeyEvent *event)
{
    if (m_ignorekeys)
        return false;

    m_ignorekeys = true;

    MythUIType *type = GetFocusWidget();
    if (type && type->keyPressEvent(event))
    {
        m_ignorekeys = false;
        return true;
    }

    QStringList actions;
    bool handled = false;

    handled = GetMythMainWindow()->TranslateKeyPress("Main Menu", event,
                                                     actions);

    for (int i = 0; i < actions.size() && !handled; i++)
    {
        QString action = actions[i];
        handled = true;

        if (action == "RIGHT")
        {
            MythUIButtonListItem *item = m_buttonList->GetItemCurrent();
            buttonAction(item);
        }
        else if (action == "LEFT" || action == "ESCAPE" || action == "EXIT" )
        {
            bool    callbacks  = m_state->m_callback;
            bool    lastScreen = (GetMythMainWindow()->GetMainStack()
                                                     ->TotalScreens() == 1);
            QString menuaction = "UPMENU";
            QString selExit    = "EXITING_APP";

            if (!m_allocedstate)
                handleAction(menuaction);
            else if (m_state->m_killable)
            {
                m_wantpop = true;
                if (callbacks)
                {
                    QString sel = "EXITING_MENU";
                    m_state->m_callback(m_state->m_callbackdata, sel);
                }

                if (lastScreen)
                {
                    if (callbacks)
                        m_state->m_callback(m_state->m_callbackdata, selExit);
                    QCoreApplication::exit();
                }
            }
            else if ((action == "EXIT" || (action == "ESCAPE" &&
                      (QCoreApplication::applicationName() ==
                        MYTH_APPNAME_MYTHTV_SETUP))) && lastScreen)
            {
                if (callbacks)
                    m_state->m_callback(m_state->m_callbackdata, selExit);
                else
                {
                    QCoreApplication::exit();
                    m_wantpop = true;
                }
            }
        }
        else if (action == "HELP")
        {
            aboutScreen();
        }
        else if (action == "EJECT")
        {
            handleAction(action);
        }
        else
            handled = false;
    }

    if (!handled && MythScreenType::keyPressEvent(event))
        handled = true;

    m_ignorekeys = false;

    if (m_wantpop)
        m_ScreenStack->PopScreen();

    return handled;
}
Example #13
0
//--------------------------------------------------------------
void testApp::mousePressed(int x, int y, int button){
    
    //if we pressed a button, and we were in a dropdown menu
    if(d->active && x > d->x && x < d->x + d->cw - d->sliderWidth && y > d->y && y < d->y + d->th)
    {
        //read back the chosen property depending on which menu we were in
        switch(d->mode)
        {
            case 0:
            case 1:
            case 2:
            case 3:
                for (int i = 0; i < d->functionList.size(); i++)
                {
                    if(d->activeList[d->activeOption] == d->functionList[i])
                    {
                        ib->masterFunction = i;
                    }
                    //else
                        //we're f****d and crashing
                }
                ib->smasterFunction=d->functionList[ib->masterFunction];
                break;
            case 4:
                ib->toggle=d->activeOption;
                ib->stoggle=d->toggleList[ib->toggle];
                break;
            case 5:
                ib->toggleOSC=d->activeOption;
                                
                if(ib->toggleOSC)
                {
                    if(ib->oldOscAddress=="")
                    {
                        ib->enterOscAddress();
                        ib->oldOscAddress=ib->oscAddress;
                    }
                    else
                        ib->oscAddress=ib->oldOscAddress;
                }
                else
                    ib->oscAddress="";
                
                ib->stoggleOSC = d->onOffList[ib->toggleOSC];
                break;
            case 9:
                ib->active = true;
                for(int i = 0; i < numberOfElements; i++)
                {
                    if(i == d->activeOption)
                        e[i]->selected = true;
                    else
                        e[i]->selected = false;
                    copyElementDataToInterface();
                }
                if(d->activeOption==22)
                {
                    ib->reset();
                    ib->mode=3;
                }
                break;
            case 10:
                ib->resolution = d->activeOption;
                ib->sresolution = d->resList[d->activeOption];
                break;
            case 11:
                ib->emulatorOne = d->activeOption;
                ib->semulatorOne = d->emuList[d->activeOption]; 
                break;
            case 12:
                ib->emulatorTwo = d->activeOption;
                ib->semulatorTwo = d->emuList[d->activeOption];  
                break;
            case 6:
                ib->hdcpOutput = d->activeOption;
                ib->shdcpOutput = d->onOffList[d->activeOption];
                break;
            case 7:
                ib->hdcpInputOne = d->activeOption;
                ib->shdcpInputOne = d->onOffList[d->activeOption];
                break;
            case 8:
                ib->hdcpInputTwo = d->activeOption;
                ib->shdcpInputTwo = d->onOffList[d->activeOption];
                break;
            case 13:
                ib->sourceLoss = d->activeOption;
                ib->ssourceLoss = d->sourceList[d->activeOption];
                break;
                
                

        }
        
        //copy it back to the element
        copyInterfaceDateToElement();
        d->active = false;
        return; //so we don't press another button underneath
        
    }
    
    //if we were in a dropdown but on a slider
    if(d->active && x > d->x + d->cw - d->sliderWidth && x < d->x + d->cw && y > d->y && y < d->y + d->th)
    {  
        mousePos.set(x,y);
        d->slidering = true;    
        return;
    }
        
    
    //if we were in a dropdown but not over it, just close it
    d->active = false;
    
    //then check if we were over an element
    for(int i = 0; i < numberOfElements; i++)
    {
        if (e[i]->mouseOver(x,y)) //check if we've clicked a controller
        {
            ib->mode = 0;
            ib->active = true;
            e[i]->selected = true; //set the controller to selected
            
            for(int j = 0; j < numberOfElements; j++) //deselect all the other controllers
            {
                if(i!=j)
                {
                    e[j]->selected = false; 
                }
            }
            
            //copy the relevant info into the inputBox
            
            copyElementDataToInterface();
            
            return;
        }  
        
        
        
    }
    
    //then check if we clicked a button
    for(int i = 0; i < numberOfButtons; i++)
    {
        if(b[i]->mouseOver(x,y)) //check if we've clicked a button
        {
            buttonAction(i); //do the action associated with that button
            
            //copy back all the info to the currently selected element
            //todo? maybe I should build in a 'has changed' check, but it's not really necessarry
            copyInterfaceDateToElement();
            
        }
    }
        
            
    //if we haven't pressed anything, deselect and reset the ib, this should only happen on the left side of the interface, otherwise it's a missclick
    if(x < 578)
    {
        ib->reset();
        for(int j = 0; j < numberOfElements; j++) 
        {
            e[j]->selected = false;
            
        }
    }    
    
}
Example #14
0
int
spadAction(void)
{
  int code,viewCommand;
  float f1,f2;
  int i1,i2,i3,viewGoAhead;
  static int ack = 1;

  if (viewAloned==yes) {
      close(0);
      return(-1);
      }
  readViewman(&viewCommand,intSize);

  switch (viewCommand) {

  case hideControl2D:
    readViewman(&i1,intSize);
    if (i1) {                         /* show control panel */
      if (viewport->haveControl) XUnmapWindow(dsply,control->controlWindow);
      putControlPanelSomewhere(someInt);
    } else {    /* turn off control panel */
      if (viewport->haveControl) {
        viewport->haveControl = no;
        XUnmapWindow(dsply,control->controlWindow);
      }
    }
    break;

  case changeTitle:
    readViewman(&i1,intSize);
    readViewman(viewport->title,i1);
    viewport->title[i1] = '\0';
    writeTitle();
    writeControlTitle();
    XFlush(dsply);
    spadDraw=no;
    break;

  case writeView:
    readViewman(&i1,intSize);
    readViewman(filename,i1);
    filename[i1] = '\0';
    sprintf(errorStr,"writing of viewport data");
    i3 = 0;
    readViewman(&i2,intSize);
    while (i2) {
      i3 = i3 | (1<<i2);
      readViewman(&i2,intSize);
    }
    if (writeViewport(i3) < 0)
      fprintf(stderr,"          Nothing was written\n");
    break;

  case closeAll2D:
    code = check(write(Socket,&ack,intSize));
    goodbye(-1);

  case ps2D:
    readViewman(&i1,intSize);
    buttonAction(viewCommand);
    break;

  case axesOnOff2D:
    readViewman(&i1,intSize);
    i1--;
    readViewman(&i2,intSize);
    graphStateArray[i1].axesOn = i2;
    if (graphStateArray[i1].showing) spadDraw=yes;
    break;

  case axesColor2D:
    readViewman(&i1,intSize);
    i1--;
    readViewman(&i2,intSize);
    graphStateArray[i1].axesColor = i2;
    if (graphStateArray[i1].showing) spadDraw=yes;
    break;

  case unitsOnOff2D:
    readViewman(&i1,intSize);
    i1--;
    readViewman(&i2,intSize);
    graphStateArray[i1].unitsOn = i2;
    if (graphStateArray[i1].showing) spadDraw=yes;
    break;

  case unitsColor2D:
    readViewman(&i1,intSize);
    i1--;
    readViewman(&i2,intSize);
    graphStateArray[i1].unitsColor = i2;
    if (graphStateArray[i1].showing) spadDraw=yes;
    break;

  case connectOnOff:
    readViewman(&i1,intSize);
    i1--;
    readViewman(&i2,intSize);
    graphStateArray[i1].connectOn = i2;
    if (graphStateArray[i1].showing) spadDraw=yes;
    break;

  case pointsOnOff:
    readViewman(&i1,intSize);
    i1--;
    readViewman(&i2,intSize);
    graphStateArray[i1].pointsOn = i2;
    if (graphStateArray[i1].showing) spadDraw=yes;
    break;

  case spline2D:
    readViewman(&i1,intSize);
    i1--;
    readViewman(&i2,intSize);
    graphStateArray[i1].splineOn = i2;
    if (graphStateArray[i1].showing) spadDraw=yes;
    break;

  case showing2D:
    readViewman(&i1,intSize);
    i1--;
    readViewman(&i2,intSize);
    /* simulate a button press to turn display number on/off */
    graphStateArray[i1].showing = !i2;
    clickedOnGraph(i1,i1+graphStart);
    break;

  case scale2D:
    readViewman(&i1,intSize);
    i1--;   /* passed index is [1..9] but internal representation is [0..8] */
    readViewman(&f1,floatSize);
    readViewman(&f2,floatSize);
    graphStateArray[i1].scaleX = f1;
    graphStateArray[i1].scaleY = f2;
    if (graphStateArray[i1].scaleX > maxScale)
      graphStateArray[i1].scaleX = maxScale;
    else
      if (graphStateArray[i1].scaleX < minScale)
        graphStateArray[i1].scaleX = minScale;
    if (graphStateArray[i1].scaleY > maxScale)
      graphStateArray[i1].scaleY = maxScale;
    else
      if (graphStateArray[i1].scaleY < minScale)
        graphStateArray[i1].scaleY = minScale;
    if (graphStateArray[i1].showing) spadDraw=yes;
    break;   /* scale2D */


  case translate2D:
    readViewman(&i1,intSize);
    i1--;   /* passed index is [1..9] but internal representation is [0..8] */
    readViewman(&f1,floatSize);
    readViewman(&f2,floatSize);
    graphStateArray[i1].centerX = f1;
    graphStateArray[i1].centerY = f2;
    if (graphStateArray[i1].centerX > maxDelta)
      graphStateArray[i1].centerX = maxDelta;
    else if (graphStateArray[i1].centerX < -maxDelta)
           graphStateArray[i1].centerX = maxDelta;
    if (graphStateArray[i1].centerY > maxDelta)
      graphStateArray[i1].centerY = maxDelta;
    else if (graphStateArray[i1].centerY < -maxDelta)
           graphStateArray[i1].centerY = maxDelta;
    if (graphStateArray[i1].showing) spadDraw=yes;
    break;   /* translate2D */

  case moveViewport:
    readViewman(&i1,intSize);
    readViewman(&i2,intSize);
    XMoveWindow(dsply,viewport->titleWindow,i1,i2);
    XSync(dsply,False);
    break;

 case resizeViewport:
    readViewman(&i1,intSize);
    readViewman(&i2,intSize);
    XResizeWindow(dsply,viewport->titleWindow,i1,i2+titleHeight);
    XResizeWindow(dsply,viewport->viewWindow,i1,i2);
    spadDraw=yes;
    break;

  case putGraph:
    readViewman(&i1,intSize);           /* key of graph to get */
    readViewman(&i2,intSize);           /* slot to drop graph onto 0..8*/
    readViewman(&viewGoAhead,intSize);
    if (viewGoAhead < 0) {
      sprintf(control->message,"%s%d","Couldn't put into graph ",i2+1);
      writeControlMessage();
    } else {
      sprintf(control->message,"%s%d","Dropped onto graph ",i2+1);
      writeControlMessage();
      freeGraph(i2);
      graphArray[i2].key = i1;
      getGraphFromViewman(i2);
      /* simulate a button press to turn display number on and select on */
      /* need !yes since it will be inverted */
      graphStateArray[i2].selected = no;
      graphStateArray[i2].connectOn = yes;
      graphStateArray[i2].showing = !(graphStateArray[i2].showing);
      clickedOnGraph(i2,i2+graphStart);
      clickedOnGraphSelect(i2,i2+graphSelectStart);
    }
    break;

  case spadPressedAButton:
    readViewman(&i1,intSize);
    buttonAction(i1);
    break;

  default:
    return(-1);
  } /* switch */


  ack++;
  code = check(write(Socket,&ack,intSize));
  return(0);

}