lehce OT (trochu programatorske): Zpusob programovani v GTK+

Petr Novotny Petr.Novotny na antek.cz
Pátek Červenec 14 14:22:25 CEST 2000


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 14 Jul 00, at 13:43, Zdeněk Böhm wrote:

> I zacetl jsem se do GTK+ tutorial. Velmi me prekvapil napr. zpusob, jakym se
> nastavuje takova primitivni vec, jako je titulek okna. Nejak bych
> predpokladal, ze objekt "okno" ma property Caption (pardon, jsem trochu
> deformovany Delphi), takze se tato vec vyresi naplnenim patricne promenne. K
> memu udivu se toto deje pomoci specialni funkce, ktere poslu, ktery objekt,
> ktera vlastnost, hodnota....

Hm. Mate nekolik zakladnich moznosti:

1. Titulek okna je v nejake promenne gtk. To znamena, ze gtk musi
samo provadet cele vykreslovani okna, aby tam ten napis dalo.
2. Titulek okna pres nejake API musite sdelit tomu, kdo okno
vykresluje. K tomu musite zavolat nejakou funkci. Mate
podmoznosti:
a. Tu funkci zavolate sam.
b. "Nastavite" promennou a jazyk k tomu na udelany nejaky
trigger, ktery nastaveni promenne preklada na volani funkce. (Tohle
muzete udelat treba v C++, pokud vas to bavi.) Tak myslim Delphi
funguje, ale trochu hadam.
c. Zmenite promennou a nekdo za vasimi zady cas od casu
prochazi vase pametove struktury a rika oknum, ze by se jejich
vlastnosti mely zmenit. (Fuj!)

> Zkousel jsem psat nejaky primitivni programek a nepouzil jsem v nem malem
> zadnou jinou konstrukci, krome volani ruznych funkci.

Aha.
1. A jak byste chtel programovat?
2. Pokud netrvate na C, tak v C++ je operator= taky funkce (akorat
ze se zvlastne jmenuje), stejne jako treba operator+.
3. Ergo v C++ muzete ten program prepsat tak, ze udelate
houstinu objektu a trid a misto jedineho "volani" funkce pak bude
vas program jen scitat, odcitat, porovnavat a prirazovat.

> A ted konecne ten dotaz. Je tento postup opravdu jedinou moznosti, jak
> nastavovat vlastnosti objektu?
> Kdyz se zeptam obecnej, je filozofie programovani v GTK postavena na
> specialnich funkcich pro kazdou malickost (extra funkce na nastaveni kazde
> vlastnosti apod.), nebo existuje i nejaky alternativni postup?

Reknete mi: Myslite si, ze (treba) okno je ta pametova struktura,
kterou mate v ruce v gtk? Nebo ze okno je nejaka struktura nizsiho
(jak se sakra rekne cesky "underlying"?) systemu a vy k nemu
drzite jen nejake popisky?

V prvnim pripade je prirozenejsi prirazovat. V druhem pripade je
prirozenejsi volat API. V C++ (a dalsich jazycich, ktere umoznuji
pretizit operatory) lze prejit od jedne reprezentace k druhe pomoci
wrapper trid.

-----BEGIN PGP SIGNATURE-----
Version: PGP 6.0.2 -- QDPGP 2.60
Comment: http://community.wow.net/grt/qdpgp.html

iQA/AwUBOW738VMwP8g7qbw/EQKUyACfTFKgWg5+aukN/SlTyDsKy+dEsKwAn1Q1
s4Y4bIt98NsVDJv1f6E0m76a
=ugd9
-----END PGP SIGNATURE-----


Další informace o konferenci Linux