Beispiel #1
0
 static void createInstance()
 {
     if (instance == null)
     {
         instance = new SpeechPlayer();
     }
 }
Beispiel #2
0
        void tabControlFile_MouseClick(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Middle)
            {
                TabControl tc = sender as TabControl;
                // 選択タブではなくて、マウスの上にあるタブだな
                if (tc != null && tc.SelectedTab != null)
                {
                    Point p = tabControlFile.PointToClient(Cursor.Position);
                    for (int i = 0; i < tabControlFile.TabPages.Count; ++i)
                    {
                        Rectangle rect = tabControlFile.GetTabRect(i);
                        if (rect.Contains(p))
                        {
                            // tab Close
                            // conform save?
                            TabPage tab  = tabControlFile.TabPages[i];
                            Editor  edit = tab.Tag as Editor;

                            SpeechPlayer.stop(edit);

                            if (edit != null && edit.checkModify())
                            {
                                DialogResult result = MessageBox.Show(
                                    this,
                                    tab.Text + " は変更されています。保存しますか?",
                                    "タブを閉じる",
                                    MessageBoxButtons.YesNoCancel
                                    );

                                // foreach回している最中に消しても大丈夫なのかしら?
                                switch (result)
                                {
                                case DialogResult.Cancel:
                                    return;

                                case DialogResult.No:
                                    break;

                                case DialogResult.Yes:
                                    save(edit);
                                    break;

                                default:
                                    break;
                                }
                            }

                            if (tc.SelectedTab == tab)
                            {
                                setTitle("");
                            }
                            tc.TabPages.RemoveAt(i);
                            break;
                        }
                    }
                }
            }
        }
Beispiel #3
0
        void TabCloseAll_Click(object sender, EventArgs e)
        {
            foreach (TabPage tab in tabControlFile.TabPages)
            {
                // modify check?
                Editor edit = tab.Tag as Editor;

                SpeechPlayer.stop(edit);

                if (edit != null && edit.checkModify())
                {
                    DialogResult result = MessageBox.Show(
                        this,
                        tab.Text + " は変更されています。保存しますか?",
                        "全てのタブを閉じる",
                        MessageBoxButtons.YesNoCancel
                        );

                    switch (result)
                    {
                    case DialogResult.Cancel:
                        return;

                    case DialogResult.No:
                        break;

                    case DialogResult.Yes:
                        save(edit);
                        break;

                    default:
                        break;
                    }
                }

                // セーブキャンセルしたときでも意図したとおりタイトル消せる??
                if (tab == tabControlFile.SelectedTab)
                {
                    setTitle("");
                }
                // foreach回している最中に消しても大丈夫っぽい
                tabControlFile.TabPages.Remove(tab);
            }
        }
Beispiel #4
0
        void TabClose_Click(object sender, EventArgs e)
        {
            // middle click時と微妙に被っている
            TabPage tab = tabControlFile.SelectedTab;

            if (tab != null)
            {
                Editor edit = tab.Tag as Editor;

                SpeechPlayer.stop(edit);

                if (edit != null && edit.checkModify())
                {
                    DialogResult result = MessageBox.Show(
                        this,
                        tab.Text + " は変更されています。保存しますか?",
                        "タブを閉じる",
                        MessageBoxButtons.YesNoCancel
                        );

                    // foreach回している最中に消しても大丈夫なのかしら?
                    switch (result)
                    {
                    case DialogResult.Cancel:
                        return;

                    case DialogResult.No:
                        break;

                    case DialogResult.Yes:
                        save(edit);
                        break;

                    default:
                        break;
                    }
                }

                tabControlFile.TabPages.Remove(tab);
                setTitle("");
                // 次に選択されるタブは指定しないと先頭になる模様
            }
        }
Beispiel #5
0
 void SpeechStop_Click(object sender, EventArgs e)
 {
     SpeechPlayer.stop(null);   // force stop
 }