Návrh funkčnosti editoru prezentací

Title Návrh funkčnosti editoru prezentací
Author Richard Michalský; ideje doc. Pavelka
Date 17.11.1998
Reference kralik@mail.kolej.mff.cuni.cz
File docs/functionality.html
Project KTTV

Tento dokument je opravenou a verzí návrhu vzhledu, funkčnosti a ovládání editoru prezentací. Kromé popisu fcí se také pokouší rozdělit funkčnost pro první a druhou verzi implementace.

Poznámka k první verzi aplikace

Základním přístupem pro první verzi editoru je implementovat téměř všechny součásti programu (editace textu, editace slidu, vzorkovníky, ...) pouze s minimální funkčností a vyzkoušet hlavně interface a "sestavitelnost" jednotlivých částí dohromady. Bylo by samozřejmě vhodné psát kód otevřený pro přidávání vlastností plánovaných až do druhé "otočky".

Chování programu

GUI editoru se bude skládat z několika oken o něž se bude starat Window Manager (tj. podobně jako GIMP nebo Delphi, NEBUDE žádné globální MDI okno, ve kterém se budou otevírat ostatní jako např. v MS Office). Přestože se defaultně budou otevírat v nějakém standartním layoutu (grr, neměli bychom to raději psát celé anglicky???), uživatel s nimi bude moci libovolně manipulovat. Hlavní okna, která bude GUI (kromě dialogů, message boxů apod.) obsahovat jsou:

Po spuštění programu se otevře okno s hlavním menu a dialog, jestli vytvořit novou nebo otevřít už existující prezentaci (alternativa je otevírat rovnou i okno s prázdnou prez.). V obou případech pak dále následují okno pro editaci textu, okno se standartními resp. k prezentaci patřícími vzorkovníky a standartní toolbary. Okno vzorkovníků bude viditelné jen při editaci slidu. V editoru může být otevřeno více prezentací najednou (minimálně kvůli linkům do jiných souborů), při přepínání mezi nimi se bude měnit obsah okna se vzorkovníky - každá prezentaci má otevřené jiné.

Volání funkcí editoru

Možnosti volání fcí budou v zásadě tři. V hlavním menu budou přístupné všechny fce programu, ty které nebudou v daném kontextu použitelné budou zašednuté (ehm, disabled). Další možnost je pomocí pop-up menu na pravém tlačítku myši, které bude nabízet vždy funkce použitelné pro daný objekt. U několika vybraných objektů se fce aplikuje jen na ty, u nichž má smysl (např. i když mám vybrané dvě čáry a elipsu, můžu přidat koncové šipky, které ovšem na elipsu nebudou mít vliv). Třetí způsob volání funkcí je přes toolbary, které budou standartně obsahovat nejběžnější fce a uživatel je bude moci editovat.

Editace textu

V okně s otevřenou prezentací bude možné prohlížet slidy, editovat text a tabulky. Okna se slidy a texty budou řazena pod sebe (ne vedle sebe; obrázek a text vedle sebe mohou být jedině v rámci slidu) a text se bude vepisovat jakoby do textového rámečku s volným dolním koncem. Při editaci bude možné zvolit některý z nadpisů, psát tučně, kurzívou, podtrženě, textem s pevným formátováním, atd. (hořící logo, točící logo, blah, blah, ...), odsadit nový odstavec, vytvořit seznam s odrážkami, číslovaný seznam a seznam definic, pokud možno i s možností vnořování, dále vložit tabulku nebo slide a vytvořit link. Text bude odsazován "na praporek", tj. k levému okraji (třešničkou by byly i další způsoby odsazování) bez automatického dělení slov. Dále bude možné používat clipboard (v 2. verzi), v textu bude možné vyhledávání, nahrazování, undo a redo. Při vložení slidu se otevře okno editoru slidů. Link se vytvoří označením příslušného textu (který má někam ukazovat) a zvolením funkce "create link source" (nebo tak nějak). Link zůstane otevřený (fce "create link source" bude disablovaná), dokud se na nějakou vybranou SKUPINU OBJEKTŮ nezavolá obdobná fce "create link destination", čímž se link uzavře. Skupina objektů v tomto případě může znamenat jak kus textu (klasický link), tak např. několik objektů v nějakém slidu (ty MUSÍ tvořit group!!). Při přeskočení linku se cílová oblast zvýrazní, což umožňuje např. vytvořit link z textu na nějaký detail obrázku.
Pozn: U linku do jiného dokumentu je cílová oblast nepovinná (link může být i jen na dokument)

Vzorkovníky

Všechny prezentací nebo uživatelem otevřené vzorkovníky budou zobrazeny v jednom okně, které bude nahoře obsahovat záložky se jmény otevřených vzorkovníků a na zbytku plochy ikony (v 1. verzi jenom jména) objektů toho právě aktivního. Jako ikony by mohly sloužit zmenšené obrázky objektů, pro přehlednost ikon složitých objektů by uživatel mohl mít možnost označit pro ikonu jen některé součásti objektu (vyžaduje změnu formátu vzorkovníku - Třešeň!). Ikona se může kreslit vždy jako zmenšenina obrázku, nebo se po editaci vygeneruje bitmapa (např. .xpm). Pro editaci a přidávání objektů vzorkovníku se bude otevírat okno editoru slidu. Vzorkovník se základními objekty bude otevřen automaticky, další otázka je, jestli jej neotevírat někde vedle ostatních, aby byl stále přístupný (uživatel chce přistupovat k nějakému vzorkovníku a k zákl. objektům).

Slidy (AKA slides, obvuázky)

Okno editoru slidů se bude otevírat automaticky při vložení nového slidu, při editaci slidu už existujícího a pro editaci objektů vzorkovníku. Na rozdíl od okna editoru textu se v tady slide bude moci zoomovat (vzhledem k tomu, že editor text stejně musí umět zoomovat - přímo ve slidech, alternativou je editace slidu ve stejném okně jako text). Jeden nebo více elementů ve slidu se dá označit, u označených elementů se zobrazí jejich klíčové body a kotvy (třeba body jako černé čtverečky, kotvy jako zelené??) a bude s nimi možné manipulovat. Během manipulace měnící tvar nebo umístění objektu bude zobrazen např. čárkovaně (nepřehledné, když bude objekt sám čárkovaně - třešnička by byly "běhající" čárky jako ve Photoshopu) Při vkládání objektu ze vzorkovníku existují také dva přístupy - velikost objektu se určí přímo při vkládání, nebo se objekt vloží ve stejné velikosti jako je ve vzorkovníku a uživatel si jej pak zvětší sám.

Možné manipulace jsou (u objektů u nichž mají smysl):
- posunutí, změna velikosti, rotace, změna druhu čar, barvy, výplně, přidávání/ubírání kotev (u spline i klíčových bodů!?), group, degroup; v 2. verzi příp. zkosení, lichoběžníkové zkosení (perspektiva), zarovnání více objektů (vlevo, na střed, vpravo, nahoru, na střed, dolů), změna velikosti podle jednoho z nich horizontálně/vertikálně

Tabulky (až ve verzi 2)

Editor tabulek nebude mít vlastní okno, ale editace bude probíhat v (neviditelném) rámečku uvnitř okna v němž byl volán (podobně jako editor textů - ten se může s editorem tabulek střídavě rekurzivně vnořovat). Při vytvoření nové tabulky se program zeptá uživatele na počet řádků a sloupců (alternativa - defaultně se vytváří tab. s jedním sloupcem a jedním řádkem) a vykreslí se prázdná tabulka. Pohyb po polích se děje kurzorovými klávesami, stiskem Enteru se uvnitř pole vytvoří rámeček pro editaci textu, z editace se zpět do práce s tabulkou dostaneme např. pomocí Esc (vítám jakékoli návrhy na rozumnější, něčemu podobné klávesové zkratky ve všech částech programu). Pohyb se shiftem označuje (obdélníkovou) oblast. Pohyb a označení se děje vždy po celých buňkách (změna proti minulé verzi), z označené oblasti se pak kromě obvyklých formátovacích příkazů textu dá vytvořit záhlaví (ji-li označen celý sloupec/řádek), jediná spojená buňka (co s textem v buňkách - spojit/nechat jen první?) a rozdělit na základní buňky. Tabulce samozřejmě půjde zapnout a vypnout zobrazení mřížky.

K diskusi zůstává stejný problém jako u textových rámečků ve slidech - co s textem, který se nevejde do rámečku nakreslené velikosti? Jednou z možností je povolit pouze vstup textu do určité velikosti, další je povolit text libovolné délky s tím, že je zobrazena pouze ta část, která se do okna vejde a uživatel si případně změní velikost rámečku sám. Nejflexibilnější (a nejsložitější) variantou je mít u rámečků nastavitelný atribut plovoucí/pevný u spodního okraje a první nebo druhá možnost by tak byly zvláštním případem třetí pro pevný okraj.

Prezentace

Prohlížení prezentace bude možné přímo z okna editoru, nebo (např. na celé obrazovce) pomocí externího prohlížeče. V editoru textů bude jednou z fcí na slidu "add to presentation" (kromě "remove from presentation", "add all" a "remove all"), která (jaké překvapení) přidá slide to prezentace. Z hlavního menu pak bude možné otevřít okno správce prezentace (zjev z kategorie přítele Sponky nabo společníka Boba), v němž budou opět ony výše zmíněné fce a uživatel si bude moci slidy prohlížet a měnit jejich pořadí Tag slide má položku popisek, která bude u slidu ve správci prezentace zobrazena - nechá-li ji nepořádný uživatel nevyplněnou, zobrazí se místo ní číslo slidu.

Poznámka závěrem

Tady by ještě měl být seznam položek v hlavním menu a v pop-up menu pro jednotlivé objekty, ale nechávám to na schválenou finální verzi tohoto dokumentu (a na někoho jiného :)).