GradientControl 2.3 (Source)

Anwendungen, Tools, Userlibs und anderes nützliches.
Lambda
Beiträge: 526
Registriert: 16.06.2011 14:38

GradientControl 2.3 (Source)

Beitrag von Lambda »

Bild


2.2 Deaktiviert - Weichzeichnung & Grauskalierung

Marker mit Fokus


Ein Rewrite des GradientGadget´s. Jetzt effizienter und Ereignisse müssen nicht extra abgefragt werden/Gadget neu gezeichnet.

- RGBA
- Marker hinzufügen durch Klick
- Marker entfernen durch herausziehen+loslassen
- Farbe kann angepasst werden
- Einsetzen/herauskopieren der Marker-Liste
- Direkt aus einem GradientControl lesen
- CallBack zur Farbauswahl (bei Doppelklick auf Marker)
- Deaktiviert - Weichzeichnung & Grauskalierung
- Volle Tastatur-Unterstützung*
*
Ctrl+Left/Right - switch between Markers
Left/Right - move active Marker
Down - remove active Marker
Enter - call Marker-CallBack
Space - dublicate active Maker
Beispiel (in Archiv enthalten)

Code: Alles auswählen

UsePNGImageDecoder()
OpenWindow(0, 0, 0, 400, 70, "GradientControl", #PB_Window_SystemMenu|#PB_Window_SizeGadget)



GradientControl(0, 0, 0, 300, 20, #GC_MARKER_ADD)
GC_Add(0, 0, RGBA(100, 200, 20, 255))
GC_Add(0, 0.5, RGBA(10, 30, 200, 100))
GC_Add(0, 0.8, RGBA(200, 0, 200, 155))
GC_Add(0, 1, RGBA(20, 30, 100, 255))


Repeat
Select WaitWindowEvent()
  Case #PB_Event_CloseWindow
    End
    
  Case #PB_Event_SizeWindow
    ResizeGadget(0, 10, 20, WindowWidth(0)-20, 30)
    
EndSelect
ForEver
lG
Zuletzt geändert von Lambda am 25.11.2012 02:26, insgesamt 7-mal geändert.
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: GradientControl 2.0

Beitrag von RSBasic »

@cOoki3druqs
Bitte mach dein GradientGadget als OpenSource (Include-Datei, die man in seinem Quellcode einbinden und jederzeit anpassen kann) und nicht als Userlib. Wenn irgendwas an der PB-Syntax geändert wird, dann funktioniert möglicherweise deine UserLib nicht mehr und wenn du mal nicht mehr im Forum aktiv bist, dann wird deine UserLib auch nicht mehr an der neueren PB-Version angepasst. UserLibs sind nicht wartungsfreundlich und an der PB-Version abhängig.

Außerdem ist in deinem Archiv dein Beispielcode nicht vorhanden, sondern stattdessen ein anderer Code und zwar von Tomcat. Fehler beim Einfügen bzw. falsch gespeichert?
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: GradientControl 2.0

Beitrag von ts-soft »

Naja, irgendwie fehlen hier noch ein paar Infos.

UserLib für windows, x86 nehme ich mal an?

Das Beispiel im RAR-Archiv enthält CreateBezier() aus dem CodeArchiv,
aber nicht das hier gepostete?

Ansonsten schließe ich mich RSBasic an.

Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Lambda
Beiträge: 526
Registriert: 16.06.2011 14:38

Re: GradientControl 2.0

Beitrag von Lambda »

Sowas, das war wohl der falsche Tab. Einfachheitshalber Source jetzt enthalten. <)

Wäre dann wohl besser in Tipps&Tricks aufgehoben. :D
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: GradientControl 2.0

Beitrag von ts-soft »

Naja, bei einer Userlib kann man IMHO erwarten:

- Welches Betriebssystem wird unterstützt
- Welche Prozessorarchitektur wird unterstützt
- Welche Compilerdirektiven werden unterstützt
- zumindest eine Kurzbeschreibung in Textform
- eine Lizenz
- Aussage, ob Source enthalten ist

Egal, kommt für mich sowieso nicht in Frage, zuviele Einschränkungen :wink:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Lambda
Beiträge: 526
Registriert: 16.06.2011 14:38

Re: GradientControl 2.0

Beitrag von Lambda »

Hat sich ja erledigt. Source jetzt enthalten. Wobei mir noch aufgefallen ist, dass Marker am Anfang/Ende gezogen etwas flacker. Wird noch behoben.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: GradientControl 2.0

Beitrag von ts-soft »

:allright:

So, 2 Probleme.

1. verträgt sich nicht mit ProGUI, SetGradient ist dort bereits als Befehl enthalten,
das ist natürlich nicht Deine Schuld, das kommt einfach wenn man Namen ohne
Präfix nutzt. Nach Möglichkeit sollte jede Include und UserLib Präfixe nutzen, auch
wenn das manchmal als unnötig empfunden wird. PB verfügt leider nicht über Namens-
räume oder ähnlichem, um solche Probleme zu umgehen.

2. der Code läuft bei mir nicht, IMA im EventLoop: Das angegebene #Gadget ist nicht initialisiert.
(ohne Debugger geht es, das reicht aber nicht, es sollte schon mit Debugger auch funktionieren!)

Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Lambda
Beiträge: 526
Registriert: 16.06.2011 14:38

Re: GradientControl 2.0

Beitrag von Lambda »

Zu 1. Geb ich dir völlig recht, bei einer eigenen Sprache erzwinge ich den Präfix. ^^
Zu 2. Wurde bereits darauf hingewiesen. (Zeile 45 im Beispiel unkommentieren)
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 6999
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: GradientControl 2.0

Beitrag von STARGÅTE »

Ein Sache die mir aufgefallen ist:
Wenn ich beim Parameter Marker.b #False übergebe, werden trotzdem Marker gezeigt. Liegt vermutlich daran, das der Parameter nirgends in der Prozedur verwendet wird, dann ist er aber irgendwie überflüssig.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Lambda
Beiträge: 526
Registriert: 16.06.2011 14:38

Re: GradientControl 2.0

Beitrag von Lambda »

So, dürfte jetzt alles gelöst sein.

- Präfix
- Marker Fix (rausziehen am Ende/Anfang)
- Marker.b jetzt Attributes.l (#GC_MARKER_ADD ermöglicht das Hinzufügen durch Klick)
Antworten