• R/O
  • SSH
  • HTTPS

scfiler: Commit


Commit MetaInfo

Revision88 (tree)
Time2009-05-13 01:12:58
Authoryuki_sc

Log Message

・キー割り当てを以下のキーに対して可能にした
・プレビューをbmpなどの形式に対応
・カーソル移動の挙動を改善
・アクティブではない方のビューも選択状態がうっすらと見えるように変更

Change Summary

Incremental Difference

--- SCFiler2/KeyCommandManager.cs (revision 87)
+++ SCFiler2/KeyCommandManager.cs (revision 88)
@@ -347,6 +347,13 @@
347347 validKeys.Add(Keys.Oem5, "\\");
348348 validKeys.Add(Keys.Left,"Left");
349349 validKeys.Add(Keys.Right,"Right");
350+ validKeys.Add(Keys.Up, "Up");
351+ validKeys.Add(Keys.Down, "Down");
352+ validKeys.Add(Keys.PageUp, "PageUp");
353+ validKeys.Add(Keys.PageDown, "PageDown");
354+ validKeys.Add(Keys.Home, "Home");
355+ validKeys.Add(Keys.End, "End");
356+ validKeys.Add(Keys.Insert, "Ins");
350357 validKeys.Add(Keys.F1, "F1");
351358 validKeys.Add(Keys.F2, "F2");
352359 validKeys.Add(Keys.F3, "F3");
--- SCFiler2/OptionUtil.cs (revision 87)
+++ SCFiler2/OptionUtil.cs (revision 88)
@@ -59,10 +59,14 @@
5959 } else if (info.FieldType == typeof(Color)) {
6060 info.SetValue(instance, Color.FromArgb(int.Parse(value)));
6161 } else if (info.FieldType == typeof(List<string>)) {
62- info.SetValue(instance, Util.StringUtil.GetListFromConnectedString(value, new char[]{';'}));
62+ info.SetValue(instance, Util.StringUtil.GetListFromConnectedString(value, new char[] { ';' }));
63+ } else if (info.FieldType.IsEnum) {
64+ info.SetValue(instance, Enum.Parse(info.FieldType, value));
6365 }
6466 } catch (FormatException) {
6567 //parseに失敗した時は何もしない(デフォルト値を使う)
68+ } catch (ArgumentException) {
69+ //同じくArgumentExceptionの時も何もしない(デフォルト値を使う)
6670 }
6771 }
6872 }
--- SCFiler2/FileView.cs (revision 87)
+++ SCFiler2/FileView.cs (revision 88)
@@ -15,7 +15,9 @@
1515 using SCFiler2.ViewInterface;
1616 using SCFiler2.ItemInterface;
1717 using SCFiler2.EventInterface;
18+using System.Runtime.InteropServices;
1819
20+
1921 namespace SCFiler2 {
2022 /// <summary>
2123 /// ファイル一覧を表示するためのビュー(SCFilerのメインとなるビュー)
@@ -88,6 +90,7 @@
8890
8991 public FileView() {
9092 InitializeComponent();
93+ ((CustomListView)this.listView).FocusChanged = new ListViewFocusChangedDelegate(this.focusChangedEvent);
9194 }
9295
9396 /// <summary>
@@ -177,12 +180,23 @@
177180
178181
179182 #region プレビュー関係
183+
184+ private IFilerItem previewingItem = null; //現在表示中のアイテム
185+
180186 /// <summary>
181187 /// プレビュー領域にtargetItemを描画する(今は画像のプレビューのみ)
182188 /// </summary>
183189 /// <param name="targetItem"></param>
184190 public void drawPreview(IFilerItem targetItem) {
191+ if (previewingItem != null && previewingItem.FullName == targetItem.FullName) {
192+ return;
193+ }
194+
185195 Bitmap srcBitmap = susie.GetPicture(targetItem.FullName);
196+ if (srcBitmap == null) {
197+ srcBitmap = (Bitmap)Bitmap.FromFile(targetItem.FullName);
198+ }
199+
186200 if (srcBitmap != null) {
187201 Bitmap displayBitmap;
188202 //サイズがListViewより大きかったらサイズを合わせる
@@ -208,6 +222,8 @@
208222 previewPictureBox.Image = displayBitmap;
209223 previewPictureBox.Refresh();
210224 SCFiler2System.ShowTempMessage(targetItem.FullName);
225+
226+ previewingItem = targetItem;
211227 } else {
212228 previewPictureBox.Image = null;//画像を消去
213229 SCFiler2System.ShowTempMessage("この形式はプレビューできません");
@@ -215,6 +231,7 @@
215231 }
216232
217233 public void exitPreview() {
234+ previewingItem = null;
218235 }
219236
220237 #endregion プレビュー関係
@@ -556,6 +573,8 @@
556573 return;
557574 case ListViewController.Result.EventNotHandled:
558575 break; //何もしないで、続く処理に移る
576+ case ListViewController.Result.DelegateToOriginalControl:
577+ return; //コントロールの処理に任せる
559578 }
560579
561580 //数字キーでドライブ移動
@@ -587,10 +606,9 @@
587606 return;
588607 case ListViewController.Result.EventNotHandled:
589608 break;
609+ case ListViewController.Result.DelegateToOriginalControl:
610+ return;
590611 }
591-
592- //何も実行できなくても、デフォルトの動作をしないようにHandledはtrueを返す
593- e.Handled = true;
594612 }
595613
596614 /// <summary>
@@ -1084,5 +1102,18 @@
10841102 }
10851103
10861104 #endregion
1105+
1106+ private void listView_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e) {
1107+
1108+ }
1109+
1110+ private void listView_ItemActivate(object sender, EventArgs e) {
1111+ }
1112+
1113+ private void focusChangedEvent(int index) {
1114+ if (this.viewMode == ViewMode.ListInPreviewMode) {
1115+ MainForm.Instance.GetAnotherFileView(this).drawPreview(this.virtualListView.FocusedItem.FilerItem);
1116+ }
1117+ }
10871118 }
10881119 }
--- SCFiler2/NormalListViewController.cs (revision 87)
+++ SCFiler2/NormalListViewController.cs (revision 88)
@@ -86,55 +86,19 @@
8686 return Result.EventNotHandled;
8787 }
8888
89- //十時キーの上下、PageUp/Downを処理する
90- if (allItemSearcher.ContainsKey(ItemSearcher.SearchType.Basic)) {
91- ItemSearcher searcher = allItemSearcher[ItemSearcher.SearchType.Basic];
92- ItemSearcher.Result result = searcher.KeyDown(keyEvent);
93- switch (result) {
94- case ItemSearcher.Result.ItemFound:
95- if (keyEvent.Shift && !keyEvent.Alt && !keyEvent.Control) { //Shiftキーが押されていた時
96- SelectingMove(searcher.FoundItem);
97- } else if (!keyEvent.Shift && !keyEvent.Alt && keyEvent.Control) {
98- OnlyFocusMove(searcher.FoundItem);
99- } else {
100- SimpleMove(searcher.FoundItem);
101- }
102- return Result.EventHandled;
103- case ItemSearcher.Result.ItemNotFound:
104- return Result.EventHandled;
105- }
106- }
107-
10889 //頭文字サーチ
10990 if (allItemSearcher.ContainsKey(ItemSearcher.SearchType.Prefix)) {
110- ItemSearcher searcher = allItemSearcher[ItemSearcher.SearchType.Prefix];
111- ItemSearcher.Result result = searcher.KeyDown(keyEvent);
112- switch (result) {
113- case ItemSearcher.Result.ItemFound:
114- SimpleMove(searcher.FoundItem);
115- return Result.EventHandled;
116- case ItemSearcher.Result.ItemNotFound:
117- return Result.EventHandled;
118- }
91+ ItemSearcher searcher = allItemSearcher[ItemSearcher.SearchType.Prefix];
92+ ItemSearcher.Result result = searcher.KeyDown(keyEvent);
93+ switch (result) {
94+ case ItemSearcher.Result.ItemFound:
95+ SimpleMove(searcher.FoundItem);
96+ return Result.EventHandled;
97+ case ItemSearcher.Result.ItemNotFound:
98+ return Result.EventHandled;
99+ }
119100 }
120101
121- //このコントローラー特有の処理
122- //スペースが押されたら選択状態を反転
123- switch (keyEvent.KeyCode) {
124- case Keys.Space:
125- if (keyEvent.Shift) {
126- SelectingMove(targetListView.FocusedItem);
127- return Result.EventHandled;
128- } else {
129- if (targetListView.SelectedItems.Count == 1) {
130- //選択アイテムがなくなるのを防ぐ
131- break;
132- }
133- targetListView.FocusedItem.Selected = !targetListView.FocusedItem.Selected; //選択状態を反転
134- return Result.EventHandled;
135- }
136- }
137-
138102 return Result.EventNotHandled;
139103 }
140104
--- SCFiler2/About.Designer.cs (revision 87)
+++ SCFiler2/About.Designer.cs (revision 88)
@@ -35,7 +35,7 @@
3535 this.appName.Name = "appName";
3636 this.appName.Size = new System.Drawing.Size(147, 12);
3737 this.appName.TabIndex = 0;
38- this.appName.Text = "SCFiler2 Alpha version 0.38";
38+ this.appName.Text = "SCFiler2 Alpha version 0.39";
3939 this.appName.Click += new System.EventHandler(this.appName_Click);
4040 //
4141 // okButton
--- SCFiler2/ActionManager.cs (revision 87)
+++ SCFiler2/ActionManager.cs (revision 88)
@@ -48,6 +48,7 @@
4848 SelectAll,
4949 RefleshAll,
5050 PreviewMode,
51+ ThumbnailMode,
5152 Sort,
5253 SwitchNarrowDownMode,
5354
@@ -156,6 +157,8 @@
156157 return new RefleshAll();
157158 case ActionID.PreviewMode:
158159 return new PreviewMode();
160+ case ActionID.ThumbnailMode:
161+ return new ThumbnailMode();
159162 case ActionID.Sort:
160163 return new Sort();
161164 case ActionID.SwitchNarrowDownMode:
--- SCFiler2/EasySelectListViewController.cs (revision 87)
+++ SCFiler2/EasySelectListViewController.cs (revision 88)
@@ -10,6 +10,34 @@
1010 : base(parentView, targetListView) {
1111 }
1212
13+ //ListViewのアイテムが2列以上あるかどうか(左右に移動できるかどうか)で使い分ける
14+ static private Dictionary<Keys, string> exchangeListAtDetailView = new Dictionary<Keys, string>();
15+ static private Dictionary<Keys, string> exchangeListAtThumbnailView = new Dictionary<Keys, string>();
16+ Dictionary<Keys, string> exchangeList;
17+
18+ /// <summary>
19+ /// スタティックイニシャライザ
20+ /// </summary>
21+ static EasySelectListViewController() {
22+ exchangeListAtDetailView.Add(Keys.Up, "^{UP}");
23+ exchangeListAtDetailView.Add(Keys.Down, "^{DOWN}");
24+ exchangeListAtDetailView.Add(Keys.PageUp, "^{PGUP}");
25+ exchangeListAtDetailView.Add(Keys.PageDown, "^{PGDN}");
26+ exchangeListAtDetailView.Add(Keys.Home, "^{HOME}");
27+ exchangeListAtDetailView.Add(Keys.End, "^{END}");
28+ exchangeListAtDetailView.Add(Keys.Space, "^( {DOWN})");
29+
30+ exchangeListAtThumbnailView.Add(Keys.Up, "^{UP}");
31+ exchangeListAtThumbnailView.Add(Keys.Down, "^{DOWN}");
32+ exchangeListAtThumbnailView.Add(Keys.Right, "^{RIGHT}");
33+ exchangeListAtThumbnailView.Add(Keys.Left, "^{LEFT}");
34+ exchangeListAtThumbnailView.Add(Keys.PageUp, "^{PGUP}");
35+ exchangeListAtThumbnailView.Add(Keys.PageDown, "^{PGDN}");
36+ exchangeListAtThumbnailView.Add(Keys.Home, "^{HOME}");
37+ exchangeListAtThumbnailView.Add(Keys.End, "^{END}");
38+ exchangeListAtThumbnailView.Add(Keys.Space, "^( {DOWN})");
39+ }
40+
1341 public override void Initialize() {
1442 SCFiler2System.ShowTempMessage("スペースキーで選択モード");
1543 //デフォルトで持っているItemSearcher
@@ -16,13 +44,15 @@
1644 allItemSearcher.Add(ItemSearcher.SearchType.Basic, new BasicItemSearcher(this, targetListView));
1745 allItemSearcher.Add(ItemSearcher.SearchType.Prefix, new PrefixItemSearcher(this, targetListView));
1846
19- //すでに選択済みだったらフォーカスを一つ下へ
20- if (targetListView.FocusedItem.Selected) {
21- int newIndex = targetListView.FocusedItem.Index + 1;
22- if (newIndex < targetListView.Items.Count) {
23- targetListView.Items[newIndex].Focused = true;
24- }
47+ this.exchangeList = (this.parentView.ViewMode == ViewMode.ThumbnailMode) ? exchangeListAtThumbnailView : exchangeListAtDetailView;
48+
49+ //現在のアイテムを選択状態にして一つ下に移動する
50+ if (this.targetListView.FocusedItem.Selected) {
51+ SendKeys.Send(exchangeListAtDetailView[Keys.Down]);
52+ } else {
53+ SendKeys.Send(exchangeListAtDetailView[Keys.Space]);
2554 }
55+
2656 }
2757 public override void Terminate() {
2858 //全てのsearcherを終わらせる
@@ -47,6 +77,10 @@
4777 }
4878
4979 override public Result KeyProcessingBeforeKeyCommand(KeyEventArgs keyEvent) {
80+ if (this.exchangeList.ContainsKey(keyEvent.KeyCode) && keyEvent.Control) {
81+ return Result.DelegateToOriginalControl;
82+ }
83+
5084 //incremental search, Migemo
5185 ItemSearcher searcher = null;
5286 if (allItemSearcher.ContainsKey(ItemSearcher.SearchType.Incremental)) {
@@ -69,19 +103,13 @@
69103 }
70104 }
71105
72- //このController独自の処理
73- //スペースを押したら選択状態を反転
74- if (this.targetListView.Items.Count != 0 && keyEvent.KeyCode == Keys.Space && !keyEvent.Shift && !keyEvent.Alt && !keyEvent.Control) {
75- targetListView.FocusedItem.Selected = !targetListView.FocusedItem.Selected; //反転
76- //選択したら次のアイテムに移る
77- int newFocusIndex = targetListView.FocusedItem.Index + 1;
78- if (newFocusIndex < targetListView.Items.Count) {
79- targetListView.Items[newFocusIndex].Focused = true;
80- parentView.FocusedItemChanged();
81- }
106+ //上下左右キーなどはキーイベントを変換して発行する(コントロールオリジナルの制御を生かしてキーのみ入れ替える)
107+ if (this.targetListView.Items.Count != 0 && !keyEvent.Shift && !keyEvent.Control && !keyEvent.Alt && exchangeListAtDetailView.ContainsKey(keyEvent.KeyCode)) {
108+ SendKeys.Send(exchangeList[keyEvent.KeyCode]);
82109 return Result.EventHandled;
83110 }
84111
112+
85113 //Escapeが押されたら終了(NormalControllerに戻す)
86114 if (keyEvent.KeyCode == Keys.Escape && !keyEvent.Control && !keyEvent.Alt && !keyEvent.Shift) {
87115 return Result.ExitCurrentController;
@@ -92,24 +120,11 @@
92120 }
93121
94122 override public Result KeyProcessingAfterKeyCommand(KeyEventArgs keyEvent) {
95- //ビューにアイテムがないときは何もしない
123+ //アイテムが0の時は何もしない
96124 if (this.targetListView.Items.Count == 0) {
97125 return Result.EventNotHandled;
98126 }
99127
100- //上下キー、PageUp/Downの処理
101- if (allItemSearcher.ContainsKey(ItemSearcher.SearchType.Basic)) {
102- ItemSearcher searcher = allItemSearcher[ItemSearcher.SearchType.Basic];
103- ItemSearcher.Result result = searcher.KeyDown(keyEvent);
104- switch (result) {
105- case ItemSearcher.Result.ItemFound:
106- base.OnlyFocusMove(searcher.FoundItem);
107- return Result.EventHandled;
108- case ItemSearcher.Result.ItemNotFound:
109- return Result.EventHandled;
110- }
111- }
112-
113128 //頭文字サーチ
114129 if (allItemSearcher.ContainsKey(ItemSearcher.SearchType.Prefix)) {
115130 ItemSearcher searcher = allItemSearcher[ItemSearcher.SearchType.Prefix];
@@ -116,13 +131,13 @@
116131 ItemSearcher.Result result = searcher.KeyDown(keyEvent);
117132 switch (result) {
118133 case ItemSearcher.Result.ItemFound:
119- base.OnlyFocusMove(searcher.FoundItem);
134+ SimpleMove(searcher.FoundItem);
120135 return Result.EventHandled;
121136 case ItemSearcher.Result.ItemNotFound:
122137 return Result.EventHandled;
123138 }
124139 }
125- //どれにも引っかからなかったときは処理しなかったことにする
140+
126141 return Result.EventNotHandled;
127142 }
128143
--- SCFiler2/VirtualListViewItem.cs (revision 87)
+++ SCFiler2/VirtualListViewItem.cs (revision 88)
@@ -14,7 +14,6 @@
1414 private FilerItem targetItem;
1515 private ListViewItem viewItem;
1616 private VirtualListView parentView;
17- private bool focused;
1817 private string text;
1918 private object tag;
2019
@@ -24,7 +23,6 @@
2423 /// <param name="fierItem">このアイテムに関連付けるアイテムのFullName</param>
2524 public VirtualListViewItem(FilerItem filerItem) {
2625 this.targetItem = filerItem;
27- this.focused = false;
2826 this.tag = filerItem;
2927 text = filerItem.NameWithoutExtension;
3028 }
@@ -92,30 +90,20 @@
9290 /// </summary>
9391 public bool Focused {
9492 set {
95- if (this.focused == value) {
96- if (this.viewItem != null) {
97- this.viewItem.Focused = value;
98- }
99- return; //何もしない
100- }
101- //リストビューに反映
102- if (value == true) {
103- if (this.parentView.FocusedItem != null) {
104- this.parentView.FocusedItem.focused = false;
105- }
106- this.parentView.FocusedItem = this;
107- } else {
108- this.parentView.FocusedItem = null;
109- }
110- //すでにListViewのアイテムがあるときはそれも変更
11193 if (this.viewItem != null) {
11294 this.viewItem.Focused = value;
95+ } else {
96+ this.createListViewItem();
97+ this.viewItem.Focused = value;
11398 }
114- this.focused = value;
11599 }
116100
117101 get {
118- return this.focused;
102+ if (this.viewItem == null) {
103+ return false;
104+ } else {
105+ return this.viewItem.Focused;
106+ }
119107 }
120108 }
121109
@@ -218,7 +206,6 @@
218206 this.viewItem.SubItems.Add(this.targetItem.SizeDisplayString);//サイズ列
219207 this.viewItem.SubItems.Add(this.targetItem.UpdateDateString);//更新日列
220208 this.viewItem.Tag = this.targetItem;
221- this.viewItem.Focused = this.Focused;
222209 this.viewItem.Selected = this.Selected;
223210 }
224211
--- SCFiler2/bin/Release/ReleaseNote.txt (revision 87)
+++ SCFiler2/bin/Release/ReleaseNote.txt (revision 88)
@@ -1,8 +1,25 @@
11 更新履歴
22
3+■0.39
4+・キー割り当てを以下のキーに対して可能にした
5+ 矢印上下、Home, End, PageUp, PageDown, insert
6+ 制約として、Ctrl+矢印およびCtrl+スペースキーに割り当てた機能は、「スペースで選択」モードではキーが効きません
7+・プレビューをbmpなどの形式に対応
8+・カーソル移動の挙動を改善
9+ 実装を大幅に変更。いくつかの変な動きが改善されていると思います。
10+ これまでと挙動が変わることがあるのでご注意ください。
11+ また、代わりにバグが入っている可能性もあるので見つけたらご連絡ください。
12+・アクティブではない方のビューの選択状態がわかる(うっすらと色が付く)ようにした
13+
14+■0.38.1
15+ 0.38で追加したアイコンの設定が、SCFiler2を再起動したら元に戻る不具合を修正しました。
16+ (オプションで設定してすぐは反映されず、次にフォルダを移動して初めて反映されるのはそのうち修正します)
17+
318 ■0.38
419 ・フォルダ以外のアイコンも表示可能にした
520 設定ダイアログの表示タブに設定項目があります
21+・ビューに表示アイテムがない状態でキー操作で落ちるパターンを何個か修正
22+・プラグインのI/Fを修正(プラグインによっては要最新版への更新)
623
724 ■0.37
825 ・プラグインにキー割り当てを可能にした
--- SCFiler2/ListViewController.cs (revision 87)
+++ SCFiler2/ListViewController.cs (revision 88)
@@ -23,6 +23,10 @@
2323 /// このコントローラを終了するというコマンドが入力された
2424 /// </summary>
2525 ExitCurrentController,
26+ /// <summary>
27+ /// このコントロールやアクションでは処理せず、コントロールのオリジナルの実装にキー処理を任せることを指示する
28+ /// </summary>
29+ DelegateToOriginalControl,
2630 }
2731
2832 public ListViewController(FileView parentView, VirtualListView targetView) {
--- SCFiler2/CustomListView.cs (nonexistent)
+++ SCFiler2/CustomListView.cs (revision 88)
@@ -0,0 +1,54 @@
1+using System;
2+using System.Collections.Generic;
3+using System.Text;
4+using System.Windows.Forms;
5+using System.Runtime.InteropServices;
6+
7+namespace SCFiler2 {
8+ delegate void ListViewFocusChangedDelegate(int index);
9+
10+ /// <summary>
11+ /// リストビューにフォーカス移動イベントを追加するためのクラス
12+ /// </summary>
13+ class CustomListView : ListView {
14+ internal ListViewFocusChangedDelegate FocusChanged = null;
15+
16+ //このメソッドの実装は
17+ //http://hongliang.seesaa.net/article/16550502.html
18+ //で公開されているコードを使用させていただきました
19+ protected override void WndProc(ref Message m) {
20+ // LVN_ITEMCHANGED は親フォームに WM_NOTIFY(0x4E)で送信され、
21+ // 親フォームはそれを該当コントロールに
22+ // WM_REFLECT(WM_USER(0x400)+0x1C00) を追加したメッセージコードで通知する。
23+ const int ReflectedItemChanged = 0x400 + 0x1c00 + 0x4e;
24+ // LVN_ITEMCHANGED
25+ const int ItemChanged = -101;
26+ // NMHDR / NMLISTVIEW 構造体におけるメンバのオフセット(先頭の hdr 除く)
27+ const int OffsetCode = 4, OffsetIndex = 8, OffsetState = 16;
28+ if (m.Msg == ReflectedItemChanged) {
29+ // LPARAM を NMHDR に見立てて通知コード(code)を取得
30+ int code = Marshal.ReadInt32(m.LParam, IntPtr.Size + OffsetCode);
31+ if (code == ItemChanged) {
32+ // LPARAM を NMLISTVIEW に見立ててアイテムの状態(uNewState)を取得
33+ int state = Marshal.ReadInt32(m.LParam, IntPtr.Size + OffsetState);
34+ const int Focused = 1;
35+ // 最下位ビットが立っている場合フォーカスが存在すると言う意味になる
36+ // フォーカスがアイテム 1 からアイテム 2 に動いた場合、
37+ // ItemChanged は複数回送られる。
38+ // 一般的に、アイテム 1 の選択解除、アイテム 1 のフォーカス解除、
39+ // アイテム 2 のフォーカスと選択状態の獲得、の順である。
40+ // アイテム 1 の状態については uOldState の方に現れるので、
41+ // state (uNewState) に出ることはない
42+ if ((state & Focused) != 0) {
43+ // LPARAM を NMLISTVIEW に見立ててインデックス(iItem)を取得
44+ int index = Marshal.ReadInt32(m.LParam, IntPtr.Size + OffsetIndex);
45+ if (this.FocusChanged != null) {
46+ this.FocusChanged(index);
47+ }
48+ }
49+ }
50+ }
51+ base.WndProc(ref m);
52+ }
53+ }
54+}
--- SCFiler2/FileView.Designer.cs (revision 87)
+++ SCFiler2/FileView.Designer.cs (revision 88)
@@ -26,7 +26,8 @@
2626 this.driveInfoPanel = new System.Windows.Forms.Panel();
2727 this.folderInfoLabel = new System.Windows.Forms.Label();
2828 this.driveInfoLabel = new System.Windows.Forms.Label();
29- this.listView = new System.Windows.Forms.ListView();
29+ //this.listView = new System.Windows.Forms.ListView();
30+ this.listView = new CustomListView();
3031 this.currentPathText = new System.Windows.Forms.TextBox();
3132 this.previewPictureBox = new System.Windows.Forms.PictureBox();
3233 this.fileSystemWatcher = new System.IO.FileSystemWatcher();
@@ -70,6 +71,8 @@
7071 //
7172 this.listView.AllowDrop = true;
7273 this.listView.FullRowSelect = true;
74+ this.listView.HideSelection = false;
75+ this.listView.LabelWrap = false;
7376 this.listView.Location = new System.Drawing.Point(0, 19);
7477 this.listView.Name = "listView";
7578 this.listView.Size = new System.Drawing.Size(79, 64);
@@ -77,6 +80,7 @@
7780 this.listView.UseCompatibleStateImageBehavior = false;
7881 this.listView.View = System.Windows.Forms.View.Details;
7982 this.listView.VirtualMode = true;
83+ this.listView.ItemActivate += new System.EventHandler(this.listView_ItemActivate);
8084 this.listView.Resize += new System.EventHandler(this.listView_Resize);
8185 this.listView.MouseClick += new System.Windows.Forms.MouseEventHandler(this.listView_MouseClick);
8286 this.listView.SelectedIndexChanged += new System.EventHandler(this.listView_SelectedIndexChanged);
@@ -86,6 +90,7 @@
8690 this.listView.DragDrop += new System.Windows.Forms.DragEventHandler(this.listView_DragDrop);
8791 this.listView.ColumnClick += new System.Windows.Forms.ColumnClickEventHandler(this.listView_ColumnClick);
8892 this.listView.RetrieveVirtualItem += new System.Windows.Forms.RetrieveVirtualItemEventHandler(this.listView_RetrieveVirtualItem);
93+ this.listView.ItemSelectionChanged += new System.Windows.Forms.ListViewItemSelectionChangedEventHandler(this.listView_ItemSelectionChanged);
8994 this.listView.DragEnter += new System.Windows.Forms.DragEventHandler(this.listView_DragEnter);
9095 this.listView.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.listView_KeyPress);
9196 this.listView.DragLeave += new System.EventHandler(this.listView_DragLeave);
--- Plugin/Plugin/IFileView.cs (revision 87)
+++ Plugin/Plugin/IFileView.cs (revision 88)
@@ -37,6 +37,11 @@
3737 /// プレビューモードの時のプレビュー部分担当
3838 /// </summary>
3939 PreviewInPreviewMode,
40+
41+ /// <summary>
42+ /// サムネイル表示
43+ /// </summary>
44+ ThumbnailMode,
4045 }
4146
4247 /// <summary>
Show on old repository browser