SciTE - Farbig hervorheben: Aktuelles Tab Item

    • Hervorheben des aktiven Tab-Item in SciTE
    • Individuell:
      • Rahmenfarbe
      • Textfarbe
      • Hintergrundfarbe
      • Textfarbe bei nicht gespeichert
      • [NEU v0.3] Markierung "Inaktives Item ungespeichert"
      • [NEU v0.4] Markierung "Inaktives Item ungespeichert" wahlweise 'top' / 'bottom' / 'none'
      • [NEU v0.4] Markierung Aktives Item kann deaktiviert werden (falls nur Markierung ungespeichert gewollt)
        Das aktive Item erhält dann bei "ungespeichert" dieselbe Markierung, wie inaktive Item.
    • Farben als Scheme über INI ladbar
    • [NEU v0.4] Das kompilierte Skript kann mit CMDLine-Parameter "/Exit" beendet werden
    • [v0.5] Gefixed: Flickern der Markierung
      [v0.5] Gefixed: Markierung hat nicht gewechselt bei Nutzung der Tastatur zur Auswahl der Tabs

      

        

      

      


    Das Skript z.B. über Autostart laden.

    SciTE_DrawTabItem.au3 v 0.5

    DL bisher: 85

  • Ich glaube ich bin beim Scripten irgendwie anders als ihr.
    Habt ihr so viele Scriptfenster auf, das sich das Tab hervorheben muss das man bereits ausgewählt habe oder ist es einfach nur aus Spaß?
    Am Kopf kratze und überlege.

    "Cool" finde ich "Textfarbe bei nicht gespeichert". Ich werde das Thema im Auge behalten. ;)

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • Es ging darum, dass unter Windows 11 das aktive TabItem nicht oder kaum hervorgehoben wird.

    Okay, das verstehe ich.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • Es ging darum, dass unter Windows 11 das aktive TabItem nicht oder kaum hervorgehoben wird.

    Prima Idee mit sehr hohem Mehrwert, nicht nur in Win 11. Das funktioniert bei mir auch unter Win 10 einwandfrei. Ich finde unter anderem das Func _MouseHoversTab() von Dir sehr gut gelöst, dazu echt gewöhnungsbedürftig und witzig. Ich habe es noch nie bewußt erlebt, dass anstatt beim "drüberfahren" beim "verlassen" eines Buttons oder eines Tabs das Mousehover wirksam wirkt. Der Tab normalisiert sich beim "drüberfahren" und beim "verlassen" des Tabs wirkt die Hervorhebeung Ich finde, dass das gleich in eine Sammlung der Effektserie, ggf. beim diesem Thema von Oscar von intigiert werden könnte.

    Vielen Dank für die Entwicklung und für Bereitstellung des Codes :thumbup: .

  • Ich habe es noch nie bewußt erlebt, dass anstatt beim "drüberfahren" beim "verlassen" eines Buttons oder eines Tabs das Mousehover wirksam wirkt.

    Das war aber keine primäre Absicht von mir. Hintergrund ist, dass SciTE intern bereits ein MouseHover nutzt (wird für das Tab bezogene Kontextmenü wirksam). Dadurch wird das TabItem durch SciTE im Moment des Hoverns neu gezeichnet - wodurch meine vorhergehende Änderung hinfällig ist. Deshalb muss diese bei Verlassen des Tab erneut vorgenommen werden.

  • Habt ihr so viele Scriptfenster auf, das sich das Tab hervorheben muss das man bereits ausgewählt habe oder ist es einfach nur aus Spaß?

    Hehe, da man ja mittlerweile schon so gut wie alles gescriptet hat, und nur nicht mehr weiß wo ganz genau in welchem Script der Teil ist den man sucht...da hab ich dann 20-30 Tabs offen und kopiere mir die Funktionen oder Brocken die ich brauche. Das können in Scite auch ab und zu mal 2 Reihen Tabs sein....warum auch nicht :P Wissen ist wissen, wo es steht!

  • Hehe, da man ja mittlerweile schon so gut wie alles gescriptet hat, und nur nicht mehr weiß wo ganz genau in welchem Script der Teil ist den man sucht...da hab ich dann 20-30 Tabs offen und kopiere mir die Funktionen oder Brocken die ich brauche. Das können in Scite auch ab und zu mal 2 Reihen Tabs sein....warum auch nicht :P Wissen ist wissen, wo es steht!

    Oh Andy, das kenne ich doch irgendwie. "Hatte ich schon mal" und in welchem Ordner bzw. untr welcher autoit-version war das noch. Habe alle Versionen, Ordner, Hilfen, Scripte, usw. jeweils den Version zugeordnet abgespeichert. Das ist schon ein große Baumstrucktur. Aber wie Du auch sagst ist: "Wissen wo es steht" und das ist bei mir echt nicht gerade einfach.Und man kann noch nicht einmal auf die Holländer zurückgreifen (lass Andere suchen wo es ist), weil es mein persönlichen "Chaos" ist. Da hilft ab und an nicht einmal die Stchwortsuche. Ordnernamen in Duetsch, englsich und dänisch, da solle mal aufgeräumt werden.
    11 Tabs? Also das kenne ich nicht einmal aus meinem sonstigen Displayleben. Maximal 7 oder 8 Tabs, aber dann um die Include die gerade genutzt wird um die dortige Erklärung zu lesen. Ich arbeite lieber mit zwei bzw. drei Monitoren, das gefällt mir besser.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • Hallo BugFix,

    ich habe mir dein Script mal genauer angeschaut, um es zu verstehen.

    Dabei bin ich auf folgende Zeile gestoßen, die ich gar nicht verstehe.

    Return SetError(($hWndTab = Null ? 1 : 0), 0, $hWndTab)

    Es geht um das

    $hWndTab = Null ? 1 : 0

    Das sieht aber irgendwie nach einer anderen Programmiersprache aus, da ich in AutoIt soetwas bisher noch nie gesehen habe.

    Ich vermute mal, dass dies eine Abfrage ist. So in etwa:

    Wenn $hWndTab leer ist dann ersetze es durch den Wert hinter :

    Etwa das gleiche steht in der Deklarationszeile der folgenden Funktion, da steht:

    Local $sVal = $_sDefault, $sSec = $_sec = Null ? 'scheme' : $_sec

    Kannst du mir das mal genauer erklären?

    MfG:

    BigRox

  • Ich meine das war so (Anhand dieser Beispiele und ohne Gewähr.):

    1.: Return SetError(($hWndTab = Null ? 1 : 0), 0, $hWndTab) bzw.: ($hWndTab = Null ? 1 : 0)

    Wenn $hWndTab den Wert Null hat, gebe 1 zurück, sonst 0, sprich: der Errorcode wäre dann 1 bzw. 0, extended immer 0 (,0) und der Rückgabewert $hWndTab (,$hWndTab)

    2.: $sSec = $_sec = Null ? 'scheme' : $_sec

    Wenn $_sec den Wert Null hat, gebe 'scheme' zurück, sonst $_sec, sprich: $sSec wird hier auf 'scheme' oder $_sec gesetzt

    Im Prinzip anhand des letzten Beispiels also:

    AutoIt
    If $_sec = Null then 
        $sSec='scheme' 
    else 
        $sSec=$_sec
    endif

    Es gab dafür auch einen Begriff auf den ich aktuell nicht komme XD

  • Hallo BugFix,

    das Script funktioniert gut, nur eine Kleinigkeit könnte man noch verbessern.

    Wenn ich z.B. drei Scripte im Explorer zum öffnen in SciTE auswähle, so werden die in SciTE angezeigt und das aktuelle Tab markiert.

    So weit ist alles bestens.

    Wenn ich dann aber eine weitere Datei weiter Datei z.B mit "Datei | Neu" hinzufüge, so wird die nicht als aktuell markiert.

    Erst wenn ich mit dem Cursor auf dieses neue Tab fahre und dann den Cursor wieder von diesem Tab weg bewege, wir dieses Tab auch markiert.

    Das selbe geschieht, wenn ich das aktuelle Tab schließe. Dann wird ja wieder ein anderes Tab zum aktuellen Tab, aber es wird nicht entsprechend markiert. Ich muss erst wieder mit dem Cursor auf diese Tab fahren und dann den Cursor wieder weg bewegen, damit es auch markiert wird.

    MfG:
    BigRox

  • Das selbe geschieht, wenn ich das aktuelle Tab schließe. Dann wird ja wieder ein anderes Tab zum aktuellen Tab, aber es wird nicht entsprechend markiert. Ich muss erst wieder mit dem Cursor auf diese Tab fahren und dann den Cursor wieder weg bewegen, damit es auch markiert wird.

    Das ist in der Version 0.5 nicht mehr der Fall. Jetzt wird im Intervall von 750 ms auf das aktive Tab überprüft und bei Bedarf markiert.