Beispiel #1
0
        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();
        }
Beispiel #2
0
        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);
            }
        }
Beispiel #3
0
        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);
            }
        }
Beispiel #4
0
        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();
        }
Beispiel #5
0
        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;
            }
        }
Beispiel #6
0
        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);
            }
        }
Beispiel #7
0
        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();
        }
Beispiel #8
0
        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);
            }
        }
Beispiel #9
0
        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();
            }
        }