Téma: ukládání a obnova stavu grafiky
Matně si vzpomínám, že před několika lety proběhla korespondence o možnosti ukládat a obnovovat nastavení grafiky. Tehdy se diskutovalo o ukládání pod nějakým jménem (např. "Pouze horní strana" apod.). To se mi ze systémového hlediska příliš nelíbilo, a námět jsem proto odložil. Nyní jsem se k němu vrátil -- je to ostatně úloha složitosti přiměřené dnešní teplotě vzduchu.
Rozdíl je v tom, že nastavení grafiky ukládám do zásobníku, takže pojmenování odpadá. ??ešení ovšem stojí na dávném principu, na němž je vystavěn celý program Layout, totiž že uživatel ví, co dělá, a naopak tento princip dále utvrzuje. Tak mi kromě zásobníku stačilo doplnit jen tři příkazy:
Graphics | Save ukládá aktuální nastavení grafiky na vrchol zásobníku (nejstarší uložené je ztraceno, je-li zásobník zaplněn).
Graphics | Restore obnovuje nastavení z vrcholu zásobníku (aktuální nastavení je ztraceno) a překreslí obrazovku.
Graphics | Exchange vymění nastavení grafiky na vrcholu zásobníku s aktuálním a překreslí obrazovku.
Program opět je v archivu www.formica.cz/files/Layout-p98-pokusy11.zip .
Příklad užití: V menu Graphics dám Save, pak nastavím pohled na horní vrstvy, uložím pomocí příkazu Save, nastavím pohled na dolní vrstvy, a mezi oběma pohledy teď mohu přepínat příkazem Exchange, aniž bych menu Graphics vůbec opustil. Až se mi přepínání omrzí, dám dvakrát Restore a vrátím se tak k výchozímu pohledu.
Zásobník má nyní hloubku 8 položek (do každé z nichž se ukládá nastavení všech parametrů z menu Graphics). Za úvahu by možná stálo přidat příkaz(y) Graphics | Roll Up / Down, kterým by uživatel mohl procházet dokola skrz celý zásobník, aniž by kteroukoliv z jeho položek zahodil. (Pak by možná bylo lépe zásobník zkrátit; cyklování by se však v každém případě omezovalo pouze na obsazené položky.) Pro rozumné řešení asi je klíčová odpověď na otázku, mezi kolika nastaveními uživatel v praxi potřebuje přepínat.
Celý zásobník by přirozeně bylo možno ukládat do konfiguračního souboru (za cenu opětné změny jeho formátu). Přidám jej tam, pokud se funkce osvědčí (a jakmile se délka zásobníku ustálí). Na druhé straně současný stav automaticky řeší mazání zásobníku, což se může také někdy hodit.