void Screen::fillBackground() { clearRect(0, 0, tft.width(), 5); clearRect(0, 20, tft.width(), 5); clearRect(0, 41, tft.width(), 9); clearRect(0, currentRotation == ROTATION_PORTRAIT_INVERTED || currentRotation == ROTATION_PORTRAIT ? 66 : 74, tft.width(), tft.height()); }
void TextArea::ContentView::drawRect(KDContext * ctx, KDRect rect) const { // TODO: We're clearing areas we'll draw text over. It's not needed. clearRect(ctx, rect); KDSize charSize = KDText::charSize(m_fontSize); // We want to draw even partially visible characters. So we need to round // down for the top left corner and up for the bottom right one. Text::Position topLeft( rect.x()/charSize.width(), rect.y()/charSize.height() ); Text::Position bottomRight( rect.right()/charSize.width() + 1, rect.bottom()/charSize.height() + 1 ); int y = 0; for (Text::Line line : m_text) { if (y >= topLeft.line() && y <= bottomRight.line() && topLeft.column() < (int)line.length()) { drawLine(ctx, y, line.text(), line.length(), topLeft.column(), bottomRight.column()); } y++; } }
static PassRefPtr<WebImage> imageForRect(FrameView* frameView, const IntRect& rect, SnapshotOptions options) { IntSize bitmapSize = rect.size(); float scaleFactor = frameView->frame().page()->deviceScaleFactor(); bitmapSize.scale(scaleFactor); auto snapshot = WebImage::create(bitmapSize, snapshotOptionsToImageOptions(options)); if (!snapshot->bitmap()) return 0; auto graphicsContext = snapshot->bitmap()->createGraphicsContext(); graphicsContext->clearRect(IntRect(IntPoint(), bitmapSize)); graphicsContext->applyDeviceScaleFactor(scaleFactor); graphicsContext->translate(-rect.x(), -rect.y()); FrameView::SelectionInSnapshot shouldPaintSelection = FrameView::IncludeSelection; if (options & SnapshotOptionsExcludeSelectionHighlighting) shouldPaintSelection = FrameView::ExcludeSelection; PaintBehavior paintBehavior = frameView->paintBehavior() | PaintBehaviorFlattenCompositingLayers; if (options & SnapshotOptionsForceBlackText) paintBehavior |= PaintBehaviorForceBlackText; if (options & SnapshotOptionsForceWhiteText) paintBehavior |= PaintBehaviorForceWhiteText; PaintBehavior oldPaintBehavior = frameView->paintBehavior(); frameView->setPaintBehavior(paintBehavior); frameView->paintContentsForSnapshot(*graphicsContext.get(), rect, shouldPaintSelection, FrameView::DocumentCoordinates); frameView->setPaintBehavior(oldPaintBehavior); return snapshot; }
void PluginControllerProxy::paint() { ASSERT(!m_dirtyRect.isEmpty()); m_paintTimer.stop(); if (!m_backingStore) return; IntRect dirtyRect = m_dirtyRect; m_dirtyRect = IntRect(); ASSERT(m_plugin); // Create a graphics context. auto graphicsContext = m_backingStore->createGraphicsContext(); #if PLATFORM(COCOA) // FIXME: We should really call applyDeviceScaleFactor instead of scale, but that ends up calling into WKSI // which we currently don't have initiated in the plug-in process. graphicsContext->scale(FloatSize(m_contentsScaleFactor, m_contentsScaleFactor)); #endif if (m_plugin->isTransparent()) graphicsContext->clearRect(dirtyRect); m_plugin->paint(graphicsContext.get(), dirtyRect); m_connection->connection()->send(Messages::PluginProxy::Update(dirtyRect), m_pluginInstanceID); }
void Screen::clearAlarm(const String &alarm) { clearRect(0, 80, tft.width(), tft.height()); if (alarm != "") { String alarmNotification = Utils::buildStringFromProgMem(ALARM_NOTIFICATION); writeString(alarmNotification, 0, 90, ALARM_NOTIFICATION_FONT_SIZE, true); writeString(alarm, 0, 100, ALARM_NOTIFICATION_SHOW_ALARM_FONT_SIZE, true); } }
void QgsFilterLineEdit::mousePressEvent( QMouseEvent* e ) { if ( !mFocusInEvent ) QLineEdit::mousePressEvent( e ); else mFocusInEvent = false; if ( shouldShowClear() && clearRect().contains( e->pos() ) ) { clearValue(); } }
void QgsFilterLineEdit::paintEvent( QPaintEvent* e ) { QLineEdit::paintEvent( e ); if ( shouldShowClear() ) { QRect r = clearRect(); QPainter p( this ); if ( mClearHover ) p.drawPixmap( r.left() , r.top() , mClearHoverPixmap ); else p.drawPixmap( r.left() , r.top() , mClearIconPixmap ); } }
void keyboardDraw() { Rect rect = {0,0,320,240}; Rect overlay = { 0, 25, 280, 25 }; //drawImage(SCREEN_BOTTOM,kbImage, &rect, &rect); drawTexture(SCREEN_BOTTOM,kbTexture, &rect, &rect); Rect clear = { 0,0, SCREEN_BOTTOM_WIDTH, SCREEN_HEIGHT }; clearRect(SCREEN_BOTTOM, &clear, 0,0,0,0); drawString(SCREEN_BOTTOM, FONTFAMILY_VERDANA14, 10, 7, text, TEXT_ALIGN_LEFT); if(blink) drawRect(SCREEN_BOTTOM, &textCursorPos, 0,0,0,0xFF); /*if(charIndex == 0) drawString(SCREEN_BOTTOM, FONTFAMILY_VERDANA14, 10, 10, "Please enter your name", TEXT_ALIGN_LEFT);*/ }
void QgsFilterLineEdit::mouseMoveEvent( QMouseEvent* e ) { QLineEdit::mouseMoveEvent( e ); if ( shouldShowClear() && clearRect().contains( e->pos() ) ) { if ( !mClearHover ) { setCursor( Qt::ArrowCursor ); mClearHover = true; update(); } } else if ( mClearHover ) { setCursor( Qt::IBeamCursor ); mClearHover = false; update(); } }
/** DialogControl::clearRect() * * Clears the rectangle specified in this control's client area. * * @param The coordinates of the rectangle. * Form 1: A .Rect object. * Form 2: A .Point object and a .Point object. * Form 3: x1, y1, y1, y2 * * @return 0 on success, 1 on error. * * @note Sets the .SystemErrorCode. */ RexxMethod2(RexxObjectPtr, dlgctrl_clearRect, ARGLIST, args, CSELF, pCSelf) { oodResetSysErrCode(context->threadContext); RECT r = {0}; size_t arraySize; size_t argsUsed; if ( ! getRectFromArglist(context, args, &r, true, 1, 4, &arraySize, &argsUsed) ) { return TheOneObj; } if ( argsUsed < arraySize ) { return tooManyArgsException(context->threadContext, argsUsed); } return clearRect(context, getDChCtrl(pCSelf), &r); }
void KisPaintDeviceTest::testDeviceDuplication() { QRect fillRect(0,0,64,64); quint8 fillPixel[4]={255,255,255,255}; QRect clearRect(10,10,20,20); QImage referenceImage; QImage resultImage; const KoColorSpace * cs = KoColorSpaceRegistry::instance()->rgb8(); KisPaintDeviceSP device = new KisPaintDevice(cs); // qDebug()<<"FILLING"; device->fill(fillRect.left(), fillRect.top(), fillRect.width(), fillRect.height(),fillPixel); referenceImage = device->convertToQImage(0); KisTransaction transaction1(device); // qDebug()<<"CLEARING"; device->clear(clearRect); transaction1.revert(); resultImage = device->convertToQImage(0); QVERIFY(resultImage == referenceImage); KisPaintDeviceSP clone = new KisPaintDevice(*device); KisTransaction transaction(clone); // qDebug()<<"CLEARING"; clone->clear(clearRect); transaction.revert(); resultImage = clone->convertToQImage(0); QVERIFY(resultImage == referenceImage); }
static PassRefPtr<WebImage> imageForRect(FrameView* frameView, const IntRect& rect, SnapshotOptions options) { IntSize bitmapSize = rect.size(); float scaleFactor = frameView->frame().page()->deviceScaleFactor(); bitmapSize.scale(scaleFactor); RefPtr<WebImage> snapshot = WebImage::create(bitmapSize, snapshotOptionsToImageOptions(options)); if (!snapshot->bitmap()) return 0; auto graphicsContext = snapshot->bitmap()->createGraphicsContext(); graphicsContext->clearRect(IntRect(IntPoint(), bitmapSize)); graphicsContext->applyDeviceScaleFactor(scaleFactor); graphicsContext->translate(-rect.x(), -rect.y()); FrameView::SelectionInSnapshot shouldPaintSelection = FrameView::IncludeSelection; if (options & SnapshotOptionsExcludeSelectionHighlighting) shouldPaintSelection = FrameView::ExcludeSelection; frameView->paintContentsForSnapshot(graphicsContext.get(), rect, shouldPaintSelection, FrameView::DocumentCoordinates); return snapshot.release(); }
void KisPaintDeviceTest::testSharedDataManager() { QRect fillRect(0,0,100,100); quint8 fillPixel[4]={255,255,255,255}; QRect clearRect(10,10,20,20); QImage srcImage; QImage dstImage; const KoColorSpace *cs = KoColorSpaceRegistry::instance()->rgb8(); KisPaintDeviceSP srcDevice = new KisPaintDevice(cs); srcDevice->setX(10); srcDevice->setY(20); srcDevice->fill(fillRect.left(), fillRect.top(), fillRect.width(), fillRect.height(),fillPixel); KisPaintDeviceSP dstDevice = new KisPaintDevice(srcDevice->dataManager(), srcDevice); QVERIFY(srcDevice->extent() == dstDevice->extent()); QVERIFY(srcDevice->exactBounds() == dstDevice->exactBounds()); QVERIFY(srcDevice->defaultBounds() == dstDevice->defaultBounds()); QVERIFY(srcDevice->x() == dstDevice->x()); QVERIFY(srcDevice->y() == dstDevice->y()); srcImage = srcDevice->convertToQImage(0); dstImage = dstDevice->convertToQImage(0); QVERIFY(srcImage == dstImage); srcDevice->clear(clearRect); srcImage = srcDevice->convertToQImage(0); dstImage = dstDevice->convertToQImage(0); QVERIFY(srcImage == dstImage); }
int main(int argc, char *argv[]) { std::vector<std::string> inputFiles; int globalRadius = -1; int globalBorder = -1; bool gridOverlay = false; ExPop::CommandlineParser cmdParser(argv[0]); cmdParser.addHandler<std::string>( "", [&inputFiles](const std::string &filename) { inputFiles.push_back(filename); }); cmdParser.addVariableHandler("radius", &globalRadius); cmdParser.addVariableHandler("border", &globalBorder); cmdParser.addFlagHandler("grid", &gridOverlay); if(!cmdParser.handleCommandline(argc, argv)) { return cmdParser.getErrorFlag(); } for(size_t i = 0; i < inputFiles.size(); i++) { ExPop::Gfx::Image *img = ExPop::Gfx::loadTGAFromFile(inputFiles[i]); if(!img) { std::cerr << "Could not load TGA: " << inputFiles[i] << std::endl; return 1; } if(img->getWidth() != img->getHeight()) { std::cerr << "Image not square: " << inputFiles[i] << std::endl; return 1; } std::string filename; std::string extension; ExPop::stringSplit(inputFiles[i], ".", filename, extension, true); int radius = globalRadius; if(globalRadius == -1) { radius = img->getWidth() / 2; } int border = globalBorder; if(globalBorder == -1) { border = img->getWidth() / 8; } if(radius < border) { radius = border; } ExPop::Gfx::Image *dstImg = new ExPop::Gfx::Image(img->getWidth() * 5, img->getHeight() * 3); // '#' shaped thing on the left. One inner tile, four outer // angle tiles, and four edge tiles. copyRect( img, dstImg, -radius, -border, img->getWidth() - radius, img->getHeight() - border, radius * 2 + img->getWidth(), border * 2); copyRect( img, dstImg, -radius, -border, img->getWidth() - radius, img->getHeight() * 2 - border, radius * 2 + img->getWidth(), border * 2); copyRect( img, dstImg, -border, -radius, img->getWidth() - border, img->getHeight() - radius, border * 2, radius * 2 + img->getHeight()); copyRect( img, dstImg, -border, -radius, img->getWidth() - border + img->getWidth(), img->getHeight() - radius, border * 2, radius * 2 + img->getHeight()); // 'o' on the right. Four inner angle tiles. copyRect( img, dstImg, 0, 0, img->getWidth() * 3, 0, img->getWidth() * 2, img->getHeight() * 2); clearRect(dstImg, img->getWidth() * 3 + border, border, img->getWidth() * 2 - 2 * border, img->getHeight() * 2 - 2 * border); copyRect( img, dstImg, 0, -border, img->getWidth() * 3, img->getHeight() + -border, img->getWidth() * 2, border * 2); copyRect( img, dstImg, -border, 0, img->getWidth() * 4 - border, 0, border * 2, img->getHeight() * 2); clearRect(dstImg, img->getWidth() * 3 + radius, radius, img->getWidth() * 2 - 2 * radius, img->getHeight() * 2 - 2 * radius); if(gridOverlay) { for(int y = 0; y < dstImg->getHeight(); y += img->getHeight()) { for(int x = 0; x < dstImg->getWidth(); x++) { ExPop::Gfx::Pixel *p = dstImg->getPixel(x, y); p->rgba.r = p->rgba.g = p->rgba.b = (((x&1)^(y&1))?0xff:0x0); p->rgba.a = 255; } } for(int x = 0; x < dstImg->getWidth(); x += img->getWidth()) { for(int y = 0; y < dstImg->getHeight(); y++) { ExPop::Gfx::Pixel *p = dstImg->getPixel(x, y); p->rgba.r = p->rgba.g = p->rgba.b = (((x&1)^(y&1))?0xff:0x0); p->rgba.a = 255; } } } saveTGAToFile(dstImg, filename + ".template." + extension); delete dstImg; delete img; } return 0; }
int Context2D::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QObject::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: changed((*reinterpret_cast< const QImage(*)>(_a[1]))); break; case 1: save(); break; case 2: restore(); break; case 3: scale((*reinterpret_cast< qreal(*)>(_a[1])),(*reinterpret_cast< qreal(*)>(_a[2]))); break; case 4: rotate((*reinterpret_cast< qreal(*)>(_a[1]))); break; case 5: translate((*reinterpret_cast< qreal(*)>(_a[1])),(*reinterpret_cast< qreal(*)>(_a[2]))); break; case 6: transform((*reinterpret_cast< qreal(*)>(_a[1])),(*reinterpret_cast< qreal(*)>(_a[2])),(*reinterpret_cast< qreal(*)>(_a[3])),(*reinterpret_cast< qreal(*)>(_a[4])),(*reinterpret_cast< qreal(*)>(_a[5])),(*reinterpret_cast< qreal(*)>(_a[6]))); break; case 7: setTransform((*reinterpret_cast< qreal(*)>(_a[1])),(*reinterpret_cast< qreal(*)>(_a[2])),(*reinterpret_cast< qreal(*)>(_a[3])),(*reinterpret_cast< qreal(*)>(_a[4])),(*reinterpret_cast< qreal(*)>(_a[5])),(*reinterpret_cast< qreal(*)>(_a[6]))); break; case 8: { CanvasGradient _r = createLinearGradient((*reinterpret_cast< qreal(*)>(_a[1])),(*reinterpret_cast< qreal(*)>(_a[2])),(*reinterpret_cast< qreal(*)>(_a[3])),(*reinterpret_cast< qreal(*)>(_a[4]))); if (_a[0]) *reinterpret_cast< CanvasGradient*>(_a[0]) = _r; } break; case 9: { CanvasGradient _r = createRadialGradient((*reinterpret_cast< qreal(*)>(_a[1])),(*reinterpret_cast< qreal(*)>(_a[2])),(*reinterpret_cast< qreal(*)>(_a[3])),(*reinterpret_cast< qreal(*)>(_a[4])),(*reinterpret_cast< qreal(*)>(_a[5])),(*reinterpret_cast< qreal(*)>(_a[6]))); if (_a[0]) *reinterpret_cast< CanvasGradient*>(_a[0]) = _r; } break; case 10: clearRect((*reinterpret_cast< qreal(*)>(_a[1])),(*reinterpret_cast< qreal(*)>(_a[2])),(*reinterpret_cast< qreal(*)>(_a[3])),(*reinterpret_cast< qreal(*)>(_a[4]))); break; case 11: fillRect((*reinterpret_cast< qreal(*)>(_a[1])),(*reinterpret_cast< qreal(*)>(_a[2])),(*reinterpret_cast< qreal(*)>(_a[3])),(*reinterpret_cast< qreal(*)>(_a[4]))); break; case 12: strokeRect((*reinterpret_cast< qreal(*)>(_a[1])),(*reinterpret_cast< qreal(*)>(_a[2])),(*reinterpret_cast< qreal(*)>(_a[3])),(*reinterpret_cast< qreal(*)>(_a[4]))); break; case 13: beginPath(); break; case 14: closePath(); break; case 15: moveTo((*reinterpret_cast< qreal(*)>(_a[1])),(*reinterpret_cast< qreal(*)>(_a[2]))); break; case 16: lineTo((*reinterpret_cast< qreal(*)>(_a[1])),(*reinterpret_cast< qreal(*)>(_a[2]))); break; case 17: quadraticCurveTo((*reinterpret_cast< qreal(*)>(_a[1])),(*reinterpret_cast< qreal(*)>(_a[2])),(*reinterpret_cast< qreal(*)>(_a[3])),(*reinterpret_cast< qreal(*)>(_a[4]))); break; case 18: bezierCurveTo((*reinterpret_cast< qreal(*)>(_a[1])),(*reinterpret_cast< qreal(*)>(_a[2])),(*reinterpret_cast< qreal(*)>(_a[3])),(*reinterpret_cast< qreal(*)>(_a[4])),(*reinterpret_cast< qreal(*)>(_a[5])),(*reinterpret_cast< qreal(*)>(_a[6]))); break; case 19: arcTo((*reinterpret_cast< qreal(*)>(_a[1])),(*reinterpret_cast< qreal(*)>(_a[2])),(*reinterpret_cast< qreal(*)>(_a[3])),(*reinterpret_cast< qreal(*)>(_a[4])),(*reinterpret_cast< qreal(*)>(_a[5]))); break; case 20: rect((*reinterpret_cast< qreal(*)>(_a[1])),(*reinterpret_cast< qreal(*)>(_a[2])),(*reinterpret_cast< qreal(*)>(_a[3])),(*reinterpret_cast< qreal(*)>(_a[4]))); break; case 21: arc((*reinterpret_cast< qreal(*)>(_a[1])),(*reinterpret_cast< qreal(*)>(_a[2])),(*reinterpret_cast< qreal(*)>(_a[3])),(*reinterpret_cast< qreal(*)>(_a[4])),(*reinterpret_cast< qreal(*)>(_a[5])),(*reinterpret_cast< bool(*)>(_a[6]))); break; case 22: fill(); break; case 23: stroke(); break; case 24: clip(); break; case 25: { bool _r = isPointInPath((*reinterpret_cast< qreal(*)>(_a[1])),(*reinterpret_cast< qreal(*)>(_a[2]))); if (_a[0]) *reinterpret_cast< bool*>(_a[0]) = _r; } break; case 26: drawImage((*reinterpret_cast< DomImage*(*)>(_a[1])),(*reinterpret_cast< qreal(*)>(_a[2])),(*reinterpret_cast< qreal(*)>(_a[3]))); break; case 27: drawImage((*reinterpret_cast< DomImage*(*)>(_a[1])),(*reinterpret_cast< qreal(*)>(_a[2])),(*reinterpret_cast< qreal(*)>(_a[3])),(*reinterpret_cast< qreal(*)>(_a[4])),(*reinterpret_cast< qreal(*)>(_a[5]))); break; case 28: drawImage((*reinterpret_cast< DomImage*(*)>(_a[1])),(*reinterpret_cast< qreal(*)>(_a[2])),(*reinterpret_cast< qreal(*)>(_a[3])),(*reinterpret_cast< qreal(*)>(_a[4])),(*reinterpret_cast< qreal(*)>(_a[5])),(*reinterpret_cast< qreal(*)>(_a[6])),(*reinterpret_cast< qreal(*)>(_a[7])),(*reinterpret_cast< qreal(*)>(_a[8])),(*reinterpret_cast< qreal(*)>(_a[9]))); break; case 29: { ImageData _r = getImageData((*reinterpret_cast< qreal(*)>(_a[1])),(*reinterpret_cast< qreal(*)>(_a[2])),(*reinterpret_cast< qreal(*)>(_a[3])),(*reinterpret_cast< qreal(*)>(_a[4]))); if (_a[0]) *reinterpret_cast< ImageData*>(_a[0]) = _r; } break; case 30: putImageData((*reinterpret_cast< ImageData(*)>(_a[1])),(*reinterpret_cast< qreal(*)>(_a[2])),(*reinterpret_cast< qreal(*)>(_a[3]))); break; default: ; } _id -= 31; } #ifndef QT_NO_PROPERTIES else if (_c == QMetaObject::ReadProperty) { void *_v = _a[0]; switch (_id) { case 0: *reinterpret_cast< qreal*>(_v) = globalAlpha(); break; case 1: *reinterpret_cast< QString*>(_v) = globalCompositeOperation(); break; case 2: *reinterpret_cast< QVariant*>(_v) = strokeStyle(); break; case 3: *reinterpret_cast< QVariant*>(_v) = fillStyle(); break; case 4: *reinterpret_cast< qreal*>(_v) = lineWidth(); break; case 5: *reinterpret_cast< QString*>(_v) = lineCap(); break; case 6: *reinterpret_cast< QString*>(_v) = lineJoin(); break; case 7: *reinterpret_cast< qreal*>(_v) = miterLimit(); break; case 8: *reinterpret_cast< qreal*>(_v) = shadowOffsetX(); break; case 9: *reinterpret_cast< qreal*>(_v) = shadowOffsetY(); break; case 10: *reinterpret_cast< qreal*>(_v) = shadowBlur(); break; case 11: *reinterpret_cast< QString*>(_v) = shadowColor(); break; } _id -= 12; } else if (_c == QMetaObject::WriteProperty) { void *_v = _a[0]; switch (_id) { case 0: setGlobalAlpha(*reinterpret_cast< qreal*>(_v)); break; case 1: setGlobalCompositeOperation(*reinterpret_cast< QString*>(_v)); break; case 2: setStrokeStyle(*reinterpret_cast< QVariant*>(_v)); break; case 3: setFillStyle(*reinterpret_cast< QVariant*>(_v)); break; case 4: setLineWidth(*reinterpret_cast< qreal*>(_v)); break; case 5: setLineCap(*reinterpret_cast< QString*>(_v)); break; case 6: setLineJoin(*reinterpret_cast< QString*>(_v)); break; case 7: setMiterLimit(*reinterpret_cast< qreal*>(_v)); break; case 8: setShadowOffsetX(*reinterpret_cast< qreal*>(_v)); break; case 9: setShadowOffsetY(*reinterpret_cast< qreal*>(_v)); break; case 10: setShadowBlur(*reinterpret_cast< qreal*>(_v)); break; case 11: setShadowColor(*reinterpret_cast< QString*>(_v)); break; } _id -= 12; } else if (_c == QMetaObject::ResetProperty) { _id -= 12; } else if (_c == QMetaObject::QueryPropertyDesignable) { _id -= 12; } else if (_c == QMetaObject::QueryPropertyScriptable) { _id -= 12; } else if (_c == QMetaObject::QueryPropertyStored) { _id -= 12; } else if (_c == QMetaObject::QueryPropertyEditable) { _id -= 12; } else if (_c == QMetaObject::QueryPropertyUser) { _id -= 12; } #endif // QT_NO_PROPERTIES return _id; }
void Bitmap::clearRect(int x, int y, int width, int height) { clearRect(IntRect(x, y, width, height)); }
void draw_cfg_menu_init() { setP(15, 25, 480, 249); clearRect(0); setP(16, 25, 459, 240); drawRect(15, true, 0x0A0000FF); setP(20, MENU_CFG_CPU_X, 25 + 20*8 , MENU_CFG_CPU_X+15); drawRect(0, false, 0); draw_cfg_menu_items(); setP0(25, 55); drawString("Default Brightness :", FSHADOW); setP0(25, 70); drawString("Combo Button :", FSHADOW); setP0(25, 85); drawString("Menu Button :", FSHADOW); setP0(25, 100); drawString("Screenshot Button :", FSHADOW); setP0(25, 115); drawString("Cpu Speed+ Button :", FSHADOW); setP0(25, 130); drawString("Cpu Speed- Button :", FSHADOW); setP0(25, 145); drawString("Brightness+ Button :", FSHADOW); setP0(25, 160); drawString("Brightness- Button :", FSHADOW); setP0(25, 175); drawString("Music Menu Button :", FSHADOW); setP0(25, 190); drawString("Music Folder :", FSHADOW); setP0(25, 205); drawString("Capture Folder :", FSHADOW); setP0(25, 230); drawString("Save Configuration", FSHADOW); setP0(200, 40); gprintf("%i", config->default_cpu_speed); setP0(200, 55); gprintf("%i", config->default_brightness); setP0(200, 70); gprintf("%s", config->button_combo); setP0(200, 85); gprintf("%s + %s", config->button_combo, config->button_menu); setP0(200, 100); gprintf("%s + %s", config->button_combo, config->button_screenshot); setP0(200, 115); gprintf("%s + %s", config->button_combo, config->button_cpu_plus); setP0(200, 130); gprintf("%s + %s", config->button_combo, config->button_cpu_minus); setP0(200, 145); gprintf("%s + %s", config->button_combo, config->button_brightness_plus); setP0(200, 160); gprintf("%s + %s", config->button_combo, config->button_brightness_minus); setP0(200, 175); gprintf("%s + %s", config->button_combo, config->button_music_menu); setP0(200, 190); #ifdef LIGHT gprintf("Not Available"); #else gprintf("%s", config->music_folder); #endif setP0(200, 205); #ifdef LIGHT gprintf("Not Available"); #else gprintf("%s", config->capture_folder); #endif }