2009-04-13 9 views
1

ゲームGUI用の簡単なレイアウトシステムを作成します。私は、絶対配置、Javaのレイアウトマネージャ、バネやストラットなど、GUIで使用されるさまざまなレイアウトシステムについて考えました。最終的には、CSSで見たレイアウト(パディング、マージン、浮動小数点数、ブロック、インラインなど)が好きだということが分かりました。このようなアプリケーションGUIを見たことがありますか? Webアプリケーションではなく、CSSレイアウトシステムが最初から書き込まれていなければならない「本当の」アプリケーションです。かなりシンプルで、まともな量のコードを使っていても、実際の表現力豊かなCSSライクなレイアウトシステムを得ることは可能でしょうか?CSSを使用したGUIプログラミング


アップデート:私は、外部スタイルシートからGUIを作成する必要はありません。私は、ランタイムインターフェイスに満足しています。次のようなものです:

Widget *container = [Container withWidth:100 height:100]; 
Widget *button1 = [Button withText:@"Foo"]; 
Widget *button2 = [Button withText:@"Bar"]; 
button1.floating = button2.floating = YES; 
[container addObjects: button1, button2, nil]; 

これは先に申し訳ありません。

答えて

3

これが実際には最良の方法であるかどうかはわかりませんが、それをやめないような問題はありません。 実際にスタイルシートからGUIを作成するには、ある種類のCSSパーサーが必要ですが、それは実行可能だと思います。すでにCSS Parserがたくさんありますが、GUIの特定のニーズに合わせるためにちょっとした援助をしなければなりません。

0

いいえ、私はアプリケーションがCSSの命名体系の周りに設計されるのを見たことはありません。

はい、このようなシステムを作成することは完全に可能であり、プログラマはプログラムでボタンやその他のフィールドを移動できます。一般的に、ウィジェットのために存在する既定の関数とパラメーターを使用して、それらのウィジェットを使用し、それらから派生した場合、あなたが望むものを達成することができます。

私はあなたがこれをやりたい理由は確信していますが、答えは可能です。

1

私は過去にこれをやっていました。実際には、CSS仕様をレターに実装せずに、必要なものだけを実装すればよいのです。私がやったことは、CSSパーサ、セレクタ文とカスケード規則を実装することでした。プロパティとレイアウトモデルは全く違っていました。なぜなら、単純にその時には必要なかったからです。私はそれも、完全なCSSエンジンを作成する作業の大半が行われていた場所であったと思います。

私が代わりにしたのは、概念的には使いやすく、アプリケーション自体が "セマンティックウェブ"全体の議論に公平であったため、HTMLテーブルの動作を模倣するものでした。

フレックスとバイソンの構文ルールが既に含まれているので、CSS仕様自体を除いて、これに関する多くの有益なリソースは見つかりませんでした。


編集:その場合、あなたはWebKitのとMozillaが参考に自分のレイアウトエンジンを実装しているかを見てみたいことがあります。

関連する問題