Exemple #1
0
            public void CreateNew(object sender, EventArgs args)
            {
                BFLIM bflim = CreateNewFromImage();

                if (bflim == null)
                {
                    return;
                }

                var form = new GenericEditorForm(false, bflim.OpenForm());

                LibraryGUI.CreateMdiWindow(form);
                bflim.UpdateForm();
            }
            private void OpenFormDialog(IFileFormat fileFormat)
            {
                UserControl form = GetEditorForm(fileFormat);

                form.Text = (((IFileFormat)fileFormat).FileName);

                var parentForm = LibraryGUI.Instance.GetActiveForm();

                GenericEditorForm editorForm = new GenericEditorForm(true, form);

                editorForm.FormClosing += (sender, e) => FormClosing(sender, e, fileFormat);
                if (editorForm.ShowDialog() == DialogResult.OK)
                {
                    if (fileFormat.CanSave)
                    {
                        Data = fileFormat.Save();
                        UpdateHexView();
                    }
                }
            }
Exemple #3
0
        private void OpenControlDialog(IFileFormat fileFormat)
        {
            UserControl form = GetEditorControl(fileFormat);

            form.Text = (((IFileFormat)fileFormat).FileName);

            var parentForm = LibraryGUI.GetActiveForm();

            GenericEditorForm editorForm = new GenericEditorForm(true, form);

            editorForm.FormClosing += (sender, e) => FormClosing(sender, e, fileFormat);
            if (editorForm.ShowDialog() == DialogResult.OK)
            {
                if (fileFormat.CanSave)
                {
                    ArchiveFileInfo.SaveFileFormat();
                    UpdateEditor();
                }
            }
        }
Exemple #4
0
            public void CreateNew(object sender, EventArgs args)
            {
                BFLIM bflim = new BFLIM();

                bflim.CanSave   = true;
                bflim.IFileInfo = new IFileInfo();
                bflim.header    = new Header();

                OpenFileDialog ofd = new OpenFileDialog();

                ofd.Multiselect = false;
                ofd.Filter      = FileFilters.GTX;
                if (ofd.ShowDialog() != DialogResult.OK)
                {
                    return;
                }

                FTEX ftex = new FTEX();

                ftex.ReplaceTexture(ofd.FileName, TEX_FORMAT.BC3_UNORM_SRGB, 1, 0, bflim.SupportedFormats, false, true, false);
                if (ftex.texture != null)
                {
                    bflim.Text              = ftex.texture.Name;
                    bflim.image             = new Image();
                    bflim.image.Swizzle     = (byte)ftex.texture.Swizzle;
                    bflim.image.BflimFormat = FormatsWiiU.FirstOrDefault(x => x.Value == ftex.Format).Key;
                    bflim.image.Height      = (ushort)ftex.texture.Height;
                    bflim.image.Width       = (ushort)ftex.texture.Width;

                    bflim.Format = FormatsWiiU[bflim.image.BflimFormat];
                    bflim.Width  = bflim.image.Width;
                    bflim.Height = bflim.image.Height;

                    bflim.ImageData = ftex.texture.Data;
                    var form = new GenericEditorForm(false, bflim.OpenForm());
                    LibraryGUI.CreateMdiWindow(form);

                    bflim.UpdateForm();
                }
            }
Exemple #5
0
        private void OpenFormDialog(IFileFormat fileFormat)
        {
            UserControl form = GetEditorForm(fileFormat);

            form.Text = (((IFileFormat)fileFormat).FileName);

            var parentForm = LibraryGUI.GetActiveForm();

            GenericEditorForm editorForm = new GenericEditorForm(true, form);

            editorForm.FormClosing += (sender, e) => FormClosing(sender, e, fileFormat);
            if (editorForm.ShowDialog() == DialogResult.OK)
            {
                if (fileFormat.CanSave)
                {
                    var mem = new System.IO.MemoryStream();
                    fileFormat.Save(mem);
                    ArchiveFileInfo.FileData = mem.ToArray();
                    UpdateEditor();
                }
            }
        }
Exemple #6
0
        public void OpenFile(string FileName, bool InActiveEditor = false)
        {
            if (File.Exists(FileName))
            {
                SaveRecentFile(FileName);
            }

            object file = STFileLoader.OpenFileFormat(FileName);

            if (file == null) //File might not be supported so return
            {
                return;
            }

            Type objectType = file.GetType();

            bool HasEditorActive = false;

            foreach (var inter in objectType.GetInterfaces())
            {
                if (inter.IsGenericType && inter.GetGenericTypeDefinition() == typeof(IEditor <>))
                {
                    MethodInfo method     = objectType.GetMethod("OpenForm");
                    MethodInfo methodFill = objectType.GetMethod("FillEditor");
                    var        control    = (UserControl)method.Invoke(file, new object[0]);
                    methodFill.Invoke(file, new object[1] {
                        control
                    });
                    var form = new GenericEditorForm(false, control);
                    TabDupeIndex   = 0;
                    form.Text      = CheckTabDupes(((IFileFormat)file).FileName);
                    form.MdiParent = this;
                    form.Show();

                    HasEditorActive = true;
                }
                else if (inter.IsGenericType && inter.GetGenericTypeDefinition() == typeof(IEditorForm <>))
                {
                    MethodInfo method = objectType.GetMethod("OpenForm");
                    var        form   = (Form)method.Invoke(file, new object[0]);
                    TabDupeIndex = 0;
                    form.Text    = CheckTabDupes(((IFileFormat)file).FileName);
                    form.Show();

                    HasEditorActive = true;
                }
            }

            bool IsTreeNode    = file is TreeNode;
            bool IsArchiveFile = file is IArchiveFile;

            if (!IsTreeNode && !IsArchiveFile || HasEditorActive)
            {
                SetFormatSettings(GetActiveIFileFormat());
                return;
            }

            //ObjectEditor is for treenode or archive file types. Editors will be on the right side, treenodes on the left
            SetFormatSettings((IFileFormat)file);

            //Check for active object editors
            Form editor = (Form)LibraryGUI.GetActiveForm();

            bool useActiveEditor = false;

            if (editor != null && editor is ObjectEditor)
            {
                //If any are active and we want it to be a new tab then create an instance of one
                if (InActiveEditor || ((ObjectEditor)editor).AddFilesToActiveEditor)
                {
                    useActiveEditor = true;
                }
            }

            bool IsEditorActive = editor != null;

            if (!useActiveEditor || !IsEditorActive)
            {
                editor           = new ObjectEditor(((IFileFormat)file));
                editor.MdiParent = this;
                editor.Text      = CheckTabDupes(((IFileFormat)file).FileName);
                editor.Show();

                ((ObjectEditor)editor).SelectFirstNode();

                if (file is TreeNodeFile)
                {
                    ((TreeNodeFile)file).OnAfterAdded();
                }
            }
            else
            {
                if (IsArchiveFile)
                {
                    ((ObjectEditor)editor).AddIArchiveFile((IFileFormat)file);
                }
                else
                {
                    AddObjectEditorFile(((TreeNode)file), (ObjectEditor)editor, false);
                }
            }

            SetFormatSettings(GetActiveIFileFormat());
        }