雑記帳
ここはhideyosiの雑記帳です。テケトーに書き散らしてるだけなので間違っていたりとは普通にしてます。信用度は相当低いことをあらかじめご了承を。またご覧のようにWikiを使ってますが、hideyosi意外は書き込めません。
2: 2007-12-06 (木) 17:42:53 ソース バックアップ No.2 を復元して編集 現: 2024-01-06 (土) 22:39:13 ソース 編集
Line 22: Line 22:
また、オイラにそんな高度なことができるだろうか・・・ また、オイラにそんな高度なことができるだろうか・・・
 +
 +まあいいや。
 +
 +
 +とにもかくにもちょっとやってみよう。
 +
 +・・・ええと・・・まずは・・・・・
 +
 +SHEETに、現在の大きさ・最大の大きさというパラメータを付け加えてみよう。
 +
 +・・・それと・・・
 +
 +現在、はりぼての設計では256枚シートが作れる。で、この中に特別なシートがあるよね。
 +
 +マウスのシート。こいつだけは別格で、絶対にこれの上にシートがこないようになっている。(つまりマウスの上にシートなりウィンドゥがこない)
 +
 +こういうシートをもう一枚設けてみる。マウスのシートのすぐ下。かならずマウスの''1個だけ下''になるシートと・・・
 +(これはなんのためか。いずれ搭載したいメニューとウィンドィの可変時に描画される四角を書く為)
 +
 +
 +
 +・・・うーむ。そうなると、ウインドィにカッコだけでも可変ポイントを設けないといけないなぁ・・・
 +
 +
 +うはぁ!! そういう所いじってたけど、現状のはりぼての設計だとちょっと問題が・・・
 +
 +ウィンドゥの大きさとはどこの大きさのことか? の定義があいまいだなぁ・・・
 +
 +
 +
 +ちょっと一旦、新しいmake_window関数を考えてみる。
 +
 +現状、窓を作る手続きはというと・・・(open_consoleの内容から)
 +
 ++まずSHEETをallocする
 ++SHEETに使うバッファをallocする
 ++バッファ用のメモリを確保する
 ++確保したメモリをSHEETに接続する
 ++make_window8関数でバッファの中に窓を作る
 +
 +こんなところだよね?
 +
 +うーん。これを一発で出来るようにするには・・・
 +
 +WINDOWという構造体を作ってそこで一括管理するってーのはどうだろう??
 +
 +SHEETはSHEETで管理しなくちゃいけない。(マウス等ウィンドゥじゃないシートが当然存在するんだろうから)
 +
 +うーむ。そう妄想すると、こんな感じかなぁ???
 +
 +
 + struct WINDOW {
 +       struct SHEET sheet;        //使っているシート
 +       struct TASK  task;        //どのタスクに所属しているか?
 +       int c_xsize;              //クライアント領域の横サイズ
 +       int c_ysize;              //クライアント領域の横サイズ
 +       char have_tb;              //タイトルバーを所有しているか?
 +       char have_fr;              //フレームを所有しているか?
 +       char have_fb;              //フットバーを所有しているか?
 + }
 +
 +あっれえぇ?
 +
 +ちょっとうまくいかないなぁ・・・
 +
 +***リビジョン110 [#tb897aac]
 +えっと・・・とりあえずこんなもんかな????
 +
 +さて。次。
 +
 +マウス直下にもうひとつ、特別なシートを設定と。
 +
 +えーっと。シートってどうなってたっけ。