Seite 2 von 2

Re: [Module] StringEx (all OS)

Verfasst: 28.03.2019 23:04
von mk-soft
Für macOS sind noch nicht die richtigen färben eingetragen...

Zeile 1457

Code: Alles auswählen

        CompilerSelect #PB_Compiler_OS ;{ Color
          CompilerCase #PB_OS_Windows
            StrgEx()\Color\Front         = GetSysColor_(#COLOR_WINDOWTEXT)
            StrgEx()\Color\Back          = GetSysColor_(#COLOR_WINDOW)
            StrgEx()\Color\Focus         = GetSysColor_(#COLOR_HIGHLIGHT)
            StrgEx()\Color\Button        = GetSysColor_(#COLOR_3DLIGHT)
            StrgEx()\Color\Border        = GetSysColor_(#COLOR_WINDOWFRAME)
            StrgEx()\Color\WordColor     = GetSysColor_(#COLOR_HOTLIGHT)
            StrgEx()\Color\Highlight     = GetSysColor_(#COLOR_HIGHLIGHT)
            StrgEx()\Color\HighlightText = GetSysColor_(#COLOR_HIGHLIGHTTEXT)
          CompilerCase #PB_OS_MacOS
            StrgEx()\Color\Front     = OSX_NSColorToRGB(CocoaMessage(0, 0, "NSColor textColor"))
            StrgEx()\Color\Back      = BlendColor_(OSX_NSColorToRGB(CocoaMessage(0, 0, "NSColor textBackgroundColor")), $FFFFFF, 80)
            StrgEx()\Color\Focus     = OSX_NSColorToRGB(CocoaMessage(0, 0, "NSColor keyboardFocusIndicatorColor"))
            StrgEx()\Color\Button    = OSX_NSColorToRGB(CocoaMessage(0, 0, "NSColor controlBackgroundColor"))
            StrgEx()\Color\Border    = OSX_NSColorToRGB(CocoaMessage(0, 0, "NSColor grayColor"))
            StrgEx()\Color\Highlight = OSX_NSColorToRGB(CocoaMessage(0, 0, "NSColor selectedTextBackgroundColor"))
          CompilerCase #PB_OS_Linux
So geht es auch im Darkmode

Re: [Module] StringEx (all OS)

Verfasst: 28.03.2019 23:59
von mk-soft
EDIT

Man kann bei macOS nicht aus einem Thread auf einem CanvasGadget zeichnen.

Hier mal die Lösung über ein PostEvent aus dem Thread heraus. Dazu verwendet man den EventType Change, da dieser vom CanvasGadget nicht verwendet wird.

Mit PauseThread ist auch nicht so gut. Dieses führte zu undefinierten Dead-Lock mitten im Zeichnen.

P.S. Man könnte jetzt wieder auf den Mutex verzichten, da nicht mehr im Thread gezeichnet wird.

Hier mal den gesamten Code...
Werde ich später wieder entfernen.

Edit 2

Code: Alles auswählen

; Code wie gesagt wieder entfernt ;)
Ach ja,
Bei Verwendung von Thread müssen unbedingt die Threads beim verlassen des Programmes auch beendet werden.
Sonst schließt das Programm nicht.

Re: [Module] StringEx (all OS)

Verfasst: 29.03.2019 09:45
von mk-soft
Kleines Update hinterher...

Mutex entfernt. Es wird durch den PostEvent (Change) nur noch im MainScope gezeichnet...
Bei Free KillThread nur bei bedarf.

PauseThread hatte zu einem Dead-Lock geführt.

P.S. Man könnte noch ein Semaphore anlegen zum wecken des Threads verwenden, damit dieser nicht unnötig durchläuft.

P.P.S Habe mal den Semaphore zum wecken des Threads eingebaut...

Re: [Module] StringEx (all OS)

Verfasst: 29.03.2019 15:17
von Thorsten1867
Ich hoffe, ich kann mit dieser Version alle Macs friedlich und kooperativ stimmen.

Changes: Cursor-Handling und Thread

Re: [Module] StringEx (all OS)

Verfasst: 02.04.2019 09:58
von Thorsten1867
Update:
  • globalen Cursor-Thread für alle StringEx-Gadgets gemeinsam
  • Unterstützung von 'ModuleEx' (Master-Module für alle meine Gadgets)

Re: [Module] StringEx (all OS)

Verfasst: 12.06.2019 13:03
von Thorsten1867
Update:
  • Flags: #Left / #Center / #Right
  • Attribut '#Padding' hinzugefügt
  • automatische Größenanpassung des Gadgets (#AutoResize)

Re: [Module] StringEx (all OS)

Verfasst: 18.08.2019 21:18
von Thorsten1867
Bugfixes: Cursor

Re: [Module] StringEx (all OS)

Verfasst: 03.09.2019 18:28
von Thorsten1867
Update: dynamische Textgröße (benötigt ModuleEx.pbi)

Re: [Module] StringEx (all OS)

Verfasst: 24.11.2019 19:12
von Thorsten1867
Update: StringEx::SetInputMask()

Beispiele:
  • Datum: "____/__/__/" or "__.__.____"
  • Zeit: "__:__:__"
  • Lizenznummer: "___-___-___"
  • Geld: " *,__€ "

Re: [Module] StringEx (all OS)

Verfasst: 06.12.2019 09:38
von Thorsten1867
Update: Hintergrundtext hinzugefügt

Code: Alles auswählen

StringEx::SetText(#String, "Background Text", StringEx::#Background)