Jonas wrote:So ein System wäre wirklich eine schöne Sache! Klar, es ist eine sehr einschneidene Veränderung am Grundgerüst des TC nötig, aber die anschliesenden Vorteile wären enorm. Ich bin auch der Meinung das derartiges auf langfristige Sicht unbedingt das Rückrad für Usereingaben bilden sollte.
Jonas wrote:
Erweitert werden müssten Deine Aktionen noch um folgende Eigenschaften damit auch das Starten Externer Programme möglich wird: Parameter, Startpfad, Startart (als Symbol, maximiert...)
ja diese Sachen müssen natürlich auch sein. Hier noch eine Idee von meiner Wenigkeit:
http://www.ghisler.ch/board/viewtopic.php?t=1520
Jonas wrote:
Zusätzlich müsste die Möglichkiet gegeben sein, als Beschriftung auf den Inhalt der Sprachdateien zuzugreifen (zB. in der Form: "LNG: <id> [sprachdatei_prefix(_DEU.lng wird angehängt)]" also konkret "LNG: 2" anstelle von "Neues Verzeichnis"). So liessen sich auch Sprachunabhängige Aktionen erzeugen. Klartexteingaben sind natürlich weiterhin möglich, aber gerade die TC-standardmenüs kämen so mit einer rein strukturellen Speicherung aus und es würde nur eine offizielle Sprachdatei benötigt. (Ich nehme an, das das das ist was Du, Lefteous, mit der strikten Trennung von Struktur und Lokalisierung meinst)
ja Trennung zwischen Struktur und Lokalisierierung ist das worauf ich hinaus will.
Jonas wrote:
Das Startmenü würde sich in keinster Weise von den anderen Menüs unterscheiden. Es wird genauso nichts weiter als die Struktur der darin enthaltenen Aktionen verlangt.
Selbes für die Buttonbar. Es wird aufgespaltet in "ändern" und "Aktion bearbeiten", wobei "ändern" nur die Position (bei Änderung muss eben ein neues .bmp generiert werden) und die auszuführende Aktion verändert.
Auch die Directory Hotlist wäre nichts anderes als eine Ansammlung von Aktionen, genau wie die untere Buttonbar.
Ein Ziehen eines Programms in die Bottunbar generiert dann automatisch eine entsprechende Aktion sowie den Button selbst als Aufrufendes Element. Der user bekommt einen Dialog indem er der Aktion einen eideutigen Namen gibt und andere Parameter wie Startpfad oder hotkey festlegt.
genau so läuft der Hase!
Jonas wrote:
Um weiterhin für Übersicht zu sorgen schlage ich eine Erweiterung der Kategorisierung vor: Es sollte eine feste Kathegorie "automatisch generiert" geben, in der alle Aktionen ohne vom user eindeutig festgelegten Namen vereint werden. Als Beispiel wären erzeugnisse der Direktory-Hotlist zu nennen. Es wäre äusserst unpraktisch wenn man hier bei jedem Hinzufühgen eines Verzeichnisses nach einem Eindeutigen Namen gefragt würde, zumal diese Aktionen (cd xy\zzz) meist ausschliesslich von hier aufgerufen werden. Also generiert der TC ohne Rückfrage die Aktion, generiert ihre den eindeutigen Namen wie zB. "Directory-Hotlist_zzz" und packt sie in die obengenannte feste Kathegorie. Braucht man diese Aktion später auch noch anderswo (zB. Buttonbar oder Menü) oder möchte ihr einen Hotkey zuordnen kann man später die Aktion immernoch bequem umkonfigurieren.
Das ist sicherlich sinnvoll. Allerdings plädiere ich dafür, das automatisch vergebene Aktions-Identifizierer sich eher an der Aktion (cm_UserCD0001) orientieren als daran, ob sie im Startmenü oder in der Verzeichnisliste erzeugt wurden.
Jonas wrote:
Ein ebenfalls grosser Vorteil ist deben der Tatsache das verschiedenste Elemente (Menü, Buttonbar, etc) auf die selbe Aktion zugreifen würden, sprich Änderungen zB. des Hotkeys sich global auswirken würden und nicht an zig verschiedenen Stellen Hand angelegt werden müsste, die relatif einfache Erweiterung um weitere aufrufende Elemente. Sehr schön wäre es zB. das Kontextmenü um eigene Aktionen zu erweitern. Ebenfalls müsste ncihts weiter als die Aktion und eine Bedingung (wie zB. immer, erweiterung=cpp, mime-type=plain/text, location=ftp, etc) in einer Struktur, beinhaltent Position, untermenüs und Seperatoren, ähnlich dem normalen Menü gespeichert werden.
In Sachen Hotkeys ist es ganz einfach so: Es muss überhaupt kein Button existieren, damit ein Hotkey wirksam ist.
Nebenbei hat man so in der Aktionsverwaltung eine schicke Übersicht der aktuellen Hotkeys.
Jonas wrote:Hier vermischt Du wieder Struktur (diesmal der Aktion) und Lokalisierung.
Ich nutze das Beispiel mal weiter:
In der Menüdatei (ausschnitt):
POPUP LNG: 7777
MENUITEM cm_spreadselection
MENUITEM cm_shrinkselection
MENUITEM cm_selectall
MENUITEM cm_Clearall
MENUITEM cm_ExchangeSelection
MENUITEM 529
MENUITEM SEPARATOR
MENUITEM cm_CompareDirs
MENUITEM cm_DirMatch
END_POPUP
In der Aktions-datei:
[cm_spreadselection]
Caption=LNG: 8888
Hint=LNG: 8889
HotKey=+
In der Sprachdatei:
7777=2&Markieren"
8888="&Gruppe markieren"
8889="Gruppe markieren"
Ich vermische hier keinesfalls Struktur und Lokalisierung - wie kommst du darauf? Ich habe jedoch in dem Beispiel nicht hingeschrieben, was in der Aktions-Datei steht. Das würde nach meinen Vorstellungen so aussehen:
[CATEGORYTITLES]
CTG_SELECT=7777
[cm_spreadselection]
Caption=8888
Hint=8889
Hotkey=8890
Also eigentlich genau wie bei Dir oder wolltest Du ein Beispiel bringen wie man es nicht machen sollte:?: Wenn ja, worin besteht die Vermischung?
Ob der Hotkey lokalisiert werden sollte, darüber kann man natürlich diskutieren. In meinem Beispiel habe ich das einfach mal so gemacht.
Ich mag das nur mit Zahlen nicht so sehr. Zumindest für die Kategorietitel sollte man die schon vergeben - es ist eine Option, die man nutzen kann oder nicht. Allerdings läßt mein Vorschlag natürlich auch zu, das nur Zahlen benutzt werden. Warum stellst Du immer "LNG: " vornean? Das ist bisher auch nicht drin und macht das Parsen des Strings nur etwas aufwendiger. Wenn eine Nummer dasteht, dann gibt es halt keinen Identifizierer.
Mein Vorschlag baut noch auf der momentanen Menüstruktur auf. Es sollten dann sicher allgemeinere Prefixe als POPUP und MENUITEM benutzt werden.