MacOS API
-
1. vermutlich Cocoa
2. http://en.wikipedia.org/wiki/Objective-C#Objective-C.2B.2B
http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/ObjectiveC/Articles/ocCPlusPlus.html#//apple_ref/doc/uid/TP30001163-CH10-SW13. Weil X11 direkt zu programmieren, viel zu ätzend ist. Schau dir einfach mal ein XLib oder besser XCB Beispiel dafür an, wie man ein Fenster erzeugt. Da benötigst du schon locker 100 Zeilen ohne dass das Fenster Inhalt hat oder Signale empfangen kann (zur Info: X11 kennt keine Widgets! Das müsstest du also alles selbst basteln). Außerdem wird X11 nicht native unter OSX unterstützt. Dafür benötigt man einen extra X11 Server (gibt es zwar von Apple kostenlos, aber den muss man extra installieren und fühlt sich nicht sonderlich native an). Und zu OSX gehört eben ein gewisser Look&Feel, den du dann komplett nachbauen müsstest (und bei jeder Änderung wieder anpassen) etc.
=> Mit X11 programmiert man einfach nicht direkt. Da gibt es genug Leute, die ihre Zeit damit vertreiben und einem fertigen guten Code liefern.
-
Ah also habe ich 2 alternativen.
1.) Entweder benutze ich die Carbon API mit der ich jedoch nicht die nativen widgets von OS X nutzen kann und ein look n feel von älteren versionen bekomme.
oder
2.) Ich Programmiere mein GUI Zeugs ins ObjC mit cocoa und füge mein C++ code dan hinzu.
Ich glaube option 2 währe eine gute lösung die ich glaube auch benutzt wird
Jedoch mit X11 würde ich mich trotzdem gerne mal auseinander setzen, mich interesiert jetzt einfach was die GUI Kit's und die Desktops (Gnome,KDE,etc.) im low level machen, schließlich bauen die auch auf X11 auf.
Mfg Wikinger75!
-
Wikinger75 schrieb:
Jedoch mit X11 würde ich mich trotzdem gerne mal auseinander setzen, mich interesiert jetzt einfach was die GUI Kit's und die Desktops (Gnome,KDE,etc.) im low level machen, schließlich bauen die auch auf X11 auf.
Die schon, Cocoa nicht.
Und dazu was zu lernen ist bestimmt eine gute Idee, es selbst zu verwenden eher nicht.
-
Wikinger75 schrieb:
3.)Warum sollte ich nicht direkt für X schreiben wollen?
Siehe hier ein einfaches "hello world" Bsp mit X11: http://www.c-plusplus.net/forum/viewtopic-var-p-is-1607700.html#1607700
Wenn du Cocoa vermeiden willst, dann solltest du wenigstens ein Framework wie GTK+ der QT nehmen, welches auf Mac portiert ist. Die Mac Portierungen werden 100% das Look&Feel gleich machen und/oder sogar nativ auf cocoa setzen. Vorteil von der Geschichte: dein Anwendungen bleibt nicht zwangsläufig nicht nur für Mac erhältlich.
btw: Der Konjunktiv II vom Verb sein schreibt man ohne h: wäre
-
Siehe hier ein einfaches "hello world" Bsp mit X11: http://www.c-plusplus.net/forum/viewtopic-var-p-is-1607700.html#1607700
Wenn du Cocoa vermeiden willst, dann solltest du wenigstens ein Framework wie GTK+ der QT nehmen, welches auf Mac portiert ist. Die Mac Portierungen werden 100% das Look&Feel gleich machen und/oder sogar nativ auf cocoa setzen. Vorteil von der Geschichte: dein Anwendungen bleibt nicht zwangsläufig nicht nur für Mac erhältlich.
Ah gut, aber aufjedenfall sind die WinAPI, X11 und Cocoa die für mich interesanten interfaces. Jedoch glaube ich auch nicht das es eine gute idee ist direkt in X11 programme zu schreiben
, vllt. als übung eine eigene gui ma dadrauf aufbauen, aber mehr auch nicht^^
Naja ich werd mir aufjedenfall noch X11 und Cocoa direkt ankucken, weil ich einfach neugierig bin und mich immer dieses schöne wort "LOW LEVEL" reitzt.
Zu GUI Kits.
Ich habe früher mit wxWidgets gearbeitet, doch mir kamm dieses paket als unvollständig vor und hab auch noch rausgefunden das es total veraltet ist, also auch immer noch mit einem compiler aus 1990 compiliert werden kann, keine namespace, usw.Qt ist auch nichts für mich, denn mich pers. stört einfach die Lizenz und das es auch wie wx keine namespace etc. ...
Wenn schon ein GUI Kit, dann sollte es eines sein welches recht Modern aufgebaut ist und in C++ ,sprich mit namespace, etc. Wäre hier auch für emfählungen mit links dankbar ;).
Aber ich geh hier schon ins OffTopic hinein
Ich bräuchte jetzt nur noch ein paar Links für tuts, eBooks oder Büchern zu X11(XLib) und Cocoa API. Für WinAPI hab ich den Petzold bei mir rumliegen.Mfg Wikinger75!
-
öhm Qt ist mittlerweile auch unter LGPL erhältlich. Da sind deine Infos veraltet
Und Qt verwendet doch namespaces (zu mindestens in Qt 4.x) oder was meinst du?
-
@Wikinger: bist du ein Troll oder nur ideologisch verblendet? Du nennst QT veraltet, aber du willst unbedingt mit X11 nativ arbeiten? Wenn du dir selber einen Klotz am Beim hängen willst, dann viel Spaß.
-
Über QT kursieren eine Menge veraltete Informationen und Vorurteile, teils noch aus QT2-Zeiten oä.
Wikinger75: WinAPI, X11 und Cocoa? Was willst Du denn machen? Wenn Du irgendwas portables schreiben möchtest, dann nimm doch einfach QT oder GTK+ oä. Nebenbei bemerkt schreibt auch unter GNU/Linux kein Schwein mehr X11-Anwendungen, da nimmt man auch QT oder GTK oder wxwidgets oder …
-
firefly schrieb:
öhm Qt ist mittlerweile auch unter LGPL erhältlich. Da sind deine Infos veraltet
Und Qt verwendet doch namespaces (zu mindestens in Qt 4.x) oder was meinst du?Dafür verwendet X11 aber keine namespaces ;). Wer einfach portable GUIs bauen will, sollte Qt nehmen. Zwar ist die API nicht das hübscheste. Aber im Vergleich zu X11 oder WinAPI ist sie ein Traum.
Außerdem ist X11 zwar Lowlevel. Aber wie bereits mehrfach gesagt, keine native OSX API! Aber er soll ruhig damit rumspielen. Er wird wohl früh genug selbst drauf kommen, dass man kein eigenen X11 Code schreiben will.
-
öhm Qt ist mittlerweile auch unter LGPL erhältlich. Da sind deine Infos veraltet
Und Qt verwendet doch namespaces (zu mindestens in Qt 4.x) oder was meinst du?Ja dan is das was anderes
@Wikinger: bist du ein Troll oder nur ideologisch verblendet? Du nennst QT veraltet, aber du willst unbedingt mit X11 nativ arbeiten? Wenn du dir selber einen Klotz am Beim hängen willst, dann viel Spaß.
Hmm neja ich nannte Qt in richtung C++ veraltet, jedoch ist X11 noch in C gehalten
. Der Klotz ist nur dazu da um es zu lernen und nicht um es alternativ zu verwenden einfach aus dem grund weil es komplex und umständlich ist.
@Wikinger75: WinAPI, X11 und Cocoa? Was willst Du denn machen? Wenn Du irgendwas portables schreiben möchtest, dann nimm doch einfach QT oder GTK+ oä. Nebenbei bemerkt schreibt auch unter GNU/Linux kein Schwein mehr X11-Anwendungen, da nimmt man auch QT oder GTK oder wxwidgets oder …
Ja ich werde ja auch GTKmm, FLTK oder Qt nutzen, jedoch interesiert mich das Low Level einfach.
Dafür verwendet X11 aber keine namespaces ;). Wer einfach portable GUIs bauen will, sollte Qt nehmen. Zwar ist die API nicht das hübscheste. Aber im Vergleich zu X11 oder WinAPI ist sie ein Traum.
Außerdem ist X11 zwar Lowlevel. Aber wie bereits mehrfach gesagt, keine native OSX API! Aber er soll ruhig damit rumspielen. Er wird wohl früh genug selbst drauf kommen, dass man kein eigenen X11 Code schreiben will.
Naja X11 ist ja auch C und wie gesagt ich würde dan auch ein GUI Kit nehmen, aber wie gesagt interesiert mich das Low Level.
Mfg Wikinger75!