Portál AbcLinuxu, 7. května 2025 12:29
Bylo by dobré, kdyby jsi své problémy popsal
Máš nějaký rozumný důvod proč rovnou nepoužít libglade? Je to knihovna, která Ti zajistí načtení XML souboru s popisem rozhraní *.glade za běhu programu. Přijde mi to šikovné, pěkně se tím oddělí definice vzhledu od funkce.
Zkus si znovu přečíst můj první příspěvek a trochu se nad ním zamyslet. Generovat zdrojáky s popisem rozhraní je prasečina. Tudíž místo toho definici rozhrání vygeneruješ pouze do XML souboru *.glade a tento soubor pak použiješ pomocí knihovny libglade v libovolném programovacím jazyce např. C, C++, Python, Perl, Ada, Ruby, Java.
a co vam brani pouzit indent ? nebo si ty funkce psat kompletne sam...
tutorial
konkretne k cemu? make, gcc, psani kodu v C?
kdyztak (muj nick)@jabber.cz
knihovny dlog a pxb jsou moje vlastni, docela bych se divil, kdybyte mel v systemu neco se stejnym nazvem
jinak jeste k te rychlosti - jedine zpomaleni je v nacitani XML souboru, jinak je to stejne rychle, jako kompilovane GUI (pro coz je pomerne vystizne jiz pouzite slovo prasarna, zvlaste u vetsich projektu)
nebo popis GUI ulozit do souboru *.glade a GTK cast poustet zpusobem (ukazkovy priklad z helpu, sam ho pouzivam)
rc = gtk_init_check(&argc, &argv); /* load the interface */ xml = glade_xml_new("popis_gui.glade", NULL, NULL); /* connect the signals in the interface */ glade_xml_signal_autoconnect(xml); /* start the event loop */ gtk_main();
s tim, ze si pak muzete napsat (pro vyvoj) svuj vlastni Makefile, ktery muze vypadat treba podobne:
LIBS=-lm -lz -ldlog -lpxb `pkg-config libglade-2.0 --libs` INCLUDE=`pkg-config --cflags-only-I libglade-2.0` DEBUG=-g3 -ggdb -Wall -DDEBUG=1 FLAGS=-funsigned-char -D_GNU_SOURCE CFLAGS=$(DEBUG) $(INCLUDE) $(FLAGS) CC=gcc $(DEBUG) DEPS=sig_proc.o ui_callback.o ui_events.o ui_test.o pxb-gtk.o zoom.o mouse_events.o program: prg_main.o $(DEPS) $(CC) $(LIBS) $(DEPS) prg_main.o -o $@ -export-dynamicmozna rychlejsi, nez lustit, kam presne pridavat sve soubory
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.