diff options
Diffstat (limited to 'twin/kcmtwin/twinoptions')
-rw-r--r-- | twin/kcmtwin/twinoptions/AUTHORS | 12 | ||||
-rw-r--r-- | twin/kcmtwin/twinoptions/CMakeLists.txt | 40 | ||||
-rw-r--r-- | twin/kcmtwin/twinoptions/ChangeLog | 51 | ||||
-rw-r--r-- | twin/kcmtwin/twinoptions/Makefile.am | 18 | ||||
-rw-r--r-- | twin/kcmtwin/twinoptions/main.cpp | 296 | ||||
-rw-r--r-- | twin/kcmtwin/twinoptions/main.h | 101 | ||||
-rw-r--r-- | twin/kcmtwin/twinoptions/mouse.cpp | 856 | ||||
-rw-r--r-- | twin/kcmtwin/twinoptions/mouse.h | 137 | ||||
-rw-r--r-- | twin/kcmtwin/twinoptions/twinactions.desktop | 233 | ||||
-rw-r--r-- | twin/kcmtwin/twinoptions/twinadvanced.desktop | 232 | ||||
-rw-r--r-- | twin/kcmtwin/twinoptions/twinfocus.desktop | 222 | ||||
-rw-r--r-- | twin/kcmtwin/twinoptions/twinmoving.desktop | 229 | ||||
-rw-r--r-- | twin/kcmtwin/twinoptions/twinoptions.desktop | 225 | ||||
-rw-r--r-- | twin/kcmtwin/twinoptions/twintranslucency.desktop | 195 | ||||
-rw-r--r-- | twin/kcmtwin/twinoptions/windows.cpp | 1879 | ||||
-rw-r--r-- | twin/kcmtwin/twinoptions/windows.h | 307 |
16 files changed, 5033 insertions, 0 deletions
diff --git a/twin/kcmtwin/twinoptions/AUTHORS b/twin/kcmtwin/twinoptions/AUTHORS new file mode 100644 index 000000000..0615c59db --- /dev/null +++ b/twin/kcmtwin/twinoptions/AUTHORS @@ -0,0 +1,12 @@ +Please use http://bugs.kde.org to report bugs. +The following authors may have retired by the time you read this :-) + +KWM Configuration Module: + + Pat Dowler ([email protected]) + + Bernd Wuebben <[email protected]> + +Conversion to kcontrol applet: + + Matthias Hoelzer ([email protected]) diff --git a/twin/kcmtwin/twinoptions/CMakeLists.txt b/twin/kcmtwin/twinoptions/CMakeLists.txt new file mode 100644 index 000000000..591883e21 --- /dev/null +++ b/twin/kcmtwin/twinoptions/CMakeLists.txt @@ -0,0 +1,40 @@ +################################################# +# +# (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} + ${CMAKE_BINARY_DIR} + ${TDE_INCLUDE_DIR} + ${TQT_INCLUDE_DIRS} +) + +link_directories( + ${TQT_LIBRARY_DIRS} +) + + +##### other data ################################ + +install( FILES twinoptions.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} ) + +install( FILES + twinactions.desktop twinadvanced.desktop twinfocus.desktop + twinmoving.desktop twintranslucency.desktop + DESTINATION ${APPS_INSTALL_DIR}/.hidden ) + + +##### kcm_twinoptions (module) ################## + +tde_add_kpart( kcm_twinoptions AUTOMOC + SOURCES windows.cpp mouse.cpp main.cpp + LINK tdeui-shared + DESTINATION ${PLUGIN_INSTALL_DIR} +) diff --git a/twin/kcmtwin/twinoptions/ChangeLog b/twin/kcmtwin/twinoptions/ChangeLog new file mode 100644 index 000000000..0b923864c --- /dev/null +++ b/twin/kcmtwin/twinoptions/ChangeLog @@ -0,0 +1,51 @@ +1999-03-06 Mario Weilguni <[email protected]> + + * changes for Qt 2.0 + +1998-11-29 Alex Zepeda <[email protected]> + + * pics/Makefile.am, pics/mini/Makefile.am: Install icons from their + "proper" subdirectories. + +1998-11-20 Cristian Tibirna <[email protected]> + + * advanced.[cpp,h]: fixed bugs. Mostly a disgusting one: + no lists saving for the special options (Decor, Focus a.o.) + +1998-11-09 Cristian Tibirna <[email protected]> + + * advanced.[cpp,h] : new tab for some of the last of the + kwm's options which remained out of the GUI config: + CtrlTab, TraverseAll, AltTabeMode, Button3Grab and + the filter lists for decorations, focus, stickyness, + session management ignore ( I kinda disklike the solution + I got for the latest) + +1998-11-06 Cristian Tibirna <[email protected]> + + * titlebar.[cpp,h] : added title alignment config + +1998-10-23 Cristian Tibirna <[email protected]> + + * titlebar.cpp: completed what Matthias started (took out + useless checks) + * widows.cpp: make autoRaise toggling clearer + +1998-10-22 Matthias Ettrich <[email protected]> + + * titlebar.cpp: less options on titlebar doubleclick + +1998-10-21 Cristian Tibirna <[email protected]> + + * desktop.[cpp,h]: now with consistent layout use + resizeEvent() deleted + +1998-10-19 Cristian Tibirna <[email protected]> + + * windows.[cpp,h]: now with consistent layout use + resizeEvent() deleted + +1998-10-18 Cristian Tibirna <[email protected]> + + * titlebar.[cpp,h]: fixed the (in)activetitleebar pixmap selection + 1998-10-21 (still buggy, don't quite understand why) diff --git a/twin/kcmtwin/twinoptions/Makefile.am b/twin/kcmtwin/twinoptions/Makefile.am new file mode 100644 index 000000000..d2b4e6583 --- /dev/null +++ b/twin/kcmtwin/twinoptions/Makefile.am @@ -0,0 +1,18 @@ +METASOURCES = AUTO +INCLUDES = $(all_includes) + +kde_module_LTLIBRARIES = kcm_twinoptions.la + +kcm_twinoptions_la_SOURCES = windows.cpp mouse.cpp main.cpp +kcm_twinoptions_la_LDFLAGS = -module -avoid-version $(all_libraries) -no-undefined +kcm_twinoptions_la_LIBADD = $(LIB_TDEUI) + +noinst_HEADERS = windows.h mouse.h + +messages: + $(XGETTEXT) *.cpp -o $(podir)/kcmkwm.pot + +twin_kcmtwin_options_data_DATA = twinactions.desktop twinadvanced.desktop twinfocus.desktop twinmoving.desktop twintranslucency.desktop +twin_kcmtwin_options_datadir = $(kde_appsdir)/.hidden + +xdg_apps_DATA = twinoptions.desktop diff --git a/twin/kcmtwin/twinoptions/main.cpp b/twin/kcmtwin/twinoptions/main.cpp new file mode 100644 index 000000000..8ed52b067 --- /dev/null +++ b/twin/kcmtwin/twinoptions/main.cpp @@ -0,0 +1,296 @@ +/* + * + * Copyright (c) 2001 Waldo Bastian <[email protected]> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <tqlayout.h> + +#include <dcopclient.h> + +#include <tdeapplication.h> +#include <tdeglobal.h> +#include <tdelocale.h> +#include <tdeconfig.h> +#include <kgenericfactory.h> +#include <tdeaboutdata.h> +#include <kdialog.h> + +#include "mouse.h" +#include "windows.h" + +#include "main.h" + +extern "C" +{ + KDE_EXPORT TDECModule *create_twinfocus(TQWidget *parent, const char *name) + { + //CT there's need for decision: kwm or twin? + TDEGlobal::locale()->insertCatalogue("kcmkwm"); + TDEConfig *c = new TDEConfig("twinrc", false, true); + return new KFocusConfig(true, c, parent, name); + } + + KDE_EXPORT TDECModule *create_twinactions(TQWidget *parent, const char *name) + { + //CT there's need for decision: kwm or twin? + TDEGlobal::locale()->insertCatalogue("kcmkwm"); + return new TDEActionsOptions( parent, name); + } + + KDE_EXPORT TDECModule *create_twinmoving(TQWidget *parent, const char *name) + { + //CT there's need for decision: kwm or twin? + TDEGlobal::locale()->insertCatalogue("kcmkwm"); + TDEConfig *c = new TDEConfig("twinrc", false, true); + return new KMovingConfig(true, c, parent, name); + } + + KDE_EXPORT TDECModule *create_twinadvanced(TQWidget *parent, const char *name) + { + //CT there's need for decision: kwm or twin? + TDEGlobal::locale()->insertCatalogue("kcmkwm"); + 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? + TDEGlobal::locale()->insertCatalogue("kcmkwm"); + TDEConfig *c = new TDEConfig("twinrc", false, true); + return new KTranslucencyConfig(true, c, parent, name); + } + + KDE_EXPORT TDECModule *create_twinoptions ( TQWidget *parent, const char* name) + { + //CT there's need for decision: kwm or twin? + TDEGlobal::locale()->insertCatalogue("kcmkwm"); + return new KWinOptions( parent, name); + } +} + +KWinOptions::KWinOptions(TQWidget *parent, const char *name) + : TDECModule(parent, name) +{ + mConfig = new TDEConfig("twinrc", false, true); + + TQVBoxLayout *layout = new TQVBoxLayout(this); + tab = new TQTabWidget(this); + layout->addWidget(tab); + + mFocus = new KFocusConfig(false, mConfig, this, "TWin Focus Config"); + mFocus->layout()->setMargin( KDialog::marginHint() ); + tab->addTab(mFocus, i18n("&Focus")); + connect(mFocus, TQT_SIGNAL(changed(bool)), this, TQT_SLOT(moduleChanged(bool))); + + mTitleBarActions = new KTitleBarActionsConfig(false, mConfig, this, "TWin TitleBar Actions"); + mTitleBarActions->layout()->setMargin( KDialog::marginHint() ); + tab->addTab(mTitleBarActions, i18n("&Titlebar Actions")); + connect(mTitleBarActions, TQT_SIGNAL(changed(bool)), this, TQT_SLOT(moduleChanged(bool))); + + mWindowActions = new KWindowActionsConfig(false, mConfig, this, "TWin Window Actions"); + mWindowActions->layout()->setMargin( KDialog::marginHint() ); + tab->addTab(mWindowActions, i18n("Window Actio&ns")); + connect(mWindowActions, TQT_SIGNAL(changed(bool)), this, TQT_SLOT(moduleChanged(bool))); + + mMoving = new KMovingConfig(false, mConfig, this, "TWin Moving"); + mMoving->layout()->setMargin( KDialog::marginHint() ); + tab->addTab(mMoving, i18n("&Moving")); + connect(mMoving, 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")); + connect(mAdvanced, TQT_SIGNAL(changed(bool)), this, TQT_SLOT(moduleChanged(bool))); + + mTranslucency = new KTranslucencyConfig(false, mConfig, this, "TWin Translucency"); + 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, + I18N_NOOP("(c) 1997 - 2002 KWin and KControl Authors")); + + about->addAuthor("Matthias Ettrich",0,"[email protected]"); + about->addAuthor("Waldo Bastian",0,"[email protected]"); + about->addAuthor("Cristian Tibirna",0,"[email protected]"); + about->addAuthor("Matthias Kalle Dalheimer",0,"[email protected]"); + about->addAuthor("Daniel Molkentin",0,"[email protected]"); + about->addAuthor("Wynn Wilkes",0,"[email protected]"); + about->addAuthor("Pat Dowler",0,"[email protected]"); + about->addAuthor("Bernd Wuebben",0,"[email protected]"); + about->addAuthor("Matthias Hoelzer-Kluepfel",0,"[email protected]"); + setAboutData(about); +} + +KWinOptions::~KWinOptions() +{ + delete mConfig; +} + +void KWinOptions::load() +{ + mConfig->reparseConfiguration(); + mFocus->load(); + mTitleBarActions->load(); + mWindowActions->load(); + mMoving->load(); + mAdvanced->load(); + mTranslucency->load(); + emit TDECModule::changed( false ); +} + + +void KWinOptions::save() +{ + mFocus->save(); + mTitleBarActions->save(); + mWindowActions->save(); + mMoving->save(); + mAdvanced->save(); + mTranslucency->save(); + + emit TDECModule::changed( false ); + // Send signal to twin + mConfig->sync(); + if ( !kapp->dcopClient()->isAttached() ) + kapp->dcopClient()->attach(); + kapp->dcopClient()->send("twin*", "", "reconfigure()", TQString("")); +} + + +void KWinOptions::defaults() +{ + mFocus->defaults(); + mTitleBarActions->defaults(); + mWindowActions->defaults(); + mMoving->defaults(); + mAdvanced->defaults(); + mTranslucency->defaults(); +} + +TQString KWinOptions::quickHelp() const +{ + return i18n("<h1>Window Behavior</h1> Here you can customize the way windows behave when being" + " moved, resized or clicked on. You can also specify a focus policy as well as a placement" + " policy for new windows." + " <p>Please note that this configuration will not take effect if you do not use" + " TWin as your window manager. If you do use a different window manager, please refer to its documentation" + " for how to customize window behavior."); +} + +void KWinOptions::moduleChanged(bool state) +{ + emit TDECModule::changed(state); +} + +TQString KWinOptions::handbookSection() const +{ + int index = tab->currentPageIndex(); + if (index == 0) + { + //return "focus"; + return TQString::null; + } + else if (index == 1) + { + return "titlebar-actions"; + } + else if (index == 2) + { + return "window-actions"; + } + else if (index == 3) + { + return "moving"; + } + else if (index == 4) + { + return "advanced"; + } + else if (index == 5) + { + return "translucency"; + } + else + { + return TQString::null; + } +} + + +TDEActionsOptions::TDEActionsOptions(TQWidget *parent, const char *name) + : TDECModule(parent, name) +{ + mConfig = new TDEConfig("twinrc", false, true); + + TQVBoxLayout *layout = new TQVBoxLayout(this); + tab = new TQTabWidget(this); + layout->addWidget(tab); + + mTitleBarActions = new KTitleBarActionsConfig(false, mConfig, this, "TWin TitleBar Actions"); + mTitleBarActions->layout()->setMargin( KDialog::marginHint() ); + tab->addTab(mTitleBarActions, i18n("&Titlebar Actions")); + connect(mTitleBarActions, TQT_SIGNAL(changed(bool)), this, TQT_SLOT(moduleChanged(bool))); + + mWindowActions = new KWindowActionsConfig(false, mConfig, this, "TWin Window Actions"); + mWindowActions->layout()->setMargin( KDialog::marginHint() ); + tab->addTab(mWindowActions, i18n("Window Actio&ns")); + connect(mWindowActions, TQT_SIGNAL(changed(bool)), this, TQT_SLOT(moduleChanged(bool))); +} + +TDEActionsOptions::~TDEActionsOptions() +{ + delete mConfig; +} + +void TDEActionsOptions::load() +{ + mTitleBarActions->load(); + mWindowActions->load(); + emit TDECModule::changed( false ); +} + + +void TDEActionsOptions::save() +{ + mTitleBarActions->save(); + mWindowActions->save(); + + emit TDECModule::changed( false ); + // Send signal to twin + mConfig->sync(); + if ( !kapp->dcopClient()->isAttached() ) + kapp->dcopClient()->attach(); + kapp->dcopClient()->send("twin*", "", "reconfigure()", TQString("")); +} + + +void TDEActionsOptions::defaults() +{ + mTitleBarActions->defaults(); + mWindowActions->defaults(); +} + +void TDEActionsOptions::moduleChanged(bool state) +{ + emit TDECModule::changed(state); +} + +#include "main.moc" diff --git a/twin/kcmtwin/twinoptions/main.h b/twin/kcmtwin/twinoptions/main.h new file mode 100644 index 000000000..554b7b761 --- /dev/null +++ b/twin/kcmtwin/twinoptions/main.h @@ -0,0 +1,101 @@ +/* + * main.h + * + * Copyright (c) 2001 Waldo Bastian <[email protected]> + * + * Requires the Qt widget libraries, available at no cost at + * http://www.troll.no/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + + +#ifndef __MAIN_H__ +#define __MAIN_H__ + +#include <tqtabwidget.h> +#include <tdecmodule.h> + +class TDEConfig; +class KFocusConfig; +class KTitleBarActionsConfig; +class KWindowActionsConfig; +class KAdvancedConfig; +class KTranslucencyConfig; + +class KWinOptions : public TDECModule +{ + Q_OBJECT + +public: + + KWinOptions(TQWidget *parent, const char *name); + virtual ~KWinOptions(); + + void load(); + void save(); + void defaults(); + TQString quickHelp() const; + virtual TQString handbookSection() const; + + +protected slots: + + void moduleChanged(bool state); + + +private: + + TQTabWidget *tab; + + KFocusConfig *mFocus; + KTitleBarActionsConfig *mTitleBarActions; + KWindowActionsConfig *mWindowActions; + KMovingConfig *mMoving; + KAdvancedConfig *mAdvanced; + KTranslucencyConfig *mTranslucency; + + TDEConfig *mConfig; +}; + +class TDEActionsOptions : public TDECModule +{ + Q_OBJECT + +public: + + TDEActionsOptions(TQWidget *parent, const char *name); + virtual ~TDEActionsOptions(); + + void load(); + void save(); + void defaults(); + +protected slots: + + void moduleChanged(bool state); + + +private: + + TQTabWidget *tab; + + KTitleBarActionsConfig *mTitleBarActions; + KWindowActionsConfig *mWindowActions; + + TDEConfig *mConfig; +}; + +#endif diff --git a/twin/kcmtwin/twinoptions/mouse.cpp b/twin/kcmtwin/twinoptions/mouse.cpp new file mode 100644 index 000000000..8778d915e --- /dev/null +++ b/twin/kcmtwin/twinoptions/mouse.cpp @@ -0,0 +1,856 @@ +/* + * + * Copyright (c) 1998 Matthias Ettrich <[email protected]> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <tqlabel.h> +#include <tqcombobox.h> +#include <tqwhatsthis.h> +#include <tqlayout.h> +#include <tqvgroupbox.h> +#include <tqgrid.h> +#include <tqsizepolicy.h> +#include <tqbitmap.h> +#include <tqhgroupbox.h> +#include <tqtooltip.h> + +#include <dcopclient.h> +#include <tdelocale.h> +#include <tdeapplication.h> +#include <tdeconfig.h> +#include <kdialog.h> +#include <tdeglobalsettings.h> +#include <kseparator.h> + +#include <X11/X.h> +#include <X11/Xlib.h> +#include <X11/Xutil.h> + +#include <stdlib.h> + +#include "mouse.h" +#include "mouse.moc" + + +namespace { + +char const * const cnf_Max[] = { + "MaximizeButtonLeftClickCommand", + "MaximizeButtonMiddleClickCommand", + "MaximizeButtonRightClickCommand", +}; + +char const * const tbl_Max[] = { + "Maximize", + "Maximize (vertical only)", + "Maximize (horizontal only)", + "" }; + +TQPixmap maxButtonPixmaps[3]; + +void createMaxButtonPixmaps() +{ + char const * maxButtonXpms[][3 + 13] = { + {0, 0, 0, + "...............", + ".......#.......", + "......###......", + ".....#####.....", + "..#....#....#..", + ".##....#....##.", + "###############", + ".##....#....##.", + "..#....#....#..", + ".....#####.....", + "......###......", + ".......#.......", + "..............."}, + {0, 0, 0, + "...............", + ".......#.......", + "......###......", + ".....#####.....", + ".......#.......", + ".......#.......", + ".......#.......", + ".......#.......", + ".......#.......", + ".....#####.....", + "......###......", + ".......#.......", + "..............."}, + {0, 0, 0, + "...............", + "...............", + "...............", + "...............", + "..#.........#..", + ".##.........##.", + "###############", + ".##.........##.", + "..#.........#..", + "...............", + "...............", + "...............", + "..............."}, + }; + + TQString baseColor(". c " + TDEGlobalSettings::baseColor().name()); + TQString textColor("# c " + TDEGlobalSettings::textColor().name()); + for (int t = 0; t < 3; ++t) + { + maxButtonXpms[t][0] = "15 13 2 1"; + maxButtonXpms[t][1] = baseColor.ascii(); + maxButtonXpms[t][2] = textColor.ascii(); + maxButtonPixmaps[t] = TQPixmap(maxButtonXpms[t]); + maxButtonPixmaps[t].setMask(maxButtonPixmaps[t].createHeuristicMask()); + } +} + +} // namespace + +void KTitleBarActionsConfig::paletteChanged() +{ + createMaxButtonPixmaps(); + for (int b = 0; b < 3; ++b) + for (int t = 0; t < 3; ++t) + coMax[b]->changeItem(maxButtonPixmaps[t], t); + +} + +KTitleBarActionsConfig::KTitleBarActionsConfig (bool _standAlone, TDEConfig *_config, TQWidget * parent, const char *) + : TDECModule(parent, "kcmkwm"), config(_config), standAlone(_standAlone) +{ + TQString strWin1, strWin2, strWin3, strAllKey, strAll1, strAll2, strAll3; + TQVBoxLayout *layout = new TQVBoxLayout(this, 0, KDialog::spacingHint()); + TQGrid *grid; + TQGroupBox *box; + TQLabel *label; + TQString strMouseButton1, strMouseButton3, strMouseWheel; + TQString txtButton1, txtButton3, txtButton4; + TQStringList items; + bool leftHandedMouse = ( TDEGlobalSettings::mouseSettings().handed == TDEGlobalSettings::KMouseSettings::LeftHanded); + +/** Titlebar doubleclick ************/ + + TQHBoxLayout *hlayout = new TQHBoxLayout(layout); + + label = new TQLabel(i18n("&Titlebar double-click:"), this); + hlayout->addWidget(label); + TQWhatsThis::add( label, i18n("Here you can customize mouse click behavior when double clicking on the" + " titlebar of a window.") ); + + TQComboBox* combo = new TQComboBox(this); + combo->insertItem(i18n("Maximize")); + combo->insertItem(i18n("Maximize (vertical only)")); + combo->insertItem(i18n("Maximize (horizontal only)")); + combo->insertItem(i18n("Minimize")); + combo->insertItem(i18n("Shade")); + combo->insertItem(i18n("Lower")); + combo->insertItem(i18n("On All Desktops")); + combo->insertItem(i18n("Nothing")); + combo->setSizePolicy(TQSizePolicy(TQSizePolicy::MinimumExpanding, TQSizePolicy::Fixed)); + connect(combo, TQT_SIGNAL(activated(int)), TQT_SLOT(changed())); + hlayout->addWidget(combo); + coTiDbl = combo; + TQWhatsThis::add(combo, i18n("Behavior on <em>double</em> click into the titlebar.")); + + label->setBuddy(combo); + +/** Mouse Wheel Events **************/ + TQHBoxLayout *hlayoutW = new TQHBoxLayout(layout); + strMouseWheel = i18n("Titlebar wheel event:"); + label = new TQLabel(strMouseWheel, this); + hlayoutW->addWidget(label); + txtButton4 = i18n("Handle mouse wheel events"); + TQWhatsThis::add( label, txtButton4); + + // Titlebar and frame mouse Wheel + TQComboBox* comboW = new TQComboBox(this); + comboW->insertItem(i18n("Raise/Lower")); + comboW->insertItem(i18n("Shade/Unshade")); + comboW->insertItem(i18n("Maximize/Restore")); + comboW->insertItem(i18n("Keep Above/Below")); + comboW->insertItem(i18n("Move to Previous/Next Desktop")); + comboW->insertItem(i18n("Change Opacity")); + comboW->insertItem(i18n("Nothing")); + comboW->setSizePolicy(TQSizePolicy(TQSizePolicy::MinimumExpanding, TQSizePolicy::Fixed)); + connect(comboW, TQT_SIGNAL(activated(int)), TQT_SLOT(changed())); + hlayoutW->addWidget(comboW); + coTiAct4 = comboW; + TQWhatsThis::add(comboW, txtButton4); + label->setBuddy(comboW); + +/** Titlebar and frame **************/ + + box = new TQVGroupBox( i18n("Titlebar && Frame"), this, "Titlebar and Frame"); + box->layout()->setMargin(KDialog::marginHint()); + box->layout()->setSpacing(KDialog::spacingHint()); + layout->addWidget(box); + TQWhatsThis::add( box, i18n("Here you can customize mouse click behavior when clicking on the" + " titlebar or the frame of a window.") ); + + grid = new TQGrid(4, Qt::Vertical, box); + + + new TQLabel(grid); // dummy + + strMouseButton1 = i18n("Left button:"); + txtButton1 = i18n("In this row you can customize left click behavior when clicking into" + " the titlebar or the frame."); + + strMouseButton3 = i18n("Right button:"); + txtButton3 = i18n("In this row you can customize right click behavior when clicking into" + " the titlebar or the frame." ); + + if ( leftHandedMouse ) + { + tqSwap(strMouseButton1, strMouseButton3); + tqSwap(txtButton1, txtButton3); + } + + label = new TQLabel(strMouseButton1, grid); + TQWhatsThis::add( label, txtButton1); + + label = new TQLabel(i18n("Middle button:"), grid); + TQWhatsThis::add( label, i18n("In this row you can customize middle click behavior when clicking into" + " the titlebar or the frame.") ); + + label = new TQLabel(strMouseButton3, grid); + TQWhatsThis::add( label, txtButton3); + + + label = new TQLabel(i18n("Active"), grid); + label->setAlignment(AlignCenter); + TQWhatsThis::add( label, i18n("In this column you can customize mouse clicks into the titlebar" + " or the frame of an active window.") ); + + // Titlebar and frame, active, mouse button 1 + combo = new TQComboBox(grid); + combo->insertItem(i18n("Raise")); + combo->insertItem(i18n("Lower")); + combo->insertItem(i18n("Operations Menu")); + combo->insertItem(i18n("Toggle Raise & Lower")); + combo->insertItem(i18n("Nothing")); + connect(combo, TQT_SIGNAL(activated(int)), TQT_SLOT(changed())); + coTiAct1 = combo; + + txtButton1 = i18n("Behavior on <em>left</em> click into the titlebar or frame of an " + "<em>active</em> window."); + + txtButton3 = i18n("Behavior on <em>right</em> click into the titlebar or frame of an " + "<em>active</em> window."); + + // Be nice to left handed users + if ( leftHandedMouse ) tqSwap(txtButton1, txtButton3); + + TQWhatsThis::add(combo, txtButton1); + + // Titlebar and frame, active, mouse button 2 + + items << i18n("Raise") + << i18n("Lower") + << i18n("Operations Menu") + << i18n("Toggle Raise & Lower") + << i18n("Nothing") + << i18n("Shade"); + + combo = new TQComboBox(grid); + combo->insertStringList(items); + connect(combo, TQT_SIGNAL(activated(int)), TQT_SLOT(changed())); + coTiAct2 = combo; + TQWhatsThis::add(combo, i18n("Behavior on <em>middle</em> click into the titlebar or frame of an <em>active</em> window.")); + + // Titlebar and frame, active, mouse button 3 + combo = new TQComboBox(grid); + combo->insertStringList(items); + connect(combo, TQT_SIGNAL(activated(int)), TQT_SLOT(changed())); + coTiAct3 = combo; + TQWhatsThis::add(combo, txtButton3 ); + + txtButton1 = i18n("Behavior on <em>left</em> click into the titlebar or frame of an " + "<em>inactive</em> window."); + + txtButton3 = i18n("Behavior on <em>right</em> click into the titlebar or frame of an " + "<em>inactive</em> window."); + + // Be nice to left handed users + if ( leftHandedMouse ) tqSwap(txtButton1, txtButton3); + + label = new TQLabel(i18n("Inactive"), grid); + label->setAlignment(AlignCenter); + TQWhatsThis::add( label, i18n("In this column you can customize mouse clicks into the titlebar" + " or the frame of an inactive window.") ); + + items.clear(); + items << i18n("Activate & Raise") + << i18n("Activate & Lower") + << i18n("Activate") + << i18n("Shade") + << i18n("Operations Menu") + << i18n("Raise") + << i18n("Lower") + << i18n("Nothing"); + + combo = new TQComboBox(grid); + combo->insertStringList(items); + connect(combo, TQT_SIGNAL(activated(int)), TQT_SLOT(changed())); + coTiInAct1 = combo; + TQWhatsThis::add(combo, txtButton1); + + combo = new TQComboBox(grid); + combo->insertStringList(items); + connect(combo, TQT_SIGNAL(activated(int)), TQT_SLOT(changed())); + coTiInAct2 = combo; + TQWhatsThis::add(combo, i18n("Behavior on <em>middle</em> click into the titlebar or frame of an <em>inactive</em> window.")); + + combo = new TQComboBox(grid); + combo->insertStringList(items); + connect(combo, TQT_SIGNAL(activated(int)), TQT_SLOT(changed())); + coTiInAct3 = combo; + TQWhatsThis::add(combo, txtButton3); + +/** Maximize Button ******************/ + + box = new TQHGroupBox(i18n("Maximize Button"), this, "Maximize Button"); + box->layout()->setMargin(KDialog::marginHint()); + box->layout()->setSpacing(KDialog::spacingHint()); + layout->addWidget(box); + TQWhatsThis::add( box, + i18n("Here you can customize behavior when clicking on the maximize button.") ); + + TQString strMouseButton[] = { + i18n("Left button:"), + i18n("Middle button:"), + i18n("Right button:")}; + + TQString txtButton[] = { + i18n("Behavior on <em>left</em> click onto the maximize button." ), + i18n("Behavior on <em>middle</em> click onto the maximize button." ), + i18n("Behavior on <em>right</em> click onto the maximize button." )}; + + if ( leftHandedMouse ) // Be nice to lefties + { + tqSwap(strMouseButton[0], strMouseButton[2]); + tqSwap(txtButton[0], txtButton[2]); + } + + createMaxButtonPixmaps(); + for (int b = 0; b < 3; ++b) + { + if (b != 0) new TQWidget(box); // Spacer + + TQLabel * label = new TQLabel(strMouseButton[b], box); + TQWhatsThis::add( label, txtButton[b] ); + label ->setSizePolicy( TQSizePolicy( TQSizePolicy::Fixed, TQSizePolicy::Minimum )); + + coMax[b] = new ToolTipComboBox(box, tbl_Max); + for (int t = 0; t < 3; ++t) coMax[b]->insertItem(maxButtonPixmaps[t]); + connect(coMax[b], TQT_SIGNAL(activated(int)), TQT_SLOT(changed())); + connect(coMax[b], TQT_SIGNAL(activated(int)), coMax[b], TQT_SLOT(changed())); + TQWhatsThis::add( coMax[b], txtButton[b] ); + coMax[b]->setSizePolicy( TQSizePolicy( TQSizePolicy::Fixed, TQSizePolicy::Minimum )); + } + + connect(kapp, TQT_SIGNAL(tdedisplayPaletteChanged()), TQT_SLOT(paletteChanged())); + + layout->addStretch(); + + load(); +} + +KTitleBarActionsConfig::~KTitleBarActionsConfig() +{ + if (standAlone) + delete config; +} + +// do NOT change the texts below, they are written to config file +// and are not shown in the GUI +// they have to match the order of items in GUI elements though +const char* const tbl_TiDbl[] = { + "Maximize", + "Maximize (vertical only)", + "Maximize (horizontal only)", + "Minimize", + "Shade", + "Lower", + "OnAllDesktops", + "Nothing", + "" }; + +const char* const tbl_TiAc[] = { + "Raise", + "Lower", + "Operations menu", + "Toggle raise and lower", + "Nothing", + "Shade", + "" }; + +const char* const tbl_TiInAc[] = { + "Activate and raise", + "Activate and lower", + "Activate", + "Shade", + "Operations menu", + "Raise", + "Lower", + "Nothing", + "" }; + +const char* const tbl_Win[] = { + "Activate, raise and pass click", + "Activate and pass click", + "Activate", + "Activate and raise", + "" }; + +const char* const tbl_AllKey[] = { + "Meta", + "Alt", + "" }; + +const char* const tbl_All[] = { + "Move", + "Activate, raise and move", + "Toggle raise and lower", + "Resize", + "Raise", + "Lower", + "Minimize", + "Nothing", + "" }; + +const char* tbl_TiWAc[] = { + "Raise/Lower", + "Shade/Unshade", + "Maximize/Restore", + "Above/Below", + "Previous/Next Desktop", + "Change Opacity", + "Nothing", + "" }; + +const char* tbl_AllW[] = { + "Raise/Lower", + "Shade/Unshade", + "Maximize/Restore", + "Above/Below", + "Previous/Next Desktop", + "Change Opacity", + "Nothing", + "" }; + +static const char* tbl_num_lookup( const char* const arr[], int pos ) +{ + for( int i = 0; + arr[ i ][ 0 ] != '\0' && pos >= 0; + ++i ) + { + if( pos == 0 ) + return arr[ i ]; + --pos; + } + abort(); // should never happen this way +} + +static int tbl_txt_lookup( const char* const arr[], const char* txt ) +{ + int pos = 0; + for( int i = 0; + arr[ i ][ 0 ] != '\0'; + ++i ) + { + if( tqstricmp( txt, arr[ i ] ) == 0 ) + return pos; + ++pos; + } + return 0; +} + +void KTitleBarActionsConfig::setComboText( TQComboBox* combo, const char*txt ) +{ + if( combo == coTiDbl ) + combo->setCurrentItem( tbl_txt_lookup( tbl_TiDbl, txt )); + else if( combo == coTiAct1 || combo == coTiAct2 || combo == coTiAct3 ) + combo->setCurrentItem( tbl_txt_lookup( tbl_TiAc, txt )); + else if( combo == coTiInAct1 || combo == coTiInAct2 || combo == coTiInAct3 ) + combo->setCurrentItem( tbl_txt_lookup( tbl_TiInAc, txt )); + else if( combo == coTiAct4 ) + combo->setCurrentItem( tbl_txt_lookup( tbl_TiWAc, txt )); + else if( combo == coMax[0] || combo == coMax[1] || combo == coMax[2] ) + { + combo->setCurrentItem( tbl_txt_lookup( tbl_Max, txt )); + static_cast<ToolTipComboBox *>(combo)->changed(); + } + else + abort(); +} + +const char* KTitleBarActionsConfig::functionTiDbl( int i ) +{ + return tbl_num_lookup( tbl_TiDbl, i ); +} + +const char* KTitleBarActionsConfig::functionTiAc( int i ) +{ + return tbl_num_lookup( tbl_TiAc, i ); +} + +const char* KTitleBarActionsConfig::functionTiInAc( int i ) +{ + return tbl_num_lookup( tbl_TiInAc, i ); +} + +const char* KTitleBarActionsConfig::functionTiWAc(int i) +{ + return tbl_num_lookup( tbl_TiWAc, i ); +} + +const char* KTitleBarActionsConfig::functionMax( int i ) +{ + return tbl_num_lookup( tbl_Max, i ); +} + +void KTitleBarActionsConfig::load() +{ + config->setGroup("Windows"); + setComboText(coTiDbl, config->readEntry("TitlebarDoubleClickCommand","Shade").ascii()); + for (int t = 0; t < 3; ++t) + setComboText(coMax[t],config->readEntry(cnf_Max[t], tbl_Max[t]).ascii()); + + config->setGroup( "MouseBindings"); + setComboText(coTiAct1,config->readEntry("CommandActiveTitlebar1","Raise").ascii()); + setComboText(coTiAct2,config->readEntry("CommandActiveTitlebar2","Lower").ascii()); + setComboText(coTiAct3,config->readEntry("CommandActiveTitlebar3","Operations menu").ascii()); + setComboText(coTiAct4,config->readEntry("CommandTitlebarWheel","Nothing").ascii()); + setComboText(coTiInAct1,config->readEntry("CommandInactiveTitlebar1","Activate and raise").ascii()); + setComboText(coTiInAct2,config->readEntry("CommandInactiveTitlebar2","Activate and lower").ascii()); + setComboText(coTiInAct3,config->readEntry("CommandInactiveTitlebar3","Operations menu").ascii()); +} + +void KTitleBarActionsConfig::save() +{ + config->setGroup("Windows"); + config->writeEntry("TitlebarDoubleClickCommand", functionTiDbl( coTiDbl->currentItem() ) ); + for (int t = 0; t < 3; ++t) + config->writeEntry(cnf_Max[t], functionMax(coMax[t]->currentItem())); + + config->setGroup("MouseBindings"); + config->writeEntry("CommandActiveTitlebar1", functionTiAc(coTiAct1->currentItem())); + config->writeEntry("CommandActiveTitlebar2", functionTiAc(coTiAct2->currentItem())); + config->writeEntry("CommandActiveTitlebar3", functionTiAc(coTiAct3->currentItem())); + config->writeEntry("CommandInactiveTitlebar1", functionTiInAc(coTiInAct1->currentItem())); + config->writeEntry("CommandTitlebarWheel", functionTiWAc(coTiAct4->currentItem())); + config->writeEntry("CommandInactiveTitlebar2", functionTiInAc(coTiInAct2->currentItem())); + config->writeEntry("CommandInactiveTitlebar3", functionTiInAc(coTiInAct3->currentItem())); + + if (standAlone) + { + config->sync(); + if ( !kapp->dcopClient()->isAttached() ) + kapp->dcopClient()->attach(); + kapp->dcopClient()->send("twin*", "", "reconfigure()", TQString("")); + } +} + +void KTitleBarActionsConfig::defaults() +{ + setComboText(coTiDbl, "Shade"); + setComboText(coTiAct1,"Raise"); + setComboText(coTiAct2,"Lower"); + setComboText(coTiAct3,"Operations menu"); + setComboText(coTiAct4,"Nothing"); + setComboText(coTiInAct1,"Activate and raise"); + setComboText(coTiInAct2,"Activate and lower"); + setComboText(coTiInAct3,"Operations menu"); + for (int t = 0; t < 3; ++t) + setComboText(coMax[t], tbl_Max[t]); +} + + +KWindowActionsConfig::KWindowActionsConfig (bool _standAlone, TDEConfig *_config, TQWidget * parent, const char *) + : TDECModule(parent, "kcmkwm"), config(_config), standAlone(_standAlone) +{ + TQString strWin1, strWin2, strWin3, strAllKey, strAll1, strAll2, strAll3, strAllW; + TQVBoxLayout *layout = new TQVBoxLayout(this, 0, KDialog::spacingHint()); + TQGrid *grid; + TQGroupBox *box; + TQLabel *label; + TQString strMouseButton1, strMouseButton3; + TQString txtButton1, txtButton3; + TQStringList items; + bool leftHandedMouse = ( TDEGlobalSettings::mouseSettings().handed == TDEGlobalSettings::KMouseSettings::LeftHanded); + +/** Inactive inner window ******************/ + + box = new TQVGroupBox(i18n("Inactive Inner Window"), this, "Inactive Inner Window"); + box->layout()->setMargin(KDialog::marginHint()); + box->layout()->setSpacing(KDialog::spacingHint()); + layout->addWidget(box); + TQWhatsThis::add( box, i18n("Here you can customize mouse click behavior when clicking on an inactive" + " inner window ('inner' means: not titlebar, not frame).") ); + + grid = new TQGrid(3, Qt::Vertical, box); + + strMouseButton1 = i18n("Left button:"); + txtButton1 = i18n("In this row you can customize left click behavior when clicking into" + " the titlebar or the frame."); + + strMouseButton3 = i18n("Right button:"); + txtButton3 = i18n("In this row you can customize right click behavior when clicking into" + " the titlebar or the frame." ); + + if ( leftHandedMouse ) + { + tqSwap(strMouseButton1, strMouseButton3); + tqSwap(txtButton1, txtButton3); + } + + strWin1 = i18n("In this row you can customize left click behavior when clicking into" + " an inactive inner window ('inner' means: not titlebar, not frame)."); + + strWin3 = i18n("In this row you can customize right click behavior when clicking into" + " an inactive inner window ('inner' means: not titlebar, not frame)."); + + // Be nice to lefties + if ( leftHandedMouse ) tqSwap(strWin1, strWin3); + + label = new TQLabel(strMouseButton1, grid); + TQWhatsThis::add( label, strWin1 ); + + label = new TQLabel(i18n("Middle button:"), grid); + strWin2 = i18n("In this row you can customize middle click behavior when clicking into" + " an inactive inner window ('inner' means: not titlebar, not frame)."); + TQWhatsThis::add( label, strWin2 ); + + label = new TQLabel(strMouseButton3, grid); + TQWhatsThis::add( label, strWin3 ); + + items.clear(); + items << i18n("Activate, Raise & Pass Click") + << i18n("Activate & Pass Click") + << i18n("Activate") + << i18n("Activate & Raise"); + + TQComboBox* combo = new TQComboBox(grid); + combo->insertStringList(items); + connect(combo, TQT_SIGNAL(activated(int)), TQT_SLOT(changed())); + coWin1 = combo; + TQWhatsThis::add( combo, strWin1 ); + + combo = new TQComboBox(grid); + combo->insertStringList(items); + connect(combo, TQT_SIGNAL(activated(int)), TQT_SLOT(changed())); + coWin2 = combo; + TQWhatsThis::add( combo, strWin2 ); + + combo = new TQComboBox(grid); + combo->insertStringList(items); + connect(combo, TQT_SIGNAL(activated(int)), TQT_SLOT(changed())); + coWin3 = combo; + TQWhatsThis::add( combo, strWin3 ); + + +/** Inner window, titlebar and frame **************/ + + box = new TQVGroupBox(i18n("Inner Window, Titlebar && Frame"), this, "Inner Window, Titlebar and Frame"); + box->layout()->setMargin(KDialog::marginHint()); + box->layout()->setSpacing(KDialog::spacingHint()); + layout->addWidget(box); + TQWhatsThis::add( box, i18n("Here you can customize TDE's behavior when clicking somewhere into" + " a window while pressing a modifier key.")); + + grid = new TQGrid(5, Qt::Vertical, box); + + // Labels + label = new TQLabel(i18n("Modifier key:"), grid); + + strAllKey = i18n("Here you select whether holding the Meta key or Alt key " + "will allow you to perform the following actions."); + TQWhatsThis::add( label, strAllKey ); + + + strMouseButton1 = i18n("Modifier key + left button:"); + strAll1 = i18n("In this row you can customize left click behavior when clicking into" + " the titlebar or the frame."); + + strMouseButton3 = i18n("Modifier key + right button:"); + strAll3 = i18n("In this row you can customize right click behavior when clicking into" + " the titlebar or the frame." ); + + if ( leftHandedMouse ) + { + tqSwap(strMouseButton1, strMouseButton3); + tqSwap(strAll1, strAll3); + } + + label = new TQLabel(strMouseButton1, grid); + TQWhatsThis::add( label, strAll1); + + label = new TQLabel(i18n("Modifier key + middle button:"), grid); + strAll2 = i18n("Here you can customize TDE's behavior when middle clicking into a window" + " while pressing the modifier key."); + TQWhatsThis::add( label, strAll2 ); + + label = new TQLabel(strMouseButton3, grid); + TQWhatsThis::add( label, strAll3); + + label = new TQLabel(i18n("Modifier key + mouse wheel:"), grid); + strAllW = i18n("Here you can customize TDE's behavior when scrolling with the mouse wheel" + " in a window while pressing the modifier key."); + TQWhatsThis::add( label, strAllW); + + // Combo's + combo = new TQComboBox(grid); + combo->insertItem(i18n("Meta")); + combo->insertItem(i18n("Alt")); + connect(combo, TQT_SIGNAL(activated(int)), TQT_SLOT(changed())); + coAllKey = combo; + TQWhatsThis::add( combo, strAllKey ); + + items.clear(); + items << i18n("Move") + << i18n("Activate, Raise and Move") + << i18n("Toggle Raise & Lower") + << i18n("Resize") + << i18n("Raise") + << i18n("Lower") + << i18n("Minimize") + << i18n("Nothing"); + + combo = new TQComboBox(grid); + combo->insertStringList(items); + connect(combo, TQT_SIGNAL(activated(int)), TQT_SLOT(changed())); + coAll1 = combo; + TQWhatsThis::add( combo, strAll1 ); + + combo = new TQComboBox(grid); + combo->insertStringList(items); + connect(combo, TQT_SIGNAL(activated(int)), TQT_SLOT(changed())); + coAll2 = combo; + TQWhatsThis::add( combo, strAll2 ); + + combo = new TQComboBox(grid); + combo->insertStringList(items); + connect(combo, TQT_SIGNAL(activated(int)), TQT_SLOT(changed())); + coAll3 = combo; + TQWhatsThis::add( combo, strAll3 ); + + combo = new TQComboBox(grid); + combo->insertItem(i18n("Raise/Lower")); + combo->insertItem(i18n("Shade/Unshade")); + combo->insertItem(i18n("Maximize/Restore")); + combo->insertItem(i18n("Keep Above/Below")); + combo->insertItem(i18n("Move to Previous/Next Desktop")); + combo->insertItem(i18n("Change Opacity")); + combo->insertItem(i18n("Nothing")); + connect(combo, TQT_SIGNAL(activated(int)), TQT_SLOT(changed())); + coAllW = combo; + TQWhatsThis::add( combo, strAllW ); + + layout->addStretch(); + + load(); +} + +KWindowActionsConfig::~KWindowActionsConfig() +{ + if (standAlone) + delete config; +} + +void KWindowActionsConfig::setComboText( TQComboBox* combo, const char*txt ) +{ + if( combo == coWin1 || combo == coWin2 || combo == coWin3 ) + combo->setCurrentItem( tbl_txt_lookup( tbl_Win, txt )); + else if( combo == coAllKey ) + combo->setCurrentItem( tbl_txt_lookup( tbl_AllKey, txt )); + else if( combo == coAll1 || combo == coAll2 || combo == coAll3 ) + combo->setCurrentItem( tbl_txt_lookup( tbl_All, txt )); + else if( combo == coAllW ) + combo->setCurrentItem( tbl_txt_lookup( tbl_AllW, txt )); + else + abort(); +} + +const char* KWindowActionsConfig::functionWin( int i ) +{ + return tbl_num_lookup( tbl_Win, i ); +} + +const char* KWindowActionsConfig::functionAllKey( int i ) +{ + return tbl_num_lookup( tbl_AllKey, i ); +} + +const char* KWindowActionsConfig::functionAll( int i ) +{ + return tbl_num_lookup( tbl_All, i ); +} + +const char* KWindowActionsConfig::functionAllW(int i) +{ + return tbl_num_lookup( tbl_AllW, i ); +} + +void KWindowActionsConfig::load() +{ + config->setGroup( "MouseBindings"); + setComboText(coWin1,config->readEntry("CommandWindow1","Activate, raise and pass click").ascii()); + setComboText(coWin2,config->readEntry("CommandWindow2","Activate and pass click").ascii()); + setComboText(coWin3,config->readEntry("CommandWindow3","Activate and pass click").ascii()); + setComboText(coAllKey,config->readEntry("CommandAllKey","Alt").ascii()); + setComboText(coAll1,config->readEntry("CommandAll1","Move").ascii()); + setComboText(coAll2,config->readEntry("CommandAll2","Toggle raise and lower").ascii()); + setComboText(coAll3,config->readEntry("CommandAll3","Resize").ascii()); + setComboText(coAllW,config->readEntry("CommandAllWheel","Nothing").ascii()); +} + +void KWindowActionsConfig::save() +{ + config->setGroup("MouseBindings"); + config->writeEntry("CommandWindow1", functionWin(coWin1->currentItem())); + config->writeEntry("CommandWindow2", functionWin(coWin2->currentItem())); + config->writeEntry("CommandWindow3", functionWin(coWin3->currentItem())); + config->writeEntry("CommandAllKey", functionAllKey(coAllKey->currentItem())); + config->writeEntry("CommandAll1", functionAll(coAll1->currentItem())); + config->writeEntry("CommandAll2", functionAll(coAll2->currentItem())); + config->writeEntry("CommandAll3", functionAll(coAll3->currentItem())); + config->writeEntry("CommandAllWheel", functionAllW(coAllW->currentItem())); + + if (standAlone) + { + config->sync(); + if ( !kapp->dcopClient()->isAttached() ) + kapp->dcopClient()->attach(); + kapp->dcopClient()->send("twin*", "", "reconfigure()", TQString("")); + } +} + +void KWindowActionsConfig::defaults() +{ + setComboText(coWin1,"Activate, raise and pass click"); + setComboText(coWin2,"Activate and pass click"); + setComboText(coWin3,"Activate and pass click"); + setComboText(coAllKey,"Alt"); + setComboText (coAll1,"Move"); + setComboText(coAll2,"Toggle raise and lower"); + setComboText(coAll3,"Resize"); + setComboText(coAllW,"Nothing"); +} diff --git a/twin/kcmtwin/twinoptions/mouse.h b/twin/kcmtwin/twinoptions/mouse.h new file mode 100644 index 000000000..772bc5ac9 --- /dev/null +++ b/twin/kcmtwin/twinoptions/mouse.h @@ -0,0 +1,137 @@ +/* + * mouse.h + * + * Copyright (c) 1998 Matthias Ettrich <[email protected]> + * + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef __KKWMMOUSECONFIG_H__ +#define __KKWMMOUSECONFIG_H__ + +class TDEConfig; + +#include <tqwidget.h> +#include <tdecmodule.h> +#include <tqcombobox.h> +#include <tqtooltip.h> + + +class ToolTipComboBox: public TQComboBox +{ + Q_OBJECT + +public: + ToolTipComboBox(TQWidget * owner, char const * const * toolTips_) + : TQComboBox(owner) + , toolTips(toolTips_) {} + +public slots: + void changed() {TQToolTip::add( this, i18n(toolTips[currentItem()]) );} + +protected: + char const * const * toolTips; +}; + + + +class KTitleBarActionsConfig : public TDECModule +{ + Q_OBJECT + +public: + + KTitleBarActionsConfig( bool _standAlone, TDEConfig *_config, TQWidget *parent=0, const char* name=0 ); + ~KTitleBarActionsConfig( ); + + void load(); + void save(); + void defaults(); + +public slots: + void changed() { emit TDECModule::changed(true); } + +private: + TQComboBox* coTiDbl; + + TQComboBox* coTiAct1; + TQComboBox* coTiAct2; + TQComboBox* coTiAct3; + TQComboBox* coTiAct4; + TQComboBox* coTiInAct1; + TQComboBox* coTiInAct2; + TQComboBox* coTiInAct3; + + ToolTipComboBox * coMax[3]; + + TDEConfig *config; + bool standAlone; + + const char* functionTiDbl(int); + const char* functionTiAc(int); + const char* functionTiWAc(int); + const char* functionTiInAc(int); + const char* functionMax(int); + + void setComboText(TQComboBox* combo, const char* text); + const char* fixup( const char* s ); + +private slots: + void paletteChanged(); + +}; + +class KWindowActionsConfig : public TDECModule +{ + Q_OBJECT + +public: + + KWindowActionsConfig( bool _standAlone, TDEConfig *_config, TQWidget *parent=0, const char* name=0 ); + ~KWindowActionsConfig( ); + + void load(); + void save(); + void defaults(); + +public slots: + void changed() { emit TDECModule::changed(true); } + +private: + TQComboBox* coWin1; + TQComboBox* coWin2; + TQComboBox* coWin3; + + TQComboBox* coAllKey; + TQComboBox* coAll1; + TQComboBox* coAll2; + TQComboBox* coAll3; + TQComboBox* coAllW; + + TDEConfig *config; + bool standAlone; + + const char* functionWin(int); + const char* functionAllKey(int); + const char* functionAll(int); + const char* functionAllW(int); + + void setComboText(TQComboBox* combo, const char* text); + const char* fixup( const char* s ); +}; + +#endif + diff --git a/twin/kcmtwin/twinoptions/twinactions.desktop b/twin/kcmtwin/twinoptions/twinactions.desktop new file mode 100644 index 000000000..c1a2947a5 --- /dev/null +++ b/twin/kcmtwin/twinoptions/twinactions.desktop @@ -0,0 +1,233 @@ +[Desktop Entry] +Icon=kcmkwm +Type=Application +Exec=tdecmshell twinactions +X-DocPath=kcontrol/windowbehavior/index.html#action-actions + +X-TDE-ModuleType=Library +X-TDE-Library=twinoptions +X-TDE-FactoryName=twinactions + +Name=Actions +Name[af]=Aksies +Name[ar]=الأفعال +Name[be]=Дзеянні +Name[bg]=Действия +Name[bn]=কাজ +Name[br]=Oberoù +Name[bs]=Akcije +Name[ca]=Accions +Name[cs]=Činnosti +Name[csb]=Dzejaniô +Name[cy]=Gweithredoedd +Name[da]=Handlinger +Name[de]=Aktionen +Name[el]=Ενέργειες +Name[eo]=Agoj +Name[es]=Acciones +Name[et]=Tegevused +Name[eu]=Ekintzak +Name[fa]=کنشها +Name[fi]=Toiminnot +Name[fo]=Tiltøk +Name[fy]=Aksjes +Name[ga]=Gníomhartha +Name[gl]=Accións +Name[he]=פעולות +Name[hi]=क्रियाएँ +Name[hr]=Aktivnosti +Name[hu]=Műveletek +Name[is]=Aðgerðir +Name[it]=Azioni +Name[ja]=動作 +Name[ka]=ქცევა +Name[kk]=Амалдар +Name[km]=អំពើ +Name[ko]=동작 +Name[lo]=ແອບພີເຄຊັ້ນ +Name[lt]=Veiksmai +Name[lv]=Darbības +Name[mk]=Акции +Name[mn]=Үйлдлүүл +Name[ms]=Tindakan +Name[mt]=Azzjonijiet +Name[nb]=Handlinger +Name[nds]=Akschonen +Name[ne]=कार्य +Name[nl]=Acties +Name[nn]=Handlingar +Name[nso]=Dikgato +Name[pa]=ਕਾਰਵਾਈਆਂ +Name[pl]=Czynności +Name[pt]=Acções +Name[pt_BR]=Ações +Name[ro]=Acțiuni +Name[ru]=Действия +Name[rw]=Ibikorwa +Name[se]=Doaimmat +Name[sk]=Akcie +Name[sl]=Dejanja +Name[sr]=Акције +Name[sr@Latn]=Akcije +Name[ss]=Tento +Name[sv]=Åtgärder +Name[ta]=செயல்கள் +Name[te]=చర్యలు +Name[tg]=Амалиёт +Name[th]=การกระทำ +Name[tr]=Eylemler +Name[tt]=Ğämällär +Name[uk]=Дії +Name[uz]=Amallar +Name[uz@cyrillic]=Амаллар +Name[ven]=Nyito +Name[vi]=Gõ phím +Name[wa]=Accions +Name[xh]=Iintshukumo +Name[zh_CN]=动作 +Name[zh_TW]=動作 +Name[zu]=Iminyakazo + +Comment=Configure keyboard and mouse settings +Comment[af]=Konfigureer sleutelbord en muis instellings +Comment[ar]=إعداد لوحة المفاتيح و الفأرة +Comment[be]=Настаўленні клавіятуры і мышы +Comment[bg]=Настройване на действията с клавиатурата и мишката +Comment[bn]=কীবোর্ড এবং মাউস সেটিংস কনফিগার করুন +Comment[br]=Kefluniañ ar stokellaoueg hag al logodenn +Comment[bs]=Podesite postavke tastature i miša +Comment[ca]=Aquí podeu configurar l'arranjament del teclat i del ratolí +Comment[cs]=Nastavení klávesnice a myši +Comment[csb]=Kònfigùracëjô nastôwù klawiaturë ë mëszë +Comment[cy]=Ffurfweddu gosodiadau bysellfwrdd a llygoden +Comment[da]=Indstil tastatur og museopsætning +Comment[de]=Einstellungen für Tastatur und Maus festlegen +Comment[el]=Ρυθμίστε το πληκτρολόγιο και το ποντίκι +Comment[eo]=Agordu la klavaron kaj la muson +Comment[es]=Configuración del teclado y del ratón +Comment[et]=Klaviatuuri ja hiire seadistamine +Comment[eu]=Konfiguratu teklatua eta saguaren ezarpenak +Comment[fa]=پیکربندی تنظیمات صفحه کلید و موشی +Comment[fi]=Muokkaa näppäimistön ja hiiren asetuksia +Comment[fr]=Configuration des réglages du clavier et de la souris +Comment[fy]=Hjir kinne jo de ynstellings fan toetseboerd en mûs ynstelle +Comment[ga]=Cumraigh socruithe an mhéarchláir agus na luiche +Comment[gl]=Configurar as opcións do teclado e o rato +Comment[he]=שינוי הגדרות המקלדת והעכבר +Comment[hi]=कुंजीपट तथा माउस विन्यास कॉन्फ़िगर करें +Comment[hr]=Konfiguriranje postavki tipkovnice i miša +Comment[hu]=A billentyűzet- és egérkezelés beállításai +Comment[is]=Stilla lyklaborð og mús +Comment[it]=Configura le impostazioni della tastiera e del mouse +Comment[ja]=キーボードとマウスの設定 +Comment[ka]=კლავიატურის და თაგუნას პარამეტრების კონფიგურაცია +Comment[kk]=Перенетақта мен тышқанның параметрлерін баптау +Comment[km]=កំណត់រចនាសម្ព័ន្ធការកំណត់ក្ដារចុច និងកណ្ដុរ +Comment[ko]=키보드와 마우스 설정 +Comment[lo]=ປັບແຕ່ງການຕັ້ງຄ່າລະບົບດັດສະນີ +Comment[lt]=Konfigūruoti klaviatūros ir pelės nustatymus +Comment[lv]=Šeit Jūs varat konfigurēt tastatūras un peles parametrus +Comment[mk]=Конфигурирајте ги поставувањата на тастатурата и глушецот +Comment[mn]=Гар ба Хулгана тохируулах +Comment[mt]=Ikkonfigura t-tastiera u l-maws +Comment[nb]=Innstillinger for tastatur og mus +Comment[nds]=Tastatuur un Muus instellen +Comment[ne]=कुञ्जीपाटी र माउस सेटिङ कन्फिगर गर्नुहोस् +Comment[nl]=Hier kunt u de instellingen van toetsenbord en muis instellen +Comment[nn]=Innstillingar for tastatur og mus +Comment[nso]=Beakanya dipeakanyo tsa legotlo le keyboard +Comment[pa]=ਕੀਬੋਰਡ ਅਤੇ ਮਾਊਸ ਸੈਟਿੰਗ ਦੀ ਸੰਰਚਨਾ +Comment[pl]=Konfiguracja ustawień klawiatury i myszy +Comment[pt]=Configuração das opções do teclado e do rato +Comment[pt_BR]=Configura as preferências de teclado e mouse +Comment[ro]=Configurează setările de tastatură și mouse +Comment[ru]=Настройка параметров клавиатуры и мыши +Comment[rw]= Kuboneza mwandikisho n'amagenamiterere imbeba +Comment[se]=Heivet boallobeavddi ja sáhpána +Comment[sk]=Nastavenie klávesnice a myši +Comment[sl]=Nastavitve tipkovnice in miške +Comment[sr]=Подешавање поставки тастатуре и миша +Comment[sr@Latn]=Podešavanje postavki tastature i miša +Comment[sv]=Anpassa inställningar för tangentbord och mus +Comment[ta]=விசைப்பலகையையும் சுட்டியையும் வடிவமை +Comment[tg]=Танзимоти забонак ва муш +Comment[th]=ปรับแต่งค่าแป้นพิมพ์และเม้าส์ +Comment[tr]=Klavye ve fare ayarlarını buradan yapabilirsiniz +Comment[tt]=Töylek belän küse eşläwen caylaw +Comment[uk]=Налаштування клавіатури та мишки +Comment[uz]=Sichqoncha va tugmatagni moslash +Comment[uz@cyrillic]=Сичқонча ва тугматагни мослаш +Comment[ven]=Dzudzanyani mavhekanyele a mausu na khiibodo +Comment[vi]=Cấu hình bàn phím và chuột +Comment[wa]=Apontiaedjes del sori eyet del taprece +Comment[xh]=Qwalasela izicwangciso zebhodi yezitshixho neze mouse +Comment[zh_CN]=配置键盘和鼠标设置 +Comment[zh_TW]=設定鍵盤與滑鼠的設定值 +Comment[zu]=Hlanganisela izilungiselelo zebhodi yokhiye kanye neze-mouse + +Keywords=shade;maximise;maximize;minimize;minimise;lower;operations menu;titlebar;resize; +Keywords[ar]=ظلل;كبر كبّر;صغر صغّر;خفض;عمليات;قائمة;تغيير القياس;تظليل;تكبير;تصغير;الى الأسفل;قائمة العمليات;شريط العنوان;تحجيم; +Keywords[be]=Згарнуць;Найбольшыць;Найменшыць;Змяніць памер;Меню аперацыяў;Меню дзеянняў;Загаловак;shade;maximise;maximize;minimize;minimise;lower;operations menu;titlebar;resize; +Keywords[bg]=сгъване; максимизиране; минимизиране; заглавие; промяна; размер; shade; maximise; maximize; minimize; minimise; lower; operations menu; titlebar; resize; +Keywords[ca]=plegar;maximitzar;minimitzar;passar al davant;operaciones del menú; barra del títol;redimensionar; +Keywords[cs]=zarolování;maximalizace;minimalizace;nabídka činností;titulek;změna velikosti; +Keywords[csb]=ceniô;maksymalizacëjô;minimalizacëjô;niżi;menu dzejaniów;titlowô lëstew;zmiana miarë; +Keywords[cy]=arliwio;ehangu;lleihau;iselhau;dewislen gweithrediadau; bar y teitl; ail-feintio; +Keywords[da]=skyg;maksimér;minimér;sænk;operationsmenu;titellinje;ændr størrelse; +Keywords[de]=Fensterheber;Maximieren;Minimieren;Nach oben/unten;Titelleiste;Größe ändern; +Keywords[el]=τύλιγμα;μεγιστοποίηση;μεγιστοποίηση;ελαχιστοποίηση;ελαχιστοποίηση;κατέβασμα;μενού χειρισμών;μπάρα τίτλου;αλλαγή μεγέθους; +Keywords[eo]=maksimigi;minimumigi;menuo;titolo;grandecŝanĝi;grandigi; +Keywords[es]=recoger;maximizar;minimizar;pasar al frente;pasar atrás;operaciones;menñu barra de título;redimensionarmenu;titlebar;resize; +Keywords[et]=varjamine;maksimeerimine;minimeerimine;toimingute menüü;langetamine;tõstmine;tiitliriba;suuruse muutmine; +Keywords[eu]=bildu;maximizatu;minimizatu;atzera eraman;eragiketak; menua;titulu-barra;tamaina aldatu; +Keywords[fa]=سایه، بیشینهسازی، بیشینهسازی، کمینهسازی، کمینهسازی، پایینتر، گزینگان عملیات، میله عنوان، تغییر اندازه; +Keywords[fi]=varjosta;suurenna;pienennä;laske;toimintovalikko;otsikkopalkki;vaihda kokoa; +Keywords[fr]=fondu;maximiser;enrouler;réduire;abaisser; menu des opérations;barre de titre;redimensionner; +Keywords[fy]=shade;oprollen;maximaliseren;minimaliseren;naar achtergrond;lower;menu;titelbalk;grootte wijzigen;oprôlje;maksimalisearje;minimalisearje;nei eftergrûn;grutte; +Keywords[ga]=scáthaigh;uasmhéadaigh;íosmhéadaigh;íoslaghdaigh;laghdaigh;roghchlár oibríochta;barra teidil;athraigh méid; +Keywords[gl]=sombra;maximizar;maximizar;minimizar;baixar;menú de operacións;barra de título;redimensionar; +Keywords[he]=גלילה;הגדלה;מזעור;שליחה לרקע;תפריט פעולות;שורת כותרת;שינוי גודל;shade;maximise;maximize;minimize;minimise;lower;operations menu;titlebar;resize; +Keywords[hi]=शेड;अधिकतम;बड़ा;न्यूनतम;छोटा;नीचे;ऑपरेशन्स मेन्यू;शीर्षक-पट्टी;नयाआकार; +Keywords[hr]=shade;maximise;maximize;minimize;minimise;lower;operations menu;titlebar;resize;sjena;maksimiziranje;minimiziranje;postupci izbornika;naslov;naslovna traka;promjena veličine; +Keywords[hu]=felgördítés;maximalizálás;maximalizált;minimalizálás;minimalizált;hátraengedés;műveletek menü;címsor;átméretezés; +Keywords[is]=rúlla upp;skyggja;hámarka;lágmarka;sökkva;aðgerðavalmynd; titilrönd;breyta stærð; +Keywords[it]=arrotola;massimizza;ingrandisci;minimizza;alza;abbassa;menu operazioni; barra del titolo;titolo;ridimensiona;sposta; +Keywords[ja]=シェード;最大化;最小化;後面へ;操作メニュー;タイトルバー;サイズ変更;リサイズ; +Keywords[km]=ស្រមោល;ពង្រីកអតិបរមា;បង្រួមអប្បបរមា;បន្ទាប់ចុះក្រោម;ម៉ឺនុយប្រតិបត្តិការ;របារចំណងជើង;ប្ដូរទំហំ; +Keywords[lt]=shade;maximise;maximize;minimize;minimise;lower;operations menu;titlebar;resize; išdidinti;sumažinti;paslėpti; operacijų meniu;antraštės juosta;pakeisti dydį; +Keywords[lv]=ēnot;maksimizēt;maksimizē;minimizet;minimizē;zemāks;darbības izvēlne;virsraksta josla;mainīt izmēru; +Keywords[mk]=shade;maximise;maximize;minimize;minimise;lower;operations menu;titlebar;resize;засени;рашири;спушти;мени со операции;насловна лента;промени големина; +Keywords[mn]=Цонхны сүүдэр;Томсгох;Жижигсгэх;Дээшээ/доошоо; Толгойн самбар;Хэмжээ өөрчилөх; Үйлдэл цэс; +Keywords[mt]=shade;maximise;maximize;minimize;minimise;lower;operations menu;titlebar;resize;massimizza;minimma;baxxi;ċekken;kabbar;daqqas; +Keywords[nb]=rulle opp;maksimere;minimere;endre størrelse;operasjoner;meny;tittel;skalere;vindu; tittellinje; +Keywords[nds]=inrullen;maximeren;minimeren;utrullen;Akschonenmenü;Titelbalken;Grött ännern; +Keywords[ne]=छायाँ; बढाउनु; बढाउनु; घटाउनु; घटाउनु;भन्दा तल; सञ्चालन मेनु; शीर्षकपट्टी; रिसाइज; +Keywords[nl]= shade;oprollen;maximaliseren;minimaliseren;naar achtergrond;lower;menu;tibelbalk;grootte wijzigen; +Keywords[nn]=rull opp;maksimer;minimer;senk;hev;operasjonsmeny;tittellinje;endra storleik;vindauge; +Keywords[nso]=ntshofatsa;oketsa;oketsa;fokotsa;fokotsa;isa fase;menu wa diphethagatso;bar ya leina;popoleswa; +Keywords[pa]=shade;maximise;maximize;minimize;minimise;lower;operations menu;titlebar;resize;ਨਿਊਨਤਮ;ਅਧਿਕਤਮ;ਕਾਰਵਾਈ ਮੇਨੂ;ਮੁੜ-ਅਕਾਰ; +Keywords[pl]=cień;maksymalizacja;minimalizacja;niżej;menu działań;belka tutułowa; zmiana rozmiaru; +Keywords[pt]=enrolar;maximizar;minimizar;baixar;menu de operações;barra de título;dimensionar; +Keywords[pt_BR]=esconder;maximizar;minimizar;menor;menu de operações;barra de operações;redimensionar; +Keywords[ro]=derulare;maximizare;minimizare;meniul de operații;bara de titlu;redimensionare; +Keywords[rw]=igicucu;kugira kinini;kugira gito;kugira gito;ntoya;ibikubiyemo by'ibikorwa;umwanyabikoresho;ihindurangero; +Keywords[se]=rulle bajáš;maksimere;minimere;vuolit;dáhpáhusat;fállu;fálut;namahusholga;namahus;skálere; +Keywords[sk]=zabalenie;maximalizácia;minimalizácia;presun dozadu;presun dopredu;operácie menu;titulok;zmena veľkosti; +Keywords[sl]=zvij;raztegni;povečaj;pomanjšaj;razpni;menu operacij;naslovna vrstica;velikost; +Keywords[sr]=shade;maximise;maximize;minimize;minimise;lower;operations menu;titlebar;resize;намотавање;максимизуј;минимизуј;ниже;мени операција;насловна линија;промена величине; +Keywords[sr@Latn]=shade;maximise;maximize;minimize;minimise;lower;operations menu;titlebar;resize;namotavanje;maksimizuj;minimizuj;niže;meni operacija;naslovna linija;promena veličine; +Keywords[sv]=rulla upp;maximera;minimera;sänk;åtgärdsmeny;namnlist;ändra storlek; +Keywords[ta]=நிழல்; பெரிதாக்கு;பெரிதாக்கு;சிறிதாக்கு; சிறிதாக்கு; குறைந்த;செயல்கள் பட்டி;தலைப்பு பட்டி; அளவை மாற்று; +Keywords[th]=พับเก็บ;ขยายเต็มจอ;ย่อเล็กสุด;อยู่ด้านล่าง;เมนูปฏิบัติการ;แถบหัวเรื่อง;ปรับขนาด; +Keywords[tr]=topla;küçült;büyüt;indir;işlemler;araç çubuğu; +Keywords[tt]=shade;maximise;maximize;minimize;minimise;lower;operations saylaq;titlebar;resize; +Keywords[uk]=згорнути;мінімізувати;максимізувати;опустити; меню операцій;смужка титулу;зміна розміру; +Keywords[uz]=soyalash;yoyish;yigʻish;orqaga;amallar menyusi;sarlavha;resize; +Keywords[uz@cyrillic]=соялаш;ёйиш;йиғиш;орқага;амаллар менюси;сарлавҳа;resize; +Keywords[ven]=kovhekana;engedza;engedza;fhungudza;fhungudza;fhasi;mashumele a menu; bara ya thoho;uitulula saizi; +Keywords[vi]=cuốn;phóng to;phóng to;thu nhỏ;thu nhỏ;hạ thấp;các thao tác trên thực đơn;tên thanh;thay đổi cỡ; +Keywords[wa]=ombe;ombion;å pus grand;; pus ptit;djivêyes des operåcions;bår di tite;candjî li grandeu; +Keywords[xh]=umthunzi;yandisa;yandisa;ncipisa nciphisa;yehlisa;menu zemisebenzi;iba yewonga;yenza ubungakanani kwakhona; +Keywords[zh_CN]=shade;maximise;maximize;minimize;minimise;lower;operations menu;titlebar;resize;卷起;最大化;最小化;降低;操作菜单;标题栏;缩放; +Keywords[zh_TW]=shade;maximise;maximize;minimize;minimise;lower;operations menu;titlebar;resize;收起;最大化;最小化;降下;操作選單;標題列;重設大小; +Keywords[zu]=umthunzi;khulisa;khulisa;nciphisa;nciphisa;okungezansi; imenu yemisebenzi;ibha yesihloko;shintsha usayizi; diff --git a/twin/kcmtwin/twinoptions/twinadvanced.desktop b/twin/kcmtwin/twinoptions/twinadvanced.desktop new file mode 100644 index 000000000..efd12606a --- /dev/null +++ b/twin/kcmtwin/twinoptions/twinadvanced.desktop @@ -0,0 +1,232 @@ +[Desktop Entry] +Icon=kcmkwm +Type=Application +Exec=tdecmshell twinadvanced +X-DocPath=kcontrol/windowbehavior/index.html#action-advanced + +X-TDE-ModuleType=Library +X-TDE-Library=twinoptions +X-TDE-FactoryName=twinadvanced + +Name=Advanced +Name[af]=Gevorderde +Name[ar]=متقدم +Name[be]=Адмысловыя +Name[bg]=Допълнителни +Name[bn]=অগ্রসর +Name[br]=Barek +Name[bs]=Napredno +Name[ca]=Avançat +Name[cs]=Pokročilé +Name[csb]=Awansowóné +Name[cy]=Uwch +Name[da]=Avanceret +Name[de]=Erweitert +Name[el]=Προχωρημένα +Name[eo]=Pliaj +Name[es]=Avanzado +Name[et]=Muu +Name[eu]=Aurreratua +Name[fa]=پیشرفته +Name[fi]=Lisäasetukset +Name[fo]=Tilkomið +Name[fr]=Avancé +Name[fy]=Avansearre +Name[ga]=Casta +Name[gl]=Avanzado +Name[he]=מתקדם +Name[hi]=विस्तृत +Name[hr]=Napredno +Name[hu]=Speciális +Name[is]=Ítarlegt +Name[it]=Avanzate +Name[ja]=詳細 +Name[ka]=დამატებით +Name[kk]=Қосымша +Name[km]=កម្រិតខ្ពស់ +Name[ko]=고급 +Name[lo]=ັຝຣັ່ງ +Name[lt]=Sudėtingiau +Name[lv]=Paplašināts +Name[mk]=Напредни +Name[mn]=Өргөтгөсөн +Name[ms]=Lanjutan +Name[mt]=Avvanzat +Name[nb]=Avansert +Name[nds]=Verwiedert +Name[ne]=उन्नत +Name[nl]=Geavanceerd +Name[nn]=Avansert +Name[nso]=Beetswepele +Name[pa]=ਤਕਨੀਕੀ +Name[pl]=Zaawansowane +Name[pt]=Avançado +Name[pt_BR]=Avançado +Name[ro]=Avansat +Name[ru]=Дополнительно +Name[rw]=Bihanitse +Name[se]=Viiddiduvvon +Name[sk]=Pokročilé +Name[sl]=Napredno +Name[sr]=Напредно +Name[sr@Latn]=Napredno +Name[ss]=Sembili +Name[sv]=Avancerat +Name[ta]=உயர்நிலை +Name[te]=ఆధునిక +Name[tg]=Пешрафта +Name[th]=เพิ่มเติม +Name[tr]=Gelişmiş +Name[tt]=Kiñäytep +Name[uk]=Додатково +Name[uz]=Qoʻshimcha +Name[uz@cyrillic]=Қўшимча +Name[ven]=Zwa khwinesa +Name[vi]=Nâng cao +Name[wa]=Sipepieus +Name[xh]=Ebhekisa phambili +Name[zh_CN]=高级 +Name[zh_TW]=進階 +Name[zu]=Okwezinga eliphezulu + +Comment=Configure advanced window management features +Comment[af]=Konfigureer gevorderde venster bestuuring funksies +Comment[ar]=تهيئة ميزات النوافذ المتقدمة +Comment[be]=Настаўленне адмысловых здольнасцяў кіравання вокнамі +Comment[bg]=Настройване допълнителните параметри на прозорците +Comment[bn]=উইণ্ডো ম্যানেজমেন্টের ক্ষুদ্রাতিক্ষুদ্র বৈশিষ্ট্য কনফিগার করুন +Comment[bs]=Podesite napredne mogućnosti upravljanja prozorima +Comment[ca]=Aquí podeu configurar les característiques avançades de la gestió de finestres +Comment[cs]=Nastavení pokročilých vlastností správce oken +Comment[csb]=Kònfigùracëjô awansowónëch òptacëji sprôwianiô òknama +Comment[cy]=Ffurfweddu Nodweddion Uwch Trefnu Ffenestri +Comment[da]=Indstil avancerede vindueshåndteringsegenskaber +Comment[de]=Erweiterte Fensterverwaltung einrichten +Comment[el]=Ρυθμίστε προχωρημένα χαρακτηριστικά της διαχείρισης παραθύρων +Comment[eo]=Agordu la pli bonajn fenestroadministrilecojn +Comment[es]=Configuración de las propiedades avanzadas del gestor de ventanas +Comment[et]=Aknahalduri seadistamine +Comment[eu]=Konfiguratu leiho kudeaketaren ezaugarri aurreratuak +Comment[fa]=پیکربندی ویژگیهای مدیریت پنجرۀ پیشرفته +Comment[fi]=Muokkaa ikkunoinnin ominaisuuksien lisäasetuksia +Comment[fr]=Configuration des fonctionnalités de gestion avancée des fenêtres +Comment[fy]=Hjir kinne jo de avansearre finsterbehearmooglikheden ynstelle +Comment[ga]=Cumraigh ardghnéithe bhainisteoireacht na bhfuinneog +Comment[gl]=Configurar as características avanzadas da xestión de fiestras +Comment[he]=שינוי הגדרות מתקדמות של ניהול חלונות +Comment[hi]=विस्तृत विंडो प्रबंधन विशेषता कॉन्फ़िगर करें +Comment[hr]=Konfiguriranje naprednih svojstava upravitelja prozora +Comment[hu]=Az ablakkezelés speciális beállításai +Comment[is]=Stilla ítarlegri hegðan setustjóra +Comment[it]=Configura le funzioni avanzate del gestore delle finestre +Comment[ja]=ウィンドウ管理機能の詳細設定 +Comment[ka]=ფანჯრების მენეჯერის დამატებითი ფუნქციების კონფიგურაცია +Comment[kk]=Терезе басқаруының қосымша параметрлерін баптау +Comment[km]=កំណត់រចនាសម្ព័ន្ធលក្ខណៈពិសេសការគ្រប់គ្រងបង្អួចកម្រិតខ្ពស់ +Comment[ko]=고급 창 관리자 기능 설정하기 +Comment[lo]=ທ່ານສາມາດປັບແຕ່ງການທຳງານຂອງເຄື່ອງມືຈັດການເຊສຊົນໄດ້ທີ່ນີ້ +Comment[lt]=Konfigūruoti sudėtingesnes langų tvarkymo savybes +Comment[lv]=Šeit Jūs varat konfigurēt logu pārvaldīšanas iespējas +Comment[mk]=Конфигурирајте ги напредните можности за менаџмент на прозорците +Comment[mn]=Өргөтгөсөн цонхны удирдлага тохируулах +Comment[mt]=Setings avvanzati tal-immaniġġjar tal-windows +Comment[nb]=Tilpass avansert vindusbehandling +Comment[nds]=Verwiederte Finsterinstellen +Comment[ne]=उन्नत सञ्झ्याल व्यवस्थापन आकृति कन्फिगर गर्नुहोस् +Comment[nl]=Hier kunt u de geavanceerde vensterbeheermogelijkheden instellen +Comment[nn]=Set opp avanserte vindaugshandsamarfunksjonar +Comment[nso]=Beakanya dika tseo di beetswego pele tsa taolo ya window +Comment[pa]=ਤਕਨੀਕੀ ਝਰੋਖਾ ਪਰਬੰਧਨ ਫੀਚਰ ਸੰਰਚਨਾ +Comment[pl]=Konfiguracja zaawansowanych opcji zarządzania oknami +Comment[pt]=Configuração das funcionalidades de gestão de janelas avançadas +Comment[pt_BR]=Configura as características avançadas de gerenciamento de janela +Comment[ro]=Configurează caracteristicile de management al ferestrelor +Comment[ru]=Настройка дополнительных функций менеджера окон +Comment[rw]=Kuboneza ibijyanye n'ubuyobozi buhanitse bw'idirishya +Comment[se]=Heivet viiddiduvvon lásegieđahanfunkšuvnnaid +Comment[sk]=Nastavenie pokročilých možností správy okien +Comment[sl]=Nastavitve dodatnih možnosti upravljanja oken +Comment[sr]=Подешавање напредних могућности управљања прозорима +Comment[sr@Latn]=Podešavanje naprednih mogućnosti upravljanja prozorima +Comment[sv]=Anpassa avancerade fönsterhanteringsfunktioner +Comment[ta]=மேம்பட்ட சாளர மேலாளரின் தன்மைகளை வடிவமை +Comment[tg]=Танзими мудирияти пешрафтаи тирезаҳо +Comment[th]=ปรับแต่งคุณสมบัติเพิ่มเติมของการจัดการหน้าต่าง +Comment[tr]=Gelişmiş pencere yönetim özelliklerini yapılandır +Comment[tt]=Täräzä idäräçeneñ östämä çaraların caylaw +Comment[uk]=Налаштування додаткових можливостей керування вікнами +Comment[uz]=Oyna boshqaruvning koʻshimcha imkoniyatlarini moslash +Comment[uz@cyrillic]=Ойна бошқарувнинг кўшимча имкониятларини мослаш +Comment[ven]=Dzudzanyani zwitenwa zwa vhulanguli ha khwinesa +Comment[vi]=Cấu hình các tính năng quản lý cửa sổ nâng cao +Comment[wa]=Apontiaedje des spepieusès fonccionålités do manaedjaedje des purneas +Comment[xh]=Qwalasela imisebenzi esemqoka ebhekisa phambili yophatho lwe window +Comment[zh_CN]=配置高级窗口管理特性 +Comment[zh_TW]=設定進階視窗管理功能 +Comment[zu]=Hlanganisela amalungu okuphathwa kwe-window yezinga eliphezulu + +Keywords=shading;border;hover;active borders; +Keywords[af]=shading;border;hover;active grense; +Keywords[ar]=shading;border;hover;active borders;تظليل;حافة;الحواف النشطة; +Keywords[be]=Згортванне;Мяжа;Актыўныя межы;Актыўныя краі;shading;border;hover;active borders; +Keywords[bg]=рамка; сянка; фокус; активиране; shading; border; hover; active borders; +Keywords[ca]=plegat;vora;desplegat automàtic;vores actives; +Keywords[cs]=zarolování;vyrolování;okraj;přejezd myší;aktivní okraje; +Keywords[csb]=cenienié;grańce;przesëwanié nad;aktiwné grańce; +Keywords[cy]=arliwio;ymyl;hofran;ymylon weithgar; +Keywords[da]=skygning;kant;svæv;aktive kanter; +Keywords[de]=Umrandung;Aktive Ränder;Schweben;Fensterheber; +Keywords[el]=τύλιγμα;περίγραμμα;hover;ενεργά όρια; +Keywords[eo]=bordo;ombro;ŝvebo; +Keywords[es]=recogiendo;borde;ratón sobre;bordes activos; +Keywords[et]=varjamine;piire;hover;aktiivsed piirded; +Keywords[eu]=biltzen;ertza;gainean;ertz aktiboak; +Keywords[fa]=سایهزنی، لبه، پلکیدن، لبههای فعال; +Keywords[fi]=varjostus;kehys;kellunta;aktiiviset kehykset; +Keywords[fr]=bordures;cacher;couvrir;bordures actives; +Keywords[fy]=oprollen;oprôlje;afrollen;ôfrôlje;hoover;actieve randen;aktive rânen;randen magnetisch;magnetische randen; +Keywords[ga]=scáthú;imlíne;foluain;imlínte beo; +Keywords[gl]=sombra;beira;beiras activas;flotar; +Keywords[he]=גלילה;מסגרת;גבול;ריחוף;גבולות פעילים;shading;border;hover;active borders; +Keywords[hi]=शेडिंग;किनारा;हावर;सक्रिय किनारे; +Keywords[hr]=shading;border;hover;active borders;osjenčavanje;obrubi;lebdjeće;aktivni obrubi; +Keywords[hu]=árnyékolás;szegély;lebegés;aktív szegélyek; +Keywords[is]=rúlla upp;skyggja;rammi;svif;hover;virkir rammar; +Keywords[it]=arrotola;bordi;passaggio del mouse;bordi attivi; +Keywords[ja]=畳む;境界;復元;アクティブ境界; +Keywords[km]=ស្រមោល;ស៊ុម;សំកាំង;ស៊ុមសកម្ម; +Keywords[lt]=shading;border;hover;active borders; tik antraštės juosta; rėmelis; aktyvūs rėmeliai; +Keywords[lv]=ēnošana;mala;hover;aktīvās malas; +Keywords[mk]=shading;border;hover;active borders;засенчување;граница;лебди;активни граници; +Keywords[mn]=Сүүдэр;Идэвхитэй хүрээ;Арьс;Хүрээ; +Keywords[mt]=shading;border;hover;active borders;bordura; +Keywords[nb]=rull opp;sveve over;ramme;aktive rammer;kant; +Keywords[nds]=Inrullen;Utrullen;Rahmen;hover;aktiven Rahmen; +Keywords[ne]=छायाँ; किनारा; होभर; सक्रिय किनारा; +Keywords[nl]=oprollen;afrollen;rand;hoover;actieve randen;randen magnetisch;magnetische randen; +Keywords[nn]=rull opp;ramme;vindaugsramme;vindauge;mus over;aktive kantar; +Keywords[nso]=ntshofatsa;mollwane;hover;mellwane yeo e berekago; +Keywords[pl]=cieniowanie;granice;przesuwanie ponad;aktywne granice; +Keywords[pt]=enrolamento;contorno;passar por cima;contornos activos; +Keywords[pt_BR]=ocultamento;borda;pairar;bordas ativas; +Keywords[ro]=strîngere;margine;margini active; +Keywords[rw]=ubwijime;urubibi;kureremba;imbibi zikora; +Keywords[se]=shading;border;hover;active borders;aktiivalaš láse;láse;aktiivalaš ravddat; +Keywords[sk]=zabalenie;okraj;presun;aktívne okraje; +Keywords[sl]=senčenje;rob;meja;lebdenje;aktivni robovi; +Keywords[sr]=намотавање;ивица;лебдење;активне ивице; +Keywords[sr@Latn]=namotavanje;ivica;lebdenje;aktivne ivice; +Keywords[sv]=skuggning;kant;sväva;aktiva kanter; +Keywords[ta]=நிழலிடுதல்;விளிம்பு;ஹோவர்; செயலில் உள்ள விளிம்புகள்; +Keywords[th]=พับเก็บ;กรอบ;อยู่เหนือ;กรอบที่ทำงาน; +Keywords[tr]=toplama;sınır;etkin kenarlıklar; +Keywords[uk]=згортання;рамка;проходження;активні рамки; +Keywords[uz]=soyalash;chegara;aktiv chegaralar;hover; +Keywords[uz@cyrillic]=соялаш;чегара;актив чегаралар;hover; +Keywords[ven]=murunzi;mukano;hover;mikano i tshilaho; +Keywords[vi]=che phủ;bờ;lượn;bờ hoạt động; +Keywords[wa]=ombe;ombraedje;boird;costé;hover;ovrants boirds; +Keywords[xh]=ulwenziwo lwesithuba;umda;ixhonyiwe;imida esebenzayo; +Keywords[zh_CN]=shading;border;hover;active borders;卷起;边框;悬停;激活边框; +Keywords[zh_TW]=shading;border;hover;active borders;收起;邊框;停留;作用中邊框; +Keywords[zu]=ukusitha;umngcele;didizela;imingcele enyakazayo; diff --git a/twin/kcmtwin/twinoptions/twinfocus.desktop b/twin/kcmtwin/twinoptions/twinfocus.desktop new file mode 100644 index 000000000..f22381d57 --- /dev/null +++ b/twin/kcmtwin/twinoptions/twinfocus.desktop @@ -0,0 +1,222 @@ +[Desktop Entry] +Icon=kcmkwm +Type=Application +Exec=tdecmshell twinfocus +X-DocPath=kcontrol/windowbehavior/index.html#action-focus + +X-TDE-ModuleType=Library +X-TDE-Library=twinoptions +X-TDE-FactoryName=twinfocus + +Name=Focus +Name[af]=Fokus +Name[ar]=التركيز +Name[be]=Фокус +Name[bg]=Фокус +Name[bn]=ফোকাস +Name[br]=Fokus +Name[bs]=Fokus +Name[cs]=Zaměření +Name[csb]=Zrëszanié +Name[cy]=Canolbwynt +Name[da]=Fokus +Name[de]=Aktivierung +Name[el]=Εστίαση +Name[eo]=Fokuso +Name[es]=Foco +Name[et]=Fookus +Name[eu]=Fokua +Name[fa]=کانون +Name[fi]=Kohdistus +Name[ga]=Fócas +Name[gl]=Foco +Name[he]=התמקדות +Name[hi]=फ़ोकस +Name[hr]=Fokus +Name[hu]=Fókuszálás +Name[id]=Fokus +Name[is]=Virkni +Name[ja]=フォーカス +Name[ka]=ფოკუსი +Name[kk]=Назар +Name[km]=ផ្ដោតអារម្មណ៍ +Name[ko]=초점 +Name[lo]=ຫີນ +Name[lt]=Fokusas +Name[lv]=Fokuss +Name[mk]=Фокусирање +Name[mn]=Идэвхижүүлэх +Name[ms]=Fokus +Name[nb]=Fokus +Name[nds]=Fokus +Name[ne]=फोकस +Name[nn]=Fokus +Name[nso]=Tebeledisiso +Name[pa]=ਕੇਂਦਰ +Name[pl]=Ognisko +Name[pt]=Foco +Name[pt_BR]=Foco +Name[ru]=Фокус +Name[rw]=Igaragaza rikeye +Name[se]=Fohkus +Name[sk]=Fokus +Name[sl]=Fokus +Name[sr]=Фокус +Name[sr@Latn]=Fokus +Name[sv]=Fokus +Name[ta]=முனைப்படுத்து +Name[te]=ఫొకస్ +Name[tg]=Марказ +Name[th]=โฟกัส +Name[tr]=Odaklama +Name[tt]=Eş Üzäge +Name[uk]=Фокус +Name[uz]=Fokus +Name[uz@cyrillic]=Фокус +Name[ven]=U thetshelesa +Name[vi]=Chọn +Name[zh_CN]=焦点 +Name[zh_TW]=焦點 +Name[zu]=Ukunaka + +Comment=Configure the window focus policy +Comment[af]=Konfigureer die venster fokus beleid +Comment[ar]=قم بإعداد سياسة التركيز على النوافذ +Comment[be]=Настаўленні выкарыстання фокусу +Comment[bg]=Настройване активирането на прозорците +Comment[bn]=উইণ্ডো ফোকাস পলিসি কনফিগার করুন +Comment[br]=Kefluniañ politikerez fokus ar prenestr +Comment[bs]=Podesite politiku fokusa prozora +Comment[ca]=Aquí podeu configurar la política del focus +Comment[cs]=Nastavení způsobu zaměřování oken +Comment[csb]=Kònfigùracëjô zrëszaniô òknów +Comment[cy]=Ffurfweddu'r polisi canolbyntio ffenestri +Comment[da]=Indstil vinduers fokuspolitik +Comment[de]=Fensteraktivierung einrichten +Comment[el]=Ρυθμίστε τον τρόπο εστίασης των παραθύρων +Comment[eo]=Agordu la fenestran fokusdirektivon +Comment[es]=Configuración de la política de enfocado de ventanas +Comment[et]=Akendele fookuse andmise reeglid +Comment[eu]=Konfiguratu leihoen fokuaren portaera +Comment[fa]=پیکربندی خط مشی کانون پنجره +Comment[fi]=Ikkunoiden kohdistustapa +Comment[fr]=Configuration de la politique de focus des fenêtres +Comment[fy]=Hjir kinne jo it fokusbeliid fan finsters ynstelle +Comment[ga]=Cumraigh an polasaí um fhócas fuinneoige +Comment[gl]=Configurar política de outorgación do foco ás fiestras +Comment[he]=קביעת מדיניות ההתמקדות של חלונות +Comment[hi]=विंडो फ़ोकस पॉलिसी कॉन्फ़िगर करें +Comment[hr]=Konfiguriranje pravila za fokusiranje prozora +Comment[hu]=Az ablakok fókuszálási jellemzőinek beállításai +Comment[is]=Stilla virkni stefnu +Comment[it]=Configura la politica del focus delle finestre +Comment[ja]=ウィンドウのフォーカスポリシーの設定 +Comment[kk]=Терезедегі назар тартібін баптау +Comment[km]=កំណត់រចនាសម្ព័ន្ធគោលការណ៍ផ្ដោតអារម្មណ៍របស់បង្អួច +Comment[ko]=창 초점 정책 설정하기 +Comment[lo]=ປັກອີນສອດສ່ອງຊີພີຍູ +Comment[lt]=Konfigūruoti langų fokusavimo taisykles +Comment[lv]=Konfigurē logu fokusēšanās politiku +Comment[mk]=Конфигурирајте ја политиката на фокусирање на прозорците +Comment[mn]=Цонх идэвхижүүлэлт тохируулах +Comment[mt]=Ikkonfigura kif jieħdu l-focus il-windows +Comment[nb]=Tilpass praksisen for vindusfokus +Comment[nds]=Regeln för den Finsterfokus instellen +Comment[ne]=सञ्झ्याल फोकस नीति कन्फिगर गर्नुहोस् +Comment[nl]=Hier kunt u het vensterfocusbeleid instellen +Comment[nn]=Set opp praksisen for vindaugsfokus +Comment[nso]=Beakanya molao wa tebeledisiso ya window +Comment[pa]=ਝਰੋਖਾ ਕੇਂਦਰ ਨੀਤੀ ਸੰਰਚਨਾ +Comment[pl]=Konfiguracja przenoszenia ogniska +Comment[pt]=Configuração da política de foco (primeiro plano) das janelas +Comment[pt_BR]=Configura a política de foco de janela +Comment[ro]=Configurează politica de focus a ferestrelor +Comment[ru]=Настройка политики фокусирования окон +Comment[rw]=Kuboneza politiki y'igaragazarikeye ry'idirishya +Comment[se]=Heivet lásefohkusa doaibmanvuogi +Comment[sk]=Nastavenie politiky aktivácie okien +Comment[sl]=Nastavitve ravnanja s fokusom okna +Comment[sr]=Подешавање начина фокусирања прозора +Comment[sr@Latn]=Podešavanje načina fokusiranja prozora +Comment[sv]=Anpassa policy för fönsterfokus +Comment[ta]=சாளர துவக்க முறையை வடிவமை +Comment[tg]=Танзими сиёсати маркази тиреза +Comment[th]=ปรับแต่งรูปแบบการได้รับโฟกัสของหน้าต่าง +Comment[tr]=Pencere odaklama yöntemini yapılandır +Comment[tt]=Täräzä terelätü tärtiben caylaw +Comment[uk]=Налаштування поведінку фокусу вікна +Comment[uz]=Oynani fokuslash qoidasini moslash +Comment[uz@cyrillic]=Ойнани фокуслаш қоидасини мослаш +Comment[ven]=Dzudzanyani wa muano wa window +Comment[vi]=Cấu hình cách chọn cửa sổ +Comment[wa]=Aponteye li dujhance di focus di purnea +Comment[xh]=Qwalasela inkqubo yobekiso lwe window +Comment[zh_CN]=配置窗口焦点策略 +Comment[zh_TW]=設定視窗焦點政策 +Comment[zu]=Hlanganisela umthetho wokunaka kwe-window + +Keywords=focus;placement;auto raise;raise;click raise;keyboard;CDE;alt-tab;all desktop; +Keywords[af]=focus;placement;auto raise;raise;click raise;keyboard;CDE;alt-tab;all werkskerm; +Keywords[be]=Фокус;Рамяшчэнне;Клавіятура;Усе працоўныя сталы;focus;placement;auto raise;raise;click raise;keyboard;CDE;alt-tab;all desktop; +Keywords[bg]=фокус; активиране; автоматично; щракане; focus; placement; auto raise; raise; click raise; keyboard; CDE; alt-tab; all desktop; +Keywords[ca]=focus;emplaçament;elevar automàticament;elevar;elevar en clicar;teclat;CDE;alt-tab;tot l'escriptori; +Keywords[cs]=zaměření;umísťování;automatické zdvižení;klávesnice;CDE;Alt-Tab;plochy; +Keywords[csb]=focus; ùmieszczanié; aùtomatné przenoszenié;pòdnoszenié;pòdnoszenié przë klëkniãcô;klawiatura;CDE;alt-tab;wszëtczé biurka;wszëtczé pùltë; +Keywords[cy]=canolbwynt;lleoliad;hunan-godi;codi;codi ar ?l clic;allweddell;CDE;alt-tab;penbwrdd cyfan; +Keywords[da]=fokus;placering;autohæv;hæv;klikhæv;tastatur;CDE;alt-tab;alle desktoppe; +Keywords[de]=Fokus;Aktivierung;Platzierung;Autom. Aktivierung;Nach oben/unten; Klick;Tastatur;CDE; +Keywords[el]=εστίαση;τοποθέτηση;αυτόματη ανύψωση;ανύψωση;ανύψωση με πάτημα;πληκτρολόγιο;CDE;alt-tab;all desktop; +Keywords[eo]=fokuso;lokado;aŭto-altigo;altigo;kliki;kilk altigo;klavaro;CDE;alt-tab;ĉiuj tabuloj; +Keywords[es]=foco;ubicación;auto psara al frente;pasar al frente;pulsar;teclado;CDE;alt-tab;todo el escritorio; +Keywords[et]=fookus;asetus;klikk;klõps;klaviatuur;CDE;alt-tab; +Keywords[eu]=fokua;kokapena;auto aurrera ekarri;aurrera ekarri;klik eta aurrera eraman;teklatua;CDE;alt-tab;mahaigain guztiak; +Keywords[fa]=کانون، جایدهی، بالا بردن خودکار، بالا بردن، بالا بردن فشار، صفحه کلید، CDE، دگرساز-جهش، همۀ رومیزیها; +Keywords[fi]=fokus;sijoitus;automaattinosto;napsautusnosto;näppäimistö;CDE; +Keywords[fr]=focus;placement;auto élévation;élévation;clic clavier;CDE;alt-tab;tous les bureaux; +Keywords[fy]=focus;fokus;finster;aandacht;oandacht;plaatsing;pleatsing;voorgrond;foargrûn;achtergrond;eftergrûn;klikken;toetsenbord;toetseboerd;CDE;alt-tab;alle bureaubladen;alle buroblêden; +Keywords[ga]=fócas;láithriú;uathardaigh;ardaigh;gliogardaigh;méarchlár;CDE;alt-tab;gach deasc; +Keywords[gl]=foco;emprazamento;auto subir;subir;premer para subir;teclado;CDE;alt-tab;todo o escritório; +Keywords[he]=התמקדות;מיקום;הבאה אוטומטית לחזית;הבאה לחזית;לחיצה להבאה לחזית;מקלדת;כל שולחנות העבודה; focus;placement;auto raise;raise; click raise;keyboard;CDE;alt-tab;all desktop; +Keywords[hi]=फ़ोकस; स्थिति;स्वतः ऊपर उठाएँ;ऊपर उठाएँ;क्लिक ऊपर उठाएँ;कुंजीपट;सीडीई;ऑल्ट-टेब;सभी डेस्कटॉप; +Keywords[hr]=focus;placement;auto raise;raise;click raise;keyboard;CDE;alt-tab;all desktop;fokus;smještaj;automatska pojava;pojava;pojava klikanjem;tipkovnica;sve radne površine; +Keywords[hu]=fókusz;elhelyezés;automatikus előrehozás;előrehozás;előrehozás kattintásra;billentyűzet;CDE;Alt+Tab;minden munkaasztal; +Keywords[id]=fokus;penempatan;auto raise;raise;click raise;keyboard;CDE;alt-tab;all desktop; +Keywords[is]=fókus;staðsetning;fleyta upp sjálfkrafa; fleyta upp;smellur fleytir upp;lyklaborð;CDE;alt-tab;öll skjáborð; +Keywords[it]=focus;piazzamento;alza automaticamente;alza;clic per alzare;tastiera; CDE;alt-tab;tutti i desktop; +Keywords[ja]=フォーカス;配置;自動的に前面に;前面に;クリックして前面に;キーボード;CDE;alt-tab;すべてのデスクトップ; +Keywords[km]=ផ្តោតអារម្មណ៍;ការដាក់;លើកឡើងស្វ័យប្រវត្តិ;លើកឡើង;ចុច លើកឡើង;ក្ដារចុច;CDE;ជំនួស-ថេប;ផ្ទៃតុទាំងអស់; +Keywords[lt]=focus;placement;auto raise;raise;click raise;keyboard;CDE;alt-tab;all desktop; fokusas;perkėlimas į pirmą planą; pirmas planas; klaviatūra; CDE;visi darbastaliai; +Keywords[lv]=fokuss;novietojums;automātiska pacelšanās;pacelšanās;klikšķaraise;tastatūra;CDE;alt-tab;visas darbavirsmas; +Keywords[mk]=focus;placement;auto raise;raise;click raise;keyboard;CDE;alt-tab;all desktop;фокус;позиција;авто подигање;подигање;клик подигање;сите десктопи; +Keywords[mn]=Хараа;Идэвхижүүлэл;Зайчлал;Авто.Идэвхижүүлэлт; Дээшээ/доошоо;Товшилт;Гар;КДE; +Keywords[mt]=focus;placement;auto raise;raise;click raise;keyboard;CDE;alt-tab;all desktop;tella';tastiera; +Keywords[nb]=fokus;plassering;autohev;hev;klikk og hev;tastatur;CDE;bytt vindu;alle skrivebord; +Keywords[nds]=aktiveren;Fokus;Platzeren;automaatsch fokusseren;aktiveren;klick fokusseren;Tastatuur;CDE;ALT-TAB;all Schriefdischen; +Keywords[ne]=फोकस; स्थापना; स्वत: बृद्धि; बृद्धि; बृद्धि क्लिक गर्नुहोस्; कुञ्जीपाटी;CDE;अल्ट-ट्याब; सबै डेस्कटप; +Keywords[nl]=focus;aandacht;plaatsing;voorgrond;achtergrond;klikken;toetsenbord;CDE;alt-tab;alle bureaubladen; +Keywords[nn]=fokus;plassering;autohev;hev;klikk og hev;tastatur;CDE;byt vindauge;alle skrivebord; +Keywords[nso]=tebeledisiso;peo;kgodiso ya go itirisa;kgodiso;tobetsa kgodiso;keyboard;CDE;alt-tab;desktop kamoka; +Keywords[pl]=ognisko;umiejscawianie;automatyczne podnoszenie;podnoszenie; podniesienie przy kliknięciu;klawiatura;CDE;alt-tab;wszystkie biurka;wszystkie pulpity; +Keywords[pt]=foco;colocação;auto-elevar;elevar;elevar com 'click';teclado;CDE;alt-tab;todos os ecrãs; +Keywords[pt_BR]=foco;posição;auto elevar;elevar;teclado;CDE;alt-tab;todas as áreas de trabalho; +Keywords[ro]=focus;plasare;ridicare automată;clic;tastatură;CDE;alt-tab;toate ecranele; +Keywords[rw]=igaragazarikeye;ishyira mu mwanya;byizamura;kuzamura;Kanda kuzamura;Mwandikisho;CDE;Alt - tab;Ibiro byose; +Keywords[se]=fohkus;auto lokten;lokten;coahkkal ja lokte;boallobeavdi;CDE;molssu lássii;buot čállinbeavddi; +Keywords[sk]=fokus;umiestnenie;automatický presun;dopredu;dopredu na kliknutie;klávesnica;CDE;alt-tab;všetky plochy; +Keywords[sl]=fokus;postavitev;dvigni;tipkovnica;CDE;alt-tab;vsa namizja; +Keywords[sr]=focus;placement;auto raise;raise;click raise;keyboard;CDE;alt-tab;all desktop;фокус;смештање;аутоматско подизање;подизање;тастатура;alt-tab; сви радна површина; +Keywords[sr@Latn]=focus;placement;auto raise;raise;click raise;keyboard;CDE;alt-tab;all desktop;fokus;smeštanje;automatsko podizanje;podizanje;tastatura;alt-tab; svi radna površina; +Keywords[sv]=fokus;placering;autohöjning;höjning;höjning med klick;tangentbord;CDE;alt-tab;alla skrivbord; +Keywords[ta]=ஒருமுகப்படுத்துதல்;இடம்; தானாக மேலெழும்பு; மேலேழும்புதல்; மேல் க்ளிக்செய்;விசைப்பலகை;CDE;alt-tab;எல்லா மேல்மேசை; +Keywords[th]=โฟกัส;ตำแหน่ง;อยู่ด้านบนอัตโนมัติ;อยู่ด้านบน;คลิ้กเพื่ออยู่ด้านบน;แป้นพิมพ์;CDE;alt-tab;ทุกพื้นที่ทำงาน; +Keywords[tr]=odaklama;yerleşim;masaüstü;yükselt;tıkla;klavye;CDE;yerleşim; +Keywords[uk]=фокус;розташування;автопіднімання;підняти;клавіатура;CDE;alt-tab;вся стільниця; +Keywords[uz]=avto-oldinga;oldinga;bosib oldinga;CDE;alt-tab;hamma ish stollari;fokuslash;tugmatag;joylashish; +Keywords[uz@cyrillic]=авто-олдинга;олдинга;босиб олдинга;CDE;alt-tab;ҳамма иш столлари;фокуслаш;тугматаг;жойлашиш; +Keywords[ven]=thetshelesa;u vhetshela;u vusa;vusa;putedzani u vusa;khiibodo;CDE;alt-tab;desktop dzothe; +Keywords[vi]=chọn;di chuyển;tự nâng lên;nâng lên;nhấn nâng lên;bàn phím;CDE;alt-tab;tất cả màn hình nền; +Keywords[wa]=focus;plaece;rimonte tot seu;rimonter;rimonte s' on clitche;taprece;CDE;ALT-TAB;tos les scribannes; +Keywords[xh]=ucaco;ubuyiselo;phakamisa ngokuzenzekelayo;phakamisa;nqakraza phakamisa; ibhodi yezitshixho;CDE;alt-tab;zonke ii desktop; +Keywords[zh_CN]=focus;placement;auto raise;raise;click raise;keyboard;CDE;alt-tab;all desktop;焦点;放置;自动升起;升起;单击升起;键盘;全部桌面; +Keywords[zh_TW]=focus;placement;auto raise;raise;click raise;keyboard;CDE;alt-tab;all desktop;焦點;佈置;自動抬升;抬升;單擊抬升;鍵盤;全部桌面; +Keywords[zu]=ukunaka;ukubeka;ukukhuphula okuzenzekelayo;ukukhuphula; ukukhuphula ngokucofa;ibhodi yokhiye;CDE;alt-tab;wonke ama-desktop; diff --git a/twin/kcmtwin/twinoptions/twinmoving.desktop b/twin/kcmtwin/twinoptions/twinmoving.desktop new file mode 100644 index 000000000..87ee2c74e --- /dev/null +++ b/twin/kcmtwin/twinoptions/twinmoving.desktop @@ -0,0 +1,229 @@ +[Desktop Entry] +Icon=kcmkwm +Type=Application +Exec=tdecmshell twinmoving +X-DocPath=kcontrol/windowbehavior/index.html#action-moving + +X-TDE-ModuleType=Library +X-TDE-Library=twinoptions +X-TDE-FactoryName=twinmoving + +Name=Moving +Name[af]=Beweeg +Name[ar]=تحريك +Name[be]=Перамяшчэнне +Name[bg]=Преместване +Name[bn]=সরানো হচ্ছে +Name[br]=O tilec'hiañ +Name[bs]=Pomjeranje +Name[ca]=Moviment +Name[cs]=Přesouvání +Name[csb]=Przesëwanié +Name[cy]=Symud +Name[da]=Flytter +Name[de]=Verschieben +Name[el]=Μετακίνηση +Name[eo]=Movanta +Name[es]=Moviendo +Name[et]=Liigutamine +Name[eu]=Mugitzen +Name[fa]=حرکت +Name[fi]=Siirtäminen +Name[fo]=Flytir +Name[fr]=Déplacement +Name[fy]=Ferpleatsing +Name[ga]=Bogadh +Name[gl]=Movemento +Name[he]=הזזה +Name[hi]=खिसक रहा है +Name[hr]=Pomicanje +Name[hu]=Mozgatás +Name[id]=Pindah +Name[is]=Færa +Name[it]=Spostamento +Name[ja]=移動 +Name[ka]=გადაადგილება +Name[kk]=Жылжыту +Name[km]=ការផ្លាស់ទី +Name[ko]=이동 +Name[lo]=ລອກອິນ +Name[lt]=Perkėlimas +Name[lv]=Pārvietošana +Name[mk]=Движење +Name[mn]=Шилжүүлэх +Name[mt]=Tmexxija +Name[nb]=Flytting +Name[nds]=Verschuven +Name[ne]=सार्दा +Name[nl]=Verplaatsing +Name[nn]=Flytting +Name[nso]=Sutha +Name[pa]=ਏਧਰ-ਓਧਰ +Name[pl]=Przesuwanie +Name[pt]=Mover +Name[pt_BR]=Movendo +Name[ro]=Mutare +Name[ru]=Перемещение +Name[rw]=Kwimura +Name[se]=Lihkadeamen +Name[sk]=Presun +Name[sl]=Premikanje +Name[sr]=Померање +Name[sr@Latn]=Pomeranje +Name[sv]=Förflyttning +Name[ta]=நகர்கிறது +Name[te]=కదలిక +Name[tg]=Ҳаракат +Name[th]=การย้าย +Name[tr]=Taşıma +Name[tt]=Küçerü +Name[uz]=Koʻchirish +Name[uz@cyrillic]=Кўчириш +Name[ven]=U tshimbila +Name[vi]=Di chuyển +Name[wa]=Bodjî +Name[xh]=Iyahamba +Name[zh_CN]=移动 +Name[zh_TW]=移動 +Name[zu]=Iyanyakaza + +Comment=Configure the way that windows are moved +Comment[af]=Konfigureer die weg wat vensters word verskuif +Comment[ar]=تعريف الطريقة التي تتحرك فيها النوافذ +Comment[be]=Настаўленні перамяшчэння вокнаў +Comment[bg]=Настройване преместването на прозорците +Comment[bn]=উইণ্ডো কিভাবে সরানো হবে তা কনফিগার করুন +Comment[br]=Kefluniañ an daoare e vez fiñvalet ar prenester +Comment[bs]=Podesite način pomjeranja prozora +Comment[ca]=Aquí podeu configurar els valors per quan es moguin les finestres +Comment[cs]=Nastavení způsobu přesouvání oken +Comment[csb]=Kònfigùracëjô sztélu przesëwaniô òknów +Comment[cy]=Ffurfweddu'r ffordd y symudir ffenestri +Comment[da]=Indstil den måde vinduer flyttes på +Comment[de]=Festlegen, wie Fenster verschoben werden +Comment[el]=Ρυθμίστε τον τρόπο με τον οποίο μετακινούνται τα παράθυρα +Comment[eo]=Agordu la manieron, per kiu oni movas la fenestrojn +Comment[es]=Configuración del modo de movimiento de las ventanas +Comment[et]=Akende liigutamise viisi seadistamine +Comment[eu]=Konfiguratu leihoak mugitzeko era +Comment[fa]=پیکربندی روشی که پنجرهها حرکت میکنند +Comment[fi]=Ikkunoiden siirtäminen +Comment[fr]=Configuration de la manière dont les fenêtres sont déplacées +Comment[fy]=Hjir kinne jo de wize wêrop finsters har ferpleatse ynstelle +Comment[ga]=Cumraigh conas a aistrítear fuinneoga +Comment[gl]=Aqui pode configurar o xeito en que se moven as fiestras +Comment[he]=שינוי הדרך שבה חלונות מוזזים +Comment[hi]=कॉन्फ़िगर करें कि विंडो किस तरह खिसके +Comment[hr]=Konfiguriranje načina pomicanja prozora +Comment[hu]=Az ablakmozgatás beállításai +Comment[is]=Stilla hvernig gluggar eru hreyfðir +Comment[it]=Configura il modo in cui vengono spostate le finestre +Comment[ja]=ウィンドウの移動の仕方の設定 +Comment[ka]=ფანჯრების გადაადგილების კონფიგურაცია +Comment[kk]=Терезені жылжыту тәсілін баптау +Comment[km]=កំណត់រចនាសម្ព័ន្ធរបៀបដែលបង្អួចត្រូវបានផ្លាស់ទី +Comment[ko]=창이 움직이는 방법 설정하기 +Comment[lo]=ປັບແຕ່ງການຕັ້ງຄ່າລະບົບແຄຊທີ່ນີ่້ +Comment[lt]=Konfigūruoti langų perkėlimą +Comment[lv]=Šeit Jūs varat konfigurēt kā tiek pārvietoti logi +Comment[mk]=Конфигурирајте го начинот на кој се движат прозорците +Comment[mn]=Цонхыг яааж шилжүүлэхийг тогтоох +Comment[mt]=Ikkonfigura kif tmexxi l-windows +Comment[nb]=Velg hvordan vinduer skal flyttes +Comment[nds]=Instellen, woans de Finstern beweegt warrt +Comment[ne]=सञ्झ्यालहरू सार्ने तरिका कन्फिगर गर्नुहोस् +Comment[nl]=Hier kunt u de wijze waarop vensters worden verplaatst instellen +Comment[nn]=Vel korleis vindauga skal flyttast +Comment[nso]=Beakanya ka mokgwa wo window yeo e suthiswago kagona +Comment[pa]=ਝਰੋਖੇ ਦੇ ਹਿੱਲਣ ਦੇ ਢੰਗ ਦੀ ਸੰਰਚਨਾ +Comment[pl]=Konfiguracja stylu przesuwania okien +Comment[pt]=Configuração da forma como as janelas são movidas +Comment[pt_BR]=Configura o modo como as janelas são movidas +Comment[ro]=Configurează modul în care sînt mutate ferestrele +Comment[ru]=Настройка способа перемещения окон +Comment[rw]=Kuboneza uburyo amadirishya yimurwa +Comment[se]=Heivet mo láset lihkaduvvot +Comment[sk]=Nastavenie presunu okien +Comment[sl]=Nastavitve načinov premikanja okna +Comment[sr]=Подешавање начина на који се прозори померају +Comment[sr@Latn]=Podešavanje načina na koji se prozori pomeraju +Comment[sv]=Anpassa hur fönster flyttas +Comment[ta]=சாளரம் நகர்ரும் விதத்தை அமை +Comment[tg]=Танзими навъи ҳаракати тирезаҳо +Comment[th]=ปรับแต่งลักษณะวิธีการย้ายหน้าต่าง +Comment[tr]=Pencerelerin taşınması yöntemini yapılandır +Comment[tt]=Täräzä küçerü ısulın caylaw +Comment[uk]=Тут можна налаштувати поведінку при пересуванні вікон +Comment[uz]=Oynalarni koʻchirish yoʻlini moslash +Comment[uz@cyrillic]=Ойналарни кўчириш йўлини мослаш +Comment[ven]=Dzudzanyani ndila ine windoow ya tshimbidzhwa zwone +Comment[vi]=Cấu hình cách di chuyển cửa sổ +Comment[wa]=Apontyî l' manire di bodjî des purneas +Comment[xh]=Qwalasela iindlela ii windows ezshukunyiswa ngayo +Comment[zh_CN]=配置窗口移动的方式 +Comment[zh_TW]=設定視窗移動的方式 +Comment[zu]=Hlanganisela indlela ama-window anyakaziswa ngayo + +Keywords=moving;smart;cascade;maximize;maximise;snap zone;snap;border; +Keywords[be]=Перамяшчэнне;Каскадам;Найбольшыць;Найменшыць;Мяжа;moving;smart;cascade;maximize;maximise;snap zone;snap;border; +Keywords[bg]=преместване; прозорци; прозорец; промяна; размер; размера; moving; smart; cascade; maximize; maximise; snap zone; snap; border; +Keywords[ca]=moviment;astut;cascada;maximitza;zona d'atracció;atracció;vora; +Keywords[cs]=přesun;chytré;kaskáda;maximalizace;zóna;okraje; +Keywords[csb]=przesëwanié;kaskadowò;masymilizacëjô;òbéńda chwëtaniô;chwëtanié;grańca; +Keywords[cy]=symud;clyfar;rhaedru;maint llawn;cylchfa gosod;snap;ymyl; +Keywords[da]=flytter;smart;stabl;maksimér;snapzone;snap;kant; +Keywords[de]=Verschieben;Gestaffelt;Maximieren;Minimieren;Einrastzone;Ränder; +Keywords[el]=μετακίνηση;έξυπνη;διαδοχικός;μεγιστοποίηση;μεγιστοποίηση;ζώνη αρπαγής;αρπαγή;περίγραμμα; +Keywords[eo]=movanta;maksimigi;bordo; +Keywords[es]=moviendo;inteligente;cascada;maximizar;zona de adhesión;adhesión;adherir;borde ; +Keywords[et]=liigutamine;tark;kaskaad;maksimeerimine;haaramise tsoon;haaramine;piire; +Keywords[eu]=mugitzen;fina;kaskadan;maximizatu;itsasketa eremua; itsasketa;ertza; +Keywords[fa]=حرکت، هوشمند، آبشاری، بیشینهسازی، بیشینهسازی، منطقۀ پرش، پرش، لبه; +Keywords[fi]=liikkuva;älykäs;sarjoita;suurenna;kehys; +Keywords[fr]=déplacement;cascade;maximiser;minimiser;coller;zone d'attraction;bordure; +Keywords[fy]=verplaatsing;ferpleatse;intelligen;yntelligint;tûk;plaatsing;pleatsing;trapsgewijs;trepfoarm;maximaliseren;maksimalisearje;randen magnetisch;magnetisch veld;rand;râne;magnetische randen; +Keywords[gl]=movemento;pequeno;fervenza;maximizar;maximizar;zona de suxección;suexección;beira; +Keywords[he]=הזזה;חכם;מדורג;הגדלה;אזור הצמדה;הצמדה;גבול; moving;smart;cascade;maximize;maximise;snap zone;snap;border; +Keywords[hi]=खिसकता;चतुर;कास्केड;अधिकतम;न्यूनतम;स्नैप ज़ोन;स्नेप;किनारा; +Keywords[hr]=moving;smart;cascade;maximize;maximise;snap zone;snap;border;pomicanje;pametno;kaskadno;maksimiziranje;snap zona;snap;obrub; +Keywords[hu]=mozgatás;intelligens;lépcsőzetes;maximalizálás;illeszkedési zóna;illeszkedés;szegély; +Keywords[id]=pindah;smart;cascade;maksimum;minimum;snap zone;snap;border; +Keywords[is]=færi;snjallt;stafla;hámarka;gripsvæði;grip;rammi;jaðar; +Keywords[it]=spostamento;intelligente;cascata;massimizza;zona magnetica;bordi;bordi magnetici; +Keywords[ja]=移動;スマート;カスケード;最大化;スナップゾーン;スナップ境界; +Keywords[km]=ការផ្លាស់ទី;ឆ្លាត;ល្បាក់;ពង្រីកអប្បបរមា;តំបន់ខ្ទាស់;ខ្ទាស់;ស៊ុម; +Keywords[lt]=moving;smart;cascade;maximize;maximise;snap zone;snap;border; perkėlimas;išmoningas;kaskada;išdidinti;rėmelis;riba; +Keywords[lv]=pārvietošana;gudra;kaskāde;maksimizē;maksimizēšana;pielipsanas zona;pielipt;mala; +Keywords[mk]=moving;smart;cascade;maximize;maximise;snap zone;snap;border; движење;паметно;каскадно;рашири;спушти;граница; +Keywords[mn]=Шилжүүлэх;Ухаалаг;Зайчилах;Томсгох;Жижигсгэх;Талбай;Хүрээ; +Keywords[mt]=moving;smart;cascade;maximize;maximise;snap zone;snap;border;tmexxija;kaskada;massimizza;faqqa';bordura; +Keywords[nb]=flytting;smart;overlapping;maksimer;kantlås;vindu; +Keywords[nds]=bewegen;verschuven;plietsch;maximeren;minimeren;Andockrebeet;andocken;Rahmen; +Keywords[ne]=सार्ने; छरितो; क्यासकेड; बढाउनु; बढाउनु; स्न्याप जोन; स्न्याप; किनारा; +Keywords[nl]=verplaatsing;intelligent;plaatsing;trapsgewijs;maximaliseren;randen magnetisch;magnetisch veld;rand;magnetische randen; +Keywords[nn]=flytting;smart;overlapping;maksimer;kantlås;vindauge; +Keywords[nso]=sutha;botsana;phororo;oketsa;oketsa;lefelo la thwantsho ya menwana; thwantsho ya menwana;mollwane; +Keywords[pa]=moving;smart;cascade;maximize;maximise;snap zone;snap;ਹਾਸ਼ੀਆ; +Keywords[pl]=przesuwanie;sprytne;kaskadowo;maksymalizacja;obszar chwytania;chwytanie; granica; +Keywords[pt]=mover;inteligente;cascata;maximizar;zona de atracção;atracção;contorno; +Keywords[pt_BR]=movendo;pequeno;cascata;maximizar;zona rápida;zona de encaixe;borda; +Keywords[ro]=mutare;isteț;cascadă;maximizare;margine; +Keywords[rw]=kwimura;cyiza;urukurikirane;kugira kinini ;gukata agace;gukata; impera; +Keywords[sk]=presun;inteligentný;kaskádovať;maximalizácia;minimalizácia;priťahovanie;zóna priťahovania;okraje; +Keywords[sl]=premikanje;pametno;kaskadno;povečaj;raztegni;meja;mreža;pripni; +Keywords[sr]=moving;smart;cascade;maximize;maximise;snap zone;snap;border;померање;паметно;каскадно;максимизуј;snap zone;snap;ивица; +Keywords[sr@Latn]=moving;smart;cascade;maximize;maximise;snap zone;snap;border;pomeranje;pametno;kaskadno;maksimizuj;snap zone;snap;ivica; +Keywords[sv]=förflyttning;smart;kaskad;maximera;bindningszon;bind;kant; +Keywords[ta]=நகரும்;புத்திசாலி;மேலுக்குமேல்; பெரிதாக்கு;பெரிதாக்கு;நிழற் படமெடுப்பு பகுதி;நிழற்படம்;விளிம்பு; +Keywords[th]=การย้าย;ฉลาด;จัดเป็นขั้นๆ;ขยายเต็มจอ;ขยายเต็มหน้าจอ;snap zone;snap;border; +Keywords[tr]=taşıma;taşınma;akıllı;kenar; +Keywords[uk]=пересування;кмітливий;каскад;максимізувати;зона захоплення;захоплення;рамка; +Keywords[uz]=snap zone;snap;border;koʻchirish;ixcham;oynalarni tartiblash;yoyish; +Keywords[uz@cyrillic]=snap zone;snap;border;кўчириш;ихчам;ойналарни тартиблаш;ёйиш; +Keywords[ven]=tshimbila;zwavhudi;cascade;engedza;engedza;fhethu ha snap;snap;mukano+-; +Keywords[vi]=di chuyển;thông minh;tầng;phóng to;phóng to;vùng thả;thả;bờ; +Keywords[wa]=bodjî;malén;a pertinne;; pus grand;nap zone;snap;båoird; +Keywords[xh]=iyashukuma;iyabukeka;cascade;yenza nkulu;yenza nkulu;yandisa;snap zone;snap;umda; +Keywords[zh_CN]=moving;smart;cascade;maximize;maximise;snap zone;snap;border;移动;智能;层叠;最大化;最小化;吸附区域;边框; +Keywords[zh_TW]=moving;smart;cascade;maximize;maximise;snap zone;snap;border;移動;聰明;最大化;邊框; +Keywords[zu]=iyanyakaza;okukhaliphile;landelanisa;khulisa;khulisa;indawo yokunamathisela;namathisela;umngcele; diff --git a/twin/kcmtwin/twinoptions/twinoptions.desktop b/twin/kcmtwin/twinoptions/twinoptions.desktop new file mode 100644 index 000000000..be07dcc09 --- /dev/null +++ b/twin/kcmtwin/twinoptions/twinoptions.desktop @@ -0,0 +1,225 @@ +[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=twinoptions + +Name=Window Behavior +Name[af]=Venster Gedrag +Name[ar]=سلوك النوافذ +Name[az]=Pəncərə Davranışı +Name[be]=Паводзіны вокнаў +Name[bg]=Прозорци +Name[bn]=উইণ্ডো আচরণ +Name[br]=Emzalc'h ar prenester +Name[bs]=Ponašanje prozora +Name[ca]=Comportament de les finestres +Name[cs]=Chování oken +Name[csb]=Ùchòwanié òkna +Name[cy]=Ymddygiad Ffenestri +Name[da]=Vinduesopførsel +Name[de]=Fenstereigenschaften +Name[el]=Συμπεριφορά παραθύρων +Name[en_GB]=Window Behaviour +Name[eo]=Fenestrokonduto +Name[es]=Comportamiento de la ventana +Name[et]=Akende käitumine +Name[eu]=Leihoen portaera +Name[fa]=رفتار پنجره +Name[fi]=Ikkunoiden käyttäytyminen +Name[fr]=Comportement des fenêtres +Name[fy]=Finstergedrach +Name[ga]=Oibriú na bhFuinneoga +Name[gl]=Comportamento das Fiestras +Name[he]=פעולת חלונות +Name[hi]=विंडो बर्ताव +Name[hr]=Ponašanje prozora +Name[hu]=Ablakműveletek +Name[is]=Hegðun glugga +Name[it]=Comportamento delle finestre +Name[ja]=ウィンドウの挙動 +Name[ka]=ფანჯრის ქცევა +Name[kk]=Терезе қасиеттері +Name[km]=ឥរិយាបថបង្អួច +Name[ko]=창 동작 +Name[lo]=ພິດຕິກຳຂອງຫນ້າຕ່າງ +Name[lt]=Langų elgsena +Name[lv]=Loga izturēšanās +Name[mk]=Однесување на прозорци +Name[mn]=Цонхны байдал +Name[mt]=Imġieba tal-Window +Name[nb]=Vindusoppførsel +Name[nds]=Finsterbedregen +Name[ne]=सञ्झ्याल व्यवहार +Name[nl]=Venstergedrag +Name[nn]=Vindaugsåtferd +Name[nso]=Mekgwa ya Window +Name[oc]=Comportament de las finestras +Name[pa]=ਝਰੋਖਾ ਵਿਵਹਾਰ +Name[pl]=Okna +Name[pt]=Comportamento das Janelas +Name[pt_BR]=Comportamento da Janela +Name[ro]=Comportament fereastră +Name[ru]=Поведение окна +Name[rw]=Imyitwarire y'Idirishya +Name[se]=Láseláhtten +Name[sk]=Správanie okien +Name[sl]=Obnašanje oken +Name[sr]=Понашање прозора +Name[sr@Latn]=Ponašanje prozora +Name[ss]=Kutiphatsa kweliwindi +Name[sv]=Fönsterbeteende +Name[ta]=சாளர நடத்தை +Name[tg]=Рафтори тиреза +Name[th]=พฤติกรรมของหน้าต่าง +Name[tr]=Pencere Davranışı +Name[tt]=Täräzä Çağılışı +Name[uk]=Поведінка вікон +Name[uz]=Oynaning xususiyatlari +Name[uz@cyrillic]=Ойнанинг хусусиятлари +Name[ven]=Maitele a windo +Name[vi]=Ứng xử của Cửa sổ +Name[wa]=Dujhance des purneas +Name[xh]=Ukuziphatha kwe Window +Name[zh_CN]=窗口行为 +Name[zh_TW]=視窗行為 +Name[zu]=Ukuziphatha kwe-Window + +Comment=Configure the window behavior +Comment[af]=Stel die venster gedrag op +Comment[ar]=إعداد سلوك النافذة +Comment[be]=Настаўленні паводзінаў вокнаў +Comment[bg]=Настройване поведението на прозорците +Comment[bn]=উইণ্ডোটির আচরণ কনফিগার করুন +Comment[br]=Kefluniañ emzalc'h ar prenester +Comment[bs]=Podesite ponašanje prozora +Comment[ca]=Configura el comportament de finestra +Comment[cs]=Nastavení chování oken +Comment[csb]=Kònfigùracëjô ùchòwaniô òkna +Comment[cy]=Ffurfweddu ymddygiad y ffenestr +Comment[da]=Indstil vinduets opførsel +Comment[de]=Fensterverhalten festlegen +Comment[el]=Ρύθμιση της συμπεριφοράς των παραθύρων +Comment[en_GB]=Configure the window behaviour +Comment[eo]=Agordas la konduton de la fenestro +Comment[es]=Configuración del comportamiento de la ventana +Comment[et]=Akende käitumise seadistamine +Comment[eu]=Konfiguratu arakatzailearen portaera +Comment[fa]=پیکربندی رفتار پنجره +Comment[fi]=Ikkunoiden asetukset +Comment[fr]=Configuration du comportement des fenêtres +Comment[fy]=Stel it finstergedrach yn +Comment[ga]=Cumraigh oibriú na bhfuinneog +Comment[gl]=Configurar o comportamento das fiestras +Comment[he]=שינוי הגדרות פעולת הדפדפן +Comment[hi]=विंडो व्यवहार कॉन्फ़िगर करें +Comment[hr]=Konfiguriranje ponašanja preglednika +Comment[hu]=Az ablakok működési jellemzőinek beállítása +Comment[is]=Stilla hegðan glugga +Comment[it]=Configura il comportamento della finestra +Comment[ja]=ウィンドウの挙動を設定 +Comment[ka]=ბრაუზერის ქცევის კონფიგურაცია +Comment[kk]=Терезе қасиеттерін баптау +Comment[km]=កំណត់រចនាសម្ព័ន្ធឥរិយាបថបង្អួច +Comment[ko]=창 동작 설정 +Comment[lt]=Konfigūruoti lango elgseną +Comment[lv]=Konfigurē loga izturēšanos +Comment[mk]=Конфигурирајте го однесувањето на прозорците +Comment[mt]=Ikkonfigura l-imġieba tal-windows +Comment[nb]=Tilpass vinduets oppførsel +Comment[nds]=Dat Finsterbedregen instellen +Comment[ne]=सञ्झ्याल व्यवहार कन्फिगर गर्नुहोस् +Comment[nl]=Stel het venstergedrag in +Comment[nn]=Oppsett av nettlesaråtferda +Comment[pa]=ਝਰੋਖਾ ਵਿਵਹਾਰ ਸੰਰਚਨਾ +Comment[pl]=Konfiguracja zachowania okna +Comment[pt]=Configurar o comportamento das janelas +Comment[pt_BR]=Configura o comportamento das janelas +Comment[ro]=Configurează comportamentul ferestrei +Comment[ru]=Настройка поведения браузера +Comment[rw]=Kuboneza imyitwarire y'idirishya +Comment[se]=Heivet láseláhttema +Comment[sk]=Nastavenie správania okna +Comment[sl]=Nastavite obnašanje brskalnika +Comment[sr]=Подешавање понашања прозора +Comment[sr@Latn]=Podešavanje ponašanja prozora +Comment[sv]=Anpassa fönsterbeteende +Comment[ta]=º¡ÇÃò¾¢ý Àñ¨À ¯ûǨÁ +Comment[th]=ปรับแต่งพฤติกรมของหน้าต่าง +Comment[tr]=Pencere davranışlarını yapılandır +Comment[tt]=Täräzä çağılışın caylaw +Comment[uk]=Налаштування поведінки вікна +Comment[uz]=Oynaning xususiyatlarini moslash +Comment[uz@cyrillic]=Ойнанинг хусусиятларини мослаш +Comment[vi]=Cấu hình cách cửa sổ ứng xử +Comment[wa]=Apontyî l' dujhance des purneas +Comment[zh_CN]=配置窗口行为 +Comment[zh_TW]=設定視窗行為 + +Keywords=focus;placement;window behavior;animation;raise;auto raise;windows;frame;titlebar;doubleclick; +Keywords[ar]=تركيز ركز;موضع مكان;سلوك النافذة;تحريك;رفع; رفع تلقائي;نوافذ;إطار;شريط العنوان;نقر ثنائي; +Keywords[be]=Фокус;Размяшчэнне;Паводзіны акна;Анімацыя;Вокны;Акно;Фрэйм;Загаловак;Двайны націск мышы;focus;placement;window behavior;animation;raise;auto raise;windows;frame;titlebar;doubleclick; +Keywords[bg]=фокус; поведение; прозорец; активиране; заглавие; focus; placement; window behaviour; animation; raise; auto raise; windows; frame; titlebar; doubleclick; +Keywords[bs]=focus;placement;window behavior;animation;raise;auto raise;windows;frame;titlebar;doubleclick;fokus;smještaj;ponašanje prozora;animacija;podigni;automatski podigni;prozori;okvir;naslovna trak;dvoklik;dvostruki klik; +Keywords[ca]=focus;emplaçament;comportament de la finestra;animació;eleva;eleva automàticament;finestres;marc;barra del títol;doble clic; +Keywords[cs]=Zaměření;Umístění oken;Chování oken;Animace;Okna;Rámeček;Titulek;Dvojklik; +Keywords[csb]=zrëszanié;aktiwòwanié;ùkłôdanié òknów;ùchòwanié òknów;animacëjô;aùtomatné aktiwòwanié;òkna;òkno;rama;tilowô lëstew;dëbeltné klëkniãce; +Keywords[cy]=canolbwynt;lleoliad;ymddygiad ffenestr;bywluniad;codi;hunan-godi;ffenestri;ffrâm;bar-teitl;clic dwbl;dwbl-glic; +Keywords[da]=fokus;placering;vinduesopførsel;animering;Hæv;autohæv;vinduer;ramme;titellinje;dobbeltklik; +Keywords[de]=Aktivierung;Platzierung;Fensterverhalten;Animation;Nach vorn/hinten; Fenster;Rahmen;Umrandung;Titelleiste;Doppelklick; +Keywords[el]=εστίαση;τοποθέτηση;συμπεριφορά παραθύρων;εφέ κίνησης;ανύψωση;αυτόματη ανύψωση;παράθυρα;πλαίσιο;μπάρα τίτλου;διπλό κλικ; +Keywords[en_GB]=focus;placement;window behaviour;animation;raise;auto raise;windows;frame;titlebar;doubleclick; +Keywords[eo]=fokuso;lokigo;fenestrokonduto;spektaklo;malfonigo;aŭtomalfonigo;fenestro;kadro;titollistelo;duklako; +Keywords[es]=foco;ubicación;posición;ventana;comportamiento;animación;frente;pasar al frente;ventanas;marco;barra de título;doble pulsación; +Keywords[et]=fookus;asetus;akende käitumine;animatsioon;tõstmine;automaatne tõstmine;aknad;raam;tiitliriba;topeltklikk;topeltklõps; +Keywords[eu]=fokua;kokalekua;leihoaren portaera;animazioa;aurrera ekarri;auto aurrera ekarri;leihoak;markoa;titulu-barra;klik bikoitza; +Keywords[fa]=کانون، جایدهی، رفتار پنجره، پویانمایی، بالا بردن، بالا بردن خودکار، پنجرهها، قاب، میله عنوان، دو بار فشار; +Keywords[fi]=fokus;sijoittaminen;ikkunan toiminta;animaatio;nosto;automaattinosto;ikkunat;kehys;otsikkorivi;tuplanapsautus;kaksoisnapsautus; +Keywords[fr]=focus;gestion du focus;fenêtre;placement des fenêtres;comportement des fenêtres;animation;fenêtres;barre de titre;double clic;souris;boutons de la souris;dessus;dessous;raise;auto raise; +Keywords[fy]=focusbeleid;vensterplaatsing;finsterferpleatsing;venstergedrag;finstergedrach;focus;window;finster;plaatsing;pleatsing;plaatsingbeleid;pleatsingbelied;animatie;animaasje;voorgrond;foargrûn;vensters;finsters;frame;kader;dubbelklikken;dûbelklikke;fokusbeliid; +Keywords[ga]=fócas;láithriú;oibriú na bhfuinneog;beochan;ardaigh;uathardaigh;fuinneoga;fráma;ceannteideal;déchliceáil; +Keywords[gl]=foco;emprazamento;comportamento da fiestra;animación;subir;auto subir;fiestras;marco;barra de título;dobre presión; +Keywords[he]=התמקדות;מיקום;פעולת חלונות;אנימציה;הנפשה;הבאה לחזית;הבאה אוטומטית לחזית;חלונות;גבול;מסגרת;שורת כותרת;לחיצה כפולה; focus;placement;window behavior;animation;raise;auto raise;windows;frame;titlebar;doubleclick; +Keywords[hi]=फोकस;प्लेसमेंट;विंडो व्यवहार;एनिमेशन;ऊपर उठाएँ;स्वतः ऊपर उठाएँ;विंडोज़;फ्रेम;शीर्षक-पट्टी;डबल-क्लिक; +Keywords[hr]=focus;placement;window behavior;animation;raise;auto raise;windows;frame;titlebar;doubleclick;fokus;smještaj;ponašanje prozora;animacija;pojava;podizanje;automatska pojava;prozori;okvir;naslovna traka;dvostruko klikanje; +Keywords[hu]=fókusz;elhelyezés;ablakelhelyezés;animáció;felemelés;automatikus felemelés;ablakok;keret;címsor;dupla kattintás; +Keywords[is]=virkni glugga;staðsetning;hegðun;högun glugga;hækka;hækka sjálfkrafa;gluggar;titilslá;titilrönd;tvísmella; +Keywords[it]=focus;piazzamento;comportamento finestre;animazione;alza;alza automaticamente;finestre;cornice;barra del titolo;doppio clic; +Keywords[ja]=フォーカス;配置;ウィンドウの挙動;アニメーション;前面へ;自動的に前面へ;ウィンドウ;フレーム;タイトルバー;ダブルクリック; +Keywords[km]=ផ្ដោតអារម្មណ៍;ការដាក់;ឥរិយាបថបង្អួច;ចលនា;លើកឡើង;លើកឡើងស្វ័យប្រវត្តិ;បង្អួច;ស៊ុម;របារចំណងជើង;ចុចទ្វេដង; +Keywords[lt]=focus;placement;window behaviour;animation;raise;auto raise;windows;frame;titlebar;doubleclick;lango išdėstymas;elgesys;langai;rėmelis;lango antraštė; +Keywords[lv]=fokuss;novietojums;loga izturēšanās;animācija;celt;auto celt;logi;kadrs;virsraksta josla;dubultklikšķis; +Keywords[mk]=focus;placement;window behavior;animation;raise;auto raise;windows;frame;titlebar;doubleclick;фокус;позиционирање;однесување на прозорците; анимација;подигање;авто подигање;прозорци;рамка;насловна лента;двоен клик; +Keywords[mt]=focus;placement;window behaviour;animation;raise;auto raise;windows;frame;titlebar;doubleclick; +Keywords[nb]=fokus;plassering;vindusoppførsel;animasjon;hev;autohev;vinduer;ramme;tittelliste;dobbeltklikk; +Keywords[nds]=Fokus;Platzeren;Finsterbedregen;Animatschoon;fokusseren;aktiveren;automaatsch fokusseren;Finster;Rahmen;Titelbalken;Dubbelklick; +Keywords[ne]=फोकस; स्थापना; सञ्झ्याल व्यवहार; एनिमेसन; बृद्धि; स्वत: बृद्धि; सञ्झ्याल; फ्रेम; शीर्षकपट्टी; डबल क्लिक; +Keywords[nl]=focusbeleid;vensterplaatsing;venstergedrag;focus;window;plaatsing;plaatsingbeleid;animatie;voorgrond;vensters;frame;kader;dubbelklikken; +Keywords[nn]=fokus;plassering;vindaugsplassering;vindaugsåtferd;animasjon;hev;automatisk heving;vindauge;ramme;tittellinje;dobbeltklikk; +Keywords[pa]=focus;placement;window behavior;animation;raise;auto raise;windows;frame;titlebar;doubleclick;ਝਰੋਖਾ ਵਿਹਾਰ;ਸਜੀਵਤਾ;ਝਰੋਖੇ; +Keywords[pl]=uaktywnianie;układanie okien;zachowanie okien;animacja;automatyczne uaktywnienie;okno;okna;ramka;pasek tytułowy;podwójne kliknięcie; +Keywords[pt]=foco;posicionamento;comportamento das janelas;animação;elevar;auto-elevar;janelas;contorno;barra de título;duplo-carregar; +Keywords[pt_BR]=foco;posicionamento;comportamento das janelas;animação;elevar;auto-elevar;janelas; quadro;barra de título;clique duplo; +Keywords[ro]=focus;plasare;comportament fereastră;animație;ridicare;automat;ferestre;cadru;bară de titlu;dublu clic; +Keywords[rw]=igaragazarikeye; ugushyira mu mwanya;imyitwarire y'idirishya;ibyinisha;byizamura;amadirishya;ikadiri;umwanyabikoresho;gukandakabiri; +Keywords[se]=fohkus;sajádat;láseláhtten;animašuvdna;lokte;autolokte;láset;rámma;namahusholga;duppalcoahkkal; +Keywords[sk]=fokus;umiestnenie;správanie okien;animácia;zdvihnutie;automatické zdvihnutie;titulok;dvojité kliknutie;rámec;okná; +Keywords[sl]=fokus;postavitev;obnašanje okna;animacija;dvigni;okna;okvir;naslovna vrstica;dvojni klik; +Keywords[sr]=focus;placement;window behaviour;animation;raise;ауто raise;windows;frame;titlebar;doubleclick;фокус;понашање прозора;анимација;прозори;оквир;насловна линија;двоклик; +Keywords[sr@Latn]=focus;placement;window behaviour;animation;raise;auto raise;windows;frame;titlebar;doubleclick;fokus;ponašanje prozora;animacija;prozori;okvir;naslovna linija;dvoklik; +Keywords[sv]=fokus;placering;fönsterbeteende;animering;höj; autohöj;fönster;kant;namnlist;dubbelklick; +Keywords[ta]=பார்வை;இடம்;சாளரபண்பு;உயிர்சித்திரம்;மேலெழுப்பு; தானாக மேலெழுப்பு;சாளரங்கள்;சட்டம்;தலைப்புப்பட்டி;இரண்டு சொடுக்கு; +Keywords[th]=โฟกัส;การวางตำแหน่ง;พฤติกรรมของหน้าต่าง;อนิเมชั่น;ยกขึ้นไว้ด้านบน;ยกขึ้นไว้ด้านบนโดยอัตโนมัติ;หน้าต่าง;กรอบ;แถบหัวเรื่อง;ดับเบิลคลิก; +Keywords[tr]=odak;odak davranış biçimi;pencere yerleşimi;pencere davranışı;Yerleşim davranış biçimi;animasyon;kaldır;otomatik kaldır;çerçeve;çift tıkla; +Keywords[uk]=фокус;розташовування;поведінка вікна;анімація;підняти;піднімати автоматично;вікна;рамка;заголовок;подвійне клацання; +Keywords[uz]=fokuslash;joylashish;oynaning xususiyatlari;animatsiya;oldinga;avto-oldinga;oynalar;freym;sarlavha;ikki marta bosish; +Keywords[uz@cyrillic]=фокуслаш;жойлашиш;ойнанинг хусусиятлари;анимация;олдинга;авто-олдинга;ойналар;фрейм;сарлавҳа;икки марта босиш; +Keywords[vi]=chọn;dịch chuyển;ứng xử cửa sổ;hoạt hình;nâng lên;tự nâng lên;cửa sổ;khung;thanh tiêu đề;nhấn đúp; +Keywords[wa]=focus;plaece;dujhance des purneas;animåcion;rimonter;rimonte tot seu;purneas;cåde;bår di tite;clitchî deus côps;clitchî deus feyes; +Keywords[zh_CN]=focus;placement;window behavior;animation;raise;auto raise;windows;frame;titlebar;doubleclick;焦点;放置;窗口行为;动画;升起;自动升起;窗口;框架;标题栏;双击; +Keywords[zh_TW]=focus;placement;window behavior;animation;raise;auto raise;windows;frame;titlebar;doubleclick;焦點;放置;視窗行為;動畫;抬升;自動抬升;視窗;框架;標題列;雙擊; +Categories=Qt;TDE;X-TDE-settings-desktop; diff --git a/twin/kcmtwin/twinoptions/twintranslucency.desktop b/twin/kcmtwin/twinoptions/twintranslucency.desktop new file mode 100644 index 000000000..2b13a5cf5 --- /dev/null +++ b/twin/kcmtwin/twinoptions/twintranslucency.desktop @@ -0,0 +1,195 @@ +[Desktop Entry] +Icon=kcmkwm +Type=Application +Exec=tdecmshell twintranslucency +X-DocPath=kompmgr/index.html + +X-TDE-ModuleType=Library +X-TDE-Library=twinoptions +X-TDE-FactoryName=twintranslucency + +Name=Translucency +Name[af]=Deursigtigheid +Name[ar]=الشفافية +Name[be]=Празрыстасць +Name[bg]=Полупрозрачност +Name[bn]=সমস্বচ্ছতা +Name[br]=Treuzwel +Name[bs]=Prozirnost +Name[ca]=Translucidesa +Name[cs]=Průhlednost +Name[csb]=Przezérnota +Name[da]=Gennemsigtighed +Name[de]=Transparenz +Name[el]=Hμιδιαφάνεια +Name[eo]=Travidebleco +Name[es]=Translúcido +Name[et]=Läbipaistvus +Name[eu]=Gardentasuna +Name[fa]=نیمۀ شفافی +Name[fi]=Läpikuultavuus +Name[fr]=Transparence +Name[fy]=Trochsichtichheid +Name[ga]=Tréshoilseacht +Name[gl]=Translucidez +Name[he]=שקיפות +Name[hr]=Prozirnost +Name[hu]=Áttetszőség +Name[id]=Tembus Pandang +Name[is]=Gegnsæi +Name[it]=Trasparenza +Name[ja]=透過性 +Name[ka]=ნახევრადგამჭირვალეობა +Name[kk]=Мөлдірлігі +Name[km]=ភាពថ្លា +Name[ko]=반투명 +Name[lt]=Permatomumas +Name[mk]=Провидност +Name[nb]=Gjennomsiktighet +Name[nds]=Dörschienen +Name[ne]=स्वच्छता +Name[nl]=Transparantie +Name[nn]=Gjennomsiktig +Name[pa]=ਪਾਰਦਰਸ਼ੀ +Name[pl]=Przezroczystość +Name[pt]=Transparência +Name[pt_BR]=Translúcido +Name[ro]=Translucență +Name[ru]=Полупрозрачность +Name[rw]=Ukujyakwijima +Name[se]=Čađačuovgi +Name[sk]=Priesvitnosť +Name[sl]=Prosojnost +Name[sr]=Прозирност +Name[sr@Latn]=Prozirnost +Name[sv]=Genomskinlighet +Name[ta]=ஒளிகசிவு +Name[th]=ความโปร่งแสง +Name[tr]=Şeffaflık +Name[tt]=Ütäkürenü +Name[uk]=Прозорість +Name[uz]=Shaffoflik +Name[uz@cyrillic]=Шаффофлик +Name[vi]=Đục & Trong +Name[wa]=Translucidaedje +Name[zh_CN]=透明度 +Name[zh_TW]=透明度 + +Comment=Configure window translucency and shadow management +Comment[af]=Stel die venster deursigtigheid en skaduwee op +Comment[ar]=إعداد تدبيرات شفافية و تظليل النافذة +Comment[be]=Настаўленні празрыстасці вокнаў і кіраванне ценем +Comment[bg]=Настройване на полупрозрачността и сенките на прозорците +Comment[bn]=উইণ্ডোর সমস্বচ্ছতা এবং ছায়া কনফিগার করুন +Comment[bs]=Podesite prozirnost prozora i podesite sjenke +Comment[ca]=Configura la translucidesa de finestres i gestiona l'ombra +Comment[cs]=Nastavení průhlednosti a stínování oken +Comment[csb]=Kònfigùracëjô przezérnotë ë ceniów òknów +Comment[da]=Indstil vinduets gennemsigtighed og skyggehåndtering +Comment[de]=Einrichtung der Fenstertransparenz und Schatten +Comment[el]=Ρύθμιση ημιδιαφάνειας παραθύρου και διαχείρισης σκίασης +Comment[eo]=Agordu administradon de fenestro-travidebleco kaj ombreco. +Comment[es]=Configurar la opacidad de la ventana y gestión de sombra +Comment[et]=Akende läbipaistvuse ja varjude seadistamine +Comment[eu]=Konfiguratu leiho gardentasunak eta itzalen kudeaketa +Comment[fa]=پیکربندی مدیریت نیمۀ شفافی و سایۀ پنجره +Comment[fi]=Muokkaa ikkunoinnin läpikuultavuus ja varjostus +Comment[fr]=Configuration de la transparence et de l'ombre des fenêtres +Comment[fy]=Finstertrochsichtichheid- en -skaadbehear ynstelle +Comment[ga]=Cumraigh tréshoilseacht na fuinneoige agus bainisteoireacht scátha +Comment[gl]=Configurar a xestión de sombras e translucidez das fiestras +Comment[he]=תצורה של שקיפות החלונות וניהול ההצללות +Comment[hr]=Konfiguriranje prozirnosti prozora i upravljanje sjenčanjem +Comment[hu]=Az ablakkezelés áttetszőségi és árnyékolási beállításai +Comment[is]=Stilla gegnsæi glugga og sýsla með skugga +Comment[it]=Configura la trasparenza e le ombre delle finestre +Comment[ja]=ウィンドウの透過性と影の設定 +Comment[ka]=ფანჯრების გამჭირვალობის და ჩრდილების კონფიგურაცია +Comment[kk]=Терезенің мөлдірлігін және көлеңкесін баптау +Comment[km]=កំណត់រចនាសម្ព័ន្ធការគ្រប់គ្រងភាពថ្លា និងស្រមោលរបស់បង្អួច +Comment[lt]=Konfigūruoti langų permatomumą ir šešėlius +Comment[mk]=Конфигурирајте ги провидноста на прозорците и менаџментот на сенки +Comment[nb]=Tilpass behandling av vindusgjennomsiktighet og -skygge +Comment[nds]=Finsterdörschienen un -Schadden instellen +Comment[ne]=सञ्झ्याल स्वच्छता र छायाँ व्यवस्थापन कन्फिगर गर्नुहोस् +Comment[nl]=Venstertransparantie- en -schaduwbeheer instellen +Comment[nn]=Oppsett av gjennomsiktige vindauge og vindaugsskugge +Comment[pa]=ਝਰੋਖਾ ਪਾਰਦਰਸਤਾ ਅਤੇ ਛਾਂ ਪਰਬੰਧਨ ਸੰਰਚਨਾ +Comment[pl]=Konfiguracja przezroczystości i cieni okien +Comment[pt]=Configuração da transparência e sombras de janelas +Comment[pt_BR]=Configura o gerenciamento de sombra e transparência da janela +Comment[ro]=Configurează translucența și umbra ferestrelor +Comment[ru]=Настройка полупрозрачности и теней окна +Comment[rw]=Kuboneza ubuyobozi bw'ukujyakubonerana n'igicucu by'idirishya +Comment[se]=Heivet lášečađačuovgivuođa ja suoivvanasgieđaheami +Comment[sk]=Nastavenie priesvitnosti okien a správcu tieňovania +Comment[sl]=Nastavitve prosojnosti oken in upravljanje s sencami +Comment[sr]=Подешавање прозирности прозора и управљање сенкама +Comment[sr@Latn]=Podešavanje prozirnosti prozora i upravljanje senkama +Comment[sv]=Anpassa fönstergenomskinlighet och skugghantering +Comment[ta]=சாளர ஒளிகசிவு மற்றும் நிழல் மேலாண்மையை வடிவமை +Comment[th]=ปรับแต่งคุณสมบัติความโปร่งแสงและเงาของหน้าต่าง +Comment[tr]=Pencere şeffaflığını ve gölge yönetimini yapılandır +Comment[tt]=Täräzä ütäkürenüe belän külägäsen caylaw +Comment[uk]=Налаштування прозорості вікон та керування затіненням +Comment[uz]=Oynaning shaffofligini va soyasini moslash +Comment[uz@cyrillic]=Ойнанинг шаффофлигини ва соясини мослаш +Comment[vi]=Cấu hình độ đục và trong cùng với bóng râm của cửa sổ +Comment[wa]=Apontiaedje des fonccionålités translucides et d' ombe do manaedjaedje des purneas +Comment[zh_CN]=配置窗口透明度和阴影管理 +Comment[zh_TW]=設定視窗透明度與陰影管理功能 + +Keywords=translucency;transparence;shadows; +Keywords[ar]=الشفافية;شفاف;أظلال; +Keywords[be]=Празрыстасць;Цені;translucency;transparence;shadows; +Keywords[bg]=полупрозрачност; прозрачност; сянка; сенки; translucency; transparence; shadows; +Keywords[bs]=translucency;transparence;shadows;providnost;sjene;sjenke;sjenka; +Keywords[ca]=translucidesa;transparència;ombres; +Keywords[cs]=průhlednost;průsvitnost;stín; +Keywords[csb]=przezérnota;półprzezérnota;przeswiécëna;ceniô;cenie; +Keywords[da]=gennemsigtighed;transparens;skygge; +Keywords[el]=ημιδιαφάνεια;διαφάνεια;σκιές; +Keywords[eo]=Travidebleco; ombroj; +Keywords[es]=translucido;transparente;sombras;opacidad; +Keywords[et]=läbipaistvus;läbipaistev;vari; +Keywords[eu]=gardena;gardentasunak;itzalak; +Keywords[fa]=نیمۀ شفافی، شفافیت، سایهها; +Keywords[fi]=läpikuultavuus; läpinäkyvyys; varjot; +Keywords[fr]=translucidité;translucide;transparence;transparent;ombre; +Keywords[fy]=translucency;trochsichtich;ransparantie;schaduwen;skaden; +Keywords[ga]=tréshoilseacht;gléine;scáthanna; +Keywords[gl]=translucéncia;transparéncia;sombras; +Keywords[he]=translucency;transparence;shadows;הצללה;צל;צללים;שקוף;שקיפות; +Keywords[hr]=translucency;transparence;shadows;prozirnost;sjene;providnost; +Keywords[hu]=áttetszőség;áttetsző;árnyékok; +Keywords[id]=tembus pandang;transparan; bayangan; +Keywords[it]=trasparenza;ombre; +Keywords[ja]=透過性;透明;影; +Keywords[km]=ភាពថ្លា;ថ្លា;ស្រមោល; +Keywords[lt]=translucency;transparence;shadows;permatomumas;šešėliai; +Keywords[mk]=translucency;transparence;shadows;провидност;проѕирност;сенки; +Keywords[nb]=gjennomsiktighet;skygge; +Keywords[nds]=Transparenz;Schadden;Dörschienen; +Keywords[ne]=स्वच्छता;पारदर्शीता;छायाँ; +Keywords[nl]=translucency;transparantie;schaduwen; +Keywords[nn]=gjennomsiktig;skugge; +Keywords[pa]=translucency;transparence;ਛਾਂ; +Keywords[pl]=przezroczystość;półprzezroczystość;prześwitywanie;cień;cienie; +Keywords[pt]=transparência;sombras; +Keywords[pt_BR]=translúcido;transparência;sombras; +Keywords[ro]=translucență;transparență;umbre; +Keywords[rw]=ukujyakwijima;ukubonerana;ibicucu; +Keywords[sl]=prosojnost;prozornost;sence; +Keywords[sr]=translucency;transparence;shadows;провидност;сенке; +Keywords[sr@Latn]=translucency;transparence;shadows;providnost;senke; +Keywords[sv]=genomskinlighet;skuggor; +Keywords[ta]=ஒளிகசிவு;ஊடகத்தன்மை;நிழல்கள்; +Keywords[th]=ความโปร่งแสง;ความโปร่งใส;เงา; +Keywords[tr]=şeffaflık;şeffaf;gölge;opak;opasite; +Keywords[uk]=translucency;transparence;shadows;прозорість;напівпрозорість;тіні; +Keywords[uz]=shaffof;soya; +Keywords[uz@cyrillic]=шаффоф;соя; +Keywords[vi]=mờ đục;trong suốt;bóng râm; +Keywords[wa]=translucency;transparince;translucide;translucidaedje; +Keywords[zh_CN]=透明度;阴影;translucency;transparence;shadows; +Keywords[zh_TW]=translucency;transparence;shadows;透明;陰影; diff --git a/twin/kcmtwin/twinoptions/windows.cpp b/twin/kcmtwin/twinoptions/windows.cpp new file mode 100644 index 000000000..3e2757545 --- /dev/null +++ b/twin/kcmtwin/twinoptions/windows.cpp @@ -0,0 +1,1879 @@ +/* + * windows.cpp + * + * Copyright (c) 1997 Patrick Dowler [email protected] + * Copyright (c) 2001 Waldo Bastian [email protected] + * Copyright (c) 2011-2014 Timothy Pearson <[email protected]> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * + */ + +#include <config.h> + +#include <tqdir.h> +#include <tqlayout.h> +#include <tqslider.h> +#include <tqwhatsthis.h> +#include <tqvbuttongroup.h> +#include <tqcheckbox.h> +#include <tqradiobutton.h> +#include <tqlabel.h> +#include <tqcombobox.h> +#include <tdemessagebox.h> + +#include <kactivelabel.h> +#include <tdelocale.h> +#include <kcolorbutton.h> +#include <tdeconfig.h> +#include <knuminput.h> +#include <tdeapplication.h> +#include <kdialog.h> +#include <dcopclient.h> +#include <tdeglobal.h> +#include <kprocess.h> +#include <tqtabwidget.h> + +#include <X11/X.h> +#include <X11/Xlib.h> +#include <X11/Xutil.h> + +#include "windows.h" + + +// twin config keywords +#define KWIN_FOCUS "FocusPolicy" +#define KWIN_PLACEMENT "Placement" +#define KWIN_MOVE "MoveMode" +#define KWIN_MINIMIZE_ANIM "AnimateMinimize" +#define KWIN_MINIMIZE_ANIM_SPEED "AnimateMinimizeSpeed" +#define KWIN_RESIZE_OPAQUE "ResizeMode" +#define KWIN_GEOMETRY "GeometryTip" +#define KWIN_AUTORAISE_INTERVAL "AutoRaiseInterval" +#define KWIN_AUTORAISE "AutoRaise" +#define KWIN_DELAYFOCUS_INTERVAL "DelayFocusInterval" +#define KWIN_DELAYFOCUS "DelayFocus" +#define KWIN_CLICKRAISE "ClickRaise" +#define KWIN_ANIMSHADE "AnimateShade" +#define KWIN_MOVE_RESIZE_MAXIMIZED "MoveResizeMaximizedWindows" +#define KWIN_ALTTABMODE "AltTabStyle" +#define KWIN_TRAVERSE_ALL "TraverseAll" +#define KWIN_SHOW_POPUP "ShowPopup" +#define KWIN_ROLL_OVER_DESKTOPS "RollOverDesktops" +#define KWIN_SHADEHOVER "ShadeHover" +#define KWIN_SHADEHOVER_INTERVAL "ShadeHoverInterval" +#define KWIN_FOCUS_STEALING "FocusStealingPreventionLevel" +#define KWIN_HIDE_UTILITY "HideUtilityWindowsForInactive" +#define KWIN_SEPARATE_SCREEN_FOCUS "SeparateScreenFocus" +#define KWIN_ACTIVE_MOUSE_SCREEN "ActiveMouseScreen" + +// kwm config keywords +#define KWM_ELECTRIC_BORDER "ElectricBorders" +#define KWM_ELECTRIC_BORDER_DELAY "ElectricBorderDelay" + +//CT 15mar 98 - magics +#define KWM_BRDR_SNAP_ZONE "BorderSnapZone" +#define KWM_BRDR_SNAP_ZONE_DEFAULT 10 +#define KWM_WNDW_SNAP_ZONE "WindowSnapZone" +#define KWM_WNDW_SNAP_ZONE_DEFAULT 10 + +#define MAX_BRDR_SNAP 100 +#define MAX_WNDW_SNAP 100 +#define MAX_EDGE_RES 1000 + +TQString TDECompositor = TDE_COMPOSITOR_BINARY; + +KFocusConfig::~KFocusConfig () +{ + if (standAlone) + delete config; +} + +// removed the LCD display over the slider - this is not good GUI design :) RNolden 051701 +KFocusConfig::KFocusConfig (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); + + // focus policy + fcsBox = new TQButtonGroup(i18n("Focus"),this); + fcsBox->setColumnLayout( 0, Qt::Horizontal ); + + TQBoxLayout *fLay = new TQVBoxLayout(fcsBox->layout(), + KDialog::spacingHint()); + + TQBoxLayout *cLay = new TQHBoxLayout(fLay); + TQLabel *fLabel = new TQLabel(i18n("&Policy:"), fcsBox); + cLay->addWidget(fLabel, 0); + focusCombo = new TQComboBox(false, fcsBox); + focusCombo->insertItem(i18n("Click to Focus"), CLICK_TO_FOCUS); + focusCombo->insertItem(i18n("Focus Follows Mouse"), FOCUS_FOLLOWS_MOUSE); + focusCombo->insertItem(i18n("Focus Under Mouse"), FOCUS_UNDER_MOUSE); + focusCombo->insertItem(i18n("Focus Strictly Under Mouse"), FOCUS_STRICTLY_UNDER_MOUSE); + cLay->addWidget(focusCombo,1 ,Qt::AlignLeft); + fLabel->setBuddy(focusCombo); + + // FIXME, when more policies have been added to TWin + wtstr = i18n("The focus policy is used to determine the active window, i.e." + " the window you can work in. <ul>" + " <li><em>Click to focus:</em> A window becomes active when you click into it." + " This is the behavior you might know from other operating systems.</li>" + " <li><em>Focus follows mouse:</em> Moving the mouse pointer actively on to a" + " normal window activates it. New windows will receive the focus," + " without you having to point the mouse at them explicitly." + " Very practical if you are using the mouse a lot.</li>" + " <li><em>Focus under mouse:</em> The window that happens to be under the" + " mouse pointer is active. If the mouse points nowhere, the last window" + " that was under the mouse has focus." + " New windows will not automatically receive the focus.</li>" + " <li><em>Focus strictly under mouse:</em> Only the window under the mouse pointer is" + " active. If the mouse points nowhere, nothing has focus." + " </ul>" + "Note that 'Focus under mouse' and 'Focus strictly under mouse' prevent certain" + " features such as the Alt+Tab walk through windows dialog in the TDE mode" + " from working properly." + ); + TQWhatsThis::add( focusCombo, wtstr); + TQWhatsThis::add(fLabel, wtstr); + + connect(focusCombo, TQT_SIGNAL(activated(int)), this, TQT_SLOT(setAutoRaiseEnabled()) ); + + // autoraise delay + autoRaiseOn = new TQCheckBox(i18n("Auto &raise"), fcsBox); + fLay->addWidget(autoRaiseOn); + connect(autoRaiseOn,TQT_SIGNAL(toggled(bool)), this, TQT_SLOT(autoRaiseOnTog(bool))); + + autoRaise = new KIntNumInput(500, fcsBox); + autoRaise->setLabel(i18n("Dela&y:"), Qt::AlignVCenter|Qt::AlignLeft); + autoRaise->setRange(0, 3000, 100, true); + autoRaise->setSteps(100,100); + autoRaise->setSuffix(i18n(" msec")); + fLay->addWidget(autoRaise); + + connect(focusCombo, TQT_SIGNAL(activated(int)), this, TQT_SLOT(setDelayFocusEnabled()) ); + + delayFocusOn = new TQCheckBox(i18n("Delay focus"), fcsBox); + fLay->addWidget(delayFocusOn); + connect(delayFocusOn,TQT_SIGNAL(toggled(bool)), this, TQT_SLOT(delayFocusOnTog(bool))); + + delayFocus = new KIntNumInput(500, fcsBox); + delayFocus->setLabel(i18n("Dela&y:"), Qt::AlignVCenter|Qt::AlignLeft); + delayFocus->setRange(0, 3000, 100, true); + delayFocus->setSteps(100,100); + delayFocus->setSuffix(i18n(" msec")); + fLay->addWidget(delayFocus); + + clickRaiseOn = new TQCheckBox(i18n("Click &raises active window"), fcsBox); + connect(clickRaiseOn,TQT_SIGNAL(toggled(bool)), this, TQT_SLOT(clickRaiseOnTog(bool))); + fLay->addWidget(clickRaiseOn); + +// fLay->addColSpacing(0,TQMAX(autoRaiseOn->sizeHint().width(), +// clickRaiseOn->sizeHint().width()) + 15); + + TQLabel* focusStealingLabel = new TQLabel( i18n( "Focus stealing prevention &level:" ), fcsBox); + cLay->addWidget(focusStealingLabel, 0); + focusStealing = new TQComboBox(false, fcsBox); + focusStealing->insertItem( i18n( "Focus Stealing Prevention Level", "None" )); + focusStealing->insertItem( i18n( "Focus Stealing Prevention Level", "Low" )); + focusStealing->insertItem( i18n( "Focus Stealing Prevention Level", "Normal" )); + focusStealing->insertItem( i18n( "Focus Stealing Prevention Level", "High" )); + focusStealing->insertItem( i18n( "Focus Stealing Prevention Level", "Extreme" )); + focusStealingLabel->setBuddy( focusStealing ); + cLay->addWidget(focusStealing,2 ,Qt::AlignLeft); + wtstr = i18n( "<p>This option specifies how much TWin will try to prevent unwanted focus stealing " + "caused by unexpected activation of new windows. (Note: This feature does not " + "work with the Focus Under Mouse or Focus Strictly Under Mouse focus policies.)" + "<ul>" + "<li><em>None:</em> Prevention is turned off " + "and new windows always become activated.</li>" + "<li><em>Low:</em> Prevention is enabled; when some window does not have support " + "for the underlying mechanism and TWin cannot reliably decide whether to " + "activate the window or not, it will be activated. This setting may have both " + "worse and better results than normal level, depending on the applications.</li>" + "<li><em>Normal:</em> Prevention is enabled.</li>" + "<li><em>High:</em> New windows get activated only if no window is currently active " + "or if they belong to the currently active application. This setting is probably " + "not really usable when not using mouse focus policy.</li>" + "<li><em>Extreme:</em> All windows must be explicitly activated by the user.</li>" + "</ul></p>" + "<p>Windows that are prevented from stealing focus are marked as demanding attention, " + "which by default means their taskbar entry will be highlighted. This can be changed " + "in the Notifications control module.</p>" ); + TQWhatsThis::add( focusStealing, wtstr ); + TQWhatsThis::add( focusStealingLabel, wtstr ); + + TQWhatsThis::add( autoRaiseOn, i18n("When this option is enabled, a window in the background will automatically" + " come to the front when the mouse pointer has been over it for some time.") ); + wtstr = i18n("This is the delay after which the window that the mouse pointer is over will automatically" + " come to the front."); + TQWhatsThis::add( autoRaise, wtstr ); + + TQWhatsThis::add( clickRaiseOn, i18n("When this option is enabled, the active window will be brought to the" + " front when you click somewhere into the window contents. To change" + " it for inactive windows, you need to change the settings" + " in the Actions tab.") ); + + TQWhatsThis::add( delayFocusOn, i18n("When this option is enabled, there will be a delay after which the" + " window the mouse pointer is over will become active (receive focus).") ); + TQWhatsThis::add( delayFocus, i18n("This is the delay after which the window the mouse pointer is over" + " will automatically receive focus.") ); + + separateScreenFocus = new TQCheckBox( i18n( "S&eparate screen focus" ), fcsBox ); + fLay->addWidget( separateScreenFocus ); + wtstr = i18n( "When this option is enabled, focus operations are limited only to the active Xinerama screen" ); + TQWhatsThis::add( separateScreenFocus, wtstr ); + + activeMouseScreen = new TQCheckBox( i18n( "Active &mouse screen" ), fcsBox ); + fLay->addWidget( activeMouseScreen ); + wtstr = i18n( "When this option is enabled, active Xinerama screen (where for example new windows appear)" + " is the screen with the mouse pointer. When disabled, the active Xinerama screen is the screen" + " with the focused window. This option is by default disabled for Click to focus and" + " enabled for other focus policies." ); + TQWhatsThis::add( activeMouseScreen, wtstr ); + connect(focusCombo, TQT_SIGNAL(activated(int)), this, TQT_SLOT(updateActiveMouseScreen())); + + if (!TQApplication::desktop()->isVirtualDesktop() || + TQApplication::desktop()->numScreens() == 1) // No Ximerama + { + separateScreenFocus->hide(); + activeMouseScreen->hide(); + } + + lay->addWidget(fcsBox); + + kbdBox = new TQButtonGroup(i18n("Navigation"), this); + kbdBox->setColumnLayout( 0, Qt::Horizontal ); + TQVBoxLayout *kLay = new TQVBoxLayout(kbdBox->layout(), KDialog::spacingHint()); + + altTabPopup = new TQCheckBox( i18n("Show window list while switching windows"), kbdBox ); + kLay->addWidget( altTabPopup ); + + wtstr = i18n("Hold down the Alt key and press the Tab key repeatedly to walk" + " through the windows on the current desktop (the Alt+Tab" + " combination can be reconfigured).\n\n" + "If this checkbox is checked" + " a popup widget is shown, displaying the icons of all windows to" + " walk through and the title of the currently selected one.\n\n" + "Otherwise, the focus is passed to a new window each time Tab" + " is pressed, with no popup widget. In addition, the previously" + " activated window will be sent to the back in this mode."); + TQWhatsThis::add( altTabPopup, wtstr ); + connect(focusCombo, TQT_SIGNAL(activated(int)), this, TQT_SLOT(updateAltTabMode())); + + traverseAll = new TQCheckBox( i18n( "&Traverse windows on all desktops" ), kbdBox ); + kLay->addWidget( traverseAll ); + + wtstr = i18n( "Leave this option disabled if you want to limit walking through" + " windows to the current desktop." ); + TQWhatsThis::add( traverseAll, wtstr ); + + rollOverDesktops = new TQCheckBox( i18n("Desktop navi&gation wraps around"), kbdBox ); + kLay->addWidget(rollOverDesktops); + + wtstr = i18n( "Enable this option if you want keyboard or active desktop border navigation beyond" + " the edge of a desktop to take you to the opposite edge of the new desktop." ); + TQWhatsThis::add( rollOverDesktops, wtstr ); + + showPopupinfo = new TQCheckBox( i18n("Popup &desktop name on desktop switch"), kbdBox ); + kLay->addWidget(showPopupinfo); + + wtstr = i18n( "Enable this option if you wish to see the current desktop" + " name popup whenever the current desktop is changed." ); + TQWhatsThis::add( showPopupinfo, wtstr ); + + lay->addWidget(kbdBox); + + lay->addStretch(); + + // Any changes goes to slotChanged() + connect(focusCombo, TQT_SIGNAL(activated(int)), TQT_SLOT(changed())); + connect(fcsBox, TQT_SIGNAL(clicked(int)), TQT_SLOT(changed())); + connect(autoRaise, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(changed())); + connect(delayFocus, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(changed())); + connect(separateScreenFocus, TQT_SIGNAL(clicked()), TQT_SLOT(changed())); + connect(activeMouseScreen, TQT_SIGNAL(clicked()), TQT_SLOT(changed())); + connect(altTabPopup, TQT_SIGNAL(clicked()), TQT_SLOT(changed())); + connect(traverseAll, TQT_SIGNAL(clicked()), TQT_SLOT(changed())); + connect(rollOverDesktops, TQT_SIGNAL(clicked()), TQT_SLOT(changed())); + connect(showPopupinfo, TQT_SIGNAL(clicked()), TQT_SLOT(changed())); + connect(focusStealing, TQT_SIGNAL(activated(int)), TQT_SLOT(changed())); + + load(); +} + + +int KFocusConfig::getFocus() +{ + return focusCombo->currentItem(); +} + +void KFocusConfig::setFocus(int foc) +{ + focusCombo->setCurrentItem(foc); + + // this will disable/hide the auto raise delay widget if focus==click + setAutoRaiseEnabled(); + updateAltTabMode(); +} + +void KFocusConfig::updateAltTabMode() +{ + // not KDE-style Alt+Tab with unreasonable focus policies + altTabPopup->setEnabled( focusCombo->currentItem() == 0 || focusCombo->currentItem() == 1 ); +} + +void KFocusConfig::setAutoRaiseInterval(int tb) +{ + autoRaise->setValue(tb); +} + +void KFocusConfig::setDelayFocusInterval(int tb) +{ + delayFocus->setValue(tb); +} + +int KFocusConfig::getAutoRaiseInterval() +{ + return autoRaise->value(); +} + +int KFocusConfig::getDelayFocusInterval() +{ + return delayFocus->value(); +} + +void KFocusConfig::setAutoRaise(bool on) +{ + autoRaiseOn->setChecked(on); +} + +void KFocusConfig::setDelayFocus(bool on) +{ + delayFocusOn->setChecked(on); +} + +void KFocusConfig::setClickRaise(bool on) +{ + clickRaiseOn->setChecked(on); +} + +void KFocusConfig::setAutoRaiseEnabled() +{ + // the auto raise related widgets are: autoRaise + if ( focusCombo->currentItem() != CLICK_TO_FOCUS ) + { + autoRaiseOn->setEnabled(true); + autoRaiseOnTog(autoRaiseOn->isChecked()); + } + else + { + autoRaiseOn->setEnabled(false); + autoRaiseOnTog(false); + } +} + +void KFocusConfig::setDelayFocusEnabled() +{ + // the delayed focus related widgets are: delayFocus + if ( focusCombo->currentItem() != CLICK_TO_FOCUS ) + { + delayFocusOn->setEnabled(true); + delayFocusOnTog(delayFocusOn->isChecked()); + } + else + { + delayFocusOn->setEnabled(false); + delayFocusOnTog(false); + } +} + +void KFocusConfig::autoRaiseOnTog(bool a) { + autoRaise->setEnabled(a); + clickRaiseOn->setEnabled( !a ); +} + +void KFocusConfig::delayFocusOnTog(bool a) { + delayFocus->setEnabled(a); +} + +void KFocusConfig::clickRaiseOnTog(bool ) { +} + +void KFocusConfig::setSeparateScreenFocus(bool s) { + separateScreenFocus->setChecked(s); +} + +void KFocusConfig::setActiveMouseScreen(bool a) { + activeMouseScreen->setChecked(a); +} + +void KFocusConfig::updateActiveMouseScreen() +{ + // on by default for non click to focus policies + TDEConfigGroup cfg( config, "Windows" ); + if( !cfg.hasKey( KWIN_ACTIVE_MOUSE_SCREEN )) + setActiveMouseScreen( focusCombo->currentItem() != 0 ); +} + +void KFocusConfig::setAltTabMode(bool a) { + altTabPopup->setChecked(a); +} + +void KFocusConfig::setTraverseAll(bool a) { + traverseAll->setChecked(a); +} + +void KFocusConfig::setRollOverDesktops(bool a) { + rollOverDesktops->setChecked(a); +} + +void KFocusConfig::setShowPopupinfo(bool a) { + showPopupinfo->setChecked(a); +} + +void KFocusConfig::setFocusStealing(int l) { + l = KMAX( 0, KMIN( 4, l )); + focusStealing->setCurrentItem(l); +} + +void KFocusConfig::load( void ) +{ + TQString key; + + config->setGroup( "Windows" ); + + key = config->readEntry(KWIN_FOCUS); + if( key == "ClickToFocus") + setFocus(CLICK_TO_FOCUS); + else if( key == "FocusFollowsMouse") + setFocus(FOCUS_FOLLOWS_MOUSE); + else if(key == "FocusUnderMouse") + setFocus(FOCUS_UNDER_MOUSE); + else if(key == "FocusStrictlyUnderMouse") + setFocus(FOCUS_STRICTLY_UNDER_MOUSE); + + int k = config->readNumEntry(KWIN_AUTORAISE_INTERVAL,750); + setAutoRaiseInterval(k); + + k = config->readNumEntry(KWIN_DELAYFOCUS_INTERVAL,750); + setDelayFocusInterval(k); + + key = config->readEntry(KWIN_AUTORAISE); + setAutoRaise(key == "on"); + key = config->readEntry(KWIN_DELAYFOCUS); + setDelayFocus(key == "on"); + key = config->readEntry(KWIN_CLICKRAISE); + setClickRaise(key != "off"); + setAutoRaiseEnabled(); // this will disable/hide the auto raise delay widget if focus==click + setDelayFocusEnabled(); + + setSeparateScreenFocus( config->readBoolEntry(KWIN_SEPARATE_SCREEN_FOCUS, false)); + // on by default for non click to focus policies + setActiveMouseScreen( config->readBoolEntry(KWIN_ACTIVE_MOUSE_SCREEN, focusCombo->currentItem() != 0 )); + + key = config->readEntry(KWIN_ALTTABMODE, "KDE"); + setAltTabMode(key == "KDE"); + + setRollOverDesktops( config->readBoolEntry(KWIN_ROLL_OVER_DESKTOPS, true )); + + config->setGroup( "PopupInfo" ); + setShowPopupinfo( config->readBoolEntry(KWIN_SHOW_POPUP, false )); + + // setFocusStealing( config->readNumEntry(KWIN_FOCUS_STEALING, 2 )); + // TODO default to low for now + setFocusStealing( config->readNumEntry(KWIN_FOCUS_STEALING, 1 )); + + config->setGroup( "TabBox" ); + setTraverseAll( config->readBoolEntry(KWIN_TRAVERSE_ALL, false )); + + config->setGroup("Desktops"); + emit TDECModule::changed(false); +} + +void KFocusConfig::save( void ) +{ + int v; + + config->setGroup( "Windows" ); + + v = getFocus(); + if (v == CLICK_TO_FOCUS) + config->writeEntry(KWIN_FOCUS,"ClickToFocus"); + else if (v == FOCUS_UNDER_MOUSE) + config->writeEntry(KWIN_FOCUS,"FocusUnderMouse"); + else if (v == FOCUS_STRICTLY_UNDER_MOUSE) + config->writeEntry(KWIN_FOCUS,"FocusStrictlyUnderMouse"); + else + config->writeEntry(KWIN_FOCUS,"FocusFollowsMouse"); + + v = getAutoRaiseInterval(); + if (v <0) v = 0; + config->writeEntry(KWIN_AUTORAISE_INTERVAL,v); + + v = getDelayFocusInterval(); + if (v <0) v = 0; + config->writeEntry(KWIN_DELAYFOCUS_INTERVAL,v); + + if (autoRaiseOn->isChecked()) + config->writeEntry(KWIN_AUTORAISE, "on"); + else + config->writeEntry(KWIN_AUTORAISE, "off"); + + if (delayFocusOn->isChecked()) + config->writeEntry(KWIN_DELAYFOCUS, "on"); + else + config->writeEntry(KWIN_DELAYFOCUS, "off"); + + if (clickRaiseOn->isChecked()) + config->writeEntry(KWIN_CLICKRAISE, "on"); + else + config->writeEntry(KWIN_CLICKRAISE, "off"); + + config->writeEntry(KWIN_SEPARATE_SCREEN_FOCUS, separateScreenFocus->isChecked()); + config->writeEntry(KWIN_ACTIVE_MOUSE_SCREEN, activeMouseScreen->isChecked()); + + if (altTabPopup->isChecked()) + config->writeEntry(KWIN_ALTTABMODE, "KDE"); + else + config->writeEntry(KWIN_ALTTABMODE, "CDE"); + + config->writeEntry( KWIN_ROLL_OVER_DESKTOPS, rollOverDesktops->isChecked()); + + config->setGroup( "PopupInfo" ); + config->writeEntry( KWIN_SHOW_POPUP, showPopupinfo->isChecked()); + + config->writeEntry(KWIN_FOCUS_STEALING, focusStealing->currentItem()); + + config->setGroup( "TabBox" ); + config->writeEntry( KWIN_TRAVERSE_ALL , traverseAll->isChecked()); + + config->setGroup("Desktops"); + + if (standAlone) + { + config->sync(); + if ( !kapp->dcopClient()->isAttached() ) + kapp->dcopClient()->attach(); + kapp->dcopClient()->send("twin*", "", "reconfigure()", TQString("")); + } + emit TDECModule::changed(false); +} + +void KFocusConfig::defaults() +{ + setAutoRaiseInterval(0); + setDelayFocusInterval(0); + setFocus(CLICK_TO_FOCUS); + setAutoRaise(false); + setDelayFocus(false); + setClickRaise(true); + setSeparateScreenFocus( false ); + // on by default for non click to focus policies + setActiveMouseScreen( focusCombo->currentItem() != 0 ); + setAltTabMode(true); + setTraverseAll( false ); + setRollOverDesktops(true); + setShowPopupinfo(false); + // setFocusStealing(2); + // TODO default to low for now + setFocusStealing(1); + emit TDECModule::changed(true); +} + +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())); + + electricBox = new TQVButtonGroup(i18n("Active Desktop Borders"), this); + electricBox->setMargin(15); + + TQWhatsThis::add( electricBox, i18n("If this option is enabled, moving the mouse to a screen border" + " will change your desktop. This is e.g. useful if you want to drag windows from one desktop" + " to the other.") ); + active_disable = new TQRadioButton(i18n("D&isabled"), electricBox); + active_move = new TQRadioButton(i18n("Only &when moving windows"), electricBox); + active_always = new TQRadioButton(i18n("A&lways enabled"), electricBox); + + delays = new KIntNumInput(10, electricBox); + delays->setRange(0, MAX_EDGE_RES, 50, true); + delays->setSuffix(i18n(" msec")); + delays->setLabel(i18n("Desktop &switch delay:")); + TQWhatsThis::add( delays, i18n("Here you can set a delay for switching desktops using the active" + " borders feature. Desktops will be switched after the mouse has been pushed against a screen border" + " for the specified number of milliseconds.") ); + + connect( electricBox, TQT_SIGNAL(clicked(int)), this, TQT_SLOT(setEBorders())); + + // Any changes goes to slotChanged() + connect(electricBox, TQT_SIGNAL(clicked(int)), TQT_SLOT(changed())); + connect(delays, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(changed())); + + lay->addWidget(electricBox); + + 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)); + + setElectricBorders(config->readNumEntry(KWM_ELECTRIC_BORDER, 0)); + setElectricBorderDelay(config->readNumEntry(KWM_ELECTRIC_BORDER_DELAY, 150)); + + 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(KWM_ELECTRIC_BORDER, getElectricBorders()); + config->writeEntry(KWM_ELECTRIC_BORDER_DELAY,getElectricBorderDelay()); + + 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); + setElectricBorders(0); + setElectricBorderDelay(150); + setHideUtilityWindowsForInactive( true ); + emit TDECModule::changed(true); +} + +void KAdvancedConfig::setEBorders() +{ + delays->setEnabled(!active_disable->isChecked()); +} + +int KAdvancedConfig::getElectricBorders() +{ + if (active_move->isChecked()) + return 1; + if (active_always->isChecked()) + return 2; + return 0; +} + +int KAdvancedConfig::getElectricBorderDelay() +{ + return delays->value(); +} + +void KAdvancedConfig::setElectricBorders(int i){ + switch(i) + { + case 1: active_move->setChecked(true); break; + case 2: active_always->setChecked(true); break; + default: active_disable->setChecked(true); break; + } + setEBorders(); +} + +void KAdvancedConfig::setElectricBorderDelay(int delay) +{ + delays->setValue(delay); +} + + +KMovingConfig::~KMovingConfig () +{ + if (standAlone) + delete config; +} + +KMovingConfig::KMovingConfig (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()); + + windowsBox = new TQButtonGroup(i18n("Windows"), this); + windowsBox->setColumnLayout( 0, Qt::Horizontal ); + + TQBoxLayout *wLay = new TQVBoxLayout (windowsBox->layout(), KDialog::spacingHint()); + + TQBoxLayout *bLay = new TQVBoxLayout; + wLay->addLayout(bLay); + + opaque = new TQCheckBox(i18n("Di&splay content in moving windows"), windowsBox); + bLay->addWidget(opaque); + TQWhatsThis::add( opaque, i18n("Enable this option if you want a window's content to be fully shown" + " while moving it, instead of just showing a window 'skeleton'. The result may not be satisfying" + " on slow machines without graphic acceleration.") ); + + resizeOpaqueOn = new TQCheckBox(i18n("Display content in &resizing windows"), windowsBox); + bLay->addWidget(resizeOpaqueOn); + TQWhatsThis::add( resizeOpaqueOn, i18n("Enable this option if you want a window's content to be shown" + " while resizing it, instead of just showing a window 'skeleton'. The result may not be satisfying" + " on slow machines.") ); + + geometryTipOn = new TQCheckBox(i18n("Display window &geometry when moving or resizing"), windowsBox); + bLay->addWidget(geometryTipOn); + TQWhatsThis::add(geometryTipOn, i18n("Enable this option if you want a window's geometry to be displayed" + " while it is being moved or resized. The window position relative" + " to the top-left corner of the screen is displayed together with" + " its size.")); + + TQGridLayout *rLay = new TQGridLayout(2,3); + bLay->addLayout(TQT_TQLAYOUT(rLay)); + rLay->setColStretch(0,0); + rLay->setColStretch(1,1); + + minimizeAnimOn = new TQCheckBox(i18n("Animate minimi&ze and restore"), + windowsBox); + TQWhatsThis::add( minimizeAnimOn, i18n("Enable this option if you want an animation shown when" + " windows are minimized or restored." ) ); + rLay->addWidget(minimizeAnimOn,0,0); + + minimizeAnimSlider = new TQSlider(0,10,10,0,Qt::Horizontal, windowsBox); + minimizeAnimSlider->setSteps(1, 1); + // TQSlider::Below clashes with a X11/X.h #define + #undef Below + minimizeAnimSlider->setTickmarks(TQSlider::Below); + rLay->addMultiCellWidget(minimizeAnimSlider,0,0,1,2); + + connect(minimizeAnimOn, TQT_SIGNAL(toggled(bool)), this, TQT_SLOT(setMinimizeAnim(bool))); + connect(minimizeAnimSlider, TQT_SIGNAL(valueChanged(int)), this, TQT_SLOT(setMinimizeAnimSpeed(int))); + + minimizeAnimSlowLabel= new TQLabel(i18n("Slow"),windowsBox); + minimizeAnimSlowLabel->setAlignment(Qt::AlignTop|Qt::AlignLeft); + rLay->addWidget(minimizeAnimSlowLabel,1,1); + + minimizeAnimFastLabel= new TQLabel(i18n("Fast"),windowsBox); + minimizeAnimFastLabel->setAlignment(Qt::AlignTop|Qt::AlignRight); + rLay->addWidget(minimizeAnimFastLabel,1,2); + + wtstr = i18n("Here you can set the speed of the animation shown when windows are" + " minimized and restored. "); + TQWhatsThis::add( minimizeAnimSlider, wtstr ); + TQWhatsThis::add( minimizeAnimSlowLabel, wtstr ); + TQWhatsThis::add( minimizeAnimFastLabel, wtstr ); + + moveResizeMaximized = new TQCheckBox( i18n("Allow moving and resizing o&f maximized windows"), windowsBox); + bLay->addWidget(moveResizeMaximized); + TQWhatsThis::add(moveResizeMaximized, i18n("When enabled, this feature activates the border of maximized windows" + " and allows you to move or resize them," + " just like for normal windows")); + + TQBoxLayout *vLay = new TQHBoxLayout(bLay); + + TQLabel *plcLabel = new TQLabel(i18n("&Placement:"),windowsBox); + + placementCombo = new TQComboBox(false, windowsBox); + placementCombo->insertItem(i18n("Smart"), SMART_PLACEMENT); + placementCombo->insertItem(i18n("Maximizing"), MAXIMIZING_PLACEMENT); + placementCombo->insertItem(i18n("Cascade"), CASCADE_PLACEMENT); + placementCombo->insertItem(i18n("Random"), RANDOM_PLACEMENT); + placementCombo->insertItem(i18n("Centered"), CENTERED_PLACEMENT); + placementCombo->insertItem(i18n("Zero-Cornered"), ZEROCORNERED_PLACEMENT); + // CT: disabling is needed as long as functionality misses in twin + //placementCombo->insertItem(i18n("Interactive"), INTERACTIVE_PLACEMENT); + //placementCombo->insertItem(i18n("Manual"), MANUAL_PLACEMENT); + placementCombo->setCurrentItem(SMART_PLACEMENT); + + // FIXME, when more policies have been added to TWin + wtstr = i18n("The placement policy determines where a new window" + " will appear on the desktop." + " <ul>" + " <li><em>Smart</em> will try to achieve a minimum overlap of windows</li>" + " <li><em>Maximizing</em> will try to maximize every window to fill the whole screen." + " It might be useful to selectively affect placement of some windows using" + " the window-specific settings.</li>" + " <li><em>Cascade</em> will cascade the windows</li>" + " <li><em>Random</em> will use a random position</li>" + " <li><em>Centered</em> will place the window centered</li>" + " <li><em>Zero-Cornered</em> will place the window in the top-left corner</li>" + "</ul>") ; + + TQWhatsThis::add( plcLabel, wtstr); + TQWhatsThis::add( placementCombo, wtstr); + + plcLabel->setBuddy(placementCombo); + vLay->addWidget(plcLabel, 0); + vLay->addWidget(placementCombo, 1, Qt::AlignLeft); + + bLay->addSpacing(10); + + lay->addWidget(windowsBox); + + //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); + + + //CT 15mar98 - add EdgeResistance, BorderAttractor, WindowsAttractor config + MagicBox = new TQVButtonGroup(i18n("Snap Zones"), this); + MagicBox->setMargin(15); + + BrdrSnap = new KIntNumInput(10, MagicBox); + BrdrSnap->setSpecialValueText( i18n("none") ); + BrdrSnap->setRange( 0, MAX_BRDR_SNAP); + BrdrSnap->setLabel(i18n("&Border snap zone:")); + BrdrSnap->setSteps(1,10); + TQWhatsThis::add( BrdrSnap, i18n("Here you can set the snap zone for screen borders, i.e." + " the 'strength' of the magnetic field which will make windows snap to the border when" + " moved near it.") ); + + WndwSnap = new KIntNumInput(10, MagicBox); + WndwSnap->setSpecialValueText( i18n("none") ); + WndwSnap->setRange( 0, MAX_WNDW_SNAP); + WndwSnap->setLabel(i18n("&Window snap zone:")); + BrdrSnap->setSteps(1,10); + TQWhatsThis::add( WndwSnap, i18n("Here you can set the snap zone for windows, i.e." + " the 'strength' of the magnetic field which will make windows snap to each other when" + " they're moved near another window.") ); + + OverlapSnap=new TQCheckBox(i18n("Snap windows onl&y when overlapping"),MagicBox); + TQWhatsThis::add( OverlapSnap, i18n("Here you can set that windows will be only" + " snapped if you try to overlap them, i.e. they will not be snapped if the windows" + " comes only near another window or border.") ); + + lay->addWidget(MagicBox); + lay->addStretch(); + + load(); + + // Any changes goes to slotChanged() + connect( opaque, TQT_SIGNAL(clicked()), TQT_SLOT(changed())); + connect( resizeOpaqueOn, TQT_SIGNAL(clicked()), TQT_SLOT(changed())); + connect( geometryTipOn, TQT_SIGNAL(clicked()), TQT_SLOT(changed())); + connect( minimizeAnimOn, TQT_SIGNAL(clicked() ), TQT_SLOT(changed())); + connect( minimizeAnimSlider, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(changed())); + connect( moveResizeMaximized, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed())); + connect( placementCombo, TQT_SIGNAL(activated(int)), TQT_SLOT(changed())); + connect( BrdrSnap, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(changed())); + connect( BrdrSnap, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(slotBrdrSnapChanged(int))); + connect( WndwSnap, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(changed())); + connect( WndwSnap, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(slotWndwSnapChanged(int))); + connect( OverlapSnap, TQT_SIGNAL(clicked()), TQT_SLOT(changed())); + + // To get suffix to BrdrSnap and WndwSnap inputs with default values. + slotBrdrSnapChanged(BrdrSnap->value()); + slotWndwSnapChanged(WndwSnap->value()); +} + +int KMovingConfig::getMove() +{ + return (opaque->isChecked())? OPAQUE : TRANSPARENT; +} + +void KMovingConfig::setMove(int trans) +{ + opaque->setChecked(trans == OPAQUE); +} + +void KMovingConfig::setGeometryTip(bool showGeometryTip) +{ + geometryTipOn->setChecked(showGeometryTip); +} + +bool KMovingConfig::getGeometryTip() +{ + return geometryTipOn->isChecked(); +} + +// placement policy --- CT 31jan98 --- +int KMovingConfig::getPlacement() +{ + return placementCombo->currentItem(); +} + +void KMovingConfig::setPlacement(int plac) +{ + placementCombo->setCurrentItem(plac); +} + +bool KMovingConfig::getMinimizeAnim() +{ + return minimizeAnimOn->isChecked(); +} + +int KMovingConfig::getMinimizeAnimSpeed() +{ + return minimizeAnimSlider->value(); +} + +void KMovingConfig::setMinimizeAnim(bool anim) +{ + minimizeAnimOn->setChecked( anim ); + minimizeAnimSlider->setEnabled( anim ); + minimizeAnimSlowLabel->setEnabled( anim ); + minimizeAnimFastLabel->setEnabled( anim ); +} + +void KMovingConfig::setMinimizeAnimSpeed(int speed) +{ + minimizeAnimSlider->setValue(speed); +} + +int KMovingConfig::getResizeOpaque() +{ + return (resizeOpaqueOn->isChecked())? RESIZE_OPAQUE : RESIZE_TRANSPARENT; +} + +void KMovingConfig::setResizeOpaque(int opaque) +{ + resizeOpaqueOn->setChecked(opaque == RESIZE_OPAQUE); +} + +void KMovingConfig::setMoveResizeMaximized(bool a) { + moveResizeMaximized->setChecked(a); +} + +void KMovingConfig::slotBrdrSnapChanged(int value) { + BrdrSnap->setSuffix(i18n(" pixel", " pixels", value)); +} + +void KMovingConfig::slotWndwSnapChanged(int value) { + WndwSnap->setSuffix(i18n(" pixel", " pixels", value)); +} + +void KMovingConfig::load( void ) +{ + TQString key; + + config->setGroup( "Windows" ); + + key = config->readEntry(KWIN_MOVE, "Opaque"); + if( key == "Transparent") + setMove(TRANSPARENT); + else if( key == "Opaque") + setMove(OPAQUE); + + //CT 17Jun1998 - variable animation speed from 0 (none!!) to 10 (max) + bool anim = config->readBoolEntry(KWIN_MINIMIZE_ANIM, true ); + int animSpeed = config->readNumEntry(KWIN_MINIMIZE_ANIM_SPEED, 5); + if( animSpeed < 1 ) animSpeed = 0; + if( animSpeed > 10 ) animSpeed = 10; + setMinimizeAnim( anim ); + setMinimizeAnimSpeed( animSpeed ); + + // DF: please keep the default consistent with twin (options.cpp line 145) + key = config->readEntry(KWIN_RESIZE_OPAQUE, "Opaque"); + if( key == "Opaque") + setResizeOpaque(RESIZE_OPAQUE); + else if ( key == "Transparent") + setResizeOpaque(RESIZE_TRANSPARENT); + + //KS 10Jan2003 - Geometry Tip during window move/resize + bool showGeomTip = config->readBoolEntry(KWIN_GEOMETRY, false); + setGeometryTip( showGeomTip ); + + // placement policy --- CT 19jan98 --- + key = config->readEntry(KWIN_PLACEMENT); + //CT 13mar98 interactive placement +// if( key.left(11) == "interactive") { +// setPlacement(INTERACTIVE_PLACEMENT); +// int comma_pos = key.find(','); +// if (comma_pos < 0) +// interactiveTrigger->setValue(0); +// else +// interactiveTrigger->setValue (key.right(key.length() +// - comma_pos).toUInt(0)); +// iTLabel->setEnabled(true); +// interactiveTrigger->show(); +// } +// else { +// interactiveTrigger->setValue(0); +// iTLabel->setEnabled(false); +// interactiveTrigger->hide(); + if( key == "Random") + setPlacement(RANDOM_PLACEMENT); + else if( key == "Cascade") + setPlacement(CASCADE_PLACEMENT); //CT 31jan98 + //CT 31mar98 manual placement + else if( key == "manual") + setPlacement(MANUAL_PLACEMENT); + else if( key == "Centered") + setPlacement(CENTERED_PLACEMENT); + else if( key == "ZeroCornered") + setPlacement(ZEROCORNERED_PLACEMENT); + else if( key == "Maximizing") + setPlacement(MAXIMIZING_PLACEMENT); + else + setPlacement(SMART_PLACEMENT); +// } + + setMoveResizeMaximized(config->readBoolEntry(KWIN_MOVE_RESIZE_MAXIMIZED, false)); + + int v; + + v = config->readNumEntry(KWM_BRDR_SNAP_ZONE, KWM_BRDR_SNAP_ZONE_DEFAULT); + if (v > MAX_BRDR_SNAP) setBorderSnapZone(MAX_BRDR_SNAP); + else if (v < 0) setBorderSnapZone (0); + else setBorderSnapZone(v); + + v = config->readNumEntry(KWM_WNDW_SNAP_ZONE, KWM_WNDW_SNAP_ZONE_DEFAULT); + if (v > MAX_WNDW_SNAP) setWindowSnapZone(MAX_WNDW_SNAP); + else if (v < 0) setWindowSnapZone (0); + else setWindowSnapZone(v); + + OverlapSnap->setChecked(config->readBoolEntry("SnapOnlyWhenOverlapping",false)); + emit TDECModule::changed(false); +} + +void KMovingConfig::save( void ) +{ + int v; + + config->setGroup( "Windows" ); + + v = getMove(); + if (v == TRANSPARENT) + config->writeEntry(KWIN_MOVE,"Transparent"); + else + config->writeEntry(KWIN_MOVE,"Opaque"); + + config->writeEntry(KWIN_GEOMETRY, getGeometryTip()); + + // placement policy --- CT 31jan98 --- + v =getPlacement(); + if (v == RANDOM_PLACEMENT) + config->writeEntry(KWIN_PLACEMENT, "Random"); + else if (v == CASCADE_PLACEMENT) + config->writeEntry(KWIN_PLACEMENT, "Cascade"); + else if (v == CENTERED_PLACEMENT) + config->writeEntry(KWIN_PLACEMENT, "Centered"); + else if (v == ZEROCORNERED_PLACEMENT) + config->writeEntry(KWIN_PLACEMENT, "ZeroCornered"); + else if (v == MAXIMIZING_PLACEMENT) + config->writeEntry(KWIN_PLACEMENT, "Maximizing"); +//CT 13mar98 manual and interactive placement +// else if (v == MANUAL_PLACEMENT) +// config->writeEntry(KWIN_PLACEMENT, "Manual"); +// else if (v == INTERACTIVE_PLACEMENT) { +// TQString tmpstr = TQString("Interactive,%1").arg(interactiveTrigger->value()); +// config->writeEntry(KWIN_PLACEMENT, tmpstr); +// } + else + config->writeEntry(KWIN_PLACEMENT, "Smart"); + + config->writeEntry(KWIN_MINIMIZE_ANIM, getMinimizeAnim()); + config->writeEntry(KWIN_MINIMIZE_ANIM_SPEED, getMinimizeAnimSpeed()); + + v = getResizeOpaque(); + if (v == RESIZE_OPAQUE) + config->writeEntry(KWIN_RESIZE_OPAQUE, "Opaque"); + else + config->writeEntry(KWIN_RESIZE_OPAQUE, "Transparent"); + + config->writeEntry(KWIN_MOVE_RESIZE_MAXIMIZED, moveResizeMaximized->isChecked()); + + + config->writeEntry(KWM_BRDR_SNAP_ZONE,getBorderSnapZone()); + config->writeEntry(KWM_WNDW_SNAP_ZONE,getWindowSnapZone()); + config->writeEntry("SnapOnlyWhenOverlapping",OverlapSnap->isChecked()); + + if (standAlone) + { + config->sync(); + if ( !kapp->dcopClient()->isAttached() ) + kapp->dcopClient()->attach(); + kapp->dcopClient()->send("twin*", "", "reconfigure()", TQString("")); + } + emit TDECModule::changed(false); +} + +void KMovingConfig::defaults() +{ + setMove(OPAQUE); + setResizeOpaque(RESIZE_TRANSPARENT); + setGeometryTip(false); + setPlacement(SMART_PLACEMENT); + setMoveResizeMaximized(false); + + //copied from kcontrol/konq/twindesktop, aleXXX + setWindowSnapZone(KWM_WNDW_SNAP_ZONE_DEFAULT); + setBorderSnapZone(KWM_BRDR_SNAP_ZONE_DEFAULT); + OverlapSnap->setChecked(false); + + setMinimizeAnim( true ); + setMinimizeAnimSpeed( 5 ); + emit TDECModule::changed(true); +} + +int KMovingConfig::getBorderSnapZone() { + return BrdrSnap->value(); +} + +void KMovingConfig::setBorderSnapZone(int pxls) { + BrdrSnap->setValue(pxls); +} + +int KMovingConfig::getWindowSnapZone() { + return WndwSnap->value(); +} + +void KMovingConfig::setWindowSnapZone(int pxls) { + WndwSnap->setValue(pxls); +} + +KTranslucencyConfig::~KTranslucencyConfig () +{ + if (standAlone) + delete config; + if (kompmgr) + kompmgr->detach(); +} + +KTranslucencyConfig::KTranslucencyConfig (bool _standAlone, TDEConfig *_config, TQWidget *parent, const char *) + : TDECModule(parent, "kcmkwm"), config(_config), standAlone(_standAlone) +{ + kompmgr = 0L; + resetKompmgr_ = FALSE; + TQVBoxLayout *lay = new TQVBoxLayout (this); + kompmgrAvailable_ = kompmgrAvailable(); + if (!kompmgrAvailable_){ + KActiveLabel *label = new KActiveLabel(i18n("<qt><b>It seems that alpha channel support is not available.</b><br><br>" + "Please make sure you have " + "<a href=\"http://www.freedesktop.org/\">Xorg ≥ 6.8</a>," + " and installed the composition manager that came with twin.<br>" + "Also, make sure you have the following entries in your XConfig (e.g. /etc/X11/xorg.conf):<br><br>" + "<i>Section \"Extensions\"<br>" + "Option \"Composite\" \"Enable\"<br>" + "EndSection</i><br><br>" + "And if your GPU provides hardware-accelerated Xrender support (mainly nVidia cards):<br><br>" + "<i>Option \"RenderAccel\" \"true\"</i><br>" + "In <i>Section \"Device\"</i></qt>"), this); + lay->addWidget(label); + } + else + { + TQTabWidget *tabW = new TQTabWidget(this); + TQWidget *tGroup = new TQWidget(tabW); + TQVBoxLayout *vLay = new TQVBoxLayout (tGroup,KDialog::marginHint(), KDialog::spacingHint()); + vLay->addSpacing(11); // to get the proper gb top offset + + onlyDecoTranslucent = new TQCheckBox(i18n("Apply translucency only to decoration"),tGroup); + vLay->addWidget(onlyDecoTranslucent); + + vLay->addSpacing(11); + + TQGridLayout *gLay = new TQGridLayout(vLay,4,2,KDialog::spacingHint()); + gLay->setColStretch(1,1); + + activeWindowTransparency = new TQCheckBox(i18n("Active windows:"),tGroup); + gLay->addWidget(activeWindowTransparency,0,0); + activeWindowOpacity = new KIntNumInput(100, tGroup); + activeWindowOpacity->setRange(0,100); + activeWindowOpacity->setSuffix("%"); + gLay->addWidget(activeWindowOpacity,0,1); + + inactiveWindowTransparency = new TQCheckBox(i18n("Inactive windows:"),tGroup); + gLay->addWidget(inactiveWindowTransparency,1,0); + inactiveWindowOpacity = new KIntNumInput(100, tGroup); + inactiveWindowOpacity->setRange(0,100); + inactiveWindowOpacity->setSuffix("%"); + gLay->addWidget(inactiveWindowOpacity,1,1); + + movingWindowTransparency = new TQCheckBox(i18n("Moving windows:"),tGroup); + gLay->addWidget(movingWindowTransparency,2,0); + movingWindowOpacity = new KIntNumInput(100, tGroup); + movingWindowOpacity->setRange(0,100); + movingWindowOpacity->setSuffix("%"); + gLay->addWidget(movingWindowOpacity,2,1); + + dockWindowTransparency = new TQCheckBox(i18n("Dock windows:"),tGroup); + gLay->addWidget(dockWindowTransparency,3,0); + dockWindowOpacity = new KIntNumInput(100, tGroup); + dockWindowOpacity->setRange(0,100); + dockWindowOpacity->setSuffix("%"); + gLay->addWidget(dockWindowOpacity,3,1); + + vLay->addSpacing(11); + + keepAboveAsActive = new TQCheckBox(i18n("Treat 'keep above' windows as active ones"),tGroup); + vLay->addWidget(keepAboveAsActive); + + disableARGB = new TQCheckBox(i18n("Disable ARGB windows (ignores window alpha maps, fixes gtk1 apps)"),tGroup); + vLay->addWidget(disableARGB); + if (TDECompositor == "compton-tde") { + disableARGB->hide(); + } + + useOpenGL = new TQCheckBox(i18n("Use OpenGL compositor (best performance)"),tGroup); + vLay->addWidget(useOpenGL); + blurBackground = new TQCheckBox(i18n("Blur the background of transparent windows"),tGroup); + vLay->addWidget(blurBackground); + greyscaleBackground = new TQCheckBox(i18n("Desaturate the background of transparent windows"),tGroup); + vLay->addWidget(greyscaleBackground); + if (TDECompositor != "compton-tde") { + useOpenGL->hide(); + blurBackground->hide(); + greyscaleBackground->hide(); + } + + vLay->addStretch(); + tabW->addTab(tGroup, i18n("Opacity")); + + TQWidget *sGroup = new TQWidget(tabW); +// sGroup->setCheckable(TRUE); + TQVBoxLayout *vLay2 = new TQVBoxLayout (sGroup,11,6); + vLay2->addSpacing(11); // to get the proper gb top offset + useShadows = new TQCheckBox(i18n("Use shadows (standard effects should be disabled in the Styles module if this is checked)"),sGroup); + vLay2->addWidget(useShadows); + useShadowsOnMenuWindows = new TQCheckBox(i18n("Use shadows on menus (requires menu fade effect to be disabled in the Styles module)"),sGroup); + vLay2->addWidget(useShadowsOnMenuWindows); + useShadowsOnToolTipWindows = new TQCheckBox(i18n("Use shadows on tooltips"),sGroup); + vLay2->addWidget(useShadowsOnToolTipWindows); + if (TDECompositor != "compton-tde") { + useShadowsOnMenuWindows->hide(); + useShadowsOnToolTipWindows->hide(); + } + + vLay2->addSpacing(11); + + TQGridLayout *gLay2 = new TQGridLayout(vLay2,6,2); + gLay2->setColStretch(1,1); + + TQLabel *label2 = new TQLabel(i18n("Base shadow radius:"),sGroup); + gLay2->addWidget(label2,0,0); + baseShadowSize = new KIntNumInput(6,sGroup); + baseShadowSize->setRange(0,32); +// inactiveWindowShadowSize->setSuffix("px"); + gLay2->addWidget(baseShadowSize,0,1); + + TQLabel *label2a = new TQLabel(i18n("Inactive window distance from background:"),sGroup); + gLay2->addWidget(label2a,1,0); + inactiveWindowShadowSize = new KIntNumInput(6,sGroup); + inactiveWindowShadowSize->setRange(0,16); +// inactiveWindowShadowSize->setSuffix("px"); + gLay2->addWidget(inactiveWindowShadowSize,1,1); + + TQLabel *label1 = new TQLabel(i18n("Active window distance from background:"),sGroup); + gLay2->addWidget(label1,2,0); + activeWindowShadowSize = new KIntNumInput(12,sGroup); + activeWindowShadowSize->setRange(0,16); +// activeWindowShadowSize->setSuffix("px"); + gLay2->addWidget(activeWindowShadowSize,2,1); + + TQLabel *label3 = new TQLabel(i18n("Dock distance from background:"),sGroup); + gLay2->addWidget(label3,3,0); + dockWindowShadowSize = new KIntNumInput(6,sGroup); + dockWindowShadowSize->setRange(0,16); +// dockWindowShadowSize->setSuffix("px"); + gLay2->addWidget(dockWindowShadowSize,3,1); + + TQLabel *label3a = new TQLabel(i18n("Menu distance from background:"),sGroup); + gLay2->addWidget(label3a,4,0); + menuWindowShadowSize = new KIntNumInput(6,sGroup); + menuWindowShadowSize->setRange(0,16); +// menuWindowShadowSize->setSuffix("px"); + gLay2->addWidget(menuWindowShadowSize,4,1); + + // FIXME + // Menu control does not work! + // Menus appear to be controlled by the base shadow radius ONLY + label3a->hide(); + menuWindowShadowSize->hide(); + + TQLabel *label4 = new TQLabel(i18n("Vertical offset:"),sGroup); + gLay2->addWidget(label4,5,0); + shadowTopOffset = new KIntNumInput(80,sGroup); + shadowTopOffset->setSuffix("%"); + shadowTopOffset->setRange(-200,200); + gLay2->addWidget(shadowTopOffset,5,1); + + TQLabel *label5 = new TQLabel(i18n("Horizontal offset:"),sGroup); + gLay2->addWidget(label5,6,0); + shadowLeftOffset = new KIntNumInput(0,sGroup); + shadowLeftOffset->setSuffix("%"); + shadowLeftOffset->setRange(-200,200); + gLay2->addWidget(shadowLeftOffset,6,1); + + TQLabel *label6 = new TQLabel(i18n("Shadow color:"),sGroup); + gLay2->addWidget(label6,7,0); + shadowColor = new KColorButton(Qt::black,sGroup); + gLay2->addWidget(shadowColor,7,1); + gLay2->setColStretch(1,1); + vLay2->addSpacing(11); + removeShadowsOnMove = new TQCheckBox(i18n("Remove shadows on move"),sGroup); + vLay2->addWidget(removeShadowsOnMove); + removeShadowsOnResize = new TQCheckBox(i18n("Remove shadows on resize"),sGroup); + vLay2->addWidget(removeShadowsOnResize); + vLay2->addStretch(); + tabW->addTab(sGroup, i18n("Shadows")); + + TQWidget *eGroup = new TQWidget(this); + TQVBoxLayout *vLay3 = new TQVBoxLayout (eGroup,11,6); + + fadeInWindows = new TQCheckBox(i18n("Fade-in windows (including popups)"),eGroup); + fadeInMenuWindows = new TQCheckBox(i18n("Fade-in menus (requires menu fade effect to be disabled in the Styles module)"),eGroup); + fadeInToolTipWindows = new TQCheckBox(i18n("Fade-in tooltips"),eGroup); + fadeOnOpacityChange = new TQCheckBox(i18n("Fade between opacity changes"),eGroup); + fadeInSpeed = new KIntNumInput(100, eGroup); + fadeInSpeed->setRange(1,100); + fadeInSpeed->setLabel(i18n("Fade-in speed:")); + fadeOutSpeed = new KIntNumInput(100, eGroup); + fadeOutSpeed->setRange(1,100); + fadeOutSpeed->setLabel(i18n("Fade-out speed:")); + vLay3->addWidget(fadeInWindows); + vLay3->addWidget(fadeInMenuWindows); + vLay3->addWidget(fadeInToolTipWindows); + vLay3->addWidget(fadeOnOpacityChange); + vLay3->addWidget(fadeInSpeed); + vLay3->addWidget(fadeOutSpeed); + vLay3->addStretch(); + + tabW->addTab(eGroup, i18n("Effects")); + + useTranslucency = new TQCheckBox(i18n("Enable the Trinity window composition manager"),this); + lay->addWidget(useTranslucency); + lay->addWidget(tabW); + + connect(useTranslucency, TQT_SIGNAL(toggled(bool)), tabW, TQT_SLOT(setEnabled(bool))); + + connect(activeWindowTransparency, TQT_SIGNAL(toggled(bool)), activeWindowOpacity, TQT_SLOT(setEnabled(bool))); + connect(inactiveWindowTransparency, TQT_SIGNAL(toggled(bool)), inactiveWindowOpacity, TQT_SLOT(setEnabled(bool))); + connect(movingWindowTransparency, TQT_SIGNAL(toggled(bool)), movingWindowOpacity, TQT_SLOT(setEnabled(bool))); + connect(dockWindowTransparency, TQT_SIGNAL(toggled(bool)), dockWindowOpacity, TQT_SLOT(setEnabled(bool))); + + connect(useTranslucency, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed())); + connect(onlyDecoTranslucent, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed())); + connect(activeWindowTransparency, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed())); + connect(inactiveWindowTransparency, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed())); + connect(movingWindowTransparency, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed())); + connect(dockWindowTransparency, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed())); + connect(keepAboveAsActive, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed())); + connect(disableARGB, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed())); + connect(useOpenGL, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed())); + connect(useOpenGL, TQT_SIGNAL(toggled(bool)), blurBackground, TQT_SLOT(setEnabled(bool))); + connect(blurBackground, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed())); + connect(useOpenGL, TQT_SIGNAL(toggled(bool)), greyscaleBackground, TQT_SLOT(setEnabled(bool))); + connect(greyscaleBackground, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed())); + connect(useShadows, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed())); + connect(useShadowsOnMenuWindows, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed())); + connect(useShadowsOnToolTipWindows, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed())); + connect(removeShadowsOnResize, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed())); + connect(removeShadowsOnMove, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed())); + + connect(activeWindowOpacity, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(changed())); + connect(inactiveWindowOpacity, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(changed())); + connect(movingWindowOpacity, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(changed())); + connect(dockWindowOpacity, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(changed())); + connect(dockWindowShadowSize, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(changed())); + connect(menuWindowShadowSize, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(changed())); + connect(activeWindowShadowSize, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(changed())); + connect(inactiveWindowShadowSize, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(changed())); + connect(baseShadowSize, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(changed())); + connect(shadowTopOffset, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(changed())); + connect(shadowLeftOffset, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(changed())); + connect(shadowColor, TQT_SIGNAL(changed(const TQColor&)), TQT_SLOT(changed())); + connect(fadeInWindows, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed())); + connect(fadeInMenuWindows, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed())); + connect(fadeInToolTipWindows, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed())); + connect(fadeOnOpacityChange, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed())); + connect(fadeInSpeed, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(changed())); + connect(fadeOutSpeed, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(changed())); + + connect(useShadows, TQT_SIGNAL(toggled(bool)), TQT_SLOT(processShadowLockouts())); + connect(useShadowsOnMenuWindows, TQT_SIGNAL(toggled(bool)), TQT_SLOT(processShadowLockouts())); + connect(useShadowsOnToolTipWindows, TQT_SIGNAL(toggled(bool)), TQT_SLOT(processShadowLockouts())); + + load(); + + tabW->setEnabled(useTranslucency->isChecked()); + + connect(useTranslucency, TQT_SIGNAL(toggled(bool)), this, TQT_SLOT(showWarning(bool))); + + // handle kompmgr restarts if necessary + connect(useTranslucency, TQT_SIGNAL(toggled(bool)), TQT_SLOT(resetKompmgr())); + connect(disableARGB, TQT_SIGNAL(toggled(bool)), TQT_SLOT(resetKompmgr())); + connect(useOpenGL, TQT_SIGNAL(toggled(bool)), TQT_SLOT(resetKompmgr())); + connect(blurBackground, TQT_SIGNAL(toggled(bool)), TQT_SLOT(resetKompmgr())); + connect(greyscaleBackground, TQT_SIGNAL(toggled(bool)), TQT_SLOT(resetKompmgr())); + connect(useShadows, TQT_SIGNAL(toggled(bool)), TQT_SLOT(resetKompmgr())); + connect(useShadowsOnMenuWindows, TQT_SIGNAL(toggled(bool)), TQT_SLOT(resetKompmgr())); + connect(useShadowsOnToolTipWindows, TQT_SIGNAL(toggled(bool)), TQT_SLOT(resetKompmgr())); + connect(inactiveWindowShadowSize, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(resetKompmgr())); + connect(baseShadowSize, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(resetKompmgr())); + connect(shadowTopOffset, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(resetKompmgr())); + connect(shadowLeftOffset, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(resetKompmgr())); + connect(shadowColor, TQT_SIGNAL(changed(const TQColor&)), TQT_SLOT(resetKompmgr())); + connect(fadeInWindows, TQT_SIGNAL(toggled(bool)), TQT_SLOT(resetKompmgr())); + connect(fadeInMenuWindows, TQT_SIGNAL(toggled(bool)), TQT_SLOT(resetKompmgr())); + connect(fadeInToolTipWindows, TQT_SIGNAL(toggled(bool)), TQT_SLOT(resetKompmgr())); + connect(fadeOnOpacityChange, TQT_SIGNAL(toggled(bool)), TQT_SLOT(resetKompmgr())); + connect(fadeInSpeed, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(resetKompmgr())); + connect(fadeOutSpeed, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(resetKompmgr())); + + } +} + +void KTranslucencyConfig::processShadowLockouts() +{ + bool enabled = (useShadows->isChecked() || useShadowsOnMenuWindows->isChecked() || useShadowsOnToolTipWindows->isChecked()); + + dockWindowShadowSize->setEnabled(enabled); + menuWindowShadowSize->setEnabled(enabled); + activeWindowShadowSize->setEnabled(enabled); + inactiveWindowShadowSize->setEnabled(enabled); + baseShadowSize->setEnabled(enabled); + shadowTopOffset->setEnabled(enabled); + shadowLeftOffset->setEnabled(enabled); + shadowColor->setEnabled(enabled); +} + +void KTranslucencyConfig::resetKompmgr() +{ + resetKompmgr_ = TRUE; +} +void KTranslucencyConfig::load( void ) +{ + + if (!kompmgrAvailable_) + return; + config->setGroup( "Notification Messages" ); + useTranslucency->setChecked(config->readBoolEntry("UseTranslucency",false)); + + config->setGroup( "Translucency" ); + activeWindowTransparency->setChecked(config->readBoolEntry("TranslucentActiveWindows",false)); + inactiveWindowTransparency->setChecked(config->readBoolEntry("TranslucentInactiveWindows",false)); + movingWindowTransparency->setChecked(config->readBoolEntry("TranslucentMovingWindows",false)); + removeShadowsOnMove->setChecked(config->readBoolEntry("RemoveShadowsOnMove",false)); + removeShadowsOnResize->setChecked(config->readBoolEntry("RemoveShadowsOnResize",false)); + dockWindowTransparency->setChecked(config->readBoolEntry("TranslucentDocks",false)); + keepAboveAsActive->setChecked(config->readBoolEntry("TreatKeepAboveAsActive",true)); + onlyDecoTranslucent->setChecked(config->readBoolEntry("OnlyDecoTranslucent",false)); + + activeWindowOpacity->setValue(config->readNumEntry("ActiveWindowOpacity",100)); + inactiveWindowOpacity->setValue(config->readNumEntry("InactiveWindowOpacity",75)); + movingWindowOpacity->setValue(config->readNumEntry("MovingWindowOpacity",25)); + dockWindowOpacity->setValue(config->readNumEntry("DockOpacity",80)); + + int ass, iss, dss, mss; + dss = config->readNumEntry("DockShadowSize", 0*100); + mss = config->readNumEntry("MenuShadowSize", 1*100); + ass = config->readNumEntry("ActiveWindowShadowSize", 2*100); + iss = config->readNumEntry("InactiveWindowShadowSize", 1*100); + + activeWindowOpacity->setEnabled(activeWindowTransparency->isChecked()); + inactiveWindowOpacity->setEnabled(inactiveWindowTransparency->isChecked()); + movingWindowOpacity->setEnabled(movingWindowTransparency->isChecked()); + dockWindowOpacity->setEnabled(dockWindowTransparency->isChecked()); + + TDEConfig conf_(TQDir::homeDirPath() + "/.xcompmgrrc"); + conf_.setGroup("xcompmgr"); + + disableARGB->setChecked(conf_.readBoolEntry("DisableARGB",FALSE)); + useOpenGL->setChecked(conf_.readBoolEntry("useOpenGL",FALSE)); + blurBackground->setChecked(conf_.readBoolEntry("blurBackground",FALSE)); + blurBackground->setEnabled(useOpenGL->isChecked()); + greyscaleBackground->setChecked(conf_.readBoolEntry("greyscaleBackground",FALSE)); + greyscaleBackground->setEnabled(useOpenGL->isChecked()); + + useShadows->setChecked(conf_.readEntry("Compmode","").compare("CompClientShadows") == 0); + useShadowsOnMenuWindows->setChecked(conf_.readBoolEntry("ShadowsOnMenuWindows",TRUE)); + useShadowsOnToolTipWindows->setChecked(conf_.readBoolEntry("ShadowsOnToolTipWindows",TRUE)); + shadowTopOffset->setValue(-1*(conf_.readNumEntry("ShadowOffsetY",0))); + shadowLeftOffset->setValue(-1*(conf_.readNumEntry("ShadowOffsetX",0))); + + int ss = conf_.readNumEntry("ShadowRadius",4); + dockWindowShadowSize->setValue((int)(dss/100.0)); + menuWindowShadowSize->setValue((int)(mss/100.0)); + activeWindowShadowSize->setValue((int)(ass/100.0)); + inactiveWindowShadowSize->setValue((int)(iss/100.0)); + baseShadowSize->setValue((int)(ss)); + + TQString hex = conf_.readEntry("ShadowColor","#000000"); + uint r, g, b; + r = g = b = 256; + + if (sscanf(hex.latin1(), "0x%02x%02x%02x", &r, &g, &b)!=3 || r > 255 || g > 255 || b > 255) + shadowColor->setColor(Qt::black); + else + shadowColor->setColor(TQColor(r,g,b)); + + fadeInWindows->setChecked(conf_.readBoolEntry("FadeWindows",FALSE)); + fadeInMenuWindows->setChecked(conf_.readBoolEntry("FadeMenuWindows",TRUE)); + fadeInToolTipWindows->setChecked(conf_.readBoolEntry("FadeToolTipWindows",TRUE)); + fadeOnOpacityChange->setChecked(conf_.readBoolEntry("FadeTrans",FALSE)); + fadeInSpeed->setValue((int)(conf_.readDoubleNumEntry("FadeInStep",0.070)*1000.0)); + fadeOutSpeed->setValue((int)(conf_.readDoubleNumEntry("FadeOutStep",0.070)*1000.0)); + + emit TDECModule::changed(false); +} + +void KTranslucencyConfig::save( void ) +{ + if (!kompmgrAvailable_) + return; + + config->setGroup( "Notification Messages" ); + config->writeEntry("UseTranslucency",useTranslucency->isChecked()); + + config->setGroup( "Translucency" ); + config->writeEntry("TranslucentActiveWindows",activeWindowTransparency->isChecked()); + config->writeEntry("TranslucentInactiveWindows",inactiveWindowTransparency->isChecked()); + config->writeEntry("TranslucentMovingWindows",movingWindowTransparency->isChecked()); + config->writeEntry("TranslucentDocks",dockWindowTransparency->isChecked()); + config->writeEntry("TreatKeepAboveAsActive",keepAboveAsActive->isChecked()); + config->writeEntry("ActiveWindowOpacity",activeWindowOpacity->value()); + config->writeEntry("InactiveWindowOpacity",inactiveWindowOpacity->value()); + config->writeEntry("MovingWindowOpacity",movingWindowOpacity->value()); + config->writeEntry("DockOpacity",dockWindowOpacity->value()); + // for simplification: + // xcompmgr supports a general shadow radius and additionally lets external apps set a multiplicator for each window + // (speed reasons, so the shadow matrix hasn't to be recreated for every window) + // we set inactive windows to 100%, the radius to the inactive window value and adjust the multiplicators for docks and active windows + // this way the user can set the three values without caring about the radius/multiplicator stuff + // additionally we find a value between big and small values to have a more smooth appereance + config->writeEntry("DockShadowSize",(int)(100.0 * dockWindowShadowSize->value())); + config->writeEntry("MenuShadowSize",(int)(100.0 * menuWindowShadowSize->value())); + config->writeEntry("ActiveWindowShadowSize",(int)(100.0 * activeWindowShadowSize->value())); + config->writeEntry("InactiveWindowShadowSize",(int)(100.0 * inactiveWindowShadowSize->value())); + + config->writeEntry("RemoveShadowsOnMove",removeShadowsOnMove->isChecked()); + config->writeEntry("RemoveShadowsOnResize",removeShadowsOnResize->isChecked()); + config->writeEntry("OnlyDecoTranslucent", onlyDecoTranslucent->isChecked()); + config->writeEntry("ResetKompmgr",resetKompmgr_); + + TDEConfig *conf_ = new TDEConfig(TQDir::homeDirPath() + "/.xcompmgrrc"); + conf_->setGroup("xcompmgr"); + + conf_->writeEntry("Compmode",useShadows->isChecked()?"CompClientShadows":""); + conf_->writeEntry("ShadowsOnMenuWindows",useShadowsOnMenuWindows->isChecked()); + conf_->writeEntry("ShadowsOnToolTipWindows",useShadowsOnToolTipWindows->isChecked()); + conf_->writeEntry("DisableARGB",disableARGB->isChecked()); + conf_->writeEntry("useOpenGL",useOpenGL->isChecked()); + conf_->writeEntry("blurBackground",blurBackground->isChecked()); + conf_->writeEntry("greyscaleBackground",greyscaleBackground->isChecked()); + conf_->writeEntry("ShadowOffsetY",-1*shadowTopOffset->value()); + conf_->writeEntry("ShadowOffsetX",-1*shadowLeftOffset->value()); + + + int r, g, b; + shadowColor->color().rgb( &r, &g, &b ); + TQString hex; + hex.sprintf("0x%02X%02X%02X", r,g,b); + conf_->writeEntry("ShadowColor",hex); + conf_->writeEntry("ShadowRadius",baseShadowSize->value()); + conf_->writeEntry("FadeWindows",fadeInWindows->isChecked()); + conf_->writeEntry("FadeMenuWindows",fadeInMenuWindows->isChecked()); + conf_->writeEntry("FadeToolTipWindows",fadeInToolTipWindows->isChecked()); + conf_->writeEntry("FadeTrans",fadeOnOpacityChange->isChecked()); + conf_->writeEntry("FadeInStep",fadeInSpeed->value()/1000.0); + conf_->writeEntry("FadeOutStep",fadeOutSpeed->value()/1000.0); + + delete conf_; + + // Now write out compton settings + TQFile* compton_conf_file_ = new TQFile(TQDir::homeDirPath() + "/.compton-tde.conf"); + if ( compton_conf_file_->open( IO_WriteOnly ) ) { + TQTextStream stream(compton_conf_file_); + + stream << "# WARNING\n"; + stream << "# This file was automatically generated by TDE\n"; + stream << "# All changes will be lost!\n"; + + stream << "shadow = " << (useShadows->isChecked()?"true":"false") << ";\n"; + stream << "shadow-offset-y = " << (-1*shadowTopOffset->value()) << ";\n"; + stream << "shadow-offset-x = " << (-1*shadowLeftOffset->value()) << ";\n"; + + int r, g, b; + shadowColor->color().rgb( &r, &g, &b ); + stream << "shadow-red = " << (r/255.0) << ";\n"; + stream << "shadow-green = " << (g/255.0) << ";\n"; + stream << "shadow-blue = " << (b/255.0) << ";\n"; + + stream << "shadow-radius = " << baseShadowSize->value() << ";\n"; + + bool fadeOpacity = fadeOnOpacityChange->isChecked(); + bool fadeWindows = fadeInWindows->isChecked(); + bool fadeMenuWindows = fadeInMenuWindows->isChecked(); + bool fadeToolTipWindows = fadeInToolTipWindows->isChecked(); + bool shadows = useShadows->isChecked(); + bool shadowsOnMenuWindows = useShadowsOnMenuWindows->isChecked(); + bool shadowsOnToolTipWindows = useShadowsOnToolTipWindows->isChecked(); + stream << "fading = " << ((fadeWindows || fadeMenuWindows || fadeOpacity)?"true":"false") << ";\n"; + stream << "no-fading-opacitychange = " << (fadeOpacity?"false":"true") << ";\n"; + stream << "no-fading-openclose = " << ((fadeWindows||fadeMenuWindows)?"false":"true") << ";\n"; + stream << "wintypes:" << "\n"; + stream << "{" << "\n"; + stream << " menu = { shadow = " << (shadowsOnMenuWindows?"true":"false") << "; fade = " << (fadeMenuWindows?"true":"false") << "; no-fading-openclose = " << (fadeMenuWindows?"false":"true") << "; };" << "\n"; + stream << " dropdown_menu = { shadow = " << (shadowsOnMenuWindows?"true":"false") << "; fade = " << (fadeMenuWindows?"true":"false") << "; no-fading-openclose = " << (fadeMenuWindows?"false":"true") << "; };" << "\n"; + stream << " popup_menu = { shadow = " << (shadowsOnMenuWindows?"true":"false") << "; fade = " << (fadeMenuWindows?"true":"false") << "; no-fading-openclose = " << (fadeMenuWindows?"false":"true") << "; };" << "\n"; + stream << " tooltip = { shadow = " << (shadowsOnToolTipWindows?"true":"false") << "; fade = " << (fadeToolTipWindows?"true":"false") << "; no-fading-openclose = " << (fadeToolTipWindows?"false":"true") << "; };" << "\n"; + stream << " normal = { shadow = " << (shadows?"true":"false") << "; fade = " << (fadeWindows?"true":"false") << "; no-fading-openclose = " << (fadeWindows?"false":"true") << "; };" << "\n"; + stream << " dialog = { shadow = " << (shadows?"true":"false") << "; fade = " << (fadeWindows?"true":"false") << "; no-fading-openclose = " << (fadeWindows?"false":"true") << "; };" << "\n"; + stream << " unknown = { shadow = " << (shadows?"true":"false") << "; fade = " << (fadeWindows?"true":"false") << "; no-fading-openclose = " << (fadeWindows?"false":"true") << "; };" << "\n"; + stream << " toolbar = { shadow = " << (shadows?"true":"false") << "; fade = " << (fadeWindows?"true":"false") << "; no-fading-openclose = " << (fadeWindows?"false":"true") << "; };" << "\n"; + stream << " utility = { shadow = " << (shadows?"true":"false") << "; fade = " << (fadeWindows?"true":"false") << "; no-fading-openclose = " << (fadeWindows?"false":"true") << "; };" << "\n"; + stream << " splash = { shadow = " << (shadows?"true":"false") << "; fade = " << (fadeWindows?"true":"false") << "; no-fading-openclose = " << (fadeWindows?"false":"true") << "; };" << "\n"; + + stream << " notify = { shadow = false; fade = " << (fadeWindows?"true":"false") << "; no-fading-openclose = " << (fadeWindows?"false":"true") << "; };" << "\n"; + stream << " combo = { shadow = false; fade = " << (fadeWindows?"true":"false") << "; no-fading-openclose = " << (fadeWindows?"false":"true") << "; };" << "\n"; + stream << " desktop = { shadow = false; fade = " << (fadeWindows?"true":"false") << "; no-fading-openclose = " << (fadeWindows?"false":"true") << "; };" << "\n"; + stream << " dnd = { shadow = false; fade = " << (fadeWindows?"true":"false") << "; no-fading-openclose = " << (fadeWindows?"false":"true") << "; };" << "\n"; + stream << " dock = { shadow = false; fade = " << (fadeWindows?"true":"false") << "; no-fading-openclose = " << (fadeWindows?"false":"true") << "; };" << "\n"; + stream << "};" << "\n"; + + stream << "fade-in-step = " << (fadeInSpeed->value()/1000.0) << ";\n"; + stream << "fade-out-step = " << (fadeOutSpeed->value()/1000.0) << ";\n"; + + stream << "backend = \"" << (useOpenGL->isChecked()?"glx":"xrender") << "\";\n"; + stream << "vsync = \"" << (useOpenGL->isChecked()?"opengl":"none") << "\";\n"; + + stream << "blur-background = " << ((blurBackground->isChecked() && useOpenGL->isChecked())?"true":"false") << ";\n"; + stream << "blur-background-fixed = true;\n"; + stream << "blur-background-exclude = [\n"; + stream << " \"window_type = 'dock'\",\n"; + stream << " \"window_type = 'desktop'\"\n"; + stream << "];\n"; + + stream << "greyscale-background = " << ((greyscaleBackground->isChecked() && useOpenGL->isChecked())?"true":"false") << ";\n"; + + // Global settings + stream << "no-dock-shadow = true;\n"; + stream << "no-dnd-shadow = true;\n"; + stream << "clear-shadow = true;\n"; + stream << "shadow-ignore-shaped = false;\n"; + + // Features not currently supported by compton +// stream << "DisableARGB = " << (disableARGB->isChecked()?"true":"false") << ";\n"; + + compton_conf_file_->close(); + } + delete compton_conf_file_; + + if (standAlone) + { + config->sync(); + if ( !kapp->dcopClient()->isAttached() ) + kapp->dcopClient()->attach(); + kapp->dcopClient()->send("twin*", "", "reconfigure()", TQString("")); + } + if (useTranslucency->isChecked()) + startKompmgr(); + else + stopKompmgr(); + emit TDECModule::changed(false); +} + +void KTranslucencyConfig::defaults() +{ + if (!kompmgrAvailable_) + return; + useTranslucency->setChecked(false); + onlyDecoTranslucent->setChecked(false); + activeWindowTransparency->setChecked(false); + inactiveWindowTransparency->setChecked(false); + movingWindowTransparency->setChecked(false); + dockWindowTransparency->setChecked(false); + keepAboveAsActive->setChecked(true); + disableARGB->setChecked(false); + + activeWindowOpacity->setValue(100); + inactiveWindowOpacity->setValue(75); + movingWindowOpacity->setValue(25); + dockWindowOpacity->setValue(80); + + dockWindowShadowSize->setValue(0); + menuWindowShadowSize->setValue(1); + activeWindowShadowSize->setValue(2); + inactiveWindowShadowSize->setValue(1); + baseShadowSize->setValue(4); + shadowTopOffset->setValue(0); + shadowLeftOffset->setValue(0); + + activeWindowOpacity->setEnabled(false); + inactiveWindowOpacity->setEnabled(false); + movingWindowOpacity->setEnabled(false); + dockWindowOpacity->setEnabled(false); + useShadows->setChecked(FALSE); + useShadowsOnMenuWindows->setChecked(TRUE); + useShadowsOnToolTipWindows->setChecked(TRUE); + removeShadowsOnMove->setChecked(FALSE); + removeShadowsOnResize->setChecked(FALSE); + shadowColor->setColor(Qt::black); + fadeInWindows->setChecked(FALSE); + fadeInMenuWindows->setChecked(TRUE); + fadeInToolTipWindows->setChecked(TRUE); + fadeOnOpacityChange->setChecked(FALSE); + fadeInSpeed->setValue(70); + fadeOutSpeed->setValue(70); + emit TDECModule::changed(true); +} + + +bool KTranslucencyConfig::kompmgrAvailable() +{ + bool ret; + TDEProcess proc; + proc << TDECompositor << "-v"; + ret = proc.start(TDEProcess::DontCare, TDEProcess::AllOutput); + proc.detach(); + return ret; +} + +void KTranslucencyConfig::startKompmgr() +{ + kapp->dcopClient()->send("twin*", "", "startKompmgr()", TQString("")); +} + +void KTranslucencyConfig::stopKompmgr() +{ + kapp->dcopClient()->send("twin*", "", "stopKompmgr()", TQString("")); +} + +void KTranslucencyConfig::showWarning(bool alphaActivated) +{ +// if (alphaActivated) +// KMessageBox::information(this, i18n("<qt>Translucency support is new and may cause problems<br> including crashes (sometimes the translucency engine, seldom even X).</qt>"), i18n("Warning")); +} + +#include "windows.moc" diff --git a/twin/kcmtwin/twinoptions/windows.h b/twin/kcmtwin/twinoptions/windows.h new file mode 100644 index 000000000..52596ad1c --- /dev/null +++ b/twin/kcmtwin/twinoptions/windows.h @@ -0,0 +1,307 @@ +/* + * windows.h + * + * Copyright (c) 1997 Patrick Dowler [email protected] + * Copyright (c) 2001 Waldo Bastian [email protected] + * Copyright (c) 2011-2014 Timothy Pearson <[email protected]> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef __KWINDOWCONFIG_H__ +#define __KWINDOWCONFIG_H__ + +#include <tqwidget.h> +#include <tdecmodule.h> +#include <config.h> + +class TQRadioButton; +class TQCheckBox; +class TQPushButton; +class TQComboBox; +class TQGroupBox; +class TQLabel; +class TQSlider; +class TQButtonGroup; +class TQSpinBox; +class TQVButtonGroup; + +class KColorButton; +class KIntNumInput; + +#define TRANSPARENT 0 +#define OPAQUE 1 + +#define CLICK_TO_FOCUS 0 +#define FOCUS_FOLLOW_MOUSE 1 + +#define TITLEBAR_PLAIN 0 +#define TITLEBAR_SHADED 1 + +#define RESIZE_TRANSPARENT 0 +#define RESIZE_OPAQUE 1 + +#define SMART_PLACEMENT 0 +#define MAXIMIZING_PLACEMENT 1 +#define CASCADE_PLACEMENT 2 +#define RANDOM_PLACEMENT 3 +#define CENTERED_PLACEMENT 4 +#define ZEROCORNERED_PLACEMENT 5 +#define INTERACTIVE_PLACEMENT 6 +#define MANUAL_PLACEMENT 7 + +#define CLICK_TO_FOCUS 0 +#define FOCUS_FOLLOWS_MOUSE 1 +#define FOCUS_UNDER_MOUSE 2 +#define FOCUS_STRICTLY_UNDER_MOUSE 3 + +class TQSpinBox; + +class KFocusConfig : public TDECModule +{ + Q_OBJECT +public: + KFocusConfig( bool _standAlone, TDEConfig *_config, TQWidget *parent=0, const char* name=0 ); + ~KFocusConfig(); + + void load(); + void save(); + void defaults(); + +private slots: + void setDelayFocusEnabled(); + void setAutoRaiseEnabled(); + void autoRaiseOnTog(bool);//CT 23Oct1998 + void delayFocusOnTog(bool); + void clickRaiseOnTog(bool); + void updateAltTabMode(); + void updateActiveMouseScreen(); + void changed() { emit TDECModule::changed(true); } + + +private: + + int getFocus( void ); + int getAutoRaiseInterval( void ); + int getDelayFocusInterval( void ); + + void setFocus(int); + void setAutoRaiseInterval(int); + void setAutoRaise(bool); + void setDelayFocusInterval(int); + void setDelayFocus(bool); + void setClickRaise(bool); + void setSeparateScreenFocus(bool); + void setActiveMouseScreen(bool); + void setAltTabMode(bool); + void setTraverseAll(bool); + void setRollOverDesktops(bool); + void setShowPopupinfo(bool); + void setFocusStealing(int); + + TQButtonGroup *fcsBox; + TQComboBox *focusCombo; + TQCheckBox *autoRaiseOn; + TQCheckBox *delayFocusOn; + TQCheckBox *clickRaiseOn; + KIntNumInput *autoRaise; + KIntNumInput *delayFocus; + TQCheckBox *separateScreenFocus; + TQCheckBox *activeMouseScreen; + TQComboBox* focusStealing; + + TQButtonGroup *kbdBox; + TQCheckBox *altTabPopup; + TQCheckBox *traverseAll; + TQCheckBox *rollOverDesktops; + TQCheckBox *showPopupinfo; + + TDEConfig *config; + bool standAlone; +}; + +class KMovingConfig : public TDECModule +{ + Q_OBJECT +public: + KMovingConfig( bool _standAlone, TDEConfig *config, TQWidget *parent=0, const char* name=0 ); + ~KMovingConfig(); + + void load(); + void save(); + void defaults(); + +private slots: + void setMinimizeAnim( bool ); + void setMinimizeAnimSpeed( int ); + void changed() { emit TDECModule::changed(true); } + void slotBrdrSnapChanged( int ); + void slotWndwSnapChanged( int ); + +private: + int getMove( void ); + bool getMinimizeAnim( void ); + int getMinimizeAnimSpeed( void ); + int getResizeOpaque ( void ); + bool getGeometryTip( void ); //KS + int getPlacement( void ); //CT + + void setMove(int); + void setResizeOpaque(int); + void setGeometryTip(bool); //KS + void setPlacement(int); //CT + void setMoveResizeMaximized(bool); + + TQButtonGroup *windowsBox; + TQCheckBox *opaque; + TQCheckBox *resizeOpaqueOn; + TQCheckBox *geometryTipOn; + TQCheckBox* minimizeAnimOn; + TQSlider *minimizeAnimSlider; + TQLabel *minimizeAnimSlowLabel, *minimizeAnimFastLabel; + TQCheckBox *moveResizeMaximized; + + TQComboBox *placementCombo; + + TDEConfig *config; + bool standAlone; + + int getBorderSnapZone(); + void setBorderSnapZone( int ); + int getWindowSnapZone(); + void setWindowSnapZone( int ); + + TQVButtonGroup *MagicBox; + KIntNumInput *BrdrSnap, *WndwSnap; + TQCheckBox *OverlapSnap; + +}; + +class KAdvancedConfig : public TDECModule +{ + Q_OBJECT +public: + KAdvancedConfig( bool _standAlone, TDEConfig *config, TQWidget *parent=0, const char* name=0 ); + ~KAdvancedConfig(); + + void load(); + void save(); + void defaults(); + +private slots: + void shadeHoverChanged(bool); + + //copied from kcontrol/konq/twindesktop, aleXXX + void setEBorders(); + + void changed() { emit TDECModule::changed(true); } + +private: + + int getShadeHoverInterval (void ); + void setAnimateShade(bool); + void setShadeHover(bool); + void setShadeHoverInterval(int); + + TQCheckBox *animateShade; + TQButtonGroup *shBox; + TQCheckBox *shadeHoverOn; + KIntNumInput *shadeHover; + + TDEConfig *config; + bool standAlone; + + int getElectricBorders( void ); + int getElectricBorderDelay(); + void setElectricBorders( int ); + void setElectricBorderDelay( int ); + + TQVButtonGroup *electricBox; + TQRadioButton *active_disable; + TQRadioButton *active_move; + TQRadioButton *active_always; + KIntNumInput *delays; + + void setHideUtilityWindowsForInactive( bool ); + + TQCheckBox* hideUtilityWindowsForInactive; +}; + +class TDEProcess; +class KTranslucencyConfig : public TDECModule +{ + Q_OBJECT +public: + KTranslucencyConfig( bool _standAlone, TDEConfig *config, TQWidget *parent=0, const char* name=0 ); + ~KTranslucencyConfig(); + + void load(); + void save(); + void defaults(); + +private: + TQCheckBox *useTranslucency; + TQCheckBox *activeWindowTransparency; + TQCheckBox *inactiveWindowTransparency; + TQCheckBox *movingWindowTransparency; + TQCheckBox *dockWindowTransparency; + TQCheckBox *keepAboveAsActive; + TQCheckBox *disableARGB; + TQCheckBox *useOpenGL; + TQCheckBox *blurBackground; + TQCheckBox *greyscaleBackground; + TQCheckBox *fadeInWindows; + TQCheckBox *fadeInMenuWindows; + TQCheckBox *fadeInToolTipWindows; + TQCheckBox *fadeOnOpacityChange; + TQCheckBox *useShadows; + TQCheckBox *useShadowsOnMenuWindows; + TQCheckBox *useShadowsOnToolTipWindows; + TQCheckBox *removeShadowsOnResize; + TQCheckBox *removeShadowsOnMove; + TQGroupBox *sGroup; + TQCheckBox *onlyDecoTranslucent; +// TQPushButton *xcompmgrButton; + KIntNumInput *activeWindowOpacity; + KIntNumInput *inactiveWindowOpacity; + KIntNumInput *movingWindowOpacity; + KIntNumInput *dockWindowOpacity; + KIntNumInput *dockWindowShadowSize; + KIntNumInput *menuWindowShadowSize; + KIntNumInput *activeWindowShadowSize; + KIntNumInput *inactiveWindowShadowSize; + KIntNumInput *baseShadowSize; + KIntNumInput *shadowTopOffset; + KIntNumInput *shadowLeftOffset; + KIntNumInput *fadeInSpeed; + KIntNumInput *fadeOutSpeed; + KColorButton *shadowColor; + TDEConfig *config; + bool standAlone; + bool alphaActivated; + bool resetKompmgr_; + bool kompmgrAvailable(); + void startKompmgr(); + void stopKompmgr(); + bool kompmgrAvailable_; + TDEProcess *kompmgr; + +private slots: + void resetKompmgr(); + void showWarning(bool alphaActivated); + void processShadowLockouts(); + +}; +#endif |