diff options
Diffstat (limited to 'kicker/applets/taskbar')
-rw-r--r-- | kicker/applets/taskbar/Makefile.am | 22 | ||||
-rw-r--r-- | kicker/applets/taskbar/taskbarapplet.cpp | 126 | ||||
-rw-r--r-- | kicker/applets/taskbar/taskbarapplet.desktop | 138 | ||||
-rw-r--r-- | kicker/applets/taskbar/taskbarapplet.h | 56 |
4 files changed, 342 insertions, 0 deletions
diff --git a/kicker/applets/taskbar/Makefile.am b/kicker/applets/taskbar/Makefile.am new file mode 100644 index 000000000..35cb337e6 --- /dev/null +++ b/kicker/applets/taskbar/Makefile.am @@ -0,0 +1,22 @@ +INCLUDES = -I$(srcdir)/../../taskbar -I$(srcdir)/../../taskmanager -I$(srcdir)/../../libkicker $(all_includes) + +kde_module_LTLIBRARIES = taskbar_panelapplet.la + +taskbar_panelapplet_la_SOURCES = taskbarapplet.cpp + +taskbar_panelapplet_la_METASOURCES = AUTO +taskbar_panelapplet_la_LDFLAGS = -module $(KDE_PLUGIN) $(all_libraries) +taskbar_panelapplet_la_LIBADD = $(LIB_KDEUI) ../../taskbar/libtaskbar.la ../../libkicker/libkickermain.la + +noinst_HEADERS = taskbarapplet.h + +lnkdir = $(kde_datadir)/kicker/applets +lnk_DATA = taskbarapplet.desktop + +EXTRA_DIST = $(lnk_DATA) + +messages: + $(XGETTEXT) *.cpp *.h -o $(podir)/ktaskbarapplet.pot + +srcdoc: + kdoc -a -p -H -d $$HOME/web/src/ktaskbarapplet ktaskbarapplet *.h -lqt -lkdecore -lkdeui -lkfile diff --git a/kicker/applets/taskbar/taskbarapplet.cpp b/kicker/applets/taskbar/taskbarapplet.cpp new file mode 100644 index 000000000..dc3428bf8 --- /dev/null +++ b/kicker/applets/taskbar/taskbarapplet.cpp @@ -0,0 +1,126 @@ +/***************************************************************** + +Copyright (c) 2001 Matthias Elter <[email protected]> + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +******************************************************************/ + +#include <qlayout.h> +#include <qpalette.h> + +#include <kapplication.h> +#include <kglobal.h> +#include <klocale.h> +#include <kdebug.h> + +#include "global.h" + +#include "taskbarcontainer.h" + +#include "taskbarapplet.h" +#include "taskbarapplet.moc" + +extern "C" +{ + KDE_EXPORT KPanelApplet* init( QWidget *parent, const QString& configFile ) + { + // FIXME: what about two taskbars? perhaps this should be inserted just once + KGlobal::locale()->insertCatalogue( "ktaskbarapplet" ); + int options = 0; + if (kapp->authorizeControlModule("kde-kcmtaskbar.desktop")) + options = KPanelApplet::Preferences; + TaskbarApplet *taskbar = new TaskbarApplet( configFile, KPanelApplet::Stretch, + options, parent, "ktaskbarapplet" ); + return taskbar; + } +} + +TaskbarApplet::TaskbarApplet( const QString& configFile, Type type, int actions, + QWidget *parent, const char *name ) + : KPanelApplet( configFile, type, actions, parent, name ) +{ + setBackgroundOrigin( AncestorOrigin ); + QHBoxLayout* layout = new QHBoxLayout( this ); + container = new TaskBarContainer( false, this ); + container->setBackgroundOrigin( AncestorOrigin ); + connect(container, SIGNAL(containerCountChanged()), this, SIGNAL(updateLayout())); + layout->addWidget( container, 1 ); + container->popupDirectionChange(popupDirection()); +} + +TaskbarApplet::~TaskbarApplet() +{ + // FIXME: what about TWO taskbars? + KGlobal::locale()->removeCatalogue( "ktaskbarapplet" ); +} + +int TaskbarApplet::widthForHeight(int h) const +{ + if (orientation() == Qt::Vertical) + { + return width(); + } + + // FIXME KDE4: when either TaskBarContainer or Applet smartens up + // simplify this + KPanelExtension::Position d = orientation() == Qt::Horizontal ? + KPanelExtension::Top : + KPanelExtension::Left; + return container->sizeHint(d, QSize(200, h)).width(); +} + +int TaskbarApplet::heightForWidth(int w) const +{ + if (orientation() == Qt::Horizontal) + { + return height(); + } + + // FIXME KDE4: when either TaskBarContainer or Applet smartens up + // simplify this + KPanelExtension::Position d = orientation() == Qt::Horizontal ? + KPanelExtension::Top : + KPanelExtension::Left; + return container->sizeHint(d, QSize(w, 200)).height(); +} + +void TaskbarApplet::preferences() +{ + container->preferences(); +} + +void TaskbarApplet::orientationChange( Orientation o ) +{ + container->orientationChange( o ); +} + +void TaskbarApplet::popupDirectionChange( Direction d ) +{ + container->popupDirectionChange( d ); +} + +void TaskbarApplet::moveEvent(QMoveEvent *) +{ + container->setBackground(); +} + +void TaskbarApplet::paletteChange(const QPalette &) +{ + container->setBackground(); +} diff --git a/kicker/applets/taskbar/taskbarapplet.desktop b/kicker/applets/taskbar/taskbarapplet.desktop new file mode 100644 index 000000000..d54e39832 --- /dev/null +++ b/kicker/applets/taskbar/taskbarapplet.desktop @@ -0,0 +1,138 @@ +[Desktop Entry] +Type=Plugin +Name=Taskbar +Name[af]=Kasbar +Name[ar]=شريط المهام +Name[az]=Vəzifə Çubuğu +Name[be]=Панэль заданняў +Name[bg]=Панел за задачи +Name[bn]=টাস্কবার +Name[br]=Barrenn dleadoù +Name[ca]=Barra de tasques +Name[cs]=Pruh úloh +Name[csb]=Lëstew dzejaniów +Name[cy]=Bar tasgau +Name[da]=Opgavelinje +Name[de]=Fensterleiste +Name[el]=Γραμμή εργασιών +Name[eo]=Taskostrio +Name[es]=Barra de tareas +Name[et]=Tegumiriba +Name[eu]=Ataza-barra +Name[fa]=میله تکلیف +Name[fi]=Tehtäväpalkki +Name[fr]=Barre des tâches +Name[fy]=Taakbalke +Name[ga]=Tascbharra +Name[gl]=Barra de tarefas +Name[he]=שורת המשימות +Name[hi]=कार्यपट्टी +Name[hr]=Traka zadataka +Name[hu]=Feladatlista +Name[is]=Verkefnaslá +Name[it]=Barra delle applicazioni +Name[ja]=タスクバー +Name[ka]=ამოცანათა პანელი +Name[kk]=Тапсырмалар панелі +Name[km]=របារភារកិច្ច +Name[ko]=작업 표시줄 +Name[lo]=ແຖບຫນ້າຕ່າງງານ +Name[lt]=Užduočių juosta +Name[lv]=Uzdevumjosla +Name[mk]=Лента со програми +Name[mn]=Цонхны самбар +Name[nb]=Oppgavelinje +Name[nds]=Programmbalken +Name[ne]=कार्यपट्टी +Name[nl]=Taakbalk +Name[nn]=Oppgåvelinje +Name[nso]=Bar ya Mosongwana +Name[oc]=Barra de tasques +Name[pa]=ਸੰਦਪੱਟੀ +Name[pl]=Pasek zadań +Name[pt]=Barra de Tarefas +Name[pt_BR]=Barra de tarefas +Name[ro]=Bara de procese +Name[ru]=Панель задач +Name[rw]=Umurongoibikorwa +Name[se]=Bargoholga +Name[sk]=Panel úloh +Name[sl]=Opravilna vrstica +Name[sr]=Трака задатака +Name[sr@Latn]=Traka zadataka +Name[ss]=Ibar yemsebenti +Name[sv]=Aktivitetsfält +Name[ta]=பணிப்பட்டி +Name[tg]=Пайраҳаи вазифа +Name[th]=แถบหน้าต่างงาน +Name[tr]=Görev Çubuğu +Name[tt]=Qoraltirä +Name[uk]=Смужка задач +Name[uz]=Vazifalar paneli +Name[uz@cyrillic]=Вазифалар панели +Name[ven]=Bara ya mushumo +Name[vi]=Thanh tác vụ +Name[wa]=Bår des bouyes +Name[xh]=Ibar yomsebenzi +Name[zh_CN]=任务条 +Name[zh_TW]=工作列 +Name[zu]=Ibha yemisebenzi + +Comment=The default task bar for window management +Comment[af]=Die standaard taak balk vir venster bestuur +Comment[be]=Стандартная панэль заданняў для кіравання вокнамі +Comment[bg]=Системен панел за лентата със задачите +Comment[bn]=উইণ্ডো ব্যবস্থাপনার জন্য ডিফল্ট টাস্ক বার +Comment[bs]=Osnovni taskbar za upravljanje prozorima +Comment[ca]=La barra de tasques per omissió per a la gestió de finestres +Comment[cs]=Výchozí pruh úloh pro správu oken +Comment[csb]=Domëslnô lëstew dzejaniów do sprôwianiô òknama +Comment[da]=Standard-opgavelinje for vindueshåndtering +Comment[de]=Standardmäßiger Bereich für offene Fenster in der Kontrollleiste +Comment[el]=Η προκαθορισμένη γραμμή εργασιών για τη διαχείριση των παραθύρων +Comment[eo]=La defaŭlta taskostrio por fenestroadministrado. +Comment[es]=La barra de tareas predeterminada para gestionar las ventanas +Comment[et]=Vaikimisi kasutatav tegumiriba akende halduseks +Comment[eu]=Ataza-barra lehenetsia leihoen kudeaketarako +Comment[fa]=میله تکلیف پیشفرض برای مدیریت پنجره +Comment[fi]=Oletustyökalupalkki ikkunoiden hallintaan +Comment[fr]=La barre des tâches gérant les fenêtres +Comment[fy]=De standert taakbalke foar finsterbehear +Comment[gl]=A barra de tarefas por defeito para xestión de fiestras. +Comment[he]=ברירת מחדל של יישומון שורת משימות ללוח +Comment[hr]=Zadana traka zadataka za upravljanje prozorima +Comment[hu]=Az alapértelmezett feladatlista ablakkezeléshez +Comment[is]=Sjálfgefna verkefnasláin fyrir gluggastjórnun +Comment[it]=La barra delle applicazioni per la gestione delle finestre +Comment[ja]=ウィンドウマネージャ用のデフォルトのタスクバー +Comment[ka]=ფანჯრის მართვის ძირითადი პულტი +Comment[kk]=Терезелерді басқару әдетті тапсырмалар панелі +Comment[km]=របារភារកិច្ចលំនាំដើម សម្រាប់គ្រប់គ្រងបង្អួច +Comment[lt]=Numatyta užduočių juostos langų tvarkymo priemonė +Comment[mk]=Стандардната линија со задачи за менаџмент на прозорци +Comment[nb]=Den vanlige oppgavelinja for å behandle vinduer +Comment[nds]=Standard-Programmbalken för de Finsterpleeg +Comment[ne]=सञ्झ्याल व्यवस्थापनका लागि पूर्वनिर्धारित उपकरणपट्टी +Comment[nl]=De standaard taakbalk voor vensterbeheer +Comment[nn]=Den vanlege oppgåvelinja for å handsama vindauge +Comment[pa]=ਮੂਲ ਵੇਹੜੇ ਲਈ ਮੂਲ ਕੰਮ ਪੱਟੀ +Comment[pl]=Domyślny pasek zadań do zarządzania oknami +Comment[pt]=A barra de tarefas por omissão para a gestão de janelas +Comment[pt_BR]=A barra de tarefas padrão para o gerenciamento de janelas. +Comment[ro]=Bara de procese implicită pentru managementul ferestrelor +Comment[ru]=Панель списка задач по умолчанию для управления окнами +Comment[se]=Standárda bargoholga lásegieđaheami várás +Comment[sk]=Prednastavený panel úloh pre správcu okien +Comment[sl]=Privzeta opravilna vrstica za upravljanje z okni +Comment[sr]=Подразумевана трака задатака за управљање прозорима +Comment[sr@Latn]=Podrazumevana traka zadataka za upravljanje prozorima +Comment[sv]=Det förvalda aktivitetsfältet för fönsterhantering +Comment[th]=แอพเพล็ตถาดงานโดยปริยายของพาเนลสำหรับการจัดการหน้าต่าง +Comment[tr]=Pencere yönetimi için öntanımlı görev çubuğu +Comment[uk]=Типова панель задач для керування вікнами +Comment[vi]=Thanh tác vụ mặc định cho trình quản lý cửa sổ +Comment[wa]=Li prémetowe bår di bouyes do manaedjmint d' purnea +Comment[zh_CN]=窗口管理的默认任务栏 +Comment[zh_TW]=預設的視窗管理工作列 +Icon=taskbar +X-KDE-Library=taskbar_panelapplet diff --git a/kicker/applets/taskbar/taskbarapplet.h b/kicker/applets/taskbar/taskbarapplet.h new file mode 100644 index 000000000..f0842baca --- /dev/null +++ b/kicker/applets/taskbar/taskbarapplet.h @@ -0,0 +1,56 @@ +/***************************************************************** + +Copyright (c) 2001 Matthias Elter <[email protected]> + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +******************************************************************/ + +#ifndef __taskbarapplet_h__ +#define __taskbarapplet_h__ + +#include <kpanelapplet.h> + +class TaskBarContainer; +class QPalette; + +class TaskbarApplet : public KPanelApplet +{ + Q_OBJECT + +public: + TaskbarApplet( const QString& configFile, Type t = Normal, int actions = 0, + QWidget *parent = 0, const char *name = 0 ); + ~TaskbarApplet(); + + int widthForHeight( int h ) const; + int heightForWidth( int w ) const; + + void preferences(); + +protected: + void moveEvent(QMoveEvent *); + void popupDirectionChange( Direction ); + void orientationChange( Orientation ); + void paletteChange(const QPalette &); + +private: + TaskBarContainer* container; +}; + +#endif |