summaryrefslogtreecommitdiffstats
path: root/kcontrol/kdm/background.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kcontrol/kdm/background.cpp')
-rw-r--r--kcontrol/kdm/background.cpp111
1 files changed, 111 insertions, 0 deletions
diff --git a/kcontrol/kdm/background.cpp b/kcontrol/kdm/background.cpp
new file mode 100644
index 000000000..19c962a1d
--- /dev/null
+++ b/kcontrol/kdm/background.cpp
@@ -0,0 +1,111 @@
+/* vi: ts=8 sts=4 sw=4
+ *
+ * This file is part of the KDE project, module kcmdisplay.
+ * Copyright (C) 1999 Geert Jansen <[email protected]>
+ *
+ * Modified 2000.07.14 by Brad Hughes <[email protected]>
+ * Improve layout and consistency with KDesktop's background selection
+ *
+ * Based on old backgnd.cpp:
+ *
+ * Copyright (c) Martin R. Jones 1996
+ * Converted to a kcc module by Matthias Hoelzer 1997
+ * Gradient backgrounds by Mark Donohoe 1997
+ * Pattern backgrounds by Stephan Kulow 1998
+ * Randomizing & dnd & new display modes by Matej Koss 1998
+ *
+ * You can Freely distribute this program under the GNU General Public
+ * License. See the file "COPYING" for the exact licensing terms.
+ */
+
+#include <config.h>
+
+#include <unistd.h>
+#include <sys/types.h>
+
+#include <qgroupbox.h>
+#include <qlayout.h>
+#include <qwhatsthis.h>
+
+#include <kdebug.h>
+#include <klocale.h>
+#include <dcopclient.h>
+#include "../background/bgsettings.h"
+#include "../background/bgdialog.h"
+#include "background.h"
+#include <qcheckbox.h>
+#include <ksimpleconfig.h>
+#include <kdialog.h>
+
+extern KSimpleConfig *config;
+
+KBackground::KBackground(QWidget *parent, const char *name)
+ : QWidget(parent, name)
+{
+
+ // Enabling checkbox
+ m_pCBEnable = new QCheckBox( i18n("E&nable background"), this );
+ QWhatsThis::add( m_pCBEnable,
+ i18n("If this is checked, KDM will use the settings below for the background."
+ " If it is disabled, you have to look after the background yourself."
+ " This is done by running some program (possibly xsetroot) in the script"
+ " specified in the Setup= option in kdmrc (usually Xsetup).") );
+ config->setGroup( "X-*-Greeter" );
+ m_simpleConf=new KSimpleConfig(config->readEntry( "BackgroundCfg",KDE_CONFDIR "/kdm/backgroundrc" ) );
+ m_background = new BGDialog( this, m_simpleConf, false );
+
+ connect(m_background, SIGNAL(changed(bool)), SIGNAL(changed(bool)));
+
+ // Top layout
+ QVBoxLayout *top = new QVBoxLayout(this, KDialog::marginHint(), KDialog::spacingHint() );
+ top->addWidget(m_pCBEnable);
+ top->addWidget(m_background);
+ top->addStretch();
+ connect( m_pCBEnable, SIGNAL(toggled( bool )), SLOT(slotEnableChanged()) );
+}
+
+KBackground::~KBackground()
+{
+ delete m_simpleConf;
+}
+
+void KBackground::slotEnableChanged()
+{
+ bool en = m_pCBEnable->isChecked();
+ m_background->setEnabled( en );
+ emit changed ( true );
+}
+
+void KBackground::makeReadOnly()
+{
+ m_pCBEnable->setEnabled(false);
+ m_background->makeReadOnly();
+}
+
+void KBackground::load()
+{
+ m_pCBEnable->setChecked( config->readBoolEntry( "UseBackground", true ) );
+ m_background->load(false);
+ slotEnableChanged();
+ emit changed(false);
+}
+
+
+void KBackground::save()
+{
+ kdDebug() << "Saving stuff..." << endl;
+ config->writeEntry( "UseBackground", m_pCBEnable->isChecked() );
+ m_background->save();
+ emit changed(false);
+}
+
+
+void KBackground::defaults()
+{
+ m_pCBEnable->setChecked( true );
+ slotEnableChanged();
+ m_background->defaults();
+ emit changed(true);
+}
+
+#include "background.moc"