Implementace Finderu | |||||||
|
|||||||
Finder je MFC aplikace typu SDI document/view programována v MSVC++ 6.0. Aplikace využívá DirectX pro vykreslování hlavního pohledu. Pro nestandardní UI prvky využívá knihovnu CJLibrary, kterou linkuje staticky. Program využívá upravenou komponentu ColourPicker, kterou napsal Chris Maunder (chrismaunder@codeguru.com) a rozšířil Alexander Bischofberger (bischofb@informatik.tu-muenchen.de). Knihovnu PATHLIB linkuje staticky. |
|||||||
Program zachovává šablonu projektu document/view. Takže se budu věnovat pouze nestandardním modulům:
Cddraw je potomek CView a předek CFinderView. Stará se o nizkoúrovňovou obsluhu DirectX (inicializace, uvolnění, změna veliosti okna, ztráta kontextu, ...). Využívá upravené ddutil z DirectX SDK 7.0. CFinderView - implementace funkcí hlavního pohledu (mapy). Timer, OnDraw, nastavení rozsahů scrollbarů, obsluha událostí myši nad mapou a jejich mapování na funkce knihovny PATHLIB. CFinderDoc - obaluje knihovní strukturu PED (PathEngineData) jako dokument. Implementuje inicializaci, NewDialog, load, save, zrušení dokumentu. CNewDlg - implementuje dialog "Engine Parameters" CHelpDlg - implementuje dialog pro HTML help. Využívá ActiveX komponentu IWebBrowser2. Její automaticky vygenerovaný interface je v webbrowser2.h CMainFrm - funguje přesně tak, jak by se od ní dalo předpokládát. Mapuje akce uživatele v toolbarech, menu a pravém panelu na funkce knihovny. Obsluhuje StatusBar. |