summaryrefslogtreecommitdiffstats
path: root/kscreensaver
diff options
context:
space:
mode:
authortoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
committertoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
commit4aed2c8219774f5d797760606b8489a92ddc5163 (patch)
tree3f8c130f7d269626bf6a9447407ef6c35954426a /kscreensaver
downloadtdebase-4aed2c8219774f5d797760606b8489a92ddc5163.tar.gz
tdebase-4aed2c8219774f5d797760606b8489a92ddc5163.zip
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdebase@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kscreensaver')
-rw-r--r--kscreensaver/AUTHORS23
-rw-r--r--kscreensaver/ChangeLog93
-rw-r--r--kscreensaver/KBlankscreen.desktop323
-rw-r--r--kscreensaver/KRandom.desktop321
-rw-r--r--kscreensaver/Makefile.am27
-rw-r--r--kscreensaver/blankscrn.cpp135
-rw-r--r--kscreensaver/blankscrn.h56
-rw-r--r--kscreensaver/random.cpp246
-rw-r--r--kscreensaver/random.h38
9 files changed, 1262 insertions, 0 deletions
diff --git a/kscreensaver/AUTHORS b/kscreensaver/AUTHORS
new file mode 100644
index 00000000..fda66bb3
--- /dev/null
+++ b/kscreensaver/AUTHORS
@@ -0,0 +1,23 @@
+ blank - Copyright (c) 1997 Martin Jones <mjones@kde.org>
+ banner - Copyright (c) 1997 Martin Jones <mjones@kde.org>
+ polygon - Copyright (c) 1997 Martin Jones <mjones@kde.org>
+ lines - Copyright (c) 1997 Dirk Staneker
+ blob - Copyright (c) 1997 Tiaan Wessels <tiaan@netsys.co.za>
+
+Ported from xlockmore: (but blame Martin if they don't work)
+ rock - Copyright (c) 1992 Jamie Zawinski
+ flame - Copyright (c) 1991 Scott Draves <spot@draves.org>
+ pyro - Copyright (c) 1991 Patrick J. Naughton
+ laser - Copyright (c) 1995 Pascal Pensa <pensa@aurora.unice.fr>
+
+Ported from xlockmore by Emanuel Pirker <epirker@edu.uni-klu.ac.at>:
+ bat - Copyright (c) 1988 Sun Microsystems
+ forest - Copyright (c) 1995 Pascal Pensa <pensa@aurora.unice.fr>
+ hop - Copyright (c) 1991 Patrick J. Naughton
+ lissie - Copyright (c) Alexander Jolk <ub9x@rz.uni-karlsruhe.de>
+ slip - Copyright (c) 1992 Scott Draves <spot@cs.cmu.edu>
+ swarm - Copyright (c) 1991 Patrick J. Naughton
+ morph3d - Copyright (c) 1997 by Marcelo F. Vianna
+
+Ported from xscreensaver by Alex Zepeda <garbanzo@hooked.net>
+ bsod - Copyright (c) 1998 Jamie Zawinski <jwz@jwz.org>
diff --git a/kscreensaver/ChangeLog b/kscreensaver/ChangeLog
new file mode 100644
index 00000000..52a485af
--- /dev/null
+++ b/kscreensaver/ChangeLog
@@ -0,0 +1,93 @@
+2001-03-10 Martin R. Jones <mjones@kde.org>
+ * added libkscreensaver and ported KDE savers to it.
+ * big cleanup.
+
+2000-01-10 Alexander Neundorf <alexander.neundorf@rz.tu-ilmenau.de>
+ * banner.h, banner.cpp:
+ -added cycling color option
+ -added "show current time" option
+ -replaced the readEntry()'s with the appropriate read*Entry()'s
+ * replaced the glocale->translate with i18n in
+ attraction.cpp, banner.cpp, bat.cpp, blankscrn.cpp, blob.cpp,
+ bouboule.cpp, flame.cpp, forest.cpp, hop.cpp, laser.cpp, lines.cpp,
+ lissie.cpp, main.cpp, morph3d.cpp, pipes.cpp, polygon.cpp, pyro.cpp, rock.cpp,
+ slidescreen.cpp, slideshow.cpp, slip.cpp, space.cpp, swarm.cpp
+
+1999-04-28 Christophe Prud'homme <Christophe.Prudhomme@ann.jussieu.fr>
+
+ * bouboule.cpp: the global variable initialized in bouboule is
+ used also in qt2. I just renamed the variable to
+ bouboule_initialized. However it is just a hack, and I think that
+ such global variables are C pratice and not C++
+
+1998-12-13 Christian Esken <esken@kde.org>
+
+ * Calling kcheckpass (only on Shadow systems). This checks if the password
+ database can be acessed. This uses the new return code (#2) by kcheckpass.
+
+1998-10-24 Alex Zepeda <garbanzo@hooked.net>
+
+ * bsod.cpp (BSODSaver::BSODSaver): Use srandomdev where available.
+
+1998-10-23 Alex Zepeda <garbanzo@hooked.net>
+
+ * bsod.cpp (BSODSaver::BSODSaver): initialize the random seed correctly.
+
+ * amiga.xpm, atari.xbm, bsod.cpp, bsod.h, mac.xbm, AUTHORS, Makefile.am:
+ New screensaver: BSOD. Yay! Still needs some final polishing however (such as a
+ configuration dialog box).
+
+ * saver.h: Add correct C style prototypes for startScreenSaver and friends.
+
+ * main.cpp: Make startScreenSaver and friends use C style name mangling.
+
+Version 0.3.7
+
+added geometry management to all screensaver setups except kmorph3d (Mario
+Weilguni <mweilguni@kde.org>)
+
+Version 0.3.6
+
+added "blob" saver from Tiaan Wessels <tiaan@netsys.co.za>
+
+Version 0.3.5
+
+fixes from Emanuel Pirker for ported xlock savers.
+
+Version 0.3.4
+
+More xlock ports from Emanuel Pirker <epirker@edu.uni-klu.ac.at>
+
+Version 0.3.3
+
+Fix small window problem under kwm (hopefully)
+Fixes for Qt-1.2
+
+
+Version 0.3.2
+
+Updated lines
+added About dialogs for all savers
+Shadow password support added by Martin Hartig
+Use libkdeui for colour dialog
+
+
+Version 0.3.1
+
+Ported some xlock savers. Basic interface code done, but will need more work
+ for some savers yet to be ported.
+Included "lines" (contributed by Dirk Staneker
+ <dirk.staneker@student.uni-tuebingen.de>)
+locking bug fix
+
+Version 0.3
+
+fixes to password stuff
+
+Version 0.2
+
+kscreensaver.h/cpp external control files
+SIGUSR1 causes the screen saver to lock immediately
+hopefully StaysOnTop and windows opening after ss invoked will not display
+ over saver window anymore
+minor bug fixes
diff --git a/kscreensaver/KBlankscreen.desktop b/kscreensaver/KBlankscreen.desktop
new file mode 100644
index 00000000..182d48f0
--- /dev/null
+++ b/kscreensaver/KBlankscreen.desktop
@@ -0,0 +1,323 @@
+[Desktop Entry]
+Exec=kblankscrn.kss
+Icon=kscreensaver
+Type=Application
+Actions=Setup;InWindow;Root;
+OnlyShowIn=KDE;
+Name=Blank Screen
+Name[af]=Leë Skerm
+Name[ar]=شاشة فارغة
+Name[az]=Boş Ekran
+Name[be]=Чысты экран
+Name[bg]=Празен екран
+Name[bn]=ফাঁকা স্ক্রীণ
+Name[br]=Skramm goullo
+Name[bs]=Prazan ekran
+Name[ca]=Pantalla en blanc
+Name[cs]=Prázdná obrazovka
+Name[csb]=Czôrny ekran
+Name[cy]=Sgrîn Gwag
+Name[da]=Blank skærm
+Name[de]=Leerer Bildschirm
+Name[el]=Κενή οθόνη
+Name[eo]=Nigra ekrano
+Name[es]=Pantalla negra
+Name[et]=Tühi ekraan
+Name[eu]=Leiho beltza
+Name[fa]=پردۀ خالی
+Name[fi]=Tyhjä ruutu
+Name[fr]=Écran vide
+Name[fy]=Leech skerm
+Name[ga]=Scáileán Glan
+Name[gl]=Pantalla baleira
+Name[he]=מסך ריק
+Name[hi]=स्क्रीन शून्य करें
+Name[hr]=Prazan zaslon
+Name[hu]=Üres képernyő
+Name[id]=Layar Kosong
+Name[is]=Svartur skjár
+Name[it]=Schermo nero
+Name[ja]=なし
+Name[ka]=ცარიელი ეკრანი
+Name[kk]=Бос экран
+Name[km]=អេក្រង់​ទទេ
+Name[ko]=빈 화면
+Name[lo]=ຈໍວ່າງ
+Name[lt]=Tuščias ekranas
+Name[lv]=Tukšs Ekrāns
+Name[mk]=Празен екран
+Name[mn]=Хоосон дэлгэц
+Name[ms]=Skrin Kosong
+Name[mt]=Skrin Vojt
+Name[nb]=Tom skjerm
+Name[nds]=Leddig Schirm
+Name[ne]=खाली पर्दा
+Name[nl]=Leeg scherm
+Name[nn]=Tom skjerm
+Name[nso]=Pontsho yeo Esenago Selo
+Name[oc]=Ecran blanc
+Name[pa]=ਖਾਲੀ ਸਕਰੀਨ
+Name[pl]=Czarny ekran
+Name[pt]=Ecrã Vazio
+Name[pt_BR]=Limpar Tela
+Name[ro]=Ecran gol
+Name[ru]=Пустой экран
+Name[rw]=Mugaragaza Itanditseho
+Name[se]=Guorus šearbma
+Name[sk]=Prázdna obrazovka
+Name[sl]=Prazen zaslon
+Name[sr]=Празан екран
+Name[sr@Latn]=Prazan ekran
+Name[ss]=Skrini lesingenalutfo
+Name[sv]=Tom skärm
+Name[ta]=வெற்று திரை
+Name[te]=ఖాళి తెర
+Name[tg]=Пардаи сафед
+Name[th]=หน้าจอว่าง
+Name[tr]=Boş Ekran
+Name[tt]=Buş Küräk
+Name[uk]=Порожній екран
+Name[uz]=Boʻsh ekran
+Name[uz@cyrillic]=Бўш экран
+Name[ven]=Tshikirini tshi sina tshithu
+Name[vi]=Màn hình Trống
+Name[wa]=Noere waitroûle
+Name[xh]=Ikhusi Elingenanto
+Name[zh_CN]=空屏幕
+Name[zh_TW]=空白螢幕
+Name[zu]=Iskrini Esingenalutho
+
+[Desktop Action Setup]
+Exec=kblankscrn.kss -setup
+Name=Setup...
+Name[af]=Opstelling...
+Name[ar]=إعداد...
+Name[az]=Qurğular...
+Name[be]=Настаўленні...
+Name[bg]=Настройване...
+Name[bn]=সেট-আপ...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Configuració...
+Name[cs]=Nastavení...
+Name[csb]=Ùstôw...
+Name[cy]=Gosod...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=Ρύθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistused...
+Name[eu]=Konfigurazioa...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hr]=Postavke...
+Name[hu]=Beállítás...
+Name[id]=Aturan...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=セットアップ...
+Name[ka]=კონფიგურაცია...
+Name[kk]=Баптау...
+Name[km]=ដំឡើង...
+Name[ko]=설정...
+Name[lo]=ຕິດຕັ້ງ..
+Name[lt]=Nustatymas...
+Name[lv]=Uzstādīšana...
+Name[mk]=Постави...
+Name[mn]=Тохируулга...
+Name[ms]=Tetapan...
+Name[nb]=Oppsett …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[oc]=Configuracion...
+Name[pa]=ਸੈੱਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Opțiuni...
+Name[ru]=Настройка...
+Name[rw]=Iboneza...
+Name[se]=Heiveheapmi …
+Name[sk]=Nastavenie...
+Name[sl]=Nastavitve ...
+Name[sr]=Подеси...
+Name[sr@Latn]=Podesi...
+Name[ss]=Lungiselela...
+Name[sv]=Inställningar...
+Name[ta]=அமைப்பு...
+Name[te]=సెటప్...
+Name[tg]=Танзимот...
+Name[th]=ตั้งค่า...
+Name[tr]=Kurulum...
+Name[tt]=Caylaw...
+Name[uk]=Встановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Cài đặt...
+Name[wa]=Apontyî...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=kscreensaver
+
+[Desktop Action InWindow]
+Exec=kblankscrn.kss -window-id %w
+Name=Display in Specified Window
+Name[af]=Vertoon in gespesifiseerde venster
+Name[ar]=أعرض في النافذة المحددة
+Name[az]=Bildirilən Pəncərədə Göstər
+Name[be]=Паказваць у вызначаным акне
+Name[bg]=Стартиране в избран прозорец
+Name[bn]=নির্দিষ্ট উইণ্ডোয় দেখাও
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v určeném okně
+Name[csb]=Wëskrzëni w pòdónym òknie
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In angegebenem Fenster anzeigen
+Name[el]=Προβολή στο καθορισμένο παράθυρο
+Name[eo]=Montru en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Erakutsi adierazitako leihoan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiëare finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra especificada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निर्दिष्ट विंडो में प्रदर्शित करें
+Name[hr]=Prikaži u odabranom prozoru
+Name[hu]=Megjelenítés egy megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定のウィンドウで表示
+Name[ka]=მოცემულ ფანჯარაში ასახვა
+Name[kk]=Келтірілген терезеде көрсету
+Name[km]=បង្ហាញ​ក្នុង​បង្អួច​ដែល​បាន​បញ្ជាក់​លម្អិត
+Name[ko]=지정한 창에 보이기
+Name[lt]=Rodyti nurodytame lange
+Name[lv]=Rādīt norādītajā logā
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Paparan dalam Tetingkap Yang Dinyatakan
+Name[mt]=Uri f'window speċifika
+Name[nb]=Vis i det valgte vinduet
+Name[nds]=In't utsöchte Finster wiesen
+Name[ne]=निर्दिष्ट गरिएको सञ्झ्यालमा प्रदर्शन गर्नुहोस्
+Name[nl]=In een gedefinieerd venster weergeven
+Name[nn]=Vis i vald vindauge
+Name[pa]=ਦਿੱਤੇ ਝਰੋਖੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w podanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afișează în fereastra specificată
+Name[ru]=Показать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[se]=Čájet meroštuvvon láses
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v določenemu oknu
+Name[sr]=Прикажи у задатом прозору
+Name[sr@Latn]=Prikaži u zadatom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=குறிப்பிடப்பட்ட சாளரத்தில் காட்டு
+Name[th]=แสดงในหน้าต่างที่กำหนด
+Name[tr]=Belirtilen Pencerede Göster
+Name[tt]=Äytelgän Täräzädä Kürsät
+Name[uk]=Відобразити у вказаному вікні
+Name[uz]=Koʻrsatilgan oynada koʻrsatish
+Name[uz@cyrillic]=Кўрсатилган ойнада кўрсатиш
+Name[vi]=Hiển thị trong một Cửa sổ Đặc biệt
+Name[wa]=Håyner dins l' purnea specifyî
+Name[zh_CN]=在指定窗口中显示
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kblankscrn.kss -root
+Name=Display in Root Window
+Name[af]=Vertoon in root venster
+Name[ar]=أعرض في النافذة الجذرية
+Name[az]=Kök Pəncərədə Göstər
+Name[be]=Паказваць у галоўным акне
+Name[bg]=Стартиране в главния прозорец
+Name[bn]=রুট উইণ্ডোয় দেখাও
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra root
+Name[cs]=Zobrazit na pozadí plochy
+Name[csb]=Wëskrzëni w przédnym òknie
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=Im Basisfenster (Root Window) anzeigen
+Name[el]=Προβολή στο βασικό παράθυρο
+Name[eo]=Montru en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Erakutsi leiho nagusian
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में प्रदर्शित करें
+Name[hr]=Prikaži u korijenskom prozoru
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í bakgrunni skjáborðs
+Name[it]=Mostra sulla finestra di sfondo
+Name[ja]=ルートウィンドウで表示
+Name[ka]=ძირეულ ფანჯარაში ასახვა
+Name[kk]=Root терезесінде көрсету
+Name[km]=បង្ហាញ​ក្នុង​បង្អួច Root
+Name[ko]=전체 화면에 보이기
+Name[lt]=Rodyti root lange
+Name[lv]=Rādīt saknes logā
+Name[mk]=Прикажи во кореновиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[mt]=Uri fil-window ewlenija
+Name[nb]=Vis i rotvinduet
+Name[nds]=In't Hööftfinster wiesen
+Name[ne]=रुट सञ्झ्यालमा प्रदर्शन गर्नुहोस्
+Name[nl]=In hoofdvenster weergeven
+Name[nn]=Vis i rotvindauget
+Name[pa]=ਰੂਟ(Root) ਝਰੋਖੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela-raiz
+Name[ro]=Afișează în fereastra rădăcină
+Name[ru]=Показать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[se]=Čájet ruohtasláses
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у кореном прозору
+Name[sr@Latn]=Prikaži u korenom prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=மூல சாளரத்தில் காட்டு
+Name[th]=แสดงในหน้าต่างหลัก
+Name[tr]=Kök Pencerede Göster
+Name[tt]=Root Täräzäsendä Kürsät
+Name[uk]=Відобразити на тлі екрана
+Name[uz]=Tub oynada koʻrsatish
+Name[uz@cyrillic]=Туб ойнада кўрсатиш
+Name[vi]=Hiển thị trong Cửa sổ của Gốc
+Name[wa]=Håyner e purnea raecene (li fond do scribanne)
+Name[zh_CN]=在 Root 窗口中显示
+Name[zh_TW]=在 Root 視窗中顯示
+NoDisplay=true
diff --git a/kscreensaver/KRandom.desktop b/kscreensaver/KRandom.desktop
new file mode 100644
index 00000000..f93c8abe
--- /dev/null
+++ b/kscreensaver/KRandom.desktop
@@ -0,0 +1,321 @@
+[Desktop Entry]
+Exec=krandom.kss
+Icon=kscreensaver
+Type=Application
+Actions=Setup;InWindow;Root;
+OnlyShowIn=KDE;
+Name=Random
+Name[af]=Lukrake
+Name[ar]=عشوائي
+Name[az]=Təsadüfi
+Name[be]=Выпадковы
+Name[bg]=Произволен
+Name[bn]=এলোমেলোভাবে
+Name[br]=Dre zegouezh
+Name[bs]=Bilo koji
+Name[ca]=Aleatori
+Name[cs]=Náhodný
+Name[csb]=Przëtrôfkòwi
+Name[cy]=Ar Hap
+Name[da]=Tilfældig
+Name[de]=Zufällig
+Name[el]=Τυχαία
+Name[eo]=Hazardo
+Name[es]=Aleatorio
+Name[et]=Juhuslik
+Name[eu]=Ausazkoa
+Name[fa]=تصادفی
+Name[fi]=Satunnainen
+Name[fr]=Aléatoire
+Name[fy]=Samar in
+Name[ga]=Fánach
+Name[gl]=Aleatório
+Name[he]=אקראי
+Name[hi]=बेतरतीब
+Name[hr]=Nasumice
+Name[hu]=Véletlenszerű
+Name[id]=Acak
+Name[is]=Slembið
+Name[it]=Casuale
+Name[ja]=ランダム
+Name[ka]=შემთხვევითი
+Name[kk]=Кездейсоқ
+Name[km]=ចៃដន្យ
+Name[ko]=아무거나
+Name[lo]=ສຸ່ມ
+Name[lt]=Atsitiktinis
+Name[lv]=Gadījuma
+Name[mk]=Случаен
+Name[mn]=Дурын
+Name[ms]=Rawak
+Name[mt]=Imtella' bil-Polza
+Name[nb]=Tilfeldig
+Name[nds]=Tofall
+Name[ne]=अनियमित
+Name[nl]=Willekeurig
+Name[nn]=Tilfeldig
+Name[nso]=Kago Rarela
+Name[oc]=Aleatori
+Name[pa]=ਰਲਵਾਂ
+Name[pl]=Losowy
+Name[pt]=Aleatório
+Name[pt_BR]=Aleatório
+Name[ro]=Aleator
+Name[ru]=Случайный
+Name[rw]=Bibonetse
+Name[se]=Sáhtodohko
+Name[sk]=Náhodný
+Name[sl]=Naključno
+Name[sr]=Случајно
+Name[sr@Latn]=Slučajno
+Name[sv]=Slumpmässig
+Name[ta]=ஒழுங்கற்ற
+Name[tg]=Тассодуфӣ
+Name[th]=สุ่ม
+Name[tr]=Rastgele
+Name[tt]=Oçraqlı
+Name[uk]=Випадковий
+Name[uz]=Tasodifiy
+Name[uz@cyrillic]=Тасодифий
+Name[ven]=Zwothe
+Name[vi]=Ngẫu nhiên
+Name[wa]=A l' astcheyance
+Name[xh]=Ngaphandle kwenjongo
+Name[zh_CN]=随机
+Name[zh_TW]=隨機
+Name[zu]=Okungenaphethini
+
+[Desktop Action Setup]
+Exec=krandom.kss -setup
+Name=Setup...
+Name[af]=Opstelling...
+Name[ar]=إعداد...
+Name[az]=Qurğular...
+Name[be]=Настаўленні...
+Name[bg]=Настройване...
+Name[bn]=সেট-আপ...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Configuració...
+Name[cs]=Nastavení...
+Name[csb]=Ùstôw...
+Name[cy]=Gosod...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=Ρύθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistused...
+Name[eu]=Konfigurazioa...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hr]=Postavke...
+Name[hu]=Beállítás...
+Name[id]=Aturan...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=セットアップ...
+Name[ka]=კონფიგურაცია...
+Name[kk]=Баптау...
+Name[km]=ដំឡើង...
+Name[ko]=설정...
+Name[lo]=ຕິດຕັ້ງ..
+Name[lt]=Nustatymas...
+Name[lv]=Uzstādīšana...
+Name[mk]=Постави...
+Name[mn]=Тохируулга...
+Name[ms]=Tetapan...
+Name[nb]=Oppsett …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[oc]=Configuracion...
+Name[pa]=ਸੈੱਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Opțiuni...
+Name[ru]=Настройка...
+Name[rw]=Iboneza...
+Name[se]=Heiveheapmi …
+Name[sk]=Nastavenie...
+Name[sl]=Nastavitve ...
+Name[sr]=Подеси...
+Name[sr@Latn]=Podesi...
+Name[ss]=Lungiselela...
+Name[sv]=Inställningar...
+Name[ta]=அமைப்பு...
+Name[te]=సెటప్...
+Name[tg]=Танзимот...
+Name[th]=ตั้งค่า...
+Name[tr]=Kurulum...
+Name[tt]=Caylaw...
+Name[uk]=Встановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Cài đặt...
+Name[wa]=Apontyî...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=kscreensaver
+
+[Desktop Action InWindow]
+Exec=krandom.kss -window-id %w
+Name=Display in Specified Window
+Name[af]=Vertoon in gespesifiseerde venster
+Name[ar]=أعرض في النافذة المحددة
+Name[az]=Bildirilən Pəncərədə Göstər
+Name[be]=Паказваць у вызначаным акне
+Name[bg]=Стартиране в избран прозорец
+Name[bn]=নির্দিষ্ট উইণ্ডোয় দেখাও
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v určeném okně
+Name[csb]=Wëskrzëni w pòdónym òknie
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In angegebenem Fenster anzeigen
+Name[el]=Προβολή στο καθορισμένο παράθυρο
+Name[eo]=Montru en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Erakutsi adierazitako leihoan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiëare finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra especificada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निर्दिष्ट विंडो में प्रदर्शित करें
+Name[hr]=Prikaži u odabranom prozoru
+Name[hu]=Megjelenítés egy megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定のウィンドウで表示
+Name[ka]=მოცემულ ფანჯარაში ასახვა
+Name[kk]=Келтірілген терезеде көрсету
+Name[km]=បង្ហាញ​ក្នុង​បង្អួច​ដែល​បាន​បញ្ជាក់​លម្អិត
+Name[ko]=지정한 창에 보이기
+Name[lt]=Rodyti nurodytame lange
+Name[lv]=Rādīt norādītajā logā
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Paparan dalam Tetingkap Yang Dinyatakan
+Name[mt]=Uri f'window speċifika
+Name[nb]=Vis i det valgte vinduet
+Name[nds]=In't utsöchte Finster wiesen
+Name[ne]=निर्दिष्ट गरिएको सञ्झ्यालमा प्रदर्शन गर्नुहोस्
+Name[nl]=In een gedefinieerd venster weergeven
+Name[nn]=Vis i vald vindauge
+Name[pa]=ਦਿੱਤੇ ਝਰੋਖੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w podanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afișează în fereastra specificată
+Name[ru]=Показать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[se]=Čájet meroštuvvon láses
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v določenemu oknu
+Name[sr]=Прикажи у задатом прозору
+Name[sr@Latn]=Prikaži u zadatom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=குறிப்பிடப்பட்ட சாளரத்தில் காட்டு
+Name[th]=แสดงในหน้าต่างที่กำหนด
+Name[tr]=Belirtilen Pencerede Göster
+Name[tt]=Äytelgän Täräzädä Kürsät
+Name[uk]=Відобразити у вказаному вікні
+Name[uz]=Koʻrsatilgan oynada koʻrsatish
+Name[uz@cyrillic]=Кўрсатилган ойнада кўрсатиш
+Name[vi]=Hiển thị trong một Cửa sổ Đặc biệt
+Name[wa]=Håyner dins l' purnea specifyî
+Name[zh_CN]=在指定窗口中显示
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=krandom.kss -root
+Name=Display in Root Window
+Name[af]=Vertoon in root venster
+Name[ar]=أعرض في النافذة الجذرية
+Name[az]=Kök Pəncərədə Göstər
+Name[be]=Паказваць у галоўным акне
+Name[bg]=Стартиране в главния прозорец
+Name[bn]=রুট উইণ্ডোয় দেখাও
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra root
+Name[cs]=Zobrazit na pozadí plochy
+Name[csb]=Wëskrzëni w przédnym òknie
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=Im Basisfenster (Root Window) anzeigen
+Name[el]=Προβολή στο βασικό παράθυρο
+Name[eo]=Montru en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Erakutsi leiho nagusian
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में प्रदर्शित करें
+Name[hr]=Prikaži u korijenskom prozoru
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í bakgrunni skjáborðs
+Name[it]=Mostra sulla finestra di sfondo
+Name[ja]=ルートウィンドウで表示
+Name[ka]=ძირეულ ფანჯარაში ასახვა
+Name[kk]=Root терезесінде көрсету
+Name[km]=បង្ហាញ​ក្នុង​បង្អួច Root
+Name[ko]=전체 화면에 보이기
+Name[lt]=Rodyti root lange
+Name[lv]=Rādīt saknes logā
+Name[mk]=Прикажи во кореновиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[mt]=Uri fil-window ewlenija
+Name[nb]=Vis i rotvinduet
+Name[nds]=In't Hööftfinster wiesen
+Name[ne]=रुट सञ्झ्यालमा प्रदर्शन गर्नुहोस्
+Name[nl]=In hoofdvenster weergeven
+Name[nn]=Vis i rotvindauget
+Name[pa]=ਰੂਟ(Root) ਝਰੋਖੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela-raiz
+Name[ro]=Afișează în fereastra rădăcină
+Name[ru]=Показать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[se]=Čájet ruohtasláses
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у кореном прозору
+Name[sr@Latn]=Prikaži u korenom prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=மூல சாளரத்தில் காட்டு
+Name[th]=แสดงในหน้าต่างหลัก
+Name[tr]=Kök Pencerede Göster
+Name[tt]=Root Täräzäsendä Kürsät
+Name[uk]=Відобразити на тлі екрана
+Name[uz]=Tub oynada koʻrsatish
+Name[uz@cyrillic]=Туб ойнада кўрсатиш
+Name[vi]=Hiển thị trong Cửa sổ của Gốc
+Name[wa]=Håyner e purnea raecene (li fond do scribanne)
+Name[zh_CN]=在 Root 窗口中显示
+Name[zh_TW]=在 Root 視窗中顯示
+NoDisplay=true
diff --git a/kscreensaver/Makefile.am b/kscreensaver/Makefile.am
new file mode 100644
index 00000000..75cf3764
--- /dev/null
+++ b/kscreensaver/Makefile.am
@@ -0,0 +1,27 @@
+# Makefile.am for kscreensaver.
+#
+
+AM_CPPFLAGS = -UQT_NO_ASCII_CAST
+
+INCLUDES = $(all_includes)
+AM_LDFLAGS = $(all_libraries) $(KDE_RPATH)
+
+bin_PROGRAMS = krandom.kss kblankscrn.kss
+
+krandom_kss_SOURCES = random.cpp
+krandom_kss_LDADD = $(LIB_KDEUI) -lm
+
+kblankscrn_kss_SOURCES = blankscrn.cpp
+kblankscrn_kss_LDADD = $(LIB_KDEUI) -lkscreensaver -lm
+
+METASOURCES = AUTO
+
+messages:
+ $(XGETTEXT) *.cpp *.h -o $(podir)/kscreensaver.pot
+
+########## Meta objects ##########
+
+desktop_DATA = KRandom.desktop KBlankscreen.desktop
+desktopdir = $(kde_appsdir)/System/ScreenSavers
+
+EXTRA_DIST = $(desktop_DATA)
diff --git a/kscreensaver/blankscrn.cpp b/kscreensaver/blankscrn.cpp
new file mode 100644
index 00000000..6b0b974c
--- /dev/null
+++ b/kscreensaver/blankscrn.cpp
@@ -0,0 +1,135 @@
+//-----------------------------------------------------------------------------
+//
+// kblankscrn - Basic screen saver for KDE
+//
+// Copyright (c) Martin R. Jones 1996
+//
+// 1998/04/19 Layout management added by Mario Weilguni <mweilguni@kde.org>
+// 2001/03/04 Converted to use libkscreensaver by Martin R. Jones
+
+#include <stdlib.h>
+#include <qlabel.h>
+#include <qlayout.h>
+#include <kapplication.h>
+#include <klocale.h>
+#include <kconfig.h>
+#include <kcolordialog.h>
+#include <kbuttonbox.h>
+#include <kcolorbutton.h>
+#include <kglobal.h>
+#include "blankscrn.h"
+#include "blankscrn.moc"
+
+// libkscreensaver interface
+extern "C"
+{
+ KDE_EXPORT const char *kss_applicationName = "kblankscrn.kss";
+ KDE_EXPORT const char *kss_description = I18N_NOOP( "KBlankScreen" );
+ KDE_EXPORT const char *kss_version = "2.2.0";
+
+ KDE_EXPORT KScreenSaver* kss_create( WId id )
+ {
+ return new KBlankSaver( id );
+ }
+
+ KDE_EXPORT QDialog* kss_setup()
+ {
+ return new KBlankSetup();
+ }
+}
+
+//-----------------------------------------------------------------------------
+// dialog to setup screen saver parameters
+//
+KBlankSetup::KBlankSetup( QWidget *parent, const char *name )
+ : KDialogBase( parent, name, true, i18n( "Setup Blank Screen Saver" ),
+ Ok|Cancel, Ok, true )
+{
+ readSettings();
+
+ QFrame *main = makeMainWidget();
+ QGridLayout *grid = new QGridLayout(main, 4, 2, 0, spacingHint() );
+
+ QLabel *label = new QLabel( i18n("Color:"), main );
+ grid->addWidget(label, 0, 0);
+
+ KColorButton *colorPush = new KColorButton( color, main );
+ colorPush->setMinimumWidth(80);
+ connect( colorPush, SIGNAL( changed(const QColor &) ),
+ SLOT( slotColor(const QColor &) ) );
+ grid->addWidget(colorPush, 1, 0);
+
+ preview = new QWidget( main );
+ preview->setFixedSize( 220, 165 );
+ preview->setBackgroundColor( black );
+ preview->show(); // otherwise saver does not get correct size
+ saver = new KBlankSaver( preview->winId() );
+ grid->addMultiCellWidget(preview, 0, 2, 1, 1);
+
+ grid->setRowStretch( 2, 10 );
+ grid->setRowStretch( 3, 20 );
+
+ setMinimumSize( sizeHint() );
+}
+
+// read settings from config file
+void KBlankSetup::readSettings()
+{
+ KConfig *config = KGlobal::config();
+ config->setGroup( "Settings" );
+
+ color = config->readColorEntry( "Color", &black );
+}
+
+void KBlankSetup::slotColor( const QColor &col )
+{
+ color = col;
+ saver->setColor( color );
+}
+
+// Ok pressed - save settings and exit
+void KBlankSetup::slotOk()
+{
+ KConfig *config = KGlobal::config();
+ config->setGroup( "Settings" );
+ config->writeEntry( "Color", color );
+ config->sync();
+
+ accept();
+}
+
+//-----------------------------------------------------------------------------
+
+
+KBlankSaver::KBlankSaver( WId id ) : KScreenSaver( id )
+{
+ readSettings();
+ blank();
+}
+
+KBlankSaver::~KBlankSaver()
+{
+}
+
+// set the color
+void KBlankSaver::setColor( const QColor &col )
+{
+ color = col;
+ blank();
+}
+
+// read configuration settings from config file
+void KBlankSaver::readSettings()
+{
+ KConfig *config = KGlobal::config();
+ config->setGroup( "Settings" );
+
+ color = config->readColorEntry( "Color", &black );
+}
+
+void KBlankSaver::blank()
+{
+ setBackgroundColor( color );
+ erase();
+}
+
diff --git a/kscreensaver/blankscrn.h b/kscreensaver/blankscrn.h
new file mode 100644
index 00000000..667920cb
--- /dev/null
+++ b/kscreensaver/blankscrn.h
@@ -0,0 +1,56 @@
+//-----------------------------------------------------------------------------
+//
+// kblankscrn - Basic screen saver for KDE
+//
+// Copyright (c) Martin R. Jones 1996
+//
+
+#ifndef __BLANKSCRN_H__
+#define __BLANKSCRN_H__
+
+#include <qcolor.h>
+#include <kdialogbase.h>
+#include <kscreensaver.h>
+
+class KColorButton;
+
+
+class KBlankSaver : public KScreenSaver
+{
+ Q_OBJECT
+public:
+ KBlankSaver( WId drawable );
+ virtual ~KBlankSaver();
+
+ void setColor( const QColor &col );
+
+private:
+ void readSettings();
+ void blank();
+
+private:
+ QColor color;
+};
+
+class KBlankSetup : public KDialogBase
+{
+ Q_OBJECT
+public:
+ KBlankSetup( QWidget *parent = NULL, const char *name = NULL );
+
+protected:
+ void readSettings();
+
+private slots:
+ void slotColor( const QColor & );
+ void slotOk();
+
+private:
+ QWidget *preview;
+ KBlankSaver *saver;
+
+ QColor color;
+};
+
+#endif
+
diff --git a/kscreensaver/random.cpp b/kscreensaver/random.cpp
new file mode 100644
index 00000000..df971d23
--- /dev/null
+++ b/kscreensaver/random.cpp
@@ -0,0 +1,246 @@
+//-----------------------------------------------------------------------------
+//
+// Screen savers for KDE
+//
+// Copyright (c) Martin R. Jones 1999
+//
+// This is an extremely simple program that starts a random screensaver.
+//
+
+#include <config.h>
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <time.h>
+#include <unistd.h>
+
+#include <qtextstream.h>
+#include <qlayout.h>
+#include <qframe.h>
+#include <qcheckbox.h>
+#include <qwidget.h>
+
+#include <kapplication.h>
+#include <kstandarddirs.h>
+#include <kglobal.h>
+#include <klocale.h>
+#include <kdesktopfile.h>
+#include <krandomsequence.h>
+#include <kdebug.h>
+#include <kcmdlineargs.h>
+#include <kdialogbase.h>
+#include <kconfig.h>
+
+#include "kscreensaver_vroot.h"
+#include "random.h"
+
+#define MAX_ARGS 20
+
+void usage(char *name)
+{
+ puts(i18n("Usage: %1 [-setup] [args]\n"
+ "Starts a random screen saver.\n"
+ "Any arguments (except -setup) are passed on to the screen saver.").arg( name ).local8Bit().data());
+}
+
+static const char appName[] = "random";
+
+static const char description[] = I18N_NOOP("Start a random KDE screen saver");
+
+static const char version[] = "2.0.0";
+
+static const KCmdLineOptions options[] =
+{
+ { "setup", I18N_NOOP("Setup screen saver"), 0 },
+ { "window-id wid", I18N_NOOP("Run in the specified XWindow"), 0 },
+ { "root", I18N_NOOP("Run in the root XWindow"), 0 },
+ // { "+-- [options]", I18N_NOOP("Options to pass to the screen saver"), 0 }
+ KCmdLineLastOption
+};
+
+//----------------------------------------------------------------------------
+
+int main(int argc, char *argv[])
+{
+ KLocale::setMainCatalogue("kscreensaver");
+ KCmdLineArgs::init(argc, argv, appName, I18N_NOOP("Random screen saver"), description, version);
+
+ KCmdLineArgs::addCmdLineOptions(options);
+
+ KApplication app;
+
+ Window windowId = 0;
+
+ KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
+
+ if (args->isSet("setup"))
+ {
+ KRandomSetup setup;
+ setup.exec();
+ exit(0);
+ }
+
+ if (args->isSet("window-id"))
+ {
+ windowId = atol(args->getOption("window-id"));
+ }
+
+ if (args->isSet("root"))
+ {
+ windowId = RootWindow(qt_xdisplay(), qt_xscreen());
+ }
+
+ KGlobal::dirs()->addResourceType("scrsav",
+ KGlobal::dirs()->kde_default("apps") +
+ "apps/ScreenSavers/");
+ KGlobal::dirs()->addResourceType("scrsav",
+ KGlobal::dirs()->kde_default("apps") +
+ "System/ScreenSavers/");
+ QStringList tempSaverFileList = KGlobal::dirs()->findAllResources("scrsav",
+ "*.desktop", false, true);
+
+ QStringList saverFileList;
+
+ KConfig type("krandom.kssrc");
+ type.setGroup("Settings");
+ bool opengl = type.readBoolEntry("OpenGL");
+ bool manipulatescreen = type.readBoolEntry("ManipulateScreen");
+ bool fortune = !KStandardDirs::findExe("fortune").isEmpty();
+
+ for (uint i = 0; i < tempSaverFileList.count(); i++)
+ {
+ kdDebug() << "Looking at " << tempSaverFileList[i] << endl;
+ KDesktopFile saver(tempSaverFileList[i], true);
+ if(!saver.tryExec())
+ continue;
+ kdDebug() << "read X-KDE-Type" << endl;
+ QString saverType = saver.readEntry("X-KDE-Type");
+
+ if (saverType.isEmpty()) // no X-KDE-Type defined so must be OK
+ {
+ saverFileList.append(tempSaverFileList[i]);
+ }
+ else
+ {
+ QStringList saverTypes = QStringList::split(";", saverType);
+ for (QStringList::ConstIterator it = saverTypes.begin(); it != saverTypes.end(); ++it )
+ {
+ kdDebug() << "saverTypes is "<< *it << endl;
+ if (*it == "ManipulateScreen")
+ {
+ if (manipulatescreen)
+ {
+ saverFileList.append(tempSaverFileList[i]);
+ }
+ }
+ else
+ if (*it == "OpenGL")
+ {
+ if (opengl)
+ {
+ saverFileList.append(tempSaverFileList[i]);
+ }
+ }
+ if (*it == "Fortune")
+ {
+ if (fortune)
+ {
+ saverFileList.append(tempSaverFileList[i]);
+ }
+ }
+
+ }
+ }
+ }
+
+ KRandomSequence rnd;
+ int indx = rnd.getLong(saverFileList.count());
+ QString filename = *(saverFileList.at(indx));
+
+ KDesktopFile config(filename, true);
+
+ QString cmd;
+ if (windowId && config.hasActionGroup("InWindow"))
+ {
+ config.setActionGroup("InWindow");
+ }
+ else if ((windowId == 0) && config.hasActionGroup("Root"))
+ {
+ config.setActionGroup("Root");
+ }
+ cmd = config.readPathEntry("Exec");
+
+ QTextStream ts(&cmd, IO_ReadOnly);
+ QString word;
+ ts >> word;
+ QString exeFile = KStandardDirs::findExe(word);
+
+ if (!exeFile.isEmpty())
+ {
+ char *sargs[MAX_ARGS];
+ sargs[0] = new char [strlen(word.ascii())+1];
+ strcpy(sargs[0], word.ascii());
+
+ int i = 1;
+ while (!ts.atEnd() && i < MAX_ARGS-1)
+ {
+ ts >> word;
+ if (word == "%w")
+ {
+ word = word.setNum(windowId);
+ }
+
+ sargs[i] = new char [strlen(word.ascii())+1];
+ strcpy(sargs[i], word.ascii());
+ kdDebug() << "word is " << word.ascii() << endl;
+
+ i++;
+ }
+
+ sargs[i] = 0;
+
+ execv(exeFile.ascii(), sargs);
+ }
+
+ // If we end up here then we couldn't start a saver.
+ // If we have been supplied a window id or root window then blank it.
+ Window win = windowId ? windowId : RootWindow(qt_xdisplay(), qt_xscreen());
+ XSetWindowBackground(qt_xdisplay(), win,
+ BlackPixel(qt_xdisplay(), qt_xscreen()));
+ XClearWindow(qt_xdisplay(), win);
+}
+
+
+KRandomSetup::KRandomSetup( QWidget *parent, const char *name )
+ : KDialogBase( parent, name, true, i18n( "Setup Random Screen Saver" ),
+ Ok|Cancel, Ok, true )
+{
+
+ QFrame *main = makeMainWidget();
+ QGridLayout *grid = new QGridLayout(main, 4, 2, 0, spacingHint() );
+
+ openGL = new QCheckBox( i18n("Use OpenGL screen savers"), main );
+ grid->addWidget(openGL, 0, 0);
+
+ manipulateScreen = new QCheckBox(i18n("Use screen savers that manipulate the screen"), main);
+ grid->addWidget(manipulateScreen, 1, 0);
+
+ setMinimumSize( sizeHint() );
+
+ KConfig config("krandom.kssrc");
+ config.setGroup("Settings");
+ openGL->setChecked(config.readBoolEntry("OpenGL", true));
+ manipulateScreen->setChecked(config.readBoolEntry("ManipulateScreen", true));
+}
+
+void KRandomSetup::slotOk()
+{
+ KConfig config("krandom.kssrc");
+ config.setGroup("Settings");
+ config.writeEntry("OpenGL", openGL->isChecked());
+ config.writeEntry("ManipulateScreen", manipulateScreen->isChecked());
+
+ accept();
+}
+
+#include "random.moc"
diff --git a/kscreensaver/random.h b/kscreensaver/random.h
new file mode 100644
index 00000000..9f47a100
--- /dev/null
+++ b/kscreensaver/random.h
@@ -0,0 +1,38 @@
+/*
+ Copyright (c) 2003 Chris Howells <howells@kde.org>
+
+ *************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or *
+ * modify it under the terms of the GNU Lesser General Public *
+ * License as published by the Free Software Foundation; version *
+ * 2 of the License. *
+ * *
+ *************************************************************************
+*/
+
+#ifndef RANDOM_H
+#define RANDOM_H
+
+class QWidget;
+class QCheckBox;
+
+class KRandomSetup : public KDialogBase
+{
+ Q_OBJECT
+ public:
+ KRandomSetup( QWidget *parent = NULL, const char *name = NULL );
+
+ private:
+
+ QWidget *preview;
+ QCheckBox *openGL;
+ QCheckBox *manipulateScreen;
+
+ private slots:
+
+ void slotOk();
+
+};
+
+#endif