Enhancement: Fixes #183, Replace xfce4-panel with our own taskbar implementation

This commit is contained in:
Rory Fewell
2023-06-08 23:11:17 +01:00
parent 484ec476fa
commit 2811c5b071
101 changed files with 1620 additions and 1109 deletions

View File

@@ -0,0 +1,159 @@
cmake_minimum_required(VERSION 3.0)
project(
wintc-taskband
VERSION 1.0
DESCRIPTION "Windows Total Conversion taskband application"
)
set(PROJECT_ANYARCH false)
set(PROJECT_FREESTATUS true)
set(PROJECT_MAINTAINER "Rory Fewell <roryf@oddmatics.uk>")
set(
PROJECT_DEPENDENCIES
libgarcon-1-0
libgarcon-gtk3-1-0
libgdk-pixbuf-2.0-0
libglib2.0-0
libgtk-3-0
libwintc-comgtk
libwintc-exec
libwintc-shllang
xdg-utils
)
set(PROJECT_ROOT ${CMAKE_CURRENT_LIST_DIR})
set(WINTC_NO_PEDANTIC_COMPILE true) # Necessary because we use dlsym()
include(GNUInstallDirs)
include(../../packaging/cmake-inc/common/CMakeLists.txt)
include(../../packaging/cmake-inc/locale/CMakeLists.txt)
include(../../packaging/cmake-inc/packaging/CMakeLists.txt)
include(../../packaging/cmake-inc/resources/CMakeLists.txt)
find_package(PkgConfig REQUIRED)
pkg_check_modules(GARCON REQUIRED garcon-1)
pkg_check_modules(GARCON_GTK3 REQUIRED garcon-gtk3-1)
pkg_check_modules(GDK REQUIRED gdk-3.0)
pkg_check_modules(GDK_PIXBUF REQUIRED gdk-pixbuf-2.0)
pkg_check_modules(GLIB REQUIRED glib-2.0)
pkg_check_modules(GTK3 REQUIRED gtk+-3.0)
pkg_check_modules(WINTC_COMGTK REQUIRED wintc-comgtk)
pkg_check_modules(WINTC_EXEC REQUIRED wintc-exec)
pkg_check_modules(WINTC_SHLLANG REQUIRED wintc-shllang)
wintc_compile_resources()
wintc_create_meta_h()
add_executable(
wintc-taskband
src/application.c
src/application.h
src/dispproto.c
src/dispproto.h
src/dispproto-wayland.c
src/dispproto-wayland.h
src/dispproto-x11.c
src/dispproto-x11.h
src/dispproto-wndmgmt-wnck.c
src/dispproto-wndmgmt-wnck.h
src/dispproto-wndmgmt-xfw.c
src/dispproto-wndmgmt-xfw.h
src/main.c
src/meta.h
src/resources.c
src/window.c
src/window.h
src/start/action.c
src/start/action.h
src/start/placeslist.c
src/start/placeslist.h
src/start/programslist.c
src/start/programslist.h
src/start/startbutton.c
src/start/startbutton.h
src/start/startmenu.c
src/start/startmenu.h
src/start/startmenuitem.c
src/start/startmenuitem.h
src/start/util.c
src/start/util.h
src/systray/clock.c
src/systray/clock.h
src/systray/notifarea.c
src/systray/notifarea.h
src/taskbuttons/taskbuttonbar.c
src/taskbuttons/taskbuttonbar.h
src/taskbuttons/windowmonitor.c
src/taskbuttons/windowmonitor.h
)
target_compile_options(
wintc-taskband
PRIVATE ${WINTC_COMPILE_OPTIONS}
)
target_include_directories(
wintc-taskband
SYSTEM
PRIVATE ${GARCON_INCLUDE_DIRS}
PRIVATE ${GARCON_GTK3_INCLUDE_DIRS}
PRIVATE ${GDK_INCLUDE_DIRS}
PRIVATE ${GDK_PIXBUF_INCLUDE_DIRS}
PRIVATE ${GLIB_INCLUDE_DIRS}
PRIVATE ${GTK3_INCLUDE_DIRS}
PRIVATE ${WINTC_COMGTK_INCLUDE_DIRS}
PRIVATE ${WINTC_EXEC_INCLUDE_DIRS}
PRIVATE ${WINTC_SHLLANG_INCLUDE_DIRS}
)
target_link_directories(
wintc-taskband
PRIVATE ${GARCON_LIBRARY_DIRS}
PRIVATE ${GARCON_GTK3_LIBRARY_DIRS}
PRIVATE ${GDK_LIBRARY_DIRS}
PRIVATE ${GDK_PIXBUF_LIBRARY_DIRS}
PRIVATE ${GLIB_LIBRARY_DIRS}
PRIVATE ${GTK3_LIBRARY_DIRS}
PRIVATE ${WINTC_COMGTK_LIBRARY_DIRS}
PRIVATE ${WINTC_EXEC_LIBRARY_DIRS}
PRIVATE ${WINTC_SHLLANG_LIBRARY_DIRS}
)
target_link_libraries(
wintc-taskband
PRIVATE ${CMAKE_DL_LIBS}
PRIVATE ${GARCON_LIBRARIES}
PRIVATE ${GARCON_GTK3_LIBRARIES}
PRIVATE ${GDK_LIBRARIES}
PRIVATE ${GDK_PIXBUF_LIBRARIES}
PRIVATE ${GLIB_LIBRARIES}
PRIVATE ${GTK3_LIBRARIES}
PRIVATE ${WINTC_COMGTK_LIBRARIES}
PRIVATE ${WINTC_EXEC_LIBRARIES}
PRIVATE ${WINTC_SHLLANG_LIBRARIES}
)
add_dependencies(
wintc-taskband
build-gresources
)
# Installation
#
wintc_configure_and_install_packaging()
wintc_compile_and_install_pofiles()
install(
DIRECTORY res/
DESTINATION ${WINTC_ASSETS_INSTALL_DIR}/shell-res
)
install(
TARGETS wintc-taskband
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)

7
shell/taskband/README.MD Normal file
View File

@@ -0,0 +1,7 @@
# wintc-taskband
This directory contains the source code for the taskband.
![image](https://github.com/rozniak/xfce-winxp-tc/assets/13258281/cb3ccda4-8a8f-402b-a096-19e90b6c681e)
## Keyboard Shortcut
At the moment there is no ability to open the Start menu with the `super`/`Win` key - there is an issue open for this however: [#86](https://github.com/rozniak/xfce-winxp-tc/issues/86)

141
shell/taskband/po/ar_SA.po Normal file
View File

@@ -0,0 +1,141 @@
# Arabic translations for PACKAGE package.
# Copyright (C) 2022 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-20 21:28+0100\n"
"PO-Revision-Date: 2022-07-20 21:28+0100\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: ar_SA\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "All Programs"
msgstr "كافة البرامج"
msgid "Opens your Internet browser."
msgstr "فتح مستعرض إنترنت."
msgid "Opens your e-mail program so you can send or read a message."
msgstr "فتح برنامج البريد الإلكتروني حتى تتمكن من إرسال رسالة أو قراءتها."
msgid "Internet"
msgstr "إنترنت"
msgid "E-mail"
msgstr "البريد الإلكتروني"
msgid "start"
msgstr " ابدأ"
msgid "Click here to begin"
msgstr "انقر هنا لتبدأ"
msgid "Log Off"
msgstr "تسجيل الخروج"
msgid ""
"Provides options for closing your programs and logging off, or for leaving "
"your programs running and switching to another user."
msgstr ""
"توفير خيارات لإغلاق البرامج وتسجيل الخروج أو للاحتفاظ بالبرامج قيد التشغيل "
"والتبديل إلى مستخدم آخر."
msgid "Turn Off Computer"
msgstr "إيقاف تشغيل الكمبيوتر"
msgid ""
"Provides options for turning off or restarting your computer, or for "
"activating Stand By or Hibernate modes."
msgstr ""
"توفير خيارات لإيقاف تشغيل الكمبيوتر أو لإعادة تشغيله أو لتنشيط وضعي "
"\"الاستعداد\" أو \"السبات\"."
msgid ""
"Opens the My Documents folder, where you can store letters, reports, notes, "
"and other kinds of documents."
msgstr ""
"فتح المجلد \"المستندات\" الذي يمكنك حفظ الخطابات والتقارير والملاحظات وغير "
"ذلك من أنواع المستندات فيه."
msgid "Displays recently opened documents and folders."
msgstr "عرض المستندات والمجلدات التي تم فتحها مؤخراً."
msgid ""
"Opens the My Pictures folder, where you can store digital photos, images, "
"and graphics files."
msgstr ""
"فتح المجلد \"الصور\" الذي يمكنك حفظ الصور الفوتوغرافية الرقمية والصور وملفات "
"الرسومات فيه."
msgid ""
"Opens the My Music folder, where you can store music and other audio files."
msgstr ""
"فتح المجلد \"الموسيقى\" الذي يمكنك حفظ ملفات الموسيقى وأنواع ملفات الصوت "
"الأخرى فيه."
msgid ""
"Gives access to, and information about, the disk drives, cameras, scanners, "
"and other hardware connected to your computer."
msgstr ""
"منح حق الوصول إلى محركات الأقراص والكاميرات والماسحات الضوئية والأجهزة "
"الأخرى المتصلة بالكمبيوتر وكذلك توفير معلومات بخصوصها."
msgid ""
"Provides options for you to customize the appearance and functionality of "
"your computer, add or remove programs, and set up network connections and "
"user accounts."
msgstr ""
"توفير خيارات لتخصيص مظهر الكمبيوتر وكيفية عمله وإضافة البرامج أو إزالتها "
"وإعداد اتصالات شبكة الاتصال وحسابات المستخدمين."
msgid ""
"Chooses default programs for certain activities, such as Web browsing or "
"sending e-mail, and specifies which programs are accessible from the Start "
"menu, desktop, and other locations."
msgstr ""
"اختيار البرامج الافتراضية لبعض النشاطات كاستعراض ويب أو ارسال البريد "
"الإلكتروني وتحديد البرامج التي يمكن الوصول إليها من قائمة ابدأ وسطح المكتب "
"ومواقع أخرى."
msgid "Set Program Access and Defaults"
msgstr "تعيين افتراضيات البرامج والوصول إليها"
msgid "Connects to other computers, networks, and the Internet."
msgstr "الاتصال بأجهزة الكمبيوتر وشبكات الاتصال الأخرى وإنترنت"
msgid "Connect To"
msgstr "الاتصال بـ"
msgid "Shows installed printers and fax printers and helps you add new ones."
msgstr "إظهار الطابعات وأجهزة الفاكس المثبتة ومساعدتك في إضافة أجهزة جديدة"
msgid ""
"Opens a central location for Help topics, tutorials, troubleshooting, and "
"other support services."
msgstr ""
"فتح موقع وسط لمواضيع \"التعليمات\"، والبرامج التعليمية واستكشاف الأخطاء "
"وإصلاحها وخدمات الدعم الأخرى."
msgid "Help and Support"
msgstr "تعليمات ودعم"
msgid ""
"Opens a window where you can pick search options and work with search "
"results."
msgstr "فتح إطار يمكنك فيه انتقاء خيارات البحث والتعامل مع نتائج البحث."
msgid "Search"
msgstr "بحث"
msgid "Opens a program, folder, document, or Web site."
msgstr "فتح برنامج أو مجلد أو مستند أو موقع على ويب."
msgid "Run..."
msgstr "تشغيل..."

148
shell/taskband/po/bg_BG.po Normal file
View File

@@ -0,0 +1,148 @@
# Bulgarian translations for PACKAGE package.
# Copyright (C) 2022 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-20 21:28+0100\n"
"PO-Revision-Date: 2022-07-20 21:28+0100\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: bg\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "All Programs"
msgstr "Всички програми"
msgid "Opens your Internet browser."
msgstr "Отваря вашия Интернет браузър."
msgid "Opens your e-mail program so you can send or read a message."
msgstr ""
"Отваря вашата e-mail програма, за да можете да изпращате или четете "
"съобщение."
msgid "Internet"
msgstr "Интернет"
msgid "E-mail"
msgstr "E-mail"
msgid "start"
msgstr "старт"
msgid "Click here to begin"
msgstr "Щракнете тук, за да започнете"
msgid "Log Off"
msgstr "Излизане"
msgid ""
"Provides options for closing your programs and logging off, or for leaving "
"your programs running and switching to another user."
msgstr ""
"Предоставя опции за затваряне на програми и излизане, или за оставяне на "
"програмите да се изпълняват и превключване на друг потребител."
msgid "Turn Off Computer"
msgstr "Изключване на компютъра"
msgid ""
"Provides options for turning off or restarting your computer, or for "
"activating Stand By or Hibernate modes."
msgstr ""
"Предоставя опции за изключване или рестартиране на компютъра или за "
"активиране на режимите \"Готовност\" или \"Заспиване\"."
msgid ""
"Opens the My Documents folder, where you can store letters, reports, notes, "
"and other kinds of documents."
msgstr ""
"Отваря папката \"Моите документи\", където може да съхранявате писма, "
"отчети, бележки и друг тип документи."
msgid "Displays recently opened documents and folders."
msgstr "Показва последно отваряни документи и папки."
msgid ""
"Opens the My Pictures folder, where you can store digital photos, images, "
"and graphics files."
msgstr ""
"Отваря папката \"Моите картини\", където може да съхранявате цифрови снимки, "
"изображения и графични файлове."
msgid ""
"Opens the My Music folder, where you can store music and other audio files."
msgstr ""
"Отваря папката \"Моята музика\", където може да съхранявате музика и други "
"аудиофайлове."
msgid ""
"Gives access to, and information about, the disk drives, cameras, scanners, "
"and other hardware connected to your computer."
msgstr ""
"Дава информация и достъп до дискови устройства, фотоапарати, скенери и друг "
"хардуер, свързан към компютъра."
msgid ""
"Provides options for you to customize the appearance and functionality of "
"your computer, add or remove programs, and set up network connections and "
"user accounts."
msgstr ""
"Предоставя опции за персонализиране на вида и функционалността на компютъра, "
"за добавяне или отстраняване на програми, и за инсталиране на мрежови връзки "
"и потребителски акаунти."
msgid ""
"Chooses default programs for certain activities, such as Web browsing or "
"sending e-mail, and specifies which programs are accessible from the Start "
"menu, desktop, and other locations."
msgstr ""
"Избира програми по подразбиране за определени дейности като Web браузър или "
"електронна поща, както и до кои програми да има достъп от менюто \"Старт\", "
"от работния плот и от други места."
msgid "Set Program Access and Defaults"
msgstr "Задаване на достъп до програми и настройки по подразбиране"
msgid "Connects to other computers, networks, and the Internet."
msgstr "Свързва с други компютри, мрежи и Интернет."
msgid "Connect To"
msgstr "Свържи се с"
msgid "Shows installed printers and fax printers and helps you add new ones."
msgstr ""
"Показва инсталираните принтери и факс принтери и ви помага да добавяте нови."
msgid ""
"Opens a central location for Help topics, tutorials, troubleshooting, and "
"other support services."
msgstr ""
"Отваря централно местоположение за теми от \"Помощ\", уроци, отстраняване на "
"неизправности и други поддържащи услуги."
msgid "Help and Support"
msgstr "Помощ и поддръжка"
msgid ""
"Opens a window where you can pick search options and work with search "
"results."
msgstr ""
"Отваря прозорец, откъдето може да изберете опции на търсене и да работите с "
"резултатите от търсенето."
msgid "Search"
msgstr "Търсене"
msgid "Opens a program, folder, document, or Web site."
msgstr "Отваря програма, папка, документ или Web сайт."
msgid "Run..."
msgstr "Изпълнение..."

144
shell/taskband/po/cs_CZ.po Normal file
View File

@@ -0,0 +1,144 @@
# Czech translations for PACKAGE package.
# Copyright (C) 2022 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-20 21:28+0100\n"
"PO-Revision-Date: 2022-07-20 21:28+0100\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: cs\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
msgid "All Programs"
msgstr "Všechny programy"
msgid "Opens your Internet browser."
msgstr "Spustí prohlížeč Internetu."
msgid "Opens your e-mail program so you can send or read a message."
msgstr "Spustí e-mailový program, umožňující odesílat a číst zprávy."
msgid "Internet"
msgstr "Internet"
msgid "E-mail"
msgstr "E-mail"
msgid "start"
msgstr "Start"
msgid "Click here to begin"
msgstr "Začněte klepnutím sem."
msgid "Log Off"
msgstr "Odhlásit se"
msgid ""
"Provides options for closing your programs and logging off, or for leaving "
"your programs running and switching to another user."
msgstr ""
"Poskytuje možnosti ukončení programů a odhlášení nebo přepnutí uživatele bez "
"ukončení programů."
msgid "Turn Off Computer"
msgstr "Vypnout počítač"
msgid ""
"Provides options for turning off or restarting your computer, or for "
"activating Stand By or Hibernate modes."
msgstr ""
"Poskytuje možnosti vypnutí nebo restartování počítače a pro přechod do "
"pohotovostního režimu nebo režimu spánku."
msgid ""
"Opens the My Documents folder, where you can store letters, reports, notes, "
"and other kinds of documents."
msgstr ""
"Otevře složku Dokumenty, kam můžete ukládat dopisy, poznámky, tabulky a jiné "
"druhy dokumentů."
msgid "Displays recently opened documents and folders."
msgstr "Zobrazí naposledy otevřené dokumenty a složky."
msgid ""
"Opens the My Pictures folder, where you can store digital photos, images, "
"and graphics files."
msgstr ""
"Otevře složku Obrázky, kam můžete ukládat digitální fotografie, obrázky a "
"grafiku."
msgid ""
"Opens the My Music folder, where you can store music and other audio files."
msgstr ""
"Otevře složku Hudba, kam můžete ukládat hudební a jiné zvukové soubory."
msgid ""
"Gives access to, and information about, the disk drives, cameras, scanners, "
"and other hardware connected to your computer."
msgstr ""
"Poskytuje přístup a informace o pevných discích, kamerách, skenerech a "
"dalších zařízeních, připojených k tomuto počítači."
msgid ""
"Provides options for you to customize the appearance and functionality of "
"your computer, add or remove programs, and set up network connections and "
"user accounts."
msgstr ""
"Poskytuje možnosti úpravy zobrazení a funkcí tohoto počítače, přidávání a "
"odebírání programů a konfigurování síťových připojení a uživatelských účtů."
msgid ""
"Chooses default programs for certain activities, such as Web browsing or "
"sending e-mail, and specifies which programs are accessible from the Start "
"menu, desktop, and other locations."
msgstr ""
"Určuje výchozí programy pro určité úlohy, jako například prohlížení webu "
"nebo odesílání e-mailů a také programy přístupné v nabídce Start, na ploše a "
"dalších místech."
msgid "Set Program Access and Defaults"
msgstr "Přístup a výchozí nastavení programů"
msgid "Connects to other computers, networks, and the Internet."
msgstr "Vytvoří připojení k jiným počítačům, sítím a Internetu"
msgid "Connect To"
msgstr "Připojit"
msgid "Shows installed printers and fax printers and helps you add new ones."
msgstr ""
"Obsahuje nainstalované tiskárny a faxové tiskárny a umožňuje přidat nové."
msgid ""
"Opens a central location for Help topics, tutorials, troubleshooting, and "
"other support services."
msgstr ""
"Zpřístupní témata nápovědy, kurzy, řešení problémů a další služby odborné "
"pomoci."
msgid "Help and Support"
msgstr "Nápověda a odborná pomoc"
msgid ""
"Opens a window where you can pick search options and work with search "
"results."
msgstr ""
"Otevře okno, ve kterém můžete vybrat možnosti vyhledávání a pracovat s "
"výsledky vyhledávání."
msgid "Search"
msgstr "Hledat"
msgid "Opens a program, folder, document, or Web site."
msgstr "Otevře složku, program, dokument nebo webovou stránku."
msgid "Run..."
msgstr "Spustit..."

144
shell/taskband/po/da_DK.po Normal file
View File

@@ -0,0 +1,144 @@
# Danish translations for PACKAGE package.
# Copyright (C) 2022 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-20 21:28+0100\n"
"PO-Revision-Date: 2022-07-20 21:28+0100\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: da\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "All Programs"
msgstr "Alle programmer"
msgid "Opens your Internet browser."
msgstr "Åbner din Internetwebbrowser"
msgid "Opens your e-mail program so you can send or read a message."
msgstr "Åbner dit e-mail-program, så du kan sende og læse meddelelser"
msgid "Internet"
msgstr "Internet"
msgid "E-mail"
msgstr "E-mail"
msgid "start"
msgstr "start"
msgid "Click here to begin"
msgstr "Klik her for at starte"
msgid "Log Off"
msgstr "Log af"
msgid ""
"Provides options for closing your programs and logging off, or for leaving "
"your programs running and switching to another user."
msgstr ""
"Indstillinger for lukning af dine programmer og for at logge af eller lade "
"programmerne køre og skifte til en anden bruger"
msgid "Turn Off Computer"
msgstr "Luk computeren"
msgid ""
"Provides options for turning off or restarting your computer, or for "
"activating Stand By or Hibernate modes."
msgstr ""
"Indstillinger for lukning og genstart af computeren, eller for aktivering af "
"standby eller dvale"
msgid ""
"Opens the My Documents folder, where you can store letters, reports, notes, "
"and other kinds of documents."
msgstr ""
"Åbner mappen Dokumenter, hvor du kan gemme breve, rapporter, notater og "
"andre slags dokumenter"
msgid "Displays recently opened documents and folders."
msgstr "Viser de senest åbnede dokumenter og mapper"
msgid ""
"Opens the My Pictures folder, where you can store digital photos, images, "
"and graphics files."
msgstr ""
"Åbner mappen Billeder, hvor du kan gemme digitale fotos, billeder og "
"grafikfiler"
msgid ""
"Opens the My Music folder, where you can store music and other audio files."
msgstr "Åbner mappen Musik, hvor du kan gemme musik og andre lydfiler"
msgid ""
"Gives access to, and information about, the disk drives, cameras, scanners, "
"and other hardware connected to your computer."
msgstr ""
"Giver adgang til og oplysninger om diskdrev, kameraer, scannere og anden "
"hardware, der er tilsluttet computeren"
msgid ""
"Provides options for you to customize the appearance and functionality of "
"your computer, add or remove programs, and set up network connections and "
"user accounts."
msgstr ""
"Indstillinger for tilpasning af udseendet og computerens funktioner, "
"tilføjelse eller fjernelse af programmer og oprettelse af "
"netværksforbindelser og brugerkonti"
msgid ""
"Chooses default programs for certain activities, such as Web browsing or "
"sending e-mail, and specifies which programs are accessible from the Start "
"menu, desktop, and other locations."
msgstr ""
"Vælger standardprogrammer til bestemte handlinger, f.eks. brug af webbrowser "
"eller afsendelse af e-mail, og hvilke programmer, der er tilgængelige i "
"menuen Start, på skrivebordet og andre steder."
msgid "Set Program Access and Defaults"
msgstr "Angiv programadgang og -standarder"
msgid "Connects to other computers, networks, and the Internet."
msgstr "Opretter forbindelse til andre computere, netværk og Internettet"
msgid "Connect To"
msgstr "Opret forbindelse til"
msgid "Shows installed printers and fax printers and helps you add new ones."
msgstr ""
"Viser installerede printere og faxprintere og hjælper dig med at tilføje nye"
msgid ""
"Opens a central location for Help topics, tutorials, troubleshooting, and "
"other support services."
msgstr ""
"Åbner en central placering for emner i Hjælp, selvstudier, fejlfinding og "
"andre supporttjenester"
msgid "Help and Support"
msgstr "Hjælp og support"
msgid ""
"Opens a window where you can pick search options and work with search "
"results."
msgstr ""
"Åbner et vindue, hvor du kan vælge søgekriterier og arbejde med "
"søgeresultater"
msgid "Search"
msgstr "Søg"
msgid "Opens a program, folder, document, or Web site."
msgstr "Åbner et program, en mappe, et dokument eller et websted"
msgid "Run..."
msgstr "Kør..."

149
shell/taskband/po/de_DE.po Normal file
View File

@@ -0,0 +1,149 @@
# German translations for PACKAGE package.
# Copyright (C) 2022 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-20 21:28+0100\n"
"PO-Revision-Date: 2022-07-20 21:28+0100\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "All Programs"
msgstr "Alle Programme"
msgid "Opens your Internet browser."
msgstr "Öffnet den Internetbrowser."
msgid "Opens your e-mail program so you can send or read a message."
msgstr "Öffnet das E-Mail-Programm zum Senden und Empfangen von Nachrichten."
msgid "Internet"
msgstr "Internet"
msgid "E-mail"
msgstr "E-Mail"
msgid "start"
msgstr "Start"
msgid "Click here to begin"
msgstr "Klicken Sie zum Starten auf diese Schaltfläche."
msgid "Log Off"
msgstr "Abmelden"
msgid ""
"Provides options for closing your programs and logging off, or for leaving "
"your programs running and switching to another user."
msgstr ""
"Bietet Optionen zum Schließen von Programmen und zum Abmelden, sowie zum "
"Verlassen von ausgeführten Programmen und zum Wechseln zu einem anderen "
"Benutzer."
msgid "Turn Off Computer"
msgstr "Computer ausschalten"
msgid ""
"Provides options for turning off or restarting your computer, or for "
"activating Stand By or Hibernate modes."
msgstr ""
"Bietet Optionen zum Abschalten oder Neustarten des Computers oder zum "
"Aktivieren des Standbymodus bzw. Ruhezustands."
msgid ""
"Opens the My Documents folder, where you can store letters, reports, notes, "
"and other kinds of documents."
msgstr ""
"Öffnet den Ordner \"Eigene Dateien\", in dem Sie Briefe, Berichte, Notizen "
"und andere Dokumente speichern können."
msgid "Displays recently opened documents and folders."
msgstr "Zeigt die zuletzt geöffneten Dokumente und Ordner an."
msgid ""
"Opens the My Pictures folder, where you can store digital photos, images, "
"and graphics files."
msgstr ""
"Öffnet den Ordner \"Eigene Bilder\", in dem Sie digitale Fotos, Bilder und "
"andere Grafikdateien speichern können."
msgid ""
"Opens the My Music folder, where you can store music and other audio files."
msgstr ""
"Öffnet den Ordner \"Eigene Musik\", in dem Sie Musik- und andere "
"Audiodateien speichern können."
msgid ""
"Gives access to, and information about, the disk drives, cameras, scanners, "
"and other hardware connected to your computer."
msgstr ""
"Bietet Zugriff und Informationen über Laufwerke, Kameras, Scanner und andere "
"an den Computer angeschlossene Hardware."
msgid ""
"Provides options for you to customize the appearance and functionality of "
"your computer, add or remove programs, and set up network connections and "
"user accounts."
msgstr ""
"Bietet Optionen zum Anpassen der Darstellung und Funktionalität des "
"Computers, zum Hinzufügen bzw. Entfernen von Programmen und zum Einrichten "
"von Netzwerkverbindungen und Benutzerkonten."
msgid ""
"Chooses default programs for certain activities, such as Web browsing or "
"sending e-mail, and specifies which programs are accessible from the Start "
"menu, desktop, and other locations."
msgstr ""
"Wählt die Standardprogramme für bestimmte Aktivitäten aus, wie z. B. "
"Webbrowsen oder Senden von E-Mail, und legt fest, auf welche Programme vom "
"Startmenü, vom Desktop, bzw. von anderen Stellen aus zugegriffen werden kann."
msgid "Set Program Access and Defaults"
msgstr "Programmzugriff und -standards"
msgid "Connects to other computers, networks, and the Internet."
msgstr ""
"Stellt Verbindungen mit anderen Computern, Netzwerken oder dem Internet her."
msgid "Connect To"
msgstr "Verbinden mit"
msgid "Shows installed printers and fax printers and helps you add new ones."
msgstr ""
"Zeigt die installierten Drucker und Faxdrucker an und unterstützt Sie beim "
"Hinzufügen neuer Drucker."
msgid ""
"Opens a central location for Help topics, tutorials, troubleshooting, and "
"other support services."
msgstr ""
"Öffnet eine zentrale Anwendung für Hilfethemen, Lernprogramme, "
"Problembehebung und andere Supportdienste."
msgid "Help and Support"
msgstr "Hilfe und Support"
msgid ""
"Opens a window where you can pick search options and work with search "
"results."
msgstr ""
"Öffnet ein Fenster, in dem Sie Suchoptionen auswählen und mit "
"Suchergebnissen arbeiten können."
msgid "Search"
msgstr "Suchen"
msgid "Opens a program, folder, document, or Web site."
msgstr "Öffnet ein Programm, einen Ordner, ein Dokument oder eine Website."
msgid "Run..."
msgstr "Ausführen..."

151
shell/taskband/po/el_GR.po Normal file
View File

@@ -0,0 +1,151 @@
# Greek translations for PACKAGE package.
# Copyright (C) 2022 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-20 21:28+0100\n"
"PO-Revision-Date: 2022-07-20 21:28+0100\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: el\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "All Programs"
msgstr "Όλα τα προγράμματα"
msgid "Opens your Internet browser."
msgstr "Ανοίγει το πρόγραμμα περιήγησής σας στο Internet."
msgid "Opens your e-mail program so you can send or read a message."
msgstr ""
"Ανοίγει το πρόγραμμα ηλεκτρονικού ταχυδρομείου σας ώστε να μπορείτε να "
"στείλετε ή να διαβάσετε ένα μήνυμα."
msgid "Internet"
msgstr "Ιnternet"
msgid "E-mail"
msgstr "Ηλ. ταχυδρομείο"
msgid "start"
msgstr "έναρξη"
msgid "Click here to begin"
msgstr "Κάντε κλικ εδώ, για να ξεκινήσετε"
msgid "Log Off"
msgstr "Αποσύνδεση"
msgid ""
"Provides options for closing your programs and logging off, or for leaving "
"your programs running and switching to another user."
msgstr ""
"Παρέχει επιλογές για κλείσιμο των προγραμμάτων και αποσύνδεση ή για συνέχεια "
"εκτέλεσης των προγραμμάτων και εναλλαγή σε άλλον χρήστη."
msgid "Turn Off Computer"
msgstr "Σβήσιμο του υπολογιστή"
msgid ""
"Provides options for turning off or restarting your computer, or for "
"activating Stand By or Hibernate modes."
msgstr ""
"Παρέχει επιλογές για το σβήσιμο ή την επανεκκίνηση του υπολογιστή σας ή για "
"την ενεργοποίηση των καταστάσεων λειτουργίας \"Αναμονή\" ή \"Αδρανοποίηση\"."
msgid ""
"Opens the My Documents folder, where you can store letters, reports, notes, "
"and other kinds of documents."
msgstr ""
"Ανοίγει το φάκελο \"Τα έγγραφά μου\", όπου μπορείτε να αποθηκεύετε "
"επιστολές, εκθέσεις, σημειώσεις και άλλα είδη εγγράφων."
msgid "Displays recently opened documents and folders."
msgstr "Εμφανίζει έγγραφα και φακέλους που ανοίχτηκαν πρόσφατα."
msgid ""
"Opens the My Pictures folder, where you can store digital photos, images, "
"and graphics files."
msgstr ""
"Ανοίγει το φάκελο \"Οι εικόνες μου\", όπου μπορείτε να αποθηκεύσετε ψηφιακές "
"φωτογραφίες, εικόνες και αρχεία γραφικών."
msgid ""
"Opens the My Music folder, where you can store music and other audio files."
msgstr ""
"Ανοίγει το φάκελο \"Η μουσική μου\", όπου μπορείτε να αποθηκεύσετε αρχεία "
"μουσικής και άλλα αρχεία ήχου."
msgid ""
"Gives access to, and information about, the disk drives, cameras, scanners, "
"and other hardware connected to your computer."
msgstr ""
"Παρέχει πρόσβαση, και σχετικές πληροφορίες, σε μονάδες δίσκων, φωτογραφικές "
"μηχανές, σαρωτές και το υπόλοιπο υλικό που είναι συνδεδεμένο στον υπολογιστή "
"σας."
msgid ""
"Provides options for you to customize the appearance and functionality of "
"your computer, add or remove programs, and set up network connections and "
"user accounts."
msgstr ""
"Σας παρέχει επιλογές προσαρμογής της εμφάνισης και της λειτουργικότητας του "
"υπολογιστή σας, προσθαφαίρεσης προγραμμάτων και εγκατάστασης συνδέσεων "
"δικτύου και λογαριασμών χρηστών."
msgid ""
"Chooses default programs for certain activities, such as Web browsing or "
"sending e-mail, and specifies which programs are accessible from the Start "
"menu, desktop, and other locations."
msgstr ""
"Επιλέγει προεπιλεγμένα προγράμματα για συγκεκριμένες δραστηριότητες, όπως "
"περιήγηση στο Web ή αποστολή ηλ. ταχυδρομείου, και καθορίζει σε ποια "
"προγράμματα είναι δυνατή η πρόσβαση από το μενού \"Έναρξη\", την επιφάνεια "
"εργασίας και άλλες θέσεις."
msgid "Set Program Access and Defaults"
msgstr "Ορισμός πρόσβασης και προεπιλογών προγραμμάτων"
msgid "Connects to other computers, networks, and the Internet."
msgstr "Συνδέει σε άλλους υπολογιστές, δίκτυα και στο Internet."
msgid "Connect To"
msgstr "Σύνδεση με"
msgid "Shows installed printers and fax printers and helps you add new ones."
msgstr ""
"Δείχνει εγκατεστημένους εκτυπωτές και εκτυπωτές φαξ και σας βοηθά να "
"προσθέσετε νέους."
msgid ""
"Opens a central location for Help topics, tutorials, troubleshooting, and "
"other support services."
msgstr ""
"Ανοίγει μια κεντρική θέση για θέματα Βοήθειας, εγχειρίδια εκμάθησης, "
"αντιμετώπιση προβλημάτων και άλλες υπηρεσίες υποστήριξης."
msgid "Help and Support"
msgstr "Βοήθεια και υποστήριξη"
msgid ""
"Opens a window where you can pick search options and work with search "
"results."
msgstr ""
"Ανοίγει ένα παράθυρο όπου μπορείτε να επιλέξετε επιλογές αναζήτησης και να "
"εργαστείτε με αποτελέσματα αναζήτησης."
msgid "Search"
msgstr "Αναζήτηση"
msgid "Opens a program, folder, document, or Web site."
msgstr "Ανοίγει ένα πρόγραμμα, φάκελο, έγγραφο ή τοποθεσία Web."
msgid "Run..."
msgstr "Εκτέλεση..."

149
shell/taskband/po/es_ES.po Normal file
View File

@@ -0,0 +1,149 @@
# Spanish translations for PACKAGE package.
# Copyright (C) 2022 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-20 21:28+0100\n"
"PO-Revision-Date: 2022-07-20 21:28+0100\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "All Programs"
msgstr "Todos los programas"
msgid "Opens your Internet browser."
msgstr "Abre su explorador de Internet."
msgid "Opens your e-mail program so you can send or read a message."
msgstr ""
"Abre su programa de correo electrónico para que pueda enviar y recibir "
"mensajes."
msgid "Internet"
msgstr "Internet"
msgid "E-mail"
msgstr "Correo electrónico"
msgid "start"
msgstr "Inicio"
msgid "Click here to begin"
msgstr "Haga clic aquí para iniciar"
msgid "Log Off"
msgstr "Cerrar sesión"
msgid ""
"Provides options for closing your programs and logging off, or for leaving "
"your programs running and switching to another user."
msgstr ""
"Proporciona opciones para cerrar sus programas y cerrar sesión, o para dejar "
"sus programas ejecutando y cambiar de usuario."
msgid "Turn Off Computer"
msgstr "Apagar equipo"
msgid ""
"Provides options for turning off or restarting your computer, or for "
"activating Stand By or Hibernate modes."
msgstr ""
"Proporciona opciones para apagar y reiniciar su equipo, o para activar los "
"modos Suspender o Hibernar."
msgid ""
"Opens the My Documents folder, where you can store letters, reports, notes, "
"and other kinds of documents."
msgstr ""
"Abre la carpeta Mis documentos en la que puede almacenar cartas, informes, "
"notas y otro tipo de documentos."
msgid "Displays recently opened documents and folders."
msgstr "Muestra documentos y carpetas abiertas recientemente."
msgid ""
"Opens the My Pictures folder, where you can store digital photos, images, "
"and graphics files."
msgstr ""
"Abre la carpeta Mis imágenes en la que puede almacenar fotos digitales, "
"imágenes y archivos de gráficos."
msgid ""
"Opens the My Music folder, where you can store music and other audio files."
msgstr ""
"Abre la carpeta Mi música en la que puede almacenar música y otros archivos "
"de audio."
msgid ""
"Gives access to, and information about, the disk drives, cameras, scanners, "
"and other hardware connected to your computer."
msgstr ""
"Proporciona acceso e información acerca de unidades de disco, cámaras, "
"escáneres y otro hardware conectado a su equipo."
msgid ""
"Provides options for you to customize the appearance and functionality of "
"your computer, add or remove programs, and set up network connections and "
"user accounts."
msgstr ""
"Proporciona opciones para personalizar la apariencia y funcionalidad de su "
"equipo, agregar o quitar programas, y establecer conexiones de red y cuentas "
"de usuario."
msgid ""
"Chooses default programs for certain activities, such as Web browsing or "
"sending e-mail, and specifies which programs are accessible from the Start "
"menu, desktop, and other locations."
msgstr ""
"Elige los programas predeterminados para ciertas actividades como "
"exploración de Web o envío de correo electrónico y especifica qué programas "
"se son accesibles desde Menú Inicio, el Escritorio y otras ubicaciones."
msgid "Set Program Access and Defaults"
msgstr "Configurar acceso y programas predeterminados"
msgid "Connects to other computers, networks, and the Internet."
msgstr "Se conecta a otros equipos, redes e Internet."
msgid "Connect To"
msgstr "Conectar a"
msgid "Shows installed printers and fax printers and helps you add new ones."
msgstr ""
"Muestra las impresoras junto con las impresoras de fax y le ayuda a agregar "
"las nuevas."
msgid ""
"Opens a central location for Help topics, tutorials, troubleshooting, and "
"other support services."
msgstr ""
"Abre una ubicación central para los Temas de ayuda, tutoriales, solución de "
"problemas y otros servicios de soporte técnico."
msgid "Help and Support"
msgstr "Ayuda y soporte técnico"
msgid ""
"Opens a window where you can pick search options and work with search "
"results."
msgstr ""
"Abre una ventana en la que puede elegir opciones de búsqueda y trabajar con "
"los resultados."
msgid "Search"
msgstr "Buscar"
msgid "Opens a program, folder, document, or Web site."
msgstr "Abre un programa, una carpeta, un documento o un sitio Web."
msgid "Run..."
msgstr "Ejecutar..."

144
shell/taskband/po/et_EE.po Normal file
View File

@@ -0,0 +1,144 @@
# Estonian translations for PACKAGE package.
# Copyright (C) 2022 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-20 21:28+0100\n"
"PO-Revision-Date: 2022-07-20 21:28+0100\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: et\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "All Programs"
msgstr "Kõik programmid"
msgid "Opens your Internet browser."
msgstr "Avab teie Interneti-brauseri."
msgid "Opens your e-mail program so you can send or read a message."
msgstr "Avab teie meiliprogrammi, et saaksite sõnumeid saata või lugeda."
msgid "Internet"
msgstr "Internet"
msgid "E-mail"
msgstr "E-post"
msgid "start"
msgstr "start"
msgid "Click here to begin"
msgstr "Alustamiseks klõpsake siin"
msgid "Log Off"
msgstr "Logi välja"
msgid ""
"Provides options for closing your programs and logging off, or for leaving "
"your programs running and switching to another user."
msgstr ""
"Pakub võimalusi teie programmide sulgemiseks ja väljalogimiseks või "
"programmide töötama jätmiseks ja mõne teise kasutaja aktiveerimiseks."
msgid "Turn Off Computer"
msgstr "Lülita arvuti välja"
msgid ""
"Provides options for turning off or restarting your computer, or for "
"activating Stand By or Hibernate modes."
msgstr ""
"Pakub võimalusi arvuti väljalülitamiseks või taaskäivitamiseks või puhke- "
"või talveunerežiimi aktiveerimiseks."
msgid ""
"Opens the My Documents folder, where you can store letters, reports, notes, "
"and other kinds of documents."
msgstr ""
"Avab kausta Minu dokumendid, kus saate talletada kirju, aruandeid, märkmeid "
"ja muid dokumente."
msgid "Displays recently opened documents and folders."
msgstr "Kuvab viimati avatud dokumendid ja kaustad."
msgid ""
"Opens the My Pictures folder, where you can store digital photos, images, "
"and graphics files."
msgstr ""
"Avab kausta Minu pildid, kus saate talletada digitaalfotosid, pilte ja "
"graafikafaile."
msgid ""
"Opens the My Music folder, where you can store music and other audio files."
msgstr ""
"Avab kausta Minu muusika, kus saate talletada muusikat ja muid helifaile."
msgid ""
"Gives access to, and information about, the disk drives, cameras, scanners, "
"and other hardware connected to your computer."
msgstr ""
"Annab juurdepääsu kettadraividele, kaameratele, skanneritele ja muule teie "
"arvutiga ühendatud riistvarale ning pakub nende kohta teavet."
msgid ""
"Provides options for you to customize the appearance and functionality of "
"your computer, add or remove programs, and set up network connections and "
"user accounts."
msgstr ""
"Pakub võimalusi arvuti ilme ja funktsionaalsuse kohandamiseks, programmide "
"lisamiseks või eemaldamiseks ja võrguühenduste ning kasutajakontode "
"häälestamiseks."
msgid ""
"Chooses default programs for certain activities, such as Web browsing or "
"sending e-mail, and specifies which programs are accessible from the Start "
"menu, desktop, and other locations."
msgstr ""
"Valib vaikeprogrammid kindlate tegevuste tarbeks (nt veebisirvimine või "
"meilisõnumite saatmine) ja määrab, millistele programmidele pääseb juurde "
"menüü Start kaudu, töölaualt ja mujalt."
msgid "Set Program Access and Defaults"
msgstr "Sea programmidele juurdepääs ja vaikeväärtused"
msgid "Connects to other computers, networks, and the Internet."
msgstr "Loob ühenduse muude arvutite, võrkude ja Internetiga."
msgid "Connect To"
msgstr "Loo ühendus"
msgid "Shows installed printers and fax printers and helps you add new ones."
msgstr ""
"Kuvab installitud printerid ja faksprinterid ja aitab teil uusi lisada."
msgid ""
"Opens a central location for Help topics, tutorials, troubleshooting, and "
"other support services."
msgstr ""
"Avab spikriteemade, õpikute, tõrkeotsingu ja muude tugiteenuste keskse "
"asukoha."
msgid "Help and Support"
msgstr "Spikker ja tugi"
msgid ""
"Opens a window where you can pick search options and work with search "
"results."
msgstr ""
"Avab akna, kus saate valida otsingusuvandeid ja töötada otsingutulemitega."
msgid "Search"
msgstr "Otsing"
msgid "Opens a program, folder, document, or Web site."
msgstr "Avab programmi, kausta, dokumendi või veebisaidi."
msgid "Run..."
msgstr "Käivita..."

146
shell/taskband/po/fi_FI.po Normal file
View File

@@ -0,0 +1,146 @@
# Finnish translations for PACKAGE package.
# Copyright (C) 2022 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-20 21:28+0100\n"
"PO-Revision-Date: 2022-07-20 21:28+0100\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: fi\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "All Programs"
msgstr "Kaikki ohjelmat"
msgid "Opens your Internet browser."
msgstr "Avaa Internet-selaimen."
msgid "Opens your e-mail program so you can send or read a message."
msgstr ""
"Käynnistää sähköpostiohjelman viestien lähettämistä ja lukemista varten."
msgid "Internet"
msgstr "Internet"
msgid "E-mail"
msgstr "Sähköposti"
msgid "start"
msgstr "Käynnistä"
msgid "Click here to begin"
msgstr "Aloita valitsemalla tämä"
msgid "Log Off"
msgstr "Kirjaudu ulos"
msgid ""
"Provides options for closing your programs and logging off, or for leaving "
"your programs running and switching to another user."
msgstr ""
"Vaihtoehtoja ohjelmien sulkemiselle ja uloskirjautumiseen ja myös käyttäjän "
"vaihtamiselle ilman ohjelmien sulkemista."
msgid "Turn Off Computer"
msgstr "Sammuta tietokone"
msgid ""
"Provides options for turning off or restarting your computer, or for "
"activating Stand By or Hibernate modes."
msgstr ""
"Vaihtoehtoja tietokoneen sammuttamiseen ja uudelleenkäynnistämiseen tai "
"virransäästötilojen aktivoimiseen."
msgid ""
"Opens the My Documents folder, where you can store letters, reports, notes, "
"and other kinds of documents."
msgstr ""
"Avaa Omat tiedostot -kansion, jota käytetään asiakirjatiedostojen "
"oletustallennuspaikkana."
msgid "Displays recently opened documents and folders."
msgstr "Näyttää hiljattain käytetyt tiedostot ja kansiot."
msgid ""
"Opens the My Pictures folder, where you can store digital photos, images, "
"and graphics files."
msgstr ""
"Avaa Omat kuvatiedostot -kansion, jota käytetään kuvatiedostojen "
"oletustallennuspaikkana."
msgid ""
"Opens the My Music folder, where you can store music and other audio files."
msgstr ""
"Avaa Omat musiikkitiedostot -kansion, jota käytetään äänitiedostojen "
"oletustallennuspaikkana."
msgid ""
"Gives access to, and information about, the disk drives, cameras, scanners, "
"and other hardware connected to your computer."
msgstr ""
"Näyttää tietoja ja luo yhteyden tämän tietokoneen levyasemiin, skannereihin "
"ja muihin kytkettyihin laitteisiin."
msgid ""
"Provides options for you to customize the appearance and functionality of "
"your computer, add or remove programs, and set up network connections and "
"user accounts."
msgstr ""
"Tarjoaa vaihtoehtoja tietokoneen työpöydän ulkonäön ja toimintojen "
"mukauttamiseen, mahdollisuuden lisätä ja poistaa ohjelmia ja luoda "
"verkkoyhteyksiä ja käyttäjätilejä."
msgid ""
"Chooses default programs for certain activities, such as Web browsing or "
"sending e-mail, and specifies which programs are accessible from the Start "
"menu, desktop, and other locations."
msgstr ""
"Valitsee oletussovellukset tietyille toiminnoille kuten Internetin "
"selaamiselle tai sähköpostille. Lisäksi valvotaan, mitä sovelluksia voidaan "
"käyttää Käynnistä-valikon, työpöydän ja muissa kohteiden avulla."
msgid "Set Program Access and Defaults"
msgstr "Valitse käytettävät ohjelmat"
msgid "Connects to other computers, networks, and the Internet."
msgstr "Yhdistää toisiin tietokoneisiin, verkkoihin ja Internetiin."
msgid "Connect To"
msgstr "Yhdistä"
msgid "Shows installed printers and fax printers and helps you add new ones."
msgstr "Näyttää asennetut tulostimet ja faksit ja auttaa uusien asentamisessa."
msgid ""
"Opens a central location for Help topics, tutorials, troubleshooting, and "
"other support services."
msgstr ""
"Avaa ohjeen aiheiden, opetusohjelmien, vianetsinnän ja muiden tukipalvelujen "
"keskuksen."
msgid "Help and Support"
msgstr "Ohje ja tuki"
msgid ""
"Opens a window where you can pick search options and work with search "
"results."
msgstr ""
"Avaa ikkunan, jossa voit valita etsinnän asetukset ja työskennellä etsinnän "
"tulosten kanssa."
msgid "Search"
msgstr "Etsi"
msgid "Opens a program, folder, document, or Web site."
msgstr "Avaa kansion, tiedoston tai Web-sivun."
msgid "Run..."
msgstr "Suorita..."

152
shell/taskband/po/fr_FR.po Normal file
View File

@@ -0,0 +1,152 @@
# French translations for PACKAGE package.
# Copyright (C) 2022 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-20 21:28+0100\n"
"PO-Revision-Date: 2022-07-20 21:28+0100\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
msgid "All Programs"
msgstr "Tous les programmes"
msgid "Opens your Internet browser."
msgstr "Ouvre votre navigateur Internet."
msgid "Opens your e-mail program so you can send or read a message."
msgstr ""
"Ouvre votre programme de messagerie électronique afin que vous puissiez "
"envoyer ou lire un message."
msgid "Internet"
msgstr "Internet"
msgid "E-mail"
msgstr "Courrier électronique"
msgid "start"
msgstr "démarrer"
msgid "Click here to begin"
msgstr "Cliquez ici pour commencer"
msgid "Log Off"
msgstr "Fermer la session"
msgid ""
"Provides options for closing your programs and logging off, or for leaving "
"your programs running and switching to another user."
msgstr ""
"Fournit des options pour fermer vos programmes et vos sessions, ou pour "
"conserver vos programmes en cours d'exécution et basculer vers un autre "
"utilisateur."
msgid "Turn Off Computer"
msgstr "Arrêter l'ordinateur"
msgid ""
"Provides options for turning off or restarting your computer, or for "
"activating Stand By or Hibernate modes."
msgstr ""
"Fournit des options pour mettre votre ordinateur hors tension ou le "
"redémarrer, ou pour activer les modes de veille ou de veille prolongée."
msgid ""
"Opens the My Documents folder, where you can store letters, reports, notes, "
"and other kinds of documents."
msgstr ""
"Ouvre le dossier Mes documents, dans lequel vous pouvez stocker vos lettres, "
"rapports, notes, ou tout autre document."
msgid "Displays recently opened documents and folders."
msgstr "Affiche les documents et dossiers ouverts récemment."
msgid ""
"Opens the My Pictures folder, where you can store digital photos, images, "
"and graphics files."
msgstr ""
"Ouvre le dossier Mes images, dans lequel vous pouvez stocker vos photos "
"numériques, vos images et vos fichiers graphiques."
msgid ""
"Opens the My Music folder, where you can store music and other audio files."
msgstr ""
"Ouvre le dossier Ma musique, dans lequel vous pouvez stocker votre musique "
"et autres fichiers audio."
msgid ""
"Gives access to, and information about, the disk drives, cameras, scanners, "
"and other hardware connected to your computer."
msgstr ""
"Donne accès à des informations sur les lecteurs de disque, les appareil-"
"photos, les scanneurs et autre matériel."
msgid ""
"Provides options for you to customize the appearance and functionality of "
"your computer, add or remove programs, and set up network connections and "
"user accounts."
msgstr ""
"Fournit des options vous permettant de personnaliser l'apparence et les "
"fonctionnalités de votre ordinateur, d'ajouter ou de supprimer des "
"programmes et de configurer les connexions réseau et les comptes "
"d'utilisateur."
msgid ""
"Chooses default programs for certain activities, such as Web browsing or "
"sending e-mail, and specifies which programs are accessible from the Start "
"menu, desktop, and other locations."
msgstr ""
"Choisit les programmes par défaut pour des activités telles que la "
"navigation sur le Web ou l'envoi et la réception de courrier électronique, "
"et indique quels programmes sont accessibles depuis le menu Démarrer, le "
"Bureau et d'autres emplacements."
msgid "Set Program Access and Defaults"
msgstr "Configurer les programmes par défaut"
msgid "Connects to other computers, networks, and the Internet."
msgstr "Vous connecte à d'autres ordinateurs et réseaux, ou à Internet."
msgid "Connect To"
msgstr "Connexions"
msgid "Shows installed printers and fax printers and helps you add new ones."
msgstr ""
"Affiche les imprimantes et les imprimantes télécopieurs et vous aide à en "
"ajouter de nouvelles."
msgid ""
"Opens a central location for Help topics, tutorials, troubleshooting, and "
"other support services."
msgstr ""
"Ouvre un emplacement central pour les rubriques d'aide, les didacticiels, "
"les utilitaires de résolution de problèmes et autres services de support."
msgid "Help and Support"
msgstr "Aide et support"
msgid ""
"Opens a window where you can pick search options and work with search "
"results."
msgstr ""
"Ouvre une fenêtre dans laquelle vous pouvez sélectionner les options de "
"recherche et exploiter les résultats."
msgid "Search"
msgstr "Rechercher"
msgid "Opens a program, folder, document, or Web site."
msgstr "Ouvre un programme, un dossier, un document ou un site Web."
msgid "Run..."
msgstr "Exécuter..."

141
shell/taskband/po/he_IL.po Normal file
View File

@@ -0,0 +1,141 @@
# Hebrew translations for PACKAGE package.
# Copyright (C) 2022 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-20 21:28+0100\n"
"PO-Revision-Date: 2022-07-20 21:28+0100\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: he\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "All Programs"
msgstr "כל התוכניות"
msgid "Opens your Internet browser."
msgstr "פתיחת דפדפן האינטרנט שלך."
msgid "Opens your e-mail program so you can send or read a message."
msgstr "פתיחת תוכנית הדואר האלקטרוני שלך כדי שתוכל לשלוח או לקרוא הודעה."
msgid "Internet"
msgstr "אינטרנט"
msgid "E-mail"
msgstr "דואר אלקטרוני"
msgid "start"
msgstr " התחל"
msgid "Click here to begin"
msgstr "לחץ כאן כדי להתחיל"
msgid "Log Off"
msgstr "צא"
msgid ""
"Provides options for closing your programs and logging off, or for leaving "
"your programs running and switching to another user."
msgstr ""
"מתן אפשרויות לסגירת התוכניות וניתוק, או להשארת התוכניות פתוחות ומעבר למשתמש "
"אחר."
msgid "Turn Off Computer"
msgstr "כבה את המחשב"
msgid ""
"Provides options for turning off or restarting your computer, or for "
"activating Stand By or Hibernate modes."
msgstr ""
"מתן אפשרויות לכיבוי או להפעלה מחדש של המחשב, או להפעלת מצבי המתנה או שנת "
"חורף."
msgid ""
"Opens the My Documents folder, where you can store letters, reports, notes, "
"and other kinds of documents."
msgstr ""
"פתיחת התיקיה 'המסמכים שלי', בה ניתן לאחסן מכתבים, דו\"חות, רשימות וסוגי "
"מסמכים אחרים."
msgid "Displays recently opened documents and folders."
msgstr "הצגת המסמכים והתיקיות שפתחת לאחרונה."
msgid ""
"Opens the My Pictures folder, where you can store digital photos, images, "
"and graphics files."
msgstr ""
"פתיחת התיקיה התמונות שלי, בה ניתן לאחסן צילומים דיגיטליים, תמונות וקבצי "
"גרפיקה."
msgid ""
"Opens the My Music folder, where you can store music and other audio files."
msgstr "פתיחת התיקיה המוסיקה שלי, בה ניתן לאחסן קבצי מוסיקה וקבצי שמע אחרים."
msgid ""
"Gives access to, and information about, the disk drives, cameras, scanners, "
"and other hardware connected to your computer."
msgstr ""
"מתן גישה אל כונני הדיסקים, המצלמות, הסורקים והתקני חומרה אחרים המחוברים "
"למחשב שלך, והצגת מידע אודותיהם."
msgid ""
"Provides options for you to customize the appearance and functionality of "
"your computer, add or remove programs, and set up network connections and "
"user accounts."
msgstr ""
"מתן אפשרויות להתאמה אישית של המראה והפונקציונליות של המחשב, להוספה או הסרה "
"של תוכניות ולהגדרת חיבורי רשת וחשבונות משתמשים."
msgid ""
"Chooses default programs for certain activities, such as Web browsing or "
"sending e-mail, and specifies which programs are accessible from the Start "
"menu, desktop, and other locations."
msgstr ""
"בוחר בתוכנות ברירת מחדל עבור פעילויות מסויימות כמו גלישה באינטרנט או שליחת "
"דואר אלקטרוני, וקובע איזה תוכניות נגישות מתפריט התחל, שולחן העבודה ומיקומים "
"אחרים."
msgid "Set Program Access and Defaults"
msgstr "הגדר גישה לתכניות וברירות מחדל"
msgid "Connects to other computers, networks, and the Internet."
msgstr "חיבור למחשבים אחרים, לרשתות ולאינטרנט"
msgid "Connect To"
msgstr "התחבר אל"
msgid "Shows installed printers and fax printers and helps you add new ones."
msgstr ""
"הצגת המדפסות הרגילות ומדפסות הפקס המותקנות ומתן עזרה להוספת מדפסות חדשות"
msgid ""
"Opens a central location for Help topics, tutorials, troubleshooting, and "
"other support services."
msgstr ""
"פתיחת מיקום מרכזי הכולל נושאי עזרה, ערכות לימוד, כלי פתרון בעיות ושירותי "
"תמיכה נוספים."
msgid "Help and Support"
msgstr "עזרה ותמיכה"
msgid ""
"Opens a window where you can pick search options and work with search "
"results."
msgstr "פתיחת חלון בו באפשרותך לבחור אפשרויות חיפוש ולעבוד עם תוצאות חיפוש."
msgid "Search"
msgstr "חיפוש"
msgid "Opens a program, folder, document, or Web site."
msgstr "פתיחת תוכנית, תיקיה, מסמך או אתר אינטרנט."
msgid "Run..."
msgstr "הפעלה..."

145
shell/taskband/po/hr_HR.po Normal file
View File

@@ -0,0 +1,145 @@
# Croatian translations for PACKAGE package.
# Copyright (C) 2022 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-20 21:28+0100\n"
"PO-Revision-Date: 2022-07-20 21:28+0100\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: hr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
msgid "All Programs"
msgstr "Svi programi"
msgid "Opens your Internet browser."
msgstr "Otvara vaš Internet preglednik."
msgid "Opens your e-mail program so you can send or read a message."
msgstr "Otvara vaš program za e-poštu kako biste poslali ili pročitali poruku."
msgid "Internet"
msgstr "Internet"
msgid "E-mail"
msgstr "E-pošta"
msgid "start"
msgstr "start"
msgid "Click here to begin"
msgstr "Pritisnite ovdje za početak"
msgid "Log Off"
msgstr "Odjava"
msgid ""
"Provides options for closing your programs and logging off, or for leaving "
"your programs running and switching to another user."
msgstr ""
"Pruža mogućnosti zatvaranja programa i odjave, ili nastavka rada programa i "
"prebacivanja na drugog korisnika."
msgid "Turn Off Computer"
msgstr "Isključi računalo"
msgid ""
"Provides options for turning off or restarting your computer, or for "
"activating Stand By or Hibernate modes."
msgstr ""
"Pruža mogućnost isključivanja i ponovnog pokretanja računala, ili pokretanja "
"stanja čekanja i hibernacije."
msgid ""
"Opens the My Documents folder, where you can store letters, reports, notes, "
"and other kinds of documents."
msgstr ""
"Otvara mapu Moji dokumenti gdje možete spremati pisma, izvještaje, bilješke "
"i ostale vrste dokumenata."
msgid "Displays recently opened documents and folders."
msgstr "Prikazuje nedavno otvarane dokumente i mape."
msgid ""
"Opens the My Pictures folder, where you can store digital photos, images, "
"and graphics files."
msgstr ""
"Otvara mapu Moje slike gdje možete spremati digitalne fotografije, slike i "
"grafičke datoteke."
msgid ""
"Opens the My Music folder, where you can store music and other audio files."
msgstr ""
"Otvara mapu Moja glazba gdje možete spremati glazbu i ostale audio datoteke."
msgid ""
"Gives access to, and information about, the disk drives, cameras, scanners, "
"and other hardware connected to your computer."
msgstr ""
"Daje pristup i informacije o diskovnim pogonima, kamerama, skenerima i "
"ostalom hardveru priključenom na računalo."
msgid ""
"Provides options for you to customize the appearance and functionality of "
"your computer, add or remove programs, and set up network connections and "
"user accounts."
msgstr ""
"Pruža mogućnost prilagodbe izgleda i funkcionalnosti računala, dodavanja ili "
"uklanjanja programa te podešavanja mrežnih veza i korisničkih računa."
msgid ""
"Chooses default programs for certain activities, such as Web browsing or "
"sending e-mail, and specifies which programs are accessible from the Start "
"menu, desktop, and other locations."
msgstr ""
"Odabire zadane programe pojedinih aktivnosti kao što su pregledavanje Web-a "
"ili slanje e-pošte, te navodi kojim se programima može pristupiti s "
"izbornika Start, radne površine i drugih mjesta."
msgid "Set Program Access and Defaults"
msgstr "Postavi dozvole pristupa programu i zadane vrijednosti"
msgid "Connects to other computers, networks, and the Internet."
msgstr "Povezuje s drugim računalima, mrežama i Internetom."
msgid "Connect To"
msgstr "Povezivanje s"
msgid "Shows installed printers and fax printers and helps you add new ones."
msgstr ""
"Prikazuje instalirane pisače i faksove te vam pomaže kod dodavanja novih."
msgid ""
"Opens a central location for Help topics, tutorials, troubleshooting, and "
"other support services."
msgstr ""
"Otvara središnje mjesto tema pomoći, vodiča, rješavanja problema i ostalih "
"usluga podrške."
msgid "Help and Support"
msgstr "Pomoć i podrška"
msgid ""
"Opens a window where you can pick search options and work with search "
"results."
msgstr ""
"Otvara prozor u kojem možete odabrati odrednice pretraživanja i raditi s "
"rezultatima pretraživanja."
msgid "Search"
msgstr "Traži"
msgid "Opens a program, folder, document, or Web site."
msgstr "Otvara program, mapu dokument ili web odredište."
msgid "Run..."
msgstr "Pokreni..."

147
shell/taskband/po/hu_HU.po Normal file
View File

@@ -0,0 +1,147 @@
# Hungarian translations for PACKAGE package.
# Copyright (C) 2022 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-20 21:28+0100\n"
"PO-Revision-Date: 2022-07-20 21:28+0100\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: hu\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "All Programs"
msgstr "Minden program"
msgid "Opens your Internet browser."
msgstr "Az internetböngésző megnyitása."
msgid "Opens your e-mail program so you can send or read a message."
msgstr "A levelezőprogram megnyitása üzenetek küldéséhez és olvasásához."
msgid "Internet"
msgstr "Internet"
msgid "E-mail"
msgstr "E-mail"
msgid "start"
msgstr "Start"
msgid "Click here to begin"
msgstr "Az indításhoz kattintson ide."
msgid "Log Off"
msgstr "Kijelentkezés"
msgid ""
"Provides options for closing your programs and logging off, or for leaving "
"your programs running and switching to another user."
msgstr "Programok bezárása és kijelentkezés, vagy felhasználóváltás."
msgid "Turn Off Computer"
msgstr "A számítógép kikapcsolása"
msgid ""
"Provides options for turning off or restarting your computer, or for "
"activating Stand By or Hibernate modes."
msgstr ""
"Beállítások a számítógép kikapcsolásához, újraindításához vagy készenléti, "
"illetve hibernálási üzemmódjához."
msgid ""
"Opens the My Documents folder, where you can store letters, reports, notes, "
"and other kinds of documents."
msgstr ""
"A Dokumentumok mappa megnyitása, ahol leveleket, jegyzeteket, jelentéseket "
"és egyéb dokumentumokat tárolhat."
msgid "Displays recently opened documents and folders."
msgstr "A legutóbb megnyitott dokumentumok és mappák megjelenítése."
msgid ""
"Opens the My Pictures folder, where you can store digital photos, images, "
"and graphics files."
msgstr ""
"A Képek mappa megnyitása, amelyben digitális fényképeket, képeket és "
"grafikus fájlokat tárolhat."
msgid ""
"Opens the My Music folder, where you can store music and other audio files."
msgstr ""
"A Zene mappa megnyitása, amelyben zenét és egyéb hangfájlokat tárolhat."
msgid ""
"Gives access to, and information about, the disk drives, cameras, scanners, "
"and other hardware connected to your computer."
msgstr ""
"Hozzáférést biztosít valamint információt szolgáltat a lemezmeghajtókról, "
"fényképezőgépekről, képolvasókról és egyéb, a számítógéphez csatlakoztatott "
"hardverről."
msgid ""
"Provides options for you to customize the appearance and functionality of "
"your computer, add or remove programs, and set up network connections and "
"user accounts."
msgstr ""
"Olyan beállítási lehetőségek, amelyekkel a számítógép megjelenését és "
"működését testreszabhatja, programokat telepíthet vagy törölhet, valamint "
"beállíthatja a hálózati kapcsolatokat és a felhasználói fiókokat."
msgid ""
"Chooses default programs for certain activities, such as Web browsing or "
"sending e-mail, and specifies which programs are accessible from the Start "
"menu, desktop, and other locations."
msgstr ""
"Alapértelmezett programok kiválasztása bizonyos tevékenységekhez (például a "
"web böngészéséhez vagy e-mail küldéséhez), valamint annak megadása, hogy "
"mely programok legyenek elérhetők a Start menüben, az Asztalon és más "
"helyeken."
msgid "Set Program Access and Defaults"
msgstr "Programok hozzáférhetősége és alapértelmezései"
msgid "Connects to other computers, networks, and the Internet."
msgstr "Kapcsolódás más számítógépekhez, hálózatokhoz és az internethez."
msgid "Connect To"
msgstr "Csatlakozás"
msgid "Shows installed printers and fax printers and helps you add new ones."
msgstr ""
"A telepített nyomtatókat és faxnyomtatókat jeleníti meg, illetve segít újak "
"hozzáadásában."
msgid ""
"Opens a central location for Help topics, tutorials, troubleshooting, and "
"other support services."
msgstr ""
"Olyan központi hely megnyitása, ahol együtt találja meg a súgó témaköreit, "
"az oktatóprogramokat, valamint a hibakereső és egyéb támogatási "
"szolgáltatásokat."
msgid "Help and Support"
msgstr "Súgó és támogatás"
msgid ""
"Opens a window where you can pick search options and work with search "
"results."
msgstr ""
"Olyan ablak megnyitása, amelyben a keresés beállításait adhatja meg, illetve "
"a keresés eredményével dolgozhat."
msgid "Search"
msgstr "Keresés"
msgid "Opens a program, folder, document, or Web site."
msgstr "Program, mappa, dokumentum vagy webhely megnyitása."
msgid "Run..."
msgstr "Futtatás..."

149
shell/taskband/po/it_IT.po Normal file
View File

@@ -0,0 +1,149 @@
# Italian translations for PACKAGE package.
# Copyright (C) 2022 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-20 21:28+0100\n"
"PO-Revision-Date: 2022-07-20 21:28+0100\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "All Programs"
msgstr "Tutti i programmi"
msgid "Opens your Internet browser."
msgstr "Apre il browser Internet."
msgid "Opens your e-mail program so you can send or read a message."
msgstr ""
"Apre il programma di posta elettronica per l'invio o la lettura dei messaggi."
msgid "Internet"
msgstr "Internet"
msgid "E-mail"
msgstr "Posta elettronica"
msgid "start"
msgstr "start"
msgid "Click here to begin"
msgstr "Fare clic per iniziare."
msgid "Log Off"
msgstr "Disconnetti"
msgid ""
"Provides options for closing your programs and logging off, or for leaving "
"your programs running and switching to another user."
msgstr ""
"Fornisce opzioni per chiudere i programmi e disconnettersi o per lasciare i "
"propri programmi in esecuzione e cambiare utente."
msgid "Turn Off Computer"
msgstr "Spegni computer"
msgid ""
"Provides options for turning off or restarting your computer, or for "
"activating Stand By or Hibernate modes."
msgstr ""
"Fornisce opzioni per spegnere o riavviare il computer o per attivare le "
"modalità Standby o Sospendi."
msgid ""
"Opens the My Documents folder, where you can store letters, reports, notes, "
"and other kinds of documents."
msgstr ""
"Apre la cartella Documenti, dove è possibile archiviare lettere, rapporti, "
"note e altri tipi di documenti."
msgid "Displays recently opened documents and folders."
msgstr "Visualizza documenti e cartelle aperti di recente."
msgid ""
"Opens the My Pictures folder, where you can store digital photos, images, "
"and graphics files."
msgstr ""
"Apre la cartella Immagini, dove è possibile archiviare foto digitali, "
"immagini e file di grafica."
msgid ""
"Opens the My Music folder, where you can store music and other audio files."
msgstr ""
"Apre la cartella Musica, dove è possibile archiviare musica e altri file "
"audio."
msgid ""
"Gives access to, and information about, the disk drives, cameras, scanners, "
"and other hardware connected to your computer."
msgstr ""
"Fornisce informazioni relative a unità disco, videocamere, scanner e altro "
"hardware collegato al computer e consente di accedervi."
msgid ""
"Provides options for you to customize the appearance and functionality of "
"your computer, add or remove programs, and set up network connections and "
"user accounts."
msgstr ""
"Fornisce opzioni per personalizzare l'aspetto e la funzionalità del "
"computer, aggiungere o rimuovere programmi, impostare connessioni di rete e "
"account utente."
msgid ""
"Chooses default programs for certain activities, such as Web browsing or "
"sending e-mail, and specifies which programs are accessible from the Start "
"menu, desktop, and other locations."
msgstr ""
"Consente di scegliere i programmi predefiniti per alcune attività come "
"l'esplorazione del Web o l'invio di messaggi di posta elettronica e di "
"specificare i programmi accessibili dal menu di avvio, dal desktop e da "
"altri percorsi."
msgid "Set Program Access and Defaults"
msgstr "Impostazioni accesso ai programmi"
msgid "Connects to other computers, networks, and the Internet."
msgstr "Connette a altri computer, reti o a Internet."
msgid "Connect To"
msgstr "Connetti a"
msgid "Shows installed printers and fax printers and helps you add new ones."
msgstr ""
"Mostra le stampanti e le stampanti fax installate e consente di aggiungerne "
"di nuove."
msgid ""
"Opens a central location for Help topics, tutorials, troubleshooting, and "
"other support services."
msgstr ""
"Apre una pagina contenente argomenti della Guida in linea, esercitazioni, "
"risoluzione problemi, e altri servizi di supporto tecnico."
msgid "Help and Support"
msgstr "Guida in linea e supporto tecnico"
msgid ""
"Opens a window where you can pick search options and work with search "
"results."
msgstr ""
"Apre la finestra di selezione delle opzioni di ricerca al cui interno è "
"possibile utilizzare i risultati della ricerca."
msgid "Search"
msgstr "Cerca"
msgid "Opens a program, folder, document, or Web site."
msgstr "Apre un programma, una cartella, un documento o un sito."
msgid "Run..."
msgstr "Esegui..."

145
shell/taskband/po/ja_JP.po Normal file
View File

@@ -0,0 +1,145 @@
# Japanese translations for PACKAGE package.
# Copyright (C) 2022 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-20 21:28+0100\n"
"PO-Revision-Date: 2022-07-20 21:28+0100\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: ja\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
msgid "All Programs"
msgstr "すべてのプログラム(P)"
msgid "Opens your Internet browser."
msgstr "インターネット ブラウザを開きます。"
msgid "Opens your e-mail program so you can send or read a message."
msgstr "メッセージを送信したり読んだりできる電子メール プログラムを開きます。"
msgid "Internet"
msgstr "インターネット"
msgid "E-mail"
msgstr "電子メール"
msgid "start"
msgstr "スタート"
msgid "Click here to begin"
msgstr "このボタンから始めます"
msgid "Log Off"
msgstr "ログオフ(L)"
msgid ""
"Provides options for closing your programs and logging off, or for leaving "
"your programs running and switching to another user."
msgstr ""
"プログラムを閉じてログオフするオプションや、プログラムを実行したままで別の"
"ユーザーに切り替えるオプションを提供します。"
msgid "Turn Off Computer"
msgstr "コンピュータの終了"
msgid ""
"Provides options for turning off or restarting your computer, or for "
"activating Stand By or Hibernate modes."
msgstr ""
"コンピュータの終了や再起動のオプション、およびスタンバイ モードや休止モードの"
"オプションを提供します。"
msgid ""
"Opens the My Documents folder, where you can store letters, reports, notes, "
"and other kinds of documents."
msgstr ""
"[マイ ドキュメント] フォルダが開き、手紙、レポート、メモなどのドキュメントを"
"保管できます。"
msgid "Displays recently opened documents and folders."
msgstr "最近開いたドキュメントやフォルダを表示します。"
msgid ""
"Opens the My Pictures folder, where you can store digital photos, images, "
"and graphics files."
msgstr ""
"[マイ ピクチャ] フォルダが開き、デジタル写真、イメージ、グラフィック ファイル"
"を保管できます。"
msgid ""
"Opens the My Music folder, where you can store music and other audio files."
msgstr ""
"[マイ ミュージック] フォルダが開き、音楽ファイルやオーディオ ファイルを保管で"
"きます。"
msgid ""
"Gives access to, and information about, the disk drives, cameras, scanners, "
"and other hardware connected to your computer."
msgstr ""
"コンピュータに接続しているディスク ドライブ、カメラ、スキャナ、およびそのほか"
"のハードウェアへアクセスしたり、その情報を得たりします。"
msgid ""
"Provides options for you to customize the appearance and functionality of "
"your computer, add or remove programs, and set up network connections and "
"user accounts."
msgstr ""
"コンピュータのデザインや機能をカスタマイズしたり、プログラムの追加または削除"
"を行ったり、ネットワーク接続やユーザー アカウントを設定したりするオプションを"
"提供します。"
msgid ""
"Chooses default programs for certain activities, such as Web browsing or "
"sending e-mail, and specifies which programs are accessible from the Start "
"menu, desktop, and other locations."
msgstr ""
"Web 閲覧や電子メールの送信などの特定の操作のための既定のプログラムを選択し、"
"どのプログラムをスタート メニュー、デスクトップおよびその他の場所からアクセス"
"可能にするか指定します。"
msgid "Set Program Access and Defaults"
msgstr "プログラムのアクセスと既定の設定"
msgid "Connects to other computers, networks, and the Internet."
msgstr "ほかのコンピュータ、ネットワーク、およびインターネットへ接続します。"
msgid "Connect To"
msgstr "接続(T)"
msgid "Shows installed printers and fax printers and helps you add new ones."
msgstr ""
"インストールしているプリンタや FAX を表示します。また新しいプリンタや FAX の"
"インストールの手助けもします。"
msgid ""
"Opens a central location for Help topics, tutorials, troubleshooting, and "
"other support services."
msgstr ""
"ヘルプのトピック、チュートリアル、トラブルシューティング、サポート サービスな"
"どを集中して参照できる場所を開きます。"
msgid "Help and Support"
msgstr "ヘルプとサポート"
msgid ""
"Opens a window where you can pick search options and work with search "
"results."
msgstr "検索オプションを選んだり、検索結果を得たりできるウィンドウを開きます。"
msgid "Search"
msgstr "検索(S)"
msgid "Opens a program, folder, document, or Web site."
msgstr "プログラム、フォルダ、ドキュメントまたは Web サイトを開きます。"
msgid "Run..."
msgstr "ファイル名を指定して実行(R)..."

139
shell/taskband/po/ko_KR.po Normal file
View File

@@ -0,0 +1,139 @@
# Korean translations for PACKAGE package.
# Copyright (C) 2022 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-20 21:28+0100\n"
"PO-Revision-Date: 2022-07-20 21:28+0100\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: ko\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
msgid "All Programs"
msgstr "모든 프로그램(P)"
msgid "Opens your Internet browser."
msgstr "인터넷 브라우저를 엽니다."
msgid "Opens your e-mail program so you can send or read a message."
msgstr "메시지를 보내고 읽을 수 있도록 전자 메일 프로그램을 엽니다."
msgid "Internet"
msgstr "인터넷"
msgid "E-mail"
msgstr "전자 메일"
msgid "start"
msgstr "시작"
msgid "Click here to begin"
msgstr "시작하려면 여기를 클릭하십시오."
msgid "Log Off"
msgstr "로그오프(L)"
msgid ""
"Provides options for closing your programs and logging off, or for leaving "
"your programs running and switching to another user."
msgstr ""
"프로그램을 닫고 로그오프하는 옵션 또는 프로그램을 실행하는 상태로 다른 사용자"
"로 전환하는 옵션을 제공합니다."
msgid "Turn Off Computer"
msgstr "시스템 종료"
msgid ""
"Provides options for turning off or restarting your computer, or for "
"activating Stand By or Hibernate modes."
msgstr ""
"컴퓨터를 끄거나 다시 시작하는 옵션 또는 [대기] 또는 [최대 절전] 모드를 활성화"
"하는 옵션을 제공합니다."
msgid ""
"Opens the My Documents folder, where you can store letters, reports, notes, "
"and other kinds of documents."
msgstr ""
"편지, 보고서, 메모, 기타 문서를 저장할 수 있는 [내 문서] 폴더를 엽니다."
msgid "Displays recently opened documents and folders."
msgstr "최근에 열었던 문서 및 폴더를 표시합니다."
msgid ""
"Opens the My Pictures folder, where you can store digital photos, images, "
"and graphics files."
msgstr ""
"디지털 사진, 이미지, 그래픽 파일을 저장할 수 있는 [내 그림] 폴더를 엽니다."
msgid ""
"Opens the My Music folder, where you can store music and other audio files."
msgstr "음악 및 기타 오디오 파일을 저장할 수 있는 [내 음악] 폴더를 엽니다."
msgid ""
"Gives access to, and information about, the disk drives, cameras, scanners, "
"and other hardware connected to your computer."
msgstr ""
"디스크 드라이브, 카메라, 스캐너 및 사용자 컴퓨터에 연결된 기타 하드웨어에 관"
"한 액세스 및 정보를 줍니다."
msgid ""
"Provides options for you to customize the appearance and functionality of "
"your computer, add or remove programs, and set up network connections and "
"user accounts."
msgstr ""
"사용자 컴퓨터의 모양 및 기능을 지정하고 프로그램을 추가하거나 제거하며 네트워"
"크 연결 및 사용자 계정을 설정하는 옵션을 제공합니다."
msgid ""
"Chooses default programs for certain activities, such as Web browsing or "
"sending e-mail, and specifies which programs are accessible from the Start "
"menu, desktop, and other locations."
msgstr ""
"웹 브라우징이나 전자 메일 전송과 같은 작업에 사용할 기본 프로그램을 선택하"
"고, 시작 메뉴와 바탕 화면, 기타 위치에서 액세스할 프로그램을 지정합니다."
msgid "Set Program Access and Defaults"
msgstr "기본 프로그램 설정"
msgid "Connects to other computers, networks, and the Internet."
msgstr "다른 컴퓨터, 네트워크 및 인터넷에 연결합니다."
msgid "Connect To"
msgstr "연결 대상(T)"
msgid "Shows installed printers and fax printers and helps you add new ones."
msgstr ""
"설치되어 있는 프린터 및 팩스 프린터를 표시하며, 새로 추가하는 것을 도와줍니"
"다."
msgid ""
"Opens a central location for Help topics, tutorials, troubleshooting, and "
"other support services."
msgstr ""
"도움말 항목, 자습서, 문제 해결 및 기타 지원 서비스에 대한 정보를 한 눈에 볼 "
"수 있는 창을 엽니다."
msgid "Help and Support"
msgstr "도움말 및 지원"
msgid ""
"Opens a window where you can pick search options and work with search "
"results."
msgstr "검색 옵션을 선택하고 검색 결과로 작업할 창을 엽니다."
msgid "Search"
msgstr "검색(S)"
msgid "Opens a program, folder, document, or Web site."
msgstr "프로그램, 폴더, 문서 또는 웹 사이트를 엽니다."
msgid "Run..."
msgstr "실행(R)..."

152
shell/taskband/po/lt_LT.po Normal file
View File

@@ -0,0 +1,152 @@
# Lithuanian translations for PACKAGE package.
# Copyright (C) 2022 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-20 21:28+0100\n"
"PO-Revision-Date: 2022-07-20 21:28+0100\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: lt\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n"
"%100<10 || n%100>=20) ? 1 : 2);\n"
msgid "All Programs"
msgstr "Visos programos"
msgid "Opens your Internet browser."
msgstr "Atidaroma interneto naršyklė."
msgid "Opens your e-mail program so you can send or read a message."
msgstr ""
"Atidaroma el. pašto programa, kuria naudojantis galima siųsti arba skaityti "
"pranešimą."
msgid "Internet"
msgstr "Internetas"
msgid "E-mail"
msgstr "El. paštas"
msgid "start"
msgstr "pradėti"
msgid "Click here to begin"
msgstr "Pradėkite spustelėdami čia"
msgid "Log Off"
msgstr "Išsiregistruoti"
msgid ""
"Provides options for closing your programs and logging off, or for leaving "
"your programs running and switching to another user."
msgstr ""
"Pateikiamos programų uždarymo ir išsiregistravimo pasirinktys arba "
"pasirinktys, leidžiančios persijungiti į kitą vartotoją toliau vykdant "
"ankstesnes programas."
msgid "Turn Off Computer"
msgstr "Kompiuterio išjungimas"
msgid ""
"Provides options for turning off or restarting your computer, or for "
"activating Stand By or Hibernate modes."
msgstr ""
"Pateikiamos kompiuterio išjungimo ar pakartotinio paleidimo arba Pristabdymo "
"ar Užmigdymo režimų aktyvinimo pasirinktys."
msgid ""
"Opens the My Documents folder, where you can store letters, reports, notes, "
"and other kinds of documents."
msgstr ""
"Atidaromas aplankas Mano dokumentai, kuriame galima išsaugoti laiškus, "
"ataskaitas, raštelius ir kitokio tipo dokumentus."
msgid "Displays recently opened documents and folders."
msgstr "Rodomi šiuo metu atidaryti dokumentai ir aplankai."
msgid ""
"Opens the My Pictures folder, where you can store digital photos, images, "
"and graphics files."
msgstr ""
"Atidaromas aplankas Mano paveikslėliai, kuriame galima išsaugoti "
"skaitmenines nuotraukas, vaizdus ir grafinius failus."
msgid ""
"Opens the My Music folder, where you can store music and other audio files."
msgstr ""
"Atidaromas aplankas Mano muzika, kuriame galima išsaugoti muzikos įrašus ir "
"kitokius garso failus."
msgid ""
"Gives access to, and information about, the disk drives, cameras, scanners, "
"and other hardware connected to your computer."
msgstr ""
"Suteikiama prieiga prie diskų įrenginių, fotoaparatų, skanerių ir kitokios "
"aparatūros, prijungtos prie kompiuterio, bei suteikiama informacija apie "
"juos."
msgid ""
"Provides options for you to customize the appearance and functionality of "
"your computer, add or remove programs, and set up network connections and "
"user accounts."
msgstr ""
"Pateikiamos pasirinktys, skirtos kompiuterio išvaizdai ir veiksmingumui "
"tinkinti, programoms pridėti arba šalinti ir tinklo ryšiams bei vartotojų "
"abonentams nustatyti."
msgid ""
"Chooses default programs for certain activities, such as Web browsing or "
"sending e-mail, and specifies which programs are accessible from the Start "
"menu, desktop, and other locations."
msgstr ""
"Išrenka numatytąsias programas tam tikrai veiklai vykdyti, pvz., naršyti "
"internete ir siųsti el. paštą , ir tai, prie kurių programų galima prieiti "
"per meniu „pradėti“, darbalaukį ir kitas vietas."
msgid "Set Program Access and Defaults"
msgstr "Nustatyti prieigą prie programos ir numatytąsias reikšmes"
msgid "Connects to other computers, networks, and the Internet."
msgstr "Prisijungiama prie kitų kompiuterių, tinklų ir interneto."
msgid "Connect To"
msgstr "Prijungti prie"
msgid "Shows installed printers and fax printers and helps you add new ones."
msgstr ""
"Rodomi įdiegti spausdintuvai ir faksogramų spausdintuvai bei padedama "
"pridėti naujus."
msgid ""
"Opens a central location for Help topics, tutorials, troubleshooting, and "
"other support services."
msgstr ""
"Atidaroma centrinė žinyno temų, vadovėlių, trikčių šalinimo ir kitų "
"palaikymo paslaugų vieta."
msgid "Help and Support"
msgstr "Žinynas ir palaikymas"
msgid ""
"Opens a window where you can pick search options and work with search "
"results."
msgstr ""
"Atidaromas langas, kuriame galima išrinkti ieškos pasirinktis ir dirbti su "
"ieškos rezultatais."
msgid "Search"
msgstr "Ieška"
msgid "Opens a program, folder, document, or Web site."
msgstr "Atidaroma programa, aplankas, dokumentas ar svetainė."
msgid "Run..."
msgstr "Vykdyti..."

145
shell/taskband/po/lv_LV.po Normal file
View File

@@ -0,0 +1,145 @@
# Latvian translations for PACKAGE package.
# Copyright (C) 2022 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-20 21:28+0100\n"
"PO-Revision-Date: 2022-07-20 21:28+0100\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: lv\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : "
"2);\n"
msgid "All Programs"
msgstr "Visas programmas"
msgid "Opens your Internet browser."
msgstr "Atver interneta pārlūkprogrammu."
msgid "Opens your e-mail program so you can send or read a message."
msgstr "Atver e-pasta programmu, lai varētu nosūtīt vai lasīt ziņojumu."
msgid "Internet"
msgstr "Internets"
msgid "E-mail"
msgstr "E-pasts"
msgid "start"
msgstr "Sākt"
msgid "Click here to begin"
msgstr "Noklikšķiniet šeit, lai sāktu"
msgid "Log Off"
msgstr "Atteikties"
msgid ""
"Provides options for closing your programs and logging off, or for leaving "
"your programs running and switching to another user."
msgstr ""
"Nodrošina opcijas, kas ļauj aizvērt programmas un atteikties vai atstāt "
"programmas darbojamies un pārslēgties uz citu lietotāju."
msgid "Turn Off Computer"
msgstr "Datora izslēgšana"
msgid ""
"Provides options for turning off or restarting your computer, or for "
"activating Stand By or Hibernate modes."
msgstr ""
"Nodrošina opcijas, kas ļauj izslēgt vai restartēt datoru vai aktivizēt "
"gaidstāves vai hibernācijas režīmus."
msgid ""
"Opens the My Documents folder, where you can store letters, reports, notes, "
"and other kinds of documents."
msgstr ""
"Atver mapi Mani dokumenti, kurā var glabāt vēstules, atskaites, piezīmes un "
"cita veida dokumentus."
msgid "Displays recently opened documents and folders."
msgstr "Parāda nesen atvērtos dokumentus un mapes."
msgid ""
"Opens the My Pictures folder, where you can store digital photos, images, "
"and graphics files."
msgstr ""
"Atver mapi Mani attēli, kurā var glabāt ciparu fotogrāfijas, attēlus un "
"grafikas failus."
msgid ""
"Opens the My Music folder, where you can store music and other audio files."
msgstr "Atver mapi Mana mūzika, kurā var glabāt mūziku un citus audio failus."
msgid ""
"Gives access to, and information about, the disk drives, cameras, scanners, "
"and other hardware connected to your computer."
msgstr ""
"Ļauj piekļūt un sniedz informāciju par diskdziņiem, fotokamerām, skeneriem "
"un citu datoram pievienoto aparatūru."
msgid ""
"Provides options for you to customize the appearance and functionality of "
"your computer, add or remove programs, and set up network connections and "
"user accounts."
msgstr ""
"Nodrošina opcijas, kas ļauj pielāgot datora izskatu un funkcionalitāti, "
"pievienot vai noņemt programmas un iestatīt tīkla savienojumus un lietotāju "
"kontus."
msgid ""
"Chooses default programs for certain activities, such as Web browsing or "
"sending e-mail, and specifies which programs are accessible from the Start "
"menu, desktop, and other locations."
msgstr ""
"Izvēlas noklusējuma programmas noteiktām darbībām, piemēram, Web "
"pārlūkošanai vai e-pasta sūtīšanai, kā arī norāda, kurām programmām var "
"piekļūt no izvēlnes Sākt (Start), darbvirsmas un citām vietām."
msgid "Set Program Access and Defaults"
msgstr "Programmas piekļuves un noklusējuma rekvizītu iestatīšana"
msgid "Connects to other computers, networks, and the Internet."
msgstr "Izveido savienojumu ar citiem datoriem, tīkliem un internetu."
msgid "Connect To"
msgstr "Izveidot savienojumu ar"
msgid "Shows installed printers and fax printers and helps you add new ones."
msgstr ""
"Parāda instalētos printerus un faksa printerus un palīdz pievienot jaunus."
msgid ""
"Opens a central location for Help topics, tutorials, troubleshooting, and "
"other support services."
msgstr ""
"Atver palīdzības tēmu, apmācību, problēmu novēršanas un citu atbalsta "
"pakalpojumu centrālo atrašanās vietu."
msgid "Help and Support"
msgstr "Palīdzība un atbalsts"
msgid ""
"Opens a window where you can pick search options and work with search "
"results."
msgstr ""
"Atver logu, kurā var izvēlēties meklēšanas opcijas un strādāt ar meklēšanas "
"rezultātiem."
msgid "Search"
msgstr "Meklēt"
msgid "Opens a program, folder, document, or Web site."
msgstr "Atver programmu, mapi, dokumentu vai Web vietu."
msgid "Run..."
msgstr "Izpildīt..."

145
shell/taskband/po/nb_NO.po Normal file
View File

@@ -0,0 +1,145 @@
# Norwegian Bokmal translations for PACKAGE package.
# Copyright (C) 2022 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-20 21:28+0100\n"
"PO-Revision-Date: 2022-07-20 21:28+0100\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: nb\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "All Programs"
msgstr "Alle programmer"
msgid "Opens your Internet browser."
msgstr "Åpner Internett-leseren."
msgid "Opens your e-mail program so you can send or read a message."
msgstr "Åpner e-postprogrammet, slik at du kan sende eller lese en melding."
msgid "Internet"
msgstr "Internett"
msgid "E-mail"
msgstr "E-post"
msgid "start"
msgstr "Start"
msgid "Click here to begin"
msgstr "Klikk her når du vil begynne."
msgid "Log Off"
msgstr "Logg av"
msgid ""
"Provides options for closing your programs and logging off, or for leaving "
"your programs running and switching to another user."
msgstr ""
"Gir deg valget mellom å lukke programmer og logge av, eller la programmene "
"dine kjøre og bytte til en annen bruker."
msgid "Turn Off Computer"
msgstr "Slå av datamaskinen"
msgid ""
"Provides options for turning off or restarting your computer, or for "
"activating Stand By or Hibernate modes."
msgstr ""
"Gir deg valget mellom å slå av, starte datamaskinen på nytt eller aktivere "
"vente- eller dvalemodus."
msgid ""
"Opens the My Documents folder, where you can store letters, reports, notes, "
"and other kinds of documents."
msgstr ""
"Åpner mappen Mine dokumenter, hvor du kan lagre brev, rapporter og andre "
"typer dokumenter."
msgid "Displays recently opened documents and folders."
msgstr "Viser nylig åpnede dokumenter og mapper."
msgid ""
"Opens the My Pictures folder, where you can store digital photos, images, "
"and graphics files."
msgstr ""
"Åpner mappen Mine bilder, hvor du kan lagre digitale fotografier, bilder og "
"grafikkfiler."
msgid ""
"Opens the My Music folder, where you can store music and other audio files."
msgstr "Åpner mappen Min musikk, hvor du kan lagre musikk og andre lydfiler."
msgid ""
"Gives access to, and information about, the disk drives, cameras, scanners, "
"and other hardware connected to your computer."
msgstr ""
"Gir tilgang til og informasjon om diskstasjoner, kamera, skannere og annen "
"maskinvare som er koblet til datamaskinen."
msgid ""
"Provides options for you to customize the appearance and functionality of "
"your computer, add or remove programs, and set up network connections and "
"user accounts."
msgstr ""
"Gir deg alternativer for å tilpasse utseendet og funksjonaliteten til "
"datamaskinen, legge til eller fjerne programmer, og sette opp "
"nettverkstilkoblinger og brukerkontoer."
msgid ""
"Chooses default programs for certain activities, such as Web browsing or "
"sending e-mail, and specifies which programs are accessible from the Start "
"menu, desktop, and other locations."
msgstr ""
"Velger standardprogrammer for enkelte aktiviteter som for eksempel weblesing "
"eller sending av e-post, og angir hvilke programmer som er tilgjengelige fra "
"Start-menyen, skrivebordet og andre steder."
msgid "Set Program Access and Defaults"
msgstr "Angi programtilgang og standardprogrammer"
msgid "Connects to other computers, networks, and the Internet."
msgstr "Kobler til andre datamaskiner, nettverk og Internett."
msgid "Connect To"
msgstr "Koble til"
msgid "Shows installed printers and fax printers and helps you add new ones."
msgstr ""
"Viser installerte skrivere og faksskrivere, og hjelper deg med å legge til "
"nye."
msgid ""
"Opens a central location for Help topics, tutorials, troubleshooting, and "
"other support services."
msgstr ""
"Åpner en sentral plassering for hjelpeemner, opplæring, feilsøking og andre "
"støttetjenester."
msgid "Help and Support"
msgstr "Hjelp og støtte"
msgid ""
"Opens a window where you can pick search options and work with search "
"results."
msgstr ""
"Åpner et vindu hvor du kan velge søkealternativer og arbeide med "
"søkeresultater."
msgid "Search"
msgstr "Søk"
msgid "Opens a program, folder, document, or Web site."
msgstr "Åpner et program, en mappe, et dokument eller et Web-område."
msgid "Run..."
msgstr "Kjør..."

157
shell/taskband/po/nl_NL.po Normal file
View File

@@ -0,0 +1,157 @@
# Dutch translations for PACKAGE package.
# Copyright (C) 2022 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-20 21:28+0100\n"
"PO-Revision-Date: 2022-07-20 21:28+0100\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: nl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "All Programs"
msgstr "Alle programma's"
msgid "Opens your Internet browser."
msgstr "Hiermee wordt de browser gestart, zodat u op het Internet kunt surfen"
msgid "Opens your e-mail program so you can send or read a message."
msgstr ""
"Hiermee wordt het e-mailprogramma geopend, zodat u berichten kunt verzenden "
"en ontvangen"
msgid "Internet"
msgstr "Internet"
msgid "E-mail"
msgstr "E-mail"
msgid "start"
msgstr "start"
msgid "Click here to begin"
msgstr "Klik hier om te beginnen"
msgid "Log Off"
msgstr "Afmelden"
msgid ""
"Provides options for closing your programs and logging off, or for leaving "
"your programs running and switching to another user."
msgstr ""
"Hiermee worden opties weergegeven waarmee u programma's kunt sluiten en u "
"zich kunt afmelden, of waarmee u programma's geactiveerd kunt laten en u "
"zich als andere gebruiker kunt aanmelden"
msgid "Turn Off Computer"
msgstr "Computer uitschakelen"
msgid ""
"Provides options for turning off or restarting your computer, or for "
"activating Stand By or Hibernate modes."
msgstr ""
"Hiermee worden opties weergegeven waarmee u de computer kunt uitschakelen of "
"opnieuw opstarten, of waarmee u de computer naar stand-by of de slaapstand "
"kunt laten overschakelen"
msgid ""
"Opens the My Documents folder, where you can store letters, reports, notes, "
"and other kinds of documents."
msgstr ""
"Hiermee wordt de map Mijn documenten geopend, waarin u brieven, rapporten, "
"spreadsheets en andere documenten kunt opslaan"
msgid "Displays recently opened documents and folders."
msgstr ""
"Hiermee wordt een lijst met onlangs geopende bestanden en mappen weergegeven"
msgid ""
"Opens the My Pictures folder, where you can store digital photos, images, "
"and graphics files."
msgstr ""
"Hiermee wordt de map Mijn afbeeldingen geopend, waarin u digitale foto's, "
"afbeeldingen, plaatjes en andere grafische bestanden kunt opslaan"
msgid ""
"Opens the My Music folder, where you can store music and other audio files."
msgstr ""
"Hiermee wordt de map Mijn muziek geopend, waarin u muziekbestanden en andere "
"geluidsbestanden kunt opslaan"
msgid ""
"Gives access to, and information about, the disk drives, cameras, scanners, "
"and other hardware connected to your computer."
msgstr ""
"Hiermee wordt de map Deze computer geopend, waarmee u toegang krijgt tot en "
"informatie kunt bekijken over de stations op deze computer en de hierop "
"aangesloten hardware, zoals printers, camera's, scanners en andere apparaten"
msgid ""
"Provides options for you to customize the appearance and functionality of "
"your computer, add or remove programs, and set up network connections and "
"user accounts."
msgstr ""
"Hiermee kunt u opties instellen waarmee u de vormgeving en functionaliteit "
"van de computer wijzigt, programma's toevoegt en verwijdert, en "
"netwerkverbindingen en gebruikersaccounts instelt"
msgid ""
"Chooses default programs for certain activities, such as Web browsing or "
"sending e-mail, and specifies which programs are accessible from the Start "
"menu, desktop, and other locations."
msgstr ""
"Hiermee kunt u standaardprogramma's voor bepaalde activiteiten kiezen, zoals "
"surfen en het verzenden van e-mail, en bepalen welke programma's via het "
"menu Start, het bureaublad en andere locaties toegankelijk zijn"
msgid "Set Program Access and Defaults"
msgstr "Programmatoegang en -instellingen"
msgid "Connects to other computers, networks, and the Internet."
msgstr ""
"Hiermee kunt u verbindingen met andere computers, netwerken en het Internet "
"maken"
msgid "Connect To"
msgstr "Verbinding maken"
msgid "Shows installed printers and fax printers and helps you add new ones."
msgstr ""
"Hiermee kunt u geïnstalleerde printers en faxprinters weergeven en nieuwe "
"printers en faxprinters toevoegen"
msgid ""
"Opens a central location for Help topics, tutorials, troubleshooting, and "
"other support services."
msgstr ""
"Hiermee krijgt u toegang tot een centrale locatie met Help-onderwerpen, "
"tips, zelfstudielessen, oplossingen voor problemen en andere ondersteunende "
"diensten"
msgid "Help and Support"
msgstr "Help en ondersteuning"
msgid ""
"Opens a window where you can pick search options and work with search "
"results."
msgstr ""
"Hiermee kunt u een pagina openen waarin u zoekopties kunt instellen en met "
"de resultaten van een zoekopdracht kunt werken"
msgid "Search"
msgstr "Zoeken"
msgid "Opens a program, folder, document, or Web site."
msgstr ""
"Hiermee kunt u een programma starten, map openen of een website bezoeken"
msgid "Run..."
msgstr "Uitvoeren..."

150
shell/taskband/po/pl_PL.po Normal file
View File

@@ -0,0 +1,150 @@
# Polish translations for PACKAGE package.
# Copyright (C) 2022 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-20 21:28+0100\n"
"PO-Revision-Date: 2022-07-20 21:28+0100\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: pl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2);\n"
msgid "All Programs"
msgstr "Wszystkie programy"
msgid "Opens your Internet browser."
msgstr "Otwiera przeglądarkę internetową."
msgid "Opens your e-mail program so you can send or read a message."
msgstr ""
"Otwiera program poczty e-mail, co umożliwia wysłanie lub odczytanie "
"wiadomości."
msgid "Internet"
msgstr "Internet"
msgid "E-mail"
msgstr "E-mail"
msgid "start"
msgstr "Start"
msgid "Click here to begin"
msgstr "Kliknij, aby rozpocząć"
msgid "Log Off"
msgstr "Wyloguj"
msgid ""
"Provides options for closing your programs and logging off, or for leaving "
"your programs running and switching to another user."
msgstr ""
"Zawiera opcje dotyczące zamykania programów i wylogowywania lub "
"pozostawiania uruchomionych programów i przełączania do innego użytkownika."
msgid "Turn Off Computer"
msgstr "Wyłączanie komputera"
msgid ""
"Provides options for turning off or restarting your computer, or for "
"activating Stand By or Hibernate modes."
msgstr ""
"Zawiera opcje dotyczące wyłączania i ponownego uruchamiania komputera oraz "
"uaktywniania trybów gotowości lub hibernacji."
msgid ""
"Opens the My Documents folder, where you can store letters, reports, notes, "
"and other kinds of documents."
msgstr ""
"Otwiera folder Moje dokumenty, w którym możesz przechowywać listy, raporty, "
"notatki i inne rodzaje dokumentów."
msgid "Displays recently opened documents and folders."
msgstr "Wyświetla ostatnio otwierane dokumenty i foldery."
msgid ""
"Opens the My Pictures folder, where you can store digital photos, images, "
"and graphics files."
msgstr ""
"Otwiera folder Moje obrazy, w którym możesz przechowywać fotografie cyfrowe, "
"obrazy i pliki graficzne."
msgid ""
"Opens the My Music folder, where you can store music and other audio files."
msgstr ""
"Otwiera folder Moja muzyka, w którym możesz przechowywać muzykę i inne pliki "
"audio."
msgid ""
"Gives access to, and information about, the disk drives, cameras, scanners, "
"and other hardware connected to your computer."
msgstr ""
"Udziela dostępu i informacji o stacjach dysków, kamerach, skanerach i innym "
"sprzęcie podłączonym do tego komputera."
msgid ""
"Provides options for you to customize the appearance and functionality of "
"your computer, add or remove programs, and set up network connections and "
"user accounts."
msgstr ""
"Zawiera opcje służące do dostosowywania wyglądu i funkcjonalności systemu, "
"dodawania lub usuwania programów i konfigurowania połączeń sieciowych i kont "
"użytkowników."
msgid ""
"Chooses default programs for certain activities, such as Web browsing or "
"sending e-mail, and specifies which programs are accessible from the Start "
"menu, desktop, and other locations."
msgstr ""
"Wybiera programy domyślne dla pewnych czynności, takich jak przeglądanie "
"sieci Web lub wysyłanie poczty e-mail i określa, które programy są dostępne "
"w menu Start, na pulpicie i w innych lokalizacjach."
msgid "Set Program Access and Defaults"
msgstr "Określ dostęp do programów i ich ustawienia domyślne"
msgid "Connects to other computers, networks, and the Internet."
msgstr "Łączy z innymi komputerami, sieciami i Internetem."
msgid "Connect To"
msgstr "Połącz z"
msgid "Shows installed printers and fax printers and helps you add new ones."
msgstr ""
"Pokazuje zainstalowane drukarki i faks-drukarki oraz pomaga w dodawaniu "
"nowych."
msgid ""
"Opens a central location for Help topics, tutorials, troubleshooting, and "
"other support services."
msgstr ""
"Otwiera centralną lokalizację dla tematów Pomocy, samouczków, narzędzi do "
"rozwiązywania problemów i innych usług pomocniczych."
msgid "Help and Support"
msgstr "Pomoc i obsługa techniczna"
msgid ""
"Opens a window where you can pick search options and work with search "
"results."
msgstr ""
"Otwiera okno, w którym można wybrać opcje wyszukiwania i pracować z jego "
"wynikami."
msgid "Search"
msgstr "Wyszukaj"
msgid "Opens a program, folder, document, or Web site."
msgstr "Otwiera program, folder, dokument lub witrynę sieci Web."
msgid "Run..."
msgstr "Uruchom..."

147
shell/taskband/po/pt_BR.po Normal file
View File

@@ -0,0 +1,147 @@
# Portuguese translations for PACKAGE package.
# Copyright (C) 2022 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-20 21:28+0100\n"
"PO-Revision-Date: 2022-07-20 21:28+0100\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
msgid "All Programs"
msgstr "Todos os programas"
msgid "Opens your Internet browser."
msgstr "Abre o navegador da Internet."
msgid "Opens your e-mail program so you can send or read a message."
msgstr "Abre o programa de email para envio e leitura de mensagens."
msgid "Internet"
msgstr "Internet"
msgid "E-mail"
msgstr "Email"
msgid "start"
msgstr "Iniciar"
msgid "Click here to begin"
msgstr "Clique aqui para começar"
msgid "Log Off"
msgstr "Fazer logoff"
msgid ""
"Provides options for closing your programs and logging off, or for leaving "
"your programs running and switching to another user."
msgstr ""
"Fornece opções para fechar programas ou fazer logoff ou para deixar os "
"programas em execução e alternar para outro usuário."
msgid "Turn Off Computer"
msgstr "Desligar o computador"
msgid ""
"Provides options for turning off or restarting your computer, or for "
"activating Stand By or Hibernate modes."
msgstr ""
"Fornece opções para desligar ou reiniciar o computador ou para ativar modos "
"de espera ou de hibernação."
msgid ""
"Opens the My Documents folder, where you can store letters, reports, notes, "
"and other kinds of documents."
msgstr ""
"Abre a pasta 'Meus documentos', onde você pode armazenar cartas, relatórios, "
"anotações e outros tipos de documentos."
msgid "Displays recently opened documents and folders."
msgstr "Exibe documentos e pastas abertos recentemente."
msgid ""
"Opens the My Pictures folder, where you can store digital photos, images, "
"and graphics files."
msgstr ""
"Abre a pasta 'Minhas imagens', onde você pode armazenar fotos digitais, "
"imagens e arquivos gráficos."
msgid ""
"Opens the My Music folder, where you can store music and other audio files."
msgstr ""
"Abre a pasta 'Minhas músicas', onde você pode armazenar músicas e outros "
"arquivos de áudio."
msgid ""
"Gives access to, and information about, the disk drives, cameras, scanners, "
"and other hardware connected to your computer."
msgstr ""
"Fornece acesso e informações sobre unidades de disco, câmeras, scanners e "
"outros itens de hardware conectados ao computador."
msgid ""
"Provides options for you to customize the appearance and functionality of "
"your computer, add or remove programs, and set up network connections and "
"user accounts."
msgstr ""
"Fornece opções para personalizar a aparência e funcionalidade do computador, "
"adicionar ou remover programas e configurar conexões de rede e contas de "
"usuário."
msgid ""
"Chooses default programs for certain activities, such as Web browsing or "
"sending e-mail, and specifies which programs are accessible from the Start "
"menu, desktop, and other locations."
msgstr ""
"Escolhe programas padrão para certas atividades, como navegação na Web ou "
"envio de email, e especifica que programas estão acessíveis no menu "
"'Iniciar', na área de trabalho e em outros locais."
msgid "Set Program Access and Defaults"
msgstr "Definir acesso e padrões do programa"
msgid "Connects to other computers, networks, and the Internet."
msgstr "Conecta este computador a outros computadores e redes e à Internet."
msgid "Connect To"
msgstr "Conectar-se"
msgid "Shows installed printers and fax printers and helps you add new ones."
msgstr ""
"Mostra impressoras e impressoras de fax instaladas e ajuda a adicionar novas "
"impressoras."
msgid ""
"Opens a central location for Help topics, tutorials, troubleshooting, and "
"other support services."
msgstr ""
"Abre um local central com tópicos da 'Ajuda', tutoriais, soluções de "
"problemas e outros serviços de suporte."
msgid "Help and Support"
msgstr "Ajuda e suporte"
msgid ""
"Opens a window where you can pick search options and work with search "
"results."
msgstr ""
"Abre uma janela onde você pode selecionar opções de pesquisa e trabalhar com "
"resultados de pesquisa."
msgid "Search"
msgstr "Pesquisar"
msgid "Opens a program, folder, document, or Web site."
msgstr "Abre um programa, uma pasta, um documento ou um site da Web."
msgid "Run..."
msgstr "Executar..."

150
shell/taskband/po/pt_PT.po Normal file
View File

@@ -0,0 +1,150 @@
# Portuguese translations for PACKAGE package.
# Copyright (C) 2022 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-20 21:28+0100\n"
"PO-Revision-Date: 2022-07-20 21:28+0100\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: pt\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "All Programs"
msgstr "Todos os programas"
msgid "Opens your Internet browser."
msgstr "Abre o browser da Internet."
msgid "Opens your e-mail program so you can send or read a message."
msgstr ""
"Abre o programa de correio electrónico para que possa enviar ou ler uma "
"mensagem."
msgid "Internet"
msgstr "Internet"
msgid "E-mail"
msgstr "Correio electrónico"
msgid "start"
msgstr "Iniciar"
msgid "Click here to begin"
msgstr "Clique aqui para iniciar"
msgid "Log Off"
msgstr "Terminar sessão"
msgid ""
"Provides options for closing your programs and logging off, or for leaving "
"your programs running and switching to another user."
msgstr ""
"Fornece opções para fechar os programas e terminar sessão ou para deixar os "
"programas em execução e mudar de utilizador."
msgid "Turn Off Computer"
msgstr "Desligar computador"
msgid ""
"Provides options for turning off or restarting your computer, or for "
"activating Stand By or Hibernate modes."
msgstr ""
"Fornece opções para desligar ou reiniciar o computador ou para activar os "
"modos 'Suspender' ou 'Hibernar'."
msgid ""
"Opens the My Documents folder, where you can store letters, reports, notes, "
"and other kinds of documents."
msgstr ""
"Abre a pasta 'Os meus documentos', onde pode armazenar cartas, relatórios, "
"notas e outros tipos de documentos."
msgid "Displays recently opened documents and folders."
msgstr "Mostra os documentos e pastas abertos recentemente."
msgid ""
"Opens the My Pictures folder, where you can store digital photos, images, "
"and graphics files."
msgstr ""
"Abre a pasta 'As minhas imagens', onde pode armazenar fotos digitais, "
"imagens e outros gráficos."
msgid ""
"Opens the My Music folder, where you can store music and other audio files."
msgstr ""
"Abre a pasta 'A minha música', onde pode armazenar música e outros ficheiros "
"de áudio."
msgid ""
"Gives access to, and information about, the disk drives, cameras, scanners, "
"and other hardware connected to your computer."
msgstr ""
"Dá acesso a, e informação acerca de, discos rígidos, câmaras, scanners e "
"outro hardware ligado ao computador."
msgid ""
"Provides options for you to customize the appearance and functionality of "
"your computer, add or remove programs, and set up network connections and "
"user accounts."
msgstr ""
"Fornece opções para que possa personalizar o aspecto e funcionalidade do "
"computador, adicionar ou remover programas e configurar ligações de rede e "
"contas de utilizadores."
msgid ""
"Chooses default programs for certain activities, such as Web browsing or "
"sending e-mail, and specifies which programs are accessible from the Start "
"menu, desktop, and other locations."
msgstr ""
"Escolhe programas predefinidos para certas actividades, tais como navegar na "
"Web ou enviar correio electrónico e especifica quais os programas que são "
"acessíveis a partir do menu 'Iniciar', 'Ambiente de trabalho' e outros "
"locais."
msgid "Set Program Access and Defaults"
msgstr "Configurar acesso a programas e predefinições"
msgid "Connects to other computers, networks, and the Internet."
msgstr "Liga a outros computadores, redes e à Internet."
msgid "Connect To"
msgstr "Ligar a"
msgid "Shows installed printers and fax printers and helps you add new ones."
msgstr ""
"Mostra as impressoras e as impressoras de fax instaladas e ajuda-o a "
"adicionar novas impressoras."
msgid ""
"Opens a central location for Help topics, tutorials, troubleshooting, and "
"other support services."
msgstr ""
"Abre uma localização central para tópicos de ajuda, tutoriais, resolução de "
"problemas e outros serviços de suporte."
msgid "Help and Support"
msgstr "Ajuda e suporte"
msgid ""
"Opens a window where you can pick search options and work with search "
"results."
msgstr ""
"Abre uma janela onde pode escolher opções de procura e trabalhar com os "
"resultados da procura."
msgid "Search"
msgstr "Procurar"
msgid "Opens a program, folder, document, or Web site."
msgstr "Abre um programa, pasta, documento ou Web site."
msgid "Run..."
msgstr "Executar..."

149
shell/taskband/po/ro_RO.po Normal file
View File

@@ -0,0 +1,149 @@
# Romanian translations for PACKAGE package.
# Copyright (C) 2022 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-20 21:28+0100\n"
"PO-Revision-Date: 2022-07-20 21:28+0100\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: ro\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < "
"20)) ? 1 : 2;\n"
msgid "All Programs"
msgstr "Toate programele"
msgid "Opens your Internet browser."
msgstr "Deschide browserul de Internet."
msgid "Opens your e-mail program so you can send or read a message."
msgstr ""
"Deschide programul de poştă electronică pentru a citi și trimite mesaje."
msgid "Internet"
msgstr "Internet"
msgid "E-mail"
msgstr "Poştă electronică"
msgid "start"
msgstr "start"
msgid "Click here to begin"
msgstr "Apăsaţi aici pentru a începe"
msgid "Log Off"
msgstr "Log Off"
msgid ""
"Provides options for closing your programs and logging off, or for leaving "
"your programs running and switching to another user."
msgstr ""
"Furnizează opţiuni pentru închiderea programelor şi ieşirea din sesiune sau "
"pentru lăsarea programelor în execuţie şi comutarea la un alt utilizator."
msgid "Turn Off Computer"
msgstr "Închidere computer"
msgid ""
"Provides options for turning off or restarting your computer, or for "
"activating Stand By or Hibernate modes."
msgstr ""
"Furnizează opţiuni pentru închiderea şi repornirea computerului sau pentru "
"activarea modurilor Stare de veghe sau Hibernare."
msgid ""
"Opens the My Documents folder, where you can store letters, reports, notes, "
"and other kinds of documents."
msgstr ""
"Deschide folderul Documentele mele, unde se pot stoca scrisori, rapoarte, "
"note şi alte tipuri de documente personale."
msgid "Displays recently opened documents and folders."
msgstr "Afişează documente şi foldere recent deschise."
msgid ""
"Opens the My Pictures folder, where you can store digital photos, images, "
"and graphics files."
msgstr ""
"Deschide folderul Imaginile mele, unde se pot stoca fotografii digitale, "
"imagini şi fişiere grafice."
msgid ""
"Opens the My Music folder, where you can store music and other audio files."
msgstr ""
"Deschide folderul Muzica mea, unde se poate stoca muzică şi alte fişiere "
"audio."
msgid ""
"Gives access to, and information about, the disk drives, cameras, scanners, "
"and other hardware connected to your computer."
msgstr ""
"Oferă informaţii şi se acordă acces la drivere de disc, camere digitale, "
"scanere şi alte tipuri de hardware conectate la computer."
msgid ""
"Provides options for you to customize the appearance and functionality of "
"your computer, add or remove programs, and set up network connections and "
"user accounts."
msgstr ""
"Furnizează opţiuni pentru particularizarea aspectului şi funcţionalităţii "
"computerului, se adaugă şi se elimină programe şi se configurează conexiuni "
"în reţea şi conturi utilizator."
msgid ""
"Chooses default programs for certain activities, such as Web browsing or "
"sending e-mail, and specifies which programs are accessible from the Start "
"menu, desktop, and other locations."
msgstr ""
"Alege programele implicite pentru anumite activităţi cum ar fi navigarea pe "
"Web sau trimiterea de mesaje electronice şi specifică programele care sunt "
"accesibile din meniul Start, din spaţiul de lucru şi din alte amplasări."
msgid "Set Program Access and Defaults"
msgstr "Setare Acces program şi implicite"
msgid "Connects to other computers, networks, and the Internet."
msgstr "Se face conexiunea la alte computere, reţele şi Internet."
msgid "Connect To"
msgstr "Conectare la"
msgid "Shows installed printers and fax printers and helps you add new ones."
msgstr ""
"Afişează imprimantele şi imprimantele fax instalate şi vă ajută să adăugaţi "
"altele noi."
msgid ""
"Opens a central location for Help topics, tutorials, troubleshooting, and "
"other support services."
msgstr ""
"Se deschide o amplasare centrală pentru subiectele de Ajutor, asistenţi de "
"instruire, depanare şi alte servicii de asistenţă."
msgid "Help and Support"
msgstr "Ajutor şi Asistenţă"
msgid ""
"Opens a window where you can pick search options and work with search "
"results."
msgstr ""
"Deschide o fereastră unde se pot selecta opţiuni de căutare şi opera cu "
"rezultatele căutării."
msgid "Search"
msgstr "Căutare"
msgid "Opens a program, folder, document, or Web site."
msgstr "Deschide un program, un folder, un document sau un site Web."
msgid "Run..."
msgstr "Executare..."

148
shell/taskband/po/ru_RU.po Normal file
View File

@@ -0,0 +1,148 @@
# Russian translations for PACKAGE package.
# Copyright (C) 2022 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-20 21:28+0100\n"
"PO-Revision-Date: 2022-07-20 21:28+0100\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
msgid "All Programs"
msgstr "Все программы"
msgid "Opens your Internet browser."
msgstr "Открытие обозревателя Интернета."
msgid "Opens your e-mail program so you can send or read a message."
msgstr ""
"Открытие программы электронной почты, позволяющей отправлять и получать "
"электронные сообщения."
msgid "Internet"
msgstr "Интернет"
msgid "E-mail"
msgstr "Электронная почта"
msgid "start"
msgstr "пуск"
msgid "Click here to begin"
msgstr "Начните работу с нажатия этой кнопки"
msgid "Log Off"
msgstr "Выход"
msgid ""
"Provides options for closing your programs and logging off, or for leaving "
"your programs running and switching to another user."
msgstr ""
"Позволяет закрыть программы и завершить сеанс, или оставить программы "
"работающими и переключиться на другого пользователя."
msgid "Turn Off Computer"
msgstr "Выключение компьютера"
msgid ""
"Provides options for turning off or restarting your computer, or for "
"activating Stand By or Hibernate modes."
msgstr ""
"Позволяет выключить компьютер или перезагрузить его, или перейти в ждущий "
"или спящий режим."
msgid ""
"Opens the My Documents folder, where you can store letters, reports, notes, "
"and other kinds of documents."
msgstr ""
"Открывает папку \"Мои документы\", где можно хранить письма, отчеты, заметки "
"и иные типы документов."
msgid "Displays recently opened documents and folders."
msgstr "Отображение недавно использовавшихся файлов и папок."
msgid ""
"Opens the My Pictures folder, where you can store digital photos, images, "
"and graphics files."
msgstr ""
"Отрывает папку \"Мои рисунки\", где можно хранить цифровые фотографии, "
"изображения и иные графические файлы."
msgid ""
"Opens the My Music folder, where you can store music and other audio files."
msgstr ""
"Открывает папку \"Моя музыка\", где можно хранить музыкальные или иные "
"звуковые файлы."
msgid ""
"Gives access to, and information about, the disk drives, cameras, scanners, "
"and other hardware connected to your computer."
msgstr ""
"Доступ и информация о дисках и других устройствах, подключенных к компьютеру."
msgid ""
"Provides options for you to customize the appearance and functionality of "
"your computer, add or remove programs, and set up network connections and "
"user accounts."
msgstr ""
"Позволяет настраивать вид и функциональные возможности компьютера, "
"устанавливать и удалять программы, настраивать сетевые подключения и "
"учетные записи пользователей."
msgid ""
"Chooses default programs for certain activities, such as Web browsing or "
"sending e-mail, and specifies which programs are accessible from the Start "
"menu, desktop, and other locations."
msgstr ""
"Выбор программ, используемых по умолчанию, для разных операций, например, "
"для обзора Интернета или отправки почты, и разрешение доступа к ним из "
"главного меню, с рабочего стола и из других мест."
msgid "Set Program Access and Defaults"
msgstr "Выбор программ по умолчанию"
msgid "Connects to other computers, networks, and the Internet."
msgstr "Создание подключений к другим компьютерам, сетям или Интернету."
msgid "Connect To"
msgstr "Подключение"
msgid "Shows installed printers and fax printers and helps you add new ones."
msgstr ""
"Отображает уже установленные принтеры и факсы и позволяет добавить новые."
msgid ""
"Opens a central location for Help topics, tutorials, troubleshooting, and "
"other support services."
msgstr ""
"Открытие централизованного хранилища справочных файлов, диагностики и "
"устранения неполадок, других служб технической поддержки."
msgid "Help and Support"
msgstr "Справка и поддержка"
msgid ""
"Opens a window where you can pick search options and work with search "
"results."
msgstr ""
"Открытие окна для выбора параметров поиска и работы с результатами "
"выполненного поиска."
msgid "Search"
msgstr "Поиск"
msgid "Opens a program, folder, document, or Web site."
msgstr "Открытие программы, папки, документа или веб-узла."
msgid "Run..."
msgstr "Выполнить..."

146
shell/taskband/po/sk_SK.po Normal file
View File

@@ -0,0 +1,146 @@
# Slovak translations for PACKAGE package.
# Copyright (C) 2022 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-20 21:28+0100\n"
"PO-Revision-Date: 2022-07-20 21:28+0100\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: sk\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
msgid "All Programs"
msgstr "Všetky programy"
msgid "Opens your Internet browser."
msgstr "Otvorí internetový prehľadávač."
msgid "Opens your e-mail program so you can send or read a message."
msgstr "Otvorí e-mailový program, ktorý umožňuje odosielanie a čítanie správ."
msgid "Internet"
msgstr "Internet"
msgid "E-mail"
msgstr "E-mail"
msgid "start"
msgstr "štart"
msgid "Click here to begin"
msgstr "Začnite kliknutím sem."
msgid "Log Off"
msgstr "Odhlásiť"
msgid ""
"Provides options for closing your programs and logging off, or for leaving "
"your programs running and switching to another user."
msgstr ""
"Poskytne možnosti na ukončenie programov a odhlásenie alebo prepnutie "
"používateľa bez ukončenia programov."
msgid "Turn Off Computer"
msgstr "Vypnutie počítača"
msgid ""
"Provides options for turning off or restarting your computer, or for "
"activating Stand By or Hibernate modes."
msgstr ""
"Poskytne možnosti na vypnutie alebo reštartovanie počítača a aktivovanie "
"úsporného režimu alebo režimu dlhodobého spánku."
msgid ""
"Opens the My Documents folder, where you can store letters, reports, notes, "
"and other kinds of documents."
msgstr ""
"Otvorí priečinok Moje dokumenty. Do tohto priečinka môžete ukladať listy, "
"správy, poznámky a ďalšie dokumenty."
msgid "Displays recently opened documents and folders."
msgstr "Zobrazí naposledy otvorené dokumenty a priečinky."
msgid ""
"Opens the My Pictures folder, where you can store digital photos, images, "
"and graphics files."
msgstr ""
"Otvorí priečinok Obrázky. Do tohto priečinka môžete ukladať digitálne "
"fotografie, obrázky a grafické súbory."
msgid ""
"Opens the My Music folder, where you can store music and other audio files."
msgstr ""
"Otvorí priečinok Hudba. Do tohto priečinka môžete ukladať hudbu a ďalšie "
"zvukové súbory."
msgid ""
"Gives access to, and information about, the disk drives, cameras, scanners, "
"and other hardware connected to your computer."
msgstr ""
"Poskytne prístup a informácie o diskových jednotkách, fotoaparátoch, "
"skeneroch a ďalšom hardvéri, ktorý je pripojený k počítaču."
msgid ""
"Provides options for you to customize the appearance and functionality of "
"your computer, add or remove programs, and set up network connections and "
"user accounts."
msgstr ""
"Umožní prispôsobiť vzhľad a funkčnosť počítača, pridať alebo odstrániť "
"programy a nastaviť sieťové pripojenia a používateľské kontá."
msgid ""
"Chooses default programs for certain activities, such as Web browsing or "
"sending e-mail, and specifies which programs are accessible from the Start "
"menu, desktop, and other locations."
msgstr ""
"Zvolí predvolené programy pre konkrétne činnosti (napr. prehľadávanie webu "
"alebo odosielanie e-mailov) a určí, ktoré programy sú prístupné z ponuky "
"Štart, pracovnej plochy a ďalších miest."
msgid "Set Program Access and Defaults"
msgstr "Prístup k programom a predvolené programy"
msgid "Connects to other computers, networks, and the Internet."
msgstr "Vytvorí pripojenie na iné počítače, siete a Internet."
msgid "Connect To"
msgstr "Pripojenie"
msgid "Shows installed printers and fax printers and helps you add new ones."
msgstr ""
"Zobrazí nainštalované tlačiarne, faxové tlačiarne a poskytne pomoc pri "
"pridávaní nových."
msgid ""
"Opens a central location for Help topics, tutorials, troubleshooting, and "
"other support services."
msgstr ""
"Otvorí hlavné umiestnenie tém pomocníka, kurzov, riešenia problémov a "
"ostatných služieb technickej podpory."
msgid "Help and Support"
msgstr "Pomoc a technická podpora"
msgid ""
"Opens a window where you can pick search options and work with search "
"results."
msgstr ""
"Otvorí okno, v ktorom môžete vybrať možnosti hľadania a pracovať s "
"výsledkami hľadania."
msgid "Search"
msgstr "Hľadať"
msgid "Opens a program, folder, document, or Web site."
msgstr "Spustí program alebo otvorí priečinok, dokument alebo webovú lokalitu."
msgid "Run..."
msgstr "Spustiť..."

148
shell/taskband/po/sl_SI.po Normal file
View File

@@ -0,0 +1,148 @@
# Slovenian translations for PACKAGE package.
# Copyright (C) 2022 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-20 21:28+0100\n"
"PO-Revision-Date: 2022-07-20 21:28+0100\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: sl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n"
"%100==4 ? 2 : 3);\n"
msgid "All Programs"
msgstr "Vsi programi"
msgid "Opens your Internet browser."
msgstr "Odpre vaš internetni brskalnik."
msgid "Opens your e-mail program so you can send or read a message."
msgstr ""
"Odpre vaš e-poštni program, tako da lahko pošljete ali preberete sporočilo."
msgid "Internet"
msgstr "Internet"
msgid "E-mail"
msgstr "E-pošta"
msgid "start"
msgstr "start"
msgid "Click here to begin"
msgstr "Če želite začeti, kliknite tu"
msgid "Log Off"
msgstr "Odjavi"
msgid ""
"Provides options for closing your programs and logging off, or for leaving "
"your programs running and switching to another user."
msgstr ""
"Na voljo vam da možnosti, da zaprete programe in se odjavite ali da programe "
"izvajate dalje in preklapljate med uporabniki."
msgid "Turn Off Computer"
msgstr "Izklapljanje računalnika"
msgid ""
"Provides options for turning off or restarting your computer, or for "
"activating Stand By or Hibernate modes."
msgstr ""
"Na voljo vam da možnosti, da računalnik izklopite ali ponovno zaženete oz. "
"da aktivirate stanje pripravljenosti oziroma stanje mirovanja."
msgid ""
"Opens the My Documents folder, where you can store letters, reports, notes, "
"and other kinds of documents."
msgstr ""
"Odpre mapo »Moji dokumenti«, kamor lahko shranjujete pisma, poročila, opombe "
"in druge dokumente."
msgid "Displays recently opened documents and folders."
msgstr "Prikaže nedavno odprte dokumente in mape."
msgid ""
"Opens the My Pictures folder, where you can store digital photos, images, "
"and graphics files."
msgstr ""
"Odpre mapo »Moje slike«, kamor lahko shranjujete digitalne fotografije, "
"slike in grafične datoteke."
msgid ""
"Opens the My Music folder, where you can store music and other audio files."
msgstr ""
"Odpre mapo »Moja glasba«, kamor lahko shranjujete glasbene in druge avdio "
"datoteke."
msgid ""
"Gives access to, and information about, the disk drives, cameras, scanners, "
"and other hardware connected to your computer."
msgstr ""
"Vašemu računalniku dodeli dostop do diskovnih pogonov, digitalnih "
"fotoaparatov, skenerjev in druge strojne opreme ter poda informacije o njih."
msgid ""
"Provides options for you to customize the appearance and functionality of "
"your computer, add or remove programs, and set up network connections and "
"user accounts."
msgstr ""
"Omogoča vam, da prilagodite videz in funkcionalnost vašega računalnika, "
"dodajate ali odstranjujete programe in pripravite omrežne povezave ter "
"uporabniške račune."
msgid ""
"Chooses default programs for certain activities, such as Web browsing or "
"sending e-mail, and specifies which programs are accessible from the Start "
"menu, desktop, and other locations."
msgstr ""
"Izbere privzete programe za določene dejavnosti, kot je brskanje po spletu "
"ali pošiljanje e-pošte, in določi, kateri programi so dosegljivi v meniju "
"Start, na namizju in drugih mestih."
msgid "Set Program Access and Defaults"
msgstr "Nastavi dostop do programov in privzete nastavitve"
msgid "Connects to other computers, networks, and the Internet."
msgstr "Vzpostavi povezavo z drugimi računalniki, omrežji in z internetom."
msgid "Connect To"
msgstr "Vzpostavi povezavo z"
msgid "Shows installed printers and fax printers and helps you add new ones."
msgstr ""
"Prikaže nameščene tiskalnike in kombinirane naprave ter vam pomaga dodajati "
"nove."
msgid ""
"Opens a central location for Help topics, tutorials, troubleshooting, and "
"other support services."
msgstr ""
"Odpre osrednje mesto za teme pomoči, vadnice, odpravljanje težav in druge "
"storitve za podporo."
msgid "Help and Support"
msgstr "Pomoč in podpora"
msgid ""
"Opens a window where you can pick search options and work with search "
"results."
msgstr ""
"Odpre okno, kjer lahko izberete možnosti iskanja in delate z rezultati."
msgid "Search"
msgstr "Iskanje"
msgid "Opens a program, folder, document, or Web site."
msgstr "Odpre program, mapo, dokument ali spletno mesto."
msgid "Run..."
msgstr "Zaženi ..."

144
shell/taskband/po/sv_SE.po Normal file
View File

@@ -0,0 +1,144 @@
# Swedish translations for PACKAGE package.
# Copyright (C) 2022 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-20 21:28+0100\n"
"PO-Revision-Date: 2022-07-20 21:28+0100\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: sv\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "All Programs"
msgstr "Alla program"
msgid "Opens your Internet browser."
msgstr "Öppnar din webbläsare."
msgid "Opens your e-mail program so you can send or read a message."
msgstr ""
"Öppnar ditt e-postprogram så att du kan skicka och läsa e-postmeddelanden."
msgid "Internet"
msgstr "Internet"
msgid "E-mail"
msgstr "E-post"
msgid "start"
msgstr "Start"
msgid "Click here to begin"
msgstr "Klicka här om du vill starta"
msgid "Log Off"
msgstr "Logga ut"
msgid ""
"Provides options for closing your programs and logging off, or for leaving "
"your programs running and switching to another user."
msgstr ""
"Alternativ för att stänga av program och logga ut eller för att låta program "
"köras medan du byter till en annan användare."
msgid "Turn Off Computer"
msgstr "Stäng av datorn"
msgid ""
"Provides options for turning off or restarting your computer, or for "
"activating Stand By or Hibernate modes."
msgstr ""
"Alternativ för avstängning, omstart och för aktivering av vilo- och "
"vänteläge."
msgid ""
"Opens the My Documents folder, where you can store letters, reports, notes, "
"and other kinds of documents."
msgstr ""
"Öppnar mappen Mina dokument där du kan lagra brev, rapporter, anteckningar "
"och andra dokument."
msgid "Displays recently opened documents and folders."
msgstr "Visar nyligen öppnade dokument och mappar."
msgid ""
"Opens the My Pictures folder, where you can store digital photos, images, "
"and graphics files."
msgstr ""
"Öppnar mappen Mina bilder där du kan lagra digitala bilder, foton och "
"grafikfiler."
msgid ""
"Opens the My Music folder, where you can store music and other audio files."
msgstr "Öppnar mappen Min musik där du kan lagra musik och andra ljudfiler."
msgid ""
"Gives access to, and information about, the disk drives, cameras, scanners, "
"and other hardware connected to your computer."
msgstr ""
"Ger tillgång till och information om diskenheter, kameror, skannrar och "
"annan maskinvara som är ansluten till datorn."
msgid ""
"Provides options for you to customize the appearance and functionality of "
"your computer, add or remove programs, and set up network connections and "
"user accounts."
msgstr ""
"Ger dig möjlighet att anpassa datorns utseende och funktioner, lägga till "
"och ta bort program samt skapa nätverksanslutningar och användarkonton."
msgid ""
"Chooses default programs for certain activities, such as Web browsing or "
"sending e-mail, and specifies which programs are accessible from the Start "
"menu, desktop, and other locations."
msgstr ""
"Väljer standardprogram för vissa aktiviteter såsom webbläsning eller e-post, "
"och anger vilka program som är tillgängliga från Start-menyn, skrivbordet "
"och andra platser."
msgid "Set Program Access and Defaults"
msgstr "Ange programåtkomst och standardprogram"
msgid "Connects to other computers, networks, and the Internet."
msgstr "Ansluter till andra datorer, nätverk och till Internet."
msgid "Connect To"
msgstr "Anslut till"
msgid "Shows installed printers and fax printers and helps you add new ones."
msgstr ""
"Visar de skrivare och faxskrivare som är installerade och hjälper dig lägga "
"till nya."
msgid ""
"Opens a central location for Help topics, tutorials, troubleshooting, and "
"other support services."
msgstr ""
"Öppnar en central plats för hjälpavsnitt, självstudier, felsökning och andra "
"supporttjänster."
msgid "Help and Support"
msgstr "Hjälp och support"
msgid ""
"Opens a window where you can pick search options and work with search "
"results."
msgstr ""
"Öppnar ett fönster där du kan välja sökalternativ och arbeta med sökresultat."
msgid "Search"
msgstr "Sök"
msgid "Opens a program, folder, document, or Web site."
msgstr "Öppnar ett program, en mapp, ett dokument eller en webbplats."
msgid "Run..."
msgstr "Kör..."

135
shell/taskband/po/th_TH.po Normal file
View File

@@ -0,0 +1,135 @@
# Thai translations for PACKAGE package.
# Copyright (C) 2022 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-20 21:28+0100\n"
"PO-Revision-Date: 2022-07-20 21:28+0100\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: th\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "All Programs"
msgstr "โปรแกรมทั้งหมด"
msgid "Opens your Internet browser."
msgstr "เปิดอินเทอร์เน็ตเบราว์เซอร์ของคุณ"
msgid "Opens your e-mail program so you can send or read a message."
msgstr "เปิดโปรแกรมอีเมลของคุณเพื่อให้คุณสามารถส่งหรืออ่านข้อความได้"
msgid "Internet"
msgstr "อินเทอร์เน็ต"
msgid "E-mail"
msgstr "อีเมล"
msgid "start"
msgstr "เริ่ม"
msgid "Click here to begin"
msgstr "คลิกที่นี่เพื่อเริ่มต้น"
msgid "Log Off"
msgstr "ออกจากระบบ"
msgid ""
"Provides options for closing your programs and logging off, or for leaving "
"your programs running and switching to another user."
msgstr ""
"ให้ตัวเลือกสำหรับปิดโปรแกรมของคุณและออกจากระบบ "
"หรือปล่อยให้โปรแกรมของคุณทำงานอยู่และสลับไปยังผู้ใช้อื่น"
msgid "Turn Off Computer"
msgstr "ปิดสวิตช์เครื่องคอมพิวเตอร์"
msgid ""
"Provides options for turning off or restarting your computer, or for "
"activating Stand By or Hibernate modes."
msgstr ""
"ให้ตัวเลือกสำหรับการปิดหรือเริ่มการทำงานของคอมพิวเตอร์ใหม่ หรือเรียกใช้โหมด 'สแตนด์บาย' "
"หรือโหมด 'ไฮเบอร์เนต'"
msgid ""
"Opens the My Documents folder, where you can store letters, reports, notes, "
"and other kinds of documents."
msgstr ""
"เปิดโฟลเดอร์ 'เอกสารของฉัน' ซึ่งคุณสามารถเก็บจดหมาย รายงาน บันทึกย่อ "
"และเอกสารประเภทอื่นได้"
msgid "Displays recently opened documents and folders."
msgstr "แสดงเอกสารและโฟลเดอร์ที่เปิดล่าสุด"
msgid ""
"Opens the My Pictures folder, where you can store digital photos, images, "
"and graphics files."
msgstr "เปิดโฟลเดอร์ 'รูปภาพของฉัน' ซึ่งคุณสามารถเก็บแฟ้มรูปถ่ายดิจิทัล แฟ้มรูป และแฟ้มกราฟิกได้"
msgid ""
"Opens the My Music folder, where you can store music and other audio files."
msgstr "เปิดโฟลเดอร์ 'เพลงของฉัน' ซึ่งคุณสามารถเก็บแฟ้มดนตรี และแฟ้มเสียงประเภทอื่นได้"
msgid ""
"Gives access to, and information about, the disk drives, cameras, scanners, "
"and other hardware connected to your computer."
msgstr ""
"ให้เข้าถึง และให้ข้อมูลเกี่ยวกับไดรฟ์ กล้อง สแกนเนอร์ และฮาร์ดแวร์อื่นที่เชื่อมต่อกับคอมพิวเตอร์ของคุณ"
msgid ""
"Provides options for you to customize the appearance and functionality of "
"your computer, add or remove programs, and set up network connections and "
"user accounts."
msgstr ""
"ให้ตัวเลือกเพื่อให้คุณสามารถกำหนดลักษณะที่ปรากฏและหน้าที่ของคอมพิวเตอร์ของคุณเอง "
"เพิ่มหรือเอาโปรแกรมออก และตั้งค่าการเชื่อมต่อเครือข่ายและบัญชีผู้ใช้"
msgid ""
"Chooses default programs for certain activities, such as Web browsing or "
"sending e-mail, and specifies which programs are accessible from the Start "
"menu, desktop, and other locations."
msgstr ""
"เลือกโปรแกรมเริ่มต้นสำหรับบางกิจกรรม เช่น การเบราว์เว็บหรือการส่งอีเมล "
"และระบุโปรแกรมที่จะให้เข้าถึงใด้จากเมนู 'เริ่ม' เดสก์ท็อป หรือตำแหน่งอื่นๆ"
msgid "Set Program Access and Defaults"
msgstr "ตั้งค่าการเข้าถึงและค่าเริ่มต้นของโปรแกรม"
msgid "Connects to other computers, networks, and the Internet."
msgstr "เชื่อมต่อไปยังเครื่องคอมพิวเตอร์ เครือข่าย และอินเทอร์เน็ตอื่น"
msgid "Connect To"
msgstr "เชื่อมต่อไปยัง"
msgid "Shows installed printers and fax printers and helps you add new ones."
msgstr ""
"แสดงเครื่องพิมพ์และเครื่องพิมพ์โทรสารที่ได้รับการติดตั้ง "
"และช่วยคุณเพิ่มเครื่องพิมพ์หรือเครื่องพิมพ์โทรสารใหม่"
msgid ""
"Opens a central location for Help topics, tutorials, troubleshooting, and "
"other support services."
msgstr "เปิดแหล่งข้อมูลสำหรับหัวข้อวิธีใช้ บทช่วยสอน การแก้ไขปัญหา และบริการช่วยเหลืออื่นๆ"
msgid "Help and Support"
msgstr "บริการช่วยเหลือและวิธีใช้"
msgid ""
"Opens a window where you can pick search options and work with search "
"results."
msgstr "เปิดหน้าต่างที่คุณสามารถเลือกตัวเลือกการค้นหาและทำงานกับผลลัพท์ของการค้นหาได้"
msgid "Search"
msgstr "ค้นหา"
msgid "Opens a program, folder, document, or Web site."
msgstr "เปิดโปรแกรม โฟลเดอร์ เอกสาร หรือเว็บไซต์"
msgid "Run..."
msgstr "เรียกใช้..."

144
shell/taskband/po/tr_TR.po Normal file
View File

@@ -0,0 +1,144 @@
# Turkish translations for PACKAGE package.
# Copyright (C) 2022 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-20 21:28+0100\n"
"PO-Revision-Date: 2022-07-20 21:28+0100\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: tr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "All Programs"
msgstr "Tüm Programlar"
msgid "Opens your Internet browser."
msgstr "Internet tarayıcınızı açar."
msgid "Opens your e-mail program so you can send or read a message."
msgstr "İleti okuyabilmeniz ve gönderebilmeniz için e-posta programınızı açar."
msgid "Internet"
msgstr "Internet"
msgid "E-mail"
msgstr "E-posta"
msgid "start"
msgstr "Başlat"
msgid "Click here to begin"
msgstr "Başlamak için burayı tıklatın"
msgid "Log Off"
msgstr "Oturumu Kapat"
msgid ""
"Provides options for closing your programs and logging off, or for leaving "
"your programs running and switching to another user."
msgstr ""
"Programlarınızı kapatıp oturumu kapatmak veya programlarıık bırakıp başka "
"bir kullanıcıya geçiş yapmak için seçenekler sağlar."
msgid "Turn Off Computer"
msgstr "Bilgisayarı Kapat"
msgid ""
"Provides options for turning off or restarting your computer, or for "
"activating Stand By or Hibernate modes."
msgstr ""
"Bilgisayarınızı kapatma, yeniden başlatma ya da Bekleme ve Hazırda Bekleme "
"modlarını etkinleştirme seçenekleri sunar."
msgid ""
"Opens the My Documents folder, where you can store letters, reports, notes, "
"and other kinds of documents."
msgstr ""
"Mektupları, raporları, notları, ve diğer belgeleri saklayabileceğiniz "
"Belgelerim klasörünü açar."
msgid "Displays recently opened documents and folders."
msgstr "Son açoan belge ve klasörleri gösterir."
msgid ""
"Opens the My Pictures folder, where you can store digital photos, images, "
"and graphics files."
msgstr ""
"Dijital fotoğrafları, resimleri ve grafik dosyalarını saklayabileceğiniz "
"Resimlerim klasörünü açar."
msgid ""
"Opens the My Music folder, where you can store music and other audio files."
msgstr ""
"Müzik ve diğer ses dosyalarınızı saklayabileceğiniz Müziğim klasörünü açar."
msgid ""
"Gives access to, and information about, the disk drives, cameras, scanners, "
"and other hardware connected to your computer."
msgstr ""
"Bilgisayarınıza bağlı disk sürücüleri, kameralar, tarayıcılar ve diğer "
"donanımla ilgili bilgi ve erişim sağlar."
msgid ""
"Provides options for you to customize the appearance and functionality of "
"your computer, add or remove programs, and set up network connections and "
"user accounts."
msgstr ""
"Programlarınızı eklemeniz veya kaldırmanız, ağ ve kullanıcı hesapları "
"kurmanız, görünüm ve çalışma özelliklerini özelleştirmeniz için seçenekler "
"sağlar."
msgid ""
"Chooses default programs for certain activities, such as Web browsing or "
"sending e-mail, and specifies which programs are accessible from the Start "
"menu, desktop, and other locations."
msgstr ""
"Web taraması, e-posta gönderme gibi belli etkinlikler için varsayılan "
"programları seçer ve Başlat menüsü, masaüstü ve diğer yerlerden erişilebilen "
"programları belirtir."
msgid "Set Program Access and Defaults"
msgstr "Program Erişim ve Varsayılanlarını Ayarla"
msgid "Connects to other computers, networks, and the Internet."
msgstr "Diğer bilgisayarlara, ağa ve Internete bağlar."
msgid "Connect To"
msgstr "Bağlan"
msgid "Shows installed printers and fax printers and helps you add new ones."
msgstr "Yüklü faks ve yazıcıları gösterip yenilerini eklemenize yardımcı olur."
msgid ""
"Opens a central location for Help topics, tutorials, troubleshooting, and "
"other support services."
msgstr ""
"Yardım konuları, öğreticiler, sorun giderme ve destek hizmetleri için "
"merkezi bir konum açar."
msgid "Help and Support"
msgstr "Yardım ve Destek"
msgid ""
"Opens a window where you can pick search options and work with search "
"results."
msgstr ""
"Arama seçeneklerini seçebileceğiniz ve arama sonuçları ile çalışabileceğiniz "
"bir pencere açar."
msgid "Search"
msgstr "Ara"
msgid "Opens a program, folder, document, or Web site."
msgstr "Bir program, klasör, belge veya Web sitesi açar."
msgid "Run..."
msgstr "Çalıştır..."

130
shell/taskband/po/zh_CN.po Normal file
View File

@@ -0,0 +1,130 @@
# Chinese translations for PACKAGE package.
# Copyright (C) 2022 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-20 21:28+0100\n"
"PO-Revision-Date: 2022-07-20 21:28+0100\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: zh_CN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "All Programs"
msgstr "所有程序(P)"
msgid "Opens your Internet browser."
msgstr "打开您的 Internet 浏览器。"
msgid "Opens your e-mail program so you can send or read a message."
msgstr "打开您的电子邮件程序,这样您就可以发送或阅读邮件。"
msgid "Internet"
msgstr "Internet"
msgid "E-mail"
msgstr "电子邮件"
msgid "start"
msgstr "开始"
msgid "Click here to begin"
msgstr "单击这里开始"
msgid "Log Off"
msgstr "注销(L)"
msgid ""
"Provides options for closing your programs and logging off, or for leaving "
"your programs running and switching to another user."
msgstr ""
"提供关闭程序并注销,或者保持您的程序\n"
"运行并切换到另一个用户的选项。"
msgid "Turn Off Computer"
msgstr "关闭计算机"
msgid ""
"Provides options for turning off or restarting your computer, or for "
"activating Stand By or Hibernate modes."
msgstr "提供关闭或重新启动计算机,或者从待机或休眠状态激活的选项。"
msgid ""
"Opens the My Documents folder, where you can store letters, reports, notes, "
"and other kinds of documents."
msgstr "打开“我的文档”文件夹,您可以在那里保存信件,报告以及其它文档。"
msgid "Displays recently opened documents and folders."
msgstr "显示最近打开过的文件和文件夹。"
msgid ""
"Opens the My Pictures folder, where you can store digital photos, images, "
"and graphics files."
msgstr "打开“图片收藏”文件夹,您可以在那里保存数字图片,照片和其它图形文件。"
msgid ""
"Opens the My Music folder, where you can store music and other audio files."
msgstr "打开“我的音乐”文件夹,您可以在那里保存音乐和其它音频文件。"
msgid ""
"Gives access to, and information about, the disk drives, cameras, scanners, "
"and other hardware connected to your computer."
msgstr ""
"提供连接到您的计算机的硬盘驱动器,照相机,扫描仪和其它硬件的访问以及有关信"
"息。"
msgid ""
"Provides options for you to customize the appearance and functionality of "
"your computer, add or remove programs, and set up network connections and "
"user accounts."
msgstr ""
"提供选项供您自定义计算机的外观和功能,添加或删除程序,设置网络连接和用户帐"
"户。"
msgid ""
"Chooses default programs for certain activities, such as Web browsing or "
"sending e-mail, and specifies which programs are accessible from the Start "
"menu, desktop, and other locations."
msgstr ""
"选择执行某些任务的默认程序,例如浏览 Web 和发送电子邮件。指定从「开始」菜单、"
"桌面和其它地方可以访问的程序。"
msgid "Set Program Access and Defaults"
msgstr "设定程序访问和默认值"
msgid "Connects to other computers, networks, and the Internet."
msgstr "连接到其它计算机,网络和 Internet。"
msgid "Connect To"
msgstr "连接到(T)"
msgid "Shows installed printers and fax printers and helps you add new ones."
msgstr "显示安装的打印机和传真打印机,并帮助您添加新的。"
msgid ""
"Opens a central location for Help topics, tutorials, troubleshooting, and "
"other support services."
msgstr "为帮助主题、指南、疑难解答和其它支持服务打开一个中心位置。"
msgid "Help and Support"
msgstr "帮助和支持"
msgid ""
"Opens a window where you can pick search options and work with search "
"results."
msgstr "打开一个窗口,您可以在上面选择查找选项,获得搜索结果。"
msgid "Search"
msgstr "搜索(S)"
msgid "Opens a program, folder, document, or Web site."
msgstr "打开一个程序、文件夹、文档或网站。"
msgid "Run..."
msgstr "运行(R)..."

128
shell/taskband/po/zh_TW.po Normal file
View File

@@ -0,0 +1,128 @@
# Chinese translations for PACKAGE package.
# Copyright (C) 2022 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-20 21:28+0100\n"
"PO-Revision-Date: 2022-07-20 21:28+0100\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: zh_TW\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "All Programs"
msgstr "所有程式(P)"
msgid "Opens your Internet browser."
msgstr "開啟您的網際網路瀏覽器。"
msgid "Opens your e-mail program so you can send or read a message."
msgstr "開啟您的電子郵件程式,讓您可以傳送或讀取郵件。"
msgid "Internet"
msgstr "網際網路"
msgid "E-mail"
msgstr "電子郵件"
msgid "start"
msgstr "開始"
msgid "Click here to begin"
msgstr "請按這裡開始操作"
msgid "Log Off"
msgstr "登出(L)"
msgid ""
"Provides options for closing your programs and logging off, or for leaving "
"your programs running and switching to another user."
msgstr "提供關閉程式和登出的選項、讓您的程式保持在執行狀態並切換成其他使用者。"
msgid "Turn Off Computer"
msgstr "電腦關機"
msgid ""
"Provides options for turning off or restarting your computer, or for "
"activating Stand By or Hibernate modes."
msgstr "提供您關機、重新啟動電腦或啟動待命或休眠模式等選項。"
msgid ""
"Opens the My Documents folder, where you can store letters, reports, notes, "
"and other kinds of documents."
msgstr ""
"開啟 [我的文件] 資料夾,您可以在此存放信件、報告、筆記和其他類型的文件。"
msgid "Displays recently opened documents and folders."
msgstr "顯示最近開啟的文件和資料夾。"
msgid ""
"Opens the My Pictures folder, where you can store digital photos, images, "
"and graphics files."
msgstr "開啟 [我的圖片] 資料夾,您可以在此存放數位相片、影像和圖形檔案。"
msgid ""
"Opens the My Music folder, where you can store music and other audio files."
msgstr "開啟 [我的音樂] 資料夾,您可以在此存放音樂和其他音訊檔案。"
msgid ""
"Gives access to, and information about, the disk drives, cameras, scanners, "
"and other hardware connected to your computer."
msgstr ""
"提供存取及關於連接到您的電腦上的磁碟機、照相機、掃描器和其他硬體的資訊。"
msgid ""
"Provides options for you to customize the appearance and functionality of "
"your computer, add or remove programs, and set up network connections and "
"user accounts."
msgstr ""
"提供選項,讓您能自訂您電腦的外觀和功能、新增或移除程式,設定網路連線和使用者"
"帳戶。"
msgid ""
"Chooses default programs for certain activities, such as Web browsing or "
"sending e-mail, and specifies which programs are accessible from the Start "
"menu, desktop, and other locations."
msgstr ""
"選擇網頁瀏覽或傳送電子郵件之類活動的預設程式,並指定哪些程式可以從 [開始] 功"
"能表、桌面或其他位置存取。"
msgid "Set Program Access and Defaults"
msgstr "設定程式存取及預設值"
msgid "Connects to other computers, networks, and the Internet."
msgstr "連線到其他的電腦、網路和網際網路。"
msgid "Connect To"
msgstr "連線到(T)"
msgid "Shows installed printers and fax printers and helps you add new ones."
msgstr "顯示已安裝的印表機或傳真印表機,並幫助您新增印表機。"
msgid ""
"Opens a central location for Help topics, tutorials, troubleshooting, and "
"other support services."
msgstr "為說明主題、教學課程、疑難排解和其他支援服務開啟一個中心位置。"
msgid "Help and Support"
msgstr "說明及支援"
msgid ""
"Opens a window where you can pick search options and work with search "
"results."
msgstr "開啟視窗,選取搜尋的選項,執行搜尋的結果。"
msgid "Search"
msgstr "搜尋(S)"
msgid "Opens a program, folder, document, or Web site."
msgstr "開啟程式、資料夾、文件或網站。"
msgid "Run..."
msgstr "執行(R)..."

View File

@@ -0,0 +1,19 @@
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
<Menu>
<DefaultAppDirs/>
<Layout>
<Merge type="all"/>
</Layout>
<Include>
<All/>
</Include>
<Exclude>
<Category>Settings</Category>
<Category>X-XFCE</Category>
</Exclude>
</Menu>

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View File

@@ -0,0 +1,107 @@
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
<Menu>
<DefaultAppDirs/>
<Menu>
<Name>Accessories</Name>
<Include>
<Category>Utility</Category>
</Include>
<Exclude>
<Category>X-XFCE</Category>
</Exclude>
</Menu>
<Menu>
<Name>Development</Name>
<Include>
<Category>Development</Category>
</Include>
</Menu>
<Menu>
<Name>Education</Name>
<Include>
<Category>Education</Category>
</Include>
<Exclude>
<Category>X-XFCE</Category>
</Exclude>
</Menu>
<Menu>
<Name>Games</Name>
<Include>
<Category>Game</Category>
</Include>
<Exclude>
<Category>X-XFCE</Category>
</Exclude>
</Menu>
<Menu>
<Name>Graphics</Name>
<Include>
<Category>Graphics</Category>
</Include>
<Exclude>
<Category>X-XFCE</Category>
</Exclude>
</Menu>
<Menu>
<Name>Internet</Name>
<Include>
<Category>Network</Category>
</Include>
<Exclude>
<Category>X-XFCE</Category>
</Exclude>
</Menu>
<Menu>
<Name>Office</Name>
<Include>
<Category>Office</Category>
</Include>
<Exclude>
<Category>X-XFCE</Category>
</Exclude>
</Menu>
<Menu>
<Name>Multimedia</Name>
<Include>
<Or>
<Category>Audio</Category>
<Category>AudioVideo</Category>
<Category>Video</Category>
</Or>
</Include>
<Exclude>
<Category>X-XFCE</Category>
</Exclude>
</Menu>
<Menu>
<Name>Science</Name>
<Include>
<Category>Science</Category>
</Include>
<Exclude>
<Category>X-XFCE</Category>
</Exclude>
</Menu>
<Menu>
<Name>System</Name>
<Include>
<Category>System</Category>
</Include>
<Exclude>
<Category>X-XFCE</Category>
</Exclude>
</Menu>
</Menu>

View File

@@ -0,0 +1,112 @@
#include <glib.h>
#include <gtk/gtk.h>
#include <wintc-comgtk.h>
#include "application.h"
#include "dispproto.h"
#include "window.h"
//
// GTK OOP CLASS/INSTANCE DEFINITIONS
//
struct _WinTCTaskbandApplicationClass
{
GtkApplicationClass __parent__;
};
struct _WinTCTaskbandApplication
{
GtkApplication __parent__;
GtkWidget* host_window;
};
//
// FORWARD DECLARATIONS
//
static void wintc_taskband_application_activate(
GApplication* application
);
static void wintc_taskband_application_startup(
GApplication* application
);
//
// GTK TYPE DEFINITION & CTORS
//
G_DEFINE_TYPE(
WinTCTaskbandApplication,
wintc_taskband_application,
GTK_TYPE_APPLICATION
)
static void wintc_taskband_application_class_init(
WinTCTaskbandApplicationClass* klass
)
{
GApplicationClass* application_class = G_APPLICATION_CLASS(klass);
application_class->activate = wintc_taskband_application_activate;
application_class->startup = wintc_taskband_application_startup;
}
static void wintc_taskband_application_init(
WINTC_UNUSED(WinTCTaskbandApplication* self)
) {}
//
// PUBLIC FUNCTIONS
//
WinTCTaskbandApplication* wintc_taskband_application_new(void)
{
WinTCTaskbandApplication* app;
g_set_application_name("Taskband");
app =
g_object_new(
wintc_taskband_application_get_type(),
"application-id", "uk.co.oddmatics.wintc.taskband",
NULL
);
return app;
}
//
// CALLBACKS
//
static void wintc_taskband_application_activate(
GApplication* application
)
{
WinTCTaskbandApplication* taskband_app =
WINTC_TASKBAND_APPLICATION(application);
if (taskband_app->host_window != NULL)
{
return;
}
taskband_app->host_window = wintc_taskband_window_new(taskband_app);
gtk_widget_show_all(taskband_app->host_window);
}
static void wintc_taskband_application_startup(
GApplication* application
)
{
// Chain up for gtk init
//
G_APPLICATION_CLASS(wintc_taskband_application_parent_class)
->startup(application);
// Init APIs at runtime
//
if (!init_display_protocol_apis())
{
g_critical("%s", "Failed to resolve display protocol APIs.");
g_application_quit(application);
}
}

View File

@@ -0,0 +1,27 @@
#ifndef __APPLICATION_H__
#define __APPLICATION_H__
#include <glib.h>
#include <gtk/gtk.h>
//
// GTK OOP BOILERPLATE
//
typedef struct _WinTCTaskbandApplicationClass WinTCTaskbandApplicationClass;
typedef struct _WinTCTaskbandApplication WinTCTaskbandApplication;
#define TYPE_WINTC_TASKBAND_APPLICATION (wintc_taskband_application_get_type())
#define WINTC_TASKBAND_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), TYPE_WINTC_TASKBAND_APPLICATION, WinTCTaskbandApplication))
#define WINTC_TASKBAND_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), TYPE_WINTC_TASKBAND_APPLICATION, WinTCTaskbandApplicationClass))
#define IS_WINTC_TASKBAND_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), TYPE_WINTC_TASKBAND_APPLICATION))
#define IS_WINTC_TASKBAND_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), TYPE_WINTC_TASKBAND_APPLICATION))
#define WINTC_TASKBAND_APPLICATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), TYPE_WINTC_TASKBAND_APPLICATION, WinTCTaskbandApplication))
GType wintc_taskband_application_get_type(void) G_GNUC_CONST;
//
// PUBLIC FUNCTIONS
//
WinTCTaskbandApplication* wintc_taskband_application_new(void);
#endif

View File

@@ -0,0 +1,116 @@
#include <dlfcn.h>
#include <gdk/gdk.h>
#include <glib.h>
#include <gtk/gtk.h>
#include "dispproto.h"
#include "dispproto-wayland.h"
//
// PRIVATE ENUMS
//
typedef enum
{
GTK_LAYER_SHELL_EDGE_LEFT = 0,
GTK_LAYER_SHELL_EDGE_RIGHT,
GTK_LAYER_SHELL_EDGE_TOP,
GTK_LAYER_SHELL_EDGE_BOTTOM,
GTK_LAYER_SHELL_EDGE_ENTRY_NUMBER
} GtkLayerShellEdge;
typedef enum
{
GTK_LAYER_SHELL_LAYER_BACKGROUND = 0,
GTK_LAYER_SHELL_LAYER_BOTTOM,
GTK_LAYER_SHELL_LAYER_TOP,
GTK_LAYER_SHELL_LAYER_OVERLAY,
GTK_LAYER_SHELL_LAYER_ENTRY_NUMBER
} GtkLayerShellLayer;
//
// RESOLVED FUNCS
//
void (*p_gtk_layer_auto_exclusive_zone_enable) (
GtkWindow* window
);
void (*p_gtk_layer_init_for_window) (
GtkWindow* window
);
void (*p_gtk_layer_set_anchor) (
GtkWindow* window,
GtkLayerShellEdge edge,
gboolean anchor_to_edge
);
void (*p_gtk_layer_set_layer) (
GtkWindow* window,
GtkLayerShellLayer layer
);
//
// FORWARD DECLARATIONS
//
static void wayland_anchor_taskband_to_bottom(
GtkWindow* taskband
);
//
// PUBLIC FUNCTIONS
//
gboolean init_wayland_protocol_impl(void)
{
void* dl_gtk_layer_shell =
dlopen("libgtk-layer-shell.so", RTLD_LAZY | RTLD_LOCAL);
if (dl_gtk_layer_shell == NULL)
{
g_critical("%s", "Failed to open libgtk-layer-shell for symbols.");
return FALSE;
}
// Resolve funcs we're using
//
p_gtk_layer_auto_exclusive_zone_enable =
dlsym(dl_gtk_layer_shell, "gtk_layer_auto_exclusive_zone_enable");
p_gtk_layer_init_for_window =
dlsym(dl_gtk_layer_shell, "gtk_layer_init_for_window");
p_gtk_layer_set_anchor =
dlsym(dl_gtk_layer_shell, "gtk_layer_set_anchor");
p_gtk_layer_set_layer =
dlsym(dl_gtk_layer_shell, "gtk_layer_set_layer");
if (
p_gtk_layer_auto_exclusive_zone_enable == NULL ||
p_gtk_layer_init_for_window == NULL ||
p_gtk_layer_set_anchor == NULL ||
p_gtk_layer_set_layer == NULL
)
{
g_critical("%s", "Failed to resolve symbols for GTK layer shell.");
return FALSE;
}
// All good, assign the API now
//
anchor_taskband_to_bottom = &wayland_anchor_taskband_to_bottom;
return TRUE;
}
//
// PRIVATE FUNCTIONS
//
static void wayland_anchor_taskband_to_bottom(
GtkWindow* taskband
)
{
static gboolean anchors[] = { TRUE, TRUE, FALSE, TRUE };
p_gtk_layer_init_for_window(taskband);
p_gtk_layer_set_layer(taskband, GTK_LAYER_SHELL_LAYER_BOTTOM);
p_gtk_layer_auto_exclusive_zone_enable(taskband);
for (int i = 0; i < GTK_LAYER_SHELL_EDGE_ENTRY_NUMBER; i++)
{
p_gtk_layer_set_anchor(taskband, i, anchors[i]);
}
}

View File

@@ -0,0 +1,11 @@
#ifndef __DISPPROTO_WAYLAND_H__
#define __DISPPROTO_WAYLAND_H__
#include <glib.h>
//
// PUBLIC FUNCTIONS
//
gboolean init_wayland_protocol_impl(void);
#endif

View File

@@ -0,0 +1,117 @@
#include <dlfcn.h>
#include <gdk-pixbuf/gdk-pixbuf.h>
#include <glib.h>
#include "dispproto.h"
#include "dispproto-wndmgmt-wnck.h"
//
// RESOLVED FUNCS
//
static WndMgmtWindow* (*p_wnck_screen_get_active_window) (
WndMgmtScreen* screen
) = NULL;
static WndMgmtScreen* (*p_wnck_screen_get_default) (void) = NULL;
static GdkPixbuf* (*p_wnck_window_get_mini_icon) (
WndMgmtWindow* window
) = NULL;
static gchar* (*p_wnck_window_get_name) (
WndMgmtWindow* window
) = NULL;
static gboolean (*p_wnck_window_is_skip_tasklist) (
WndMgmtWindow* window
) = NULL;
static void (*p_wnck_window_minimize) (
WndMgmtWindow* window
) = NULL;
static void (*p_wnck_window_unminimize) (
WndMgmtWindow* window,
guint32 timestamp
) = NULL;
//
// FORWARD DECLARATIONS
//
static void wnck_window_unminimize_now(
WndMgmtWindow* window
);
//
// PUBLIC FUNCTIONS
//
gboolean init_wndmgmt_wnck_impl(void)
{
void* dl_wnck = dlopen("libwnck-3.so", RTLD_LAZY | RTLD_LOCAL);
if (dl_wnck == NULL)
{
g_message("%s", "libwnck not available.");
return FALSE;
}
// Attempt to load the necessary functions
//
p_wnck_screen_get_active_window =
dlsym(dl_wnck, "wnck_screen_get_active_window");
p_wnck_screen_get_default =
dlsym(dl_wnck, "wnck_screen_get_default");
p_wnck_window_get_mini_icon =
dlsym(dl_wnck, "wnck_window_get_mini_icon");
p_wnck_window_get_name =
dlsym(dl_wnck, "wnck_window_get_name");
p_wnck_window_is_skip_tasklist =
dlsym(dl_wnck, "wnck_window_is_skip_tasklist");
p_wnck_window_minimize =
dlsym(dl_wnck, "wnck_window_minimize");
p_wnck_window_unminimize =
dlsym(dl_wnck, "wnck_window_unminimize");
// Check all symbols loaded
//
if (
p_wnck_screen_get_active_window == NULL ||
p_wnck_screen_get_default == NULL ||
p_wnck_window_get_mini_icon == NULL ||
p_wnck_window_get_name == NULL ||
p_wnck_window_is_skip_tasklist == NULL ||
p_wnck_window_minimize == NULL ||
p_wnck_window_unminimize == NULL
)
{
g_warning("%s", "libwnck loaded, but not all symbols.");
return FALSE;
}
// We're good, implement the API
//
wndmgmt_screen_get_active_window = p_wnck_screen_get_active_window;
wndmgmt_screen_get_default = p_wnck_screen_get_default;
wndmgmt_window_get_mini_icon = p_wnck_window_get_mini_icon;
wndmgmt_window_get_name = p_wnck_window_get_name;
wndmgmt_window_is_skip_tasklist = p_wnck_window_is_skip_tasklist;
wndmgmt_window_minimize = p_wnck_window_minimize;
wndmgmt_window_unminimize = &wnck_window_unminimize_now;
return TRUE;
}
//
// PRIVATE FUNCTIONS
//
static void wnck_window_unminimize_now(
WndMgmtWindow* window
)
{
// FIXME: This throws a warning because we use 0 or GDK_CURRENT_TIME where
// it expects an X11 timestamp - it works and I can't be bothered to
// resolve this right now
//
p_wnck_window_unminimize(window, 0);
}

View File

@@ -0,0 +1,11 @@
#ifndef __DISPPROTO_WNDMGMT_WNCK_H__
#define __DISPPROTO_WNDMGMT_WNCK_H__
#include <glib.h>
//
// PUBLIC FUNCTIONS
//
gboolean init_wndmgmt_wnck_impl(void);
#endif

View File

@@ -0,0 +1,128 @@
#include <dlfcn.h>
#include <gdk-pixbuf/gdk-pixbuf.h>
#include <glib.h>
#include "dispproto.h"
#include "dispproto-wndmgmt-xfw.h"
//
// RESOLVED FUNCS
//
static WndMgmtWindow* (*p_xfw_screen_get_active_window) (
WndMgmtScreen* screen
) = NULL;
static WndMgmtScreen* (*p_xfw_screen_get_default) (void) = NULL;
static GdkPixbuf* (*p_xfw_window_get_icon) (
WndMgmtWindow* window,
gint size,
gint scale
) = NULL;
static gchar* (*p_xfw_window_get_name) (
WndMgmtWindow* window
) = NULL;
static gboolean (*p_xfw_window_is_skip_tasklist) (
WndMgmtWindow* window
) = NULL;
static gboolean (*p_xfw_window_set_minimized) (
WndMgmtWindow* window,
gboolean is_maximized,
GError** error
) = NULL;
//
// FORWARD DECLARATIONS
//
static GdkPixbuf* xfw_window_get_mini_icon(
WndMgmtWindow* window
);
static void xfw_window_minimize(
WndMgmtWindow* window
);
static void xfw_window_unminimize(
WndMgmtWindow* window
);
//
// PUBLIC FUNCTIONS
//
gboolean init_wndmgmt_xfw_impl(void)
{
void* dl_xfw = dlopen("libxfce4windowing-0.so", RTLD_LAZY | RTLD_LOCAL);
if (dl_xfw == NULL)
{
g_message("%s", "libxfce4windowing not available.");
return FALSE;
}
// Attempt to load the necessary functions
//
p_xfw_screen_get_active_window =
dlsym(dl_xfw, "xfw_screen_get_active_window");
p_xfw_screen_get_default =
dlsym(dl_xfw, "xfw_screen_get_default");
p_xfw_window_get_icon =
dlsym(dl_xfw, "xfw_window_get_icon");
p_xfw_window_get_name =
dlsym(dl_xfw, "xfw_window_get_name");
p_xfw_window_is_skip_tasklist =
dlsym(dl_xfw, "xfw_window_is_skip_tasklist");
p_xfw_window_set_minimized =
dlsym(dl_xfw, "xfw_window_set_minimized");
// Check all symbols loaded
//
if (
p_xfw_screen_get_active_window == NULL ||
p_xfw_screen_get_default == NULL ||
p_xfw_window_get_icon == NULL ||
p_xfw_window_get_name == NULL ||
p_xfw_window_is_skip_tasklist == NULL ||
p_xfw_window_set_minimized == NULL
)
{
g_warning("%s", "libxfce4windowing loaded, but not all symbols.");
return FALSE;
}
// We're good, implement the API
//
wndmgmt_screen_get_active_window = p_xfw_screen_get_active_window;
wndmgmt_screen_get_default = p_xfw_screen_get_default;
wndmgmt_window_get_mini_icon = &xfw_window_get_mini_icon;
wndmgmt_window_get_name = p_xfw_window_get_name;
wndmgmt_window_is_skip_tasklist = p_xfw_window_is_skip_tasklist;
wndmgmt_window_minimize = &xfw_window_minimize;
wndmgmt_window_unminimize = &xfw_window_unminimize;
return TRUE;
}
// PRIVATE FUNCTIONS
//
static GdkPixbuf* xfw_window_get_mini_icon(
WndMgmtWindow* window
)
{
return p_xfw_window_get_icon(window, 16, 1);
}
static void xfw_window_minimize(
WndMgmtWindow* window
)
{
p_xfw_window_set_minimized(window, TRUE, NULL);
}
static void xfw_window_unminimize(
WndMgmtWindow* window
)
{
p_xfw_window_set_minimized(window, FALSE, NULL);
}

View File

@@ -0,0 +1,11 @@
#ifndef __DISPPROTO_WNDMGMT_XFW_H__
#define __DISPPROTO_WNDMGMT_XFW_H__
#include <glib.h>
//
// PUBLIC FUNCTIONS
//
gboolean init_wndmgmt_xfw_impl(void);
#endif

View File

@@ -0,0 +1,142 @@
#include <gdk/gdk.h>
#include <glib.h>
#include <gtk/gtk.h>
#include <wintc-comgtk.h>
#include "dispproto.h"
#include "dispproto-x11.h"
#include "taskband.h"
//
// STRUCTURE DEFINITIONS
//
struct X11Struts
{
gulong left;
gulong right;
gulong top;
gulong bottom;
gulong left_start_y;
gulong left_end_y;
gulong right_start_y;
gulong right_end_y;
gulong top_start_x;
gulong top_end_x;
gulong bottom_start_x;
gulong bottom_end_x;
};
//
// FORWARD DECLARATIONS
//
static void x11_anchor_taskband_to_bottom(
GtkWindow* taskband
);
static void on_taskband_realized(
GtkWidget* self,
gpointer user_data
);
//
// PUBLIC FUNCTIONS
//
gboolean init_x11_protocol_impl(void)
{
anchor_taskband_to_bottom = &x11_anchor_taskband_to_bottom;
return TRUE;
}
//
// PRIVATE FUNCTIONS
//
static void x11_anchor_taskband_to_bottom(
GtkWindow* taskband
)
{
g_signal_connect(
taskband,
"realize",
G_CALLBACK(on_taskband_realized),
NULL
);
}
//
// CALLBACKS
//
static void on_taskband_realized(
GtkWidget* self,
WINTC_UNUSED(gpointer user_data)
)
{
GdkAtom cardinal_atom;
GdkDisplay* display = gdk_display_get_default();
GdkRectangle geometry;
GdkMonitor* monitor = NULL;
int monitor_count = gdk_display_get_n_monitors(display);
GdkAtom net_wm_strut_partial_atom;
int screen_bottom = 0;
cardinal_atom =
gdk_atom_intern_static_string("CARDINAL");
net_wm_strut_partial_atom =
gdk_atom_intern_static_string("_NET_WM_STRUT_PARTIAL");
struct X11Struts struts = { 0 };
for (int i = 0; i < monitor_count; i++)
{
int monitor_bottom = 0;
GdkMonitor* monitor_i = gdk_display_get_monitor(display, i);
if (monitor == NULL || gdk_monitor_is_primary(monitor_i))
{
monitor = monitor_i;
}
// Update screen bottom
//
gdk_monitor_get_geometry(monitor_i, &geometry);
monitor_bottom = geometry.y + geometry.height;
if (monitor_bottom > screen_bottom)
{
screen_bottom = monitor_bottom;
}
}
gdk_monitor_get_geometry(monitor, &geometry);
gtk_window_set_default_size(
GTK_WINDOW(self),
geometry.width,
TASKBAND_ROW_HEIGHT
);
gtk_window_move(
GTK_WINDOW(self),
geometry.x,
geometry.y + geometry.height - TASKBAND_ROW_HEIGHT
);
struts.bottom =
screen_bottom - (geometry.y + geometry.height) + TASKBAND_ROW_HEIGHT;
struts.bottom_start_x = geometry.x;
struts.bottom_end_x = geometry.x + geometry.width;
gdk_property_change(
gtk_widget_get_window(self),
net_wm_strut_partial_atom,
cardinal_atom,
32,
GDK_PROP_MODE_REPLACE,
(guchar*) &struts,
sizeof (struct X11Struts) / sizeof (gulong)
);
}

View File

@@ -0,0 +1,11 @@
#ifndef __DISPPROTO_X11_H__
#define __DISPPROTO_X11_H__
#include <glib.h>
//
// PUBLIC FUNCTIONS
//
gboolean init_x11_protocol_impl(void);
#endif

View File

@@ -0,0 +1,146 @@
#include <dlfcn.h>
#include <gdk/gdk.h>
#include <gdk-pixbuf/gdk-pixbuf.h>
#include <glib.h>
#include "dispproto.h"
#include "dispproto-wayland.h"
#include "dispproto-x11.h"
#include "dispproto-wndmgmt-wnck.h"
#include "dispproto-wndmgmt-xfw.h"
//
// STATIC DATA
//
static TaskbandDisplayProtocol s_dispproto;
//
// RESOLVED FUNCS
//
static GType (*p_gdk_x11_display_get_type) (void) = NULL;
static GType (*p_gdk_wayland_display_get_type) (void) = NULL;
void (*anchor_taskband_to_bottom)(
GtkWindow* taskband
) = NULL;
WndMgmtWindow* (*wndmgmt_screen_get_active_window) (
WndMgmtScreen* screen
) = NULL;
WndMgmtScreen* (*wndmgmt_screen_get_default) (void) = NULL;
GdkPixbuf* (*wndmgmt_window_get_mini_icon) (
WndMgmtWindow* window
) = NULL;
gchar* (*wndmgmt_window_get_name) (
WndMgmtWindow* window
) = NULL;
gboolean (*wndmgmt_window_is_skip_tasklist) (
WndMgmtWindow* window
) = NULL;
void (*wndmgmt_window_minimize) (
WndMgmtWindow* window
) = NULL;
void (*wndmgmt_window_unminimize) (
WndMgmtWindow* window
) = NULL;
//
// PUBLIC FUNCTIONS
//
TaskbandDisplayProtocol get_display_protocol_in_use(void)
{
return s_dispproto;
}
gboolean init_display_protocol_apis(void)
{
void* dl_gdk = dlopen("libgdk-3.so", RTLD_LAZY | RTLD_LOCAL);
if (dl_gdk == NULL)
{
g_critical("%s", "Failed to open libgdk for symbols.");
return FALSE;
}
// Resolve GObject type codes for the displays
//
p_gdk_x11_display_get_type = dlsym(dl_gdk, "gdk_x11_display_get_type");
p_gdk_wayland_display_get_type = dlsym(dl_gdk, "gdk_wayland_display_get_type");
if (
p_gdk_x11_display_get_type == NULL &&
p_gdk_wayland_display_get_type == NULL
)
{
g_critical("%s", "Unable to resolve X11 nor Wayland symbols in GDK.");
return FALSE;
}
// What is our display?
//
GdkDisplay* display = gdk_display_get_default();
if (
p_gdk_x11_display_get_type != NULL &&
(G_TYPE_CHECK_INSTANCE_TYPE((display), p_gdk_x11_display_get_type()))
)
{
s_dispproto = DISPPROTO_X11;
if (!init_x11_protocol_impl())
{
g_critical("%s", "Failed to initialize X11 implementation.");
return FALSE;
}
}
else if (
p_gdk_wayland_display_get_type != NULL &&
(G_TYPE_CHECK_INSTANCE_TYPE((display), p_gdk_wayland_display_get_type()))
)
{
s_dispproto = DISPPROTO_WAYLAND;
if (!init_wayland_protocol_impl())
{
g_critical("%s", "Failed to initialize Wayland implementation.");
return FALSE;
}
}
else
{
g_critical("%s", "Can't determine display type, not X11 or Wayland?");
return FALSE;
}
// Window management stuff, we prioritise loading xfce4windowing because it
// is the future - failing that we try WNCK, but only for X cos It Don't
// Work On Wayland! (TM)
//
if (!init_wndmgmt_xfw_impl())
{
if (get_display_protocol_in_use() == DISPPROTO_WAYLAND)
{
// It's over for Wayland!
//
g_critical(
"%s",
"libxfce4windowing not available, cannot continue on Wayland."
);
return FALSE;
}
if (!init_wndmgmt_wnck_impl())
{
// No WNCK! Computer over! Disaster = very yes!
//
g_critical(
"%s",
"libwnck not available, cannot continue."
);
return FALSE;
}
}
return TRUE;
}

View File

@@ -0,0 +1,54 @@
#ifndef __DISPPROTO_H__
#define __DISPPROTO_H__
#include <gdk-pixbuf/gdk-pixbuf.h>
#include <glib.h>
#include <gtk/gtk.h>
//
// PUBLIC DEFINES
//
#define WndMgmtScreen void
#define WndMgmtWindow void
//
// PUBLIC ENUMS
//
typedef enum
{
DISPPROTO_X11,
DISPPROTO_WAYLAND
} TaskbandDisplayProtocol;
//
// PUBLIC FUNCTIONS
//
TaskbandDisplayProtocol get_display_protocol_in_use(void);
gboolean init_display_protocol_apis(void);
extern void (*anchor_taskband_to_bottom) (
GtkWindow* taskband
);
extern WndMgmtWindow* (*wndmgmt_screen_get_active_window) (
WndMgmtScreen* screen
);
extern WndMgmtScreen* (*wndmgmt_screen_get_default) (void);
extern GdkPixbuf* (*wndmgmt_window_get_mini_icon) (
WndMgmtWindow* window
);
extern gchar* (*wndmgmt_window_get_name) (
WndMgmtWindow* window
);
extern gboolean (*wndmgmt_window_is_skip_tasklist) (
WndMgmtWindow* window
);
extern void (*wndmgmt_window_minimize) (
WndMgmtWindow* window
);
extern void (*wndmgmt_window_unminimize) (
WndMgmtWindow* window
);
#endif

29
shell/taskband/src/main.c Normal file
View File

@@ -0,0 +1,29 @@
#include <glib.h>
#include <glib/gi18n.h>
#include <locale.h>
#include "application.h"
#include "meta.h"
int main(
int argc,
char* argv[]
)
{
// Set up locales
//
setlocale(LC_ALL, "");
bindtextdomain(PKG_NAME, "/usr/share/locale");
textdomain(PKG_NAME);
// Launch application
//
WinTCTaskbandApplication* app = wintc_taskband_application_new();
int status;
status = g_application_run(G_APPLICATION(app), argc, argv);
g_object_unref(app);
return status;
}

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<gresources>
<gresource prefix="/uk/oddmatics/wintc/taskband">
<file>start-menu.css</file>
</gresource>
</gresources>

View File

@@ -0,0 +1,58 @@
.xp-start-button .lower
{
font-size: 0pt;
}
box > menubar > menuitem > box > image
{
margin: 0px 6px 0px 2px;
}
box > menubar > separator
{
margin: 4px 0px;
}
menuitem.xp-start-all-programs
{
min-height: 32px;
}
menuitem.xp-start-all-programs > box
{
font-weight: bold;
}
separator.xp-start-all-programs
{
margin-top: 40px;
}
.xp-start-logoffpane button
{
margin: 8px 3px;
}
.xp-start-logoffpane button:last-child
{
margin-right: 8px;
}
.xp-start-userpane box
{
background-size: 100% 100%;
box-shadow: 0px 0px 2px 0px rgba(0,0,0,0.75);
margin: 10px 14px 10px 10px;
min-height: 48px;
min-width: 48px;
}
.xp-start-userpane label
{
font-size: 16pt;
}
.xp-start-vuserpane label
{
font-size: 0pt;
}

View File

@@ -0,0 +1,39 @@
#include <gdk/gdk.h>
#include <glib.h>
#include <wintc-comgtk.h>
#include <wintc-exec.h>
#include "action.h"
//
// PUBLIC FUNCTIONS
//
void launch_action(
WinTCAction action_id
)
{
GError* error = NULL;
if (!wintc_launch_action(action_id, &error))
{
wintc_nice_error_and_clear(&error);
}
}
void launch_command(
const gchar* command
)
{
if (command == NULL)
{
g_error("No command specified.");
return;
}
GError* error = NULL;
if (!wintc_launch_command(command, &error))
{
wintc_nice_error_and_clear(&error);
}
}

View File

@@ -0,0 +1,15 @@
#ifndef __ACTION_H__
#define __ACTION_H__
#include <glib.h>
#include <wintc-exec.h>
void launch_action(
WinTCAction action_id
);
void launch_command(
const gchar* command
);
#endif

View File

@@ -0,0 +1,175 @@
#include <glib.h>
#include <gtk/gtk.h>
#include <wintc-comgtk.h>
#include <wintc-exec.h>
#include "startmenuitem.h"
#include "placeslist.h"
#include "util.h"
//
// GTK OOP CLASS/INSTANCE DEFINITIONS
//
struct _PlacesListClass
{
GtkMenuBarClass __parent__;
};
struct _PlacesList
{
GtkMenuBar __parent__;
};
//
// FORWARD DECLARATIONS
//
static void places_list_finalize(
GObject* object
);
static void places_list_append_item(
PlacesList* places_list,
WinTCAction action_id,
gboolean significant
);
static void places_list_append_separator(
PlacesList* places_list
);
//
// GTK TYPE DEFINITION & CTORS
//
G_DEFINE_TYPE(PlacesList, places_list, GTK_TYPE_MENU_BAR)
static void places_list_class_init(
PlacesListClass* klass
)
{
GObjectClass* gclass = G_OBJECT_CLASS(klass);
gclass->finalize = places_list_finalize;
}
static void places_list_init(
PlacesList* self
)
{
// Set up structure
//
gtk_menu_bar_set_pack_direction(
GTK_MENU_BAR(self),
GTK_PACK_DIRECTION_TTB
);
places_list_append_item(
self,
WINTC_ACTION_MYDOCS,
TRUE
);
places_list_append_item(
self,
WINTC_ACTION_MYRECENTS,
TRUE
);
places_list_append_item(
self,
WINTC_ACTION_MYPICS,
TRUE
);
places_list_append_item(
self,
WINTC_ACTION_MYMUSIC,
TRUE
);
places_list_append_item(
self,
WINTC_ACTION_MYCOMP,
TRUE
);
places_list_append_separator(self);
places_list_append_item(
self,
WINTC_ACTION_CONTROL,
FALSE
);
places_list_append_item(
self,
WINTC_ACTION_MIMEMGMT,
FALSE
);
places_list_append_item(
self,
WINTC_ACTION_CONNECTTO,
FALSE
);
places_list_append_item(
self,
WINTC_ACTION_PRINTERS,
FALSE
);
places_list_append_separator(self);
places_list_append_item(
self,
WINTC_ACTION_HELP,
FALSE
);
places_list_append_item(
self,
WINTC_ACTION_SEARCH,
FALSE
);
places_list_append_item(
self,
WINTC_ACTION_RUN,
FALSE
);
}
//
// FINALIZE
//
static void places_list_finalize(
GObject* object
)
{
(*G_OBJECT_CLASS(places_list_parent_class)->finalize) (object);
}
//
// PRIVATE FUNCTIONS
//
static void places_list_append_item(
PlacesList* places_list,
WinTCAction action_id,
gboolean significant
)
{
GtkWidget* item = start_menu_item_new_from_action(action_id);
// If the item is significant, add the style
//
if (significant)
{
wintc_widget_add_style_class(item, "significant");
}
// FIXME: Shift 24 size to constant
//
start_menu_item_set_icon_size(START_MENU_ITEM(item), 24);
gtk_menu_shell_append(GTK_MENU_SHELL(places_list), item);
}
static void places_list_append_separator(
PlacesList* places_list
)
{
GtkWidget* separator = gtk_separator_menu_item_new();
gtk_menu_shell_append(GTK_MENU_SHELL(places_list), separator);
}

View File

@@ -0,0 +1,26 @@
#ifndef __PLACESLIST_H__
#define __PLACESLIST_H__
#include <glib.h>
#include <gtk/gtk.h>
G_BEGIN_DECLS
//
// GTK OOP BOILERPLATE
//
typedef struct _PlacesListClass PlacesListClass;
typedef struct _PlacesList PlacesList;
#define TYPE_PLACES_LIST (places_list_get_type())
#define PLACES_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), TYPE_PLACES_LIST, PlacesList))
#define PLACES_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), TYPE_PLACES_LIST, PlacesListClass))
#define IS_PLACES_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), TYPE_PLACES_LIST))
#define IS_PLACES_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), TYPE_PLACES_LIST))
#define PLACES_LIST_GET_CLASS (G_TYPE_INSTANCE_GET_CLASS((obj), TYPE_PLACES_LIST, PlacesListClass))
GType places_list_get_type(void) G_GNUC_CONST;
G_END_DECLS
#endif

View File

@@ -0,0 +1,283 @@
#include <garcon/garcon.h>
#include <garcon-gtk/garcon-gtk.h>
#include <gio/gdesktopappinfo.h>
#include <glib.h>
#include <glib/gi18n.h>
#include <gtk/gtk.h>
#include <wintc-comgtk.h>
#include <wintc-exec.h>
#include "../meta.h"
#include "programslist.h"
#include "startmenuitem.h"
#include "util.h"
//
// GTK OOP CLASS/INSTANCE DEFINITIONS
//
struct _ProgramsListClass
{
GtkMenuBarClass __parent__;
};
struct _ProgramsList
{
GtkMenuBar __parent__;
};
//
// FORWARD DECLARATIONS
//
static void programs_list_finalize(
GObject* object
);
static void programs_list_append_all_programs_item(
ProgramsList* programs_list
);
static void programs_list_append_default_items(
ProgramsList* programs_list
);
static void programs_list_append_separator(
ProgramsList* programs_list,
const gchar* style_class
);
static void programs_list_append_top_items(
ProgramsList* programs_list,
gint count
);
//
// GTK TYPE DEFINITION & CTORS
//
G_DEFINE_TYPE(ProgramsList, programs_list, GTK_TYPE_MENU_BAR)
static void programs_list_class_init(
ProgramsListClass* klass
)
{
GObjectClass* gclass = G_OBJECT_CLASS(klass);
gclass->finalize = programs_list_finalize;
}
static void programs_list_init(
ProgramsList* self
)
{
// Set up structure
//
gtk_menu_bar_set_pack_direction(
GTK_MENU_BAR(self),
GTK_PACK_DIRECTION_TTB
);
programs_list_refresh(self);
}
//
// PUBLIC FUNCTIONS
//
void programs_list_refresh(
ProgramsList* programs_list
)
{
programs_list_append_default_items(programs_list);
programs_list_append_separator(programs_list, NULL);
programs_list_append_top_items(programs_list, 6);
programs_list_append_separator(programs_list, "xp-start-all-programs");
programs_list_append_all_programs_item(programs_list);
}
//
// FINALIZE
//
static void programs_list_finalize(
GObject* object
)
{
(*G_OBJECT_CLASS(programs_list_parent_class)->finalize) (object);
}
//
// PRIVATE FUNCTIONS
//
static void programs_list_append_all_programs_item(
ProgramsList* programs_list
)
{
GtkWidget* item = gtk_menu_item_new();
//
// The layout of the item contents is such that we can have the text and
// arrow centered
//
// We have an outer box, which contains the label and a box that represents
// the arrow (should the theme decide to style one)
//
// Outer box
//
GtkWidget* outer_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
gtk_widget_set_halign(outer_box, GTK_ALIGN_CENTER);
// All programs text
//
GtkWidget* all_programs_label = gtk_label_new(_("All Programs"));
// 'Arrow' box
//
GtkWidget* arrow_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
// Set garcon menu
//
GarconMenu* programs_menu = garcon_menu_new_for_path(
"/usr/share/wintc/shell-res/start-menu.menu"
);
GtkWidget* programs_submenu = garcon_gtk_menu_new(programs_menu);
gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), programs_submenu);
// Set style
//
wintc_widget_add_style_class(item, "xp-start-all-programs");
wintc_widget_add_style_class(arrow_box, "arrow");
// Box up
//
gtk_box_pack_start(GTK_BOX(outer_box), all_programs_label, FALSE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(outer_box), arrow_box, FALSE, FALSE, 0);
gtk_container_add(GTK_CONTAINER(item), outer_box);
gtk_menu_shell_append(GTK_MENU_SHELL(programs_list), item);
}
static void programs_list_append_default_items(
ProgramsList* programs_list
)
{
const gchar* imsg = _("Opens your Internet browser.");
const gchar* emsg = _("Opens your e-mail program so you can send or read a message.");
// Load desktop entries and create menu items
//
GDesktopAppInfo* internet_entry = wintc_query_mime_handler(
"x-scheme-handler/http",
NULL
);
GDesktopAppInfo* email_entry = wintc_query_mime_handler(
"x-scheme-handler/mailto",
NULL
);
//
// FIXME: Handle NULL entries here! ATM there is a bodge in startmenuitem.c, which
// isn't really the right place for it (since in future, the desktop entry
// constructor could be used for pinned items!)
//
// (Also we throw away the error, it should be handled as well ofc, I'm too
// lazy to do that this evening)
//
GtkWidget* internet_item = start_menu_item_new_from_desktop_entry(
internet_entry,
_("Internet"),
imsg
);
GtkWidget* email_item = start_menu_item_new_from_desktop_entry(
email_entry,
_("E-mail"),
emsg
);
// FIXME: Shift 32 size to constant
//
start_menu_item_set_icon_size(START_MENU_ITEM(internet_item), 32);
start_menu_item_set_icon_size(START_MENU_ITEM(email_item), 32);
g_clear_object(&internet_entry);
g_clear_object(&email_entry);
gtk_menu_shell_append(GTK_MENU_SHELL(programs_list), internet_item);
gtk_menu_shell_append(GTK_MENU_SHELL(programs_list), email_item);
}
static void programs_list_append_separator(
ProgramsList* programs_list,
const gchar* style_class
)
{
GtkWidget* separator = gtk_separator_menu_item_new();
if (style_class != NULL)
{
wintc_widget_add_style_class(separator, style_class);
}
gtk_menu_shell_append(GTK_MENU_SHELL(programs_list), separator);
}
static void programs_list_append_top_items(
ProgramsList* programs_list,
gint count
)
{
GarconMenu* all_entries = garcon_menu_new_for_path(
"/usr/share/wintc/shell-res/all.menu"
);
GError* load_error = NULL;
if (!garcon_menu_load(all_entries, NULL, &load_error))
{
wintc_log_error_and_clear(&load_error);
return;
}
// FIXME: In future we will need some >>>algorithm<<< to come up with a 'top'
// programs list to display here, and also reserve the last slot for the
// latest newly added program, if any
//
// For now we simply grab the first items that are pulled in via the
// all.menu file
//
GList* elements = garcon_menu_get_elements(all_entries);
GList* li = elements;
gint i = 0;
GtkWidget* menu_item;
while (i < count && li != NULL)
{
if (
GARCON_IS_MENU_ITEM(li->data) &&
!garcon_menu_item_get_no_display(li->data)
)
{
menu_item =
start_menu_item_new_from_garcon_item(
GARCON_MENU_ITEM(li->data),
NULL,
NULL
);
// FIXME: Shift 32 size to constant
//
start_menu_item_set_icon_size(START_MENU_ITEM(menu_item), 32);
gtk_menu_shell_append(GTK_MENU_SHELL(programs_list), menu_item);
// We only count items we actually added to the increment
//
i++;
}
li = li->next;
}
g_list_free(g_steal_pointer(&elements));
g_clear_object(&all_entries);
}

View File

@@ -0,0 +1,33 @@
#ifndef __PROGRAMSLIST_H__
#define __PROGRAMSLIST_H__
#include <glib.h>
#include <gtk/gtk.h>
G_BEGIN_DECLS
//
// GTK OOP BOILERPLATE
//
typedef struct _ProgramsListClass ProgramsListClass;
typedef struct _ProgramsList ProgramsList;
#define TYPE_PROGRAMS_LIST (programs_list_get_type())
#define PROGRAMS_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), TYPE_PROGRAMS_LIST, ProgramsList))
#define PROGRAMS_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), TYPE_PROGRAMS_LIST, ProgramsListClass))
#define IS_PROGRAMS_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), TYPE_PROGRAMS_LIST))
#define IS_PROGRAMS_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), TYPE_PROGRAMS_LIST))
#define PROGRAMS_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), TYPE_PROGRAMS_LIST, ProgramsListClass))
GType programs_list_get_type(void) G_GNUC_CONST;
//
// PUBLIC FUNCTIONS
//
void programs_list_refresh(
ProgramsList* programs_list
);
G_END_DECLS
#endif

View File

@@ -0,0 +1,173 @@
#include <glib.h>
#include <glib/gi18n.h>
#include <gtk/gtk.h>
#include <wintc-comgtk.h>
#include "../meta.h"
#include "startbutton.h"
#include "startmenu.h"
#include "util.h"
//
// GTK OOP CLASS/INSTANCE DEFINITIONS
//
struct _StartButtonPrivate
{
StartMenu* menu;
gboolean synchronizing;
};
struct _StartButtonClass
{
GtkToggleButtonClass __parent__;
};
struct _StartButton
{
GtkToggleButton __parent__;
StartButtonPrivate* priv;
};
//
// FORWARD DECLARATIONS
//
static void on_clicked(
GtkButton* button,
gpointer user_data
);
static void on_start_menu_hidden(
GtkWidget* widget,
gpointer user_data
);
//
// GTK TYPE DEFINITION & CTORS
//
G_DEFINE_TYPE_WITH_CODE(
StartButton,
start_button,
GTK_TYPE_TOGGLE_BUTTON,
G_ADD_PRIVATE(StartButton)
)
static void start_button_class_init(
WINTC_UNUSED(StartButtonClass* klass)
) {}
static void start_button_init(
StartButton* self
)
{
self->priv = start_button_get_instance_private(self);
self->priv->synchronizing = FALSE;
//
// The layout here - we use a box to represent the icon next to the 'start' text
// so that themes can apply their own icon here (important because the Plex style
// has a white Windows flag instead of the coloured one in Luna and other XP
// styles)
//
// Outer box
//
GtkWidget* outer_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
// 'Flag icon' box
//
GtkWidget* icon_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
// Start text
//
// NOTE: We add two labels for uppercase and lowercase 'start' text, this is so
// that themes can hide one or the other via font-size: 0pt
//
GtkWidget* start_label_l = gtk_label_new(_("start"));
GtkWidget* start_label_u = gtk_label_new(_("Start"));
gtk_box_pack_start(GTK_BOX(outer_box), icon_box, FALSE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(outer_box), start_label_l, FALSE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(outer_box), start_label_u, FALSE, FALSE, 0);
gtk_container_add(GTK_CONTAINER(self), outer_box);
gtk_widget_set_tooltip_text(GTK_WIDGET(self), _("Click here to begin"));
// Add style class
//
wintc_widget_add_style_class(GTK_WIDGET(self), "xp-start-button");
wintc_widget_add_style_class(icon_box, "xp-flag");
wintc_widget_add_style_class(start_label_l, "lower");
wintc_widget_add_style_class(start_label_u, "upper");
// Create menu
//
self->priv->menu = start_menu_new(GTK_WIDGET(self));
g_signal_connect(
G_OBJECT(self),
"clicked",
G_CALLBACK(on_clicked),
NULL
);
connect_start_menu_closed_signal(
self->priv->menu,
G_CALLBACK(on_start_menu_hidden)
);
}
//
// PUBLIC FUNCTIONS
//
GtkWidget* start_button_new(void)
{
return GTK_WIDGET(
g_object_new(TYPE_START_BUTTON, NULL)
);
}
//
// CALLBACKS
//
static void on_clicked(
GtkButton* button,
WINTC_UNUSED(gpointer user_data)
)
{
StartButton* start_button = START_BUTTON(button);
if (start_button->priv->synchronizing)
{
return;
}
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button)))
{
start_menu_present(start_button->priv->menu);
}
else
{
start_menu_close(start_button->priv->menu);
}
}
static void on_start_menu_hidden(
WINTC_UNUSED(GtkWidget* widget),
gpointer user_data
)
{
StartButton* start_button = START_BUTTON(user_data);
start_button->priv->synchronizing = TRUE;
gtk_toggle_button_set_active(
GTK_TOGGLE_BUTTON(start_button),
FALSE
);
start_button->priv->synchronizing = FALSE;
}

View File

@@ -0,0 +1,34 @@
#ifndef __STARTBUTTON_H__
#define __STARTBUTTON_H__
#include <glib.h>
#include <gtk/gtk.h>
#include "startmenu.h"
G_BEGIN_DECLS
//
// GTK OOP BOILERPLATE
//
typedef struct _StartButtonPrivate StartButtonPrivate;
typedef struct _StartButtonClass StartButtonClass;
typedef struct _StartButton StartButton;
#define TYPE_START_BUTTON (start_button_get_type())
#define START_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), TYPE_START_BUTTON, StartButton))
#define START_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), TYPE_START_BUTTON, StartButtonClass))
#define IS_START_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), TYPE_START_BUTTON))
#define IS_START_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), TYPE_START_BUTTON))
#define START_BUTTON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), TYPE_START_BUTTON, StartButtonClass))
GType start_button_get_type(void) G_GNUC_CONST;
//
// PUBLIC FUNCTIONS
//
GtkWidget* start_button_new(void);
G_END_DECLS
#endif

View File

@@ -0,0 +1,592 @@
#include <gdk/gdk.h>
#include <gdk-pixbuf/gdk-pixbuf.h>
#include <glib.h>
#include <glib/gi18n.h>
#include <gtk/gtk.h>
#include <pwd.h>
#include <unistd.h>
#include <wintc-comgtk.h>
#include "../dispproto.h"
#include "../meta.h"
#include "action.h"
#include "placeslist.h"
#include "programslist.h"
#include "startmenu.h"
#include "util.h"
//
// STRUCTURE DEFINITIONS
//
struct _StartMenu
{
GtkWidget* menu;
GtkWidget* main_box;
GtkWidget* start_button;
GtkStyleProvider* userpic_style_provider;
};
//
// FORWARD DECLARATIONS
//
static void create_logoffpane_structure(
StartMenu* start_menu,
GtkBox* box
);
static void create_places_structure(
StartMenu* start_menu,
GtkBox* box
);
static void create_programs_structure(
StartMenu* start_menu,
GtkBox* box
);
static void create_taskcolumns_structure(
StartMenu* start_menu,
GtkBox* box
);
static void create_userpane_structure(
StartMenu* start_menu,
GtkBox* box
);
static void create_vertical_userpane_structure(
StartMenu* start_menu,
GtkBox* box
);
static void update_userpic(
StartMenu* start_menu
);
static void on_action_button_clicked(
GtkButton* button,
gpointer user_data
);
static gboolean on_focus_out(
GtkWidget* widget,
GdkEvent* event,
gpointer user_data
);
static void on_selection_done(
GtkWidget* widget,
StartMenu* start_menu
);
static void on_userpic_clicked(
GtkWidget* userpic,
GdkEventButton* event
);
//
// PUBLIC FUNCTIONS
//
void connect_start_menu_closed_signal(
StartMenu* start_menu,
GCallback callback
)
{
g_signal_connect(
start_menu->menu,
"hide",
callback,
start_menu->start_button
);
}
void start_menu_close(
StartMenu* start_menu
)
{
gtk_widget_hide(start_menu->menu);
}
StartMenu* start_menu_new(
GtkWidget* start_button
)
{
StartMenu* start_menu = g_new(StartMenu, 1);
// On X11, we must use a GtkWindow, on Wayland we use a GtkPopover - the
// reason for this is because popovers cannot exist outside the bounds of
// the parent window on X11
//
// We use a GtkWindow instead on X11 to work around that, using
// gtk_window_move() -- which obviously doesn't work on Wayland
//
// So... GtkWindow on X11, GtkPopover on Wayland :)
//
if (get_display_protocol_in_use() == DISPPROTO_X11)
{
start_menu->menu = gtk_window_new(GTK_WINDOW_TOPLEVEL);
// Set up hints
//
gtk_window_set_type_hint(
GTK_WINDOW(start_menu->menu),
GDK_WINDOW_TYPE_HINT_POPUP_MENU
);
gtk_window_set_resizable(
GTK_WINDOW(start_menu->menu),
FALSE
);
gtk_window_set_keep_above(
GTK_WINDOW(start_menu->menu),
TRUE
);
gtk_window_stick(GTK_WINDOW(start_menu->menu));
gtk_window_set_skip_taskbar_hint(
GTK_WINDOW(start_menu->menu),
TRUE
);
gtk_window_set_title(
GTK_WINDOW(start_menu->menu),
"Start menu"
);
gtk_widget_set_events(
GTK_WIDGET(start_menu->menu),
GDK_FOCUS_CHANGE_MASK
);
// Set up signals
//
g_signal_connect(
start_menu->menu,
"delete-event",
G_CALLBACK(gtk_widget_hide_on_delete),
NULL
);
g_signal_connect(
start_menu->menu,
"focus-out-event",
G_CALLBACK(on_focus_out),
NULL
);
// Set titlebar to the fake titlebar box
//
GtkWidget* fake_titlebar = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
gtk_window_set_titlebar(
GTK_WINDOW(start_menu->menu),
fake_titlebar
);
}
else if (get_display_protocol_in_use() == DISPPROTO_WAYLAND)
{
start_menu->menu = gtk_popover_new(start_button);
}
// Set up structure
//
start_menu->main_box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
create_userpane_structure(start_menu, GTK_BOX(start_menu->main_box));
create_taskcolumns_structure(start_menu, GTK_BOX(start_menu->main_box));
create_logoffpane_structure(start_menu, GTK_BOX(start_menu->main_box));
gtk_container_add(GTK_CONTAINER(start_menu->menu), start_menu->main_box);
// Add style class
//
wintc_widget_add_style_class(GTK_WIDGET(start_menu->menu), "xp-start-menu");
gtk_widget_show_all(start_menu->main_box);
// Attach button
//
start_menu->start_button = start_button;
return start_menu;
}
void start_menu_present(
StartMenu* start_menu
)
{
gint height;
gint x;
gint y;
if (get_display_protocol_in_use() == DISPPROTO_X11)
{
gtk_window_present_with_time(
GTK_WINDOW(start_menu->menu),
GDK_CURRENT_TIME
);
height = gtk_widget_get_allocated_height(start_menu->main_box);
gdk_window_get_origin(
gtk_widget_get_window(start_menu->start_button),
&x,
&y
);
gtk_window_move(
GTK_WINDOW(start_menu->menu),
x,
y - height
);
}
else
{
gtk_widget_show(start_menu->menu);
}
}
//
// PRIVATE FUNCTIONS
//
static void create_logoffpane_structure(
WINTC_UNUSED(StartMenu* start_menu),
GtkBox* box
)
{
GtkWidget* logoffpane_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
//
// These are a couple ordinary buttons, except we have an extra box before the
// label so that themes can add an icon
//
// The reason for not using the gtk-icon-theme here is because the themes need
// to be able to override the image, AND they need to provide a 'hot' graphic for
// when the buttons are hovered
//
// Log off button
//
GtkWidget* logoff_button = gtk_button_new();
GtkWidget* logoff_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
GtkWidget* logoff_icon_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
GtkWidget* logoff_label = gtk_label_new(_("Log Off"));
gtk_box_pack_start(GTK_BOX(logoff_box), logoff_icon_box, FALSE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(logoff_box), logoff_label, FALSE, FALSE, 0);
gtk_container_add(GTK_CONTAINER(logoff_button), logoff_box);
g_signal_connect(
G_OBJECT(logoff_button),
"clicked",
G_CALLBACK(on_action_button_clicked),
GINT_TO_POINTER(WINTC_ACTION_LOGOFF)
);
gtk_widget_set_tooltip_text(
logoff_button,
_("Provides options for closing your programs and logging off, or for leaving your programs running and switching to another user.")
);
wintc_widget_add_style_class(logoff_icon_box, "logoff-icon");
// Shut down button
//
GtkWidget* shutdown_button = gtk_button_new();
GtkWidget* shutdown_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
GtkWidget* shutdown_icon_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
GtkWidget* shutdown_label = gtk_label_new(_("Turn Off Computer"));
gtk_box_pack_start(GTK_BOX(shutdown_box), shutdown_icon_box, FALSE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(shutdown_box), shutdown_label, FALSE, FALSE, 0);
gtk_container_add(GTK_CONTAINER(shutdown_button), shutdown_box);
g_signal_connect(
G_OBJECT(shutdown_button),
"clicked",
G_CALLBACK(on_action_button_clicked),
GINT_TO_POINTER(WINTC_ACTION_SHUTDOWN)
);
gtk_widget_set_tooltip_text(
shutdown_button,
_("Provides options for turning off or restarting your computer, or for activating Stand By or Hibernate modes.")
);
wintc_widget_add_style_class(shutdown_icon_box, "shutdown-icon");
// Pack box
//
gtk_box_pack_end(GTK_BOX(logoffpane_box), shutdown_button, FALSE, FALSE, 0);
gtk_box_pack_end(GTK_BOX(logoffpane_box), logoff_button, FALSE, FALSE, 0);
gtk_box_pack_start(box, logoffpane_box, FALSE, FALSE, 0);
// Add style class
//
wintc_widget_add_style_class(GTK_WIDGET(logoffpane_box), "xp-start-logoffpane");
}
static void create_places_structure(
StartMenu* start_menu,
GtkBox* box
)
{
GtkWidget* places_box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
// Create menu
//
GtkWidget* places_list = GTK_WIDGET(g_object_new(TYPE_PLACES_LIST, NULL));
// Pack box
//
gtk_box_pack_start(GTK_BOX(places_box), places_list, TRUE, TRUE, 0);
gtk_box_pack_start(box, places_box, TRUE, TRUE, 0);
// Set up signals
//
GList* menu_children =
gtk_container_get_children(
GTK_CONTAINER(places_list)
);
wintc_signal_connect_list(
menu_children,
"enter-notify-event",
G_CALLBACK(wintc_menu_shell_select_on_enter),
places_list
);
wintc_signal_connect_list(
menu_children,
"leave-notify-event",
G_CALLBACK(wintc_menu_shell_deselect_on_leave),
places_list
);
g_list_free(g_steal_pointer(&menu_children));
g_signal_connect(
places_list,
"selection-done",
G_CALLBACK(on_selection_done),
start_menu
);
// Add style class
//
wintc_widget_add_style_class(GTK_WIDGET(places_box), "xp-start-places-column");
}
static void create_programs_structure(
StartMenu* start_menu,
GtkBox* box
)
{
GtkWidget* programs_box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
// Create menu
//
GtkWidget* programs_list = GTK_WIDGET(g_object_new(TYPE_PROGRAMS_LIST, NULL));
// Pack box
//
gtk_box_pack_start(GTK_BOX(programs_box), programs_list, TRUE, TRUE, 0);
gtk_box_pack_start(box, programs_box, TRUE, TRUE, 0);
// Set up signals
//
GList* menu_children =
gtk_container_get_children(
GTK_CONTAINER(programs_list)
);
wintc_signal_connect_list(
menu_children,
"enter-notify-event",
G_CALLBACK(wintc_menu_shell_select_on_enter),
programs_list
);
wintc_signal_connect_list(
menu_children,
"leave-notify-event",
G_CALLBACK(wintc_menu_shell_deselect_on_leave),
programs_list
);
g_list_free(g_steal_pointer(&menu_children));
g_signal_connect(
programs_list,
"selection-done",
G_CALLBACK(on_selection_done),
start_menu
);
// Add style class
//
wintc_widget_add_style_class(GTK_WIDGET(programs_box), "xp-start-programs-column");
}
static void create_taskcolumns_structure(
StartMenu* start_menu,
GtkBox* box
)
{
// Create structure
//
GtkWidget* columns_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
create_vertical_userpane_structure(start_menu, GTK_BOX(columns_box));
create_programs_structure(start_menu, GTK_BOX(columns_box));
create_places_structure(start_menu, GTK_BOX(columns_box));
gtk_box_pack_start(box, columns_box, TRUE, TRUE, 0);
// Add style class
//
wintc_widget_add_style_class(GTK_WIDGET(columns_box), "xp-start-columns");
}
static void create_userpane_structure(
StartMenu* start_menu,
GtkBox* box
)
{
GtkWidget* userpane_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
// User profile picture
//
GtkStyleContext* context;
GtkWidget* pic_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
GtkWidget* pic_event_box = gtk_event_box_new();
start_menu->userpic_style_provider =
GTK_STYLE_PROVIDER(gtk_css_provider_new());
context = gtk_widget_get_style_context(pic_box);
gtk_style_context_add_provider(
context,
start_menu->userpic_style_provider,
GTK_STYLE_PROVIDER_PRIORITY_APPLICATION
);
update_userpic(start_menu);
gtk_widget_set_events(pic_event_box, GDK_BUTTON_PRESS_MASK);
gtk_box_pack_start(GTK_BOX(pic_box), pic_event_box, TRUE, TRUE, 0);
g_signal_connect(
pic_event_box,
"button-press-event",
G_CALLBACK(on_userpic_clicked),
NULL
);
// Username display
//
struct passwd* user_pwd = getpwuid(getuid());
GtkWidget* username_label = gtk_label_new(user_pwd->pw_name);
// Construct box
//
gtk_box_pack_start(GTK_BOX(userpane_box), pic_box, FALSE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(userpane_box), username_label, FALSE, FALSE, 0);
gtk_box_pack_start(box, userpane_box, FALSE, FALSE, 0);
// Add style class
//
wintc_widget_add_style_class(userpane_box, "xp-start-userpane");
}
static void create_vertical_userpane_structure(
WINTC_UNUSED(StartMenu* start_menu),
GtkBox* box
)
{
GtkWidget* userpane_box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
// Username display
//
struct passwd* user_pwd = getpwuid(getuid());
GtkWidget* username_label = gtk_label_new(user_pwd->pw_name);
gtk_label_set_angle(GTK_LABEL(username_label), 90);
// Construct box
//
gtk_box_pack_end(GTK_BOX(userpane_box), username_label, FALSE, FALSE, 0);
gtk_box_pack_start(box, userpane_box, FALSE, FALSE, 0);
// Add style class
//
wintc_widget_add_style_class(userpane_box, "xp-start-vuserpane");
}
static void update_userpic(
StartMenu* start_menu
)
{
static gchar* css = NULL;
if (css == NULL)
{
// FIXME: This should read from whatever the XDG path is, probably needs a
// g_strdup_printf for the username
//
css = "* { background-image: url('/usr/share/wintc/shell-res/fpo-userpic.png'); }";
}
// Give GTK a bump that we want to update the pic
//
gtk_css_provider_load_from_data(
GTK_CSS_PROVIDER(start_menu->userpic_style_provider),
css,
-1,
NULL
);
}
//
// CALLBACKS
//
static void on_action_button_clicked(
WINTC_UNUSED(GtkButton* button),
gpointer user_data
)
{
launch_action(GPOINTER_TO_INT(user_data));
}
static gboolean on_focus_out(
GtkWidget* widget,
WINTC_UNUSED(GdkEvent* event),
WINTC_UNUSED(gpointer user_data)
)
{
gtk_widget_hide(widget);
return TRUE;
}
static void on_selection_done(
WINTC_UNUSED(GtkWidget* widget),
StartMenu* start_menu
)
{
gtk_widget_hide(GTK_WIDGET(start_menu->menu));
}
static void on_userpic_clicked(
WINTC_UNUSED(GtkWidget* userpic),
GdkEventButton* event
)
{
//
// FIXME: Implement this when the user pic cpl is done!
//
if (event->button > 1)
{
return;
}
GError* error = NULL;
g_set_error(
&error,
WINTC_GENERAL_ERROR,
WINTC_GENERAL_ERROR_NOTIMPL,
"Cannot edit user pic yet!"
);
wintc_nice_error_and_clear(&error);
}

View File

@@ -0,0 +1,31 @@
#ifndef __STARTMENU_H__
#define __STARTMENU_H__
#include <gtk/gtk.h>
//
// STRUCTURE DEFINITIONS
//
typedef struct _StartMenu StartMenu;
//
// PUBLIC FUNCTIONS
//
void connect_start_menu_closed_signal(
StartMenu* start_menu,
GCallback callback
);
void start_menu_close(
StartMenu* start_menu
);
StartMenu* start_menu_new(
GtkWidget* start_button
);
void start_menu_present(
StartMenu* start_menu
);
#endif

View File

@@ -0,0 +1,478 @@
#include <garcon/garcon.h>
#include <gdk/gdk.h>
#include <glib.h>
#include <glib/gi18n.h>
#include <gio/gdesktopappinfo.h>
#include <gio/gio.h>
#include <gtk/gtk.h>
#include <wintc-comgtk.h>
#include <wintc-exec.h>
#include <wintc-shllang.h>
#include "../meta.h"
#include "action.h"
#include "startmenuitem.h"
#include "util.h"
//
// GTK OOP CLASS/INSTANCE DEFINITIONS
//
struct _StartMenuItemPrivate
{
StartMenuItem* menuitem;
WinTCAction action;
gchar* cmdline;
gboolean is_action;
GtkWidget* icon;
GtkWidget* label;
GtkWidget* label_generic;
};
struct _StartMenuItemClass
{
GtkMenuItemClass __parent__;
};
struct _StartMenuItem
{
GtkMenuItem __parent__;
StartMenuItemPrivate* priv;
};
//
// FORWARD DECLARATIONS
//
static void start_menu_item_finalize(
GObject* object
);
static GtkWidget* start_menu_item_new_manual(
const gchar* icon_name,
const gchar* program_name,
const gchar* comment,
const gchar* generic_name
);
static void on_menu_item_activate(
GtkWidget* widget,
gpointer user_data
);
//
// GTK TYPE DEFINITIONS & CTORS
//
G_DEFINE_TYPE_WITH_CODE(
StartMenuItem,
start_menu_item,
GTK_TYPE_MENU_ITEM,
G_ADD_PRIVATE(StartMenuItem)
)
static void start_menu_item_class_init(
StartMenuItemClass* klass
)
{
GObjectClass* gclass = G_OBJECT_CLASS(klass);
gclass->finalize = start_menu_item_finalize;
}
static void start_menu_item_init(
StartMenuItem* self
)
{
self->priv = start_menu_item_get_instance_private(self);
g_signal_connect(
G_OBJECT(self),
"activate",
G_CALLBACK(on_menu_item_activate),
NULL
);
}
//
// FINALIZE
//
static void start_menu_item_finalize(
GObject* object
)
{
StartMenuItem* start_menu_item = START_MENU_ITEM(object);
if (start_menu_item->priv->cmdline != NULL)
{
g_free(start_menu_item->priv->cmdline);
}
(*G_OBJECT_CLASS(start_menu_item_parent_class)->finalize) (object);
}
//
// PUBLIC FUNCTIONS
//
GtkWidget* start_menu_item_new_from_action(
WinTCAction action
)
{
const gchar* comment;
const gchar* icon_name;
const gchar* name;
GtkWidget* start_menu_item;
switch (action)
{
case WINTC_ACTION_MYDOCS:
comment = _("Opens the My Documents folder, where you can store letters, reports, notes, and other kinds of documents.");
icon_name = "folder-documents";
name = wintc_get_place_name(WINTC_PLACE_DOCUMENTS);
break;
case WINTC_ACTION_MYRECENTS:
comment = _("Displays recently opened documents and folders.");
icon_name = "document-open-recent";
name = wintc_get_place_name(WINTC_PLACE_RECENTS);
break;
case WINTC_ACTION_MYPICS:
comment = _("Opens the My Pictures folder, where you can store digital photos, images, and graphics files.");
icon_name = "folder-pictures";
name = wintc_get_place_name(WINTC_PLACE_PICTURES);
break;
case WINTC_ACTION_MYMUSIC:
comment = _("Opens the My Music folder, where you can store music and other audio files.");
icon_name = "folder-music";
name = wintc_get_place_name(WINTC_PLACE_MUSIC);
break;
case WINTC_ACTION_MYCOMP:
comment = _("Gives access to, and information about, the disk drives, cameras, scanners, and other hardware connected to your computer.");
icon_name = "computer";
name = wintc_get_place_name(WINTC_PLACE_DRIVES);
break;
case WINTC_ACTION_CONTROL:
comment = _("Provides options for you to customize the appearance and functionality of your computer, add or remove programs, and set up network connections and user accounts.");
icon_name = "preferences-other";
name = wintc_get_place_name(WINTC_PLACE_CONTROLPANEL);
break;
case WINTC_ACTION_MIMEMGMT:
comment = _("Chooses default programs for certain activities, such as Web browsing or sending e-mail, and specifies which programs are accessible from the Start menu, desktop, and other locations.");
icon_name = "preferences-desktop-default-applications";
name = _("Set Program Access and Defaults");
break;
case WINTC_ACTION_CONNECTTO:
comment = _("Connects to other computers, networks, and the Internet.");
icon_name = "preferences-system-network";
name = _("Connect To");
break;
case WINTC_ACTION_PRINTERS:
comment = _("Shows installed printers and fax printers and helps you add new ones.");
icon_name = "printer";
name = wintc_get_place_name(WINTC_PLACE_PRINTERS);
break;
case WINTC_ACTION_HELP:
comment = _("Opens a central location for Help topics, tutorials, troubleshooting, and other support services.");
icon_name = "help-browser";
name = _("Help and Support");
break;
case WINTC_ACTION_SEARCH:
comment = _("Opens a window where you can pick search options and work with search results.");
icon_name = "system-search";
name = _("Search");
break;
case WINTC_ACTION_RUN:
comment = _("Opens a program, folder, document, or Web site.");
icon_name = "system-run";
name = _("Run...");
break;
default:
comment = "Unknown action.";
icon_name = "dialog-error";
name = "Unknown";
break;
}
start_menu_item =
start_menu_item_new_manual(
icon_name,
name,
comment,
NULL
);
// Add action state
//
(START_MENU_ITEM(start_menu_item))->priv->action = action;
(START_MENU_ITEM(start_menu_item))->priv->is_action = TRUE;
return start_menu_item;
}
GtkWidget* start_menu_item_new_from_desktop_entry(
GDesktopAppInfo* entry,
const gchar* generic_name,
const gchar* comment
)
{
// FIXME: Temp bodge for handling NULL desktop entry (handle properly in
// programslist.c)
//
// (We just insert a default item to open the MIME management action)
//
if (entry == NULL)
{
GtkWidget* null_menu_item =
start_menu_item_new_manual(
"important",
"Click to specify a default",
comment != NULL ? comment : "No default program could be identified.",
generic_name
);
(START_MENU_ITEM(null_menu_item))->priv->action = WINTC_ACTION_MIMEMGMT;
(START_MENU_ITEM(null_menu_item))->priv->is_action = TRUE;
return null_menu_item;
}
// Normal code - desktop entry actually exists! Wahey!
//
GAppInfo* app_info = G_APP_INFO(entry);
const gchar* app_desc = g_app_info_get_description(app_info);
const gchar* exe_path = g_app_info_get_executable(app_info);
const gchar* name = g_app_info_get_name(app_info);
gchar* exe_name = g_path_get_basename(exe_path);
GtkWidget* start_menu_item =
start_menu_item_new_manual(
exe_name,
name,
comment != NULL ? comment : app_desc,
generic_name
);
(START_MENU_ITEM(start_menu_item))->priv->cmdline =
wintc_desktop_app_info_get_command(entry);
g_free(exe_name);
return start_menu_item;
}
GtkWidget* start_menu_item_new_from_garcon_item(
GarconMenuItem* item,
const gchar* generic_name,
const gchar* comment
)
{
GtkWidget* start_menu_item =
start_menu_item_new_manual(
garcon_menu_item_get_icon_name(item),
garcon_menu_item_get_name(item),
comment != NULL ?
comment :
garcon_menu_item_get_comment(item),
generic_name
);
(START_MENU_ITEM(start_menu_item))->priv->cmdline =
garcon_menu_item_get_command_expanded(item);
return start_menu_item;
}
void start_menu_item_set_icon_size(
StartMenuItem* item,
gint size
)
{
g_assert(item->priv->icon != NULL);
gtk_image_set_pixel_size(
GTK_IMAGE(item->priv->icon),
size
);
}
//
// PRIVATE FUNCTIONS
//
static GtkWidget* start_menu_item_new_manual(
const gchar* icon_name,
const gchar* program_name,
const gchar* comment,
const gchar* generic_name
)
{
StartMenuItem* start_menu_item =
START_MENU_ITEM(g_object_new(TYPE_START_MENU_ITEM, NULL));
// Application icon
//
start_menu_item->priv->icon =
gtk_image_new_from_icon_name(
icon_name,
GTK_ICON_SIZE_MENU
);
// Depending on if a generic name is specified, we create either a normal item or
// a 'default' item (the kind that go at the top of the Start menu)
//
if (generic_name == NULL) // Normal item
{
// Program name
//
start_menu_item->priv->label =
gtk_label_new(program_name);
// Set up structure
//
GtkWidget* box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
gtk_box_pack_start(
GTK_BOX(box),
start_menu_item->priv->icon,
FALSE,
FALSE,
0
);
gtk_box_pack_start(
GTK_BOX(box),
start_menu_item->priv->label,
FALSE,
FALSE,
0
);
gtk_container_add(GTK_CONTAINER(start_menu_item), box);
}
else // Default item
{
// Add style class to distinguish this menu item
//
wintc_widget_add_style_class(
GTK_WIDGET(start_menu_item),
"xp-start-default-item"
);
// Generic program type
//
start_menu_item->priv->label_generic =
gtk_label_new(generic_name);
gtk_widget_set_halign(
start_menu_item->priv->label_generic,
GTK_ALIGN_START
);
// Program name
//
start_menu_item->priv->label =
gtk_label_new(program_name);
// Set up structure
//
GtkWidget* outer_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
GtkWidget* label_box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
gtk_widget_set_valign(label_box, GTK_ALIGN_CENTER);
gtk_box_pack_start(
GTK_BOX(label_box),
start_menu_item->priv->label_generic,
FALSE,
FALSE,
0
);
gtk_box_pack_start(
GTK_BOX(label_box),
start_menu_item->priv->label,
FALSE,
FALSE,
0
);
gtk_box_pack_start(
GTK_BOX(outer_box),
start_menu_item->priv->icon,
FALSE,
FALSE,
0
);
gtk_box_pack_start(
GTK_BOX(outer_box),
label_box,
FALSE,
FALSE,
0
);
gtk_container_add(GTK_CONTAINER(start_menu_item), outer_box);
}
// Set program name line wrapping
//
gtk_label_set_line_wrap(
GTK_LABEL(start_menu_item->priv->label),
TRUE
);
gtk_label_set_max_width_chars(
GTK_LABEL(start_menu_item->priv->label),
24
);
gtk_label_set_xalign(
GTK_LABEL(start_menu_item->priv->label),
0.0
);
// Add program comment
//
if (comment != NULL)
{
gchar* real_comment = wintc_str_set_suffix(comment, ".");
gtk_widget_set_tooltip_text(
GTK_WIDGET(start_menu_item),
real_comment
);
g_free(real_comment);
}
return GTK_WIDGET(start_menu_item);
}
//
// CALLBACKS
//
static void on_menu_item_activate(
GtkWidget* widget,
WINTC_UNUSED(gpointer user_data)
)
{
StartMenuItem* start_menu_item = START_MENU_ITEM(widget);
if (start_menu_item->priv->is_action)
{
launch_action(start_menu_item->priv->action);
}
else
{
launch_command(start_menu_item->priv->cmdline);
}
}

View File

@@ -0,0 +1,51 @@
#ifndef __STARTMENUITEM_H__
#define __STARTMENUITEM_H__
#include <garcon/garcon.h>
#include <gio/gdesktopappinfo.h>
#include <glib.h>
#include <gtk/gtk.h>
#include <wintc-exec.h>
G_BEGIN_DECLS
//
// GTK OOP BOILERPLATE
//
typedef struct _StartMenuItemPrivate StartMenuItemPrivate;
typedef struct _StartMenuItemClass StartMenuItemClass;
typedef struct _StartMenuItem StartMenuItem;
#define TYPE_START_MENU_ITEM (start_menu_item_get_type())
#define START_MENU_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), TYPE_START_MENU_ITEM, StartMenuItem))
#define START_MENU_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), TYPE_START_MENU_ITEM, StartMenuItemClass))
#define IS_START_MENU_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), TYPE_START_MENU_ITEM))
#define IS_START_MENU_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), TYPE_START_MENU_ITEM))
#define START_MENU_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), TYPE_START_MENU_ITEM, StartMenuItemClass))
GType start_menu_item_get_type(void) G_GNUC_CONST;
//
// PUBLIC FUNCTIONS
//
GtkWidget* start_menu_item_new_from_action(
WinTCAction action
);
GtkWidget* start_menu_item_new_from_desktop_entry(
GDesktopAppInfo* entry,
const gchar* generic_name,
const gchar* comment
);
GtkWidget* start_menu_item_new_from_garcon_item(
GarconMenuItem* item,
const gchar* generic_name,
const gchar* comment
);
void start_menu_item_set_icon_size(
StartMenuItem* item,
gint size
);
G_END_DECLS
#endif

View File

@@ -0,0 +1,28 @@
#include <garcon/garcon.h>
#include <glib.h>
#include <wintc-exec.h>
#include "util.h"
//
// PUBLIC FUNCTIONS
//
gchar* garcon_menu_item_get_command_expanded(
GarconMenuItem* item
)
{
const gchar* raw_cmd = garcon_menu_item_get_command(item);
if (raw_cmd == NULL)
{
return NULL;
}
return wintc_expand_desktop_entry_cmdline(
raw_cmd,
garcon_menu_item_get_name(item),
garcon_menu_item_get_icon_name(item),
garcon_menu_item_get_path(item),
garcon_menu_item_requires_terminal(item)
);
}

View File

@@ -0,0 +1,11 @@
#ifndef __UTIL_H__
#define __UTIL_H__
#include <garcon/garcon.h>
#include <glib.h>
gchar* garcon_menu_item_get_command_expanded(
GarconMenuItem* item
);
#endif

View File

@@ -0,0 +1,184 @@
#include <glib.h>
#include <gtk/gtk.h>
#include "clock.h"
//
// GTK OOP CLASS/INSTANCE DEFINITIONS
//
struct _TrayClockPrivate
{
TrayClock* tray_clock;
guint clock_source_id;
};
struct _TrayClockClass
{
GtkLabelClass __parent__;
};
struct _TrayClock
{
GtkLabel __parent__;
TrayClockPrivate* priv;
};
//
// FORWARD DECLARATIONS
//
static void tray_clock_finalize(
GObject* object
);
static void tray_clock_launch_time(
TrayClock* tray_clock
);
static void tray_clock_update_time(
TrayClock* tray_clock
);
static gboolean on_clock_timeout_elapsed(
gpointer data
);
static gboolean on_sync_timeout_elapsed(
gpointer data
);
//
// GTK TYPE DEFINITION & CTORS
//
G_DEFINE_TYPE_WITH_CODE(
TrayClock,
tray_clock,
GTK_TYPE_LABEL,
G_ADD_PRIVATE(TrayClock)
)
static void tray_clock_class_init(
TrayClockClass* klass
)
{
GObjectClass* gclass = G_OBJECT_CLASS(klass);
gclass->finalize = tray_clock_finalize;
}
static void tray_clock_init(
TrayClock* self
)
{
self->priv = tray_clock_get_instance_private(self);
// Add style class
//
GtkStyleContext* style = gtk_widget_get_style_context(GTK_WIDGET(self));
gtk_style_context_add_class(style, "clock");
// Establish clock - if we're not dead on the minute then delay launch to sync
// up
//
GDateTime* time = g_date_time_new_now_local();
gint delay = 60 - g_date_time_get_second(time);
if (delay > 0)
{
tray_clock_update_time(self);
g_timeout_add_seconds_full(
G_PRIORITY_DEFAULT,
delay,
on_sync_timeout_elapsed,
self,
NULL
);
}
else
{
tray_clock_launch_time(self);
}
g_date_time_unref(time);
}
//
// FINALIZE
//
static void tray_clock_finalize(
GObject* object
)
{
TrayClock* tray_clock = TRAY_CLOCK(object);
if (tray_clock->priv->clock_source_id > 0)
{
g_source_remove(tray_clock->priv->clock_source_id);
}
(*G_OBJECT_CLASS(tray_clock_parent_class)->finalize) (object);
}
//
// PUBLIC FUNCTIONS
//
GtkWidget* tray_clock_new(void)
{
return GTK_WIDGET(
g_object_new(TYPE_TRAY_CLOCK, NULL)
);
}
//
// PRIVATE FUNCTIONS
//
static void tray_clock_launch_time(
TrayClock* tray_clock
)
{
tray_clock_update_time(tray_clock);
tray_clock->priv->clock_source_id =
g_timeout_add_seconds_full(
G_PRIORITY_DEFAULT,
60,
on_clock_timeout_elapsed,
tray_clock,
NULL
);
}
static void tray_clock_update_time(
TrayClock* tray_clock
)
{
GDateTime* time = g_date_time_new_now_local();
gchar* timestr = g_date_time_format(time, "%H:%M");
gtk_label_set_text(GTK_LABEL(tray_clock), timestr);
g_date_time_unref(time);
g_free(timestr);
}
//
// CALLBACKS
//
static gboolean on_clock_timeout_elapsed(
gpointer data
)
{
tray_clock_update_time(TRAY_CLOCK(data));
return TRUE;
}
static gboolean on_sync_timeout_elapsed(
gpointer data
)
{
tray_clock_launch_time(TRAY_CLOCK(data));
return FALSE;
}

View File

@@ -0,0 +1,32 @@
#ifndef __CLOCK_H__
#define __CLOCK_H__
#include <glib.h>
#include <gtk/gtk.h>
G_BEGIN_DECLS
//
// GTK OOP BOILERPLATE
//
typedef struct _TrayClockPrivate TrayClockPrivate;
typedef struct _TrayClockClass TrayClockClass;
typedef struct _TrayClock TrayClock;
#define TYPE_TRAY_CLOCK (tray_clock_get_type())
#define TRAY_CLOCK(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), TYPE_TRAY_CLOCK, TrayClock))
#define TRAY_CLOCK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), TYPE_TRAY_CLOCK, TrayClockClass))
#define IS_TRAY_CLOCK(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), TYPE_TRAY_CLOCK))
#define IS_TRAY_CLOCK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), TYPE_TRAY_CLOCK))
#define TRAY_CLOCK_GET_CLASS (G_TYPE_INSTANCE_GET_CLASS((obj), TYPE_TRAY_CLOCK, TrayClock))
GType tray_clock_get_type(void) G_GNUC_CONST;
G_END_DECLS
//
// PUBLIC FUNCTIONS
//
GtkWidget* tray_clock_new(void);
#endif

View File

@@ -0,0 +1,26 @@
#include <gtk/gtk.h>
#include <wintc-comgtk.h>
#include "clock.h"
#include "notifarea.h"
//
// PUBLIC FUNCTIONS
//
GtkWidget* notification_area_new(void)
{
GtkWidget* box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
GtkWidget* clock = tray_clock_new();
wintc_widget_add_style_class(box, "wintc-systray");
gtk_box_pack_start(
GTK_BOX(box),
clock,
FALSE,
FALSE,
0
);
return box;
}

View File

@@ -0,0 +1,6 @@
#include <gtk/gtk.h>
//
// PUBLIC FUNCTIONS
//
GtkWidget* notification_area_new(void);

View File

@@ -0,0 +1,6 @@
#ifndef __TASKBAND_H__
#define __TASKBAND_H__
#define TASKBAND_ROW_HEIGHT 30
#endif

View File

@@ -0,0 +1,413 @@
#include <glib.h>
#include <gtk/gtk.h>
#include <wintc-comgtk.h>
#include "../taskband.h"
#include "taskbuttonbar.h"
#include "windowmonitor.h"
#define TASKBUTTON_MAX_WIDTH 160
#define TASKBUTTON_MIN_WIDTH 52
#define TASKBUTTON_BAR_UPDOWN_WIDTH 17
//
// GTK OOP CLASS/INSTANCE DEFINITIONS
//
struct _TaskButtonBarPrivate
{
GSList* buttons;
WindowMonitor* window_monitor;
};
struct _TaskButtonBarClass
{
GtkContainerClass __parent__;
};
struct _TaskButtonBar
{
GtkContainer __parent__;
TaskButtonBarPrivate* priv;
};
//
// FORWARD DECLARATIONS
//
static void taskbutton_bar_get_preferred_height(
GtkWidget* widget,
gint* minimum_height,
gint* natural_height
);
static void taskbutton_bar_get_preferred_height_for_width(
GtkWidget* widget,
gint width,
gint* minimum_height,
gint* natural_height
);
static void taskbutton_bar_get_preferred_width(
GtkWidget* widget,
gint* minimum_width,
gint* natural_width
);
static void taskbutton_bar_get_preferred_width_for_height(
GtkWidget* widget,
gint height,
gint* minimum_width,
gint* natural_width
);
static void taskbutton_bar_size_allocate(
GtkWidget* widget,
GtkAllocation* allocation
);
static void taskbutton_bar_add(
GtkContainer* container,
GtkWidget* widget
);
static GType taskbutton_bar_child_type(
GtkContainer* container
);
static void taskbutton_bar_forall(
GtkContainer* container,
gboolean include_internals,
GtkCallback callback,
gpointer callback_data
);
static void taskbutton_bar_remove(
GtkContainer* container,
GtkWidget* widget
);
static gboolean taskbutton_bar_has_button(
TaskButtonBar* taskbutton_bar,
GtkToggleButton* button
);
//
// GTK TYPE DEFINITIONS & CTORS
//
G_DEFINE_TYPE_WITH_CODE(
TaskButtonBar,
taskbutton_bar,
GTK_TYPE_CONTAINER,
G_ADD_PRIVATE(TaskButtonBar)
)
static void taskbutton_bar_class_init(
TaskButtonBarClass* klass
)
{
GtkContainerClass* container_class = GTK_CONTAINER_CLASS(klass);
GtkWidgetClass* widget_class = GTK_WIDGET_CLASS(klass);
widget_class->get_preferred_height = taskbutton_bar_get_preferred_height;
widget_class->get_preferred_height_for_width =
taskbutton_bar_get_preferred_height_for_width;
widget_class->get_preferred_width = taskbutton_bar_get_preferred_width;
widget_class->get_preferred_width_for_height =
taskbutton_bar_get_preferred_width_for_height;
widget_class->size_allocate = taskbutton_bar_size_allocate;
container_class->add = taskbutton_bar_add;
container_class->child_type = taskbutton_bar_child_type;
container_class->forall = taskbutton_bar_forall;
container_class->remove = taskbutton_bar_remove;
}
static void taskbutton_bar_init(
TaskButtonBar* self
)
{
self->priv = taskbutton_bar_get_instance_private(self);
self->priv->window_monitor =
window_monitor_init_management(GTK_CONTAINER(self));
gtk_widget_set_has_window(GTK_WIDGET(self), FALSE);
wintc_widget_add_style_class(GTK_WIDGET(self), "wintc-taskbuttons");
}
//
// CLASS VIRTUAL METHODS
//
static void taskbutton_bar_add(
GtkContainer* container,
GtkWidget* widget
)
{
TaskButtonBar* taskbutton_bar = TASKBUTTON_BAR(container);
if (
taskbutton_bar_has_button(
taskbutton_bar,
GTK_TOGGLE_BUTTON(widget)
)
)
{
return;
}
gtk_widget_set_parent(widget, GTK_WIDGET(container));
taskbutton_bar->priv->buttons =
g_slist_append(taskbutton_bar->priv->buttons, widget);
}
static GType taskbutton_bar_child_type(
WINTC_UNUSED(GtkContainer* container)
)
{
return GTK_TYPE_TOGGLE_BUTTON;
}
static void taskbutton_bar_forall(
GtkContainer* container,
WINTC_UNUSED(gboolean include_internals),
GtkCallback callback,
gpointer callback_data
)
{
TaskButtonBar* taskbutton_bar = TASKBUTTON_BAR(container);
g_slist_foreach(
taskbutton_bar->priv->buttons,
(GFunc) callback,
callback_data
);
}
static void taskbutton_bar_remove(
GtkContainer* container,
GtkWidget* widget
)
{
TaskButtonBar* taskbutton_bar = TASKBUTTON_BAR(container);
GSList* to_remove;
to_remove = g_slist_find(taskbutton_bar->priv->buttons, widget);
if (to_remove == NULL)
{
return;
}
gtk_widget_unparent(GTK_WIDGET(to_remove->data));
taskbutton_bar->priv->buttons =
g_slist_delete_link(taskbutton_bar->priv->buttons, to_remove);
gtk_widget_queue_resize(GTK_WIDGET(container));
}
static void taskbutton_bar_get_preferred_height(
WINTC_UNUSED(GtkWidget* widget),
gint* minimum_height,
gint* natural_height
)
{
*minimum_height = TASKBAND_ROW_HEIGHT;
*natural_height = TASKBAND_ROW_HEIGHT;
}
static void taskbutton_bar_get_preferred_height_for_width(
WINTC_UNUSED(GtkWidget* widget),
WINTC_UNUSED(gint width),
gint* minimum_height,
gint* natural_height
)
{
*minimum_height = TASKBAND_ROW_HEIGHT;
*natural_height = TASKBAND_ROW_HEIGHT;
}
static void taskbutton_bar_get_preferred_width(
GtkWidget* widget,
gint* minimum_width,
gint* natural_width
)
{
gint accum_min_width = 0;
gint accum_nat_width = 0;
GtkWidget* button;
GtkBorder button_margins;
GtkStyleContext* button_style;
GSList* child;
TaskButtonBar* taskbutton_bar = TASKBUTTON_BAR(widget);
child = taskbutton_bar->priv->buttons;
while (child)
{
button = GTK_WIDGET(child->data);
button_style = gtk_widget_get_style_context(button);
gtk_style_context_get_margin(
button_style,
GTK_STATE_FLAG_NORMAL,
&button_margins
);
accum_nat_width += TASKBUTTON_MAX_WIDTH +
button_margins.left +
button_margins.right;
// Set min width only for one child
//
if (accum_min_width == 0)
{
accum_min_width = TASKBUTTON_MIN_WIDTH +
button_margins.left +
button_margins.right;
}
child = child->next;
}
accum_nat_width += TASKBUTTON_BAR_UPDOWN_WIDTH;
*minimum_width = accum_min_width;
*natural_width = accum_nat_width;
}
static void taskbutton_bar_get_preferred_width_for_height(
GtkWidget* widget,
WINTC_UNUSED(gint height),
gint* minimum_width,
gint* natural_width
)
{
taskbutton_bar_get_preferred_width(
widget,
minimum_width,
natural_width
);
}
static void taskbutton_bar_size_allocate(
GtkWidget* widget,
GtkAllocation* allocation
)
{
gint accum_margins = 0;
gint accum_width = 0;
gint alloc_per_child = 0;
GtkWidget* button;
GtkBorder button_margins;
GtkStyleContext* button_style;
GSList* child;
GtkAllocation child_alloc;
guint i;
guint n_buttons = 0;
guint n_buttons_can_fit = 0;
TaskButtonBar* taskbutton_bar = TASKBUTTON_BAR(widget);
n_buttons = g_slist_length(taskbutton_bar->priv->buttons);
gtk_widget_set_allocation(widget, allocation);
// Phase 1 - calculate how much space would be taken up if all the buttons
// are the minimum size
//
child = taskbutton_bar->priv->buttons;
while (child)
{
button = GTK_WIDGET(child->data);
button_style = gtk_widget_get_style_context(button);
gtk_style_context_get_margin(
button_style,
GTK_STATE_FLAG_NORMAL,
&button_margins
);
accum_width += TASKBUTTON_MIN_WIDTH +
button_margins.left +
button_margins.right;
if (accum_width > allocation->width)
{
break;
}
n_buttons_can_fit++;
child = child->next;
}
// Phase 2 - based on the number of widgets that can fit, share the free
// space in the container
//
if (n_buttons_can_fit > 0)
{
alloc_per_child =
MIN(
TASKBUTTON_MAX_WIDTH,
(allocation->width - accum_margins) / n_buttons_can_fit
);
}
child = taskbutton_bar->priv->buttons;
child_alloc.x = allocation->x;
child_alloc.y = 0;
child_alloc.width = 0;
child_alloc.height = TASKBAND_ROW_HEIGHT;
for (i = 0; i < n_buttons_can_fit; i++)
{
button = GTK_WIDGET(child->data);
button_style = gtk_widget_get_style_context(button);
gtk_style_context_get_margin(
button_style,
GTK_STATE_FLAG_NORMAL,
&button_margins
);
child_alloc.width = alloc_per_child +
button_margins.left +
button_margins.right;
gtk_widget_size_allocate(button, &child_alloc);
gtk_widget_set_visible(button, TRUE);
child_alloc.x += child_alloc.width;
child = child->next;
}
for (i = n_buttons_can_fit; i < n_buttons; i++)
{
button = GTK_WIDGET(child->data);
gtk_widget_set_visible(button, FALSE);
child = child->next;
}
}
//
// PUBLIC FUNCTIONS
//
GtkWidget* taskbutton_bar_new(void)
{
return GTK_WIDGET(
g_object_new(
TYPE_TASKBUTTON_BAR,
NULL
)
);
}
//
// PRIVATE FUNCTIONS
//
static gboolean taskbutton_bar_has_button(
TaskButtonBar* taskbutton_bar,
GtkToggleButton* button
)
{
return g_slist_find(taskbutton_bar->priv->buttons, button) != NULL;
}

View File

@@ -0,0 +1,32 @@
#ifndef __TASKBUTTONBAR_H__
#define __TASKBUTTONBAR_H__
#include <glib.h>
#include <gtk/gtk.h>
G_BEGIN_DECLS
//
// GTK OOP BOILERPLATE
//
typedef struct _TaskButtonBarPrivate TaskButtonBarPrivate;
typedef struct _TaskButtonBarClass TaskButtonBarClass;
typedef struct _TaskButtonBar TaskButtonBar;
#define TYPE_TASKBUTTON_BAR (taskbutton_bar_get_type())
#define TASKBUTTON_BAR(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), TYPE_TASKBUTTON_BAR, TaskButtonBar))
#define TASKBUTTON_BAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), TYPE_TASKBUTTON_BAR, TaskButtonBarClass))
#define IS_TASKBUTTON_BAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), TYPE_TASKBUTTON_BAR))
#define IS_TASKBUTTON_BAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), TYPE_TASKBUTTON_BAR))
#define TASKBUTTON_BAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), TYPE_TASKBUTTON_BAR, TaskButtonBarClass))
GType taskbutton_bar_get_type(void) G_GNUC_CONST;
//
// PUBLIC FUNCTIONS
//
GtkWidget* taskbutton_bar_new(void);
G_END_DECLS
#endif

View File

@@ -0,0 +1,425 @@
#include <glib.h>
#include <gtk/gtk.h>
#include <pango/pango.h>
#include <wintc-comgtk.h>
#include "../dispproto.h"
#include "windowmonitor.h"
//
// STRUCTURE DEFINITIONS
//
typedef struct _WindowManagerSingle
{
GtkToggleButton* button;
GtkImage* button_icon;
gboolean button_synchronizing;
GtkLabel* button_text;
WndMgmtWindow* managed_window;
WindowMonitor* parent_monitor;
} WindowManagerSingle;
struct _WindowMonitor
{
GtkContainer* container;
WndMgmtScreen* screen;
GHashTable* window_manager_map;
};
//
// FORWARD DECLARATIONS
//
static void on_active_window_changed(
WndMgmtScreen* screen,
WndMgmtWindow* previously_active_window,
gpointer user_data
);
static void on_window_closed(
WndMgmtScreen* screen,
WndMgmtWindow* window,
gpointer user_data
);
static void on_window_opened(
WndMgmtScreen* screen,
WndMgmtWindow* window,
gpointer user_data
);
static void on_window_icon_changed(
WndMgmtWindow* window,
gpointer user_data
);
static void on_window_name_changed(
WndMgmtWindow* window,
gpointer user_data
);
static void on_window_state_changed(
WndMgmtWindow* window,
gint changed_mask,
gint new_state,
gpointer user_data
);
static void on_window_button_toggled(
GtkToggleButton* button,
gpointer user_data
);
static void window_manager_update_icon(
WindowManagerSingle* window_manager
);
static void window_manager_update_state(
WindowManagerSingle* window_manager
);
static void window_manager_update_text(
WindowManagerSingle* window_manager
);
//
// PUBLIC FUNCTIONS
//
WindowMonitor* window_monitor_init_management(
GtkContainer* container
)
{
WindowMonitor* window_monitor = g_new(WindowMonitor, 1);
window_monitor->container = container;
window_monitor->screen = wndmgmt_screen_get_default();
window_monitor->window_manager_map = g_hash_table_new(
g_direct_hash,
g_direct_equal
);
g_signal_connect(
window_monitor->screen,
"active-window-changed",
G_CALLBACK(on_active_window_changed),
window_monitor
);
g_signal_connect(
window_monitor->screen,
"window-closed",
G_CALLBACK(on_window_closed),
window_monitor
);
g_signal_connect(
window_monitor->screen,
"window-opened",
G_CALLBACK(on_window_opened),
window_monitor
);
return window_monitor;
}
//
// PRIVATE FUNCTIONS
//
static void window_manager_update_icon(
WindowManagerSingle* window_manager
)
{
if (window_manager->button == NULL)
{
return;
}
gtk_image_set_from_pixbuf(
window_manager->button_icon,
wndmgmt_window_get_mini_icon(
window_manager->managed_window
)
);
}
static void window_manager_update_state(
WindowManagerSingle* window_manager
)
{
GtkBox* button_box;
gboolean skip_tasklist;
skip_tasklist =
wndmgmt_window_is_skip_tasklist(window_manager->managed_window);
if (skip_tasklist && window_manager->button != NULL)
{
gtk_widget_destroy(GTK_WIDGET(window_manager->button));
window_manager->button = NULL;
window_manager->button_icon = NULL;
window_manager->button_text = NULL;
}
else if (!skip_tasklist && window_manager->button == NULL)
{
button_box = GTK_BOX(
gtk_box_new(
GTK_ORIENTATION_HORIZONTAL,
0
)
);
window_manager->button = GTK_TOGGLE_BUTTON(
gtk_toggle_button_new()
);
window_manager->button_icon = GTK_IMAGE(gtk_image_new());
window_manager->button_text = GTK_LABEL(gtk_label_new(NULL));
window_manager_update_icon(window_manager);
window_manager_update_text(window_manager);
gtk_widget_set_halign(
GTK_WIDGET(window_manager->button_text),
GTK_ALIGN_START
);
gtk_label_set_ellipsize(
window_manager->button_text,
PANGO_ELLIPSIZE_END
);
g_signal_connect(
window_manager->button,
"toggled",
G_CALLBACK(on_window_button_toggled),
window_manager
);
gtk_box_pack_start(
button_box,
GTK_WIDGET(window_manager->button_icon),
FALSE,
FALSE,
0
);
gtk_box_pack_start(
button_box,
GTK_WIDGET(window_manager->button_text),
TRUE,
TRUE,
0
);
gtk_container_add(
GTK_CONTAINER(window_manager->button),
GTK_WIDGET(button_box)
);
gtk_container_add(
window_manager->parent_monitor->container,
GTK_WIDGET(window_manager->button)
);
gtk_widget_show_all(GTK_WIDGET(window_manager->button));
}
}
static void window_manager_update_text(
WindowManagerSingle* window_manager
)
{
const gchar* new_text =
wndmgmt_window_get_name(window_manager->managed_window);
gtk_label_set_text(
window_manager->button_text,
new_text
);
gtk_widget_set_tooltip_text(
GTK_WIDGET(window_manager->button),
new_text
);
}
//
// CALLBACKS
//
static void on_active_window_changed(
WINTC_UNUSED(WndMgmtScreen* screen),
WndMgmtWindow* previously_active_window,
gpointer user_data
)
{
WndMgmtWindow* active_window;
WindowManagerSingle* window_manager_old;
WindowManagerSingle* window_manager_new;
WindowMonitor* window_monitor = (WindowMonitor*) user_data;
active_window = wndmgmt_screen_get_active_window(window_monitor->screen);
if (previously_active_window != NULL)
{
window_manager_old =
g_hash_table_lookup(
window_monitor->window_manager_map,
previously_active_window
);
if (
window_manager_old != NULL &&
window_manager_old->button != NULL
)
{
window_manager_old->button_synchronizing = TRUE;
gtk_toggle_button_set_active(
window_manager_old->button,
FALSE
);
window_manager_old->button_synchronizing = FALSE;
}
}
if (active_window != NULL)
{
window_manager_new =
g_hash_table_lookup(
window_monitor->window_manager_map,
active_window
);
if (
window_manager_new != NULL &&
window_manager_new->button != NULL
)
{
window_manager_new->button_synchronizing = TRUE;
gtk_toggle_button_set_active(
window_manager_new->button,
TRUE
);
window_manager_new->button_synchronizing = FALSE;
}
}
}
static void on_window_closed(
WINTC_UNUSED(WndMgmtScreen* screen),
WndMgmtWindow* window,
gpointer user_data
)
{
WindowManagerSingle* window_manager;
WindowMonitor* window_monitor = (WindowMonitor*) user_data;
window_manager =
g_hash_table_lookup(
window_monitor->window_manager_map,
window
);
if (window_manager == NULL)
{
// Unusual... we're not managing this window? oh well
//
return;
}
if (window_manager->button != NULL)
{
gtk_widget_destroy(GTK_WIDGET(window_manager->button));
}
g_free(window_manager);
g_hash_table_remove(window_monitor->window_manager_map, window);
}
static void on_window_opened(
WINTC_UNUSED(WndMgmtScreen* screen),
WndMgmtWindow* window,
gpointer user_data
)
{
WindowManagerSingle* window_manager = g_new(WindowManagerSingle, 1);
WindowMonitor* window_monitor = (WindowMonitor*) user_data;
window_manager->button = NULL;
window_manager->button_icon = NULL;
window_manager->button_synchronizing = FALSE;
window_manager->button_text = NULL;
window_manager->managed_window = window;
window_manager->parent_monitor = window_monitor;
g_hash_table_insert(
window_monitor->window_manager_map,
window,
window_manager
);
window_manager_update_state(window_manager);
g_signal_connect(
window,
"icon-changed",
G_CALLBACK(on_window_icon_changed),
window_manager
);
g_signal_connect(
window,
"name-changed",
G_CALLBACK(on_window_name_changed),
window_manager
);
g_signal_connect(
window,
"state-changed",
G_CALLBACK(on_window_state_changed),
window_manager
);
}
static void on_window_icon_changed(
WINTC_UNUSED(WndMgmtWindow* window),
gpointer user_data
)
{
WindowManagerSingle* window_manager = (WindowManagerSingle*) user_data;
window_manager_update_icon(window_manager);
}
static void on_window_name_changed(
WINTC_UNUSED(WndMgmtWindow* window),
gpointer user_data
)
{
WindowManagerSingle* window_manager = (WindowManagerSingle*) user_data;
window_manager_update_text(window_manager);
}
static void on_window_state_changed(
WINTC_UNUSED(WndMgmtWindow* window),
WINTC_UNUSED(gint changed_mask),
WINTC_UNUSED(gint new_state),
gpointer user_data
)
{
WindowManagerSingle* window_manager = (WindowManagerSingle*) user_data;
window_manager_update_state(window_manager);
}
static void on_window_button_toggled(
GtkToggleButton* button,
gpointer user_data
)
{
WindowManagerSingle* window_manager = (WindowManagerSingle*) user_data;
if (window_manager->button_synchronizing)
{
return;
}
if (gtk_toggle_button_get_active(button))
{
wndmgmt_window_unminimize(window_manager->managed_window);
}
else
{
wndmgmt_window_minimize(window_manager->managed_window);
}
}

View File

@@ -0,0 +1,21 @@
#ifndef __WINDOWMONITOR_H__
#define __WINDOWMONITOR_H__
#include <glib.h>
#include <gtk/gtk.h>
G_BEGIN_DECLS
//
// GTK OOP BOILERPLATE
//
typedef struct _WindowMonitor WindowMonitor;
//
// PUBLIC FUNCTIONS
//
WindowMonitor* window_monitor_init_management(
GtkContainer* container
);
#endif

152
shell/taskband/src/window.c Normal file
View File

@@ -0,0 +1,152 @@
#include <gdk/gdk.h>
#include <glib.h>
#include <gtk/gtk.h>
#include <wintc-comgtk.h>
#include "application.h"
#include "dispproto.h"
#include "window.h"
#include "start/startbutton.h"
#include "systray/notifarea.h"
#include "taskbuttons/taskbuttonbar.h"
#include "taskbuttons/windowmonitor.h"
//
// GTK OOP CLASS/INSTANCE DEFINITIONS
//
struct _WinTCTaskbandWindowPrivate
{
GtkWidget* main_box;
GtkWidget* notification_area;
GtkWidget* start_button;
GtkWidget* taskbuttons;
};
struct _WinTCTaskbandWindowClass
{
GtkApplicationWindowClass __parent__;
};
struct _WinTCTaskbandWindow
{
GtkApplicationWindow __parent__;
WinTCTaskbandWindowPrivate* priv;
};
//
// GTK TYPE DEFINITION & CTORS
//
G_DEFINE_TYPE_WITH_CODE(
WinTCTaskbandWindow,
wintc_taskband_window,
GTK_TYPE_APPLICATION_WINDOW,
G_ADD_PRIVATE(WinTCTaskbandWindow)
)
static void wintc_taskband_window_class_init(
WINTC_UNUSED(WinTCTaskbandWindowClass* klass)
) {}
static void wintc_taskband_window_init(
WinTCTaskbandWindow* self
)
{
self->priv = wintc_taskband_window_get_instance_private(self);
//
// WINDOW SETUP
//
wintc_widget_add_style_class(
GTK_WIDGET(self),
"wintc-taskband"
);
anchor_taskband_to_bottom(GTK_WINDOW(self));
//
// SET UP CHILDREN IN HERE
// FIXME: Tidy all this stuff up big time! Taskband shouldn't know about
// how stuff is built, just ask for a Start button, a taskbar, and
// systray -- no implementation details!!
//
// Create main container box
//
self->priv->main_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
gtk_container_add(
GTK_CONTAINER(self),
self->priv->main_box
);
// Create Start button and menu
//
GtkCssProvider* css_start = gtk_css_provider_new();
gtk_css_provider_load_from_resource(
css_start,
"/uk/oddmatics/wintc/taskband/start-menu.css"
);
gtk_style_context_add_provider_for_screen(
gdk_screen_get_default(),
GTK_STYLE_PROVIDER(css_start),
GTK_STYLE_PROVIDER_PRIORITY_FALLBACK
);
self->priv->start_button = start_button_new();
gtk_box_pack_start(
GTK_BOX(self->priv->main_box),
self->priv->start_button,
FALSE,
FALSE,
0
);
// Create task buttons
//
self->priv->taskbuttons = taskbutton_bar_new();
gtk_box_pack_start(
GTK_BOX(self->priv->main_box),
self->priv->taskbuttons,
TRUE,
TRUE,
0
);
// Create notification area
//
self->priv->notification_area = notification_area_new();
gtk_box_pack_end(
GTK_BOX(self->priv->main_box),
self->priv->notification_area,
FALSE,
FALSE,
0
);
}
//
// PUBLIC FUNCTIONS
//
GtkWidget* wintc_taskband_window_new(
WinTCTaskbandApplication* app
)
{
return GTK_WIDGET(
g_object_new(
TYPE_WINTC_TASKBAND_WINDOW,
"application", GTK_APPLICATION(app),
"type", GTK_WINDOW_TOPLEVEL,
"decorated", FALSE,
"resizable", FALSE,
"type-hint", GDK_WINDOW_TYPE_HINT_DOCK,
NULL
)
);
}

View File

@@ -0,0 +1,32 @@
#ifndef __WINDOW_H__
#define __WINDOW_H__
#include <glib.h>
#include <gtk/gtk.h>
#include "application.h"
//
// GTK OOP BOILERPLATE
//
typedef struct _WinTCTaskbandWindowPrivate WinTCTaskbandWindowPrivate;
typedef struct _WinTCTaskbandWindowClass WinTCTaskbandWindowClass;
typedef struct _WinTCTaskbandWindow WinTCTaskbandWindow;
#define TYPE_WINTC_TASKBAND_WINDOW (wintc_taskband_window_get_type())
#define WINTC_TASKBAND_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), TYPE_WINTC_TASKBAND_WINDOW, WinTCTaskbandWindow))
#define WINTC_TASKBAND_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), TYPE_WINTC_TASKBAND_WINDOW, WinTCTaskbandWindow))
#define IS_WINTC_TASKBAND_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), TYPE_WINTC_TASKBAND_WINDOW))
#define IS_WINTC_TASKBAND_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), TYPE_WINTC_TASKBAND_WINDOW))
#define WINTC_TASKBAND_WINDOW_GET_CLASS(obj) (G_TYPE_CHECK_INSTANCE_GET_CLASS((obj), TYPE_WINTC_TASKBAND_WINDOW))
GType wintc_taskband_window_get_type(void) G_GNUC_CONST;
//
// PUBLIC FUNCTIONS
//
GtkWidget* wintc_taskband_window_new(
WinTCTaskbandApplication* app
);
#endif