BeOS 及びパソコン関連の日記です。といっても毎日書いているわけではありませんが(^^;)。タイトルは「はくび(白眉)」と読んで下さい。BeOS が最も優れた OS になってくれたらいいなぁ、などと期待しながら……。
各日記の日付の部分は、その日記のアドレスへのリンクになっています。他の雑談や日記からこの日記へリンクを張る際の URL 取得用としてご利用下さい。
[ << 前の白 Be ] [ 翔星 Be ランド Home ] [ 次の白 Be >> ]
PR |
---|
2008/05/31 APE reader を Haiku に寄付
APE reader を Haiku に寄付することに。Monkey's Audio がデフォルトで再生できる OS ってたぶん無いので、Haiku が初のケースとなるのでは。Media OS としての価値が少しでも上がりますように。
誤算だったのは、エンジン(Lib Monkey's Audio)が共有ライブラリなのはダメだってこと。共有の方が他のアプリからも効率よく利用できていいなと思ったんだけどな。仕方ないので静的ライブラリに変換する。
2008/05/30 B Haiku で SMP
VMWare で SMP すると遅くなりますか……。以前 ZETA を SMP VMWare で動かしたときにやっぱりうちも遅くなって、それ以来 VMWare では SMP にしていないのですが。
murai さんとこは実機ですか?
2008/05/30 A Monkey's Audio Suite for Haiku Release 7 Revision 2 Developer Release
テスト公開。
APE reader をインストールすると、Media Player での WAVE の読み込みがやたら遅くなります。プラグイン系は動きません。
2008/05/29 B Haiku 改良状況まとめを更新
更新。
2008/05/29 A Haiku 修正状況まとめを更新
更新。改良からバグに 1 つ移行。
2008/05/28 B Reader 動作
libMonkeysAudio.so を読めなかったのは、libMonkeysAudio.so が必要なファイルをリンクしていなかったからだった orz
ひとまず Reader が動作。ただ、シークすると落ちるので、シークは無効に。それから、Haiku って 1 バイトずつの読み込みが遅いみたい。1 バイト×1 メガの読み込みにやたら時間がかかる。VMWare だから?
2008/05/28 A Reader から so を読めない!?
Detractor の代わりは Reader の模様。しかし、Reader から libMonkeysAudio.so を読み込もうとしても失敗する。何故!?
2008/05/27 D ニコニコ動画に Haiku
ニコニコ動画に初の Haiku 動画があがっている。QEmu で動く様子を実演。
BGM あった方が良かったかな。
2008/05/27 C Detractor じゃなくなってる……
ZETA の頃は Media Kit のデコーダクラスは Detractor だったのに、Haiku にはそれが無い。それっぽいのは、
headers/private/media
にある Decoder (DecoderPlugin.h) と Reader (ReaderPlugin.h)。使い分けはどうなっているんだ? 何となく、殻(コンテナ)を読むのが Reader で、デコードするのが Decoder かな?
src/add-ons/media/plugins
あたりを見て研究しよう。
2008/05/27 B 実機では音は出ず
OpenSound をもってしても、実機のサウンドは鳴らなかった。SoundBlaster Audigy4 とオンボード共に認識されているが、Audigy4 は raw output のどれを選んでもうんともすんとも言わない。HD Audio は raw output 0 と 5 でひどいノイズがでるだけ。
2008/05/27 A Monkey's Audio Suite for Haiku
VMWare で音が出たので、Monkey's Audio Suite for BeOS を Haiku でビルド中。
2008/05/26 B Gmail で携帯メールの絵文字
普段 Gmail に POP アクセスしているから気づかなかったけど、Web で Gmail 見ると、携帯から送られてきた絵文字がちゃんと表示されるんだね。Gmail すげー。
2008/05/26 A Haiku で音が出た
VirtualBox で(一応)音が出たのは、Senryu が OpenSound ドライバを入れているからのようだ。ならば VMWare ではどうか? と試してみたら音が鳴った。だいぶまともに。
UserBuildConfig に
AddOptionalHaikuImagePackages OpenSound ;を追加し、gcc2 でビルド。gcc4 は試していないが、最初に gcc4 の OpenSound はありませんみたいな警告が出てきたのでたぶんダメだと思う。
sound.present = "TRUE" sound.virtualDev = "es1371" sound.autoDetect = "TRUE" sound.fileName = "-1"Haiku の 初期状態では音が出かった。Media パネルを開くと、Audio Output として ES1371 が 2 つあるが、2 つめの ES1371 を選択し、raw output 0 を選択したら、音が出た。ただ、その後、1 つめの ES1371 の raw output 1(初期設定)でも音が出たので、数回起動すれば音が出るのかも。ちなみに、Restart Media Server すると KDL。
2008/05/25 F VirtualBox
VirtualBox での動作報告があったのでうちも試してみた。VirtualBox 1.6.0 Windows 版。
使用中の VMWare 用ディスクイメージを NHC でコンバートしたが、認識してくれず(と思ったが、ディスク選択の方法がまずかったのかも)、ひとまず Senryu の VirtualBox 版を使ってみた。
Senryu はあっさり動いたが、VMWare に比べると VirtualBox はだいぶ重い印象。
それから、サウンドは、「音は出た」が「まともに鳴らない」状態。VirtualBox 側のサウンド設定でホストドライバを Windows DirectSound にして、コントローラを ICH AC97 にし、Haiku のメディア設定でデバイスを Aiuch ICH にすると音は出る。しかし、MP3 を再生してみたらひどい雑音。どうやら 1/2 倍速で再生されているようだ。しかも左スピーカだけしか鳴らない。
2008/05/25 E 日本語設定スクリプト
便利そうなものがアップされていたのでダウンロード。
.sh が出てくるのかと思いきや、vmdk などたくさんのファイルが登場。ちょっとイメージ違う。説明を読む限りでは、仮想マシン上にメインのディスクの他にもう 1 つディスクを組み込み、そこにスクリプトが入っているような感じ? ちょっと環境をいじらないと試せないかな。
2008/05/25 D r25653 に更新 / 続 ▼
あれ!? 開発環境が無い!
2008/05/25 C r25653 に更新 ▲
メイン環境の Haiku を r25524 から r25653(GCC 4.1.2 ハイブリッド)に更新。r25524 に更新してから間を置かずに更新になっちゃったけど、GCC 2/4 ハイブリッドは捨てがたい。
~/config/settings/beos_mime を古い環境から新しい環境にコピーすると、新しい環境が起動しない。beos_mime 以外はコピーして大丈夫だけど、コピー直後は Haiku が起動しないことがあるようだ。それから、Tracker は不安定で、シャットダウン時には必ず落ちる他、デスクトップのアイコンの位置をいじったりファイルをコピーしたりしていると割とよくフリーズする。
2008/05/25 B キーの名前間違えてた……
「全角/半角キー」じゃなくて「半角/全角キー」だったのか……。B_ZENKAKU_HANKAKU を定義してしまったけど、正しくは B_HANKAKU_ZENKAKU だな……。
2008/05/25 A gcc2/gcc4 ハイブリッド化成功
UserBuildConfig に
HAIKU_ADD_ALTERNATIVE_GCC_LIBS = 1 ;を記述することによりうまくいった(UserBuildConfig.sample からコピー&ペーストしてスペースも再現しないと理解してくれない模様)。About に GCC4 と表記される。r25628。
2008/05/24 B ハイブリッドをビルド中 / 続 2 ▼
jam する際に「No optional package Perl available for gcc4」というメッセージが出てくるけど、これが関係している?
2008/05/24 A ハイブリッドをビルド中 / 続 ▲ ▼
あれ、gcc4 ベースにはなったけど、gcc2 のアプリが動かせない(lib/gcc2 フォルダが無い)や。ひとまずやり直ししてみるか……。ビルドにはかなり時間がかかる(1 時間くらい?)。
2008/05/23 ハイブリッドをビルド中 ▲
ネタがいっぱいある割に時間がなくて少しずつしか試せないけど……。
トップバッターは gcc2/gcc4 ハイブリッド。murai さんとこを見てビルド中。さてさてうまく動くかな?
murai さん、せっかくなのでこちらと統合してもらえると嬉しいです。
2008/05/21 各所に
おもしろそうなネタが……。
2008/05/18 C GenesTation 進捗状況
挙動がいろいろ変だけど、ひとまず動作するようになった。
2008/05/18 B BEntry::SetTo()
ZETA の頃は、途中のフォルダが存在していなくても SetTo() できたけど、Haiku はできない。Be Book を見ると、途中のフォルダは存在していなくてはならないとあるので、仕様が厳格に適用されているということなのだろう。
しかしおかげで GenesTation が動かない。
2008/05/18 A USB 機器が挿さっていると
起動しない症状が ZETA だけでなく Haiku でも発症。BIOS で USB Functions を Disable にすると起動するが、これだと Windows でも USB が使えない。
2008/05/17 D About Haiku の CPU 名
About Haiku が Core Duo のモデルナンバーを表示しない問題で、イメージ検索で About Haiku を探してみたが、どうやら、About Haiku では CPU 名のみの表示で、モデルナンバーは表示していないようだ。
マルチコアで動かしているスクリーンショット(Processor ではなく 2 Processors と表示)はなかなか無いね。
2008/05/17 C r25524 に更新
メイン環境の Haiku を r25124 から r25524 に更新。これで日本語周りがある程度快適になる。安定性も向上しているといいな。
~/config/settings を古い環境から新しい環境にコピーすると、新しい環境が起動しない。ちょっと試してみた感じでは、怪しいのは settings 以下の beos_mime、kernel、system、Deskbar_security_code 辺りか?
About Haiku、せっかくプロセッサ名を Core Duo と認識しているのに、モデルナンバー(T2500)を表示してくれないのは惜しい。単純に CPU 文字列(?)を持ってくると「Geneue Intel(長いスペース)T2500」みたいになるはずなので、何らかのアルゴリズムでちゃんと Core Duo を認識しているのに。
2008/05/17 B Haiku 修正状況まとめを更新
更新。
2008/05/17 A Anthy for Haiku 進捗状況
anthy-dic-tool は落ちたが、普通にテストプログラムを使ったら単語登録の基礎が動いた。これで単語登録を実装できるな。
ユーザー辞書は private_words_default という名前で作られ、UTF-8 のテキストファイル。中身は以下のような感じ。
ふが #T35*100 名無明 ほげ #T35*100 単語だよ
2008/05/15 B Lib SHINTA Private 2 Release 1 Revision 3
公開。Lib SHINTA 2 Release 3 Revision 3 に合わせて。
2008/05/15 A Lib SHINTA 2 Release 3 Revision 3
公開。SHINTA Locale Kit 新規導入など。
2008/05/13 Haiku R1 α 進捗状況
前回のチェックから 1 ヶ月半。進捗状況は、Tickets 63/97(65%) から 84/117(72%) へ。総 Ticket 数は増えたものの、Closed も増えてパーセンテージも進捗あり。
コンポーネント別に見ると、General は 2/2 で完了している。
総 Tickets 数がもう増えないと仮定すると、現在のペースで進めば R1 αのリリース時期は 8 月末になる計算。
2008/05/11 C いろいろレス
根詰めてやると翌日が辛いな。首筋やら何やらが痛い。今日はライトに。
無事に動いたようで何よりです。よそでスクリーンショット見たのは初めてかも。
追加しました。スクリプトはダメダメですね。
報告ありがとうございます。切り替え機構そのものに手を入れたので、IM に関わらず効きます。Firefox は理髪さんあたりが取り組んでいたような記憶が。戻ってきてくれるといいのですが。
2008/05/11 B Haiku 改良状況まとめを更新
更新。
全角/半角キーのみでインプットメソッド(IM)を起動できるようにのまとめをここに。
元々、全角/半角キーを押すとスペースが入力されるようになっていた。なので、Alt+Space が押されたら IM を起動するというプログラムで、Alt+全角/半角も検出されていた。
しかし、全角/半角キーがスペースのままでは、全角/半角キー単独で IM を起動させることは出来ない(スペースで IM が起動するようになってしまう)。そこでまず、全角/半角キーにユニークなキーコードを割り当てた。仮想キーコードは Windows に合わせて 0xF3 (B_ZENKAKU_HANKAKU) とした。Windows では 0xF3 と 0xF4 が交互に送られてくる模様だが、今のところそのフィーチャーは不要なので、0xF3 固定で。
その上で、input server (InputServer.cpp) を修正し、Alt+Sapce と全角/半角キーを別々に検出するようにして、全角/半角キー単独でも IM を起動できるようにした。Shift+全角/半角キーで逆順に起動。
2008/05/11 A Haiku 修正状況まとめを更新
更新。
2008/05/10 G さらにバグ報告
2221 と 2222。ゾロ目 Trac ナンバーゲット。
日本語関連は日本人が報告しないとね。
2008/05/10 F 新たにバグ報告
バグは 2219 と 2220、改良提案は 2218。
IM 切り替えで、SHIFT キーを押しながら切り替えると逆順に切り替わるようになっている模様。
毎度のことながら、Trac 重いなぁ……。
2008/05/10 E Haiku 修正状況まとめを更新
更新。
2008/05/10 D 気になる Haiku のバグ
Trac 見てると気になるのがちらほら。とりあえず、Milestone: R1 の normal レベルの一覧より。
2008/05/10 C 等幅フォント
フォント設定画面で、Konatsu Tohaba などの日本語等幅フォントがなぜ等幅として表示されないか。既にバグ報告として挙がっていた。
日本人は意識しないけど、日本語の等幅フォントは当然、全角と半角の 2 種類を備えていてる。コメント読んでて初めて気づいたけど、システムから見たら、等幅じゃないじゃん、って思うのも納得。まぁそれでは困るのでちょっとコメントしてみよう。
ちなみに、True Type の仕様に関する情報はこのへん。
2008/05/10 B 一文字無視現象 / 続 2 ▼
誰が B_INPUT_METHOD_STOPPED を送ってくるのかが分からない。src 以下で grep すると、KeyboardInputDevice.cpp と InputServer.cpp が B_INPUT_METHOD_STOPPED を使っていて、後は src/apps 以下などのあまり関係なさそうなファイルのみ。
InputServer.cpp は B_INPUT_METHOD_STOPPED を送っていそうな部分が無くて、KeyboardInputDevice.cpp は EnqueueInlineInputMethod(B_INPUT_METHOD_STOPPED) という非常にそれっぽい部分があるのだが、そこをコメントアウトしても現象は改善されず。
……と思ったら、なんだか BTextView から送っているみたいだ。
2008/05/10 A 一文字無視現象 / 続 ▲ ▼
なかなか根が深い。
たとえば、「あ」入力→変換(「亜」)→(確定せずに)「い」入力とした場合、「い」を入力した時点で、Anthy 側は「亜」を確定し、「い」を保持する。一方、システムからは、「亜」を確定した後に B_INPUT_METHOD_STOPPED が Anthy 宛に送られてくる。Anthy は「い」を保持している状態で B_INPUT_METHOD_STOPPED を受け取るので、「い」を破棄してしまう。なお、B_INPUT_METHOD_STOPPED はシステムから Anthy に送られてくるものであり、Anthy からシステム(を経てビュー)に送られる B_INPUT_METHOD_STOPPED とはまた違う(はず)。
本来、システム→Anthy への B_INPUT_METHOD_STOPPED は、未確定文字列がある状態でアクティブウィンドウが変更された場合に送られてくるもの……と理解している。元のアクティブウィンドウの未確定文字列が確定されるので、Anthy としてもバッファをクリアする必要があり、B_INPUT_METHOD_STOPPED を受け取った時点でバッファをクリアする。「亜」を確定した時点では、クリアが必要なバッファは無いので、B_INPUT_METHOD_STOPPED なんか送ってよこさないで欲しいのだが。
とりあえず、B_INPUT_METHOD_STOPPED を送ってくるやつを特定するところからスタートかな。
2008/05/09 B 一文字無視現象 ▲
ボトムラインウィンドウで一文字無視される現象が起きるのは、一文字送った後に B_INPUT_METHOD_STARTED を送信していたから。さて、どうやって直すか……。
2008/05/09 A Anthy for Haiku Ver 5.8 Release 3
公開。
細かい修正をいくつか。インストールスクリプトも修正。Anthy エンジンは 9100e になった。ちょっと重くなったかも。
昔のインストールスクリプトを既に実行している場合は、~/config/settings/SHINTA/ にある Anthy と LibAnthy の 2 つを削除してから改めてインストールスクリプトを実行してください。
2008/05/08 C Re: 2ch
ありがとうございます。一段落したら修正バージョンを配布します。
2008/05/08 B Re: 2ch
ありがとうございます。インストールスクリプトを修正しました。
それから、もう 1 つのスクリプト InstallLibAnthy.sh もおかしくて、こちらは mkdir すらしていませんでした。
mkdir -p $ConfigDir
を追加して動かしてください。すでにスクリプトを動作させていた場合、~/config/settings/SHINTA に LibAnthy という名のリンクができあがってしまっているはずなので、これを削除してから再度 InstallLibAnthy.sh を動かしてください。これで変換できるようになるはずです。お手数をおかけしてすみません。
2008/05/08 A svn revert で強制更新
ローカルの変更を全て破棄してリポジトリの内容に強制的に合わせる svn コマンドは revert。svn update -force とかあるのかと思ったら違った。haiku/trunk で
svn revert --recursive .
これで一気に、(たぶん最後に update したリビジョンに)リポジトリと一致する。ローカルの変更が全て失われるので注意。その後、svn update で最新版となる。
2008/05/07 C Haiku 改良状況まとめ / 2008/05
Ticket | 概要 | 改良状況 | 提案者 |
---|---|---|---|
2278 | APE ファイルタイプの登録 | 未解決。パッチ(というか新規ファイル)を作成したが、Jamfile への組み込み方が分からず未テスト。 | SHINTA (#4) |
2259 | cp コマンドが BFS 属性もコピーするようにする | 解決。バグ #19 に移行。 | SHINTA (#3) |
2218 | 全角/半角キーのみで IM を起動できるようにする | 解決。キーマップと input server を変更。 | SHINTA (#2) |
2198 | BTabView::SetSelectionMessage() の新設 | 保留。素直に(綺麗に)実装しようとすると BInvoker からも派生させることになるが、すると FBC 問題により互換性が失われるので、Haiku R1 以降の互換性を捨てるバージョンまで保留。 | SHINTA (#1) |
2008/05/07 B Haiku 修正状況まとめを更新
更新。めどの立たない問題は 1 つ。
2008/05/07 A Anthy ユーザー辞書
Anthy に単語登録機能をつけられればいいなと、ちょっと見てみたのだが……。
標準添付のコマンドラインツール anthy-dic-tool は --load(単語登録オプション)付きで実行すると落ちる。どうやらグローバル変数の anthy_private_text_dic が初期化されていない風味。少なくとも file_dic.c の anthy_init_file_dic() で DIC_FILE の設定を読むのに失敗しているので、とりあえずそこから乗り越えないと行けないのだが……。anthy-conf 作って DIC_FILE と書いてみたが設定値を読んでくれない。
2008/05/06 C Elven Edit ポルトガル語ロケールファイル
ドイツ語に続きポルトガル語もラインナップ。DaaT さん、ありがとう。
2008/05/06 B Anthy for Haiku Ver 5.8 Release 2 β
テスト公開。
起動時に落ちる問題は回避。
ただし、もしも他の問題等により、起動時に input server を巻き込んで落ちる状況が発生した場合、Haiku が起動不能になります。現状、セーフモードは効かないので、そうなると Haiku 自身での回避は不能と思われます。ご注意ください。
バグ、挙動不審な点等ありましたら、細かなことでも結構ですので、メール、JPBE.net 掲示板、2ch 等でお知らせください。Anthy for Haiku のバージョンと、Haiku のリビジョンをご記入願います。
2008/05/06 A 変換中の文字列の描画が汚いのを調査 / 続 4 ▼
ようやくできあがり。パッチを投稿。結局丸一日つぶれた……。
描画の仕組みのまとめ。典型的に、右のような文節を考える。背景色付きのが日本語変換中の文節で、それ以外は確定文字列(確定文字列も BTextView::_DrawLine() で処理する)。
A がテキストビューの先頭から 100 バイト目だとすると、_DrawLine() において、offset = 100, fInline->Offset() = 103, fInline->SelectionOffset() = 9, fInline->SelectionLength() = 6, fInline->Length() = 21, length = 27 となるはず。
描画においては、offset を優先して考える。offset から length バイトが描画の必要な範囲。逆に、fInline の値は必ずしも描画の範囲内とは限らない。たとえば、「日」を入力した時点でテキストビューの右端に来て、「は」から次の行になったとする。この場合 _DrawLine() が 2 度呼ばれる(たぶん)が、一度目は offset = 100、二度目は offset = 109 となる。一方、fInline の値は二度とも前記の値で変わらないので、二度目においては、fInline->Offset() が offset よりも小さくなる(範囲をはみ出している)。
さらにややこしいのが、前後にタブがある場合で、一度の while ループでは 1 つのタブ区切りのみ描画する。タブ区切りの区画内に変換中の文節が含まれるかどうかで、処理を分ける必要がある。
まとめると、タブ区切りの中に変換中の文節が含まれなければ、一気に全部(次のタブ区切りまで)の文字列を描画すれば良い。タブ区切りの中に変換中の文節が含まれるのであれば、白、水色、赤、水色、白の順に文字列を描画する。ただし、offset が必ずしも白の位置から始まるとは限らないので、各描画ルーチンでは、offset〜tabChars が範囲内に収まっているかチェックし、収まっている場合のみ描画することが必要である。
2008/05/05 E 変換中の文字列の描画が汚いのを調査 / 続 3 ▲ ▼
9 時間目にしてようやく考え方が分かった気がする。これでできるかな?
2008/05/05 D 変換中の文字列の描画が汚いのを調査 / 続 2 ▲ ▼
なんかもう疲れた。描画自体は綺麗になったが、行を折り返す場合にうまく描画されない。折り返しの際は DrawLine() が 2 度呼ばれるというのはいいんだけど、offset やら fInline->Offset() やらが妙な値で来る気がする。他人のプログラムはこのあたりの思想がよくわからん。7 時間格闘して成果無し。
2008/05/05 C 変換中の文字列の描画が汚いのを調査 / 続 ▲ ▼
メモ。右の図は、IM で「てんき」を入力中の様子。BTextView::_DrawLine() の「iterate through each style on this line」の while ループで処理する文字列の固まりを見てみる。
「てんき」の前の「ab」は描画不要なので「て」以降、文字飾りの種類ごとに描画するので「f」まで。つまり、「てんきcd[TAB]ef」と「pqrs」の 2 回ループが回る。ちなみに、ビューの右端で日本語入力して「て」と「んき」で行が変わった場合は、「て」と「んき」でばらばらに処理される(おそらく、DrawLine() そのものが別々に呼ばれている)。
そして、while ループの中では、TAB ごとに処理を区切っているようなので、「てんきcd」までが 1 回の DrawString() で描画される。
きっと、「てんきcd」を一気に DrawString() するのではなく、日本語処理中なら文節ごとに描画するようにすればいいのだろう。変換中の日本語に TAB が入ることを想定すると while ループ内の TAB 区切り処理がかなり複雑になるが、現実的にはきっとそれは無いので、とりあえずそれは無視の方向で。
2008/05/05 B 変換中の文字列の描画が汚いのを調査 ▲
バグ 2209 の調査。思っていたより簡単ではない。TextView.cpp の DrawLine() でビューカラーとローカラーを指定すればいいところまでは分かったんだけど、現在のコードは、赤色部分も水色部分も一挙に背景を描画して、文字も一挙に描画するようになっている。なので、水色部分のアンチエイリアスも赤色になってしまう。
2008/05/05 A Anthy 進捗状況
いつ KDL がくるか、ドキドキしながら……心臓に悪い。
とりあえず動作するようになった。候補ウィンドウの拡大ボタンがはみ出てる。インライン入力可能なのにボトムラインウィンドウが出ることがあるのは Canna も同じなので、Haiku のバグだろう。変換中の文字列の描画が汚いのも同じく。
Haiku は F12 キーを押すと KDL に行く仕様になっている模様。F12 は Anthy で入力文字種切り替えに使っているのですが……。exit で KDL からは出られるけど。
gcc は、map の初期化をするコードがあると、リリースコンパイルにやたら時間がかかる&メモリを食う。Haiku の About 見てたら 600MB くらい消費してた。
右は環境設定ウィンドウ。BBox のラベルが変なのは、最近の libbe.so では修正されている。動作はしていて、設定内容はちゃんと反映される。
2008/05/04 E Anthy 前途多難
まずは Lib Anthy からビルドと、configure したらエラー。configure i586-pc-beos とやったら警告はでるがビルドできたので、とりあえずこれで……。いいのかな?
Anthy 本体(input server アドオン)をビルドし、input server を再起動したら KDL へ。はぅ。しかも、Haiku 起動時のセーフモードオプションでユーザーアドオンを無効にしても Anthy がロードされるんですけど(^^; ZETA でアドオンを消してから Haiku を起動という、二度手間をデバッグの度に経ることになるのか orz
2008/05/04 D Elven Edit ドイツ語ロケールファイル
早速送ってもらえたので BeBits にて公開。Andreas さん、ありがとう。
2008/05/04 C Anthy for Haiku
これから開発スタート。
2008/05/04 B Elven Edit Ver 4.5
公開。Haiku に対応。
微妙に動作が不安定だが、原因は不明。それから、検索ウィンドウで置換タブを選択するとタブが右に寄ってしまう。こちらは Haiku のタブスクロール機能と関係があるみたいだけど、詳しくは不明。
2008/05/04 A 早まった
BMimeType::GetIcon() が Haiku ベクターアイコンを取得できないのではとバグ報告したものの、実は勘違いで、ちゃんと動作していた。Haiku では BeIDE でのビルド時にアイコン(ベクターアイコン)が自動結合されないので、アイコン無しの実行ファイルができあがっていて、その実行ファイルに対して GetIcon() しようとしていたので、アイコンが取得できなかったという……。stippi さん、ごめん。
2008/05/03 B BTabView::SetSelectionMessage() / 続 ▼
public BInvoker にすると sizeof(BTabView) は思いっきり増えていた。256→308 に。sizeof() は単に TabView.h を読んで計算しているだけのようだ。libbe.so をビルドしなくても値が変わる。それから、仮想関数を増やしても sizeof() は変わらないようだ。もちろん FBC 的にはダメだけど。
BListView は SetSelectionMessage() 関係でも BInvoker を使っていた。
というわけで、素直に BTabView::SetSelectionMessage() を実装しようとすると互換性が無くなってしまうので、互換性を捨てていいバージョンの Haiku になるまでおあずけかな。
2008/05/03 A BTabView::SetSelectionMessage() ▲
BTabView に BListView のような SetSelectionMessage() が欲しい。タブを選択するとメッセージが飛んでくるように。
何に使うのかというと、たとえば、Elven Edit の検索・置換ウィンドウ(画像:検索タブ、置換タブ)は検索と置換で実は 1 つのビューを使い回している。タブが切り替えられる度にラベルの変更などを行っている。「タブの切り替え」をハンドルするために BTabView::SetSelectionMessage() が必要。
現在は Lib SHINTA 2 にも入れてある TScrollTabView という自前クラスでタブ切り替えをハンドルしているが、SetSelectionMessage() 程度の機能はデフォルトで備わっていてもいいんじゃないかと思う。ちなみに、Haiku の BTabView には一応タブのスクロール機能がついていて、ビュー幅よりもタブの数が多くても(不便ながら)すべてのタブにアクセスできる。余談ながら、このあたりの動作を確認するのにも GuiBerry は便利。いちいちコード書かずとも、ビューを貼り付けてテストランすればあっというまに動きを見ることが出来る。
さて、BTabView にどのように SetSelectionMessage() を実装するかだが、厄介なのは壊れやすいベースクラス(Fragile Base Class: FBC)問題。これを十分に理解できていない。VTable を追加すると壊れるとのことだが、では、基底クラスを 1 つから 2 つにするのはどうなのか? 具体的には、BTabView は現在 public BView しているが、これを public BView, public BInvoker にするのはどうなのか? sizeof(BTabView) は 256 のまま変化しないので大丈夫なような気もするが、確証はない。
FBC が不安なのと、BListView が SetSelectionMessage() に関しては BInvoker 使っていない(SetInvocationMessage() の方に BInvoker を使っている)のとで、BInvoker を使わずに実装する方向で。
Ticket | 概要 | 改良状況 | 提案者 |
---|---|---|---|
2198 | BTabView::SetSelectionMessage() の新設 | 未解決。実装中。 | SHINTA |
2008/05/02 Elven Edit 開発中
Be な Life、Text Bank に続く Haiku アプリ第 3 弾は Elven Edit。微妙に動作が不安定。落ちたときのデバッガで bt すると、BScrollBar::SetTarget() で落ちていることも。原因が Elven Edit にあるのか Haiku にあるのかよく分からないのでとりあえず放置。
2008/05/01 B Haiku 修正状況まとめ / 2008/05 ▼
Ticket | 概要 | 修正状況 | 報告者 |
---|---|---|---|
2259 | cp コマンドが BFS 属性をコピーしない | 未解決。cp を使いながら様子を見ている段階。アイコンはコピーする他、StyledEdit の属性もコピーしてくれる場合がある。BeIDE の設定ファイルの属性は 1 度もコピーしてもらったことがない。改良 #3 から移行。 | SHINTA (#19) |
2222 | 日本語キーマップに全角/半角キーが定義されていない | 解決。Windows と同じ仮想キーコードを割り当てた。 | SHINTA (#18) |
2221 | IM パレットウィンドウの形状が R5 と異なる | 未解決。修正の是非について議論中。 | SHINTA (#17) |
2220 | 不必要な B_INPUT_METHOD_STOPPED が IM に送られてくる | 解決。BTextView は、アクティブな文字列がある場合のみ B_INPUT_METHOD_STOPPED を送信するようにした。 | SHINTA (#16) |
2219 | フォーカスビューが変わったときにボトムラインウィンドウの内容が確定されない | 未解決。保留。未調査。 | SHINTA (#15) |
2209 | 漢字変換中の文字列の描画が汚い | 解決。漢字変換中かどうかに関わらず一気に文字列を描画していたため、アンチエイリアスの背景が白になっていた。漢字変換中の部分は背景色を変えて描画するようにした。 →が、描画方法を B_OP_OVER にするという簡単な解決策があった。 | SHINTA (#14) |
2208 | "Disable user add-ons" セーフモードオプションが有効でも input server アドオンが読み込まれる | 解決。korli さんの修正コードから推測すると、input server はアドオンを読み込んでいなかったのだが、Deskbar がデスクトレイに入れるために読み込んでいたらしい。Deskbar のロード部分をバイパスして解決。 | SHINTA (#13) |
2200 | BMimeType::GetIcon() が Haiku ベクターアイコンを取得できない | 解決。俺の勘違いというトホホなオチ。 | SHINTA (#12) |
2181 | BPopUpMenu がキーボード操作を受け付けない | 未解決。お手上げ。キーボード操作時に一瞬ちゃんと動くのだが、直後に _SelectItem(NULL) が呼ばれ、操作がキャンセルされてしまうような雰囲気。ちょっと修正を試みたが、フリーズしてしまうコードができあがってしまった。 | SHINTA (#11) |
2163 | BTextControl のテキストがアーカイブ/復元されない | 解決。r25179 で BTextControl の子ビューがきちんと復元されるようになり、それに伴って子ビューのテキストも復元されるようになった(のだと思う)。 | SHINTA (#10) |
2145 | BMenuField がアーカイブから復元できない(落ちる) | 解決。ZETA と Haiku で子ビューのクラス名が違うのが原因だったが、子ビューを復元できなかった場合は生成されるようになった。 | SHINTA (#9) |
2122 | BMessage から復元した BColorControl がカラーバーを描画しない | 解決。復元時も _LayoutView() が呼ばれるようにした。 | SHINTA (#8) |
2121 | BColorControl がアーカイブから復元できない(落ちる) | 解決。子ビュー取得後に SetValue() するようにした。 | SHINTA (#7) |
2102 | BMessage から復元した BBox がラベルを描画しない | 解決。BFont::SetShear() に -1 を渡すとこの現象になるが、app server 辺りの問題らしい。app server の fLink とか訳分からない。 →korli さんが直してくれた。復元時に SetShear() の調整をしている。プログラム的に BFont::SetShear() を -1 で呼んだらこの現象がまた起きる気がするけど、まぁいいか。 | SHINTA (#6) |
2099 | BBox のスタイルがアーカイブ/復元されない | 解決。コンストラクタにてデフォルト値を設定。 | SHINTA (#5) |
2097 | BTextControl のラベルがアーカイブ/復元されない | 解決。親クラスの BControl の復元に凡ミスがあったのを修正。 | SHINTA (#4) |
2094 | アーカイブしたビューカラーが ZETA 非互換 | 解決。アーカイブ/復元の際の rgb_color と int32 の変換時に、ビッグエンディアンを用いるようにした。 | SHINTA (#3) |
2086 | BTextControl がアーカイブから復元できない(落ちる) | 解決。ZETA でアーカイブしたものも Haiku でアーカイブしたものも問題なく復元できるようになった。Axel さんがアーカイブ関連に大幅に手を入れてくれたようなので、類似の問題も解決の方向に。 | SHINTA (#2) |
2075 | B_MOUSE_DOWN の "where" がウィンドウ座標系になってしまっている | 解決。宛先がビューの場合はビュー座標系になるよう修正。 | SHINTA (#1) |
2008/05/01 A Text Bank Ver 5.1 Release 2
公開。
Haiku 対応版。
[ << 前の白 Be ] [ 翔星 Be ランド Home ] [ 次の白 Be >> ]