2006年6月アーカイブ

2画面ファイラーを作ろう 6

Date
'06-06-27(火曜日) 22:13:52
Category
コンピュータ

やったこと
・ファイル名の横にアイコン表示(Winのみ)
・,キーで登録したディレクトリに移動できるダイアログを開く
・iキーでファイル名をポップアップ表示(長いファイル用)
・ウィンドウの大きさにあわせてListCtrlの列の長さ調整

やりたいこと
・Linuxでアイコン表示
・ファイルコピー実装
・登録メニュー表示&コマンド実行

2画面ファイラーを作ろう その5

Date
'06-06-15(木曜日) 23:39:34
Category
コンピュータ

5であってるのか?
やったこと
・キー設定をxmlの設定ファイルから読み込むようにした
・システム関連付けのアプリで実行できるようにした
・ディレクトリ一覧を設定しておいて、一覧から選択移動できるようにした

Windows用バイナリ

やりたいこと
・Linuxで動かすとフォーカス問題があやしく上手く動かないので直す(本末転倒)
・ファイルコピー実装

ファイラーを作ろう(その4)

Date
'06-06-13(火曜日) 20:48:55
Category
コンピュータ

アンダーラインは難しいので取り合えず背景色で対応してみました。
カーソル上下とタブは取り合えず実装

PythonからWindowsのバイナリを作成してみました。
Windows用バイナリ

まあ、カーソル動く以外は能がないですが…
このあとの実装項目としては
・リターンキーでアプリ実行
・ファイルコピー、移動、削除実装(cpコマンドでいいか?)
・カスタマイズが容易なようにxmlで設定するようにする

でしょうかね

ファイラーを作ろう(その3)

Date
'06-06-10(土曜日) 21:01:56
Category
コンピュータ

アンダーラインを引く問題解決は
結局描画イベントの中からスーパークラスの描画メソッドを呼び出すことで解決。

dc = wx.PaintDC(self) dc.BeginDrawing() wx.ListCtrl.OnPaint( self, event ); # 先に描画させて dc.SetPen(wx.RED_PEN); rect = self.GetItemRect(self.cursor) # 後で描く dc.DrawLine(rect.x+2, rect.y+rect.height-1, rect.x+rect.width, rect.y+rect.height-1) dc.EndDrawing()

dcを取得してリリースする関数がないのですごく不思議な気分。
BeginDrawing()はマニュアルにはやらないとダメと書いてあるが、
なくても問題なく動くんだよなぁ…

って、今Linuxで動かしたら動かなかったよ。Windows版なら動いたのに…

ファイラーを作ろう(その2)

Date
'06-06-07(水曜日) 11:34:12
Category
コンピュータ

ディレクトリを移動するとこまではできた
BSキーで上のディレクトリ。エンターキーでカーソル位置のディレクトリ。
TABキーで左右のウィンドウ切り替え(タブストップで切り替えているだけだが)
画面は変わってないので添付せず。

次にカーソル位置にアンダーラインを入れようとしたのだが、
EVT_PAINTメッセージ(いわゆるWM_PAINT)をトラップしてアンダーラインを描いても
コモンコントロール(ListCtrl)の描画処理が上書きして消してしまう。
割り込みを後で登録するために処理が先になってしまっているようだ。

ちろちろ調べるとどうも、コモンコントロールの上にDCで描画するのは
結構めんどくさいようだ。

解決策として以下順序で作業
・割り込みの順番を変えられないか
・wxWidgetsにあるGridのほうはもうちょっと描画が自由であればそっちを使えないか
・アンダーラインはとりあえずあきらめる(あとまわし)
・細長いウィンドウを描画してアンダーラインの変わりにする
・全部自分で描く

めずらしく

Date
'06-06-06(火曜日) 00:16:40
Category
雑談

仕事が忙しくて他の事ができん…
今日も帰ってきて風呂はいってねるだけ…

ファイラーを作ろう その1

Date
'06-06-02(金曜日) 00:20:26
Category
コンピュータ

Windowsでは2画面ファイラーのKFってのを使ってますが、
Linuxにはいい2画面ファイラーがありません。
CUIオンリーならいくつかあるけどやっぱりD&Dも使いたいじゃん?
というわけでKrusaderをちょっと使ってみたがキーコンフィグがちょっと弱い。

複雑な機能はいらなくてコピーと移動と削除とアプリの起動ができればいいだけなので
ちまちまと作ってみるかとはじめてみました。

昔と違って今は楽に作れるしね。
とりあえず何も知らないゼロから初めて(ここ数年JavaのWebアプリしかやってない)
4日目で2画面にわけてファイル一覧を表示するところまで到達。
2画面ファイラー
4日で10時間くらいか?ライブラリが進化したねぇ。

次はディレクトリ移動できるようにしようかの
開発環境はPython2.4+wxPython2.6