diff --git a/File_Format_Library/File_Format_Library.csproj b/File_Format_Library/File_Format_Library.csproj
index 149f8b3a..a0079805 100644
--- a/File_Format_Library/File_Format_Library.csproj
+++ b/File_Format_Library/File_Format_Library.csproj
@@ -315,6 +315,12 @@
+
+ Form
+
+
+ FileSelector.cs
+
UserControl
@@ -1099,6 +1105,9 @@
BffntEditor.cs
+
+ FileSelector.cs
+
LayoutEditor.cs
diff --git a/File_Format_Library/GUI/BFLYT/FileSelector.Designer.cs b/File_Format_Library/GUI/BFLYT/FileSelector.Designer.cs
new file mode 100644
index 00000000..3f0ecd55
--- /dev/null
+++ b/File_Format_Library/GUI/BFLYT/FileSelector.Designer.cs
@@ -0,0 +1,96 @@
+namespace LayoutBXLYT
+{
+ partial class FileSelector
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.stButton1 = new Toolbox.Library.Forms.STButton();
+ this.listViewCustom1 = new Toolbox.Library.Forms.ListViewCustom();
+ this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.contentContainer.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // contentContainer
+ //
+ this.contentContainer.Controls.Add(this.listViewCustom1);
+ this.contentContainer.Controls.Add(this.stButton1);
+ this.contentContainer.Size = new System.Drawing.Size(274, 393);
+ this.contentContainer.Controls.SetChildIndex(this.stButton1, 0);
+ this.contentContainer.Controls.SetChildIndex(this.listViewCustom1, 0);
+ //
+ // stButton1
+ //
+ this.stButton1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.stButton1.DialogResult = System.Windows.Forms.DialogResult.OK;
+ this.stButton1.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ this.stButton1.Location = new System.Drawing.Point(190, 361);
+ this.stButton1.Name = "stButton1";
+ this.stButton1.Size = new System.Drawing.Size(75, 23);
+ this.stButton1.TabIndex = 11;
+ this.stButton1.Text = "Ok";
+ this.stButton1.UseVisualStyleBackColor = false;
+ //
+ // listViewCustom1
+ //
+ this.listViewCustom1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.listViewCustom1.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.listViewCustom1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
+ this.columnHeader1});
+ this.listViewCustom1.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;
+ this.listViewCustom1.Location = new System.Drawing.Point(5, 31);
+ this.listViewCustom1.Name = "listViewCustom1";
+ this.listViewCustom1.OwnerDraw = true;
+ this.listViewCustom1.Size = new System.Drawing.Size(260, 324);
+ this.listViewCustom1.TabIndex = 12;
+ this.listViewCustom1.UseCompatibleStateImageBehavior = false;
+ this.listViewCustom1.View = System.Windows.Forms.View.Details;
+ this.listViewCustom1.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.listViewCustom1_MouseDoubleClick);
+ //
+ // columnHeader1
+ //
+ this.columnHeader1.Width = 256;
+ //
+ // FileSelector
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(280, 398);
+ this.Name = "FileSelector";
+ this.contentContainer.ResumeLayout(false);
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private Toolbox.Library.Forms.STButton stButton1;
+ private Toolbox.Library.Forms.ListViewCustom listViewCustom1;
+ private System.Windows.Forms.ColumnHeader columnHeader1;
+ }
+}
diff --git a/File_Format_Library/GUI/BFLYT/FileSelector.cs b/File_Format_Library/GUI/BFLYT/FileSelector.cs
new file mode 100644
index 00000000..62b1ebe7
--- /dev/null
+++ b/File_Format_Library/GUI/BFLYT/FileSelector.cs
@@ -0,0 +1,46 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+using Toolbox.Library.Forms;
+using Toolbox.Library;
+using FirstPlugin;
+
+namespace LayoutBXLYT
+{
+ public partial class FileSelector : STForm
+ {
+ public FileSelector()
+ {
+ InitializeComponent();
+
+ listViewCustom1.MultiSelect = true;
+ }
+
+ public List SelectedIndices()
+ {
+ List indices = new List();
+ foreach (int index in listViewCustom1.SelectedIndices)
+ indices.Add(index);
+
+ return indices;
+ }
+
+ public void LoadLayoutFiles(List layoutFiles)
+ {
+ listViewCustom1.BeginUpdate();
+ foreach (var file in layoutFiles)
+ listViewCustom1.Items.Add(file.FileName);
+ listViewCustom1.EndUpdate();
+ }
+
+ private void listViewCustom1_MouseDoubleClick(object sender, MouseEventArgs e)
+ {
+ }
+ }
+}
diff --git a/File_Format_Library/GUI/BFLYT/FileSelector.resx b/File_Format_Library/GUI/BFLYT/FileSelector.resx
new file mode 100644
index 00000000..1af7de15
--- /dev/null
+++ b/File_Format_Library/GUI/BFLYT/FileSelector.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/File_Format_Library/GUI/BFLYT/LayoutEditor.cs b/File_Format_Library/GUI/BFLYT/LayoutEditor.cs
index ee540f4e..67602822 100644
--- a/File_Format_Library/GUI/BFLYT/LayoutEditor.cs
+++ b/File_Format_Library/GUI/BFLYT/LayoutEditor.cs
@@ -248,17 +248,13 @@ namespace LayoutBXLYT
private void dockPanel1_ActiveDocumentChanged(object sender, EventArgs e)
{
- var dockContent = dockPanel1.ActiveDocument as DockContent;
- if (dockContent != null && dockContent.Controls.Count > 0)
+ var dockContent = dockPanel1.ActiveDocument as LayoutViewer;
+ if (dockContent != null)
{
- var control = dockContent.Controls[0];
- if (control is LayoutViewer)
- {
- var file = ((LayoutViewer)control).LayoutFile;
- ReloadEditors(file);
+ var file = (dockContent).LayoutFile;
+ ReloadEditors(file);
- ((LayoutViewer)control).UpdateViewport();
- }
+ dockContent.UpdateViewport();
}
}
@@ -283,7 +279,25 @@ namespace LayoutBXLYT
if (file is BFLYT)
LoadBflyt(((BFLYT)file).header, file.FileName);
else if (file is IArchiveFile)
- SearchLayoutFiles((IArchiveFile)file);
+ {
+ var layouts = SearchLayoutFiles((IArchiveFile)file);
+ if (layouts.Count > 1)
+ {
+ var form = new FileSelector();
+ form.LoadLayoutFiles(layouts);
+ if (form.ShowDialog() == DialogResult.OK)
+ {
+ foreach (var index in form.SelectedIndices())
+ {
+ LoadBflyt(layouts[index].header, file.FileName);
+ }
+ }
+ }
+ else if (layouts.Count > 0)
+ {
+ LoadBflyt(layouts[0].header, file.FileName);
+ }
+ }
else if (file is BFLAN)
{
@@ -294,8 +308,10 @@ namespace LayoutBXLYT
}
}
- private void SearchLayoutFiles(IArchiveFile archiveFile)
+ private List SearchLayoutFiles(IArchiveFile archiveFile)
{
+ List layouts = new List();
+
foreach (var file in archiveFile.Files)
{
var fileFormat = STFileLoader.OpenFileFormat(file.FileName,
@@ -304,9 +320,7 @@ namespace LayoutBXLYT
if (fileFormat is BFLYT)
{
fileFormat.IFileInfo.ArchiveParent = archiveFile;
-
- if (fileFormat is BFLYT)
- LoadBflyt(((BFLYT)fileFormat).header, file.FileName);
+ layouts.Add((BFLYT)fileFormat);
}
else if (Utils.GetExtension(file.FileName) == ".bntx")
{
@@ -321,9 +335,11 @@ namespace LayoutBXLYT
fileFormat.IFileInfo.ArchiveParent = archiveFile;
if (fileFormat is IArchiveFile)
- SearchLayoutFiles((IArchiveFile)fileFormat);
+ return SearchLayoutFiles((IArchiveFile)fileFormat);
}
}
+
+ return layouts;
}
private void LayoutEditor_DragEnter(object sender, DragEventArgs e)