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.
tdeartwork/twin-styles/cde/config/config.cpp

132 lines
4.2 KiB

// $Id$
#include "config.h"
#include <tdeapplication.h>
#include <tdeglobal.h>
#include <tqwhatsthis.h>
#include <tqvbox.h>
#include <tdelocale.h>
extern "C" TDE_EXPORT TQObject* allocate_config( TDEConfig* conf, TQWidget* parent )
{
return new CdeConfig(conf, parent);
}
/* NOTE:
* 'conf' is a pointer to the twindecoration modules open twin config,
* and is by default set to the "Style" group.
*
* 'parent' is the parent of the TQObject, which is a VBox inside the
* Configure tab in twindecoration
*/
CdeConfig::CdeConfig( TDEConfig* conf, TQWidget* parent )
: TQObject( parent )
{
cdeConfig = new TDEConfig("twincderc");
TDEGlobal::locale()->insertCatalogue("twin_clients");
TDEGlobal::locale()->insertCatalogue("twin_art_clients");
groupBox = new TQVBox( parent );
bgAlign = new TQButtonGroup( 3, TQt::Horizontal, i18n("Text &Alignment"), groupBox );
bgAlign->setExclusive( true );
TQWhatsThis::add( bgAlign, i18n("Use these buttons to set the alignment of the titlebar caption text.") );
new TQRadioButton( i18n("Left"), bgAlign, "AlignLeft" );
TQRadioButton *radio2 = new TQRadioButton( i18n("Centered"), bgAlign, "AlignHCenter" );
radio2->setChecked( true );
new TQRadioButton( i18n("Right"), bgAlign, "AlignRight" );
cbColorBorder = new TQCheckBox( i18n("Draw window frames using &titlebar colors"), groupBox );
TQWhatsThis::add( cbColorBorder, i18n("When selected, the window decoration borders "
"are drawn using the titlebar colors. Otherwise, they are "
"drawn using normal border colors instead.") );
// cbTitlebarButton = new TQCheckBox( i18n("Titlebar acts like a &pushbutton when clicked"), groupBox );
// TQWhatsThis::add( cbTitlebarButton, i18n("When selected, this option causes the window titlebar to behave "
// "as if it was a pushbutton when you click it to move the window.") );
(void) new TQLabel( i18n("Tip: If you want the look of the original Motif(tm) Window Manager,\n"
"click the \"Buttons\" tab above and remove the help\n"
"and close buttons from the titlebar."), groupBox );
// Load configuration options
load( conf );
// Ensure we track user changes properly
connect( cbColorBorder, TQ_SIGNAL(clicked()), TQ_SLOT(slotSelectionChanged()) );
// connect( cbTitlebarButton, TQ_SIGNAL(clicked()), TQ_SLOT(slotSelectionChanged()) );
connect( bgAlign, TQ_SIGNAL(clicked(int)), TQ_SLOT(slotSelectionChanged(int)) );
// Make the widgets visible in twindecoration
groupBox->show();
}
CdeConfig::~CdeConfig()
{
delete bgAlign;
delete groupBox;
delete cdeConfig;
}
void CdeConfig::slotSelectionChanged()
{
emit changed();
}
void CdeConfig::slotSelectionChanged( int )
{
emit changed();
}
// Loads the configurable options from the twinrc config file
// It is passed the open config from twindecoration to improve efficiency
void CdeConfig::load( TDEConfig* /*conf*/ )
{
cdeConfig->setGroup("General");
TQString value = cdeConfig->readEntry( "TextAlignment", "AlignHCenter" );
TQRadioButton *button = (TQRadioButton*)bgAlign->child( (const char *)value.latin1() );
if ( button )
button->setChecked( true );
bool coloredFrame = cdeConfig->readBoolEntry( "UseTitleBarBorderColors", true );
cbColorBorder->setChecked( coloredFrame );
// bool titlebarButton = cdeConfig->readBoolEntry( "TitlebarButtonMode", true );
// cbTitlebarButton->setChecked( titlebarButton );
}
// Saves the configurable options to the twinrc config file
void CdeConfig::save( TDEConfig* /*conf*/ )
{
cdeConfig->setGroup("General");
TQRadioButton *button = (TQRadioButton*)bgAlign->selected();
if ( button )
cdeConfig->writeEntry( "TextAlignment", TQString(button->name()) );
cdeConfig->writeEntry( "UseTitleBarBorderColors", cbColorBorder->isChecked() );
// cdeConfig->writeEntry( "TitlebarButtonMode", cbTitlebarButton->isChecked() );
// Ensure others trying to read this config get updated
cdeConfig->sync();
}
// Sets UI widget defaults which must correspond to style defaults
void CdeConfig::defaults()
{
TQRadioButton *button = (TQRadioButton*)bgAlign->child( "AlignHCenter" );
if ( button )
button->setChecked( true );
cbColorBorder->setChecked( true );
// cbTitlebarButton->setChecked( true );
}
#include "config.moc"