Virtual OS/2 International Consumer Education
VOICE Homepage: http://de.os2voice.org
August 2002

[Inhaltsverzeichnis]
[Vorherige Seite] [Nächste Seite]
[Artikelverzeichnis]

editor@os2voice.org


ThemeManager - Wie man vorhandene Themen modifiziert und neue hinzufügt

Von Peter Brown © August 2002, Übersetzung: Christian Hennecke

Kürzlich entschied ich mich, ein vorhandenes Thema für die Arbeitsoberfläche zu modifizieren und hatte so viel Spaß dabei, daß ich dachte, andere würden es vielleicht auch gern einmal ausprobieren. Hier ist ein kurzer (?) Leitfaden für Interessierte.

Der Grund für diesen Artikel ist, daß ich nicht gerade die kreativste Person der Welt bin. Wenn ich ein Symbol brauche, modifiziere ich im allgemeinen etwas schon vorhandenes, statt eines vollkommen neu zu erstellen. Insofern wendet sich dieser Artikel an diejenigen, die lieber ein vorhandenes Thema anpassen möchten, als ein neues zu erstellen. Da dies auch das Hinzufügen neuer Themen zum Theme Manager umfaßt, könnte "Teil 2: Neue Themen hinzufügen" auch für diejenigen nützlich sein, die erwägen, ein eigenes Thema zu kreieren.

Für den Leitfaden benutze ich eine Konvertierung des eComStation-Themas Warplike Dark als Beispiel. Damit sollte das Aussehen dieses Themas von der ersten Abbildung zur zweiten geändert werden:

eComStation Warplike Dark ThemaeComStation
Warplike Dark Theme mit rosafarbenen Druckknöpfen

Hier ein paar Informationen zu meinem System, die im folgenden relevant sind:

Systemlaufwerk : = H:
Theme Manager Verzeichnis = H:\os2\Thememgr

Folgende Pakete werden benötigt:

1. Wie man vorhandene Themen modifiziert

Schritt 1 - Erstellen Sie die Verzeichnisse Arbeit und Themaname im Verzeichnis des Theme Managers oder wo immer Sie auch sonst möchten. Ich eCSW2pnk als Themaname verwendet, habe also die folgenden Verzeichnisse:

H:\os2\Thememgr\eCSW2pnk
H:\os2\Thememgr\Arbeit

Schritt 2 - Für dieses Beispiel habe ich entschieden, das Thema eComStation Warplike Dark zu modifizieren und ihm ein rosa Finish zu verleihen. Um herauszufinden, welche Dateien des Theme Manager beteiligt sind, ist es notwendig, die im Verzeichnis des Theme Managers befindliche Datei Thememgr.idx zu öffnen. Jede Zeile in dieser Datei enthält den Namen eines Themas sowie die Dateinamen der Themen-DLL und des Vorschaubildes. Wählen Sie die Zeile, die sich auf das Thema bezieht, das sie modifizieren möchten, und kopieren Sie sie in ein neues Editorfenster. Nehmen Sie die notwendigen Änderungen vor und speichern Sie die neue Datei im Verzeichnis Themenname, wobei Sie als Dateiname Themenname.idx benutzen. Für mein Beispiel öffnete ich H:\os2\Thememgr\Thememgr.idx und wählte folgende Zeile aus:

 eComStation - warplike dark  ecswarp2.dll  ecswarp2.bmp
Diese kopiere ich dann in ein neues Editorfenster und ändere sie in:
 Warplike Pink  ecsw2pnk.dll  ecsw2pnk.bmp
Anschließend sicherte ich sie als H:\os2\Thememgr\eCSW2pnk\ecsw2pnk.idx.

Schritt 3 - Kopieren Sie die in der Datei thememgr.idx aufgeführte BMP-Datei in das Verzeichnis Themenname und benennen Sie sie in Themenname.bmp um, für dieses Beispiel wird H:\os2\Thememgr\ecswarp2.bmp zu H:\os2\Thememgr\eCSW2pnk\ecsw2pnk.bmp.

Schritt 4 - Kopieren Sie die in der Datei themename.idx aufgeführte DLL in das Verzeichnis Arbeit. In unserem Beispiel wird H:\os2\Thememgr\ecswarp2.dll nach H:\os2\Thememgr\Arbeit\ecswarp2.dll kopiert.

Schritt 5 - Um die Bitmaps modifizieren zu können, aus denen das Thema besteht, müssen diese zuerst aus der DLL in eine RES-Datei extrahiert werden, worauf diese RES-Datei in einzelne Komponenten dekompiliert wird. Dazu öffnen Sie ein Befehlszeilenfenster im Verzeichnis Arbeit und geben folgenden Befehl ein, um die RES-Datei zu erzeugen:

resmgr -x DLLNAME.DLL *.* DLLNAME.RES
Die Befehlszeile für unser Beispiel ist:
[H:\os2\Thememgr\Arbeit\]resmgr -x ecswarp2.DLL *.* ecswarp2.RES

Nun kann der Inhalt der Ressourcendatei in das aktuelle Verzeichnis unter Verwendung der folgenden Befehlszeile extrahiert werden:

rdc DLLNAME.RES
Die Befehlszeile für unser Beispiel ist:
[H:\os2\Thememgr\Work\]rdc ecswarp2.RES
Dadurch werden alle Ressourcen extrahiert und eine Datei DLLNAME.RC2 wird angelegt - es sei denn, Sie geben einen anderen Dateinamen an -, die einen Index der Ressourcen enthält. Bei unserem Beispiel erhalten wir eine Datei ecswarp2.rc2 im Verzeichnis H:\os2\Thememgr\Arbeit.

Schritt 6 - Nun muß die Schablone Thema.RC mit der Datei DLLNAME.RC2 verglichen werden, damit die Bitmaps ordungsgemäß kopiert und umbenannt werden können. Öffnen Sie dazu beide Dateien mit einem Texteditor. Hier ist ein Ausschnitt aus Thema.RC und ecswarp2.rc2:

Thema.RC

BITMAP 25 sysmen.bmp
BITMAP 26 min.bmp
BITMAP 27 max.bmp
BITMAP 28 rest.bmp
BITMAP 29 csysmen.bmp
ecswarp2.RC2
BITMAP 25 res98562.bmp
BITMAP 26 res98563.bmp
BITMAP 27 res98564.bmp
BITMAP 28 res98565.bmp
BITMAP 29 res63087.bmp
Wie Sie sehen können, haben die Bitmaps in diesen Dateien unterschiedliche Dateinamen, aber wir verwenden die BITMAP-Nummer, um die benötigten Bitmaps zu finden.

Schritt 7 - Das Kopieren der Bitmaps geht folgendermaßen vonstatten: Verwenden Sie die obigen .RC-Dateien, um die benötigten Dateien im Verzeichnis Arbeit zu finden, kopieren Sie sie ins Verzeichnis Themenname und versehen Sie sie mit dem Namen, der in der Datei Thema.RC den entsprechenden BITMAP-Nummern zugeordnet ist. In unserem Beispiel kopiere ich eine benötigte Bitmap unter Verwendung der .RC-Dateien. Ich kopiere die Bitmaps nur, wenn Sie in der Datei Theme.RC aufgelistet ist, deswegen überprüfe ich die BITMAP-Nummer in Theme.RC im Vergleich zur selben Nummer in ecswarp2.RC2:

BITMAP 25 entspricht H:\os2\Thememgr\Arbeit\res98562.bmp, welche ich nach H:\os2\Thememgr\eCSW2pnk\sysmen.bmp kopiert habe. BITMAP 26 entspricht H:\os2\Thememgr\Arbeit\res98563.bmp, welche ich nach H:\os2\Thememgr\eCSW2pnk\min.bmp kopiert habe.

Nachdem ich alle benötigten Bitmaps kopiert hatte, löschte ich die Dateien im Verzeichnis "Arbeit", da sie nicht mehr gebraucht wurden.

Schritt 8 - Bevor Sie an den Bitmaps im Verzeichnis Themenname irgendwelche Änderungen vornehmen, sollten Sie Sicherungskopien davon anfertigen. Modifizieren Sie die Bitmaps im Verzeichnis Themename mit dem von Ihnen bevorzugten Editor - einschließlich der Vorschau-Bitmap, die Sie vorher kopiert hatten - entsprechend Ihren Wünschen und speichern Sie diese ab.

Ich habe PMView verwendet, um den Bitmaps in H:\os2\Thememgr\eCSW2pnk ein rosafarbenes Aussehen zu geben, indem ich mit den RGB-Werten herumgespielt habe, bis es meiner besseren Hälfte genehm war.

Um noch ein Grafiken zeigen zu können: Hier ist ein Thema, das ich angepaßt habe, damit es zu meinem blauen Arbeitsoberflächen-Layout paßt. Das originale Metallic - aluminum warp und mein Metallic Blue Aluminum Warp:

Metallic - Aluminium warpMetallic Blue Aluminium Warp

Hier ist ein "Do it yourself"-Thema - Coloured Tiles - von Alex Taylor. Es kann hier heruntergeladen werden: Coloured Tiles Thema

2. Themen hinzufügen

Schritt 9 - Nachdem alle erforderlichen Bitmaps angepaßt worden sind, müssen diese zu einer RES-Datei kompiliert werden, bevor wir den Befehl Addtheme verwenden können, um die DLL und einen Eintrag in der Datei Thememgr.idx zu erzeugen. Kopieren Sie die Datei THEMA.RC in das Verzeichnis Themenname und benennen Sie sie in Themename.RC um - die Beispiel-RC-Datei ist H:\os2\Thememgr\eCSW2pnk\ecsw2pnk.RC.

Nun befinden sich die Bitmaps und die RC-Datei im selben Verzeichnis, öffnen Sie also ein Befehlszeilenfenster im Verzeichnis Themenname und verwenden Sie folgenden Befehl, um die Datei Themenname.RES zu erzeugen:

rc -r Themename.RC
Der Befehl für unser Beispiel ist:
[H:\os2\Thememgr\eCSW2pnk\]rc -r ecsw2pnk.rc

Step 10 - Die folgenden erforderlichen Dateien sollten nun vorhanden sein:

Themename.idx
Themename.bmp
Themename.RES
Kopieren Sie diese Dateien in das Verzeichnis des Theme Managers. Damit der Befehl Addtheme funktioniert, muß sich eine Kopie der Datei pmmrgres.dll im Verzeichnis des Theme Managers befinden. In diesem Verzeichnis sollte sich eine Datei PMMRGRES.SAV befinden, die Sie nach PMMRGRES.DLL kopieren können. Überprüfen Sie auf jeden Fall, ob diese Datei vorhanden ist, bevor Sie fortfahren.

Wechseln Sie auf einer Befehlszeile in das Verzeichnis des Theme Managers und geben Sie

Addtheme Themenname
ein. Der Befehl Addtheme kopiert die Datei PMMRGRES.DLL nach Themenname.dll und aktualisiert diese mit dem Inhalt der Datei Themenname.RES. Außerdem erstellt Addtheme einen Eintrag in der Datei Thememgr.idx unter Verwendung der Details aus der Datei Themenname.idx.

Nachdem Sie das neue Thema erzeugt haben, können die Dateien Themenname.idx und Themenname.RES nun aus dem Verzeichnis des Theme Managers entfernt werden.

Für unser Beispiel habe ich die Dateien

ecsw2pnk.idx
ecsw2pnk.bmp
ecsw2pnk.RES
von H:\os2\Thememgr\eCSW2pnk nach H:\os2\Thememgr kopiert.

Dann habe ich folgenden Befehl eingegeben:

[H:\os2\Thememgr\]Addtheme ecsw2pnk

Nachdem die Nachricht "Successful completion" ausgegeben wurde, habe ich die Befehlszeile geschlossen und das Verzeichnis des Theme Managers ( [H:\os2\Thememgr] ) in Symbolanzeige geöffnet. Dort befand sich nun eine neue DLL, ecsw2pnk.dll, welche das Thema Warplike Pink enthielt, das meine bessere Hälfte sich gewünscht hatte. Nach dem Start des Theme Managers führt dieser auch Warplike Pink auf, also zeigt sich nach Anwenden und einem Systemneustart...

Funktioniert es?

Ja. :-) Ich hoffe, damit ist anderen Leuten geholfen, die den Drang verspüren, Themen für den Theme Manager zu entwerfen oder zu modifizieren.

Da alle bisherigen Grafiken Bildschirmphotos der Themenvorschau waren, wie sie vom Theme Manager angezeigt werden, sehen Sie nun ein paar tolle Bildschirmphotos von modifizierten Themen, wie sie auf zwei Arbeitsoberflächen aktiv sind.

Warplike Pink ThemaVon ihrer Arbeitsoberfläche - Das Warplike Pink Thema in Aktion.

Hierbei handelt es sich um ein Bildschirmphoto eines PMView-Fensters, welches ein Bildschirmphoto ihres Lotus-Ordners zeigt.

Wie Sie sehen, passen die Druckknöpfe der Titelleiste zum pinken Layout meiner besseren Hälfte, wie PMViews Druckknöpfe in der Menüleiste zeigen. Außerdem, auch wenn es hier nicht sichtbar ist, ähnelt die Farbe der inaktiven Titelleiste derjenigen der Druckknöpfe in der Titelleiste.

Ein ähnlicher Schnappschuß von Metallic Blue Aluminium Warp in Aktion auf meiner Arbeitsoberfläche, die ein blaues Layoutschema hat - dies haben Sie vielleicht an den Bildschirmphotos der Vorschauen des Theme Managers bemerkt.

Daten und Quellen:

Alex Taylors Thema Coloured Tiles - http://www.cs-club.org/%7Ealex/theme01.zip


[Artikelverzeichnis]
editor@os2voice.org
[Vorherige Seite] [Inhaltsverzeichnis] [Nächste Seite]
VOICE Homepage: http://de.os2voice.org