みかん本輪読会 30章 おまけアプリ
アプリにパスを通す p.692 - いちいちapps/~をつけるのがいや - Linuxではgrep ~で使える - 環境変数を使って実現している (PATH変数) - 適切な環境変数を設定すると設定されたディレクトリ内 にあるアプリはアプリ名だけで起動できる - ちゃんとした環境変数の仕組みを作るのは大変なので 今回はapps/ なしで起動することだけを目指す
アプリにパスを通す - FindCommand()を作成→ - FindCommand()を使って アプリを起動する↓ リスト 30.2 p.692~693 リスト 30.1
moreコマンド p.693 - ls appsと打つと、ターミナルにたくさんの出力がされ、 始めのほうが隠れてしまう - linuxにはmoreやlessコマンドがあり、内容をページ贈 りで見ることができる - ちなみに末尾まで行くと自動的にプロンプトへ戻るのが more、戻らないのがless - lessのほうが新しく、機能が豊富
moreコマンド p.694~695 - リスト30.3がmoreコマンドの実装 moreコマンドの使い方 - 引数は -n と file $ ls /usr/bin | more - -n がページ送りの行数を指定 - file がファイルパス、省略すると標準入力 - moreコマンドはパイプで動作するが、MikanOSの仕 様ではタスクがパイプの左側に送られる - パイプ使用時だけ右側にタスク送信して欲しい
moreコマンド p.695~696 layer_task_mapの登録を一時 的に更新しパイプの処理中に送 られてきたイベントをパイプの右 側のタスクに送信する ← リスト 30.4 ↓
catを入力に対応させる p.696 - catは今のところ標準入力を扱えない - linuxはファイル名を省略すると標準入力から読む - 標準入力を扱えるようになると改行を含むテキストファ イルが作成可能になる - 動作確認に使うファイルをその場で作成可能に - いちいち起動ボリュームにファイルを入れて再起動する 必要がなくなる
catを入力に対応させる p.696~697 - 引数first_argが空の場合に標準入力を表すディスク リスト 30.5 リプタfiles_[0]を使うようにする
閉じるボタン p.698 - 今まで飾りだった閉じるボタンを使えるように - マウスの左ボタンがクリックされたかどうかとマウス の座標がウィンドウの閉じるボタンの上にあるかどう か - 外部からウィンドウを強制的に閉じる方法と内部から 自主的に閉じる方法がある - 前者はタスクが存在しないウィンドウに書き込む可能 性がある危険な処理なため後者を採用する
閉じるボタン p.699 - クリックされた座標を取得する - 戻り値はリスト30.8の画像通り タイトルバー、閉じるボタン、 ウィンドウの枠線、その他領域 リスト 30.8 → リスト 30.7
閉じるボタン p.700~703 - リスト30.11でウィンドウ領域の種類に応じて処理 - リスト30.12でマウスクリックの処理 - リスト30.13で閉じるボタンのクリックを通知 - リスト30.14で閉じられるウィンドウを指定する構造体 - リスト30.15でウィンドウを閉じる - リスト30.16で指定されたレイヤーを閉じる - リスト30.17でReadEventも閉じる
テキストビューワーと画像ビューワー p.703~710 - テキストビューワーと画像ビューワーを作ってみる - テキストビューワーには前後にスクロール、画面の大きさを 変更、タブ幅を変更する機能を実装 (リスト30.18) - 画像ビューワーはビットマップ画像やjpeg画像を表示 - jpeg画像をピクセルの配列に変換するのは大変なのでstb imageというライブラリを使用 (リスト30.19) - スタックが足りなくなるので32KiBから64KiBへ増量