示例#1
0
    void doGradientFills(Direction dir) {

      Rectangle rc;
      uint16_t i;
      static uint32_t colours[7]={
        ColourNames::RED,
        ColourNames::GREEN,
        ColourNames::BLUE,
        ColourNames::CYAN,
        ColourNames::MAGENTA,
        ColourNames::YELLOW,
        ColourNames::WHITE,
      };


      rc.Width=_gl->getXmax()+1;
      rc.Height=(_gl->getYmax()+1)/2;

      for(i=0;i<sizeof(colours)/sizeof(colours[0]);i++) {

        rc.X=0;
        rc.Y=0;

        _gl->gradientFillRectangle(rc,dir,ColourNames::BLACK,colours[i]);
        rc.Y=rc.Height;
        _gl->gradientFillRectangle(rc,dir,colours[i],ColourNames::BLACK);

        MillisecondTimer::delay(1000);
      }
    }
示例#2
0
    void backlightTest() {

      prompt("Backlight test");

      Rectangle rc;
      uint16_t i;
      static uint32_t colours[8]={
        ColourNames::RED,
        ColourNames::GREEN,
        ColourNames::BLUE,
        ColourNames::CYAN,
        ColourNames::MAGENTA,
        ColourNames::YELLOW,
        ColourNames::WHITE,
        ColourNames::BLACK,
      };

      // draw a row of solid colours

      rc.X=0;
      rc.Y=0;
      rc.Height=_gl->getHeight()/2;
      rc.Width=_gl->getWidth()/(sizeof(colours)/sizeof(colours[0]));

      for(i=0;i<sizeof(colours)/sizeof(colours[0]);i++) {

        _gl->setForeground(colours[i]);
        _gl->fillRectangle(rc);

        rc.X+=rc.Width;
      }

      // draw a greyscale

      rc.X=0;
      rc.Y=rc.Height;
      rc.Height=rc.Height/4;
      rc.Width=_gl->getWidth()/256;

      for(i=0;i<256;i++) {
        _gl->setForeground(i | (i << 8) | (i << 16));
        _gl->fillRectangle(rc);
        rc.X+=rc.Width;
      }

      for(i=100;i>0;i-=5) {

        // set the level

        _backlight->setPercentage(i);

        // show the indicator

        rc.X=_gl->getWidth()/4;
        rc.Y=(_gl->getHeight()*6)/8;
        rc.Height=_gl->getHeight()/8;

        // fill

        rc.Width=(_gl->getWidth()/2*i)/100;
        _gl->gradientFillRectangle(rc,Direction::HORIZONTAL,0x008000,0x00ff00);

        // remainder

        rc.X+=rc.Width;
        rc.Width=_gl->getWidth()/2-rc.Width;
        _gl->setForeground(ColourNames::BLACK);
        _gl->fillRectangle(rc);

        // show the percentage

        _gl->setForeground(ColourNames::WHITE);
        *_gl << Point(0,_gl->getHeight()-_font.getHeight()) << "Backlight level: " << i << "%  ";

        // pause

        MillisecondTimer::delay(750);
      }

      // restore backlight

      _backlight->setPercentage(100);
    }