Seite 1 von 1

[PB-Linux] GLADE als VD für PB (Version 0.3.0)

Verfasst: 14.05.2006 15:50
von walker
Hi,

dies ist ein noch nicht fertiges Project zur Umwandlung von Glade C-output nach PB-code.
Glade ist ein GUI-Entwicklungsprogramm unter anderem für GTK+ Anwendungen.

Bild

Um glade2pb nutzen zu können, muß Glade installiert sein.
Der Projekt-Pfad, der in Glade eingestellt ist/wird, muß in glade2pb in den Einstellungen ebenfalls eingetragen werden.
Glade starten und ein neues Projekt anlegen (z.B. ein Window mit ein paar buttons) Speichern und den Source-code erzeugen (der source muss als C-code gespeichert werden, aber wenn nichts an den voreingestellten Werten verändert wird, sollte es klappen)

Alle Projekte werden in der Combobox eingetragen, die beim Start des Programmes zu finden sind (mit aktualisieren kann dies ebenfalls manuell gemacht werden). Nach der Auswahl eines Projektes und einem Druck auf "Umwandeln" sind im src-verzeichnis des jeweiligen Projectes 3 Dateien mit der Endung pb zu findden; main.pb, interfaces.pb (Window-definitionen etc) und callbacks.pb (alle in glade bereits definierten Proceduren).

Wenn ein Requester nach der Auswahl eines Projetes auftaucht, der zur manuellen Eingabe des Projektes auffordert, ist die GTK version unterschiedlich zu meiner... und momentan nicht zu ändern, da in der aktuellen Linux-version noch einige Fehler enthalten sind.

Variablen werden noch nicht richtig behandelt und sind manuell im erzeugten pb-source zu ändern (z.B. toolbar verwendet 2 variablen, aber wenn der Debugger an ist, landet ihr an der passenden Stelle...)

Übrigens: die Glade2PB GUI ist mit Glade erstellt worden...

Wenn genügend interesse besteht, werde ich dieses Programm weiterentwickeln (zur Zeit fehlen noch einige Dinge.. aber ein einfaches Fenster mit ein paar Gadgets ist ohne weiteres realisierbar)

Hier noch der Downloadlink http://home.arcor.de/x-linux/pure/g2pb
Nach dem Download muß die Datei ggf. noch ausführbar gemacht werden...

Anregungen, Fragen und Kommentare etc. sind willkommen...

Verfasst: 15.05.2006 11:20
von ts-soft
>> Anregungen, Fragen und Kommentare etc. sind willkommen...
Vielleicht stelle ich mich nur duselig an, aber wenn ich mit Glade ein Fenster erstelle, anschließend einen Button platzieren möchte, ist dieser so groß wie das Fenster. Ich kann ihn weder verkleinern noch habe ich eine Einstellung dafür gefunden, vielleicht könntest Du mir einen Tipp geben, wie dieses Glade funktioniert :(

Verfasst: 15.05.2006 13:09
von walker
Hi,

kein Problem..

Unter GTK funktioniert die Plazierung mit "boxen" (container). Du musst (es gibt horizontale und vertikale) ein Box plazieren und darin dann die entsprechenden Gadgets... ist ein wenig gewöhnungsbedürftig...
Es gibt auch die Möglichkeit, feste Positionen zu verwenden. Dazu musst Du das icon "feste Positionen" in der toolbox anklicken und dann in das leere Fenster klicken. Die Hintergrundfarbe ändert sich ein wenig. Dann musst Du aber alle gadgets selbst resizen(!).

Die Verwendung der Boxes ist dem vorzuziehen... Beispiel:
1) Window erstellen
2) vertikale box anklicken und in das Fenster klicken. Die Frage nach der Anzahl der Einträge auf 3 belassen
3) Menüleiste anklicken und in das oberste der 3 Felder im fenster kicken.. ein Standardmenü wird erstellt und die Box automatisch angepasst
4)Textansicht auswählen und in das mittlere Feld klicken. Da dies ein Textfeld ist und hierr den Mittleren Bereich ganz einnehmen soll, müssen im Eigenschaftseditor auf dem Reiter "Packen" die Schalter "ausdehnend" und "füllend" auf JA gestellt werden
5) horizontales Buttonfeld auswählen und in die unterste fläche klicken... die Eigenschaften "ausdehnend" und "füllend" müssen hier wieder auf NEIN gestellt werden.

6) den 1. erstellten Button anklicken und im Eigenschaftseditor auf den 1. Reiter gehen. Dort unter Repertoire-Knopf gleich den 1. (Abbrechen) auswählen (geht natürlich auch jeder andere)
Für den 2. Button das selbe; nur z.B. den Beenden-Eintrag suchen

7)Damit das Fenster eine bestimmte Größe hat (und nicht von den verwendeten Widgets (Gadgets) bestimmt wird, im Widget-Baum das Window auswählen und im Eigenschaftseditor unter dem Reiter "Gemeinsam" die x und y-Ausdehnung angeben (z.b. 400 und 250) Das geht auch mit allen anderen Gadgets...

Das sollte nun so aussehen:
Bild

Um eine Ereignisprocedure hinzuzufügen, das entsprechende gadget anklicken und im Eigenschaftseditor den Reiter "Signale" aufrufen. Dort als Signal (z.b. for den beenden-button) "clicked" auswählen. Ein Procedure-name wird gleich vorgeschlagen (der geändert werden kann)
Nur noch Hinzufügen drücken und fertig (diese Proceduren sind später in der Datei callbacks.pb zu finden) Für das Menü sollten alle proceduren automatisch vorhanden sein...

Um ein GTK+ Programm zu beenden, muß die Funktion gtk_main_quit_() aufgerufen werden

In der main.pb noch den Namen der Startprocedure eingeben... Fertig

So, ich hoffe, das war einigermassen verständlich... wenn nicht, frage einfach...

Noch eines zum Menu: durch die noch vorhandenen Fehler in der Linux-Version musst Du 2 Zeilen in den generierten PB-Dateien auskommentieren. Zum einen die Zeile Global *accel_group.GtkAccelGroup in der Datei main.pb und zum anderen die Zeile gtk_window_add_accel_group_(*window1, *accel_group); in der Datei interfaces.pb.
Das Menü funktioniert trotzdem...

Verfasst: 16.05.2006 17:58
von vonTurnundTaxis
Es ist nicht zufälligerweise eine Version für den Qt-Designer (die dann auch noch Qt-Support in PureBasic einbringt) geplant?

Verfasst: 17.05.2006 09:43
von walker
Hi,

das wäre zu überlegen... allerdings auch wesentlich aufwendiger, da die GTK Unterstützung in PB schon eingebaut ist...

Ich schau's mir mal an...

Verfasst: 31.08.2006 11:23
von walker
Neue Version 0.3.0

added: 2 fehlende Konstanten
added: ein neuer Dialog, der vor dem Konvertieren die Angabe der zu erzeugenden Dateien ermöglicht

Bild

gtk_image_new_from_icon_name_() hinzugefügt zu den includefile missing_functions

Download: http://home.arcor.de/x-linux/pure/g2pb and the includefile
http://home.arcor.de/x-linux/pure/missing_functions.pb (right click; save as)

Verfasst: 31.08.2006 21:37
von Alves
Denglisch?

Verfasst: 01.09.2006 00:13
von walker
yes, because ich es erst im englischen Forum gepostet habe und dann mit Cut&Paste hier eingefügt... aber wohl das eine oder andere Wort nicht übersetzt habe... /:->

Die Programmoberfläche ist zur Zeit nur in Englisch... allerdings werden die GTK-Komponenten (buttons) automatisch in die jeweilige Sprache übersetzt sofern das entsprechende gnome-language-pack installiert ist...