Josh hat geschrieben:
Nein, ich habe mir das schon so gedacht, dass der User gar nicht merkt, dass du die beiden Sci-Gadgets tauscht. Dazu müsstest du natürlich den Code und den Curser so positionieren, wie es im ursprünglichen Splitterteil war. D.h., wenn im unteren Sci-Gadget der Code ab Zeile 257 angezeigt wurde und der Cursor auf Zeile 265, Spalte 20 positioniert wurde, dann wird nach dem Swap der beiden Sci-Gadgets das Untere genau wieder auf Zeile 257 und der Cursor auf 265/20 gesetzt.
Ich kann es später mal testen. Mal schauen, wie sich das verhält.
Josh hat geschrieben:
Da du ja keine Tabnamen im Kontextmenü anzeigst, ist die Reihenfolge ganz wichtig. Aber da stimmt irgendwas nicht.
Das stimmt, aber da kann ich leider nicht viel dagegen machen. Ich lese die Tabs bzw. die vorhandenen ScintillaGadgets mit EnumChildWindows_() aus. Da gibt es leider kein SQL-Order by.

Josh hat geschrieben:
Die aktuellen Tabs in der richtigen Reihenfolge erhältst du mit 'GetEnvironmentVariable("PB_TOOL_FileList")'. Leider sind da keine ungespeicherten Sources enthalten. Da ungespeicherte Sourcecodes meistens am Ende der Tabs stehen, wird dies in der Praxis weniger Rolle spielen. Einfach einen Hinweis in der Beschreibung und gut ist ^^
Das Problem ist, dass die von PB bereitgestellten Umgebungsvariablen nur einmalig erstellt und nicht aktualisiert werden.
Mit EnumChildWindows_() erhalte ich immer die aktuelle Tabliste (nur manchmal nicht in der richtigen Reihenfolge).
Da die Tabliste ein CanvasGadget ist, kann ich leider auch keine Tab-Texte auslesen wie beim PanelGadget.
Mehr Möglichkeiten habe ich leider nicht.
Wenn man diese Funktion (Datei aus anderem Tab) nutzen nöchte, muss man nach Gefühl durchklicken, um die gewünschte Datei zu finden.
Alternativ wäre es möglich, die ersten X Zeichen des jeweiligen Quellcodes als Vorschau anzuzeigen. Entweder im MenuItem oder falls es möglich ist, per MouseOver.