summaryrefslogtreecommitdiffstats
path: root/kcontrol/xinerama
diff options
context:
space:
mode:
Diffstat (limited to 'kcontrol/xinerama')
-rw-r--r--kcontrol/xinerama/CMakeLists.txt33
-rw-r--r--kcontrol/xinerama/Makefile.am18
-rw-r--r--kcontrol/xinerama/kcmxinerama.cpp254
-rw-r--r--kcontrol/xinerama/kcmxinerama.h62
-rw-r--r--kcontrol/xinerama/xinerama.desktop202
-rw-r--r--kcontrol/xinerama/xineramawidget.ui326
-rw-r--r--kcontrol/xinerama/xineramawidget.ui.h14
7 files changed, 909 insertions, 0 deletions
diff --git a/kcontrol/xinerama/CMakeLists.txt b/kcontrol/xinerama/CMakeLists.txt
new file mode 100644
index 000000000..1a7419eb0
--- /dev/null
+++ b/kcontrol/xinerama/CMakeLists.txt
@@ -0,0 +1,33 @@
+#################################################
+#
+# (C) 2010-2011 Serghei Amelian
+# serghei (DOT) amelian (AT) gmail.com
+#
+# Improvements and feedback are welcome
+#
+# This file is released under GPL >= 2
+#
+#################################################
+
+include_directories(
+ ${CMAKE_CURRENT_BINARY_DIR}
+ ${TDE_INCLUDE_DIR}
+ ${TQT_INCLUDE_DIRS}
+)
+
+link_directories(
+ ${TQT_LIBRARY_DIRS}
+)
+
+##### other data ################################
+
+install( FILES xinerama.desktop DESTINATION ${APPS_INSTALL_DIR}/.hidden )
+
+
+##### kcm_xinerama (module) #####################
+
+tde_add_kpart( kcm_xinerama AUTOMOC
+ SOURCES kcmxinerama.cpp xineramawidget.ui
+ LINK tdeui-shared
+ DESTINATION ${PLUGIN_INSTALL_DIR}
+)
diff --git a/kcontrol/xinerama/Makefile.am b/kcontrol/xinerama/Makefile.am
new file mode 100644
index 000000000..c7be54e04
--- /dev/null
+++ b/kcontrol/xinerama/Makefile.am
@@ -0,0 +1,18 @@
+AM_CPPFLAGS = $(all_includes)
+
+kde_module_LTLIBRARIES = kcm_xinerama.la
+
+kcm_xinerama_la_SOURCES = kcmxinerama.cpp xineramawidget.ui
+
+kcm_xinerama_la_LDFLAGS = $(all_libraries) -module -avoid-version -no-undefined
+kcm_xinerama_la_LIBADD = -ltdeui
+
+METASOURCES = AUTO
+
+noinst_HEADERS = kcmxinerama.h
+
+messages: rc.cpp
+ $(XGETTEXT) *.cpp -o $(podir)/kcmxinerama.pot
+
+xinerama_datadir = $(kde_appsdir)/.hidden
+xinerama_data_DATA = xinerama.desktop
diff --git a/kcontrol/xinerama/kcmxinerama.cpp b/kcontrol/xinerama/kcmxinerama.cpp
new file mode 100644
index 000000000..d32adc1b8
--- /dev/null
+++ b/kcontrol/xinerama/kcmxinerama.cpp
@@ -0,0 +1,254 @@
+/**
+ * kcmxinerama.cpp
+ *
+ * Copyright (c) 2002-2004 George Staikos <[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 "kcmxinerama.h"
+#include <dcopclient.h>
+#include <tdeaboutdata.h>
+#include <tdeapplication.h>
+#include <tdeconfig.h>
+#include <kdialog.h>
+#include <tdeglobal.h>
+#include <tdeglobalsettings.h>
+#include <tdelocale.h>
+#include <tdemessagebox.h>
+#include <twin.h>
+
+#include <tqcheckbox.h>
+#include <tqlayout.h>
+#include <tqlabel.h>
+#include <tqcombobox.h>
+#include <tqtable.h>
+#include <tqcolor.h>
+#include <tqpushbutton.h>
+
+
+KCMXinerama::KCMXinerama(TQWidget *parent, const char *name)
+ : TDECModule(parent, name) {
+ _indicators.setAutoDelete(true);
+
+ TDEAboutData *about =
+ new TDEAboutData(I18N_NOOP("kcmxinerama"),
+ I18N_NOOP("TDE Multiple Monitor Configurator"),
+ 0, 0, TDEAboutData::License_GPL,
+ I18N_NOOP("(c) 2002-2003 George Staikos"));
+
+ about->addAuthor("George Staikos", 0, "[email protected]");
+ setAboutData( about );
+
+ setQuickHelp( i18n("<h1>Multiple Monitors</h1> This module allows you to configure TDE support"
+ " for multiple monitors."));
+
+ config = new TDEConfig("kdeglobals", false, false);
+ ksplashrc = new TDEConfig("ksplashrc", false, false);
+
+ connect(&_timer, TQT_SIGNAL(timeout()), this, TQT_SLOT(clearIndicator()));
+
+ TQGridLayout *grid = new TQGridLayout(this, 1, 1, KDialog::marginHint(),
+ KDialog::spacingHint());
+
+ // Setup the panel
+ _displays = TQApplication::desktop()->numScreens();
+
+ if (TQApplication::desktop()->isVirtualDesktop()) {
+ TQStringList dpyList;
+ xw = new XineramaWidget(this);
+ grid->addWidget(xw, 0, 0);
+ TQString label = i18n("Display %1");
+
+ xw->headTable->setNumRows(_displays);
+
+ for (int i = 0; i < _displays; i++) {
+ TQString l = label.arg(i+1);
+ TQRect geom = TQApplication::desktop()->screenGeometry(i);
+ xw->_unmanagedDisplay->insertItem(l);
+ xw->_ksplashDisplay->insertItem(l);
+ dpyList.append(l);
+ xw->headTable->setText(i, 0, TQString::number(geom.x()));
+ xw->headTable->setText(i, 1, TQString::number(geom.y()));
+ xw->headTable->setText(i, 2, TQString::number(geom.width()));
+ xw->headTable->setText(i, 3, TQString::number(geom.height()));
+ }
+
+ xw->_unmanagedDisplay->insertItem(i18n("Display Containing the Pointer"));
+
+ xw->headTable->setRowLabels(dpyList);
+
+ connect(xw->_ksplashDisplay, TQT_SIGNAL(activated(int)),
+ this, TQT_SLOT(windowIndicator(int)));
+ connect(xw->_unmanagedDisplay, TQT_SIGNAL(activated(int)),
+ this, TQT_SLOT(windowIndicator(int)));
+ connect(xw->_identify, TQT_SIGNAL(clicked()),
+ this, TQT_SLOT(indicateWindows()));
+
+ connect(xw, TQT_SIGNAL(configChanged()), this, TQT_SLOT(changed()));
+ } else { // no Xinerama
+ TQLabel *ql = new TQLabel(i18n("<qt><p>This module is only for configuring systems with a single desktop spread across multiple monitors. You do not appear to have this configuration.</p></qt>"), this);
+ grid->addWidget(ql, 0, 0);
+ }
+
+ grid->activate();
+
+ load();
+}
+
+KCMXinerama::~KCMXinerama() {
+ _timer.stop();
+ delete ksplashrc;
+ ksplashrc = 0;
+ delete config;
+ config = 0;
+ clearIndicator();
+}
+
+#define KWIN_XINERAMA "XineramaEnabled"
+#define KWIN_XINERAMA_MOVEMENT "XineramaMovementEnabled"
+#define KWIN_XINERAMA_PLACEMENT "XineramaPlacementEnabled"
+#define KWIN_XINERAMA_MAXIMIZE "XineramaMaximizeEnabled"
+#define KWIN_XINERAMA_FULLSCREEN "XineramaFullscreenEnabled"
+
+void KCMXinerama::load() {
+ load( false );
+}
+
+void KCMXinerama::load(bool useDefaults) {
+ if (TQApplication::desktop()->isVirtualDesktop()) {
+ int item = 0;
+ config->setReadDefaults( useDefaults );
+ config->setGroup("Windows");
+ xw->_enableXinerama->setChecked(config->readBoolEntry(KWIN_XINERAMA, true));
+ xw->_enableResistance->setChecked(config->readBoolEntry(KWIN_XINERAMA_MOVEMENT, true));
+ xw->_enablePlacement->setChecked(config->readBoolEntry(KWIN_XINERAMA_PLACEMENT, true));
+ xw->_enableMaximize->setChecked(config->readBoolEntry(KWIN_XINERAMA_MAXIMIZE, true));
+ xw->_enableFullscreen->setChecked(config->readBoolEntry(KWIN_XINERAMA_FULLSCREEN, true));
+ item = config->readNumEntry("Unmanaged", TQApplication::desktop()->primaryScreen());
+ if ((item < 0 || item >= _displays) && (item != -3))
+ xw->_unmanagedDisplay->setCurrentItem(TQApplication::desktop()->primaryScreen());
+ else if (item == -3) // pointer warp
+ xw->_unmanagedDisplay->setCurrentItem(_displays);
+ else xw->_unmanagedDisplay->setCurrentItem(item);
+
+ ksplashrc->setGroup("Xinerama");
+ item = ksplashrc->readNumEntry("KSplashScreen", TQApplication::desktop()->primaryScreen());
+ if (item < 0 || item >= _displays)
+ xw->_ksplashDisplay->setCurrentItem(TQApplication::desktop()->primaryScreen());
+ else xw->_ksplashDisplay->setCurrentItem(item);
+
+ emit changed(useDefaults);
+ }
+ else
+ emit changed( false );
+}
+
+
+void KCMXinerama::save() {
+ if (TQApplication::desktop()->isVirtualDesktop()) {
+ config->setGroup("Windows");
+ config->writeEntry(KWIN_XINERAMA,
+ xw->_enableXinerama->isChecked());
+ config->writeEntry(KWIN_XINERAMA_MOVEMENT,
+ xw->_enableResistance->isChecked());
+ config->writeEntry(KWIN_XINERAMA_PLACEMENT,
+ xw->_enablePlacement->isChecked());
+ config->writeEntry(KWIN_XINERAMA_MAXIMIZE,
+ xw->_enableMaximize->isChecked());
+ config->writeEntry(KWIN_XINERAMA_FULLSCREEN,
+ xw->_enableFullscreen->isChecked());
+ int item = xw->_unmanagedDisplay->currentItem();
+ config->writeEntry("Unmanaged", item == _displays ? -3 : item);
+ config->sync();
+
+ if (!kapp->dcopClient()->isAttached())
+ kapp->dcopClient()->attach();
+ kapp->dcopClient()->send("twin", "", "reconfigure()", TQString(""));
+
+ ksplashrc->setGroup("Xinerama");
+ ksplashrc->writeEntry("KSplashScreen", xw->_enableXinerama->isChecked() ? xw->_ksplashDisplay->currentItem() : -2 /* ignore Xinerama */);
+ ksplashrc->sync();
+ }
+
+ KMessageBox::information(this, i18n("Your settings will only affect newly started applications."), i18n("TDE Multiple Monitors"), "nomorexineramaplease");
+
+ emit changed(false);
+}
+
+void KCMXinerama::defaults() {
+ load( true );
+}
+
+void KCMXinerama::indicateWindows() {
+ _timer.stop();
+
+ clearIndicator();
+ for (int i = 0; i < _displays; i++)
+ _indicators.append(indicator(i));
+
+ _timer.start(1500, true);
+}
+
+void KCMXinerama::windowIndicator(int dpy) {
+ if (dpy >= _displays)
+ return;
+
+ _timer.stop();
+
+ clearIndicator();
+ _indicators.append(indicator(dpy));
+
+ _timer.start(1500, true);
+}
+
+TQWidget *KCMXinerama::indicator(int dpy) {
+ TQLabel *si = new TQLabel(TQString::number(dpy+1), 0, "Screen Indicator", (WFlags)WX11BypassWM );
+
+ TQFont fnt = TDEGlobalSettings::generalFont();
+ fnt.setPixelSize(100);
+ si->setFont(fnt);
+ si->setFrameStyle(TQFrame::Panel);
+ si->setFrameShadow(TQFrame::Plain);
+ si->setAlignment(Qt::AlignCenter);
+
+ TQPoint screenCenter(TQApplication::desktop()->screenGeometry(dpy).center());
+ TQRect targetGeometry(TQPoint(0,0), si->sizeHint());
+ targetGeometry.moveCenter(screenCenter);
+ si->setGeometry(targetGeometry);
+ si->show();
+
+ return si;
+}
+
+void KCMXinerama::clearIndicator() {
+ _indicators.clear();
+}
+
+extern "C" {
+ KDE_EXPORT TDECModule *create_xinerama(TQWidget *parent, const char *name) {
+ TDEGlobal::locale()->insertCatalogue("kcmxinerama");
+ return new KCMXinerama(parent, name);
+ }
+
+ KDE_EXPORT bool test_xinerama() {
+ return TQApplication::desktop()->isVirtualDesktop();
+ }
+}
+
+
+#include "kcmxinerama.moc"
+
diff --git a/kcontrol/xinerama/kcmxinerama.h b/kcontrol/xinerama/kcmxinerama.h
new file mode 100644
index 000000000..83fdf6de9
--- /dev/null
+++ b/kcontrol/xinerama/kcmxinerama.h
@@ -0,0 +1,62 @@
+/**
+ * kcmxinerama.h
+ *
+ * Copyright (c) 2002-2004 George Staikos <[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 _KCM_XINERAMA_H
+#define _KCM_XINERAMA_H
+
+#include <tdecmodule.h>
+#include <tqptrlist.h>
+#include <tqtimer.h>
+
+#include "xineramawidget.h"
+
+class TDEConfig;
+class TQWidget;
+
+class KCMXinerama : public TDECModule {
+ Q_OBJECT
+public:
+ KCMXinerama(TQWidget *parent = 0L, const char *name = 0L);
+ virtual ~KCMXinerama();
+
+ void load();
+ void load(bool useDefaults );
+ void save();
+ void defaults();
+
+public slots:
+ void windowIndicator(int dpy);
+ void clearIndicator();
+
+ void indicateWindows();
+
+private:
+ TQWidget* indicator(int dpy);
+ TDEConfig *config, *ksplashrc;
+ XineramaWidget *xw;
+ TQTimer _timer;
+ TQPtrList<TQWidget> _indicators;
+
+ int _displays;
+
+};
+
+#endif
+
diff --git a/kcontrol/xinerama/xinerama.desktop b/kcontrol/xinerama/xinerama.desktop
new file mode 100644
index 000000000..0e22bb38d
--- /dev/null
+++ b/kcontrol/xinerama/xinerama.desktop
@@ -0,0 +1,202 @@
+[Desktop Entry]
+Icon=identity
+Type=Application
+Exec=tdecmshell xinerama
+X-DocPath=kcontrol/multiplemonitors.html
+
+X-TDE-Library=xinerama
+X-TDE-Test-Module=true
+Name=Multiple Monitors
+Name[af]=Veelvuldige Skerms
+Name[ar]=شاشات متعددة
+Name[be]=Некалькі манітораў
+Name[bg]=Многомониторен режим
+Name[bn]=একাধিক মনিটর
+Name[br]=Lies skramm
+Name[bs]=Višestruki monitori
+Name[ca]=Múltiples monitors
+Name[cs]=Více monitorů
+Name[csb]=Wiele mònitorów
+Name[cy]=Dangosyddion Lluosol
+Name[da]=Flere skærme
+Name[de]=Mehrere Monitore
+Name[el]=Πολλαπλές οθόνες
+Name[eo]=Oblaj ekranoj
+Name[es]=Varios monitores
+Name[et]=Mitu monitori
+Name[eu]=Monitore anitz
+Name[fa]=نمایشگرهای چندگانه
+Name[fi]=Useita näyttöjä
+Name[fr]=Moniteurs multiples
+Name[fy]=Meardere byldskermen
+Name[ga]=Scáileáin Iomadúla
+Name[gl]=Múltiplos Monitores
+Name[he]=מספר מסכים
+Name[hi]=अनेक मॉनीटर्स
+Name[hr]=Višestruki monitori
+Name[hu]=Több képernyő kezelése
+Name[is]=Margir skjáir
+Name[it]=Monitor multipli
+Name[ja]=マルチモニタ
+Name[ka]=რამდენიმე მონიტორი
+Name[kk]=Бірнеше мониторлар
+Name[km]=ម៉ូនីទ័រ​ច្រើន
+Name[ko]=다중 모니터
+Name[lt]=Keli monitoriai
+Name[lv]=Vairāki monitori
+Name[mk]=Повеќе монитори
+Name[mn]=Олон монитор
+Name[ms]=Berbilang Monitor
+Name[mt]=Skrinijiet multipli
+Name[nb]=Flere skjermer
+Name[nds]=Mehr as een Schirm
+Name[ne]=बहुविध मोनिटर
+Name[nl]=Meerdere monitoren
+Name[nn]=Fleire skjermar
+Name[pa]=ਬਹੁ ਮਾਨੀਟਰ
+Name[pl]=Wiele monitorów
+Name[pt]=Vários Monitores
+Name[pt_BR]=Múltiplos Monitores
+Name[ro]=Monitoare multiple
+Name[ru]=Несколько мониторов
+Name[rw]=Mugaragaza Zitandukanye
+Name[se]=Máŋggaid searpma
+Name[sk]=Viac monitorov
+Name[sl]=Več zaslonov
+Name[sr]=Више монитора
+Name[sr@Latn]=Više monitora
+Name[sv]=Flera bildskärmar
+Name[ta]=பல திரைகள்
+Name[tg]=Чанд намоишгар
+Name[th]=หลายจอภาพ
+Name[tr]=Çoklu Monitör
+Name[tt]=Berniçä Küräk
+Name[uk]=Комбінація моніторів
+Name[uz]=Bir nechta monitor
+Name[uz@cyrillic]=Бир нечта монитор
+Name[vi]=Nhiều Màn hình
+Name[wa]=Multi-waitroûles
+Name[zh_CN]=多个监视器
+Name[zh_TW]=多重顯示器
+Comment=Configure TDE for multiple monitors
+Comment[af]=Stel TDE vir veelvuldige skerms op
+Comment[ar]=إعداد TDE لإستعمال الشاشات المتعددة
+Comment[be]=Настаўленні TDE для працы з некалькімі маніторамі
+Comment[bg]=Настройване на системата за поддръжка на много монитори
+Comment[bn]=একাধিক মনিটরের জন্য কে.ডি.ই কনফিগার করুন
+Comment[br]=Kefluniañ TDE gant meur a skrammoù
+Comment[bs]=Podesite TDE za više monitora
+Comment[ca]=Configura TDE per a múltiples monitors
+Comment[cs]=Nastavení TDE pro více monitorů
+Comment[csb]=Kònfigùracëjô TDE przë wielu mònitorach
+Comment[cy]=Ffurfweddu dangosyddion lluosol i TDE
+Comment[da]=Indstil TDE for flere skærme
+Comment[de]=TDE für mehrere Monitore einrichten
+Comment[el]=Ρύθμιση του TDE για πολλαπλές οθόνες
+Comment[eo]=Agordu TDE por oblaj ekranoj
+Comment[es]=Configuración de TDE para varios monitores
+Comment[et]=TDE seadistamine mitme monitori kasutamiseks
+Comment[eu]=Konfiguratu TDE monitore aniztasunerako
+Comment[fa]=پیکربندی نمایشگرهای چندگانه
+Comment[fi]=Muokkaa TDE sopivaksi usealle näytölle
+Comment[fr]=Configuration de TDE pour l'utilisation de moniteurs multiples
+Comment[fy]=Hjir kinne jo TDE foar meardere byldskermen ynstelle
+Comment[gl]=Configurar TDE para múltiplos monitores
+Comment[he]=הגדר את TDE לשימוש במספר מסכים
+Comment[hi]=अनेक मॉनीटर्स के लिए केडीई कॉन्फ़िगर करें
+Comment[hr]=Konfiguriranje TDE-a za više monitora
+Comment[hu]=Több monitor használata a TDE-ben
+Comment[is]=Stilla TDE fyrir marga skjái
+Comment[it]=Configura TDE per utilizzare più monitor
+Comment[ja]=TDE を複数のモニタ向けに設定
+Comment[ka]=რამდენიმე მონიტორისთვის TDE -ს კონფიგურაცია
+Comment[kk]=TDE-ні бірнеше мониторлар үшін баптау
+Comment[km]=កំណត់​រចនាសម្ព័ន្ធ TDE សម្រាប់​ម៉ូនីទ័រ​ច្រើន
+Comment[ko]=TDE 다중 모니터 설정
+Comment[lt]=Konfigūruoti TDE keliems monitoriams
+Comment[lv]=Konfigure TDE priekš vairākiem monitoriem
+Comment[mk]=Конфигурирајте го TDE за повеќе монитори
+Comment[mn]=КДЭ олон монитор тохируулах
+Comment[ms]=Konfigur TDE untuk berbilang monitor
+Comment[mt]=Konfigurazzjoni tal-TDE għal skrinijiet multipli
+Comment[nb]=Tilpass TDE for flere skjermer
+Comment[nds]=TDE för mehr as een Schirm instellen
+Comment[ne]=बहुविध मोनिटरका लागि TDE कन्फिगर गर्नुहोस्
+Comment[nl]=Hier kunt u TDE voor meerdere monitoren instellen
+Comment[nn]=Set opp TDE for fleire skjermar
+Comment[pa]=ਕਈ ਮਾਨੀਟਰਾਂ ਲਈ TDE ਸੰਰਚਨਾ ਕਰੋ
+Comment[pl]=Konfiguracja TDE przy wielu monitorach
+Comment[pt]=Configuração do TDE para vários monitores
+Comment[pt_BR]=Configura o TDE para o uso de múltiplos monitores
+Comment[ro]=Configurează TDE pentru monitoare multiple
+Comment[ru]=Настройка TDE для нескольких мониторов
+Comment[rw]=Kuboneza TDE kuri mugaragaza zitandukanye
+Comment[se]=Heivet TDE:a máŋggaid šearpma várás
+Comment[sk]=Nastavenie TDE pre viac monitorov
+Comment[sl]=Nastavite TDE za več zaslonov
+Comment[sr]=Подешавање TDE-а за више монитора
+Comment[sr@Latn]=Podešavanje TDE-a za više monitora
+Comment[sv]=Anpassa TDE för flera bildskärmar
+Comment[ta]=பலவிதமான திரைகளுக்கு TDEஐ வடிவமை
+Comment[tg]=Танзими TDE барои намоишгарҳои виртуалӣ
+Comment[th]=ปรับแต่ง TDE สำหรับใช้กับจอภาพหลายจอ
+Comment[tr]=TDE'yi çoklu monitör kullanmak için yapılandır
+Comment[tt]=TDE'nıñ berniçä küräk belän eşläw caylawı
+Comment[uk]=Налаштування декількох моніторів для TDE
+Comment[uz]=TDE'ni bir nechta monitor uchun moslash
+Comment[uz@cyrillic]=TDE'ни бир нечта монитор учун мослаш
+Comment[vi]=Cấu hình TDE cho nhiều màn hình
+Comment[wa]=Apontyî TDE po on håynaedje so sacwantès waitroûles
+Comment[zh_CN]=配置 TDE 的多个监视器
+Comment[zh_TW]=設定 TDE 支援多重顯示器
+Keywords=Xinerama;dual head;multihead;monitor;
+Keywords[ar]=Xinerama;dual head;multihead;monitor;ثنائي الرؤوس;متعدد الرؤوس;شاشة;
+Keywords[be]=Два маніторы;Манітор;Некалькі манітораў;Дысплей;Xinerama;dual head;multihead;monitor;
+Keywords[bg]=много; монитори; монитор; екран; дисплей; Xinerama; dual head; multihead; monitor;
+Keywords[ca]=Xinerama;dual head;doble dispositiu;multihead;multiples dispositius;monitor;
+Keywords[csb]=Xinerama;dwa mònitorë;wiele mònitorów;mònitor;
+Keywords[cy]=Xinerama;pen deuol;amlben;dangosydd;
+Keywords[da]=Xinerama;dualt hovede;multihovede;skærm;
+Keywords[de]=inerama;dual head;multihead;monitor;
+Keywords[el]=Xinerama;dual head;multihead;οθόνη;
+Keywords[eo]=duobla;duoblaj;oblaj;ekrano;ekranoj;
+Keywords[et]=Xinerama;kaks monitori;mitu monitori;monitor;
+Keywords[eu]=Xinerama;dual head;multihead;monitorea;
+Keywords[fa]=Xinerama، سرآیند دوگان، سرآیند چندگانه، نمایشگر;
+Keywords[fi]=Xinerama;näyttö;kaksi näyttöä;useita näyttöjä;
+Keywords[fr]=Xinerama;dual head;multihead;moniteur;multitête;double écran; multiécran;
+Keywords[fy]=Xinerama;dual head;multihead;monitor;byldskerm;
+Keywords[gl]=Xinerama;cabeza dual;cabeza múltiple;monitor;
+Keywords[he]=Xinerama;דו ראשי;רב ראשי;מסך; dual head;multihead;monitor;
+Keywords[hi]=सिनेरामा;ड्यूएल हेड;मल्टी-हेड;मॉनीटर;
+Keywords[hr]=Xinerama;dual head;multihead;monitor;višestruki monitori;
+Keywords[hu]=Xinerama;két fejes;két fej;monitor;
+Keywords[it]=Xinerama;dual head;multihead;monitor;monitor multipli;
+Keywords[ja]=Xinerama;デュアルヘッド;マルチヘッド;モニタ;
+Keywords[km]=Xinerama;ក្បាល​ពីរ;ក្បាល​ច្រើន;ម៉ូនីទ័រ;
+Keywords[lt]=Xinerama;dual head;multihead;monitor;dviejų monitorių;monitorius;
+Keywords[lv]=Xinerama;dual head;multihead;monitori;
+Keywords[mk]=Xinerama;dual head;multihead;monitor;монитор;
+Keywords[mn]=Xinerama;dual head;multihead;монитор;
+Keywords[nb]=Xinerama;to skjermer;flere skjermer;skjerm;monitor;
+Keywords[nds]=Xinerama;dual head;multihead;monitor;Mehrschirmbedrief;Dubbelschirm;
+Keywords[ne]=जिनेरामा; डअल हेड; मल्टिहेड; मनिटर;
+Keywords[nl]=Xinerama;dual head;multihead;monitor;beeldscherm;
+Keywords[nn]=Xinerama;to skjermar;fleire skjermar;skjerm;monitor;
+Keywords[pa]=Xinerama;dual head;multihead;monitor; ਦੋ ਮਾਨੀਟਰ; ਮਾਨੀਟਰ;
+Keywords[pl]=Xinerama;dwa monitory;wiele monitorów;monitor;
+Keywords[pt]=xinerama;vários monitores;multihead;monitor;
+Keywords[pt_BR]=Xinerama;monitores;multihead;monitor;
+Keywords[rw]=Xinerama;umutwe nyabibiri;mitwemyinshi;mugaragaza ;
+Keywords[sl]=Xinerama;dual head;multihead;monitor;zaslon;dva;
+Keywords[sr]=Xinerama;dual head;multihead;monitor;монитор;више монитора;
+Keywords[sr@Latn]=Xinerama;dual head;multihead;monitor;monitor;više monitora;
+Keywords[sv]=Xinerama;dubbla skärmar;flera skärmar;bildskärm;
+Keywords[ta]= Xinerama;இரட்டை தலைப்பு;பலதலைப்பு;திரை;
+Keywords[th]=Xinerama;หัวต่อคู่;หลายหัวต่อ;จอภาพ;
+Keywords[tr]=Xinerama;çift ekran;çoklu ekran;monitör;
+Keywords[uk]=Xinerama;dual head;multihead;монітор;комбінація моніторів;
+Keywords[uz@cyrillic]=Xinerama;dual head;multihead;монитор;
+Keywords[vi]=Xinerama;đầu kép;đa đầu;màn hình;
+Keywords[wa]=Xinerama;deus waitroûles;multi-waitroûles;waitroûle;dual head;multihead;
+Keywords[zh_CN]=Xinerama;dual head;multihead;monitor;双头;多头;监视器;显示器;
diff --git a/kcontrol/xinerama/xineramawidget.ui b/kcontrol/xinerama/xineramawidget.ui
new file mode 100644
index 000000000..a5e3664de
--- /dev/null
+++ b/kcontrol/xinerama/xineramawidget.ui
@@ -0,0 +1,326 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>XineramaWidget</class>
+<widget class="TQWidget">
+ <property name="name">
+ <cstring>XineramaWidget</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>658</width>
+ <height>389</height>
+ </rect>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TQTable" row="1" column="0" rowspan="1" colspan="2">
+ <column>
+ <property name="text">
+ <string>X Coordinate</string>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Y Coordinate</string>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Width</string>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Height</string>
+ </property>
+ </column>
+ <property name="name">
+ <cstring>headTable</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>1</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="vScrollBarMode">
+ <enum>Auto</enum>
+ </property>
+ <property name="hScrollBarMode">
+ <enum>Auto</enum>
+ </property>
+ <property name="numRows">
+ <number>2</number>
+ </property>
+ <property name="numCols">
+ <number>4</number>
+ </property>
+ <property name="showGrid">
+ <bool>true</bool>
+ </property>
+ <property name="readOnly">
+ <bool>true</bool>
+ </property>
+ <property name="selectionMode">
+ <enum>NoSelection</enum>
+ </property>
+ <property name="focusStyle">
+ <enum>FollowStyle</enum>
+ </property>
+ </widget>
+ <widget class="TQButtonGroup" row="0" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>ButtonGroup1</cstring>
+ </property>
+ <property name="title">
+ <string>Multiple Monitor Support</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TQCheckBox">
+ <property name="name">
+ <cstring>_enableXinerama</cstring>
+ </property>
+ <property name="text">
+ <string>Enable multiple monitor virtual desktop support</string>
+ </property>
+ </widget>
+ <widget class="TQCheckBox">
+ <property name="name">
+ <cstring>_enableResistance</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>Enable multiple monitor window resistance support</string>
+ </property>
+ </widget>
+ <widget class="TQCheckBox">
+ <property name="name">
+ <cstring>_enablePlacement</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>Enable multiple monitor window placement support</string>
+ </property>
+ </widget>
+ <widget class="TQCheckBox">
+ <property name="name">
+ <cstring>_enableMaximize</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>Enable multiple monitor window maximize support</string>
+ </property>
+ </widget>
+ <widget class="TQCheckBox">
+ <property name="name">
+ <cstring>_enableFullscreen</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>Enable multiple monitor window fullscreen support</string>
+ </property>
+ </widget>
+ </vbox>
+ </widget>
+ <widget class="TQPushButton" row="3" column="1">
+ <property name="name">
+ <cstring>_identify</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Identify All Displays</string>
+ </property>
+ </widget>
+ <spacer row="3" column="0">
+ <property name="name">
+ <cstring>spacer2</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>431</width>
+ <height>21</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="TQLayoutWidget" row="2" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>layout2</cstring>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TQLabel" row="0" column="0">
+ <property name="name">
+ <cstring>TextLabel2</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>Show unmanaged windows on:</string>
+ </property>
+ <property name="buddy" stdset="0">
+ <cstring>_unmanagedDisplay</cstring>
+ </property>
+ </widget>
+ <widget class="TQComboBox" row="1" column="1">
+ <property name="name">
+ <cstring>_ksplashDisplay</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ </widget>
+ <widget class="TQLabel" row="1" column="0">
+ <property name="name">
+ <cstring>TextLabel2_2</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>Show TDE splash screen on:</string>
+ </property>
+ <property name="buddy" stdset="0">
+ <cstring>_unmanagedDisplay</cstring>
+ </property>
+ </widget>
+ <widget class="TQComboBox" row="0" column="1">
+ <property name="name">
+ <cstring>_unmanagedDisplay</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ </grid>
+</widget>
+<connections>
+ <connection>
+ <sender>_enableXinerama</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>_enableResistance</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>_enableXinerama</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>_enablePlacement</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>_enableXinerama</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>_enableMaximize</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>_enableXinerama</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>TextLabel2</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>_enableXinerama</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>_unmanagedDisplay</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>_enableXinerama</sender>
+ <signal>clicked()</signal>
+ <receiver>XineramaWidget</receiver>
+ <slot>emitConfigChanged()</slot>
+ </connection>
+ <connection>
+ <sender>_enableResistance</sender>
+ <signal>clicked()</signal>
+ <receiver>XineramaWidget</receiver>
+ <slot>emitConfigChanged()</slot>
+ </connection>
+ <connection>
+ <sender>_enablePlacement</sender>
+ <signal>clicked()</signal>
+ <receiver>XineramaWidget</receiver>
+ <slot>emitConfigChanged()</slot>
+ </connection>
+ <connection>
+ <sender>_enableMaximize</sender>
+ <signal>clicked()</signal>
+ <receiver>XineramaWidget</receiver>
+ <slot>emitConfigChanged()</slot>
+ </connection>
+ <connection>
+ <sender>_unmanagedDisplay</sender>
+ <signal>activated(int)</signal>
+ <receiver>XineramaWidget</receiver>
+ <slot>emitConfigChanged()</slot>
+ </connection>
+ <connection>
+ <sender>_enableXinerama</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>TextLabel2_2</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>_enableXinerama</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>_ksplashDisplay</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>_ksplashDisplay</sender>
+ <signal>activated(int)</signal>
+ <receiver>XineramaWidget</receiver>
+ <slot>emitConfigChanged()</slot>
+ </connection>
+ <connection>
+ <sender>_enableFullscreen</sender>
+ <signal>clicked()</signal>
+ <receiver>XineramaWidget</receiver>
+ <slot>emitConfigChanged()</slot>
+ </connection>
+ <connection>
+ <sender>_enableXinerama</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>_enableFullscreen</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+</connections>
+<includes>
+ <include location="local" impldecl="in implementation">kdialog.h</include>
+ <include location="local" impldecl="in implementation">xineramawidget.ui.h</include>
+</includes>
+<Q_SIGNALS>
+ <signal>configChanged()</signal>
+</Q_SIGNALS>
+<Q_SLOTS>
+ <slot access="private">emitConfigChanged()</slot>
+</Q_SLOTS>
+<layoutdefaults spacing="3" margin="6"/>
+<layoutfunctions spacing="KDialog::spacingHint" margin="KDialog::marginHint"/>
+</UI>
diff --git a/kcontrol/xinerama/xineramawidget.ui.h b/kcontrol/xinerama/xineramawidget.ui.h
new file mode 100644
index 000000000..8373eadd2
--- /dev/null
+++ b/kcontrol/xinerama/xineramawidget.ui.h
@@ -0,0 +1,14 @@
+/****************************************************************************
+** ui.h extension file, included from the uic-generated form implementation.
+**
+** If you wish to add, delete or rename functions or slots use
+** Qt Designer which will update this file, preserving your code. Create an
+** init() function in place of a constructor, and a destroy() function in
+** place of a destructor.
+*****************************************************************************/
+
+
+void XineramaWidget::emitConfigChanged()
+{
+emit configChanged();
+}