/// </summary>
public partial class MainForm : Form
{
+ public enum MainFormStatus
+ {
+ Hide,
+ Active,
+ NoActive
+ }
+
+
private static IntPtr hWndClipboardNext = IntPtr.Zero;
private bool windowMoveFlag = false;
private bool showDropdownSupport = true;
+ private MainFormStatus status = MainFormStatus.Hide;
+ public MainFormStatus Status
+ {
+ get { return status; }
+ set { status = value; }
+ }
+
private AutoCompleteTextBox textBox_cmd;
public AutoCompleteTextBox TextBox_cmd
{
if (!Program.Main_MemorizeEngine)
this.SetSearchEngine(Program.GetEngineInfo(0));
this.timer1.Start();
+ this.Status = MainFormStatus.Active;
}
else
{
this.searchTextBox.TextBox.ShowableDropdownList = false;
this.searchTextBox.TextBox.DropdownForm.DoVisibleChange(false);
this.timer1.Stop();
+ this.Status = MainFormStatus.Hide;
}
}
switch (Program.Status)
{
case ProgramStatus.MainFormOpen:
+ case ProgramStatus.SelectingSearchEngine:
p = new Point((short)m.WParam, (short)m.LParam);
r = Program.MainForm.Bounds;
if (r.Left > p.X || r.Right < p.X || r.Top > p.Y || r.Bottom < p.Y)
//Program.MainForm.DoVisibleChange(false);
Program.MainForm.Opacity = 0.4;
Program.MainForm.DropdownForm.DoVisibleChange(false);
+ Program.MainForm.Status = MainFormStatus.NoActive;
}
}
else
{
//Program.MainForm.DoVisibleChange(false);
Program.MainForm.Opacity = 0.4;
+ Program.MainForm.Status = MainFormStatus.NoActive;
}
}
else if(Program.MainForm.Opacity != Program.FormOpacity)
{
Program.MainForm.Opacity = Program.FormOpacity;
}
+ Program.Status = ProgramStatus.MainFormOpen;
break;
case ProgramStatus.SentenceFormOpen:
size.Height = this.searchTextBox.Size.Height;
this.searchTextBox.Size = size;
if (this.searchTextBox.TextBox.DropdownForm.Visible)
+ {
+ Program.Status = ProgramStatus.MainFormOpen;
this.searchTextBox.TextBox.DropdownForm.DoVisibleChange(false);
+ }
}
Settings.Set(Settings.PASSER_FORM_MAIN_Y, this.seenPoint.Y);
if (this.searchTextBox.TextBox.DropdownForm.Visible)
+ {
+ Program.Status = ProgramStatus.MainFormOpen;
this.searchTextBox.TextBox.DropdownForm.DoVisibleChange(false);
+ }
}
else if (e.X >= (this.Size.Width - 4))
{
case 2: //WebSearch
if (String.IsNullOrEmpty(this.searchTextBox.TextBox.Text))
{
+ Program.Status = ProgramStatus.MainFormOpen;
this.searchTextBox.TextBox.DropdownForm.DoVisibleChange(false);
this.suggestString = "";
}
this.searchTextBox.TextBox.DropdownForm.DropdownListBox.Items.Clear();
if (filter && command.Equals(""))
{
+ Program.Status = ProgramStatus.MainFormOpen;
this.searchTextBox.TextBox.DropdownForm.DoVisibleChange(false);
return;
}
}
if (this.searchTextBox.TextBox.DropdownForm.DropdownListBox.Items.Count == 0)
{
+ Program.Status = ProgramStatus.MainFormOpen;
this.searchTextBox.TextBox.DropdownForm.DoVisibleChange(false);
return;
}
}
+
+ /// <summary>
+ /// DropdownFormにエンジンリスト一覧を表示する
+ /// </summary>
+ public void ShowEngineList()
+ {
+ if (!this.SearchTextBox.TextBox.DropdownForm.Visible)
+ {
+ //検索エンジンリストの表示
+ this.searchTextBox.TextBox.DropdownForm.DropdownListBox.Items.Clear();
+ foreach (string key in Program.DefaultEngineList)
+ {
+ EngineInfo info = Program.DefaultEngineDic[key];
+ IconListBoxItem item = new IconListBoxItem();
+ item.Name = info.Name;
+ item.Text = info.Name;
+ item.IconImage = info.IconImage;
+ item.Type = IconListBoxType.SearchEngine;
+ item.Data = info;
+ item.Regex = Program.Ime.GetRomaji(item.Name);
+ this.searchTextBox.TextBox.DropdownForm.DropdownListBox.Items.Add(item);
+ }
+ foreach (string key in Program.EngineList)
+ {
+ EngineInfo info = Program.EngineDic[key];
+ IconListBoxItem item = new IconListBoxItem();
+ item.Name = info.Name;
+ item.Text = info.Display;
+ item.IconImage = info.IconImage;
+ item.Type = IconListBoxType.SearchEngine;
+ item.Data = info;
+ item.Regex = Program.Ime.GetRomaji(item.Name);
+ this.searchTextBox.TextBox.DropdownForm.DropdownListBox.Items.Add(item);
+ }
+ this.searchTextBox.TextBox.SetDropdownFormLocation();
+ this.searchTextBox.TextBox.DropdownForm.DoVisibleChange(true);
+ this.searchTextBox.TextBox.DropdownForm.DropdownListBox.SelectedIndex = 0;
+ Program.Status = ProgramStatus.SelectingSearchEngine;
+ }
+ }
+
+
private void SuggestReadCallBack(IAsyncResult ar)
{
try
case IconListBoxType.SearchEngineText:
this.searchTextBox.TextBox.Text = item.Text;
this.searchTextBox.TextBox.SelectionStart = this.searchTextBox.TextBox.Text.Length;
+ Program.Status = ProgramStatus.MainFormOpen;
this.searchTextBox.TextBox.DropdownForm.DoVisibleChange(false);
break;
case IconListBoxType.SearchEngine:
EngineInfo info = (EngineInfo)item.Data;
this.SetSearchEngine(info);
+ Program.Status = ProgramStatus.MainFormOpen;
this.searchTextBox.TextBox.DropdownForm.DoVisibleChange(false);
return;
}
{
EngineInfo info = (EngineInfo)item.Data;
this.SetSearchEngine(info);
+ Program.Status = ProgramStatus.MainFormOpen;
this.searchTextBox.TextBox.DropdownForm.DoVisibleChange(false);
break;
}
{
this.searchTextBox.TextBox.Text = this.searchTextBox.TextBox.DropdownForm.DropdownListBox.Text;
this.searchTextBox.TextBox.SelectionStart = this.Text.Length;
+ Program.Status = ProgramStatus.MainFormOpen;
this.searchTextBox.TextBox.DropdownForm.DoVisibleChange(false);
}
}
case Keys.Escape:
if (this.SearchTextBox.TextBox.DropdownForm.Visible)
{
+ Program.Status = ProgramStatus.MainFormOpen;
this.SearchTextBox.TextBox.DropdownForm.DoVisibleChange(false);
Program.HideToolTip();
e.Handled = true;
}
e.Handled = true;
return;
+
+ default:
+ if (Program.Status == ProgramStatus.SelectingSearchEngine)
+ {
+ //検索エンジンリストが開いてる場合
+ string key = e.KeyChar + "";
+ IconListBoxItem item;
+ int index = this.SearchTextBox.TextBox.DropdownForm.DropdownListBox.SelectedIndex + 1;
+ if (index >= this.SearchTextBox.TextBox.DropdownForm.DropdownListBox.Items.Count)
+ index = 0;
+ for (int i = 0; i < this.SearchTextBox.TextBox.DropdownForm.DropdownListBox.Items.Count; i++)
+ {
+ item = (IconListBoxItem)this.SearchTextBox.TextBox.DropdownForm.DropdownListBox.Items[index];
+ EngineInfo info = (EngineInfo)item.Data;
+ if (Program.Ime.StartsWith(item.Regex, key))
+ {
+ this.SearchTextBox.TextBox.DropdownForm.DropdownListBox.SelectedIndex = index;
+ break;
+ }
+ if (++index >= this.SearchTextBox.TextBox.DropdownForm.DropdownListBox.Items.Count)
+ index = 0;
+ }
+
+ e.Handled = true;
+ }
+ break;
}
}
case Keys.Down:
if ((Keys.Alt & Control.ModifierKeys) == Keys.Alt)
{
- if (!this.SearchTextBox.TextBox.DropdownForm.Visible)
- {
- //検索エンジンリストの表示
- this.searchTextBox.TextBox.DropdownForm.DropdownListBox.Items.Clear();
- foreach (string key in Program.DefaultEngineList)
- {
- EngineInfo info = Program.DefaultEngineDic[key];
- IconListBoxItem item = new IconListBoxItem();
- item.Name = info.Name;
- item.Text = info.Name;
- item.IconImage = info.IconImage;
- item.Type = IconListBoxType.SearchEngine;
- item.Data = info;
- this.searchTextBox.TextBox.DropdownForm.DropdownListBox.Items.Add(item);
- }
- foreach (string key in Program.EngineList)
- {
- EngineInfo info = Program.EngineDic[key];
- IconListBoxItem item = new IconListBoxItem();
- item.Name = info.Name;
- item.Text = info.Display;
- item.IconImage = info.IconImage;
- item.Type = IconListBoxType.SearchEngine;
- item.Data = info;
- this.searchTextBox.TextBox.DropdownForm.DropdownListBox.Items.Add(item);
- }
- this.searchTextBox.TextBox.SetDropdownFormLocation();
- this.searchTextBox.TextBox.DropdownForm.DoVisibleChange(true);
- }
+ this.ShowEngineList();
}
else if ((Keys.Control & Control.ModifierKeys) == Keys.Control)
{
if (type == 0 && String.IsNullOrEmpty(text))
{
+ Program.Status = ProgramStatus.MainFormOpen;
this.searchTextBox.TextBox.DropdownForm.DoVisibleChange(false);
this.suggestString = "";
}
{
this.searchTextBox.TextBox.Text = this.searchTextBox.TextBox.DropdownForm.DropdownListBox.Text;
this.searchTextBox.TextBox.Select(this.searchTextBox.TextBox.Text.Length, 0);
+ Program.Status = ProgramStatus.MainFormOpen;
this.searchTextBox.TextBox.DropdownForm.DoVisibleChange(false);
}