Aktuelle Zeit: 14.11.2019 11:46

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: system theme
BeitragVerfasst: 22.05.2019 19:57 
Offline

Registriert: 14.12.2015 15:16
hi leute, ich hätte da eine frage:

beim erstellen eigener Steuerelemente ist es mir wichtig, dass die systemspezifische Design bei Möglichkeit genau so übernommen wird. Zum Beispiel für Buttons, Scrollbars etc.

unter Windows, im klassischem Stil, kann man das ja wunderbar per Code nachahmen und die Systemfarben direkt von API abholen. Da bietet PureBasic ja genug.

Wie sieht es aber mit dem Design aus mit Windows XP, Vista, 7 aus? Ab Windows 8 denke ich, dass die Systemfarben wieder weitesgehend reichen, da der Stil halt flach und einfach nachahmbar ist. Aber bei XP, Vista und 7 müsste man ja irgendwie an die Theme-Abbilder über die API rankommen. Ich hatte mal sowas irgendwo im Forum mal früher gesehen, aber finde den Post einfach nicht mehr.

Dann müsste man das auch für den OS-X irgendwie machen. Für die älteren Versionen < Yosemite gab es irgendwie eine Resource-Datei. Die finde ich nicht mehr. Hat jemand eine Idee (snow leopard und mountain lion und virueller maschine)? Ab Yosemite könnten wieder denke ich Systemfarben ausreichen, oder?

Unter Linux wäre da ein großer Wunsch, zumindest irgendwie die GNOME Theme-Kram durchzuparsen, aber da kann ich auch mit einer vordefinierten Stil leben. Der Aufwand ist zu groß. Es sei denn, jemand hat eine gute Idee, um es zu meistern?

Mich würde es auch ehrlich gesagt interessieren, wie Fred und Co. das Thema in PureBasic technisch gelöst haben..


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: system theme
BeitragVerfasst: 22.05.2019 20:26 
Offline
Admin
Benutzeravatar

Registriert: 05.10.2006 18:55
Wohnort: Deutschland::Berlin()
Ich rede hier nur über Windows. Mit anderen Betriebssystemen kenne ich mich nicht so gut aus.

5mware hat geschrieben:
beim erstellen eigener Steuerelemente ist es mir wichtig, dass die systemspezifische Design bei Möglichkeit genau so übernommen wird. Zum Beispiel für Buttons, Scrollbars etc.

Es besteht die Möglichkeit, mit Hilfe der DLL-Dateien themeui.dll, Uxtheme.dll die Theme-Grafiken zu laden und manuell zu setzen.
Außerdem kannst du einzelne Systemfarben mit folgender Funktion ermitteln: GetSysColor_()
Beispiel: GetSysColor_(#COLOR_3DFACE) für den Fensterhintergrund.
Weitere Systemfarben zum Ermitteln findest du hier: https://docs.microsoft.com/en-us/window ... etsyscolor
OpenThemeData_() ist auch eine nützliche Funktion. Einfach nach dieser Funktion im Forum suchen. Dann findest du ein paar Beispiele.

5mware hat geschrieben:
Mich würde es auch ehrlich gesagt interessieren, wie Fred und Co. das Thema in PureBasic technisch gelöst haben..

Gar nicht. Das übernimmt das Betriebssystem. Windows stellt dem Programmierer und der Programmiersprache die API-Schnittstelle (WinAPI) bereit. Das sind u.a. Fenster (OpenWindow) und Controls (z.B. ButtonGadget).
PureBasic ist größtenteils (nicht alles) nur eine Art Wrapper.

_________________
BildBildBildBild BildBild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: system theme
BeitragVerfasst: 22.05.2019 23:43 
Offline

Registriert: 14.12.2015 15:16
hi RSBasic,

danke für deinen Tipp

Zitat:
Gar nicht. Das übernimmt das Betriebssystem. Windows stellt dem Programmierer und der Programmiersprache die API-Schnittstelle (WinAPI) bereit. Das sind u.a. Fenster (OpenWindow) und Controls (z.B. ButtonGadget).
PureBasic ist größtenteils (nicht alles) nur eine Art Wrapper.

hatte ich schon befürchtet, aber gehoft, dass es vielleicht nicht durchgehend so wäre, weil die gadgets teilweise sich anders verhalten, als sie sollten. da habe ich angenommen, das diese selbst erstellte lösungen sind. zum beispiel der scrollbargadget. naja, was solls :-)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: system theme
BeitragVerfasst: 23.05.2019 09:02 
Offline
Admin
Benutzeravatar

Registriert: 05.10.2006 18:55
Wohnort: Deutschland::Berlin()
5mware hat geschrieben:
da habe ich angenommen, das diese selbst erstellte lösungen sind. zum beispiel der scrollbargadget. naja, was solls :-)

ScrollBarGadget() ist auch nur ein WinAPI-Control und wurde nicht neu erfunden. So sieht es in WinAPI aus:
Code:
EnableExplicit

If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
 
  CreateWindowEx_(0, "Scrollbar", "", #WS_CHILD | #WS_VISIBLE, 10, 10, 480, 20, WindowID(0), 0, 0, 0)
 
  Repeat
    Select WaitWindowEvent()
      Case #PB_Event_CloseWindow
        End
    EndSelect
  ForEver
EndIf


Im PB-Blog gibt es eine schöne Liste der verwendeten API-Controls je Betriebssystem: https://www.purebasic.fr/blog/?p=336

_________________
BildBildBildBild BildBild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: system theme
BeitragVerfasst: 23.05.2019 13:19 
Offline
Benutzeravatar

Registriert: 25.01.2005 12:19
RSBasic hat geschrieben:
Im PB-Blog gibt es eine schöne Liste der verwendeten API-Controls je Betriebssystem: https://www.purebasic.fr/blog/?p=336

Leider ist diese Liste für MacOS nicht mehr aktuell, weil in PureBasic 5.00 die in der Liste aufgeführten Controls des Carbon-Frameworks durch Controls vom Cocoa-Framework ersetzt wurden. Ich habe daher in diesem Posting die Tabelle von freak um eine Spalte mit den zu Grunde liegenden Cocoa Controls ergänzt. Leider ist der Originalbeitrag von freak nie durch meine modifizierte Tabelle ersetzt, ergänzt oder auf den neuesten Stand gebracht worden.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye