diff options
Diffstat (limited to 'tdescreensaver')
-rw-r--r-- | tdescreensaver/AUTHORS | 23 | ||||
-rw-r--r-- | tdescreensaver/CMakeLists.txt | 44 | ||||
-rw-r--r-- | tdescreensaver/ChangeLog | 93 | ||||
-rw-r--r-- | tdescreensaver/KBlankscreen.desktop | 323 | ||||
-rw-r--r-- | tdescreensaver/KRandom.desktop | 321 | ||||
-rw-r--r-- | tdescreensaver/Makefile.am | 27 | ||||
-rw-r--r-- | tdescreensaver/blankscrn.cpp | 135 | ||||
-rw-r--r-- | tdescreensaver/blankscrn.h | 56 | ||||
-rw-r--r-- | tdescreensaver/random.cpp | 292 | ||||
-rw-r--r-- | tdescreensaver/random.h | 38 |
10 files changed, 1352 insertions, 0 deletions
diff --git a/tdescreensaver/AUTHORS b/tdescreensaver/AUTHORS new file mode 100644 index 000000000..fda66bb39 --- /dev/null +++ b/tdescreensaver/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/tdescreensaver/CMakeLists.txt b/tdescreensaver/CMakeLists.txt new file mode 100644 index 000000000..289ec1661 --- /dev/null +++ b/tdescreensaver/CMakeLists.txt @@ -0,0 +1,44 @@ +################################################# +# +# (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 KRandom.desktop KBlankscreen.desktop DESTINATION ${APPS_INSTALL_DIR}/System/ScreenSavers ) + + +##### krandom (executable) ###################### + +tde_add_executable( krandom.kss AUTOMOC + SOURCES random.cpp + LINK tdeui-shared ${GL_LIBRARY} + DESTINATION ${BIN_INSTALL_DIR} +) + + +##### kblankscrn (executable) ################### + +tde_add_executable( kblankscrn.kss AUTOMOC + SOURCES blankscrn.cpp + LINK tdescreensaver-shared tdeui-shared + DESTINATION ${BIN_INSTALL_DIR} +) diff --git a/tdescreensaver/ChangeLog b/tdescreensaver/ChangeLog new file mode 100644 index 000000000..7bfaa2596 --- /dev/null +++ b/tdescreensaver/ChangeLog @@ -0,0 +1,93 @@ +2001-03-10 Martin R. Jones <mjones@kde.org> + * added libtdescreensaver 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 libtdeui 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 + +tdescreensaver.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/tdescreensaver/KBlankscreen.desktop b/tdescreensaver/KBlankscreen.desktop new file mode 100644 index 000000000..a69ca3779 --- /dev/null +++ b/tdescreensaver/KBlankscreen.desktop @@ -0,0 +1,323 @@ +[Desktop Entry] +Exec=kblankscrn.kss +Icon=tdescreensaver +Type=Application +Actions=Setup;InWindow;Root; +OnlyShowIn=TDE; +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=tdescreensaver + +[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/tdescreensaver/KRandom.desktop b/tdescreensaver/KRandom.desktop new file mode 100644 index 000000000..9ab77efd2 --- /dev/null +++ b/tdescreensaver/KRandom.desktop @@ -0,0 +1,321 @@ +[Desktop Entry] +Exec=krandom.kss +Icon=tdescreensaver +Type=Application +Actions=Setup;InWindow;Root; +OnlyShowIn=TDE; +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=tdescreensaver + +[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/tdescreensaver/Makefile.am b/tdescreensaver/Makefile.am new file mode 100644 index 000000000..f46573d5f --- /dev/null +++ b/tdescreensaver/Makefile.am @@ -0,0 +1,27 @@ +# Makefile.am for tdescreensaver. +# + +AM_CPPFLAGS = -UQT_NO_ASCII_CAST + +INCLUDES = $(GLINC) $(all_includes) +AM_LDFLAGS = $(all_libraries) $(KDE_RPATH) $(LIB_QT) -lDCOP $(LIB_TDECORE) $(LIB_TDEUI) -ltdefx $(LIB_KIO) -ltdetexteditor + +bin_PROGRAMS = krandom.kss kblankscrn.kss + +krandom_kss_SOURCES = random.cpp +krandom_kss_LDADD = $(LIB_TDEUI) $(GLLIB) -lm + +kblankscrn_kss_SOURCES = blankscrn.cpp +kblankscrn_kss_LDADD = $(LIB_TDEUI) -ltdescreensaver -lm + +METASOURCES = AUTO + +messages: + $(XGETTEXT) *.cpp *.h -o $(podir)/tdescreensaver.pot + +########## Meta objects ########## + +desktop_DATA = KRandom.desktop KBlankscreen.desktop +desktopdir = $(kde_appsdir)/System/ScreenSavers + +EXTRA_DIST = $(desktop_DATA) diff --git a/tdescreensaver/blankscrn.cpp b/tdescreensaver/blankscrn.cpp new file mode 100644 index 000000000..e2c6ed889 --- /dev/null +++ b/tdescreensaver/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 libtdescreensaver by Martin R. Jones + +#include <stdlib.h> +#include <tqlabel.h> +#include <tqlayout.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" + +// libtdescreensaver 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 TQDialog* kss_setup() + { + return new KBlankSetup(); + } +} + +//----------------------------------------------------------------------------- +// dialog to setup screen saver parameters +// +KBlankSetup::KBlankSetup( TQWidget *parent, const char *name ) + : KDialogBase( parent, name, true, i18n( "Setup Blank Screen Saver" ), + Ok|Cancel, Ok, true ) +{ + readSettings(); + + TQFrame *main = makeMainWidget(); + TQGridLayout *grid = new TQGridLayout(main, 4, 2, 0, spacingHint() ); + + TQLabel *label = new TQLabel( i18n("Color:"), main ); + grid->addWidget(label, 0, 0); + + KColorButton *colorPush = new KColorButton( color, main ); + colorPush->setMinimumWidth(80); + connect( colorPush, TQT_SIGNAL( changed(const TQColor &) ), + TQT_SLOT( slotColor(const TQColor &) ) ); + grid->addWidget(colorPush, 1, 0); + + preview = new TQWidget( 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() +{ + TDEConfig *config = TDEGlobal::config(); + config->setGroup( "Settings" ); + + color = config->readColorEntry( "Color", &black ); +} + +void KBlankSetup::slotColor( const TQColor &col ) +{ + color = col; + saver->setColor( color ); +} + +// Ok pressed - save settings and exit +void KBlankSetup::slotOk() +{ + TDEConfig *config = TDEGlobal::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 TQColor &col ) +{ + color = col; + blank(); +} + +// read configuration settings from config file +void KBlankSaver::readSettings() +{ + TDEConfig *config = TDEGlobal::config(); + config->setGroup( "Settings" ); + + color = config->readColorEntry( "Color", &black ); +} + +void KBlankSaver::blank() +{ + setBackgroundColor( color ); + erase(); +} + diff --git a/tdescreensaver/blankscrn.h b/tdescreensaver/blankscrn.h new file mode 100644 index 000000000..ba6da0226 --- /dev/null +++ b/tdescreensaver/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 <tqcolor.h> +#include <kdialogbase.h> +#include <tdescreensaver.h> + +class KColorButton; + + +class KBlankSaver : public KScreenSaver +{ + Q_OBJECT +public: + KBlankSaver( WId drawable ); + virtual ~KBlankSaver(); + + void setColor( const TQColor &col ); + +private: + void readSettings(); + void blank(); + +private: + TQColor color; +}; + +class KBlankSetup : public KDialogBase +{ + Q_OBJECT +public: + KBlankSetup( TQWidget *parent = NULL, const char *name = NULL ); + +protected: + void readSettings(); + +private slots: + void slotColor( const TQColor & ); + void slotOk(); + +private: + TQWidget *preview; + KBlankSaver *saver; + + TQColor color; +}; + +#endif + diff --git a/tdescreensaver/random.cpp b/tdescreensaver/random.cpp new file mode 100644 index 000000000..cc8b7d279 --- /dev/null +++ b/tdescreensaver/random.cpp @@ -0,0 +1,292 @@ + //----------------------------------------------------------------------------- +// +// 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 <tqtextstream.h> +#include <tqlayout.h> +#include <tqframe.h> +#include <tqcheckbox.h> +#include <tqwidget.h> +#include <tqfileinfo.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 "tdescreensaver_vroot.h" +#include "random.h" + +#define MAX_ARGS 20 + +static 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 TDE 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 +}; + +//---------------------------------------------------------------------------- + +#ifdef HAVE_GLXCHOOSEVISUAL +#include <GL/glx.h> +#endif + +//------------------------------------- +bool hasDirectRendering () { + Display *dpy = TQApplication::desktop()->x11Display(); + +#ifdef HAVE_GLXCHOOSEVISUAL + int attribSingle[] = { + GLX_RGBA, + GLX_RED_SIZE, 1, + GLX_GREEN_SIZE, 1, + GLX_BLUE_SIZE, 1, + None + }; + XVisualInfo* visinfo = glXChooseVisual ( + dpy, TQApplication::desktop()->primaryScreen(), attribSingle + ); + if (visinfo) { + GLXContext ctx = glXCreateContext ( dpy, visinfo, NULL, True ); + if (glXIsDirect(dpy, ctx)) { + glXDestroyContext (dpy,ctx); + return true; + } + glXDestroyContext (dpy,ctx); + return false; + } else { + return false; + } +#else +#error no GL? + return false; +#endif + +} + +int main(int argc, char *argv[]) +{ + KLocale::setMainCatalogue("tdescreensaver"); + TDECmdLineArgs::init(argc, argv, appName, I18N_NOOP("Random screen saver"), description, version); + + TDECmdLineArgs::addCmdLineOptions(options); + + TDEApplication app; + + Window windowId = 0; + + TDECmdLineArgs *args = TDECmdLineArgs::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(tqt_xdisplay(), tqt_xscreen()); + } + + TDEGlobal::dirs()->addResourceType("scrsav", + TDEGlobal::dirs()->kde_default("apps") + + "apps/ScreenSavers/"); + TDEGlobal::dirs()->addResourceType("scrsav", + TDEGlobal::dirs()->kde_default("apps") + + "System/ScreenSavers/"); + TQStringList tempSaverFileList = TDEGlobal::dirs()->findAllResources("scrsav", + "*.desktop", false, true); + + TQStringList saverFileList; + + TDEConfig type("krandom.kssrc"); + type.setGroup("Settings"); + bool opengl = type.readBoolEntry("OpenGL", hasDirectRendering()); + kdDebug() << "hasOPEN " << opengl << endl; + bool manipulatescreen = type.readBoolEntry("ManipulateScreen"); + bool fortune = !KStandardDirs::findExe("fortune").isEmpty(); + TQStringList defaults = type.readListEntry( "Defaults" ); + TQMap<TQString, int> def_numbers; + for ( TQStringList::ConstIterator it = defaults.begin(); it != defaults.end(); ++it ) { + int index = ( *it ).find( ':' ); + if ( index == -1 ) + def_numbers[*it] = 1; + else + def_numbers[( *it ).left( index )] = ( *it ).mid( index + 1 ).toInt(); + } + + for (uint i = 0; i < tempSaverFileList.count(); i++) + { + int howoften = 1; + if ( defaults.count() != 0 ) { + TQFileInfo fi( tempSaverFileList[i] ); + if ( def_numbers.contains( fi.fileName() ) ) + howoften = def_numbers[fi.fileName()]; + else + howoften = 0; + } + + KDesktopFile saver(tempSaverFileList[i], true); + if (!saver.tryExec()) + continue; + TQString saverType = saver.readEntry("X-TDE-Type"); + if (!saverType.isEmpty()) // no X-TDE-Type defined so must be OK + { + TQStringList saverTypes = TQStringList::split(";", saverType); + for (TQStringList::ConstIterator it = saverTypes.begin(); it != saverTypes.end(); ++it ) + { + if (*it == "ManipulateScreen") + { + if (!manipulatescreen) + howoften = 0; + } + else + if (*it == "OpenGL") + { + if (!opengl) + howoften = 0; + } + if (*it == "Fortune") + { + if (!fortune) + howoften = 0; + } + + } + } + for ( int j = 0; j < howoften; ++j ) + saverFileList.append(tempSaverFileList[i]); + } + kdDebug() << "final " << saverFileList << endl; + + KRandomSequence rnd; + int indx = rnd.getLong(saverFileList.count()); + TQString filename = *(saverFileList.at(indx)); + + KDesktopFile config(filename, true); + + TQString cmd; + if (windowId && config.hasActionGroup("InWindow")) + { + config.setActionGroup("InWindow"); + } + else if ((windowId == 0) && config.hasActionGroup("Root")) + { + config.setActionGroup("Root"); + } + cmd = config.readPathEntry("Exec"); + + TQTextStream ts(&cmd, IO_ReadOnly); + TQString word; + ts >> word; + TQString 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(tqt_xdisplay(), tqt_xscreen()); + XSetWindowBackground(tqt_xdisplay(), win, + BlackPixel(tqt_xdisplay(), tqt_xscreen())); + XClearWindow(tqt_xdisplay(), win); +} + + +KRandomSetup::KRandomSetup( TQWidget *parent, const char *name ) + : KDialogBase( parent, name, true, i18n( "Setup Random Screen Saver" ), + Ok|Cancel, Ok, true ) +{ + + TQFrame *main = makeMainWidget(); + TQGridLayout *grid = new TQGridLayout(main, 4, 2, 0, spacingHint() ); + + openGL = new TQCheckBox( i18n("Use OpenGL screen savers"), main ); + grid->addWidget(openGL, 0, 0); + + manipulateScreen = new TQCheckBox(i18n("Use screen savers that manipulate the screen"), main); + grid->addWidget(manipulateScreen, 1, 0); + + setMinimumSize( sizeHint() ); + + TDEConfig config("krandom.kssrc"); + config.setGroup("Settings"); + openGL->setChecked(config.readBoolEntry("OpenGL", hasDirectRendering())); + manipulateScreen->setChecked(config.readBoolEntry("ManipulateScreen", true)); +} + +void KRandomSetup::slotOk() +{ + TDEConfig config("krandom.kssrc"); + config.setGroup("Settings"); + config.writeEntry("OpenGL", openGL->isChecked()); + config.writeEntry("ManipulateScreen", manipulateScreen->isChecked()); + + accept(); +} + +#include "random.moc" diff --git a/tdescreensaver/random.h b/tdescreensaver/random.h new file mode 100644 index 000000000..e34556662 --- /dev/null +++ b/tdescreensaver/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 TQWidget; +class TQCheckBox; + +class KRandomSetup : public KDialogBase +{ + Q_OBJECT + public: + KRandomSetup( TQWidget *parent = NULL, const char *name = NULL ); + + private: + + TQWidget *preview; + TQCheckBox *openGL; + TQCheckBox *manipulateScreen; + + private slots: + + void slotOk(); + +}; + +#endif |