Mona

GUIビルダー

どこでみたのか忘れてしまったが、ひげぽんがRADツールがほしいと言っていたのを思い出したので早速作ってみました(まだ未完成ですが)。 操作はだいたい見たまんまです。ファイル→保存でBayGUI用のソースファイルが生成されます(まだできませんが)。単純…

0.3.0αリリース

無事α版がリリースされたようです。私製GUIにもたくさんの変更点があります。見た目に大きく影響するのは固定幅フォント表示のサポートでしょうか。斜字体、太字体と組み合わせると合計8種類の表示の仕方が可能です。色もつけられますのでブラウザを作るにも…

GUIシェル

BayGUIでGUIシェルを作っています。コンソールへの表示をGUIシェルへ曲げたいのですが、従来のMonaの手法はいろいろと問題があるので、こんなことしてみました。 #undef printf void printf(const char *format, ...) { char str[128]; va_list args; int re…

小さいことはいいことだ

というわけでMonaFormsとのサイズ比較。 37437byte: GUI.DL2 15571byte: BAYGUI.DL5 半分以下です。シンプル・コンパクトを特徴としているBayGUIらしい結果だと思います。 メモリーは一杯必要ですが、裏ウィンドウが描画できるのはいいですね(まぁそのため…

キター!!

guiserver_window* GetTargetWindow(int x, int y) { int size = captures.size(); if (size > 0) { return captures[size - 1]; }というコードをGUIサーバーに発見。 capturesリストの一番最後のオブジェクトには優先的にマウスイベントが送られるようだ。 …

ウィンドウの移動

Mona0.3.0α中のBayGUI関連物をすべて更新完了。 Mona0.2.1とインターフェース(クラス、関数の仕様)は まったく同一ですが、中身が全然違います。 で、そこで困ったことが発生。 ウィンドウ移動がうまくいかないんです。 ウィンドウ移動中に動かしているウ…

Mona0.2.1へバックポート

というわけで開発中のライブラリーをMona0.2.1にバックポートしてみた。Monaではカーネルとライブラリ、アプリがきちっと分けてあるのでそれぞれが別個にメンテ可能である。またDLLが実装されているのでアプリのサイズが小さくなるのもいい。 で、Mona0.2.1…

新BayGUI

長らくローカルで作業をしていたが、とりあえず現状のものをCVSにアップした。 APIは旧BayGUIとできる限り一緒だが、中身は95%違う。そのせいで公開が遅れてしまった。 新BayGUIにあわせるためにアプリも修正が必要な個所があるので、順次新BayGUIに移植す…

謎の絵(3)

作成中の謎のGUIライブラリー MTORZ移植完了 GBBALL移植完了 GCLOCK移植完了

なぞの絵(2)

たいぶ実装(APIのBayGUI化)が進んでいる様子 // Encoding UTF-8N... #include <baygui.h> /* OSASKパレット */ static int osapal_r[9] = {0, 128, 0, 128, 0, 128, 0, 128, 192}; static int osapal_g[9] = {0, 0, 128, 128, 0, 0, 128, 128, 192}; static int osap</baygui.h>…

BayGUI

実装をいろいろすすめてます。大方のメソッドはBayGUI化(笑)した。 まだ描画関係は全然。自作Stringクラスを使うように大幅改造中。

なぞの絵

難解なマクロを展開したもの #include "Event.h" class IEventHandler : public Object { public: virtual void Invoke(Pointer<Object>, Pointer<EventArgs>) = 0; }; template <class T> class EventHandler : public IEventHandler { private: Pointer<T> ptr; void(T::*func)(Pointer<Object>, P</object></t></class></eventargs></object>…

もうリファクタリング限界

もうリファクタリング限界・・。共有メモリを使いたくないなぁと思っていたけど、大変過ぎるよ・・。 諦めてTinoGUIサーバのソースをじっくり読んでみることにする。思っていたよりブラックボックスじゃなかった。いや、自分でGUIサーバを実装したからだな、…

今日もリファクタリング。

LinkedListのメソッド整理 Graphicsの中をVRAMを直接いじるように書き換え これで直VRAMでもVRAMバッファーでも大丈夫なはず Windowの描画ロジックがクリップ領域をはみ出していたので修正 上記によるWindowManagerの修正 やりたいことまであとちょっと。そ…

BayGUIの話(2)

なかなかうまくいかないなぁ・・。改善案。 GUIサーバーは描画を一切行わない ランチャーが壁紙を描画する GUIサーバーがランチャーを起動するまでは画面はまっさら これならデフォルトで起動してても問題なかろう 全画面アプリを作りたいときはWindowクラス…

BayGUIの話

ためしにサーバーに点描画メッセージを1万回投げてみた・・とてつもなく時間が掛かった。 MonaFormsはどうやっているか見てみた・・共有メモリをこれでもかというくらい使いまくっていた。 共有メモリを使いまくると移植性が極端に落ちる・・諸刃の剣だった…