void dtInspectorQt::LightView::OnSpecularColorChooserClicked() { QColor initialColor(mUI->lightSpecRedEdit->value() * 255, mUI->lightSpecGreenEdit->value() * 255, mUI->lightSpecBlueEdit->value() * 255); QColor newColor = QColorDialog::getColor(initialColor, mUI->lightSpecPushbutton); if (newColor.isValid()) { mUI->lightSpecRedEdit->setValue(newColor.redF()); mUI->lightSpecGreenEdit->setValue(newColor.greenF()); mUI->lightSpecBlueEdit->setValue(newColor.blueF()); } }
void dtInspectorQt::EnvironmentView::OnFogColorPickerClicked() { QColor initialColor(mUI->envFogRedEdit->value() * 255, mUI->envFogGreenEdit->value() * 255, mUI->envFogBlueEdit->value() * 255); QColor newColor = QColorDialog::getColor(initialColor, mUI->envFogColorButton); if (newColor.isValid()) { mUI->envFogRedEdit->setValue(newColor.redF()); mUI->envFogGreenEdit->setValue(newColor.greenF()); mUI->envFogBlueEdit->setValue(newColor.blueF()); } }
void LodDistanceControl::SetDistances(float32 *newDistances, int32 newCount) { Vector2 newSize = GetSize(); newSize.y = (newCount + 1) * ControlsFactory::BUTTON_HEIGHT; SetSize(newSize); ReleaseControls(); if(1 < newCount) { count = newCount; Memcpy(distances, newDistances, count * sizeof(float32)); zones = new UIControl*[count]; maxDistance = (distances[count - 1] < LodNode::MAX_LOD_DISTANCE) ? LodNode::MAX_LOD_DISTANCE : (LodNode::MAX_LOD_DISTANCE * 1.1f); Rect fullRect = GetRect(); Color initialColor(0.8f, 0.5f, 0.1f, 1.0f); for(int32 iZone = 0; iZone < count; ++iZone) { float32 x = (iZone) ? distances[iZone] : 0.f; float32 dx = (iZone != count - 1) ? (distances[iZone + 1] - x) : (maxDistance - distances[iZone]); x = x * fullRect.dx / maxDistance; dx = dx * fullRect.dx / maxDistance; zones[iZone] = new UIControl(Rect(x, 0, dx, ControlsFactory::BUTTON_HEIGHT)); zones[iZone]->SetInputEnabled(false, false); zones[iZone]->GetBackground()->SetDrawType(UIControlBackground::DRAW_FILL); float32 color = distances[iZone] / maxDistance; Color zoneColor; zoneColor.r = initialColor.r + color; zoneColor.g = initialColor.g + color; zoneColor.b = initialColor.b + color; zoneColor.a = 1.0f; if(1.0f < zoneColor.r) zoneColor.r -= (int32)zoneColor.r; if(1.0f < zoneColor.g) zoneColor.g -= (int32)zoneColor.g; if(1.0f < zoneColor.b) zoneColor.b -= (int32)zoneColor.b; zones[iZone]->GetBackground()->SetColor(zoneColor); AddControl(zones[iZone]); } sliders = new UIControl*[count - 1]; for(int32 iSlider = 0; iSlider < count - 1; ++iSlider) { float32 x = distances[iSlider + 1] / maxDistance * fullRect.dx; sliders[iSlider] = new UIControl(Rect(x - 1, 0, 3, ControlsFactory::BUTTON_HEIGHT)); sliders[iSlider]->SetInputEnabled(false, false); sliders[iSlider]->GetBackground()->SetDrawType(UIControlBackground::DRAW_FILL); sliders[iSlider]->GetBackground()->SetColor(Color(1.0f, 0.0f, 0.0f, 1.0f)); AddControl(sliders[iSlider]); } } for(int32 iDist = 0; iDist < LodNode::MAX_LOD_LAYERS; ++iDist) { RemoveControl(distanceText[iDist]); RemoveControl(distanceTextValues[iDist]); if(iDist < count) { AddControl(distanceText[iDist]); distanceText[iDist]->SetText(Format(L"Distance_%d:", iDist)); AddControl(distanceTextValues[iDist]); distanceTextValues[iDist]->SetText(Format(L"%3.0f", distances[iDist])); } } }