protected override void UpdateInternal() { Manager.NativeManager.PushItemWidth(-1); // Address bar { if (Manager.NativeManager.Button("↑") && !String.IsNullOrEmpty(currentPath)) { UpdateFileList(Path.GetDirectoryName(currentPath)); } Manager.NativeManager.SameLine(); // Display current directory if (Manager.NativeManager.InputText("", (currentPath != null) ? currentPath : "")) { string path = Manager.NativeManager.GetInputTextResult(); UpdateFileList(path); } } Manager.NativeManager.Separator(); // Display all files for (int i = 0; i < items.Count; i++) { var item = items[i]; // Todo: ファイルタイプに適したアイコンを割り当てる string caption = Path.GetFileName(item.FilePath); if (Manager.NativeManager.Selectable(caption, i == selectedIndex, swig.SelectableFlags.AllowDoubleClick)) { selectedIndex = i; if (Manager.NativeManager.IsMouseDoubleClicked(0)) { DoubleClick(); } } // D&D DragAndDrops.UpdateImageSrc(item.FilePath); } Manager.NativeManager.PopItemWidth(); }
public override void Update() { isHovered = false; isPopupShown = false; if (binding == null) { return; } string dd = null; float buttonSizeX = Manager.NativeManager.GetTextLineHeightWithSpacing() * 2; if (Manager.NativeManager.Button(Resources.GetString("Load") + id1, buttonSizeX)) { btn_load_Click(); } Popup(); if (dd == null) { dd = DragAndDrops.UpdateFileDst(FileType.Texture); } isHovered = isHovered || Manager.NativeManager.IsItemHovered(); Manager.NativeManager.SameLine(); Manager.NativeManager.Text(filePath); if (Manager.NativeManager.IsItemHovered()) { Manager.NativeManager.SetTooltip(filePath); } if (dd == null) { dd = DragAndDrops.UpdateFileDst(FileType.Texture); } isHovered = isHovered || Manager.NativeManager.IsItemHovered(); if (thumbnail != null) { if (Manager.NativeManager.Button(Resources.GetString("Delete") + id2, buttonSizeX)) { btn_delete_Click(); } Popup(); if (dd == null) { dd = DragAndDrops.UpdateFileDst(FileType.Texture); } isHovered = isHovered || Manager.NativeManager.IsItemHovered(); Manager.NativeManager.SameLine(); Manager.NativeManager.Text(infoText); Popup(); if (dd == null) { dd = DragAndDrops.UpdateFileDst(FileType.Texture); } isHovered = isHovered || Manager.NativeManager.IsItemHovered(); if (thumbnail != null) { var image = thumbnail.Image; float imageSizeX = image.GetWidth(); float imageSizeY = image.GetHeight(); if (imageSizeX < imageSizeY) { Manager.NativeManager.ImageData(image, 128 * imageSizeX / imageSizeY, 128); } else if (imageSizeX > imageSizeY) { Manager.NativeManager.ImageData(image, 128, 128 * imageSizeY / imageSizeX); } else { Manager.NativeManager.ImageData(image, 128, 128); } Popup(); } if (dd == null) { dd = DragAndDrops.UpdateFileDst(FileType.Texture); } isHovered = isHovered || Manager.NativeManager.IsItemHovered(); } if (dd != null) { Dropped(dd); } }
public override void Update() { isHovered = false; if (binding == null) { return; } string dd = null; float buttonSizeX = Manager.NativeManager.GetTextLineHeightWithSpacing() * 2; if (Manager.NativeManager.Button(Resources.GetString("Load") + id1, buttonSizeX)) { btn_load_Click(); } if (dd == null) { dd = DragAndDrops.UpdateFileDst(FileType.Curve); } isHovered = isHovered || Manager.NativeManager.IsItemHovered(); Manager.NativeManager.SameLine(); Manager.NativeManager.Text(filePath); if (dd == null) { dd = DragAndDrops.UpdateFileDst(FileType.Curve); } if (Manager.NativeManager.IsItemHovered()) { Manager.NativeManager.SetTooltip(filePath); } isHovered = isHovered || Manager.NativeManager.IsItemHovered(); if (filePath != string.Empty) { if (Manager.NativeManager.Button(Resources.GetString("Delete") + id2, buttonSizeX)) { btn_delete_Click(); } Manager.NativeManager.SameLine(); isHovered = isHovered || Manager.NativeManager.IsItemHovered(); if (Manager.NativeManager.Button(Resources.GetString("ResetMaginification") + id3, buttonSizeX * 2)) { btn_reload_Click(); } isHovered = isHovered || Manager.NativeManager.IsItemHovered(); } if (dd != null) { Dropped(dd); } }
protected override void UpdateInternal() { Manager.NativeManager.PushItemWidth(-1); // Address bar { // Back directory (BS shortcut key) if (Manager.NativeManager.IsWindowFocused() && Manager.NativeManager.IsKeyPressed(Manager.NativeManager.GetKeyIndex(swig.Key.Backspace)) && !String.IsNullOrEmpty(currentPath)) { UpdateFileListWithProjectPath(currentPath); } // Back directory if (Manager.NativeManager.Button("↑") && !String.IsNullOrEmpty(currentPath)) { UpdateFileListWithProjectPath(currentPath); } Manager.NativeManager.SameLine(); // Display current directory if (Manager.NativeManager.InputText("", (currentPath != null) ? currentPath : "")) { string path = Manager.NativeManager.GetInputTextResult(); UpdateFileList(path); } } Manager.NativeManager.Separator(); // Display all files for (int i = 0; i < items.Count; i++) { var item = items[i]; swig.ImageResource image = null; if (item.Type == FileType.Directory) { image = Images.GetIcon("FileViewer_Directory"); } if (item.Type == FileType.EffekseerProject) { image = Images.GetIcon("FileViewer_EffekseerProj"); } if (item.Type == FileType.Image) { image = item.Image; } if (item.Type == FileType.Other) { } { float iconSize = Manager.NativeManager.GetTextLineHeight(); Manager.NativeManager.Image(image, iconSize, iconSize); } Manager.NativeManager.SameLine(); string caption = Path.GetFileName(item.FilePath); if (Manager.NativeManager.Selectable(caption, i == selectedIndex, swig.SelectableFlags.AllowDoubleClick)) { selectedIndex = i; if (Manager.NativeManager.IsMouseDoubleClicked(0) || Manager.NativeManager.IsKeyDown(Manager.NativeManager.GetKeyIndex(swig.Key.Enter))) { OnFilePicked(); } } // File Context Menu string menuId = "###FileViewerFilePopupMenu" + i; if (Manager.NativeManager.BeginPopupContextItem(menuId)) { selectedIndex = i; if (Manager.NativeManager.MenuItem(menuOpenFile)) { OnFilePicked(); } Manager.NativeManager.Separator(); if (Manager.NativeManager.MenuItem(menuShowInFileManager)) { ShowInFileManager(); } Manager.NativeManager.EndPopup(); } // D&D DragAndDrops.UpdateImageSrc(item.FilePath); } Manager.NativeManager.PopItemWidth(); }
protected override void UpdateInternal() { Manager.NativeManager.PushItemWidth(-1); // Address bar { // Back directory (BS shortcut key) if (Manager.NativeManager.IsWindowFocused() && Manager.NativeManager.IsKeyPressed(Manager.NativeManager.GetKeyIndex(swig.Key.Backspace)) && !Manager.NativeManager.IsAnyItemActive() && !string.IsNullOrEmpty(CurrentPath)) { UpdateFileListWithProjectPath(CurrentPath); } // Back directory if (Manager.NativeManager.Button("↑") && !String.IsNullOrEmpty(CurrentPath)) { UpdateFileListWithProjectPath(CurrentPath); } Manager.NativeManager.SameLine(); // Display current directory if (Manager.NativeManager.InputText("###AddressBar", addressText)) { addressText = Manager.NativeManager.GetInputTextResult(); UpdateFileList(addressText); } if (Manager.NativeManager.IsItemActivated()) { addressEditing = true; } if (Manager.NativeManager.IsItemDeactivated()) { addressEditing = false; addressText = CurrentPath; } } Manager.NativeManager.Separator(); // Display all files for (int i = 0; i < items.Count; i++) { var item = items[i]; string icon = Icons.Empty; swig.ImageResource image = null; switch (item.Type) { case FileType.Directory: icon = Icons.FileDirectory; break; case FileType.EffekseerProject: icon = Icons.FileEfkefc; break; case FileType.Image: image = item.Image; break; case FileType.Sound: icon = Icons.FileSound; break; case FileType.Model: icon = Icons.FileModel; break; case FileType.Material: icon = Icons.FileEfkmat; break; default: icon = Icons.FileOther; break; } float iconPosX = Manager.NativeManager.GetCursorPosX(); string caption = icon + " " + Path.GetFileName(item.FilePath); if (Manager.NativeManager.Selectable(caption, item.Selected, swig.SelectableFlags.AllowDoubleClick)) { if (Manager.NativeManager.IsCtrlKeyDown()) { item.Selected = !item.Selected; } else if (Manager.NativeManager.IsShiftKeyDown() && selectedIndex >= 0) { int min = Math.Min(selectedIndex, i); int max = Math.Max(selectedIndex, i); for (int j = min; j <= max; j++) { items[j].Selected = true; } } else { ResetSelected(); item.Selected = true; } selectedIndex = i; if (Manager.NativeManager.IsMouseDoubleClicked(0) || Manager.NativeManager.IsKeyDown(Manager.NativeManager.GetKeyIndex(swig.Key.Enter))) { OnFilePicked(); } } if (Manager.NativeManager.IsItemFocused()) { ResetSelected(); } if (Manager.NativeManager.IsItemClicked(1)) { if (!item.Selected) { ResetSelected(); item.Selected = true; } selectedIndex = i; Manager.NativeManager.OpenPopup(ContextMenuPopupId); } // D&D switch (item.Type) { case FileType.Image: DragAndDrops.UpdateFileSrc(item.FilePath, DragAndDrops.FileType.Image); break; case FileType.Sound: DragAndDrops.UpdateFileSrc(item.FilePath, DragAndDrops.FileType.Sound); break; case FileType.Model: DragAndDrops.UpdateFileSrc(item.FilePath, DragAndDrops.FileType.Model); break; case FileType.Material: DragAndDrops.UpdateFileSrc(item.FilePath, DragAndDrops.FileType.Material); break; case FileType.Curve: DragAndDrops.UpdateFileSrc(item.FilePath, DragAndDrops.FileType.Curve); break; default: DragAndDrops.UpdateFileSrc(item.FilePath, DragAndDrops.FileType.Other); break; } if (image != null) { Manager.NativeManager.SameLine(); Manager.NativeManager.SetCursorPosX(iconPosX); float iconSize = Manager.NativeManager.GetTextLineHeight(); Manager.NativeManager.Image(image, iconSize, iconSize); } } UpdateContextMenu(); Manager.NativeManager.PopItemWidth(); if (shouldUpdateFileList) { UpdateFileList(); shouldUpdateFileList = false; } }
public override void Update() { isHovered = false; if (binding == null) { return; } string dd = null; float buttonSizeX = Manager.NativeManager.GetTextLineHeightWithSpacing() * 2; if (Manager.NativeManager.Button(Resources.GetString("Load") + id1, buttonSizeX)) { btn_load_Click(); } if (dd == null) { dd = DragAndDrops.UpdateFileDst(DragAndDrops.FileType.Material); } isHovered = isHovered || Manager.NativeManager.IsItemHovered(); Manager.NativeManager.SameLine(); // show path Manager.NativeManager.Text(relativeFilePath); if (dd == null) { dd = DragAndDrops.UpdateFileDst(DragAndDrops.FileType.Material); } if (Manager.NativeManager.IsItemHovered()) { Manager.NativeManager.SetTooltip(relativeFilePath); } isHovered = isHovered || Manager.NativeManager.IsItemHovered(); // if (absoluteFilePath != string.Empty) { if (Manager.NativeManager.Button(Resources.GetString("Delete") + id2, buttonSizeX)) { btn_delete_Click(); } Manager.NativeManager.SameLine(); if (Manager.NativeManager.Button(Resources.GetString("Material_Edit_Name") + id3, buttonSizeX)) { if (Process.MaterialEditor.Run()) { Process.MaterialEditor.OpenOrCreateMaterial(absoluteFilePath); } } if (Functions.CanShowTip()) { Manager.NativeManager.SetTooltip(Resources.GetString("Material_Edit_Desc")); } Manager.NativeManager.SameLine(); if (Manager.NativeManager.Button(Resources.GetString("Material_GenCache_Name") + id4, buttonSizeX * 2.2f)) { GenerateCompiledMaterial(); } if (Functions.CanShowTip()) { ShowInformation(); } isHovered = isHovered || Manager.NativeManager.IsItemHovered(); } else { if (Manager.NativeManager.Button(Resources.GetString("Material_Create_Name"), buttonSizeX)) { var filter = Resources.GetString("MaterialFilter"); var result = swig.FileDialog.SaveDialog(filter, System.IO.Directory.GetCurrentDirectory()); if (!string.IsNullOrEmpty(result)) { var filepath = Functions.GetFilepathWithExtentions(result, ".efkmat"); if (Process.MaterialEditor.Run()) { Process.MaterialEditor.OpenOrCreateMaterial(filepath); // wait int counter = 0; while (counter < 50) { if (System.IO.File.Exists(filepath)) { break; } counter++; System.Threading.Thread.Sleep(100); } if (System.IO.File.Exists(filepath)) { LoadFile(filepath); Read(); } } } } if (Manager.NativeManager.IsItemHovered()) { Manager.NativeManager.SetTooltip(Resources.GetString("Material_Create_Desc")); } } if (dd != null) { Dropped(dd); } }
protected override void UpdateInternal() { Manager.NativeManager.PushItemWidth(-1); // Address bar { if (Manager.NativeManager.Button("↑") && !String.IsNullOrEmpty(currentPath)) { UpdateFileListWithProjectPath(currentPath); } Manager.NativeManager.SameLine(); // Display current directory if (Manager.NativeManager.InputText("", (currentPath != null) ? currentPath : "")) { string path = Manager.NativeManager.GetInputTextResult(); UpdateFileList(path); } } Manager.NativeManager.Separator(); // Display all files for (int i = 0; i < items.Count; i++) { var item = items[i]; swig.ImageResource image = null; if (item.Type == FileType.Directory) { image = Images.GetIcon("FileViewer_Directory"); } if (item.Type == FileType.EffekseerProject) { image = Images.GetIcon("FileViewer_EffekseerProj"); } if (item.Type == FileType.Image) { image = item.Image; } if (item.Type == FileType.Other) { } Manager.NativeManager.Image(image, 32, 32); Manager.NativeManager.SameLine(); string caption = Path.GetFileName(item.FilePath); if (Manager.NativeManager.Selectable(caption, i == selectedIndex, swig.SelectableFlags.AllowDoubleClick)) { selectedIndex = i; if (Manager.NativeManager.IsMouseDoubleClicked(0)) { DoubleClick(); } } // D&D DragAndDrops.UpdateImageSrc(item.FilePath); } Manager.NativeManager.PopItemWidth(); }
public override void Update() { isHovered = false; if (binding == null) { return; } string dd = null; if (Manager.NativeManager.Button("読込")) { btn_load_Click(); } if (dd == null) { dd = DragAndDrops.UpdateImageDst(); } isHovered = isHovered || Manager.NativeManager.IsItemHovered(); Manager.NativeManager.SameLine(); Manager.NativeManager.Text(filePath); if (dd == null) { dd = DragAndDrops.UpdateImageDst(); } isHovered = isHovered || Manager.NativeManager.IsItemHovered(); if (Manager.NativeManager.Button("解除")) { btn_delete_Click(); } if (dd == null) { dd = DragAndDrops.UpdateImageDst(); } isHovered = isHovered || Manager.NativeManager.IsItemHovered(); Manager.NativeManager.SameLine(); Manager.NativeManager.Text(infoText); if (dd == null) { dd = DragAndDrops.UpdateImageDst(); } isHovered = isHovered || Manager.NativeManager.IsItemHovered(); if (image != null) { Manager.NativeManager.Image(image, 128, 128); if (dd == null) { dd = DragAndDrops.UpdateImageDst(); } isHovered = isHovered || Manager.NativeManager.IsItemHovered(); } if (dd != null) { Dropped(dd); } }
void UpdateFileView(float dpiScale, swig.Vec2 regionSize, swig.Vec2 spacing) { var viewMode = Core.Option.FileViewerViewMode.GetValue(); float iconSize = Core.Option.FileViewerIconSize.GetValue(); int contentCountX = 1; if (viewMode == Data.OptionValues.FileViewMode.IconView) { contentCountX = (int)((regionSize.X + spacing.X * 2) / (iconSize + spacing.X)); if (contentCountX <= 0) { contentCountX = 1; } } for (int i = 0; i < items.Count; i++) { var item = items[i]; string icon = item.GetIcon(viewMode == Data.OptionValues.FileViewMode.ListView); if (i != 0 && i % contentCountX != 0) { Manager.NativeManager.SameLine(); } item.DrawPosX = Manager.NativeManager.GetCursorPosX(); item.DrawPosY = Manager.NativeManager.GetCursorPosY(); string label = icon + Path.GetFileName(item.FilePath); bool selected = false; switch (viewMode) { case Data.OptionValues.FileViewMode.IconView: selected = Manager.NativeManager.SelectableContent("###FileContent_" + i, label, item.Selected, item.Image, iconSize, iconSize, swig.SelectableFlags.AllowDoubleClick); break; case Data.OptionValues.FileViewMode.ListView: selected = Manager.NativeManager.Selectable(label + "###FileContent_" + i, item.Selected, swig.SelectableFlags.AllowDoubleClick); break; } item.ItemID = Manager.NativeManager.GetItemID(); if (selected) { if (Manager.NativeManager.IsCtrlKeyDown()) { item.Selected = !item.Selected; } else if (Manager.NativeManager.IsShiftKeyDown() && selectedIndex >= 0) { int min = Math.Min(selectedIndex, i); int max = Math.Max(selectedIndex, i); for (int j = min; j <= max; j++) { items[j].Selected = true; } } else { ResetSelected(); item.Selected = true; } selectedIndex = i; if (Manager.NativeManager.IsMouseDoubleClicked(0) || Manager.NativeManager.IsKeyDown(Manager.NativeManager.GetKeyIndex(swig.Key.Enter))) { OnFilePicked(); } } if (Manager.NativeManager.IsItemClicked(1)) { if (!item.Selected) { ResetSelected(); item.Selected = true; } selectedIndex = i; Manager.NativeManager.OpenPopup(ContextMenuPopupId); } // D&D switch (item.Type) { case FileType.Texture: DragAndDrops.UpdateFileSrc(item.FilePath, FileType.Texture); break; case FileType.Sound: DragAndDrops.UpdateFileSrc(item.FilePath, FileType.Sound); break; case FileType.Model: DragAndDrops.UpdateFileSrc(item.FilePath, FileType.Model); break; case FileType.Material: DragAndDrops.UpdateFileSrc(item.FilePath, FileType.Material); break; case FileType.Curve: DragAndDrops.UpdateFileSrc(item.FilePath, FileType.Curve); break; default: DragAndDrops.UpdateFileSrc(item.FilePath, FileType.Other); break; } if (viewMode == Data.OptionValues.FileViewMode.ListView) { if (item.Image != null) { Manager.NativeManager.SameLine(); Manager.NativeManager.SetCursorPosX(item.DrawPosX); float listIconSize = Manager.NativeManager.GetTextLineHeight(); Manager.NativeManager.ImageData(item.Image, listIconSize, listIconSize); } } } UpdateContextMenu(); if (!Manager.NativeManager.IsPopupOpen(ContextMenuPopupId) && !Manager.NativeManager.IsAnyItemActive() && Manager.NativeManager.IsMouseClicked(0, false)) { ResetSelected(); } }