You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdegraphics/kpovmodeler/pmcolorsettings.cpp

164 lines
5.9 KiB

/*
**************************************************************************
description
--------------------
copyright : (C) 2003 by Andreas Zehender
email : zehender@kde.org
**************************************************************************
**************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
**************************************************************************/
#include "pmcolorsettings.h"
#include "pmrendermanager.h"
#include "pmdefaults.h"
#include <tqlayout.h>
#include <tqlabel.h>
#include <kcolorbutton.h>
#include <klocale.h>
PMColorSettings::PMColorSettings( TQWidget* parent, const char* name )
: PMSettingsDialogPage( parent, name )
{
TQHBoxLayout* hlayout;
TQVBoxLayout* vlayout;
TQGridLayout* grid;
vlayout = new TQVBoxLayout( this, 0, KDialog::spacingHint( ) );
grid = new TQGridLayout( vlayout, 6, 3 );
grid->addWidget( new TQLabel( i18n( "Background:" ), this ), 0, 0 );
hlayout = new TQHBoxLayout( );
grid->addLayout( hlayout, 0, 2 );
m_pBackgroundColor = new KColorButton( this );
hlayout->addWidget( m_pBackgroundColor );
hlayout->addStretch( 1 );
grid->addWidget( new TQLabel( i18n( "Wire frame:" ), this ), 1, 0 );
hlayout = new TQHBoxLayout( );
grid->addLayout( hlayout, 1, 2 );
m_pGraphicalObjectsColor[0] = new KColorButton( this );
hlayout->addWidget( m_pGraphicalObjectsColor[0] );
hlayout->addWidget( new TQLabel( i18n( "Selected:" ), this ) );
m_pGraphicalObjectsColor[1] = new KColorButton( this );
hlayout->addWidget( m_pGraphicalObjectsColor[1] );
hlayout->addStretch( 1 );
grid->addWidget( new TQLabel( i18n( "Control points:" ), this ), 2, 0 );
hlayout = new TQHBoxLayout( );
grid->addLayout( hlayout, 2, 2 );
m_pControlPointsColor[0] = new KColorButton( this );
hlayout->addWidget( m_pControlPointsColor[0] );
hlayout->addWidget( new TQLabel( i18n( "Selected:" ), this ) );
m_pControlPointsColor[1] = new KColorButton( this );
hlayout->addWidget( m_pControlPointsColor[1] );
hlayout->addStretch( 1 );
grid->addWidget( new TQLabel( i18n( "Axes:" ), this ), 3, 0 );
hlayout = new TQHBoxLayout( );
grid->addLayout( hlayout, 3, 2 );
grid->addWidget( new TQLabel( "x", this ), 3, 1 );
m_pAxesColor[0] = new KColorButton( this );
hlayout->addWidget( m_pAxesColor[0] );
hlayout->addWidget( new TQLabel( "y", this ) );
m_pAxesColor[1] = new KColorButton( this );
hlayout->addWidget( m_pAxesColor[1] );
hlayout->addWidget( new TQLabel( "z", this ) );
m_pAxesColor[2] = new KColorButton( this );
hlayout->addWidget( m_pAxesColor[2] );
hlayout->addStretch( 1 );
grid->addWidget( new TQLabel( i18n( "Field of view:" ), this ), 4, 0 );
hlayout = new TQHBoxLayout( );
grid->addLayout( hlayout, 4, 2 );
m_pFieldOfViewColor = new KColorButton( this );
hlayout->addWidget( m_pFieldOfViewColor );
hlayout->addStretch( 1 );
}
void PMColorSettings::displaySettings( )
{
PMRenderManager* rm = PMRenderManager::theManager( );
m_pBackgroundColor->setColor( rm->backgroundColor( ) );
m_pGraphicalObjectsColor[0]->setColor( rm->graphicalObjectColor( 0 ) );
m_pGraphicalObjectsColor[1]->setColor( rm->graphicalObjectColor( 1 ) );
m_pControlPointsColor[0]->setColor( rm->controlPointColor( 0 ) );
m_pControlPointsColor[1]->setColor( rm->controlPointColor( 1 ) );
m_pAxesColor[0]->setColor( rm->axesColor( 0 ) );
m_pAxesColor[1]->setColor( rm->axesColor( 1 ) );
m_pAxesColor[2]->setColor( rm->axesColor( 2 ) );
m_pFieldOfViewColor->setColor( rm->fieldOfViewColor( ) );
}
void PMColorSettings::displayDefaults( )
{
m_pBackgroundColor->setColor( c_defaultBackgroundColor );
m_pGraphicalObjectsColor[0]->setColor( c_defaultGraphicalObjectColor0 );
m_pGraphicalObjectsColor[1]->setColor( c_defaultGraphicalObjectColor1 );
m_pControlPointsColor[0]->setColor( c_defaultControlPointColor0 );
m_pControlPointsColor[1]->setColor( c_defaultControlPointColor1 );
m_pAxesColor[0]->setColor( c_defaultAxesColorX );
m_pAxesColor[1]->setColor( c_defaultAxesColorY );
m_pAxesColor[2]->setColor( c_defaultAxesColorZ );
m_pFieldOfViewColor->setColor( c_defaultFieldOfViewColor );
}
bool PMColorSettings::validateData( )
{
return true;
}
void PMColorSettings::applySettings( )
{
bool repaint = false;
int i;
PMRenderManager* rm = PMRenderManager::theManager( );
if( rm->backgroundColor( ) != m_pBackgroundColor->color( ) )
{
rm->setBackgroundColor( m_pBackgroundColor->color( ) );
repaint = true;
}
for( i = 0; i < 2; i++ )
{
if( rm->graphicalObjectColor( i ) != m_pGraphicalObjectsColor[i]->color( ) )
{
rm->setGraphicalObjectColor( i, m_pGraphicalObjectsColor[i]->color( ) );
repaint = true;
}
}
for( i = 0; i < 2; i++ )
{
if( rm->controlPointColor( i ) != m_pControlPointsColor[i]->color( ) )
{
rm->setControlPointColor( i, m_pControlPointsColor[i]->color( ) );
repaint = true;
}
}
for( i = 0; i < 3; i++ )
{
if( rm->axesColor( i ) != m_pAxesColor[i]->color( ) )
{
rm->setAxesColor( i, m_pAxesColor[i]->color( ) );
repaint = true;
}
}
if( rm->fieldOfViewColor( ) != m_pFieldOfViewColor->color( ) )
{
rm->setFieldOfViewColor( m_pFieldOfViewColor->color( ) );
repaint = true;
}
if( repaint )
emit repaintViews( );
}
#include "pmcolorsettings.moc"