Zaprojektować i stworzyć aplikację dla Windows, która będzie udostępniała
możliwość dodawania wtyczek (pluginów)
Scenariusz działania aplikacji:
podczas uruchamiania aplikacja sprawdza w określonym swoim podkatalogu (np. plugins)
obecność plików .dll stworzonych zgodnie z wymogami pluginów tej aplikacji (tę logikę
należy zaprojektować)
wszystkie znalezione wtyczki są umieszczane w menu Wtyczki; po kliknięciu w pozycję
z tego menu wywoływana jest pewna funkcja z wtyczki (to także należy zaprojektować) z
parametrem będącym głównym oknem aplikacji; umożliwia to wtyczce np. pokazanie
wspaniałego okienka O Programie
każda wtyczka ma możliwość dodania dowolnej liczby przycisków na pasku narzędzi
głównego okna (wtyczka dostarcza symbol graficzny) oraz możliwość dodania dowolnej
liczby pozycji w menu Narzędzia (wtyczka dostarcza teksty widoczne w menu)
naciśnięcie przycisku wtyczki na toolbarze lub wybranie pozycji menu wtyczki
powoduje wywołanie odpowiednich funkcji z wtyczki z przekazanym jako parametr głównym oknem
aplikacji, co daje np. możliwość pokazania okna modalnego (tę logikę należy
zaprojektować)
główne okno aplikacji w swojej prawej części zawiera panele (obiekty klasy
System.Windows.Forms.Panel), które przydziela na własność wtyczkom (jeden panel na
wtyczkę, jeśli nie ma wtyczek, to nie ma również paneli); wtyczki mogą dowolnie zarządzać
zawartością swoich paneli
Wymagane elementy rozwiązania:
aplikacja
menu: Wyjście, Narzędzia (wg potrzeb wtyczek), Wtyczki (z listą wszystkich
wtyczek)
pasek narzędzi: Wyjście, przyciski wg potrzeb wtyczek
panele wtyczek w prawej części głównego okna
przykładowy plugin
2 przyciski na toolbarze:
pierwszy wyświetla MessageBox'a z dowolnym tekstem
drugi powoduje zminimalizowanie okna aplikacji
3 pozycje w menu Narzędzia:
Kalkulator - powoduje uruchomienie pliku calc.exe
Super forum - powoduje otwarcie w przeglądarce strony o adresie
http://www.minims.fora.pl
Int - powoduje wyświetlenie MessageBox'a z nazwą assembly, w którym
jest zdefiniowany typ int
w panelu wtyczki widocznym w głównym oknie wyświetlone imię i nazwisko autora
oraz liczba punktów, jaką autor spodziewa się otrzymać za swoje rozwiązanie
okienko O Programie z dowolnym rysunkiem oraz imieniem i nazwiskiem autora
(pokazywane w odpowiedzi na wybranie pozycji wtyczki w menu Wtyczki)
dokumentacja techniczna dla autorów wtyczek
prosta, ale kompletna, zawierające opis obowiązkowych i opcjonalnych
elementów wtyczek
w postaci pliku .xml wygenerowanego z XML-owej dokumentacja /// oraz pliku .chm
wygenerowanego z tego pliku .xml
Wskazówki
System.Diagnostics.Process.Start()
System.Reflection.Assembly.GetAssembly()
Orientacyjna punktacja:
Idea funkcjonowania wtyczek [1.0]
Aplikacja
sprawdzanie pluginów [1.0]
dodawania przycisków paska narzędzi i pozycji w menu dla wtyczek [1.0]
panele na głównym oknie przeznaczone dla wtyczek [1.0]