すごいコードを書く! UIとか
前述したように,このアプリはHTML UIをIronRubyが駆動する。そう,Silverlightを美麗なグラフィック抜きで使うことも可能なんだ。これを実現するために,Silverlightの描画画面を非表示にする必要がある。index.htmlを開いて,28行目のwidthとhightを"100%"から"1"にする。
<object data="data:application/x-silverlight," type="application/x-silverlight-2-b2" width="1" height="1">
width/hightを"1"にすると,コントロールを非表示にできるが,実際には存在しているのでロードはされる。賢いハックだろ?
我々のアプリにUIを与えよう。以下をindex.htmlの最後にある""タグの後ろに入力する。
<div class="search"> <form id="search" action="javascript:void(0)"> <input type="text" id="keyword" /> <input type="submit" id="submit_search" value="search" /> <img src="images/loading.gif" id="images_loading" /> </form> <div id="search_results"> <div id="search_images"></div> <div id="search_links"></div> </div> </div> <div class="clear"></div>
これは基本的なサーチ欄,サブミットボタン,見つかったイメージを表示する場所だ。スタイルをつけよう。stylesheets/screen.cssをオープンする。一番最初に「#silverlightControlHost」スタイルは,1×1のコントロールが100%の大きさになっては困るので不要だ。削除してくれ。
#silverlightControlHost { height: 100%; }
いま作った素のUIにスタイルをつけよう。
body { font-family: "Trebuchet MS" Verdana sans-serif; border: 0px; padding: 0px; margin: 0px; } div.clear { clear: both; } /* main search box */ .search { padding: 20px; margin: 20px; border: 10px solid gray; background-color: #ccc; } form#search #images_loading { width: 18px; height: 15px; display: none; } /* search results */ #search_results { display: none; } /* search images */ #search_images { padding-top: 10px; } #search_images .image, .image a, .image a img { float: left; padding: 0px; margin: 0px; border: 0px; } #search_images .image a:link, #search_images .image a:visited { background-color: white; padding: 5px; margin: 5px; background-color: white; border: 1px solid gray; } #search_images .image a:hover { background-color: #ff9966; } /* search links */ #search_links { clear: both; padding-top: 10px; } #search_links a { border: 1px solid #003344; margin: 2px; padding: 0px 5px; color: #003344; background-color: white; text-decoration: none; } #search_links a:hover, #search_links a.active { color: white; background-color: #003344; border: 1px solid white; } #search_links a.active { cursor: default; }
ブラウザ画面をリロードすれば,この画面が表示される。