Zurück Kapitel Weiter


Workshop


Willkommen im BUBBLES-Kreativ-Workshop!

Sie haben die VHS-Kurse 'Töpfern in der Toscana' und '100 Jahre Makrame' bereits erfolgreich absolviert? Sehr gut, denn sofern Sie sich nur etwas im Umgang mit einer beliebigen Programmiersprache auskennen, ist es nun an der Zeit, Ihr schöpferisches Potential im BUBBLES-Kreativ-Workshop auszuleben!

Lassen Sie ihre Ideen nicht weiter in der Schublade verstauben! RUN! Software bietet Ihnen mit dem Bildschirmschoner BUBBLES ein äußerst unkompliziertes Medium zur Veröffentlichung Ihrer Kreationen. All das natürlich ohne jeden Hintergedanken unsererseits und ausschließlich zur Erbauung all der zahlreichen Anwender, denen das reine Dunkelschalten beim Schonen von Bildschirmen längst nicht mehr genügt. Bildschirmschoner können und sollen heutzutage ruhigen Gewissens auch anderen Zwecken dienen, wie zum Beispiel zur Entspannung in Arbeitspausen oder zum Schutz Ihrer Daten während kurzer Abwesenheit vom Rechner. Nicht zuletzt sei auch der Aspekt erwähnt, dass BUBBLES Ihnen Dank des Modul-Konzepts sehr schnell zu Erfolgserlebnissen verhelfen kann. Dies gilt umso mehr, da BUBBLES der einzige Bildschirmschoner für TOS-Rechner ist, dessen Weiterentwicklung nicht eingestellt ist.

Soviel zur Theorie - nun zur Praxis: Sie werden sehen, dass ein einfaches BUBBLES-Modul schon in kürzester Zeit geschrieben ist. Die Anforderungen an die Programmtechnik sind äußerst gering. So beschränkt sich die Tätigkeit von BUBBLES-Modulen im Wesentlichen auf die die Darstellung des gewünschten Schon-Effekts sowie die Kommunikation mit BUBBLES. Diese findet über eine kleine, von BUBBLES bereitgestellte Speicherstruktur statt, die sehr simpel anzusprechen ist. Der Austausch über die in Form eines Cookies realisierte Struktur wird als XSSI-Protokoll bezeichnet. Die Ausgaben der Module können ohne jede Rücksichtnahme auf Bildschirmhintergrund, Rechtecklisten von Fenstern, auf Aktionen anderer Programme oder auf Aktivitäten des Anwenders erfolgen. All das regelt BUBBLES für Sie. Module sind also ganz normale, auch unabhängig von BUBBLES startbare Programme, die jedoch keine Benutzeroberfläche und keine Routinen zur AES-Ereignisauswertung benötigen.

Andererseits können BUBBLES-Module aber natürlich auch sehr komplexe Programme sein. Dies hängt ausschließlich von Ihrer Modul-Idee ab. BUBBLES bietet Modulen dazu vielerlei Unterstützung an, wie zum Beispiel das ausgefeilte Konzept zur Konfiguration der Module: Aus ein paar ASCII-Zeilen in einer INF-Datei des Moduls zaubert BUBBLES einen komfortablen Dialog mit allen gängigen Dialog-Objekten, zu denen es im übrigen auch BubbleGEM-Hilfetexte geben darf. BUBBLES sichert die im Dialog geänderten Einstellung dann wieder in die INF-Datei des Moduls, das seine Konfigurationswerte nun dort auslesen kann.

Die ausführliche Dokumentation zur Modul-Programmierung finden Sie im BUBBLES-Hypertext. Downloaden Sie dazu bitte das BUBBLES-Archiv und rufen Sie anschließend den ST-Guide mit dem Kapitel BUBBLES-Kreativ-Workshop des entpackten BUBBLES-Hypertextes auf.

Als kleines Appetit-Häppchen folgt hier nun ein lauffähiges Grundgerüst eines BUBBLES-Moduls als GFA-BASIC-Listing. Gegebenenfalls kann das Listing sicher leicht in eine andere Programmiersprache übertragen werden, da die GFA-BASIC-Syntax tatsächlich relativ "basic" ist.

Setzen Sie im Listing Ihre bevorzugte Cookie-Leseroutine ein und füllen Sie die Prozedur "schonen" mit den von Ihren gewünschten Ausgaben, und schon ist Ihr BUBBLES-Modul erstellt.



'
' Modul-Gerüst in GFA-BASIC
$m1024                                   ! GFA-Compiler-Direktive zur Steuerung
'                                        ! des Speicherbedarfs
appl_id&=APPL_INIT()                     ! Modul bei den AES anmelden
'
'                                        ! Hier Ihre Cookie-Routine eintragen!
' IF @get_cookie("XSSI",xssi_adr%)=TRUE  ! Cookie suchen und Wert merken
'  xssi_version&=WORD{xssi_adr%+4}       ! Protokoll-Version (&H101)
'   IF WORD{xssi_adr%+6}=0               ! Modul wurde nicht von BUBBLES
'     xssi_adr%=0                        ! gestartet -> XSSI-Schnittstelle
'   ENDIF                                ! wird ignoriert. Das Modul muß
' ENDIF                                  ! sein Ende nun selbst erkennen,
'                                          oder sich sofort wieder beenden!
'
white&=@alternate_white                  ! Bitte immer nur diesen VDI-
'                                          Farbindex für 'Weiß' benutzen,
'                                          um die BUBBLES-Option
'                                          'Ränder schwarz' zu unterstützen!
'
WHILE @exit=FALSE                        ! Hauptschleife
  @schonen
WEND                                     ! bis zum Ende
'
EDIT                                     ! Programm beenden
'
'
PROCEDURE schonen
  '
  ' Hier kann mit dem Bildschirm alles Mögliche angestellt werden. Sie
  ' sollten jedoch keine AES-Fenster öffnen, es sei denn, Sie melden dies
  ' mit dem Löschen von Bit 15 in vec_stat der XSSI-Struktur an.
  ' Um andere Applikationen nicht zu blockieren, sollte wind_update()
  ' vermieden werden. Sofern VDI-Ausgaben stattfinden, muß natürlich
  ' auf das korrekte Clipping geachtet werden.
  '
  PRINT "Hello BUBBLES! ";               ! der Schon-Effekt ...
  '
RETURN
'
FUNCTION exit
  $F%
  '
  ' Diese Funktion liefert TRUE, falls sich das Modul beenden soll.
  ' Die Funktion sollte möglichst oft durchlaufen werden, damit es
  ' beim Schon-Ende nicht zu unerwünschten Verzögerungen kommt.
  '
  LOCAL save_stat&,d&
  LOCAL m_state&,k_state&
  '
  ' ---- Steuerung per XSSI-Protokoll ---
  '
  IF xssi_adr%>0                         ! Ist das Protokoll installiert?
    LET save_stat&=WORD{xssi_adr%+6}     ! Schonen, solange Wert < 0 ist,
    IF save_stat&=0                      ! ansonsten Modul beenden.
      RETURN TRUE
    ELSE IF save_stat&<=-100             ! Schlüssel-Dialog ist geöffnet!
      ~GRAF_MOUSE(257,0)                 ! Mauszeiger muß sichtbar sein!
      WHILE WORD{xssi_adr%+6}<=-100      ! Keine Schon-Effekte mehr, statt-
        ~EVNT_TIMER(100)                 ! dessen Schleifchen binden, bis
      WEND                               ! Schlüssel-Dialog beendet ist.
      ~GRAF_MOUSE(256,0)                 ! Mauszeiger wieder ausschalten.
    ENDIF
    '
  ELSE
    ' -- Ende beim manuellen Modul-Start --
    '
    ~GRAF_MKSTATE(d&,d&,m_state&,k_state&) ! Maus- und Tastaturstatus holen
    IF m_state&<>0 OR k_state&<>0          ! und gegebenenfalls beenden.
      RETURN TRUE
    ENDIF
  ENDIF
  '
  ' -------- Rechenzeit abgeben ---------
  '
  ~EVNT_TIMER(100)                       ! .. bzw. Ausgaben verzögern oder das
  '                                        Tempo der Animation bestimmen.
  ' ---------- Weiter schonen -----------
  '
  RETURN FALSE
  '
ENDFUNC
'
FUNCTION alternate_white                 ! (Optional)
  $F%
  '
  ' Diese Funktion liefert gegebenenfalls einen alternativen Farbindex für
  ' die Farbe Weiß, der zur Einstellung auf der VDI-Workstation und zur
  ' Farbgebung von AES-Objekten verwendet werden sollte.
  '
  IF xssi_adr%>0                         ! Protokoll installiert?
    RETURN WORD{xssi_adr%+6}*-1-1        ! Alternativ-Weiß zurückliefern
   '                                       in GFA-BASIC eleganter:
   '                                       PRED(CARD{xssi_adr%+6})
  ELSE
    RETURN 0                             ! Standard-Farbindex für Weiß
  ENDIF
  '
ENDFUNC

 

Sollten Sie ihre Kreationen der Öffentlichkeit zur Verfügung stellen wollen, so wird RUN! Software Ihre Module selbstverständlich gerne auf dieser Website zum Download anbieten. Senden Sie uns ihre Ergebnisse dazu am besten einfach als Anhang einer E-Mail zu. Natürlich beantworten wir auf diesem Wege auch gerne Ihre weitergehenden Fragen zur Modul-Programmierung.

Anfragen per E-Mail an:
bubbles@run-software.de



Zurück Kapitel Weiter