<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>_nec &#187; chrome</title>
	<atom:link href="http://nec.shell8.net/tag/chrome/feed/" rel="self" type="application/rss+xml" />
	<link>http://nec.shell8.net</link>
	<description>webfejlesztés, front-end programozás, javascript, css, xhtml, ajax, air</description>
	<lastBuildDate>Wed, 24 Jun 2009 10:36:48 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Google Chrome</title>
		<link>http://nec.shell8.net/2008/09/02/google-chrome/</link>
		<comments>http://nec.shell8.net/2008/09/02/google-chrome/#comments</comments>
		<pubDate>Tue, 02 Sep 2008 07:49:04 +0000</pubDate>
		<dc:creator>_nec</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[js]]></category>

		<guid isPermaLink="false">http://nec.shell8.net/?p=76</guid>
		<description><![CDATA[WebKit alapokra helyezett böngészőt dob ma piacra a Google. Beépített Gears (ami magától érthető tekintve, hogy a google saját terméke), CSS3 ami a webkitből ered, és egy új JavaScript motor a V8 (ez a link perpill 404 nálam, még dolgoznak a srácok&#8230;), ami állítólag 10x gyorsabb mint a firefox új reménye, a TraceMonkey. Eltekintve attól, [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;"><img class="alignleft size-full wp-image-78" style="float:left;" title="Google Chrome Logo" src="http://nec.shell8.net/wp-content/uploads/2008/09/41185_chrome_logo.png" alt="" width="170" height="138" />WebKit alapokra helyezett böngészőt dob ma piacra a Google. Beépített Gears (ami magától érthető tekintve, hogy a google saját terméke), CSS3 ami a webkitből ered, és egy új JavaScript motor a <a href="http://code.google.com/apis/v8/">V8</a> (ez a link perpill 404 nálam, még dolgoznak a srácok&#8230;), ami állítólag 10x gyorsabb mint a firefox új reménye, a <a href="http://ejohn.org/blog/tracemonkey/">TraceMonkey</a>. Eltekintve attól, hogy egy újabb böngésző piacra lépése a webfejlesztőknek általában plusz gondokat jelent, kíváncsian várjuk. Lehet, hogy a végén WebKit felülkerekedik a Gecko fölött? Böngészőfronton <a href="http://www.nytimes.com/2008/09/02/technology/02google.html?_r=1&amp;oref=slogin">csap össze</a> a Microsoft és a Google?</p>
<p><span id="more-76"></span></p>
<p>A Google persze, akárcsak az IE8 beta fejlesztői, rögtön gondol a fejlesztőkre, beépíett JS konzol (<strong>Page</strong> ikon <strong>Developer &gt; JavaScript Console</strong>) JS debugger (kb ugyanott) és Element Inspector is vár ránk majd a Chrome-ban.</p>
<p>Nagy erősségnek a tabonként szeparált processzeket tartják, azaz pontosan azt amit a Firefoxban tarthatunk gyengeségnek, ha egy tabon megjelenitett site nagy terhelést okoz, az összes tab az egész böngészőben lelassuk, behal. Itt ezt kiküszöbölik azzal, hogy minden tab külön processz szál, tehát elméletben ha az egyik lassuk a többi vígan működhet tovább.</p>
<p>Furcsaság a <a href="http://www.google.com/notebook/public/10082229128833698422/BDSIKQgoQ08HkgsIj?hl=en">faq</a> alapján:</p>
<p>új ablak(tab) nyitása emiatt a processz szeparáció miatt kettéválik,</p>
<ul>
<li>az eddig megszokott alapeset, mikor új ablakot nyit a site <em>ugyanabban a processzben maradunk</em>, illetve</li>
<li>lehetőség van az új ablakot/tabot <em>külön processzként</em> indítani, ezt javascriptel a nyitott ablak <em>opener </em>tulajdonságának nullázásával teszik meg a mutatott példában</li>
</ul>
<p>Egyéb extrák:</p>
<ul>
<li>privacy mód &#8211; amit sokan csak úgy hívnak, hogy pornómód, azaz az ilyen módon nyitott ablakok nem logolnak semmit</li>
<li>webalkalmazásokat megnyithatunk böngésző kezelőfelület nélkül, olyasféle módon mint ahogy <a href="http://blogoscoped.com/archive/2007-10-26-n61.html">Mozilla Prism</a></li>
<li>frissített feketelista siteokról egyenesen a google-től, adatlopás védelem érdekében</li>
</ul>
<p><strong>update 1</strong></p>
<p><a href="http://nec.shell8.net/wp-content/uploads/2008/09/googlechromeprocessman.jpg"><img class="alignleft size-full wp-image-87" style="float:left;" title="google chrome process manager" src="http://nec.shell8.net/wp-content/uploads/2008/09/googlechromeprocessman.jpg" alt="" width="320" height="240" /></a>tabok közötti processz menedzser, ami nagyonjó, nézzük melyik nyomorult site öli épp a rendszerünk! <br class="clear" /></p>
<p><strong>update 2</strong></p>
<p><a href="http://www.google.com/googlebooks/chrome/">google chrome képregény</a></p>
<p><strong>update 3</strong></p>
<p>a képregény 9. oldala alapján, a google miden verziót kiereszt tesztelésre akár siteok ezreire valamiféle chrome-botokkal, így elsőkézből kapnak információkat ha valami félremegy</p>
]]></content:encoded>
			<wfw:commentRss>http://nec.shell8.net/2008/09/02/google-chrome/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Adobe AIR #2 Ablakkezelés</title>
		<link>http://nec.shell8.net/2008/06/23/adobe-air-ablakkezeles/</link>
		<comments>http://nec.shell8.net/2008/06/23/adobe-air-ablakkezeles/#comments</comments>
		<pubDate>Mon, 23 Jun 2008 12:16:17 +0000</pubDate>
		<dc:creator>_nec</dc:creator>
				<category><![CDATA[JS]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[air]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[window]]></category>

		<guid isPermaLink="false">http://nec.shell8.net/?p=22</guid>
		<description><![CDATA[Az Adobe AIR-ről összeszedett sorozatom első része után a fejlesztő és debug eszközök már rendelkezésünkre állnak, lássunk neki a gyakorlatiasabb példáknak. Ebben a részben az ablakok kezelését fejtem ki, hogy zajlik az alkalmazásunk fő ablakának definiálása, illetve milyen ablakokat és hogyan lehet megnyitni még futás közben ha szükség van rá.


Az alkalmazásunk műküdéséhez minimum két állomány [...]]]></description>
			<content:encoded><![CDATA[<p>Az Adobe AIR-ről összeszedett sorozatom <a href="http://nec.shell8.net/2008/06/19/adobe-air-alapok/">első része</a> után a fejlesztő és debug eszközök már rendelkezésünkre állnak, lássunk neki a gyakorlatiasabb példáknak. Ebben a részben az ablakok kezelését fejtem ki, hogy zajlik az alkalmazásunk fő ablakának definiálása, illetve milyen ablakokat és hogyan lehet megnyitni még futás közben ha szükség van rá.<br />
<span id="more-22"></span></p>
<p><a href="http://nec.shell8.net/wp-content/uploads/2008/06/air_window.gif"><img class="alignnone size-full wp-image-31" title="AIR windows" src="http://nec.shell8.net/wp-content/uploads/2008/06/air_window.gif" alt="" width="530" height="184" /></a></p>
<p>Az alkalmazásunk műküdéséhez minimum két állomány elengedhetetlen, az egyik a html, ami meg fog jelenni, a másik pedig az alkalmazás leíró file-ja, az alap beállításokat, adatokat tartalmazó <em>application.xml</em>. Ezt lehet kézzel szerkeszteni, és van szerkesztőfelület ami szép GUI-t ad az adatok megadásához. Gyorsan nézzük át mi micsoda benne.</p>
<p>Az ID az a futtatókörnyezeten belüli azonosító, valami egyedi legyen, ha netán hivatkozni kell rá (alapesetekben nem).</p>
<p>A FILENAME lesz az elkészült AIR csomag neve.<br />
A NAME, DESCRIPTION mezők tartalma lesz látható például amikor a telepítő fut a felhasználóknál.<br />
A VERSION látszólag nem fontos, de az lesz ha azt szeretnénk később, hogy az alkalmazásunk tudja önmagát frissíteni, ha új verziót publikálunk belőle.</p>
<p>Az alapadatok után jön az induló ablak beállítása. Egy érték kötelező, a  CONTENT, ami az a HTML ami először betöltődik a programba, mint weben általában az <em>index.html</em>. A többit <span style="text-decoration: underline;">részben</span> lehet már javascriptből állítani futás közben.</p>
<p>Ezeket a paramétereket a <a href="http://help.adobe.com/en_US/AIR/1.1/jslr/flash/display/NativeWindow.html">NativeWindow</a> objektum paraméterei között is megtaláljuk, ezek határoznak meg egy alkalmazás ablakot, legyen az az első, vagy később, futás közben nyitott.</p>
<p>Az alábbiakat futás közben nem állíthatjuk, csak új ablak nyitásakor. Ezek az ablakok inicializáló tulajdonságai, ha új ablakot nyitsz, akkor a <a href="http://help.adobe.com/en_US/AIR/1.1/jslr/flash/display/NativeWindowInitOptions.html">NativeWindowInitOptions</a> objektumsegítségével tudod beállítani őket.</p>
<p><strong><em>systemChrome</em></strong><br />
Ez határozza meg legyen e ablak egyáltalán, tehát keret, fejléc, gombokkal satöbbi. Két értéke lehet, <em>standard</em> vagy<em> none</em>. Ha nincs chrome, kapunk pár korlátot, pl az ablak gombjaitól érkező események se léteznek, és menüt se csinálhatunk akárhogy az alkalmazásunkba, és minden, ablakkezelést érintő vezérlőt nekünk kell lefejleszteni, de ezekről később.</p>
<p><strong><em>transparent</em></strong><br />
Az ablak áttetszőségét állítja, egyszerűen <em>true</em> vagy <em>false</em> értéke lehet. Ha áttetszővé tesszük az ablakunk, lehetséges eltérni a téglalap formától az alkalmazás kinézetében, és vadulni a megjelenítéssel. Viszont ahol áttetsző az ablak, ott tökéletesen az, tehát nem kattintható, nem fogad egér eseményeket, az egér gyakorlatilag &#8220;átkattint&#8221; rajta, az alatta futó alkalmazásba.</p>
<p>Ha kikapcsoljuk a chrome-ot és átlátszóra állítjuk az ablakot, ha az nem tartalmaz semmit, akkor az alkalmazás futásáról, csak a taskbaron/system trayen az ikon fog árulkodni.</p>
<p><strong><em>visible</em></strong><br />
Mikor elindul az alkalmazásunk, látható legyen-e. Nagyon hasznos paraméter, állítható futás közben javascriptel. Olyankor hasznos ha a program induláskor még felépíti a saját chrome -ját, letölt adatokat AJAX segítségével, azokat elrendezi, majd ha minden a helyén, megjelenhet a felhasználónak a készen álló, működő alkalmazás.</p>
<p>A <strong><em>minimizable, maximizable, resizable</em></strong> kapcsolják ki/be a jól megszokott ablakméretezési lehetőségeket. Standard chrome esetén ezeket az ablak natív vezérlői adják, máskülönben nekünk kell gondoskodni róluk.</p>
<p>A <strong><em>width, height, x, y, minSize, maxSize</em></strong> definiálják az ablak kezdeti méreteit, pozícióját, és azt hogy mekkora határok között lehessen méretezni. Ezeket már <span style="text-decoration: underline;">lehet futás közben is módosítani</span> javascript segítségével.</p>
<p>Maradt egy változó, amit viszont már az application.xml -ben nem állíthatunk, csak a programból nyitott új ablakoknál. Ez az ablak típusa (NativeWindow.<strong><em>type</em></strong>) ami három fajta lehet:</p>
<ul>
<li>NORMAL &#8211; a hagyományos ablak, megjelenik a taskbaron vagy a dokkban</li>
<li>UTILITY &#8211; eszköztár ablak,kissebb mint a hagyományos, olyan mint ami pl a photoshopban az eszközöket tárolja,vannak vezérlői és nem jelenik meg a taskbaron, sem dokkban</li>
<li>LIGHTWEIGHT &#8211; nincs chrome, se vezérlői, nem jelenik meg a taskbaron, sem dokkban. Programüzenetekre és komboboxokra ajánlja a doksi, lehet vele próbálkozni</li>
</ul>
<p>A fentiek nagy részét egyszer kell csak beállítani az application.xml-ben s utána nem kell velük törődni, viszont ha új ablak kell, akkor jó ha megvan, hogy kell, nézzünk erre példát.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">	<span style="color: #003366; font-weight: bold;">var</span> _width <span style="color: #339933;">=</span> <span style="color: #CC0000;">300</span><span style="color: #339933;">;</span>
	<span style="color: #003366; font-weight: bold;">var</span> _height <span style="color: #339933;">=</span> <span style="color: #CC0000;">200</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #003366; font-weight: bold;">var</span> options	<span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> air.<span style="color: #660066;">NativeWindowInitOptions</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #003366; font-weight: bold;">var</span> content 	<span style="color: #339933;">=</span> air.<span style="color: #660066;">File</span>.<span style="color: #660066;">applicationDirectory</span>.<span style="color: #660066;">resolvePath</span><span style="color: #009900;">&#40;</span> <span style="color: #3366CC;">&quot;ablak.html&quot;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #003366; font-weight: bold;">var</span> bounds	<span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> air.<span style="color: #660066;">Rectangle</span><span style="color: #009900;">&#40;</span>
		window.<span style="color: #660066;">nativeWindow</span>.<span style="color: #660066;">x</span><span style="color: #339933;">,</span>
		window.<span style="color: #660066;">nativeWindow</span>.<span style="color: #660066;">y</span><span style="color: #339933;">,</span>
		_width<span style="color: #339933;">,</span>
		_height
	<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	options.<span style="color: #660066;">minimizable</span>	<span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span>
	options.<span style="color: #660066;">maximizable</span>	<span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span>
	options.<span style="color: #660066;">resizable</span>	<span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
	options.<span style="color: #660066;">systemChrome</span>	<span style="color: #339933;">=</span> air.<span style="color: #660066;">NativeWindowSystemChrome</span>.<span style="color: #660066;">STANDARD</span><span style="color: #339933;">;</span>
	options.<span style="color: #660066;">transparent</span>	<span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">;</span>
	options.<span style="color: #660066;">type</span>		<span style="color: #339933;">=</span> air.<span style="color: #660066;">NativeWindowType</span>.<span style="color: #660066;">NORMAL</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #003366; font-weight: bold;">var</span> _window <span style="color: #339933;">=</span> air.<span style="color: #660066;">HTMLLoader</span>.<span style="color: #660066;">createRootWindow</span><span style="color: #009900;">&#40;</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">,</span> options<span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">,</span> bounds<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	_window.<span style="color: #660066;">load</span><span style="color: #009900;">&#40;</span> <span style="color: #003366; font-weight: bold;">new</span> air.<span style="color: #660066;">URLRequest</span><span style="color: #009900;">&#40;</span>content.<span style="color: #660066;">url</span> <span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>No, láthatóan nyakaterkert módon zajlik a dolog, nemhiába az actionscript kitalálói csinálták, de azért a maga módján eléggé logikus.</p>
<p>Lépésről lépésre, először két változóba eltesszük magunknak a szélesség magasság értéket (1,2 sor).<br />
Példányosítunk egy <em>NativeWindowInitOptions</em> objektumot. (4.) Most jegyezzük meg, hogy nagyon korrektül az AIR objektumokat az <em>air</em> névtérbe tették.</p>
<p>Meghatározzuk az ablakba betöltendő html állományt (5.) Ez az <a href="http://help.adobe.com/en_US/AIR/1.1/jslr/flash/filesystem/File.html">air.File</a> objektummal történik, az <em>applicationDirectory</em> az a könyvtár definiált elérése ahol az alkalmazás is van, azon belül lehet alkönyvtárakra hivatkozni a megadott filenévvel (pl &#8220;ablak/index.html&#8221;).</p>
<p>A méret megadása (6-11) zavaros lehet, létrehozunk egy téglalapot a desktopon ami majd befoglalja az ablakot, itt lehet egy már nyitott ablak pozíciójához relatívan számoltatni a már említett window.<em>nativeWindow</em> x és y értékeivel valamint az új ablak szélesség és magasság paramétereivel.</p>
<p>Meghatározzuk az ablak átméretezési képességeit az <em>NativeWindowInitOptions</em> objektumban (12-14) és az ablak keretét, átlátszóságát és típusát (16-18).</p>
<p>Majd jöhet a végszó, az air.<a href="http://help.adobe.com/en_US/AIR/1.1/jslr/flash/html/HTMLLoader.html">HTMLLoader</a> objektum <em>createRootWindow</em> metódusának megadjuk a paramétereket (20), azaz<br />
visible (true),<br />
options (az options objektumunk),<br />
scrollBarsVisible (false, nem kérünk túllógó tartalom esetén scrollbar -t),<br />
bounds (a bounds objektum a méretekkel).</p>
<p>Kapunk egy objektumot, ami a megnyílt ablakot reprezentálja, ebbe betöltjük a html file-t egy <a href="http://help.adobe.com/en_US/AIR/1.1/jslr/flash/net/URLRequest.html">URLRequest</a> formájában, amihez az urlt a tartalmunk elérési útvonala adja (21).</p>
<p>Még egy apró részt említenék meg, ha saját chrome -ot, avagy ablakot szeretnél felépíteni, akkor a szükséges vezérlőket szintén a <em>window.nativeWindow</em> objektumban keresd:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>26
27
28
29
30
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">window.<span style="color: #660066;">nativeWindow</span>.<span style="color: #000066;">close</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// bezárás</span>
window.<span style="color: #660066;">nativeWindow</span>.<span style="color: #660066;">startMove</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// mozgatás kezdete, teszemazt mouseDown eseményre</span>
window.<span style="color: #660066;">nativeWindow</span>.<span style="color: #660066;">minimize</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// ablak minimalizálás</span>
window.<span style="color: #660066;">nativeWindow</span>.<span style="color: #660066;">maximize</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// ablak teljes méret</span>
window.<span style="color: #660066;">nativeWindow</span>.<span style="color: #660066;">startResize</span><span style="color: #009900;">&#40;</span>orientation<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// átméretezés kezdete, az orientation átméretezés iránya</span></pre></td></tr></table></div>

<p>Az átméretezés irányait a <a href="http://help.adobe.com/en_US/AIR/1.1/jslr/flash/display/NativeWindowResize.html">NativeWindowResize</a> objektum rejti, olyan formában mint pl &#8220;T&#8221;, &#8220;TL&#8221;, &#8220;BR&#8221; stb.</p>
<p>Nem annyira egyszerű elsőre, dehát ez a script átjárhatóság áldozatokkal jár, és meg lehet szokni. Következő alkalommal az AIR-ben előforduló eseményekről és eseménykezelésről lesz szó.</p>
<p><strong>Eddig az Adobe AIR-ről:</strong></p>
<ul>
<li><a href=" http://nec.shell8.net/2008/10/14/eval-adobe-air-ben/">Eval(); Adobe AIR-ben</a></li>
<li><a href="http://nec.shell8.net/2008/10/22/adobe-air-sqlite-javascript/">#6 SQLite JavaScriptből</a></li>
<li><a href="http://nec.shell8.net/2008/07/11/adobe-air-nativ-menukezeles/">#5 Natív menükezelés</a></li>
<li><a href="http://nec.shell8.net/2008/07/05/adobe-air-dragndrop-filefeltoltes/">#4 Drag’n&#8217;Drop és Filefeltöltés</a></li>
<li><a href="http://nec.shell8.net/2008/06/25/adobe-air-esemenyek">#3 Események</a></li>
<li><a href="http://nec.shell8.net/2008/06/19/adobe-air-alapok">#1 Az alapok</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://nec.shell8.net/2008/06/23/adobe-air-ablakkezeles/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
