void LLButton::init(void (*click_callback)(void*), void *callback_data, const LLFontGL* font, const std::string& control_name) { mGLFont = ( font ? font : LLFontGL::getFontSansSerif()); // Hack to make sure there is space for at least one character if (getRect().getWidth() - (mRightHPad + mLeftHPad) < mGLFont->getWidth(std::string(" "))) { // Use old defaults mLeftHPad = LLBUTTON_ORIG_H_PAD; mRightHPad = LLBUTTON_ORIG_H_PAD; } mCallbackUserData = callback_data; mMouseDownTimer.stop(); setControlName(control_name, NULL); mUnselectedLabelColor = ( LLUI::sColorsGroup->getColor( "ButtonLabelColor" ) ); mSelectedLabelColor = ( LLUI::sColorsGroup->getColor( "ButtonLabelSelectedColor" ) ); mDisabledLabelColor = ( LLUI::sColorsGroup->getColor( "ButtonLabelDisabledColor" ) ); mDisabledSelectedLabelColor = ( LLUI::sColorsGroup->getColor( "ButtonLabelSelectedDisabledColor" ) ); mHighlightColor = ( LLUI::sColorsGroup->getColor( "ButtonUnselectedFgColor" ) ); mUnselectedBgColor = ( LLUI::sColorsGroup->getColor( "ButtonUnselectedBgColor" ) ); mSelectedBgColor = ( LLUI::sColorsGroup->getColor( "ButtonSelectedBgColor" ) ); mFlashBgColor = ( LLUI::sColorsGroup->getColor( "ButtonFlashBgColor" ) ); mImageOverlayAlignment = LLFontGL::HCENTER; mImageOverlayColor = LLColor4::white; }
LLSlider::LLSlider(const LLSlider::Params& p) : LLF32UICtrl(p), mMouseOffset( 0 ), mOrientation ((p.orientation() == "horizontal") ? HORIZONTAL : VERTICAL), mTrackColor(p.track_color()), mThumbOutlineColor(p.thumb_outline_color()), mThumbCenterColor(p.thumb_center_color()), mThumbImage(p.thumb_image), mThumbImagePressed(p.thumb_image_pressed), mThumbImageDisabled(p.thumb_image_disabled), mTrackImageHorizontal(p.track_image_horizontal), mTrackImageVertical(p.track_image_vertical), mTrackHighlightHorizontalImage(p.track_highlight_horizontal_image), mTrackHighlightVerticalImage(p.track_highlight_vertical_image), mMouseDownSignal(NULL), mMouseUpSignal(NULL) { mViewModel->setValue(p.initial_value); updateThumbRect(); mDragStartThumbRect = mThumbRect; setControlName(p.control_name, NULL); setValue(getValueF32()); if (p.mouse_down_callback.isProvided()) { setMouseDownCallback(initCommitCallback(p.mouse_down_callback)); } if (p.mouse_up_callback.isProvided()) { setMouseUpCallback(initCommitCallback(p.mouse_up_callback)); } }
bool QgsCompositionChecker::testComposition( QString &report, int page ) { if ( !mComposition ) { return false; } #if 0 //fake mode to generate expected image //assume 300 dpi and size of the control image 3507 * 2480 QImage outputImage( QSize( 3507, 2480 ), QImage::Format_ARGB32 ); mComposition->setPlotStyle( QgsComposition::Print ); outputImage.setDotsPerMeterX( 300 / 25.4 * 1000 ); outputImage.setDotsPerMeterY( 300 / 25.4 * 1000 ); outputImage.fill( 0 ); QPainter p( &outputImage ); //QRectF sourceArea( 0, 0, mComposition->paperWidth(), mComposition->paperHeight() ); //QRectF targetArea( 0, 0, 3507, 2480 ); mComposition->renderPage( &p, page ); p.end(); outputImage.save( "/tmp/composerhtml_table_control.png", "PNG" ); return false; #endif //0 //load expected image setControlName( "expected_" + mTestName ); QImage expectedImage( mExpectedImageFile ); //get width/height, create image and render the composition to it int width = expectedImage.width(); int height = expectedImage.height(); QImage outputImage( QSize( width, height ), QImage::Format_ARGB32 ); mComposition->setPlotStyle( QgsComposition::Print ); outputImage.setDotsPerMeterX( expectedImage.dotsPerMeterX() ); outputImage.setDotsPerMeterY( expectedImage.dotsPerMeterX() ); outputImage.fill( 0 ); QPainter p( &outputImage ); mComposition->renderPage( &p, page ); p.end(); QString renderedFilePath = QDir::tempPath() + QDir::separator() + QFileInfo( mTestName ).baseName() + "_rendered.png"; outputImage.save( renderedFilePath, "PNG" ); QString diffFilePath = QDir::tempPath() + QDir::separator() + QFileInfo( mTestName ).baseName() + "_result_diff.png"; bool testResult = compareImages( mTestName, 0, renderedFilePath ); QString myDashMessage = "<DartMeasurementFile name=\"Rendered Image " + mTestName + "\"" " type=\"image/png\">" + renderedFilePath + "</DartMeasurementFile>" "<DartMeasurementFile name=\"Expected Image " + mTestName + "\" type=\"image/png\">" + mExpectedImageFile + "</DartMeasurementFile>" "<DartMeasurementFile name=\"Difference Image " + mTestName + "\" type=\"image/png\">" + diffFilePath + "</DartMeasurementFile>"; qDebug( ) << myDashMessage; report += mReport; return testResult; }
LLRadioGroup::LLRadioGroup(const std::string& name, const LLRect& rect, const std::string& control_name, LLUICtrlCallback callback, void* userdata, BOOL border) : LLUICtrl(name, rect, TRUE, callback, userdata, FOLLOWS_LEFT | FOLLOWS_TOP), mSelectedIndex(0) { setControlName(control_name, NULL); init(border); }
bool QgsCompositionChecker::testComposition( QString &theReport, int page, int pixelDiff ) { if ( !mComposition ) { return false; } setControlName( "expected_" + mTestName ); #if 0 //fake mode to generate expected image //assume 96 dpi and size of the control image 1122 * 794 QImage newImage( QSize( 1122, 794 ), QImage::Format_RGB32 ); mComposition->setPlotStyle( QgsComposition::Print ); newImage.setDotsPerMeterX( 96 / 25.4 * 1000 ); newImage.setDotsPerMeterY( 96 / 25.4 * 1000 ); drawBackground( &newImage ); QPainter expectedPainter( &newImage ); //QRectF sourceArea( 0, 0, mComposition->paperWidth(), mComposition->paperHeight() ); //QRectF targetArea( 0, 0, 3507, 2480 ); mComposition->renderPage( &expectedPainter, page ); expectedPainter.end(); newImage.save( mExpectedImageFile, "PNG" ); return true; #endif //0 QImage outputImage( mSize, QImage::Format_RGB32 ); mComposition->setPlotStyle( QgsComposition::Print ); outputImage.setDotsPerMeterX( mDotsPerMeter ); outputImage.setDotsPerMeterY( mDotsPerMeter ); drawBackground( &outputImage ); QPainter p( &outputImage ); mComposition->renderPage( &p, page ); p.end(); QString renderedFilePath = QDir::tempPath() + QDir::separator() + QFileInfo( mTestName ).baseName() + "_rendered.png"; outputImage.save( renderedFilePath, "PNG" ); setRenderedImage( renderedFilePath ); bool testResult = runTest( mTestName, pixelDiff ); theReport += report(); return testResult; }
LLMultiSlider::LLMultiSlider( const std::string& name, const LLRect& rect, void (*on_commit_callback)(LLUICtrl* ctrl, void* userdata), void* callback_userdata, F32 initial_value, F32 min_value, F32 max_value, F32 increment, S32 max_sliders, BOOL allow_overlap, BOOL draw_track, BOOL use_triangle, const std::string& control_name) : LLUICtrl( name, rect, TRUE, on_commit_callback, callback_userdata, FOLLOWS_LEFT | FOLLOWS_TOP), mInitialValue( initial_value ), mMinValue( min_value ), mMaxValue( max_value ), mIncrement( increment ), mMaxNumSliders(max_sliders), mAllowOverlap(allow_overlap), mDrawTrack(draw_track), mUseTriangle(use_triangle), mMouseOffset( 0 ), mDragStartThumbRect( 0, getRect().getHeight(), MULTI_THUMB_WIDTH, 0 ), mTrackColor( LLUI::sColorsGroup->getColor( "MultiSliderTrackColor" ) ), mThumbOutlineColor( LLUI::sColorsGroup->getColor( "MultiSliderThumbOutlineColor" ) ), mThumbCenterColor( LLUI::sColorsGroup->getColor( "MultiSliderThumbCenterColor" ) ), mThumbCenterSelectedColor( LLUI::sColorsGroup->getColor( "MultiSliderThumbCenterSelectedColor" ) ), mDisabledThumbColor(LLUI::sColorsGroup->getColor( "MultiSliderDisabledThumbColor" ) ), mTriangleColor(LLUI::sColorsGroup->getColor( "MultiSliderTriangleColor" ) ), mMouseDownCallback( NULL ), mMouseUpCallback( NULL ) { mValue.emptyMap(); mCurSlider = LLStringUtil::null; // properly handle setting the starting thumb rect // do it this way to handle both the operating-on-settings // and standalone ways of using this setControlName(control_name, NULL); setValue(getValue()); }
LLSlider::LLSlider( const std::string& name, const LLRect& rect, void (*on_commit_callback)(LLUICtrl* ctrl, void* userdata), void* callback_userdata, F32 initial_value, F32 min_value, F32 max_value, F32 increment, BOOL volume, const std::string& control_name) : LLUICtrl( name, rect, TRUE, on_commit_callback, callback_userdata, FOLLOWS_LEFT | FOLLOWS_TOP), mValue( initial_value ), mInitialValue( initial_value ), mMinValue( min_value ), mMaxValue( max_value ), mIncrement( increment ), mVolumeSlider( volume ), mMouseOffset( 0 ), mTrackColor( LLUI::sColorsGroup->getColor( "SliderTrackColor" ) ), mThumbOutlineColor( LLUI::sColorsGroup->getColor( "SliderThumbOutlineColor" ) ), mThumbCenterColor( LLUI::sColorsGroup->getColor( "SliderThumbCenterColor" ) ), mMouseDownSignal( NULL ), mMouseUpSignal( NULL ) { mThumbImage = LLUI::getUIImage("icn_slide-thumb_dark.tga"); mTrackImage = LLUI::getUIImage("icn_slide-groove_dark.tga"); mTrackHighlightImage = LLUI::getUIImage("icn_slide-highlight.tga"); // properly handle setting the starting thumb rect // do it this way to handle both the operating-on-settings // and standalone ways of using this setControlName(control_name, NULL); setValue(getValueF32()); updateThumbRect(); mDragStartThumbRect = mThumbRect; }
void LLUICtrl::initFromParams(const Params& p) { LLView::initFromParams(p); setIsChrome(p.chrome); setControlName(p.control_name); if(p.enabled_controls.isProvided()) { if (p.enabled_controls.enabled.isChosen()) { LLControlVariable* control = findControl(p.enabled_controls.enabled); if (control) setEnabledControlVariable(control); } else if(p.enabled_controls.disabled.isChosen()) { LLControlVariable* control = findControl(p.enabled_controls.disabled); if (control) setDisabledControlVariable(control); } } if(p.controls_visibility.isProvided()) { if (p.controls_visibility.visible.isChosen()) { LLControlVariable* control = findControl(p.controls_visibility.visible); if (control) setMakeVisibleControlVariable(control); } else if (p.controls_visibility.invisible.isChosen()) { LLControlVariable* control = findControl(p.controls_visibility.invisible); if (control) setMakeInvisibleControlVariable(control); } } setTabStop(p.tab_stop); if (p.initial_value.isProvided() && !p.control_name.isProvided()) { setValue(p.initial_value); } if (p.commit_callback.isProvided()) { setCommitCallback(initCommitCallback(p.commit_callback)); } if (p.validate_callback.isProvided()) { setValidateCallback(initEnableCallback(p.validate_callback)); } if (p.init_callback.isProvided()) { if (p.init_callback.function.isProvided()) { p.init_callback.function()(this, p.init_callback.parameter); } else { commit_callback_t* initfunc = (CommitCallbackRegistry::getValue(p.init_callback.function_name)); if (initfunc) { (*initfunc)(this, p.init_callback.parameter); } } } if(p.mouseenter_callback.isProvided()) { setMouseEnterCallback(initCommitCallback(p.mouseenter_callback)); } if(p.mouseleave_callback.isProvided()) { setMouseLeaveCallback(initCommitCallback(p.mouseleave_callback)); } }