diff options
Diffstat (limited to 'twin/clients/default/config')
-rw-r--r-- | twin/clients/default/config/CMakeLists.txt | 29 | ||||
-rw-r--r-- | twin/clients/default/config/Makefile.am | 16 | ||||
-rw-r--r-- | twin/clients/default/config/config.cpp | 131 | ||||
-rw-r--r-- | twin/clients/default/config/config.h | 49 |
4 files changed, 225 insertions, 0 deletions
diff --git a/twin/clients/default/config/CMakeLists.txt b/twin/clients/default/config/CMakeLists.txt new file mode 100644 index 000000000..5814e011f --- /dev/null +++ b/twin/clients/default/config/CMakeLists.txt @@ -0,0 +1,29 @@ +################################################# +# +# (C) 2010-2011 Serghei Amelian +# serghei (DOT) amelian (AT) gmail.com +# +# Improvements and feedback are welcome +# +# This file is released under GPL >= 2 +# +################################################# + +include_directories( + ${CMAKE_CURRENT_BINARY_DIR} + ${TDE_INCLUDE_DIR} + ${TQT_INCLUDE_DIRS} +) + +link_directories( + ${TQT_LIBRARY_DIRS} +) + + +##### twin_default_config (module) ############## + +tde_add_kpart( twin_default_config AUTOMOC + SOURCES config.cpp + LINK tdeui-shared + DESTINATION ${PLUGIN_INSTALL_DIR} +) diff --git a/twin/clients/default/config/Makefile.am b/twin/clients/default/config/Makefile.am new file mode 100644 index 000000000..3a1df8aa2 --- /dev/null +++ b/twin/clients/default/config/Makefile.am @@ -0,0 +1,16 @@ +INCLUDES = $(all_includes) + +kde_module_LTLIBRARIES = twin_default_config.la + +twin_default_config_la_SOURCES = config.cpp +twin_default_config_la_LDFLAGS = $(all_libraries) $(KDE_PLUGIN) -module +twin_default_config_la_LIBADD = $(LIB_TDEUI) + +METASOURCES = AUTO +noinst_HEADERS = config.h + +lnkdir = $(kde_datadir)/twin/ + +###KMAKE-start (don't edit or delete this block) + +###KMAKE-end diff --git a/twin/clients/default/config/config.cpp b/twin/clients/default/config/config.cpp new file mode 100644 index 000000000..eac4ef4e4 --- /dev/null +++ b/twin/clients/default/config/config.cpp @@ -0,0 +1,131 @@ +/* + * + * KDE2 Default configuration widget + * + * Copyright (c) 2001 + * Karol Szwed <gallium@kde.org> + * http://gallium.n3.net/ + */ + +#include "config.h" +#include <kglobal.h> +#include <tqwhatsthis.h> +#include <kdialog.h> +#include <klocale.h> +#include <tqpixmap.h> +#include <tqvbox.h> + +extern "C" +{ + KDE_EXPORT TQObject* allocate_config( KConfig* conf, TQWidget* parent ) + { + return(new KDEDefaultConfig(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 + +KDEDefaultConfig::KDEDefaultConfig( KConfig* conf, TQWidget* parent ) + : TQObject( parent ) +{ + KGlobal::locale()->insertCatalogue("twin_clients"); + highcolor = TQPixmap::defaultDepth() > 8; + gb = new TQVBox( parent ); + gb->setSpacing( KDialog::spacingHint() ); + + cbShowStipple = new TQCheckBox( i18n("Draw titlebar &stipple effect"), gb ); + TQWhatsThis::add( cbShowStipple, + i18n("When selected, active titlebars are drawn " + "with a stipple (dotted) effect; otherwise, they are " + "drawn without the stipple.")); + + cbShowGrabBar = new TQCheckBox( i18n("Draw g&rab bar below windows"), gb ); + TQWhatsThis::add( cbShowGrabBar, + i18n("When selected, decorations are drawn with a \"grab bar\" " + "below windows; otherwise, no grab bar is drawn.")); + + // Only show the gradient checkbox for highcolor displays + if (highcolor) + { + cbUseGradients = new TQCheckBox( i18n("Draw &gradients"), gb ); + TQWhatsThis::add( cbUseGradients, + i18n("When selected, decorations are drawn with gradients " + "for high-color displays; otherwise, no gradients are drawn.") ); + } + + // Load configuration options + load( conf ); + + // Ensure we track user changes properly + connect( cbShowStipple, TQT_SIGNAL(clicked()), + this, TQT_SLOT(slotSelectionChanged()) ); + connect( cbShowGrabBar, TQT_SIGNAL(clicked()), + this, TQT_SLOT(slotSelectionChanged()) ); + if (highcolor) + connect( cbUseGradients, TQT_SIGNAL(clicked()), + this, TQT_SLOT(slotSelectionChanged()) ); + + // Make the widgets visible in twindecoration + gb->show(); +} + + +KDEDefaultConfig::~KDEDefaultConfig() +{ + delete gb; +} + + +void KDEDefaultConfig::slotSelectionChanged() +{ + emit changed(); +} + + +// Loads the configurable options from the twinrc config file +// It is passed the open config from twindecoration to improve efficiency +void KDEDefaultConfig::load( KConfig* conf ) +{ + conf->setGroup("KDEDefault"); + bool override = conf->readBoolEntry( "ShowTitleBarStipple", true ); + cbShowStipple->setChecked( override ); + + override = conf->readBoolEntry( "ShowGrabBar", true ); + cbShowGrabBar->setChecked( override ); + + if (highcolor) { + override = conf->readBoolEntry( "UseGradients", true ); + cbUseGradients->setChecked( override ); + } +} + + +// Saves the configurable options to the twinrc config file +void KDEDefaultConfig::save( KConfig* conf ) +{ + conf->setGroup("KDEDefault"); + conf->writeEntry( "ShowTitleBarStipple", cbShowStipple->isChecked() ); + conf->writeEntry( "ShowGrabBar", cbShowGrabBar->isChecked() ); + + if (highcolor) + conf->writeEntry( "UseGradients", cbUseGradients->isChecked() ); + // No need to conf->sync() - twindecoration will do it for us +} + + +// Sets UI widget defaults which must correspond to style defaults +void KDEDefaultConfig::defaults() +{ + cbShowStipple->setChecked( true ); + cbShowGrabBar->setChecked( true ); + + if (highcolor) + cbUseGradients->setChecked( true ); +} + +#include "config.moc" +// vim: ts=4 diff --git a/twin/clients/default/config/config.h b/twin/clients/default/config/config.h new file mode 100644 index 000000000..733b96141 --- /dev/null +++ b/twin/clients/default/config/config.h @@ -0,0 +1,49 @@ +/* + * + * KDE2 Default configuration widget + * + * Copyright (c) 2001 + * Karol Szwed <gallium@kde.org> + * http://gallium.n3.net/ + */ + +#ifndef _KDE_DEFAULT_CONFIG_H +#define _KDE_DEFAULT_CONFIG_H + +#include <tqcheckbox.h> +#include <tqgroupbox.h> +#include <kconfig.h> +#include <tqhbox.h> +#include <tqlabel.h> +#include <tqvbox.h> + +class KDEDefaultConfig: public TQObject +{ + Q_OBJECT + + public: + KDEDefaultConfig( KConfig* conf, TQWidget* parent ); + ~KDEDefaultConfig(); + + // These public signals/slots work similar to KCM modules + signals: + void changed(); + + public slots: + void load( KConfig* conf ); + void save( KConfig* conf ); + void defaults(); + + protected slots: + void slotSelectionChanged(); // Internal use + + private: + TQCheckBox* cbShowStipple; + TQCheckBox* cbShowGrabBar; + TQCheckBox* cbUseGradients; + TQVBox* gb; + bool highcolor; +}; + +#endif +// vim: ts=4 |