Exemple #1
0
    public TabPage AddTab(string filename, bool readOnly)
    {
        filename = new FileInfo(filename).FullName;

        //already opened?
        TabPage buffer = GetTab(filename);
        if (buffer != null) {
            p_Tabs.SelectedTab = buffer;
            return buffer;
        }

        //create the text editor
        TextEditor editor = new TextEditor(filename) { Dock = DockStyle.Fill };
        if (readOnly) { editor.ToggleReadOnly(); }
        else {
            editor.Modified += delegate(object sender, EventArgs e) {
                TextEditor inst = (TextEditor)sender;
                TabPage p = (TabPage)inst.Parent;
                if (!p.Text.EndsWith("*")) {
                    p.Text += " *";
                }
            };
        }

        //create the tab
        buffer = new TabPage() {
            Text = new FileInfo(filename).Name,
            Tag = filename,
            BorderStyle = BorderStyle.None
        };
        buffer.Controls.Add(editor);

        //are we in read-only mode?
        if (p_ReadOnlyMode) {
            Helpers.AddObject(ref p_PreviousReadOnlyState, readOnly);
            editor.ReadOnly = true;
        }

        //clean up
        p_Tabs.Visible = true;
        p_Tabs.TabPages.Add(buffer);
        p_Tabs.SelectedTab = buffer;
        saveState();
        return buffer;
    }