diff options
Diffstat (limited to 'tools/glade/doc/ro/glade-faq/glade-faq.xml')
-rw-r--r-- | tools/glade/doc/ro/glade-faq/glade-faq.xml | 1007 |
1 files changed, 1007 insertions, 0 deletions
diff --git a/tools/glade/doc/ro/glade-faq/glade-faq.xml b/tools/glade/doc/ro/glade-faq/glade-faq.xml new file mode 100644 index 00000000..2fec44d7 --- /dev/null +++ b/tools/glade/doc/ro/glade-faq/glade-faq.xml @@ -0,0 +1,1007 @@ +<?xml version="1.0"?> +<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" +"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [ +<!ENTITY legal SYSTEM "legal.xml"> +<!ENTITY date "Mar. 30, 2002"> <!-- date the manual was last updated --> +<!ENTITY app "<application>Glade</application>"> +]> +<article id="index" lang="ro"> + + <articleinfo> + <title>Întrebări frecvente Glade</title> + <copyright> + <year>2000</year> + <holder>Damon Chaplin</holder> + </copyright> + + <publisher> + <publishername> + Proiectul de documentare GNOME + </publishername> + </publisher> + + &legal; + + <legalnotice id="feedback"> + <title>Comentarii</title> + <para> + Pentru a semnala o eroare în această aplicaţie sau + provitor la această documentaţie va rugăm să accesaţi + <ulink type="help" + url="ghelp:gnome-feedback">Pagina de conentarii GNOME</ulink>. + </para> + </legalnotice> + + <authorgroup> + <author> + <firstname>Damon</firstname> + <surname>Chaplin</surname> + <affiliation> + <orgname>Ximian, Inc.</orgname> + </affiliation> + </author> + </authorgroup> + + <revhistory> + + <revision> + <revnumber>1.1</revnumber> + <date>&date;</date> <!-- or use &date; --> + <revdescription> + <para role="author">Cristi Călin + <email>kman@csc.ro</email></para> + <para role="publisher">Proiectul de documentare GNOME</para> + </revdescription> + + </revision> + + </revhistory> + <releaseinfo> + Acestea sunt cele mai frecvente întrebări referitoare la Glade. + Ele au fost revizuite pe &date;. + </releaseinfo> + + </articleinfo> + + + <!-- ============= Document Body ============================= --> + + <sect1 id="qanda"> + <title>Întrebări frecvente Glade</title> + + <para> + Aceasta este lista cu cele mai frecvente întrebări referitoare la + <application>Glade</application> designer de interfeţe GNOME/Gtk+ 2.0. + </para> + + <!-- Cut this out to add a new question and answer. + <qandaentry> + <question> + <para> + </para> + </question> + <answer> + <para> + </para> + </answer> + </qandaentry> + --> + + <qandaset> + + <!-- ============= General Information About Glade =========== --> + + <qandadiv> + <title>Informaţii generale depre Glade</title> + + <qandaentry> + <question> + <para> + Ce documentatie există pentru Glade? + </para> + </question> + <answer> + <para> + În versiunea pentru GNOME sunt disponibile Quick-Start-ul, Manualul şi lista cu cele mai frecvente întrebări + prin accesarea meniului Ajutor. Din păcate, acestea nu sunt încă complete. + </para> + <para> + Exista, însa si alte documente pe Web: + </para> + <para> + Ghid în limba Spaniolă - + <ulink url="http://tigre.aragon.unam.mx/m3d/links_es.htm" + type="http">tigre.aragon.unam.mx/m3d/links_es.htm</ulink> + </para> + <para> + Ghid înlimba Italiană - + <ulink url="http://digilander.iol.it/robang/glade" + type="http">digilander.iol.it/robang/glade</ulink> + </para> + <para> + Nu ştiu dacă există vre-o carte referitoare la Glade, cu toate ca am vazut + un capitol care facea referinţă la Glade într-o carte publicată de Wrox press + pentru dezvoltatorii de Linux. + </para> + <para> + Legături vor fi prezente pe sit-ul de prezentare Glade la + <ulink url="http://glade.gnome.org" type="http">glade.gnome.org</ulink> + in timp ce devin disponibile. + </para> + </answer> + </qandaentry> + + <qandaentry> + <question> + <para> + Există exemple de cod? + </para> + </question> + <answer> + <para> + Glade include doar un sigur exemplu de editor de texte în directorul examples/editor. + Dacă sunteţi în posesia unui pachet binar (ex. un RPM sau DEB), este posibil ca + respectivele fişiere să fie instalate în /usr/doc/glade-X.X.X. Dacă nu puteţi să-le găsiţi, + atunci puteti descărca un pachet arhiva de la + <ulink url="http://glade.gnome.org" type="http">glade.gnome.org</ulink>. + </para> + <para> + Situl web contine legături spre câteva aplicatii, din care puteti extrage exemple de cod. + Vizitati secţiunea 'Applications' de pe + <ulink url="http://glade.gnome.org" type="http">glade.gnome.org</ulink>. + </para> + </answer> + </qandaentry> + + <qandaentry> + <question> + <para> + Sunt obligat(ă) să folosesc o anumită licenţă pentru codul C generat de Glade? + </para> + </question> + <answer> + <para> + Nu. Sunteţi liber(ă) să folosiţi orice fel de licenţă pentru codul C generat de Glade. + </para> + <para> + Cu toate acestea, în spiritul software-ului liber, noi încurajăm utilizarea + licenţelor GPL şi LGPL. + </para> + </answer> + </qandaentry> + + </qandadiv> + + <!-- ============= Creating A User Interface In Glade ======== --> + + <qandadiv> + <title>Crearea unei interfeţe cu utilizatorul folosind Glade</title> + + <qandaentry> + <question> + <para> + Când adaug un widget într-o fereastră, acesta umple toată fereastra + şi nu mai pot adăuga late widget-uri. + </para> + </question> + <answer> + <para> + Aceasta nu este o eroare in <application>Glade</application>! + în GTK+ trebuie să folositi containere pentru a va aşeza widget-urile. + Cele mai frecvent utilizate containere se afla în josul paginii + principale din paleta de unelte. Încercaţi mai întâi sa adăugati o + cutie verticală în <application>Glade</application>. Acum încercaţi + sa adăugaţi un tabel într-o anumită poziţie in cutia verticală. + Aţi prins ideea? + </para> + <para> + Dacă vreţi numai să poziţionaţi un widget la anumite coordonate, + incercaţi containerul Fix. Totuşi, această metodă nu este recomandată + întrucât ferestrele sau dialogurile la care lucraţi nu vor arăta bine + dacă vor fi redimensionate, iar dacă treduceţi textul din etichete sau + butoane în alte limbi, acestea s-ar putea să nu mai încapă. + </para> + </answer> + </qandaentry> + + <qandaentry> + <question> + <para> + Cum pot schimba culoarea unui widget (ex. sa fac o etichetă roşie)? + </para> + </question> + <answer> + <para> + Puteţi folosi fişiere GTK+ rc standard pentru a seta culorile sau + fonturile widget-urilor. + Dacă aveţi activată opţiunea 'Set Widget Names' in proiectul Glade, + atunci vă va fi mai uşor să accesaţi widget-urile după nume. + Verificaţi documentaţia GTK+ la <ulink + url="http://developer.gnome.org/doc/API/gtk/index.html" + type="http">developer.gnome.org/doc/API/gtk/index.html</ulink>. + </para> + <para> + Puteţi schimba stilul unui widget programatic, apelând funcţia + gtk_widget_modify_style(). Exemplu: + <programlisting> + GdkColor red = { 0, 65535, 0, 0 }; + GtkRcStyle *rc_style = gtk_rc_style_new (); + rc_style->fg[GTK_STATE_NORMAL] = red; + rc_style->color_flags[GTK_STATE_NORMAL] |= GTK_RC_FG; + gtk_widget_modify_style (widget, rc_style); + gtk_rc_style_unref (rc_style); + </programlisting> + </para> + </answer> + </qandaentry> + + <qandaentry> + <question> + <para> + Cum adaug un pixmap unui buton? + </para> + </question> + <answer> + <para> + Creaţi un buton şi selectaţi <guilabel>Remove Label</guilabel> + din meniul popup. Puteţi apoi adăuga orige widget vreţi acelui buton, + spre exemplu o cutie orizontală cu un pixmap şi o etichetă. + (<application>Glade</application> v-ar putea uşura această muncă + pe viitor.) + </para> + </answer> + </qandaentry> + + <qandaentry> + <question> + <para> + Cum pot adăuga mai multe widget-uri de acelaşi tip intr-un singur pas? + </para> + </question> + <answer> + <para> + Ţineţi apăsată tasta 'Control' în timp ce selectaţi widget-ul din + <interface>Paletă</interface>. Va rămâne apoi selectată, până ce veţi + selecta alt obiect din <interface>Selector</interface>. + </para> + </answer> + </qandaentry> + + <qandaentry> + <question> + <para> + Primesc următorul mesaj când încerc să folosesc un 'scrolled window': + Gtk-WARNING **: <errorname>gtk_scrolled_window_add(): cannot add + non scrollable widget use + gtk_scrolled_window_add_with_viewport() instead</errorname> + </para> + </question> + <answer> + <para> + Puteţi ignora fără grijă acest mesaj. El este afişat de GTK+ pentru + a aminti dezfoltatorilor să îşi revizuiască codul, deoarece comportamentul + 'scrolled windows' s-a schimbat intre versiunea GTK+ 1.0 şi GTK+ 1.2. + Codul generat de <application>Glade</application> nu este eronat. + În aplicaţia finală, acest mesaj ar trebui să dispară. + </para> + </answer> + </qandaentry> + + <qandaentry> + <question> + <para> + Ce formate grafice suportă Glade? + </para> + </question> + <answer> + <para> + GTK+ 2.0 include gdk-pixbuf care asigură suport pentru foarte multe + formate grefice, incluzând formatele PNG, TIFF, BMP, JPEG şi XPM. + </para> + <para> + Puteţi converi imaginile în diferite formate folosind editorul de imagini + GIMP sau utilitarul 'convert' din pachetul ImageMagick. + </para> + </answer> + </qandaentry> + + <qandaentry> + <question> + <para> + Cum pot adăuga un handler de semnal? + </para> + </question> + <answer> + <para> + Urmaţi aceşti paşi: + <itemizedlist> + <listitem> + <para> + Selectaţi widget-ul căruia vreti sa-i adăugaţi handler-ul. + </para> + </listitem> + <listitem> + <para> + Selectaţi 'Semnale' din pagina Editorului de Proprietăţi. + </para> + </listitem> + <listitem> + <para> + Daţi clic pe butonul '...' (3 puncte) din dreapta câmpului 'Semnal:'. + Ar trebui sa apară o fereastră cu lista semnalelor pe care le emite acest widget. + </para> + </listitem> + <listitem> + <para> + în fereasta popup, selectaţi semnalul pentru care vreţi sa creaţi handler-ul + şi apasati pe butonul 'OK'. + </para> + </listitem> + <listitem> + <para> + Glade denumeşte automat funcţia handler, dar sunteţi liber(ă) sa îi schimbaţi + numele din câmpul 'Handler:' de credeţi de cuviinţă. + </para> + </listitem> + <listitem> + <para> + Clic pe butonul 'Adaugă' pentru a-l adăuga în lista cu handler-uri de + semnale ale acestui widget. + </para> + </listitem> + </itemizedlist> + </para> + <para> + Când generaţi codul C, un o funcţie vidă de tip handler va fi încorporată + în fişierul callbacks.c. Puteţi să va adăugaţi codul acolo. + </para> + </answer> + </qandaentry> + + </qandadiv> + + + <!-- ============= Building The C Code Generated By Glade ====== --> + <qandadiv> + <title>Utilizarea codului C gerat de Glade</title> + + <qandaentry> + <question> + <para> + Cum pot genera cod cu ajutorul lui Glade? + </para> + </question> + <answer> + <para> + Aveţi nevoie de <application>automake</application> >= 1.4 şi de + <application>autoconf</application> >= 2.13 pentru a genera cod C + cu ajutorul lui Glade. Mai aveţi nevoie şi de <application>gettext</application> >= + 0.10.35 dacă vreţi să avtivaţi suportul de <application>gettext</application>. + Vedeţi secţiunea <citetitle>Cerinţe</citetitle> din fişierul + <filename>README.ro</filename> pentru link-uri la aceste fişiere. + </para> + <para> + Rulaţi <command>./autogen.sh</command> în directorul rădacină al + proiectului pentru a rula <application>automake</application>, + <application>autoconf</application> şi celelalte utilitare necesare + procesului de compilare, şi crearea fişierelor <filename>Makefile</filename>. + Argumentele date lui <filename>./autogen.sh</filename> vor fi trimise + către <filename>configure</filename>. + Exemplu: <command>./autogen.sh --prefix /usr/local/gnome</command>. + </para> + <para> + Apoi rulaţi comanda <command>make</command> pentru a compila aplicaţia. + </para> + <para> + Notă: pentru aplicaţiile GNOME rebuie să rulaţi mai întâi comanda + <command>make install</command> pentru a instala pixmap-urile corect. + Dacă nu veţi rula această comanda, aplicaţia dvs. va rula, dar nu veţi + putea vedea pixmap-urile. + </para> + </answer> + </qandaentry> + + <qandaentry> + <question> + <para> + Primesc următoarea eroare: + aclocal: configure.in: 10: <errorname>macro `AM_PATH_GTK' not + found in library</errorname> + </para> + </question> + <answer> + <para> + înseamană că fişierul <filename>gtk.m4</filename> nu a putut fi găsit. + (<filename>gtk.m4</filename> e un set de macro-uri m4 care se instalează + odată cu GTK+ şi este folosit la compilarea programelor care se bazează + pe GTK+.) <application>aclocal</application> (care face parte din pachetul + <application>automake</application>) caută aceste macrouri pentru a le adăuga + la fişierul <filename>aclocal.m4</filename> în directorul rădăcină al proiectului. + </para> + <para> + Pentru a afla unde este instalat GTK+, rulaţi <command>gtk-config + --prefix</command>. Fişierul <filename>gtk.m4</filename> ar trebui + să fie în subdirectorul <filename class="directory">share/aclocal</filename>. + Pentru a afla ce director foloseşte <application>aclocal</application>, rulaţi + <command>aclocal --print-ac-dir</command>. + </para> + <para> + Ar trebui să adăugaţi directorul în care se află fişierul GTK+ m4. + la variabila de mediu <varname>ACLOCAL_FLAGS</varname>, + Ex: daca fişierele GTK+ m4 se află în<filename + class="directory">/usr/local/share/aclocal</filename>, atunci + ar trebui să adăugaţi următoarele linii la fişierul<filename>$HOME/.profile</filename>: + <command>export ACLOCAL_FLAGS="-I + /usr/local/share/aclocal/"</command>. + </para> + </answer> + </qandaentry> + + <qandaentry> + <question> + <para> + Primesc urmatoarea eroare: + ** CRITICAL **: file glade_gnome.c: line 939 + (glade_gnome_write_menu_item_source): + assertion `source_buffer != NULL' failed. + </para> + </question> + <answer> + <para> + încercaţi să folosiţi meniuri de tip Gnome într-o aplicaţie strict GTK+. + Editaţi toate meniurile şi setaţi proprietatea "Stock" pe "None". + </para> + </answer> + </qandaentry> + + </qandadiv> + + <!-- ============= Using The C Code Generated By Glade ====== --> + <qandadiv> + <title>Folosirea codului C generat de Glade</title> + + <qandaentry> + <question> + <para> + Ce sunt toate fişierele create de Glade? + </para> + </question> + <answer> + <para> + Acestea sunt fişierele create implicit de către Glade, dar unele + nume s-ar putea să difere dacă aţi schimbat din opţiunile proiectului. + </para> + + <formalpara> + <title> + <filename>autogen.sh</filename> + </title> + <para> + Script care rulează <application>automake</application>, + <application>autoconf</application> şi alte programe necesare, + in oridinea corectă, uşurând procesul de compilare a aplicaţiei. + Puteţi să-i transimiteţi orice argumente vreţi să-i transmiteti + scriptului <application>configure</application>. După ce l-aţi rulat, + puteţi să apelaţi <command>make</command> pentru a compila aplicaţia. + </para> + </formalpara> + + <formalpara> + <title> + <filename>configure.in</filename> + </title> + <para> + Script standard, pe care <application>autoconf</application> + îl foloseşte la generarea scriptului configure. + </para> + </formalpara> + + <formalpara> + <title> + <filename>Makefile.am</filename> + </title> + <para> + Reguli standard make pe care automake le foloseşte la generarea + fişierului <filename>Makefile.in</filename>, pe care scriptul + configure la transformă în fişîere <filename>Makefile</filename>. + </para> + </formalpara> + + <formalpara> + <title> + <filename>acconfig.h</filename> + </title> + <para> + Conţine câteva macro-uri care sunt folosite pe parcursul scriptului + configure şi sunt adăugate în fişierul <filename>config.h</filename> header + (care ar trebui să fie primul inclus în orice sursă a programului). + Majoritatea acestor macro-uri sunt necesare suportului de gettext + (ENABLE_NLS, HAVE_CATGETS, HAVE_GETTEXT, HAVE_LC_MESSAGES, + HAVE_STPCPY), HAVE_LIBSM este necesar pentru Gnome (dar nu deranjeaza + aplicaţiile GTK+), şi câteva sunt adăugate de către Glade + <application>Glade</application>(PACKAGE_LOCALE_DIR, + PACKAGE_DATA_DIR, PACKAGE_SOURCE_DIR). + </para> + </formalpara> + + <formalpara> + <title> + <filename>stamp-h.in</filename> + </title> + <para> + Folosit de <application>automake</application> ca fişier referinţă, + pentru a regenera anumite fişiere. + </para> + </formalpara> + + <formalpara> + <title> + <filename>AUTHORS</filename>, <filename>ChangeLog</filename>, + <filename>NEWS</filename>, <filename>README</filename> + </title> + <para> + Toate aceste fişiere sunt goale iniţial, dar sunt create pentru + a respecta convenţiile GNU. + </para> + </formalpara> + + <formalpara> + <title> + <filename>src/Makefile.am</filename> + </title> + <para> + Fişier automake standard. + </para> + </formalpara> + + <formalpara> + <title> + <filename>src/main.c</filename> + </title> + <para> + Conţine funcţia <function>main</function>() care va crea câte + o fereastră/dialog. + </para> + </formalpara> + + <formalpara> + <title> + <filename>src/interface.h</filename> + </title> + <para> + Declaraţiile funcţiilor pe care trebuie să le apelaţi pentru + a crea ferestrele şi dialogurile construite cu + <application>Glade</application>. + </para> + </formalpara> + + <formalpara> + <title> + <filename>src/interface.c</filename> + </title> + <para> + Codul pentru crearea ferestrelor şi dialogurilor şi celorlalte widget-uri. + </para> + </formalpara> + + <formalpara> + <title> + <filename>src/callbacks.h</filename> + </title> + <para> + Declaraţiile handler-urilor de semnal si funcţiilor callback, pe + care le veţi scrie. + </para> + </formalpara> + + <formalpara> + <title> + <filename>src/callbacks.c</filename> + </title> + <para> + Funcţiile signal handler şi callback. + </para> + </formalpara> + + <formalpara> + <title> + <filename>src/support.h</filename> + </title> + <para> + Declaraţii de funcţii, printr care şi <function>lookup_widget</function>() + pe care o puteţi folosi să obtineţi pointeri la widget-uri. + </para> + </formalpara> + + <formalpara> + <title> + <filename>src/support.c</filename> + </title> + <para> + Funcţii suport. + </para> + </formalpara> + + <para> + Dacă aveţi ativat suportul de <application>gettext</application>, + va fi creat directorul <filename class="directory">po</filename>, + cu fişierele <filename>POTFILES.in</filename> şi o copie separată a + <filename>ChangeLog</filename>. <filename>POTFILES.in</filename> + conşine lista fişierelor sursă pentru fişierele de traducere, aici + ar trebui să vă adăugaţi toate fişierele de traducere. + </para> + + <para> + <note> + <title>Schimbarea opţiunilor Gnome şi Gettext</title> + <para> + Dacă schimbaţi opţiunile <guilabel>Gnome Support</guilabel> sau + <guilabel>Gettext Support</guilabel> după ce aţi compilat + proiectul, va trebui să înnoiţi unele fişiere precum + <filename>configure.in</filename> şi <filename>Makefile.am</filename>. + Cea mai bună soluţie ar fi să schimbaţi directorul proiectului + din dialogul <interface>Opţiuni Proiect</interface> şi să + recompilati proiectul. Va trebui să treceţi în partea cealaltă + tot codul srcris în afara Glade, precum handlere de semnal. + O alternativă ar fi să ştergeţi + <filename>autogen.sh</filename>, + <filename>configure.in</filename>, + <filename>Makefile.am</filename>, + <filename>src/Makefile.am</filename>, şi + <filename>src/main.c</filename> şi să folosiţi + <application>Glade</application> pentru a le crea din nou. + Dar, dacă aţi operat asupra acestor fişiere în afara Glade, + atunci va trebui să le modificaţi din nou. + (Poate, în viitor, <application>Glade</application> se va ocupa + singur de această problemă.) + </para> + </note> + </para> + </answer> + </qandaentry> + + <qandaentry> + <question> + <para> + Ce fişiere poate edita manual programatorul şi ce fişiere + sunt suprascrise? + </para> + </question> + <answer> + <para> + În mare parte, <application>Glade</application> nu va suprascrie + fişiere existente. (dacă este activată optiunea corespunzătoare.) + </para> + <para> + <application>Glade</application> suprascrie următoarele fişiere: + <filename>interface.h</filename>, + <filename>interface.c</filename>, + <filename>support.h</filename>, şi + <filename>support.c</filename>. + (Aceste fişiere s-ar putea să aiba nume diferite dacă le-aţi + schimbat în Optiunile Proiectului.) + </para> + <para> + Toate acese fişiere conţin un mesaj de avertizare: <quote>DO NOT + EDIT</quote>. + </para> + <para> + Dacă aţi modificat sau adăugat vre-un hadler de semnal, moduficările + sunt adăugate la sfârşitul fişierelor <filename>acllbacks.h</filename> + şi <filename>callbacks.c</filename>. Astfel tot codul pe care l-aţi adăugat + va rămâne nealterat! Dacă aţi redenumit o funcţie de tip handler, + atunci trebuie ca voi să ştergeţi versiunea veche şi să modificaţi + corpul funţiei. + </para> + </answer> + </qandaentry> + + <qandaentry> + <question> + <para> + Cum pot să-mi adaug fişierele mele sursă într-un proiect? + </para> + </question> + <answer> + <para> + Adăugaţi fişierele .c sau .h în fişierul + <filename>src/Makefile.am</filename>, în variabila + <varname><replaceable>project1</replaceable>_SOURCES</varname> + (unde <replaceable>project1</replaceable> reprezintă numele proiectului). + </para> + <para> + Dacă folosiţi <application>gettext</application>, ar trebui să adăugaţi + fişierele sursă şi în <filename>po/POTFILES.in</filename> pentru ca + textul din ele să poată fi tradus. + </para> + </answer> + </qandaentry> + + <qandaentry> + <question> + <para> + Cum pot adăuga o bibliotecă la proiect? + </para> + </question> + <answer> + <para> + Trebuie să adăugaţi un test pentru biblioteca respectivă în fişierul + configure.in, iar variabilele CPPFLAGS şi LIBS să reflecte utilizarea + bibliotecii respective. + (CPPFLAGS ar trebui să conţină orive parmetru -I ce trebuie dat preprocesorului + C, iar LIBS ar trebui să conţină parametri de tip -l şi -L ce trebuie date linkeditorului.) + </para> + <para> + autoconf oferă macro-uri precum AC_CHECK_HEADER and AC_CHECK_LIB care + pot fi folosite la verificrea antetelor şi bibliotecilor coresounzătoare. + </para> + <para> + Multe biblioteci GTK+ şi Gnome oferă un script precun gtk-config care va + afişa parametrii CPPFLAGS şi LIBS necesari. + </para> + <para> + Spre exemplu, libxml oferă un script xml-config care poate fi folosit ca + în exemplul de mai jos: + <programlisting> + dnl Get libxml flags & libs + AC_PATH_PROG(xml_config, xml-config) + if test "x$xml_config" = "x"; then + AC_MSG_ERROR([*** xml-config not found.]) + fi + + XML_CFLAGS=`$xml_config --cflags 2>/dev/null` + XML_LIBS=`$xml_config --libs 2>/dev/null` + CPPFLAGS="$CPPFLAGS $XML_CFLAGS" + LIBS="$LIBS $XML_LIBS" + </programlisting> + </para> + <para> + Aveţi grijă să puneţi testul înaintea apelului AC_OUTPUT. + </para> + </answer> + </qandaentry> + + <qandaentry> + <question> + <para> + Cum pot obţine un pointer la un widget în cadrul unui handler de semnal? + </para> + </question> + <answer> + <para> + Folosiţi funcţia <function>lookup_widget</function>(). + (Localizată în fişierul <filename>support.c</filename>.) + </para> + <para> + Funcţia ia ca parametri un pointer la orice widget din fereastră şi + numele widget-ului pe care vreţi să-l accesaţi. De obicei, primul + parametru ex primul argument al handler-ului. + Exemplu: + <programlisting> + void + on_button1_clicked (GtkButton *button, + gpointer user_data) + { + GtkWidget *entry1; + + entry1 = lookup_widget (GTK_WIDGET (button), "entry1"); + + ... + } + </programlisting> + </para> + <para> + Notă: acest cod nu funcţionează dacă utilizaţi libglade. Pentru libglade + folosiţi următoarea metodă: + <programlisting> + + void + on_button1_clicked (GtkButton *button, + gpointer user_data) + { + GladeXML* xml; + GtkWidget* entry1; + + xml = glade_get_widget_tree (GTK_WIDGET (button1)); + entry1 = glade_xml_get_widget (xml, "entry1"); + + ... + } + </programlisting> + </para> + </answer> + </qandaentry> + + <qandaentry> + <question> + <para> + Cum obţin un pointer la un widget dintr-o altă fereastră? + </para> + </question> + <answer> + <para> + Trebuie să păstraţi referinţe la toate ferestrele toplevel. Pentru aplicaţii + simple puteţi utiliza variabile globale pentru a păstra aceşti pointeri. + </para> + <para> + Pentru aplicaţii mai complicate puteţi folosi + <function>gtk_object_set_data</function>() şi alte funţii de acest gen + pentru a păstra pointeri la ferestre înglobate în alte ferestre. + Spre exemplu, dacă doriţi să creaţi un dialog care trebuie să acceseze + un widget din cadrul ferestrei principale puteţi utiliza următoarea + secvenţă de cod: + <programlisting> + dialog = create_dialog1 (); /* Apelaţi funcţia generată de Glade. */ + gtk_object_set_data (GTK_OBJECT (dialog), "main_window", main_window); + </programlisting> + Apoi când doriţi să accesaţi fereastra principală din cadrul dialogului + folosiţi următorul cod: + <programlisting> + main_window = gtk_object_get_data (GTK_OBJECT (dialog), "main_window"); + </programlisting> + </para> + <para> + Trebuie să fiţi atenţi ca pointerii să fie în totdeauna valizi. + Dacă zona de memorie referită de pointerul respectiv este dealocată, + atunci nu mai folosiţi pointerul respectiv, în caz contra aplicaţi + va genera erori. + </para> + </answer> + </qandaentry> + + <qandaentry> + <question> + <para> + Cum obţin valoarea unui GtkOptionMenu? + </para> + </question> + <answer> + <para> + Apelaţi funcţia <function>gtk_menu_get_active</function>() cu itemul + curent din cadrul GtkOptionMenu. Puteţi folosi <function>g_list_index</function>() + pentru a obţine indexul acestuia în cadrul meniului. + <programlisting> + void + on_button1_clicked (GtkButton *button, + gpointer user_data) + { + GtkWidget *option_menu, *menu, *active_item; + gint active_index; + + option_menu = lookup_widget (GTK_WIDGET (button), "optionmenu1"); + menu = GTK_OPTION_MENU (option_menu)->menu; + active_item = gtk_menu_get_active (GTK_MENU (menu)); + active_index = g_list_index (GTK_MENU_SHELL (menu)->children, active_item); + + g_print ("Active index: %i\n", active_index); + }</programlisting> + </para> + </answer> + </qandaentry> + + <qandaentry id="gtkoptionmenu"> + <question> + <para> + Cum fac un GtkOptionMenu să apeleze o funcţie când îşi schimbă valoarea? + </para> + </question> + <answer> + <para> + <application>Glade</application> încă nu face acest lucru în mod automat, + dar îl puteţi face manual. + </para> + <para> + Când creaţi fereastra, accesaţi meniul de opţiuni şi conectaţi-vă la + semnalul <quote>deactivate</quote> emis de meniu: + <programlisting> + window1 = create_window1 (); + option_menu = lookup_widget (window1, "optionmenu1"); + gtk_signal_connect (GTK_OBJECT (GTK_OPTION_MENU (option_menu)->menu), + "deactivate", GTK_SIGNAL_FUNC (on_option_selected), + NULL);</programlisting> + </para> + + <para> + Apoi adăungaţi un handler la <filename>callbacks.c</filename>. + Puteţi obţine indexul itemului prin metoda descrisă la răspunsul anterior. + <programlisting> + static void + on_option_selected (GtkMenuShell *menu_shell, + gpointer data) + { + GtkWidget *active_item; + gint item_index; + + active_item = gtk_menu_get_active (GTK_MENU (menu_shell)); + item_index = g_list_index (menu_shell->children, active_item); + + g_print ("In on_option_selected active: %i\n", item_index); + }</programlisting> + </para> + </answer> + </qandaentry> + + <qandaentry> + <question> + <para> + Cum mă pot conecta la semnale GtkAdjustment? + </para> + </question> + <answer> + <para> + <application>Glade</application> încă nu suportă acest lucru în prezent, + dar o puteţi face manual după cum e descris în răspunsul de la + întrebarea 3.6. + </para> + <para> + Cănd creaţi fereastra, obţineţi un pointer la widget-ul conţinând + ajustarea, şî conectaţi-vă la senmalele + <quote>changed</quote> sau <quote>value_changed</quote>: + <programlisting> + window1 = create_window1 (); + hscale = lookup_widget (window1, "hscale1"); + gtk_signal_connect (GTK_OBJECT (GTK_RANGE (hscale)->adjustment), + "changed", GTK_SIGNAL_FUNC (on_adjustment_changed), + NULL);</programlisting> + + </para> + </answer> + </qandaentry> + + <qandaentry> + <question> + <para> + Cum adaug rânduri la o GtkCList înainte de afişarea ferestrei? + </para> + </question> + <answer> + <para> + După ce aţi creat fereastra, folosind funcţia 'create' generată de Glade + folosiţi funcţia <function>lookup_widget</function>() pentru a obţine + un pointer la GtkCList-ul din widget şi adăugaţi rândurile necesare + ca în exemplu. + <programlisting> + GtkWidget *window, *clist; + gchar *row[2]; /* GtkCList-ul nostru are doar 2 coloane. */ + + window = create_window1 (); + clist = lookup_widget (window, "clist1"); + + row[0] = "Hello"; + row[1] = "World"; + gtk_clist_append (GTK_CLIST (clist), row); + + row[0] = "Second"; + row[1] = "Row"; + gtk_clist_append (GTK_CLIST (clist), row); + + gtk_widget_show (window1); + </programlisting> + </para> + </answer> + </qandaentry> + + </qandadiv> + + </qandaset> + + <!-- ============= Authors ================================ --> + + <para> + Acest FAQ a fost scris de către Damon Chaplin + (<email>damon@ximian.com</email>). Vă rugăm să trimiteţi orice + comentariu asupra acestui manual autorului. + Pentru mai multe informaţii despre <application>Glade</application> sau despre + listele de mail <application>Glade</application>, vizitaţi + <ulink url="http://glade.gnome.org" type="http">Pagina Glade</ulink>. + </para> + + <!-- For translations: uncomment this: --> + + <para> + Traducerea în limba română realizată de către Călin Cristian Andrei + (<email>kman@csc.ro</email>). Orice comentarii sunt binevenite. Vă rog sa-mi + trimiteti orice comentarii legate de această traducere. + </para> + </sect1> +</article> |