Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Solved: Glade

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Bibliotheken
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
croco97



Anmeldungsdatum: 04.11.2005
Beiträge: 260

BeitragVerfasst am: 09.10.2007, 08:53    Titel: Solved: Glade Antworten mit Zitat

Arbeite mich gerade in GTK+Freebasic ein. Das geht auch schon halbwegs. Aber GTK ohne Glade (GUI-Builder von GTK) ist natürlich nur halblustig. Wie ich allerdings die Ergebnisse von Glade mit Freebasic benutze, ist mir zur Zeit noch ein Rätsel. Kennt sich jemand damit aus? Glade baut im Wesentlichen ein XML und ein Verzeichnis voller c-Code - den ich zwar theoretisch von Hand in Freebasic übersetzen kann, aber Spass machen tut das nicht wirklich. Auf Freebasic.net wurde meine Frage schon mal gepostet - ohne auswertbare Antwort:
http://www.freebasic.net/forum/viewtopic.php?t=9263&highlight=glade

Benutzt jemand Glade+Freebasic schon? Bin für jeden Tipp dankbar.

Viele Grüsse!

Croco


Zuletzt bearbeitet von croco97 am 15.10.2007, 21:42, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 09.10.2007, 16:10    Titel: Antworten mit Zitat

Kann dir leider nicht zu deiner eFrage helfen. traurig
Aber wenn das dann funzt, wärst du dann bereit ein kleines Tutorial zu schreiben? grinsen
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 09.10.2007, 16:38    Titel: Antworten mit Zitat

Wenn die C Dateien "nur" Funktionen enthalten, dann kannst du sie mit Dev-CPP oder direkt mit dem GCC zu einer statischen Library compilieren, die du ohne weiteres (bis auf die Headerdatei, versteht sich) direkt in FB benutzten kannst.
Nur mal so als Vorschlag lächeln
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Michael712
aka anfänger, programmierer


Anmeldungsdatum: 26.03.2005
Beiträge: 1593

BeitragVerfasst am: 09.10.2007, 18:40    Titel: Antworten mit Zitat

Hallo croco97.

Ich verwende in FreeBASIC gtk und glade-3, ich weiß nicht, welche version du hast.
Bei mir wird eine .xml datei erstellt, die ich mit gtk/glade in FreeBASIC laden kann.

Die Grundlagen habe ich aus den Beispielen in FreeBASIC/examples/libraries/Gtk/, für dich sollte vor allem "glade-xml.bas" und die dazugehörige (von glade erstellte) test.xml interessant sein.
_________________
Code:
#include "signatur.bi"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
croco97



Anmeldungsdatum: 04.11.2005
Beiträge: 260

BeitragVerfasst am: 09.10.2007, 19:32    Titel: Antworten mit Zitat

Vielen Dank an alle!

@Mao: Das ist sogar der Zweck des Ganzen: Das nächste Kapitel im Oma-Tutorial Teil 3 soll GTK gewidmet werden. Gerüchteweise habe ich gehört, der Autor sollte erstmal selbst ein wenig lernen, über was er schreibt zwinkern))

@csde_rats: Nein, so einfach ist das nicht. Erstens wird es kaum möglich sein, GTK (inkl. Pango, Glib, Cairo usw.) mal kurz so selbst zu kompilieren. Zweitens wäre mir damit nicht geholfen, denn Glade ist ein C-Code-Builder, kein Compiler. Ich müsste also jedes Mal ne neue Lib kompilieren, wenn ich am GUI was geändert habe - keine gute Idee.

@Michael:
Neueste Version. Ja, die XML wird gebaut. Ich hab auch in den Examples vpn FB gesehen, dass man das mit speziellen Funktionen ansteuern kann.
Leider aber folgendes:

1. Ich hab in der Glade-Doku keinen Hinweis auf die XML-Funktionen gefunden. Wie benutze ich sie z.B. in Verbindung mit Menüs?

2. Die XML-Funktionen allein können nicht reichen, da ja die Callbacks definiert und deklariert werden müssen. Somit die Frage: Was ersetzt eigentlich die XML? main.c? main.h? support.c? support.h? Was muss ich dennoch einbinden? Und muss ich das, was ich dann einbinden muss (mindestens callback.c/callback.h) von Hand von C nach FB übersetzen? Oder gibt's da Hilfetools? Diese Frage wäre mir die wichtigste.

Vielen Dank schon mal. Ich recherchiere weiter und halte Euch auch auf dem Laufenden!

Grüsse!

Croco
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 09.10.2007, 19:47    Titel: Antworten mit Zitat

croco97 hat Folgendes geschrieben:
2. Die XML-Funktionen allein können nicht reichen, da ja die Callbacks definiert und deklariert werden müssen. Somit die Frage: Was ersetzt eigentlich die XML? main.c? main.h? support.c? support.h? Was muss ich dennoch einbinden? Und muss ich das, was ich dann einbinden muss (mindestens callback.c/callback.h) von Hand von C nach FB übersetzen? Oder gibt's da Hilfetools? Diese Frage wäre mir die wichtigste.

Mit GCC bzw. Dev-CPP (IDE) zu einer Lib/Object File compilieren, und dann einfach beim FB Prog "ObjectFile.o" (Muss im selben Ordner wie Prog sein) angeben.
Fertig. zwinkern
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
croco97



Anmeldungsdatum: 04.11.2005
Beiträge: 260

BeitragVerfasst am: 15.10.2007, 21:45    Titel: Antworten mit Zitat

OK, jetzt habe ich etwas Überblick, denke ich.

Wie gesagt, ich schreibe noch mal ausführlicher drüber, aber das kann noch eine Zeit dauern, daher hier mal ein Vorabhinweis.

Glade und Freebasic

Generell: Ursprünglich war Glade ein GTK-GUI-Builder für C, speziell für MSVC, Dev-Cpp und ein paar andere IDE's. Es generierte Make- und Src-Dateien, um eine ganze GTK-Applikation zu kompilieren (in C).

Zum Glück für uns FB'ler gibt es seit einiger Zeit einen Zusatz, libglade. Hier wird statt der ganzen C-Dateien eine XML-Datei erzeugt, die den GUI-Aufbau beschreibt. Anhand derer erzeugt libglade interpretierend den GUI-Aufbau. (Was den netten Effekt hat, dass man das GUI ändern kann ohne die Anwendung neu kompilieren zu müssen.)

Allerdings ist das schönste GUI trostlos, wenn man klickt und sich dann nichts tut. Und das war meine Ausgangsfrage: Was wird für den "Dialog" zwischen eigenem Programm und libglade benötigt?

Nun, Glade generiert (zumindest in der von mir benutzten Version 2.12) immer noch den C-Source-Code. Und davon benötigen wir die Dateien callback.h und callback.c, d.h. die Deklaration und Definition der Callback-Routinen. Und das war's auch schon. Alles andere (support.*. interface.* usw.) können wir vergessen.

Die Callback-Routinen sind nur leere Hülsen (klar, Glade weiss ja nicht, was auf einen Klick hin passieren soll) und so hat man die Header und Hülsen mit ein paar Suchen-Ersetzen-Aktionen schnell in FB umgewandelt.

Wichtig sind so ein paar Feinheiten:
1. Glade vergisst manchmal, im XML den Widgets eine <signal>-Eigenschaft mitzugeben. Z.B. bei normalen Buttons. Das kann man aber per Hand schnell nachtragen. Die <signal>-Eigenschaft definiert die Art der Aktion (z.B. "activated", "closed" oder "clicked") und den Namen des Callbacks, der damit umgehen soll.
2. Glade kann richtig schöne deutsche Umlaute im GUI anzeigen, aber beim Versuch, die Callbacks entsprechend zu benennen, taucht im XML an Stelle der Umlaute nur Kraut und Rüben auf. Muss man also von Hand korrigieren.
3. Leicht vergisst man, bei der Callback-Sub-Definition hinter die Argumentliste ein "export" zu hängen.

Alles in allem ist es aber bisher überraschend unkompliziert.

Viele Grüsse und schönen Abend!

Croco
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Bibliotheken Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz