24日目の内容になります。
ウインドウ操作
- タイマー
- ウインドウのドラッグ移動
- Xボタンの有効化
- アクティブなウインドウの切り替え
この辺は動画で見た方が面白いと思います。
ホストOS側からQEMUにF11キーが送れない
F11キーがQEMU側で反応するより前に、mac側のディスクトップを表示する機能が発動してしまうのでとりあえず無効化しておきました。 Mac使っている人は参考にして見てください。
タイマー終了時に発生する謎の文字
タイマーを利用しているアプリケーションを強制終了した際に、タイマーの通知がFIFOを通じてコンソールのキー入力の箇所に届いてしまう問題がありました。
このデータは何由来のものか、本書では解説されていなかったので調べて見ました。
hankaku.txtに登録されている
char 0x80 ........ ..***... .*...*.. *.....*. *....... *....... *....... *....... *....... *....... *....... *.....*. .*...*.. ..***... ...*.... ..*.....
これですね。(0x80=128)asciiは7bit符号化?らしいので127(0b1111111)までしか定義されていないらしいが、一部の拡張文字セット?(extend-ascii-code)というもので128にこれが登録されているものがあった。ちなみにこれはセディーユという記号らしい。
GUI雑感
この章でMain関数が非常に複雑になってしまいます。こういうのを見るとGUIはモデリングの格好の対象だなと思います。
学生の頃はワークフローとか在庫管理とか面白くなさそう、と思っていましたが、 オブジェクト指向の題材としてそういうものが取り上げられていることが多く、熱心に勉強していませんでした。
が、社会人になってから気付きましたが、複雑な業務ルールをクラス化・テーブル化したりするのは意外と楽しいものです。
OSをオブジェクト指向で作ろうとするとドメイン(=システム化の対象領域)も技術的なものなので技術がやりたい人(ビジネス的な部分を考えたくない人)にとってはオブジェクト指向を学ぶ題材としてすごく向いてると思います。