Adding resize handle configuration patch by Melchior Franz.
svn path=/trunk/kdebase/kwin/; revision=117114
This commit is contained in:
parent
82c0178a80
commit
003eab093b
2 changed files with 83 additions and 28 deletions
|
@ -1,52 +1,87 @@
|
|||
// $Id$
|
||||
// Melchior FRANZ <a8603365@unet.univie.ac.at> -- 2001-04-22
|
||||
|
||||
#include "config.h"
|
||||
#include <kconfig.h>
|
||||
#include <klocale.h>
|
||||
#include <kglobal.h>
|
||||
#include <qwhatsthis.h>
|
||||
#include "config.h"
|
||||
|
||||
|
||||
extern "C"
|
||||
{
|
||||
QObject* allocate_config( KConfig* conf, QWidget* parent )
|
||||
QObject* allocate_config(KConfig* conf, QWidget* parent)
|
||||
{
|
||||
return(new ModernSysConfig(conf, parent));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 'conf' is a pointer to the kwindecoration modules open kwin config,
|
||||
// and is by default set to the "Style" group.
|
||||
// 'conf' is a pointer to the kwindecoration modules open kwin config,
|
||||
// and is by default set to the "Style" group.
|
||||
//
|
||||
// 'parent' is the parent of the QObject, which is a VBox inside the
|
||||
// Configure tab in kwindecoration
|
||||
// Configure tab in kwindecoration
|
||||
|
||||
ModernSysConfig::ModernSysConfig(KConfig* conf, QWidget* parent) : QObject(parent)
|
||||
{
|
||||
clientrc = new KConfig("kwinmodernsysrc");
|
||||
KGlobal::locale()->insertCatalogue("libkwinmodernsys_config");
|
||||
gb = new QGroupBox(1, Qt::Horizontal, i18n("Decoration Settings"), parent);
|
||||
cbShowHandle = new QCheckBox(i18n("&Show resize handle"), gb);
|
||||
QWhatsThis::add(cbShowHandle, i18n("When selected, all windows are drawn with a resize "
|
||||
"handle at the lower right corner."));
|
||||
mainw = new QWidget(parent);
|
||||
vbox = new QVBoxLayout(mainw);
|
||||
vbox->setSpacing(6);
|
||||
vbox->setMargin(0);
|
||||
|
||||
handleBox = new QGroupBox( 1, Qt::Vertical, i18n("Window Resize Handle"), mainw);
|
||||
handleBox->setSizePolicy(QSizePolicy((QSizePolicy::SizeType)1, (QSizePolicy::SizeType)4));
|
||||
|
||||
cbShowHandle = new QCheckBox(i18n("&Show Handle"), handleBox);
|
||||
QWhatsThis::add(cbShowHandle,
|
||||
i18n("When selected, all windows are drawn with a resize "
|
||||
"handle at the lower right corner. This makes window resizing "
|
||||
"easier, especially for trackballs and other mouse replacements "
|
||||
"on laptops."));
|
||||
handleBox->addSpace(20);
|
||||
connect(cbShowHandle, SIGNAL(clicked()), this, SLOT(slotSelectionChanged()));
|
||||
|
||||
sliderBox = new QVBox(handleBox);
|
||||
handleSizeSlider = new QSlider(0, 4, 1, 0, QSlider::Horizontal, sliderBox);
|
||||
QWhatsThis::add(handleSizeSlider,
|
||||
i18n("Here you can change the size of the resize handle."));
|
||||
handleSizeSlider->setTickInterval(1);
|
||||
handleSizeSlider->setTickmarks(QSlider::Below);
|
||||
connect(handleSizeSlider, SIGNAL(valueChanged(int)), this, SLOT(slotSelectionChanged()));
|
||||
|
||||
hbox = new QHBox(sliderBox);
|
||||
hbox->setSpacing(6);
|
||||
label1 = new QLabel(i18n("Small"), hbox);
|
||||
label2 = new QLabel(i18n("Medium"), hbox);
|
||||
label2->setAlignment(AlignHCenter);
|
||||
label3 = new QLabel(i18n("Large"), hbox);
|
||||
label3->setAlignment(AlignRight);
|
||||
|
||||
vbox->addWidget(handleBox);
|
||||
vbox->addStretch(1);
|
||||
|
||||
load(conf);
|
||||
gb->show();
|
||||
mainw->show();
|
||||
}
|
||||
|
||||
|
||||
ModernSysConfig::~ModernSysConfig()
|
||||
{
|
||||
delete cbShowHandle;
|
||||
delete gb;
|
||||
delete mainw;
|
||||
delete clientrc;
|
||||
}
|
||||
|
||||
|
||||
void ModernSysConfig::slotSelectionChanged()
|
||||
{
|
||||
bool i = cbShowHandle->isChecked();
|
||||
if (i != hbox->isEnabled()) {
|
||||
hbox->setEnabled(i);
|
||||
handleSizeSlider->setEnabled(i);
|
||||
}
|
||||
emit changed();
|
||||
}
|
||||
|
||||
|
@ -56,8 +91,12 @@ void ModernSysConfig::load(KConfig* /*conf*/)
|
|||
clientrc->setGroup("General");
|
||||
bool i = clientrc->readBoolEntry("ShowHandle", true );
|
||||
cbShowHandle->setChecked(i);
|
||||
handle_width = clientrc->readUnsignedNumEntry("HandleWidth", 6);
|
||||
handle_size = clientrc->readUnsignedNumEntry("HandleSize", 30);
|
||||
hbox->setEnabled(i);
|
||||
handleSizeSlider->setEnabled(i);
|
||||
handleWidth = clientrc->readUnsignedNumEntry("HandleWidth", 6);
|
||||
handleSize = clientrc->readUnsignedNumEntry("HandleSize", 30);
|
||||
handleSizeSlider->setValue(QMIN((handleWidth - 6) / 2, 4));
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -65,8 +104,8 @@ void ModernSysConfig::save(KConfig* /*conf*/)
|
|||
{
|
||||
clientrc->setGroup("General");
|
||||
clientrc->writeEntry("ShowHandle", cbShowHandle->isChecked());
|
||||
clientrc->writeEntry("HandleWidth", handle_width);
|
||||
clientrc->writeEntry("HandleSize", handle_size);
|
||||
clientrc->writeEntry("HandleWidth", 6 + 2 * handleSizeSlider->value());
|
||||
clientrc->writeEntry("HandleSize", 30 + 4 * handleSizeSlider->value());
|
||||
clientrc->sync();
|
||||
}
|
||||
|
||||
|
@ -74,6 +113,9 @@ void ModernSysConfig::save(KConfig* /*conf*/)
|
|||
void ModernSysConfig::defaults()
|
||||
{
|
||||
cbShowHandle->setChecked(true);
|
||||
hbox->setEnabled(true);
|
||||
handleSizeSlider->setEnabled(true);
|
||||
handleSizeSlider->setValue(0);
|
||||
}
|
||||
|
||||
#include "config.moc"
|
||||
|
|
|
@ -4,34 +4,47 @@
|
|||
|
||||
#include <qcheckbox.h>
|
||||
#include <qgroupbox.h>
|
||||
#include <kconfig.h>
|
||||
#include <qlayout.h>
|
||||
#include <qvbox.h>
|
||||
#include <qslider.h>
|
||||
#include <qlabel.h>
|
||||
|
||||
class ModernSysConfig : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
ModernSysConfig( KConfig* conf, QWidget* parent );
|
||||
ModernSysConfig(KConfig* conf, QWidget* parent);
|
||||
~ModernSysConfig();
|
||||
|
||||
// These public signals/slots work similar to KCM modules
|
||||
signals:
|
||||
void changed();
|
||||
void changed();
|
||||
|
||||
public slots:
|
||||
void load( KConfig* conf );
|
||||
void save( KConfig* conf );
|
||||
void defaults();
|
||||
void load(KConfig* conf);
|
||||
void save(KConfig* conf);
|
||||
void defaults();
|
||||
|
||||
protected slots:
|
||||
void slotSelectionChanged(); // Internal use
|
||||
void slotSelectionChanged(); // Internal use
|
||||
|
||||
private:
|
||||
KConfig *clientrc;
|
||||
QGroupBox *gb;
|
||||
QCheckBox *cbShowHandle;
|
||||
unsigned handle_width;
|
||||
unsigned handle_size;
|
||||
KConfig *clientrc;
|
||||
QWidget *mainw;
|
||||
QVBoxLayout *vbox;
|
||||
QGroupBox *handleBox;
|
||||
QCheckBox *cbShowHandle;
|
||||
QVBox *sliderBox;
|
||||
QSlider *handleSizeSlider;
|
||||
QHBox *hbox;
|
||||
QLabel *label1;
|
||||
QLabel *label2;
|
||||
QLabel *label3;
|
||||
|
||||
unsigned handleWidth;
|
||||
unsigned handleSize;
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue