etc.negui.readme

read me.
はじめに
この文書はNeGui及びそれに付随するものに対するドキュメントです。 Readme.txtな役割をするものだと認識してください。

NeGuiとは
D用Window APIへ薄皮一枚のラッパー。 Windows APIを使用したプログラミングの経験のある人が対象。
もともとはネムぃ専用GUIクラスだったんだけどどんどんおかしな方向に走り出して今の姿に。 本来etc.negui.fileみたいなpackageは全く考慮してなかったし。
バグやら修正やら追加やらがあればサイトかメール(wokonomono@gmail.com )に連絡あれば嬉しいです。

使用準備
Bindings for the Windows APIのwin32\shlobj.dを一部修正する必要があります。
 module win32.shlobj;
 pragma(lib, "shell32.lib");

 // TODO: fix bitfields
 // TODO: CMIC_VALID_SEE_FLAGS
 // SHGetFolderPath in shfolder.dll on W9x, NT4, also in shell32.dll on W2K

 import win32.commctrl, win32.ole2, win32.shlguid, win32.shellapi;
 private import win32.prsht, win32.unknwn, win32.w32api, win32.winbase,
   win32.winnt, win32.winuser, win32.wtypes, win32.objfwd, win32.objidl;
 private import win32.winnetwk; // for NETRESOURCE


 import win32.oaidl; //@追加
 ...
上記の「@追加」の一行を追加してください。 Windows SDKも忘れずに。
あと引数がinoutになっている部分をrefに置き換える必要もあります。 これはコンパイル時に引っ掛かるのでそのときに修正してください。
budは無くてもいいけどその場合は下記versionをくっつけてください。
dmd @@@.d -version=WindowsXP -version=Unicode -version=IE7
		
versionそのものは環境に合わせてください。
あと.defファイルに
EXETYPE NT
SUBSYSTEM WINDOWS,5.0
		
するのも忘れないように。 値はターゲットに合わせください。
よくわかんない場合は素直にbud使ってください。 budを使う場合はetc.negui.bulidで最低限のversionは設定しているので特に何も考えることなく使用できます。
とまぁ本来ならこれでコンパイル出来るんだろうけど実際問題できません。 リンカやらスタティックライブラリの知識が皆無なのでなんとも言えませんが取り敢えずの回避策はbud @@@.d -fullすれば動きます。

指針
  • ※Dのスタイルとは合わないけれども。
    識別子 方針
    関数名 各単語の先頭は大文字。ただし配列への糖衣構文は先頭小文字
    メソッド Dの関数の書き方
    戻り値が構造体 でっかくなければそのまま、でかければref。 Textに関しては絶賛迷走中。 そのまんま返すようにしようと考え中。 それもまた迷走中。 stringみたいにしようと思ったらconst(Text)を返さなきゃならんのよねぇ。
    クラス 各単語の先頭を大文字
    インターフェイス 多重継承時にクラスなのかインターフェイスなのか明確にするため先頭に'I'、各単語の先頭を大文字 あれなんだね、インターフェイスって継承元クラスのあとにしかつけられないんだね。 これだったら別に'I'着けなくてもいいじゃないかと思ったけど着ける方針でいく。
    構造体・共用体 全部大文字でアンダースコア '_' は使用しない
    構造体・共用体メンバ メソッドと同じ
    クラス・構造体・共用体のprivate, protectedメンバ 各単語の先頭を大文字 '_'をつけるように方向転換しようかと考え中。
    定数・列挙体・列挙型メンバ 全部大文字
    Windows API - 構造体 頻繁に使うもので定数とかあるやつはラップ
  • GUIに関係なさげなWindows APIもOK。
  • Phobosで出来ることはPhobosで。
  • 内部でメモリを拡張したりするものはその値を指定可能に。
  • packageが_hideになっているmoduleはNeGui側で使用するのものでありライブラリ使用者は原則使用しない。
Note:
parentなのかownerなのか、統一させたい。
Ddocの内容をきちんと書きたい。 関数名だけじゃわけわからん。
License:
NYSL
Date:
History参照。
Version:
History参照。
Note:
etcじゃなくてneguiから始めようか考え中。 実際問題win32.*使ってるんだからneguiから始めても問題ないよなぁ。
作り直したい。 もう少し小さめにして持ち運び利くようにしたい。
History:
1.130 [2011/03/06]
  • source一部文字列mixinを通常の文に展開。ちょっとお試し中。
  • addingnegui.ddocにHIST_A追加。
  • adding[package] etc.negui.extra追加。
  • others[negui.ddoc] 連続した識別子のスキップ。
  • delete[package] hide廃止、module_hideに変更。
1.120 [2010/06/14]
  • programetc.negui.system.textの大幅書き換え。
1.110 [2010/05/16]
  • others[package] etc.negui.wrapper等追加。
1.101 [2010/05/04]
  • othersnegui.ddocの大幅変更、それに伴い関連部分の変更。
1.000 [2010/05/02]
  • others色々変更。
  • othersネムぃから分離。
  • others独立して公開。
バージョン
  • features機能追加/実装/変更/停止/廃止。
  • programプログラム的な変更。
  • adding追加。
  • delete削除。
  • sourceソース上の変更。
  • bugバグ修正。
  • othersその他。