Krótka specyfikacja wymagań funkcjonalnych
Program ma umożliwiać przeglądanie zawartości pliku graficznego (BMP, JPG) wybranego za pośrednictwem standardowego okna dialogowego służącego do wyboru pliku. Dokładniej:
- Program powinien zawierać główne menu oraz pasek narzędziowy. Menu powinno zawierać dwie opcje” Plik” oraz „Widok”.
- Podmenu „Plik” powinno posiadać opcje: „Otwórz”, „Właściwości”, separator, „Zamknij”.
- Podmenu „Widok” powinno posiadać opcje: „Dopasuj”, „Normalny rozmiar”, „Pokaż w osobnym oknie”.
- Opcje „Otwórz”, „Właściwości”, „Dopasuj”, „Normalny rozmiar”, „Pokaż w osobnym oknie” powinny być dostępne również, za pośrednictwem przycisków z paska narzędziowego.
Po wyborze opcji „Otwórz” pojawia się standardowe okno wyboru pliku (filtr: pliki BMP i JPG), po wybraniu poprawnego pliku graficznego jego zawartość pojawia się w centralnej części okna programu. Zawartość pliku jest tak przeskalowana, aby pokazała się w odpowiednich proporcjach, i mieściła się w oknie programu, tak jak po wybraniu opcji „Dopasuj”.
Po wyborze opcji „Właściwości” pojawia się okno zawierające informacje o otwartym pliku graficznym, takie jak jego nazwa, ścieżka dostępu, typ, wymiary, oraz inne informacje, jakie uda się pozyskać z wykorzystywanego komponentu graficznego.
Po wyborze opcji „Dopasuj” zawartość pliku jest tak przeskalowana, aby pokazała się w odpowiednich proporcjach, i mieściła się w oknie programu.
Po wyborze opcji „Normalny rozmiar” zawartość pliku pokazywana jest w jego naturalnym rozmiarze, jego zawartość jest centrowana. Jeżeli plik jest większy, pokazują się paski przewijania (odpowiednio poziomi i/lub pionowy).
Po wyborze opcji „Pokaż w osobnym oknie” zawartość pliku pokazywana jest w osobnym oknie, w jego naturalnym rozmiarze, jeżeli to konieczne pokazują się paski przewijania.
Narzędzia implementacji
Proszę zaimplementować program w każdym z rozważanych na zajęciach środowisk zintegrowanych. Aktualnie C++ Builder, C# VisualStudio (WF lub WPF), C++ QtCreator, można również rozważyć implementację w jęzku Java (Swing lub FX).
Rezultat
Zrealizowane projekty proszę zachować, będą brane pod uwagę przy negocjowaniu oceny zaliczeniowej.