IndeView - Stand der Entwicklung

STARTSEITE | EINSATZ | ENTWICKLUNG | AUTOREN | LIZENZ | TITEL
Konzept | Vorbereiten | Stand |  |  |
Struktur | Präsentieren | Zukunft |  |  |
Quellen |  | Chancen |  |  |

# IndeView - Entwicklung
GUTES WIRD BESSER

NACH OBEN

## Stand der Entwicklung

IndeView kann derzeit einfache Präsentationen anzeigen:
Anwendergesteuerte, lineare oder zirkuläre Dia-Folgen,
ohne spezielle Überblendungen oder Klang-Ausgabe.

Für viele Zwecke ist dieser Funktionsumfang ausreichend,
selbstverständlich geht die Entwicklung aber weiter:

NACH OBEN

## Laufende und geplante Erweiterungen

### Viewer

Ungefähr in der angegebenen Reihenfolge wird implementiert:

- Automatik - selbstständiger Präsentationslauf.
- Transitionen - optische Übergänge von einen Dia zum andern.
- Notizen - vorübergehendes Einblenden seitenspezifischer Vortragsnotizen an vom Anwender zu wählender Position und regelbarer Farbe / Kontrast / Schriftgrösse, um ein Mitlesen der Notizen durch das Publikum zu erschweren.
- Klänge - abspielen beliebiger Transitions-, Intro- und Betrachtungs-Klänge.
- PopUp-Fenster - per Maus oder Tastendruck ein- und ausblendbare Bereiche, ähnlich dem per [F1]-Taste darzustellenden Hilfebildschirm.
- alternative Pfade - verschiedene Wege durch die gleiche Präsentation, z.B. um einen "Schnelldurchgang" anzubieten, der nur einen Teil der Dias zeigt.
  Die Pfade werden in der per [L]-Taste darstellbaren Auswahlliste angeboten.
- Dia-Gruppen - erweiterte Navigationsmöglichkeiten: per Taste kann gezielt das erste / letzte Dia in der aktuellen Gruppe gewählt werden, oder das unmittelbar vor / nach der aktuellen Gruppe liegende Dia.
- Rückverweise - führen zur Anwahl eines anderen als des unmittelbar vorhergehenden Dias bei Betätigung der [zurück]-Taste bzw. der rechten Maustaste: dies kann sinnvoll sein zum rückwärtigen Überspringen von mehreren Dias, die als Sequenz das aktuelle Dia produziert haben, indem von Bild zu Bild immer weitere Bestandteile hinzugefügt wurden.
  Beachte allerdings:
  Ist ein Rückverweis definiert, hat der Anwender keine Möglichkeit, zum unmittelbar vorhergehenden Dias zu wechseln, sondern muss dem Rückverweis folgen, daher ist fallweise zu prüfen, ob die Definition einer Gruppe angebrachter ist als ein Rückverweis.
- aktive Bereiche - Teile des Bildes, die per Maus oder [Tab]-Taste selektierbar sind und dann per Maus-Klick oder [Enter]-Taste aktiviert werden können und eine Aktion auslösen:
  - zu einer anderen Seite / in einen anderen Pfad wechseln
  - ein PopUp-Fenster öffnen
  - einen Klang abspielen
- Tip-Hilfen - beim Überfahren eines aktiven Bereichs mit der Maus für kurze Zeit angezeigte Hinweistexte.

### Editor

Als neues IndeView-Modul ist ein spezieller Editor in Planung.

Mit dem Editor kannst Du Deine Präsentation überarbeiten: Sprungziele ändern, Gruppen oder Pfade definieren, aktive Bereiche festlegen...

### Creator

Schön wäre eine Möglichkeit, auch PowerPoint-Präsentationen ins IndeView-Format zu überführen.

Uns steht allerdings kein Microsoft Office zur Verfügung, daher sind wir in diesem Punkt vollständig auf die Hilfe kenntnisreicher Power-User angewiesen: falls Du Interesse an der Erstellung dieses Creator-Moduls hast, melde Dich bitte vorher per E-Mail bei developers@indeview.org, damit wir vermeiden, dass mehrere Leute ohne voneinander zu wissen die gleiche Aufgabe in Angriff nehmen.

Da IndeView "Freie Software" ist, winkt als Lohn reichlich Ruhm und Ehre:

Falls Du dies wünschst, tragen wir Deinen Namen unter Hinweis auf den von Dir beigesteuerten Beitrag auf der Autoren-Seite ein, gerne auch mit Nennung Deiner E-Mailadresse.

NACH OBEN

## Chancen für Dich

### Beiträge zu IndeView leisten

Du kennst Dich gut mit C++ und Qt aus und hättest Lust, bei der IndeView-Entwicklung mitzumachen?

Du beherrschst PowerPoint und denkst darüber nach, mit Visual Basic for Applications eine Creator-Modul für IndeView zu entwickeln?

Bitte keine Scheu, wir freuen uns auf Deine Mail!

Wie Du an unserer Planung siehst, haben wir mit IndeView noch einiges vor und Deine Beteiligung käme uns sehr gelegen - vielleicht möchtest Du Dich an einer der geplanten Funktionen versuchen oder Dir fehlt etwas an IndeView, was Du gerne einbauen würdest?

Wir bitten Dich allerdings, folgende Punkte zu beachten:

- Vergewissere Dich vor dem Beginn irgendwelcher Arbeiten durch Mail-Kontakt mit uns davon, dass das betreffende Modul nicht bereits in Arbeit ist, Du erreichst uns per Mail: developers@indeview.org.
- Alle Deine Beiträge müssen aus Deiner Feder stammen und dürfen keine (patentrechtlich) geschützten Rechte Dritter verletzen.
- In die IndeView-Distribution werden wir nur unter der hier aufgeführten GNU-LGPL stehende Beiträge aufnehmen.

NACH OBEN

### IndeView `core` in Deine Programme einbauen

IndeView ist vorbereitet für die Nutzung durch andere (Qt-)Programme:

Die im Vollbild-Modus laufende Viewer-Anwendung greift transparent auf ein separates `core`-Modul zu:

Qt-Bibliothek: | `QObject` |
| ¦ |
IndeView core: | `IndeViewSlides` | liest Steuerdatei und Seiten-Infodateien, verwaltet die Struktur der Präsentation, liefert die Pixmaps zur Darstellung der Seiten
Qt-Bibliothek: | `QWidget` |
| ¦ |
IndeView core: | `IndeViewWidget` | kann Präsentation im Fenster anzeigen, hat keine Benutzerschnittstelle
| ¦ |
IndeView app: | `IndeViewMain` | läuft im Vollbild-Modus, bietet: Tastatur- und Maus-Interface, Auswahl-Liste der Seiten, Hilfe-Bildschirm
IndeView app: | `int main()` | instantiiert ein `IndeViewSlides`-Objekt und startet dann `IndeViewMain`, falls IndeViewSlides die Struktur der Präsentation erfolgreich einlesen konnte

Bitte beachte:
Die Klasse `IndeViewMain` wurde für die besonderen Anforderungen des Viewers entwickelt, in Deine eigenen Programme bindest Du sie bitte nicht ein, sondern verwendest stattdessen `IndeViewSlides` und `IndeViewWidget`.

Importiere das vollständige Verzeichnis `core` in Dein Projekt und erzeuge ein `IndeViewWidget` nach folgendem Beispiel:

    #include "core/indeview_widget.h"

    IndeViewWidget* getIVW( const QString& runFile,
                            QWidget *parent )
    {
      IndeViewSlides* slides =
        new IndeViewSlides( runFile );
      if( slides->structureOK() )
        return new IndeViewWidget( slides,
                                   true,
                                   parent,
                                   "my_IVW" );
      delete slides;
      return 0;
    }

Liefert der Aufruf von `getIVW()` einen Null-Pointer, so zeigst Du ggfs. eine Fehlermeldung, ansonsten bindest Du das IndeViewWidget in Dein Layout ein. Für `slides` ist gesorgt: obiger Parameter `true` weist das `IndeViewWidget` an, `slides` abzuräumen, wenn das Widget geschlossen wird.

Möchtest Du dem `IndeViewWidget` später eine andere Präsentation unterschieben, tust Du dies wie folgt, ohne das Widget neu zu erzeugen:

    bool changePresentation( IndeViewWidget& widget,
                             const QString& runFile )
    {
      IndeViewSlides* theNewSlides =
        new IndeViewSlides( runFile );
      const bool bOK = theNewSlides->structureOK();
      if( bOK )
        widget.setSlides( theNewSlides, true );
      else
        delete theNewSlides;
      return bOK;
    }

Zur Steuerung Deines `IndeViewWidget` verknüpfst Du geeignete "Signale" Deiner Anwendung mit den in `indeview_widget.h` dokumentierten `public slot`-Methoden, wie `gotoNextSlide()` oder `changeZoom()`. Den aktuellen Status erfragst Du durch `const`-Funktionen wie `bool optionDontStretch()` oder `int movedByX()`.

Möchtest Du eine Möglichkeit zur Seitenauswahl anbieten, werden folgende Methoden der Klasse `IndeViewWidget` nützlich sein:

- `slideNames()` liefert eine `QStringList` mit den Titeln aller Seiten in der Reihenfolge ihres Auftretens in der Präsentation.
- `curSlideIdx()` liefert die Nummer der aktuellen Seite: nützlich um sie in der Auswahlliste hervorzuheben.
- `gotoSlide()` wählt die Seite mit der angegebenen Nummer an.

Viel Spass und Erfolg - und lass mal von Dir hören - es wäre spannend zu erfahren, wie Du IndeView verwendest.

NACH OBEN

Falls Dir IndeView gefällt,
würden wir uns über eine Ansichtskarte
von Deiner Stadt/Deinem Dorf sehr freuen:
Wir gespannt darauf zu erfahren,
wo unsere IndeView-Anwender leben.