summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMavridis Philippe <mavridisf@gmail.com>2023-06-28 12:44:04 +0300
committerMavridis Philippe <mavridisf@gmail.com>2023-07-04 15:28:32 +0300
commit93469d251f9135aa48715afc28a035dfebce8d2c (patch)
treef1be10aa72ff4afac61034e4db7281f3d22380a4
parente4d35cab44f278b3f3a82906a55c06a150da0ae5 (diff)
downloadtdebase-93469d251f9135aa48715afc28a035dfebce8d2c.tar.gz
tdebase-93469d251f9135aa48715afc28a035dfebce8d2c.zip
kcmtwin: Move Active Borders options into a new tab
Signed-off-by: Mavridis Philippe <mavridisf@gmail.com> (cherry picked from commit 631172e074ee702ff468b81e3a5c956515a2061a)
-rw-r--r--doc/kcontrol/windowbehavior/index.docbook77
-rw-r--r--twin/kcmtwin/twinoptions/CMakeLists.txt2
-rw-r--r--twin/kcmtwin/twinoptions/main.cpp25
-rw-r--r--twin/kcmtwin/twinoptions/main.h2
-rw-r--r--twin/kcmtwin/twinoptions/twinactiveborders.desktop17
-rw-r--r--twin/kcmtwin/twinoptions/windows.cpp295
-rw-r--r--twin/kcmtwin/twinoptions/windows.h62
7 files changed, 289 insertions, 191 deletions
diff --git a/doc/kcontrol/windowbehavior/index.docbook b/doc/kcontrol/windowbehavior/index.docbook
index b503636c7..310c6b021 100644
--- a/doc/kcontrol/windowbehavior/index.docbook
+++ b/doc/kcontrol/windowbehavior/index.docbook
@@ -714,45 +714,14 @@ less.</para>
</sect2>
-<sect2 id="advanced">
-<title>Advanced</title>
-
-<para>
-In the <guilabel>Advanced</guilabel> panel you can do more advanced fine
-tuning to the window behavior.
-</para>
-
-<variablelist>
-<title>Shading</title>
-
-<varlistentry>
-<term><guilabel>Animate</guilabel></term>
-<listitem>
-<para>When this option is enabled, shading, or rolling up a window until just
-the title bar is shown, will be animated.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><guilabel>Enable hover</guilabel></term>
-<listitem>
-<para>
-When this option is enabled, a shaded window will un-shade automatically
-when the mouse pointer has been over the titlebar for the configured delay.
-Use the slider widget to configure the delay.
-</para>
-</listitem>
-</varlistentry>
-
-</variablelist>
-
-<variablelist id="active-borders">
+<sect2 id="active-borders">
<title>Active Borders</title>
-<para>Active Borders is a feature which allows you to quickly perform window management actions by moving your mouse into a desktop border.</para>
+<para><guilabel>Active Borders</guilabel> is a feature which allows you to quickly perform window management actions by moving your mouse into a desktop border.</para>
<para>The corresponding section allows you to configure the function that will be performed when pushing your mouse cursor against a border or moving a window into it:</para>
+<variablelist>
<varlistentry>
<term><guilabel>Disabled</guilabel></term>
<listitem>
@@ -783,6 +752,46 @@ Use the slider widget to configure the delay.
This option controls the delay before the designated active border function is performed. A higher value can prevent accidental activations of this feature.
</para>
+<para>
+<guilabel>Border activation distance</guilabel>.
+This option controls how far from a desktop edge the mouse cursor should be in order to be able to activate the corresponding function. The default value is low,
+meaning that you have to be very close to the border or corner to trigger it, preventing accidental activations. A higher value means easier activation without
+having to actually push against the borders and corners.
+</para>
+</sect2>
+
+<sect2 id="advanced">
+<title>Advanced</title>
+
+<para>
+In the <guilabel>Advanced</guilabel> panel you can do more advanced fine
+tuning to the window behavior.
+</para>
+
+<variablelist>
+<title>Shading</title>
+
+<varlistentry>
+<term><guilabel>Animate</guilabel></term>
+<listitem>
+<para>When this option is enabled, shading, or rolling up a window until just
+the title bar is shown, will be animated.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><guilabel>Enable hover</guilabel></term>
+<listitem>
+<para>
+When this option is enabled, a shaded window will un-shade automatically
+when the mouse pointer has been over the titlebar for the configured delay.
+Use the slider widget to configure the delay.
+</para>
+</listitem>
+</varlistentry>
+
+</variablelist>
+
<sect3>
<title>Other</title>
diff --git a/twin/kcmtwin/twinoptions/CMakeLists.txt b/twin/kcmtwin/twinoptions/CMakeLists.txt
index b991bac96..6686f99b1 100644
--- a/twin/kcmtwin/twinoptions/CMakeLists.txt
+++ b/twin/kcmtwin/twinoptions/CMakeLists.txt
@@ -31,7 +31,7 @@ tde_create_translated_desktop(
tde_create_translated_desktop(
SOURCE
twinactions.desktop twinadvanced.desktop twinfocus.desktop
- twinmoving.desktop twintranslucency.desktop
+ twinmoving.desktop twintranslucency.desktop twinactiveborders.desktop
DESTINATION ${APPS_INSTALL_DIR}/.hidden
PO_DIR twin-desktops
)
diff --git a/twin/kcmtwin/twinoptions/main.cpp b/twin/kcmtwin/twinoptions/main.cpp
index 8ed52b067..e55d5a15f 100644
--- a/twin/kcmtwin/twinoptions/main.cpp
+++ b/twin/kcmtwin/twinoptions/main.cpp
@@ -59,6 +59,13 @@ extern "C"
return new KMovingConfig(true, c, parent, name);
}
+ KDE_EXPORT TDECModule *create_twinaborders(TQWidget *parent, const char *name)
+ {
+ TDEGlobal::locale()->insertCatalogue("kcmkwm");
+ TDEConfig *c = new TDEConfig("twinrc", false, true);
+ return new KActiveBorderConfig(true, c, parent, name);
+ }
+
KDE_EXPORT TDECModule *create_twinadvanced(TQWidget *parent, const char *name)
{
//CT there's need for decision: kwm or twin?
@@ -66,7 +73,7 @@ extern "C"
TDEConfig *c = new TDEConfig("twinrc", false, true);
return new KAdvancedConfig(true, c, parent, name);
}
-
+
KDE_EXPORT TDECModule *create_twintranslucency(TQWidget *parent, const char *name)
{
//CT there's need for decision: kwm or twin?
@@ -112,6 +119,11 @@ KWinOptions::KWinOptions(TQWidget *parent, const char *name)
tab->addTab(mMoving, i18n("&Moving"));
connect(mMoving, TQT_SIGNAL(changed(bool)), this, TQT_SLOT(moduleChanged(bool)));
+ mABorders = new KActiveBorderConfig(false, mConfig, this, "TWin Active Borders");
+ mABorders->layout()->setMargin(KDialog::marginHint());
+ tab->addTab(mABorders, i18n("Active &Borders"));
+ connect(mABorders, TQT_SIGNAL(changed(bool)), this, TQT_SLOT(moduleChanged(bool)));
+
mAdvanced = new KAdvancedConfig(false, mConfig, this, "TWin Advanced");
mAdvanced->layout()->setMargin( KDialog::marginHint() );
tab->addTab(mAdvanced, i18n("Ad&vanced"));
@@ -121,7 +133,7 @@ KWinOptions::KWinOptions(TQWidget *parent, const char *name)
mTranslucency->layout()->setMargin( KDialog::marginHint() );
tab->addTab(mTranslucency, i18n("&Translucency"));
connect(mTranslucency, TQT_SIGNAL(changed(bool)), this, TQT_SLOT(moduleChanged(bool)));
-
+
TDEAboutData *about =
new TDEAboutData(I18N_NOOP("kcmtwinoptions"), I18N_NOOP("Window Behavior Configuration Module"),
0, 0, TDEAboutData::License_GPL,
@@ -151,6 +163,7 @@ void KWinOptions::load()
mTitleBarActions->load();
mWindowActions->load();
mMoving->load();
+ mABorders->load();
mAdvanced->load();
mTranslucency->load();
emit TDECModule::changed( false );
@@ -163,6 +176,7 @@ void KWinOptions::save()
mTitleBarActions->save();
mWindowActions->save();
mMoving->save();
+ mABorders->save();
mAdvanced->save();
mTranslucency->save();
@@ -181,6 +195,7 @@ void KWinOptions::defaults()
mTitleBarActions->defaults();
mWindowActions->defaults();
mMoving->defaults();
+ mABorders->defaults();
mAdvanced->defaults();
mTranslucency->defaults();
}
@@ -222,10 +237,14 @@ TQString KWinOptions::handbookSection() const
}
else if (index == 4)
{
- return "advanced";
+ return "active-borders";
}
else if (index == 5)
{
+ return "advanced";
+ }
+ else if (index == 6)
+ {
return "translucency";
}
else
diff --git a/twin/kcmtwin/twinoptions/main.h b/twin/kcmtwin/twinoptions/main.h
index 554b7b761..af27701e8 100644
--- a/twin/kcmtwin/twinoptions/main.h
+++ b/twin/kcmtwin/twinoptions/main.h
@@ -32,6 +32,7 @@ class TDEConfig;
class KFocusConfig;
class KTitleBarActionsConfig;
class KWindowActionsConfig;
+class KActiveBorderConfig;
class KAdvancedConfig;
class KTranslucencyConfig;
@@ -64,6 +65,7 @@ private:
KTitleBarActionsConfig *mTitleBarActions;
KWindowActionsConfig *mWindowActions;
KMovingConfig *mMoving;
+ KActiveBorderConfig *mABorders;
KAdvancedConfig *mAdvanced;
KTranslucencyConfig *mTranslucency;
diff --git a/twin/kcmtwin/twinoptions/twinactiveborders.desktop b/twin/kcmtwin/twinoptions/twinactiveborders.desktop
new file mode 100644
index 000000000..54e7d0731
--- /dev/null
+++ b/twin/kcmtwin/twinoptions/twinactiveborders.desktop
@@ -0,0 +1,17 @@
+[Desktop Entry]
+Icon=kcmkwm
+Type=Application
+Exec=tdecmshell twinoptions
+X-DocPath=kcontrol/windowbehavior/index.html
+
+X-TDE-ModuleType=Library
+X-TDE-Library=twinoptions
+X-TDE-FactoryName=twinaborders
+
+Name=Active Borders
+
+Comment=Configure active borders/corners feature
+
+Keywords=window behavior;windows;frame;titlebar;borders;corners;active borders;aerosnap;
+
+Categories=Qt;TDE;X-TDE-settings-desktop;
diff --git a/twin/kcmtwin/twinoptions/windows.cpp b/twin/kcmtwin/twinoptions/windows.cpp
index f675ed1c4..617ad2fdf 100644
--- a/twin/kcmtwin/twinoptions/windows.cpp
+++ b/twin/kcmtwin/twinoptions/windows.cpp
@@ -612,60 +612,14 @@ void KFocusConfig::defaults()
emit TDECModule::changed(true);
}
-KAdvancedConfig::~KAdvancedConfig ()
-{
- if (standAlone)
- delete config;
+KActiveBorderConfig::~KActiveBorderConfig() {
+ if (standAlone) delete config;
}
-KAdvancedConfig::KAdvancedConfig (bool _standAlone, TDEConfig *_config, TQWidget *parent, const char *)
- : TDECModule(parent, "kcmkwm"), config(_config), standAlone(_standAlone)
-{
- TQString wtstr;
- TQBoxLayout *lay = new TQVBoxLayout (this, 0, KDialog::spacingHint());
-
- //iTLabel = new TQLabel(i18n(" Allowed overlap:\n"
- // "(% of desktop space)"),
- // plcBox);
- //iTLabel->setAlignment(AlignTop|AlignHCenter);
- //pLay->addWidget(iTLabel,1,1);
-
- //interactiveTrigger = new TQSpinBox(0, 500, 1, plcBox);
- //pLay->addWidget(interactiveTrigger,1,2);
-
- //pLay->addRowSpacing(2,KDialog::spacingHint());
+KActiveBorderConfig::KActiveBorderConfig(bool _standAlone, TDEConfig *_config, TQWidget *parent, const char*)
+ : TDECModule(parent, "kcmkwm"), config(_config), standAlone(_standAlone) {
- //lay->addWidget(plcBox);
-
- shBox = new TQVButtonGroup(i18n("Shading"), this);
-
- animateShade = new TQCheckBox(i18n("Anima&te"), shBox);
- TQWhatsThis::add(animateShade, i18n("Animate the action of reducing the window to its titlebar (shading)"
- " as well as the expansion of a shaded window") );
-
- shadeHoverOn = new TQCheckBox(i18n("&Enable hover"), shBox);
-
- connect(shadeHoverOn, TQT_SIGNAL(toggled(bool)), this, TQT_SLOT(shadeHoverChanged(bool)));
-
- shadeHover = new KIntNumInput(500, shBox);
- shadeHover->setLabel(i18n("Dela&y:"), Qt::AlignVCenter|Qt::AlignLeft);
- shadeHover->setRange(0, 3000, 100, true);
- shadeHover->setSteps(100, 100);
- shadeHover->setSuffix(i18n(" msec"));
-
- TQWhatsThis::add(shadeHoverOn, i18n("If Shade Hover is enabled, a shaded window will un-shade automatically "
- "when the mouse pointer has been over the title bar for some time."));
-
- wtstr = i18n("Sets the time in milliseconds before the window unshades "
- "when the mouse pointer goes over the shaded window.");
- TQWhatsThis::add(shadeHover, wtstr);
-
- lay->addWidget(shBox);
-
- // Any changes goes to slotChanged()
- connect(animateShade, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed()));
- connect(shadeHoverOn, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed()));
- connect(shadeHover, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(changed()));
+ TQBoxLayout *lay = new TQVBoxLayout(this, 0, KDialog::spacingHint());
active_box = new TQButtonGroup(i18n("Active Desktop Borders"), this);
TQVBoxLayout *active_vbox = new TQVBoxLayout(active_box);
@@ -722,7 +676,7 @@ KAdvancedConfig::KAdvancedConfig (bool _standAlone, TDEConfig *_config, TQWidget
active_vbox->addWidget(delays);
active_vbox->addWidget(distance);
- connect(active_box, TQT_SIGNAL(clicked(int)), this, TQT_SLOT(setEBorders()));
+ connect(active_box, TQT_SIGNAL(clicked(int)), this, TQT_SLOT(updateActiveBorders()));
// Any changes goes to slotChanged()
connect(active_box, TQT_SIGNAL(clicked(int)), this, TQT_SLOT(changed()));
@@ -732,54 +686,12 @@ KAdvancedConfig::KAdvancedConfig (bool _standAlone, TDEConfig *_config, TQWidget
connect(distance, TQT_SIGNAL(valueChanged(int)), this, TQT_SLOT(changed()));
lay->addWidget(active_box);
-
- hideUtilityWindowsForInactive = new TQCheckBox( i18n( "Hide utility windows for inactive applications" ), this );
- TQWhatsThis::add( hideUtilityWindowsForInactive,
- i18n( "When turned on, utility windows (tool windows, torn-off menus,...) of inactive applications will be"
- " hidden and will be shown only when the application becomes active. Note that applications"
- " have to mark the windows with the proper window type for this feature to work." ));
- connect(hideUtilityWindowsForInactive, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed()));
- lay->addWidget( hideUtilityWindowsForInactive );
-
lay->addStretch();
-
load();
-
}
-void KAdvancedConfig::setShadeHover(bool on) {
- shadeHoverOn->setChecked(on);
- shadeHover->setEnabled(on);
-}
-
-void KAdvancedConfig::setShadeHoverInterval(int k) {
- shadeHover->setValue(k);
-}
-
-int KAdvancedConfig::getShadeHoverInterval() {
-
- return shadeHover->value();
-}
-
-void KAdvancedConfig::shadeHoverChanged(bool a) {
- shadeHover->setEnabled(a);
-}
-
-void KAdvancedConfig::setAnimateShade(bool a) {
- animateShade->setChecked(a);
-}
-
-void KAdvancedConfig::setHideUtilityWindowsForInactive(bool s) {
- hideUtilityWindowsForInactive->setChecked( s );
-}
-
-void KAdvancedConfig::load( void )
-{
- config->setGroup( "Windows" );
-
- setAnimateShade(config->readBoolEntry(KWIN_ANIMSHADE, true));
- setShadeHover(config->readBoolEntry(KWIN_SHADEHOVER, false));
- setShadeHoverInterval(config->readNumEntry(KWIN_SHADEHOVER_INTERVAL, 250));
+void KActiveBorderConfig::load() {
+ config->setGroup("Windows");
// compatibility with old option names
int active_borders = config->readNumEntry(KWIN_ACTIVE_BORDERS, -1);
@@ -796,32 +708,16 @@ void KAdvancedConfig::load( void )
setActiveBorderDelay(active_borders_delay);
setActiveBorderDistance(config->readNumEntry(KWIN_ACTIVE_BORDER_DISTANCE, 10));
- setHideUtilityWindowsForInactive( config->readBoolEntry( KWIN_HIDE_UTILITY, true ));
-
emit TDECModule::changed(false);
}
-void KAdvancedConfig::save( void )
-{
- int v;
-
- config->setGroup( "Windows" );
- config->writeEntry(KWIN_ANIMSHADE, animateShade->isChecked());
- if (shadeHoverOn->isChecked())
- config->writeEntry(KWIN_SHADEHOVER, "on");
- else
- config->writeEntry(KWIN_SHADEHOVER, "off");
-
- v = getShadeHoverInterval();
- if (v<0) v = 0;
- config->writeEntry(KWIN_SHADEHOVER_INTERVAL, v);
+void KActiveBorderConfig::save() {
+ config->setGroup("Windows");
config->writeEntry(KWIN_ACTIVE_BORDERS, getActiveBorders());
config->writeEntry(KWIN_ACTIVE_BORDER_DELAY, getActiveBorderDelay());
config->writeEntry(KWIN_ACTIVE_BORDER_DISTANCE, getActiveBorderDistance());
- config->writeEntry(KWIN_HIDE_UTILITY, hideUtilityWindowsForInactive->isChecked());
-
// remove replaced legacy entries
config->deleteEntry(KWIN_OLD_ACTIVE_BORDERS);
config->deleteEntry(KWIN_OLD_ACTIVE_BORDER_DELAY);
@@ -829,33 +725,26 @@ void KAdvancedConfig::save( void )
if (standAlone)
{
config->sync();
- if ( !kapp->dcopClient()->isAttached() )
+ if (!kapp->dcopClient()->isAttached())
kapp->dcopClient()->attach();
kapp->dcopClient()->send("twin*", "", "reconfigure()", TQString(""));
}
emit TDECModule::changed(false);
}
-void KAdvancedConfig::defaults()
-{
- setAnimateShade(true);
- setShadeHover(false);
- setShadeHoverInterval(250);
+void KActiveBorderConfig::defaults() {
setActiveBorders(0);
setActiveBorderDelay(150);
setActiveBorderDistance(10);
- setHideUtilityWindowsForInactive( true );
emit TDECModule::changed(true);
}
-void KAdvancedConfig::setEBorders()
-{
+void KActiveBorderConfig::updateActiveBorders() {
active_desktop_conf->setEnabled(active_desktop->isChecked());
active_tile_conf->setEnabled(active_tile->isChecked());
}
-int KAdvancedConfig::getActiveBorders()
-{
+int KActiveBorderConfig::getActiveBorders() {
if (active_desktop->isChecked())
{
return active_move->isChecked() ? 1 : 2;
@@ -869,16 +758,15 @@ int KAdvancedConfig::getActiveBorders()
return 0;
}
-int KAdvancedConfig::getActiveBorderDelay()
-{
+int KActiveBorderConfig::getActiveBorderDelay() {
return delays->value();
}
-int KAdvancedConfig::getActiveBorderDistance() {
+int KActiveBorderConfig::getActiveBorderDistance() {
return distance->value();
}
-void KAdvancedConfig::setActiveBorders(int i){
+void KActiveBorderConfig::setActiveBorders(int i) {
switch(i)
{
case 1:
@@ -895,18 +783,161 @@ void KAdvancedConfig::setActiveBorders(int i){
active_disable->setChecked(true);
break;
}
- setEBorders();
+ updateActiveBorders();
}
-void KAdvancedConfig::setActiveBorderDelay(int delay)
+void KActiveBorderConfig::setActiveBorderDelay(int delay)
{
delays->setValue(delay);
}
-void KAdvancedConfig::setActiveBorderDistance(int d) {
+void KActiveBorderConfig::setActiveBorderDistance(int d) {
distance->setValue(d);
}
+KAdvancedConfig::~KAdvancedConfig ()
+{
+ if (standAlone)
+ delete config;
+}
+
+KAdvancedConfig::KAdvancedConfig (bool _standAlone, TDEConfig *_config, TQWidget *parent, const char *)
+ : TDECModule(parent, "kcmkwm"), config(_config), standAlone(_standAlone)
+{
+ TQString wtstr;
+ TQBoxLayout *lay = new TQVBoxLayout (this, 0, KDialog::spacingHint());
+
+ //iTLabel = new TQLabel(i18n(" Allowed overlap:\n"
+ // "(% of desktop space)"),
+ // plcBox);
+ //iTLabel->setAlignment(AlignTop|AlignHCenter);
+ //pLay->addWidget(iTLabel,1,1);
+
+ //interactiveTrigger = new TQSpinBox(0, 500, 1, plcBox);
+ //pLay->addWidget(interactiveTrigger,1,2);
+
+ //pLay->addRowSpacing(2,KDialog::spacingHint());
+
+ //lay->addWidget(plcBox);
+
+ shBox = new TQVButtonGroup(i18n("Shading"), this);
+
+ animateShade = new TQCheckBox(i18n("Anima&te"), shBox);
+ TQWhatsThis::add(animateShade, i18n("Animate the action of reducing the window to its titlebar (shading)"
+ " as well as the expansion of a shaded window") );
+
+ shadeHoverOn = new TQCheckBox(i18n("&Enable hover"), shBox);
+
+ connect(shadeHoverOn, TQT_SIGNAL(toggled(bool)), this, TQT_SLOT(shadeHoverChanged(bool)));
+
+ shadeHover = new KIntNumInput(500, shBox);
+ shadeHover->setLabel(i18n("Dela&y:"), Qt::AlignVCenter|Qt::AlignLeft);
+ shadeHover->setRange(0, 3000, 100, true);
+ shadeHover->setSteps(100, 100);
+ shadeHover->setSuffix(i18n(" msec"));
+
+ TQWhatsThis::add(shadeHoverOn, i18n("If Shade Hover is enabled, a shaded window will un-shade automatically "
+ "when the mouse pointer has been over the title bar for some time."));
+
+ wtstr = i18n("Sets the time in milliseconds before the window unshades "
+ "when the mouse pointer goes over the shaded window.");
+ TQWhatsThis::add(shadeHover, wtstr);
+
+ lay->addWidget(shBox);
+
+ // Any changes goes to slotChanged()
+ connect(animateShade, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed()));
+ connect(shadeHoverOn, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed()));
+ connect(shadeHover, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(changed()));
+
+ hideUtilityWindowsForInactive = new TQCheckBox( i18n( "Hide utility windows for inactive applications" ), this );
+ TQWhatsThis::add( hideUtilityWindowsForInactive,
+ i18n( "When turned on, utility windows (tool windows, torn-off menus,...) of inactive applications will be"
+ " hidden and will be shown only when the application becomes active. Note that applications"
+ " have to mark the windows with the proper window type for this feature to work." ));
+ connect(hideUtilityWindowsForInactive, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed()));
+ lay->addWidget( hideUtilityWindowsForInactive );
+
+ lay->addStretch();
+
+ load();
+
+}
+
+void KAdvancedConfig::setShadeHover(bool on) {
+ shadeHoverOn->setChecked(on);
+ shadeHover->setEnabled(on);
+}
+
+void KAdvancedConfig::setShadeHoverInterval(int k) {
+ shadeHover->setValue(k);
+}
+
+int KAdvancedConfig::getShadeHoverInterval() {
+
+ return shadeHover->value();
+}
+
+void KAdvancedConfig::shadeHoverChanged(bool a) {
+ shadeHover->setEnabled(a);
+}
+
+void KAdvancedConfig::setAnimateShade(bool a) {
+ animateShade->setChecked(a);
+}
+
+void KAdvancedConfig::setHideUtilityWindowsForInactive(bool s) {
+ hideUtilityWindowsForInactive->setChecked( s );
+}
+
+void KAdvancedConfig::load( void )
+{
+ config->setGroup( "Windows" );
+
+ setAnimateShade(config->readBoolEntry(KWIN_ANIMSHADE, true));
+ setShadeHover(config->readBoolEntry(KWIN_SHADEHOVER, false));
+ setShadeHoverInterval(config->readNumEntry(KWIN_SHADEHOVER_INTERVAL, 250));
+
+ setHideUtilityWindowsForInactive( config->readBoolEntry( KWIN_HIDE_UTILITY, true ));
+
+ emit TDECModule::changed(false);
+}
+
+void KAdvancedConfig::save( void )
+{
+ int v;
+
+ config->setGroup( "Windows" );
+ config->writeEntry(KWIN_ANIMSHADE, animateShade->isChecked());
+ if (shadeHoverOn->isChecked())
+ config->writeEntry(KWIN_SHADEHOVER, "on");
+ else
+ config->writeEntry(KWIN_SHADEHOVER, "off");
+
+ v = getShadeHoverInterval();
+ if (v<0) v = 0;
+ config->writeEntry(KWIN_SHADEHOVER_INTERVAL, v);
+ config->writeEntry(KWIN_HIDE_UTILITY, hideUtilityWindowsForInactive->isChecked());
+
+ if (standAlone)
+ {
+ config->sync();
+ if ( !kapp->dcopClient()->isAttached() )
+ kapp->dcopClient()->attach();
+ kapp->dcopClient()->send("twin*", "", "reconfigure()", TQString(""));
+ }
+ emit TDECModule::changed(false);
+}
+
+void KAdvancedConfig::defaults()
+{
+ setAnimateShade(true);
+ setShadeHover(false);
+ setShadeHoverInterval(250);
+ setHideUtilityWindowsForInactive( true );
+ emit TDECModule::changed(true);
+}
+
KMovingConfig::~KMovingConfig ()
{
if (standAlone)
diff --git a/twin/kcmtwin/twinoptions/windows.h b/twin/kcmtwin/twinoptions/windows.h
index 63bf75331..566f955b5 100644
--- a/twin/kcmtwin/twinoptions/windows.h
+++ b/twin/kcmtwin/twinoptions/windows.h
@@ -192,6 +192,47 @@ private:
};
+class KActiveBorderConfig : public TDECModule
+{
+ TQ_OBJECT
+ public:
+ KActiveBorderConfig(bool _standAlone, TDEConfig *config, TQWidget *parent=0, const char *name = 0);
+ ~KActiveBorderConfig();
+
+ void load();
+ void save();
+ void defaults();
+
+ private slots:
+ // copied from kcontrol/konq/twindesktop, aleXXX
+ // original name: setEBorders()
+ void updateActiveBorders();
+
+ void changed() { emit TDECModule::changed(true); }
+
+ private:
+ int getActiveBorders( void );
+ int getActiveBorderDelay();
+ int getActiveBorderDistance();
+ void setActiveBorders( int );
+ void setActiveBorderDelay( int );
+ void setActiveBorderDistance( int );
+
+ TQButtonGroup *active_box;
+ TQRadioButton *active_disable;
+ TQRadioButton *active_desktop;
+ TQCheckBox *active_move;
+ TQRadioButton *active_tile;
+ TQCheckBox *active_maximize;
+ KIntNumInput *delays;
+ KIntNumInput *distance;
+ TQWidget *active_desktop_conf;
+ TQWidget *active_tile_conf;
+
+ TDEConfig *config;
+ bool standAlone;
+};
+
class KAdvancedConfig : public TDECModule
{
Q_OBJECT
@@ -206,9 +247,6 @@ public:
private slots:
void shadeHoverChanged(bool);
- //copied from kcontrol/konq/twindesktop, aleXXX
- void setEBorders();
-
void changed() { emit TDECModule::changed(true); }
private:
@@ -226,24 +264,6 @@ private:
TDEConfig *config;
bool standAlone;
- int getActiveBorders( void );
- int getActiveBorderDelay();
- int getActiveBorderDistance();
- void setActiveBorders( int );
- void setActiveBorderDelay( int );
- void setActiveBorderDistance( int );
-
- TQButtonGroup *active_box;
- TQRadioButton *active_disable;
- TQRadioButton *active_desktop;
- TQCheckBox *active_move;
- TQRadioButton *active_tile;
- TQCheckBox *active_maximize;
- KIntNumInput *delays;
- KIntNumInput *distance;
- TQWidget *active_desktop_conf;
- TQWidget *active_tile_conf;
-
void setHideUtilityWindowsForInactive( bool );
TQCheckBox* hideUtilityWindowsForInactive;