Example #1
0
        private void RenderFormat(ClipboardType format)
        {
            ClientManager.RequestClipboardContents(format);

            // wait for the data to arrive - this has to be blocking :(
            ClipboardResponse = new TaskCompletionSource <ByteString>();
            var result = ClipboardResponse.Task.Result;

            if (format == ClipboardType.Text)
            {
                var resultString = result.ToStringUtf8().Replace("\n", Environment.NewLine);

                // TODO: do this efficiently
                // substrings by newlines, convert pieces etc
                var resultSize = Encoding.Unicode.GetByteCount(resultString);

                var handle = GlobalAlloc(GMEM_MOVABLE, (UIntPtr)(resultSize + 2));
                if (handle == IntPtr.Zero)
                {
                    throw new Win32Exception();
                }
                var buf = GlobalLock(handle);
                if (buf == IntPtr.Zero)
                {
                    throw new Win32Exception();
                }

                unsafe
                {
                    fixed(char *resultChars = resultString)
                    {
                        int bytesWritten = Encoding.Unicode.GetBytes(resultChars, resultString.Length, (byte *)buf, resultSize);

                        *(char *)(buf + bytesWritten) = '\0'; // terminating NUL
                    }
                }

                GlobalUnlock(handle);

                if (SetClipboardData(CF_UNICODETEXT, handle) == IntPtr.Zero)
                {
                    throw new Win32Exception();
                }

                // Calling this inline would DEADLOCK (!!!) our application
                SyncContext.Post(_ => GrabClipboard(), null);
            }
            else if (format == ClipboardType.Image)
            {
                using (var mstream = new MemoryStream(result.ToByteArray()))
                    using (var bmp = new Bitmap(mstream))
                    {
                        var res = SetClipboardData(CF_BITMAP, bmp.GetHbitmap());
                    }
            }
        }
Example #2
0
 public void RequestClipboardContents(ClipboardType type)
 {
     Send(new GaCmdIn
     {
         Clipboard = new ClipboardMessage
         {
             RequestClipboardContents = type
         }
     });
 }
Example #3
0
 public static Boolean Contains(ClipboardType type)
 {
     return(type switch
     {
         ClipboardType.None => IsEmpty,
         ClipboardType.Raw => ContainsRaw(),
         ClipboardType.Text => ContainsText(),
         ClipboardType.Image => ContainsImage(),
         ClipboardType.Audio => ContainsAudio(),
         ClipboardType.Files => ContainsFiles(),
         _ => throw new NotSupportedException()
     });
Example #4
0
 private void CutFreqs()
 {
     if (SelectedFreqs != null && SelectedFreqs.Count > 0)
     {
         _FreqsClipboard = new List <Freq>();
         foreach (Freq freq in SelectedFreqs)
         {
             _FreqsClipboard.Add(freq);
         }
         _CliboardType = ClipboardType.Cut;
     }
 }
Example #5
0
 private void CopyFreqs()
 {
     if (SelectedFreqs != null && SelectedFreqs.Count > 0)
     {
         _FreqsClipboard = new List <Freq>();
         foreach (Freq freq in SelectedFreqs)
         {
             Freq newFreq = freq.Clone();
             _FreqsClipboard.Add(newFreq);
         }
         _CliboardType = ClipboardType.Copy;
     }
 }
Example #6
0
        public async Task <Bookmark> ReadBookmark(ClipboardType type = ClipboardType.None)
        {
            var result = await Invoke <object>("readBookmark", type == ClipboardType.Selection? "selection" : string.Empty);

            var bm = new Bookmark();

            if (result != null)
            {
                ScriptObjectHelper.DictionaryToScriptableType((System.Collections.Generic.IDictionary <string, object>)result, bm);
            }

            return(bm);
        }
Example #7
0
        private void SendClipboardData(ClipboardType type)
        {
            if (type == ClipboardType.None)
            {
                var types = (IEnumerable <ClipboardType>)MainForm.Invoke(new Func <IEnumerable <ClipboardType> >(MainForm.GetClipboardTypes));

                var message = new GaCmdIn
                {
                    Clipboard = new ClipboardMessage
                    {
                        ContentTypes = new ClipboardTypes
                        {
                        }
                    }
                };

                message.Clipboard.ContentTypes.Types_.AddRange(types);
                Send(message);

                return;
            }
            else if (type == ClipboardType.Text)
            {
                var clipboardText = (string)MainForm.Invoke(new Func <string>(MainForm.GetClipboardText));
                if (clipboardText != null)
                {
                    var message = new GaCmdIn();
                    message.Clipboard = new ClipboardMessage();
                    message.Clipboard.ClipboardContents = ByteString.CopyFromUtf8(clipboardText.Replace(Environment.NewLine, "\n"));
                    Send(message);
                }
            }
            else if (type == ClipboardType.Image)
            {
                var image = (byte[])MainForm.Invoke(new Func <byte[]>(MainForm.GetClipboardImage));
                if (image != null)
                {
                    var message = new GaCmdIn();
                    message.Clipboard = new ClipboardMessage();
                    message.Clipboard.ClipboardContents = ByteString.CopyFrom(image);
                    Send(message);
                }
            }
        }
Example #8
0
            public ClipBoardContent(ClipboardType clipboardType, List <GraphItem> blocks = null, List <GraphLine> lines = null)
            {
                this.clipboardType = clipboardType;
                if (blocks != null || blocks.Count > 0)
                {
                    for (int ix = 0; ix < blocks.Count; ++ix)
                    {
                        this.blocks.Add(blocks[ix]);
                    }
                }

                if (lines != null || lines.Count > 0)
                {
                    for (int ix = 0; ix < lines.Count; ++ix)
                    {
                        this.lines.Add(lines[ix]);
                    }
                }
            }
Example #9
0
        private static Profile GetProfileBy(ClipboardType type, JsonProfile jsonProfile, IWebDav webDav)
        {
            switch (type)
            {
            case ClipboardType.Text:
                return(new TextProfile(jsonProfile.Clipboard));

            case ClipboardType.File:
            {
                if (FileIsImage(jsonProfile.File))
                {
                    return(new ImageProfile(jsonProfile, webDav));
                }
                return(new FileProfile(jsonProfile, webDav));
            }

            case ClipboardType.Image:
                return(new ImageProfile(jsonProfile, webDav));
            }

            return(null);
        }
Example #10
0
        public static async Task <Profile> CreateFromRemote(IWebDav webDav)
        {
            string httpReply = await webDav.GetTextAsync(SyncService.REMOTE_RECORD_FILE, 0, 0).ConfigureAwait(false);

            Log.Write("[PULL] json " + httpReply);

            JsonProfile jsonProfile;

            try
            {
                JavaScriptSerializer serializer = new JavaScriptSerializer();
                jsonProfile = serializer.Deserialize <JsonProfile>(httpReply);
            }
            catch (ArgumentException)
            {
                Log.Write("Existed profile file's format is wrong");
                throw new Exception("failed to connect remote server");
            }

            ClipboardType type = StringToClipBoardType(jsonProfile.Type);

            return(GetProfileBy(type, jsonProfile, webDav));
        }
Example #11
0
        //Show the File Picker Popup
        async Task Popup_Show_FilePicker_Task(string targetPath, int targetIndex, bool storeIndex, FrameworkElement previousFocus)
        {
            try
            {
                //Check if the popup is already open
                if (!vFilePickerOpen)
                {
                    //Play the popup opening sound
                    PlayInterfaceSound(vConfigurationCtrlUI, "PopupOpen", false);

                    //Save the previous focus element
                    FrameworkElementFocusSave(vFilePickerElementFocus, previousFocus);
                }

                //Reset file picker variables
                vFilePickerCompleted = false;
                vFilePickerCancelled = false;
                vFilePickerResult    = null;
                vFilePickerOpen      = true;

                AVActions.ActionDispatcherInvoke(delegate
                {
                    //Disable the file picker list
                    lb_FilePicker.IsEnabled = false;
                    gif_FilePicker_Loading.Show();

                    //Set file picker header texts
                    grid_Popup_FilePicker_txt_Title.Text       = vFilePickerTitle;
                    grid_Popup_FilePicker_txt_Description.Text = vFilePickerDescription;

                    //Change the list picker item style
                    if (vFilePickerShowRoms)
                    {
                        lb_FilePicker.Style        = Application.Current.Resources["ListBoxWrapPanelVertical"] as Style;
                        lb_FilePicker.ItemTemplate = Application.Current.Resources["ListBoxItemRom"] as DataTemplate;
                        grid_Popup_Filepicker_Row1.HorizontalAlignment = HorizontalAlignment.Center;
                    }
                    else
                    {
                        lb_FilePicker.Style        = Application.Current.Resources["ListBoxVertical"] as Style;
                        lb_FilePicker.ItemTemplate = Application.Current.Resources["ListBoxItemFile"] as DataTemplate;
                        grid_Popup_Filepicker_Row1.HorizontalAlignment = HorizontalAlignment.Stretch;
                    }

                    //Update the navigation history index
                    if (storeIndex)
                    {
                        FilePicker_NavigationHistoryAddUpdate(vFilePickerCurrentPath, lb_FilePicker.SelectedIndex);
                    }

                    //Clear the current file picker list
                    List_FilePicker.Clear();
                });

                //Show the popup
                Popup_Show_Element(grid_Popup_FilePicker);

                //Update the current picker path
                vFilePickerSourcePath  = vFilePickerCurrentPath;
                vFilePickerCurrentPath = targetPath;

                //Get and list all the disk drives
                if (targetPath == "PC")
                {
                    AVActions.ActionDispatcherInvoke(delegate
                    {
                        //Enable or disable selection button in the list
                        grid_Popup_FilePicker_button_SelectFolder.Visibility = Visibility.Collapsed;

                        //Enable or disable file and folder availability
                        grid_Popup_FilePicker_textblock_NoFilesAvailable.Visibility = Visibility.Collapsed;

                        //Enable or disable the side navigate buttons
                        grid_Popup_FilePicker_button_ControllerLeft.Visibility  = Visibility.Visible;
                        grid_Popup_FilePicker_button_ControllerUp.Visibility    = Visibility.Collapsed;
                        grid_Popup_FilePicker_button_ControllerStart.Visibility = Visibility.Collapsed;

                        //Enable or disable the copy paste status
                        if (vClipboardFiles.Any())
                        {
                            grid_Popup_FilePicker_textblock_ClipboardStatus.Visibility = Visibility.Visible;
                        }

                        //Enable or disable the current path
                        grid_Popup_FilePicker_textblock_CurrentPath.Visibility = Visibility.Collapsed;
                    });

                    //Load folder images
                    BitmapImage imageFolder          = FileToBitmapImage(new string[] { "Assets/Default/Icons/Folder.png" }, vImageSourceFolders, vImageBackupSource, IntPtr.Zero, -1, 0);
                    BitmapImage imageFolderDisc      = FileToBitmapImage(new string[] { "Assets/Default/Icons/FolderDisc.png" }, vImageSourceFolders, vImageBackupSource, IntPtr.Zero, -1, 0);
                    BitmapImage imageFolderNetwork   = FileToBitmapImage(new string[] { "Assets/Default/Icons/FolderNetwork.png" }, vImageSourceFolders, vImageBackupSource, IntPtr.Zero, -1, 0);
                    BitmapImage imageFolderPrevious  = FileToBitmapImage(new string[] { "Assets/Default/Icons/Restart.png" }, vImageSourceFolders, vImageBackupSource, IntPtr.Zero, -1, 0);
                    BitmapImage imageFolderDocuments = FileToBitmapImage(new string[] { "Assets/Default/Icons/Copy.png" }, vImageSourceFolders, vImageBackupSource, IntPtr.Zero, -1, 0);
                    BitmapImage imageFolderDesktop   = FileToBitmapImage(new string[] { "Assets/Default/Icons/Desktop.png" }, vImageSourceFolders, vImageBackupSource, IntPtr.Zero, -1, 0);
                    BitmapImage imageFolderDownload  = FileToBitmapImage(new string[] { "Assets/Default/Icons/Download.png" }, vImageSourceFolders, vImageBackupSource, IntPtr.Zero, -1, 0);
                    BitmapImage imageFolderPictures  = FileToBitmapImage(new string[] { "Assets/Default/Icons/Background.png" }, vImageSourceFolders, vImageBackupSource, IntPtr.Zero, -1, 0);
                    BitmapImage imageFolderVideos    = FileToBitmapImage(new string[] { "Assets/Default/Icons/BackgroundVideo.png" }, vImageSourceFolders, vImageBackupSource, IntPtr.Zero, -1, 0);
                    BitmapImage imageFolderMusic     = FileToBitmapImage(new string[] { "Assets/Default/Icons/Music.png" }, vImageSourceFolders, vImageBackupSource, IntPtr.Zero, -1, 0);

                    //Add launch without a file option
                    if (vFilePickerShowNoFile)
                    {
                        string       fileDescription         = "Launch application without a file";
                        BitmapImage  fileImage               = FileToBitmapImage(new string[] { "Assets/Default/Icons/AppLaunch.png" }, vImageSourceFolders, vImageBackupSource, IntPtr.Zero, -1, 0);
                        DataBindFile dataBindFileWithoutFile = new DataBindFile()
                        {
                            FileType = FileType.FilePre, Name = fileDescription, Description = fileDescription + ".", ImageBitmap = fileImage, PathFile = string.Empty
                        };
                        await ListBoxAddItem(lb_FilePicker, List_FilePicker, dataBindFileWithoutFile, false, false);
                    }

                    //Check and add the previous path
                    if (!string.IsNullOrWhiteSpace(vFilePickerPreviousPath))
                    {
                        DataBindFile dataBindFilePreviousPath = new DataBindFile()
                        {
                            FileType = FileType.FolderPre, Name = "Previous", NameSub = "(" + vFilePickerPreviousPath + ")", ImageBitmap = imageFolderPrevious, PathFile = vFilePickerPreviousPath
                        };
                        await ListBoxAddItem(lb_FilePicker, List_FilePicker, dataBindFilePreviousPath, false, false);
                    }

                    //Add special folders
                    DataBindFile dataBindFileDesktop = new DataBindFile()
                    {
                        FileType = FileType.FolderPre, Name = "My Desktop", ImageBitmap = imageFolderDesktop, PathFile = Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
                    };
                    await ListBoxAddItem(lb_FilePicker, List_FilePicker, dataBindFileDesktop, false, false);

                    DataBindFile dataBindFileDocuments = new DataBindFile()
                    {
                        FileType = FileType.FolderPre, Name = "My Documents", ImageBitmap = imageFolderDocuments, PathFile = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
                    };
                    await ListBoxAddItem(lb_FilePicker, List_FilePicker, dataBindFileDocuments, false, false);

                    try
                    {
                        string downloadsPath = Registry.GetValue(@"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders", "{374DE290-123F-4565-9164-39C4925E467B}", string.Empty).ToString();
                        if (!string.IsNullOrWhiteSpace(downloadsPath) && Directory.Exists(downloadsPath))
                        {
                            DataBindFile dataBindFileDownloads = new DataBindFile()
                            {
                                FileType = FileType.FolderPre, Name = "My Downloads", ImageBitmap = imageFolderDownload, PathFile = downloadsPath
                            };
                            await ListBoxAddItem(lb_FilePicker, List_FilePicker, dataBindFileDownloads, false, false);
                        }
                    }
                    catch { }

                    DataBindFile dataBindFileMusic = new DataBindFile()
                    {
                        FileType = FileType.FolderPre, Name = "My Music", ImageBitmap = imageFolderMusic, PathFile = Environment.GetFolderPath(Environment.SpecialFolder.MyMusic)
                    };
                    await ListBoxAddItem(lb_FilePicker, List_FilePicker, dataBindFileMusic, false, false);

                    DataBindFile dataBindFilePictures = new DataBindFile()
                    {
                        FileType = FileType.FolderPre, Name = "My Pictures", ImageBitmap = imageFolderPictures, PathFile = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures)
                    };
                    await ListBoxAddItem(lb_FilePicker, List_FilePicker, dataBindFilePictures, false, false);

                    DataBindFile dataBindFileVideos = new DataBindFile()
                    {
                        FileType = FileType.FolderPre, Name = "My Videos", ImageBitmap = imageFolderVideos, PathFile = Environment.GetFolderPath(Environment.SpecialFolder.MyVideos)
                    };
                    await ListBoxAddItem(lb_FilePicker, List_FilePicker, dataBindFileVideos, false, false);

                    //Add all disk drives that are connected
                    DriveInfo[] diskDrives = DriveInfo.GetDrives();
                    foreach (DriveInfo disk in diskDrives)
                    {
                        try
                        {
                            //Skip network drive depending on the setting
                            if (disk.DriveType == DriveType.Network && Convert.ToBoolean(Setting_Load(vConfigurationCtrlUI, "HideNetworkDrives")))
                            {
                                continue;
                            }

                            //Check if the disk is currently connected
                            if (disk.IsReady)
                            {
                                //Get the current disk size
                                string freeSpace = AVFunctions.ConvertBytesSizeToString(disk.TotalFreeSpace);
                                string usedSpace = AVFunctions.ConvertBytesSizeToString(disk.TotalSize);
                                string diskSpace = freeSpace + "/" + usedSpace;

                                DataBindFile dataBindFileDisk = new DataBindFile()
                                {
                                    FileType = FileType.Folder, Name = disk.Name, NameSub = disk.VolumeLabel, NameDetail = diskSpace, PathFile = disk.Name
                                };
                                if (disk.DriveType == DriveType.CDRom)
                                {
                                    dataBindFileDisk.FileType    = FileType.FolderDisc;
                                    dataBindFileDisk.ImageBitmap = imageFolderDisc;
                                }
                                else if (disk.DriveType == DriveType.Network)
                                {
                                    dataBindFileDisk.ImageBitmap = imageFolderNetwork;
                                }
                                else
                                {
                                    dataBindFileDisk.ImageBitmap = imageFolder;
                                }
                                await ListBoxAddItem(lb_FilePicker, List_FilePicker, dataBindFileDisk, false, false);
                            }
                        }
                        catch { }
                    }

                    //Add Json file locations
                    foreach (ProfileShared Locations in vCtrlLocationsFile)
                    {
                        try
                        {
                            if (Directory.Exists(Locations.String2))
                            {
                                //Check if the location is a root folder
                                FileType      locationType = FileType.FolderPre;
                                DirectoryInfo locationInfo = new DirectoryInfo(Locations.String2);
                                if (locationInfo.Parent == null)
                                {
                                    locationType = FileType.Folder;
                                }

                                //Get the current disk size
                                string    diskSpace = string.Empty;
                                DriveType disktype  = DriveType.Unknown;
                                try
                                {
                                    DriveInfo driveInfo = new DriveInfo(Locations.String2);
                                    disktype = driveInfo.DriveType;
                                    string freeSpace = AVFunctions.ConvertBytesSizeToString(driveInfo.TotalFreeSpace);
                                    string usedSpace = AVFunctions.ConvertBytesSizeToString(driveInfo.TotalSize);
                                    diskSpace = freeSpace + "/" + usedSpace;
                                }
                                catch { }

                                DataBindFile dataBindFileLocation = new DataBindFile()
                                {
                                    FileType = locationType, Name = Locations.String2, NameSub = Locations.String1, NameDetail = diskSpace, PathFile = Locations.String2
                                };
                                if (disktype == DriveType.CDRom)
                                {
                                    dataBindFileLocation.FileType    = FileType.FolderDisc;
                                    dataBindFileLocation.ImageBitmap = imageFolderDisc;
                                }
                                else if (disktype == DriveType.Network)
                                {
                                    dataBindFileLocation.ImageBitmap = imageFolderNetwork;
                                }
                                else
                                {
                                    dataBindFileLocation.ImageBitmap = imageFolder;
                                }
                                await ListBoxAddItem(lb_FilePicker, List_FilePicker, dataBindFileLocation, false, false);
                            }
                        }
                        catch { }
                    }
                }
                //Get and list all the UWP applications
                else if (targetPath == "UWP")
                {
                    AVActions.ActionDispatcherInvoke(delegate
                    {
                        //Enable or disable selection button in the list
                        grid_Popup_FilePicker_button_SelectFolder.Visibility = Visibility.Collapsed;

                        //Enable or disable file and folder availability
                        grid_Popup_FilePicker_textblock_NoFilesAvailable.Visibility = Visibility.Collapsed;

                        //Enable or disable the side navigate buttons
                        grid_Popup_FilePicker_button_ControllerLeft.Visibility  = Visibility.Visible;
                        grid_Popup_FilePicker_button_ControllerUp.Visibility    = Visibility.Collapsed;
                        grid_Popup_FilePicker_button_ControllerStart.Visibility = Visibility.Collapsed;

                        //Enable or disable the copy paste status
                        grid_Popup_FilePicker_textblock_ClipboardStatus.Visibility = Visibility.Collapsed;

                        //Enable or disable the current path
                        grid_Popup_FilePicker_textblock_CurrentPath.Visibility = Visibility.Collapsed;
                    });

                    //Add uwp applications to the filepicker list
                    await ListLoadAllUwpApplications(lb_FilePicker, List_FilePicker);
                }
                else
                {
                    //Clean the target path string
                    targetPath = Path.GetFullPath(targetPath);

                    //Add the Go up directory to the list
                    if (Path.GetPathRoot(targetPath) != targetPath)
                    {
                        BitmapImage  imageBack        = FileToBitmapImage(new string[] { "Assets/Default/Icons/Up.png" }, vImageSourceFolders, vImageBackupSource, IntPtr.Zero, -1, 0);
                        DataBindFile dataBindFileGoUp = new DataBindFile()
                        {
                            FileType = FileType.GoUpPre, Name = "Go up", Description = "Go up to the previous folder.", ImageBitmap = imageBack, PathFile = Path.GetDirectoryName(targetPath)
                        };
                        await ListBoxAddItem(lb_FilePicker, List_FilePicker, dataBindFileGoUp, false, false);
                    }
                    else
                    {
                        BitmapImage  imageBack        = FileToBitmapImage(new string[] { "Assets/Default/Icons/Up.png" }, vImageSourceFolders, vImageBackupSource, IntPtr.Zero, -1, 0);
                        DataBindFile dataBindFileGoUp = new DataBindFile()
                        {
                            FileType = FileType.GoUpPre, Name = "Go up", Description = "Go up to the previous folder.", ImageBitmap = imageBack, PathFile = "PC"
                        };
                        await ListBoxAddItem(lb_FilePicker, List_FilePicker, dataBindFileGoUp, false, false);
                    }

                    AVActions.ActionDispatcherInvoke(delegate
                    {
                        //Enable or disable the copy paste status
                        if (vClipboardFiles.Any())
                        {
                            grid_Popup_FilePicker_textblock_ClipboardStatus.Visibility = Visibility.Visible;
                        }

                        //Enable or disable the current path
                        grid_Popup_FilePicker_textblock_CurrentPath.Text       = "Current path: " + targetPath;
                        grid_Popup_FilePicker_textblock_CurrentPath.Visibility = Visibility.Visible;
                    });

                    //Add launch emulator options
                    if (vFilePickerShowRoms)
                    {
                        string       fileDescription        = "Launch the emulator without a rom loaded";
                        BitmapImage  fileImage              = FileToBitmapImage(new string[] { "Assets/Default/Icons/Emulator.png" }, vImageSourceFolders, vImageBackupSource, IntPtr.Zero, -1, 0);
                        DataBindFile dataBindFileWithoutRom = new DataBindFile()
                        {
                            FileType = FileType.FilePre, Name = fileDescription, Description = fileDescription + ".", ImageBitmap = fileImage, PathFile = string.Empty
                        };
                        await ListBoxAddItem(lb_FilePicker, List_FilePicker, dataBindFileWithoutRom, false, false);

                        string       romDescription        = "Launch the emulator with this folder as rom";
                        BitmapImage  romImage              = FileToBitmapImage(new string[] { "Assets/Default/Icons/Emulator.png" }, vImageSourceFolders, vImageBackupSource, IntPtr.Zero, -1, 0);
                        DataBindFile dataBindFileFolderRom = new DataBindFile()
                        {
                            FileType = FileType.FilePre, Name = romDescription, Description = romDescription + ".", ImageBitmap = romImage, PathFile = targetPath
                        };
                        await ListBoxAddItem(lb_FilePicker, List_FilePicker, dataBindFileFolderRom, false, false);
                    }

                    //Enable or disable the side navigate buttons
                    AVActions.ActionDispatcherInvoke(delegate
                    {
                        grid_Popup_FilePicker_button_ControllerLeft.Visibility  = Visibility.Visible;
                        grid_Popup_FilePicker_button_ControllerUp.Visibility    = Visibility.Visible;
                        grid_Popup_FilePicker_button_ControllerStart.Visibility = Visibility.Visible;
                    });

                    //Get all the top files and folders
                    DirectoryInfo   directoryInfo    = new DirectoryInfo(targetPath);
                    DirectoryInfo[] directoryFolders = null;
                    FileInfo[]      directoryFiles   = null;
                    if (vFilePickerSortType == SortingType.Name)
                    {
                        directoryFolders = directoryInfo.GetDirectories("*", SearchOption.TopDirectoryOnly).OrderBy(x => x.Name).ToArray();
                        directoryFiles   = directoryInfo.GetFiles("*", SearchOption.TopDirectoryOnly).OrderBy(x => x.Name).ToArray();
                    }
                    else
                    {
                        directoryFolders = directoryInfo.GetDirectories("*", SearchOption.TopDirectoryOnly).OrderByDescending(x => x.LastWriteTime).ToArray();
                        directoryFiles   = directoryInfo.GetFiles("*", SearchOption.TopDirectoryOnly).OrderByDescending(x => x.LastWriteTime).ToArray();
                    }

                    //Get all rom images and descriptions
                    FileInfo[] directoryRomImages       = new FileInfo[] { };
                    FileInfo[] directoryRomDescriptions = new FileInfo[] { };
                    if (vFilePickerShowRoms)
                    {
                        string[] imageFilter       = { "jpg", "png" };
                        string[] descriptionFilter = { "json" };

                        DirectoryInfo          directoryInfoRomsUser     = new DirectoryInfo("Assets/User/Games");
                        FileInfo[]             directoryPathsRomsUser    = directoryInfoRomsUser.GetFiles("*", SearchOption.AllDirectories);
                        DirectoryInfo          directoryInfoRomsDefault  = new DirectoryInfo("Assets/Default/Games");
                        FileInfo[]             directoryPathsRomsDefault = directoryInfoRomsDefault.GetFiles("*", SearchOption.AllDirectories);
                        IEnumerable <FileInfo> directoryPathsRoms        = directoryPathsRomsUser.Concat(directoryPathsRomsDefault);

                        FileInfo[] romsImages  = directoryPathsRoms.Where(file => imageFilter.Any(filter => file.Name.EndsWith(filter, StringComparison.InvariantCultureIgnoreCase))).ToArray();
                        FileInfo[] filesImages = directoryFiles.Where(file => imageFilter.Any(filter => file.Name.EndsWith(filter, StringComparison.InvariantCultureIgnoreCase))).ToArray();
                        directoryRomImages = filesImages.Concat(romsImages).OrderByDescending(x => x.Name.Length).ToArray();

                        FileInfo[] romsDescriptions  = directoryPathsRoms.Where(file => descriptionFilter.Any(filter => file.Name.EndsWith(filter, StringComparison.InvariantCultureIgnoreCase))).ToArray();
                        FileInfo[] filesDescriptions = directoryFiles.Where(file => descriptionFilter.Any(filter => file.Name.EndsWith(filter, StringComparison.InvariantCultureIgnoreCase))).ToArray();
                        directoryRomDescriptions = filesDescriptions.Concat(romsDescriptions).OrderByDescending(x => x.Name.Length).ToArray();
                    }

                    //Get all the directories from target directory
                    if (vFilePickerShowDirectories)
                    {
                        try
                        {
                            //Fill the file picker listbox with folders
                            foreach (DirectoryInfo listFolder in directoryFolders)
                            {
                                try
                                {
                                    BitmapImage listImage       = null;
                                    string      listDescription = string.Empty;

                                    //Load image files for the list
                                    if (vFilePickerShowRoms)
                                    {
                                        GetRomDetails(listFolder.Name, listFolder.FullName, directoryRomImages, directoryRomDescriptions, ref listImage, ref listDescription);
                                    }
                                    else
                                    {
                                        listImage = FileToBitmapImage(new string[] { "Assets/Default/Icons/Folder.png" }, vImageSourceFolders, vImageBackupSource, IntPtr.Zero, -1, 0);
                                    }

                                    //Get the folder size
                                    //string folderSize = AVFunctions.ConvertBytesSizeToString(GetDirectorySize(listDirectory));

                                    //Get the folder date
                                    string folderDate = listFolder.LastWriteTime.ToShortDateString().Replace("-", "/");

                                    //Set the detailed text
                                    string folderDetailed = folderDate;

                                    //Check the copy cut type
                                    ClipboardType clipboardType = ClipboardType.None;
                                    DataBindFile  clipboardFile = vClipboardFiles.Where(x => x.PathFile == listFolder.FullName).FirstOrDefault();
                                    if (clipboardFile != null)
                                    {
                                        clipboardType = clipboardFile.ClipboardType;
                                    }

                                    //Add folder to the list
                                    bool systemFileFolder = listFolder.Attributes.HasFlag(FileAttributes.System);
                                    bool hiddenFileFolder = listFolder.Attributes.HasFlag(FileAttributes.Hidden);
                                    if (!systemFileFolder && (!hiddenFileFolder || Convert.ToBoolean(Setting_Load(vConfigurationCtrlUI, "ShowHiddenFilesFolders"))))
                                    {
                                        DataBindFile dataBindFileFolder = new DataBindFile()
                                        {
                                            FileType = FileType.Folder, ClipboardType = clipboardType, Name = listFolder.Name, NameDetail = folderDetailed, Description = listDescription, DateModified = listFolder.LastWriteTime, ImageBitmap = listImage, PathFile = listFolder.FullName
                                        };
                                        await ListBoxAddItem(lb_FilePicker, List_FilePicker, dataBindFileFolder, false, false);
                                    }
                                }
                                catch { }
                            }
                        }
                        catch { }
                    }

                    //Get all the files from target directory
                    if (vFilePickerShowFiles)
                    {
                        try
                        {
                            //Enable or disable selection button in the list
                            AVActions.ActionDispatcherInvoke(delegate
                            {
                                grid_Popup_FilePicker_button_SelectFolder.Visibility = Visibility.Collapsed;
                            });

                            //Filter files in and out
                            if (vFilePickerFilterIn.Any())
                            {
                                directoryFiles = directoryFiles.Where(file => vFilePickerFilterIn.Any(filter => file.Name.EndsWith(filter, StringComparison.InvariantCultureIgnoreCase))).ToArray();
                            }
                            if (vFilePickerFilterOut.Any())
                            {
                                directoryFiles = directoryFiles.Where(file => !vFilePickerFilterOut.Any(filter => file.Name.EndsWith(filter, StringComparison.InvariantCultureIgnoreCase))).ToArray();
                            }

                            //Fill the file picker listbox with files
                            foreach (FileInfo listFile in directoryFiles)
                            {
                                try
                                {
                                    BitmapImage listImage       = null;
                                    string      listDescription = string.Empty;

                                    //Load image files for the list
                                    if (vFilePickerShowRoms)
                                    {
                                        GetRomDetails(listFile.Name, string.Empty, directoryRomImages, directoryRomDescriptions, ref listImage, ref listDescription);
                                    }
                                    else
                                    {
                                        string listFileFullNameLower  = listFile.FullName.ToLower();
                                        string listFileExtensionLower = listFile.Extension.ToLower().Replace(".", string.Empty);
                                        if (listFileFullNameLower.EndsWith(".jpg") || listFileFullNameLower.EndsWith(".png") || listFileFullNameLower.EndsWith(".gif"))
                                        {
                                            listImage = FileToBitmapImage(new string[] { listFile.FullName }, vImageSourceFolders, vImageBackupSource, IntPtr.Zero, 50, 0);
                                        }
                                        else
                                        {
                                            listImage = FileToBitmapImage(new string[] { "Assets/Default/Extensions/" + listFileExtensionLower + ".png", "Assets/Default/Icons/File.png" }, vImageSourceFolders, vImageBackupSource, IntPtr.Zero, 50, 0);
                                        }
                                    }

                                    //Get the file size
                                    string fileSize = AVFunctions.ConvertBytesSizeToString(listFile.Length);

                                    //Get the file date
                                    string fileDate = listFile.LastWriteTime.ToShortDateString().Replace("-", "/");

                                    //Set the detailed text
                                    string fileDetailed = fileSize + " (" + fileDate + ")";

                                    //Check the copy cut type
                                    ClipboardType clipboardType = ClipboardType.None;
                                    DataBindFile  clipboardFile = vClipboardFiles.Where(x => x.PathFile == listFile.FullName).FirstOrDefault();
                                    if (clipboardFile != null)
                                    {
                                        clipboardType = clipboardFile.ClipboardType;
                                    }

                                    //Add file to the list
                                    bool systemFileFolder = listFile.Attributes.HasFlag(FileAttributes.System);
                                    bool hiddenFileFolder = listFile.Attributes.HasFlag(FileAttributes.Hidden);
                                    if (!systemFileFolder && (!hiddenFileFolder || Convert.ToBoolean(Setting_Load(vConfigurationCtrlUI, "ShowHiddenFilesFolders"))))
                                    {
                                        FileType fileType      = FileType.File;
                                        string   fileExtension = Path.GetExtension(listFile.Name);
                                        if (fileExtension == ".url" || fileExtension == ".lnk")
                                        {
                                            fileType = FileType.Link;
                                        }
                                        DataBindFile dataBindFileFile = new DataBindFile()
                                        {
                                            FileType = fileType, ClipboardType = clipboardType, Name = listFile.Name, NameDetail = fileDetailed, Description = listDescription, DateModified = listFile.LastWriteTime, ImageBitmap = listImage, PathFile = listFile.FullName
                                        };
                                        await ListBoxAddItem(lb_FilePicker, List_FilePicker, dataBindFileFile, false, false);
                                    }
                                }
                                catch { }
                            }
                        }
                        catch { }
                    }
                    else
                    {
                        //Enable or disable selection button in the list
                        AVActions.ActionDispatcherInvoke(delegate
                        {
                            grid_Popup_FilePicker_button_SelectFolder.Visibility = Visibility.Visible;
                        });
                    }

                    //Check if there are files or folders
                    FilePicker_CheckFilesAndFoldersCount();
                }

                //Enable the file picker list
                AVActions.ActionDispatcherInvoke(delegate
                {
                    lb_FilePicker.IsEnabled = true;
                    gif_FilePicker_Loading.Hide();
                });

                //Get navigation history index
                if (targetIndex == -1)
                {
                    targetIndex = FilePicker_NavigationHistoryGetIndex(targetPath);
                }

                //Check the navigation index
                if (targetIndex == -1 && !string.IsNullOrWhiteSpace(vFilePickerSourcePath))
                {
                    DataBindFile sourceFileItem = List_FilePicker.Where(x => x.PathFile == vFilePickerSourcePath).FirstOrDefault();
                    if (sourceFileItem != null)
                    {
                        Debug.WriteLine("Source file path found: " + vFilePickerSourcePath);

                        //Focus on the file picker listbox item
                        await ListBoxFocusItem(lb_FilePicker, sourceFileItem, vProcessCurrent.MainWindowHandle);

                        return;
                    }
                }

                //Focus on the file picker listbox index
                await ListboxFocusIndex(lb_FilePicker, false, false, targetIndex, vProcessCurrent.MainWindowHandle);
            }
            catch (Exception ex)
            {
                Debug.WriteLine("Failed loading filepicker: " + ex.Message);
                await FilePicker_Failed();
            }
        }
Example #12
0
 public async Task <string> ReadHTML(ClipboardType type = ClipboardType.None)
 {
     return(await Invoke <string>("readHTML", type == ClipboardType.Selection? "selection" : string.Empty));
 }
Example #13
0
 public async Task <object> WriteText(string text, ClipboardType type = ClipboardType.None)
 {
     return(await Invoke <object>("writeText", text, type == ClipboardType.Selection? "selection" : string.Empty));
 }
Example #14
0
 public async Task <object> Write(ClipboardData data, ClipboardType type = ClipboardType.None)
 {
     return(await Invoke <object>("write", data, type == ClipboardType.Selection? "selection" : string.Empty));
 }
Example #15
0
 public async Task <string> Read(string format, ClipboardType type = ClipboardType.None)
 {
     return(await Invoke <string>("read", format, type == ClipboardType.Selection? "selection" : string.Empty));
 }
Example #16
0
 public async Task <bool> Has(string format, ClipboardType type = ClipboardType.None)
 {
     return(await Invoke <bool>("has", format, type == ClipboardType.Selection? "selection" : string.Empty));
 }
Example #17
0
 public async Task <object> Clear(ClipboardType type = ClipboardType.None)
 {
     return(await Invoke <object>("clear", type == ClipboardType.Selection? "selection" : string.Empty));
 }
Example #18
0
 public async Task <object> WriteBookmark(string title, string url, ClipboardType type = ClipboardType.None)
 {
     return(await Invoke <object>("writeBookmark", title, url, type == ClipboardType.Selection? "selection" : string.Empty));
 }
Example #19
0
 public async Task <NativeImage> ReadImage(ClipboardType type = ClipboardType.None)
 {
     return(await Invoke <NativeImage>("readImage", type == ClipboardType.Selection? "selection" : string.Empty));
 }
Example #20
0
        //Get and list all files and folders
        async Task PickerLoadFilesFolders(string targetPath, int targetIndex)
        {
            try
            {
                //Clean the target path string
                targetPath = Path.GetFullPath(targetPath);

                //Add the Go up directory to the list
                if (Path.GetPathRoot(targetPath) != targetPath)
                {
                    BitmapImage  imageBack        = FileToBitmapImage(new string[] { "Assets/Default/Icons/Up.png" }, vImageSourceFolders, vImageBackupSource, IntPtr.Zero, -1, 0);
                    DataBindFile dataBindFileGoUp = new DataBindFile()
                    {
                        FileType = FileType.GoUpPre, Name = "Go up", Description = "Go up to the previous folder.", ImageBitmap = imageBack, PathFile = Path.GetDirectoryName(targetPath)
                    };
                    await ListBoxAddItem(lb_FilePicker, List_FilePicker, dataBindFileGoUp, false, false);
                }
                else
                {
                    BitmapImage  imageBack        = FileToBitmapImage(new string[] { "Assets/Default/Icons/Up.png" }, vImageSourceFolders, vImageBackupSource, IntPtr.Zero, -1, 0);
                    DataBindFile dataBindFileGoUp = new DataBindFile()
                    {
                        FileType = FileType.GoUpPre, Name = "Go up", Description = "Go up to the previous folder.", ImageBitmap = imageBack, PathFile = "PC"
                    };
                    await ListBoxAddItem(lb_FilePicker, List_FilePicker, dataBindFileGoUp, false, false);
                }

                AVActions.ActionDispatcherInvoke(delegate
                {
                    //Enable or disable the copy paste status
                    if (vClipboardFiles.Any())
                    {
                        grid_Popup_FilePicker_textblock_ClipboardStatus.Visibility = Visibility.Visible;
                    }

                    //Enable or disable the current path
                    grid_Popup_FilePicker_textblock_CurrentPath.Text       = "Current path: " + targetPath;
                    grid_Popup_FilePicker_textblock_CurrentPath.Visibility = Visibility.Visible;
                });

                //Add launch emulator options
                if (vFilePickerShowRoms)
                {
                    string       fileDescription        = "Launch the emulator without a rom loaded";
                    BitmapImage  fileImage              = FileToBitmapImage(new string[] { "Assets/Default/Icons/Emulator.png" }, vImageSourceFolders, vImageBackupSource, IntPtr.Zero, -1, 0);
                    DataBindFile dataBindFileWithoutRom = new DataBindFile()
                    {
                        FileType = FileType.FilePre, Name = fileDescription, Description = fileDescription + ".", ImageBitmap = fileImage, PathFile = string.Empty
                    };
                    await ListBoxAddItem(lb_FilePicker, List_FilePicker, dataBindFileWithoutRom, false, false);

                    string       romDescription        = "Launch the emulator with this folder as rom";
                    BitmapImage  romImage              = FileToBitmapImage(new string[] { "Assets/Default/Icons/Emulator.png" }, vImageSourceFolders, vImageBackupSource, IntPtr.Zero, -1, 0);
                    DataBindFile dataBindFileFolderRom = new DataBindFile()
                    {
                        FileType = FileType.FilePre, Name = romDescription, Description = romDescription + ".", ImageBitmap = romImage, PathFile = targetPath
                    };
                    await ListBoxAddItem(lb_FilePicker, List_FilePicker, dataBindFileFolderRom, false, false);
                }

                //Enable or disable the side navigate buttons
                AVActions.ActionDispatcherInvoke(delegate
                {
                    grid_Popup_FilePicker_button_ControllerLeft.Visibility  = Visibility.Visible;
                    grid_Popup_FilePicker_button_ControllerUp.Visibility    = Visibility.Visible;
                    grid_Popup_FilePicker_button_ControllerStart.Visibility = Visibility.Visible;
                });

                //Get all the top files and folders
                DirectoryInfo   directoryInfo    = new DirectoryInfo(targetPath);
                DirectoryInfo[] directoryFolders = null;
                FileInfo[]      directoryFiles   = null;
                if (vFilePickerSortType == SortingType.Name)
                {
                    directoryFolders = directoryInfo.GetDirectories("*", SearchOption.TopDirectoryOnly).OrderBy(x => x.Name).ToArray();
                    directoryFiles   = directoryInfo.GetFiles("*", SearchOption.TopDirectoryOnly).OrderBy(x => x.Name).ToArray();
                }
                else
                {
                    directoryFolders = directoryInfo.GetDirectories("*", SearchOption.TopDirectoryOnly).OrderByDescending(x => x.LastWriteTime).ToArray();
                    directoryFiles   = directoryInfo.GetFiles("*", SearchOption.TopDirectoryOnly).OrderByDescending(x => x.LastWriteTime).ToArray();
                }

                //Get all rom images and descriptions
                FileInfo[] directoryRomImages       = new FileInfo[] { };
                FileInfo[] directoryRomDescriptions = new FileInfo[] { };
                if (vFilePickerShowRoms)
                {
                    string[] imageFilter       = { "jpg", "png" };
                    string[] descriptionFilter = { "json" };

                    DirectoryInfo          directoryInfoRomsUser     = new DirectoryInfo("Assets/User/Games");
                    FileInfo[]             directoryPathsRomsUser    = directoryInfoRomsUser.GetFiles("*", SearchOption.AllDirectories);
                    DirectoryInfo          directoryInfoRomsDefault  = new DirectoryInfo("Assets/Default/Games");
                    FileInfo[]             directoryPathsRomsDefault = directoryInfoRomsDefault.GetFiles("*", SearchOption.AllDirectories);
                    IEnumerable <FileInfo> directoryPathsRoms        = directoryPathsRomsUser.Concat(directoryPathsRomsDefault);

                    FileInfo[] romsImages  = directoryPathsRoms.Where(file => imageFilter.Any(filter => file.Name.EndsWith(filter, StringComparison.InvariantCultureIgnoreCase))).ToArray();
                    FileInfo[] filesImages = directoryFiles.Where(file => imageFilter.Any(filter => file.Name.EndsWith(filter, StringComparison.InvariantCultureIgnoreCase))).ToArray();
                    directoryRomImages = filesImages.Concat(romsImages).OrderByDescending(x => x.Name.Length).ToArray();

                    FileInfo[] romsDescriptions  = directoryPathsRoms.Where(file => descriptionFilter.Any(filter => file.Name.EndsWith(filter, StringComparison.InvariantCultureIgnoreCase))).ToArray();
                    FileInfo[] filesDescriptions = directoryFiles.Where(file => descriptionFilter.Any(filter => file.Name.EndsWith(filter, StringComparison.InvariantCultureIgnoreCase))).ToArray();
                    directoryRomDescriptions = filesDescriptions.Concat(romsDescriptions).OrderByDescending(x => x.Name.Length).ToArray();
                }

                //Get all the directories from target directory
                if (vFilePickerShowDirectories)
                {
                    try
                    {
                        //Fill the file picker listbox with folders
                        foreach (DirectoryInfo listFolder in directoryFolders)
                        {
                            try
                            {
                                //Cancel loading
                                if (vFilePickerLoadCancel)
                                {
                                    Debug.WriteLine("File picker folder load cancelled.");
                                    vFilePickerLoadCancel = false;
                                    vFilePickerLoadBusy   = false;
                                    return;
                                }

                                BitmapImage listImage       = null;
                                string      listDescription = string.Empty;

                                //Load image files for the list
                                if (vFilePickerShowRoms)
                                {
                                    GetRomDetails(listFolder.Name, listFolder.FullName, directoryRomImages, directoryRomDescriptions, ref listImage, ref listDescription);
                                }
                                else
                                {
                                    listImage = FileToBitmapImage(new string[] { "Assets/Default/Icons/Folder.png" }, vImageSourceFolders, vImageBackupSource, IntPtr.Zero, -1, 0);
                                }

                                //Get the folder size
                                //string folderSize = AVFunctions.ConvertBytesSizeToString(GetDirectorySize(listDirectory));

                                //Get the folder date
                                string folderDate = listFolder.LastWriteTime.ToShortDateString().Replace("-", "/");

                                //Set the detailed text
                                string folderDetailed = folderDate;

                                //Check the copy cut type
                                ClipboardType clipboardType = ClipboardType.None;
                                DataBindFile  clipboardFile = vClipboardFiles.Where(x => x.PathFile == listFolder.FullName).FirstOrDefault();
                                if (clipboardFile != null)
                                {
                                    clipboardType = clipboardFile.ClipboardType;
                                }

                                //Add folder to the list
                                bool systemFileFolder = listFolder.Attributes.HasFlag(FileAttributes.System);
                                bool hiddenFileFolder = listFolder.Attributes.HasFlag(FileAttributes.Hidden);
                                if (!systemFileFolder && (!hiddenFileFolder || Convert.ToBoolean(Setting_Load(vConfigurationCtrlUI, "ShowHiddenFilesFolders"))))
                                {
                                    DataBindFile dataBindFileFolder = new DataBindFile()
                                    {
                                        FileType = FileType.Folder, ClipboardType = clipboardType, Name = listFolder.Name, NameDetail = folderDetailed, Description = listDescription, DateModified = listFolder.LastWriteTime, ImageBitmap = listImage, PathFile = listFolder.FullName
                                    };
                                    await ListBoxAddItem(lb_FilePicker, List_FilePicker, dataBindFileFolder, false, false);
                                }
                            }
                            catch { }
                        }
                    }
                    catch { }
                }

                //Get all the files from target directory
                if (vFilePickerShowFiles)
                {
                    try
                    {
                        //Enable or disable selection button in the list
                        AVActions.ActionDispatcherInvoke(delegate
                        {
                            grid_Popup_FilePicker_button_SelectFolder.Visibility = Visibility.Collapsed;
                        });

                        //Filter files in and out
                        if (vFilePickerFilterIn.Any())
                        {
                            directoryFiles = directoryFiles.Where(file => vFilePickerFilterIn.Any(filter => file.Name.EndsWith(filter, StringComparison.InvariantCultureIgnoreCase))).ToArray();
                        }
                        if (vFilePickerFilterOut.Any())
                        {
                            directoryFiles = directoryFiles.Where(file => !vFilePickerFilterOut.Any(filter => file.Name.EndsWith(filter, StringComparison.InvariantCultureIgnoreCase))).ToArray();
                        }

                        //Fill the file picker listbox with files
                        foreach (FileInfo listFile in directoryFiles)
                        {
                            try
                            {
                                //Cancel loading
                                if (vFilePickerLoadCancel)
                                {
                                    Debug.WriteLine("File picker file load cancelled.");
                                    vFilePickerLoadCancel = false;
                                    vFilePickerLoadBusy   = false;
                                    return;
                                }

                                BitmapImage listImage       = null;
                                string      listDescription = string.Empty;

                                //Load image files for the list
                                if (vFilePickerShowRoms)
                                {
                                    GetRomDetails(listFile.Name, string.Empty, directoryRomImages, directoryRomDescriptions, ref listImage, ref listDescription);
                                }
                                else
                                {
                                    string listFileFullNameLower  = listFile.FullName.ToLower();
                                    string listFileExtensionLower = listFile.Extension.ToLower().Replace(".", string.Empty);
                                    if (listFileFullNameLower.EndsWith(".jpg") || listFileFullNameLower.EndsWith(".png") || listFileFullNameLower.EndsWith(".gif"))
                                    {
                                        listImage = FileToBitmapImage(new string[] { listFile.FullName }, vImageSourceFolders, vImageBackupSource, IntPtr.Zero, 50, 0);
                                    }
                                    else
                                    {
                                        listImage = FileToBitmapImage(new string[] { "Assets/Default/Extensions/" + listFileExtensionLower + ".png", "Assets/Default/Icons/File.png" }, vImageSourceFolders, vImageBackupSource, IntPtr.Zero, 50, 0);
                                    }
                                }

                                //Get the file size
                                string fileSize = AVFunctions.ConvertBytesSizeToString(listFile.Length);

                                //Get the file date
                                string fileDate = listFile.LastWriteTime.ToShortDateString().Replace("-", "/");

                                //Set the detailed text
                                string fileDetailed = fileSize + " (" + fileDate + ")";

                                //Check the copy cut type
                                ClipboardType clipboardType = ClipboardType.None;
                                DataBindFile  clipboardFile = vClipboardFiles.Where(x => x.PathFile == listFile.FullName).FirstOrDefault();
                                if (clipboardFile != null)
                                {
                                    clipboardType = clipboardFile.ClipboardType;
                                }

                                //Add file to the list
                                bool systemFileFolder = listFile.Attributes.HasFlag(FileAttributes.System);
                                bool hiddenFileFolder = listFile.Attributes.HasFlag(FileAttributes.Hidden);
                                if (!systemFileFolder && (!hiddenFileFolder || Convert.ToBoolean(Setting_Load(vConfigurationCtrlUI, "ShowHiddenFilesFolders"))))
                                {
                                    FileType fileType      = FileType.File;
                                    string   fileExtension = Path.GetExtension(listFile.Name);
                                    if (fileExtension == ".url" || fileExtension == ".lnk")
                                    {
                                        fileType = FileType.Link;
                                    }
                                    DataBindFile dataBindFileFile = new DataBindFile()
                                    {
                                        FileType = fileType, ClipboardType = clipboardType, Name = listFile.Name, NameDetail = fileDetailed, Description = listDescription, DateModified = listFile.LastWriteTime, ImageBitmap = listImage, PathFile = listFile.FullName
                                    };
                                    await ListBoxAddItem(lb_FilePicker, List_FilePicker, dataBindFileFile, false, false);
                                }
                            }
                            catch { }
                        }
                    }
                    catch { }
                }
                else
                {
                    //Enable or disable selection button in the list
                    AVActions.ActionDispatcherInvoke(delegate
                    {
                        grid_Popup_FilePicker_button_SelectFolder.Visibility = Visibility.Visible;
                    });
                }

                //Check if there are files or folders
                FilePicker_CheckFilesAndFoldersCount();
            }
            catch { }
        }
Example #21
0
 public async Task <object> WriteRTF(string markup, ClipboardType type = ClipboardType.None)
 {
     return(await Invoke <object>("writeRTF", markup, type == ClipboardType.Selection? "selection" : string.Empty));
 }
Example #22
0
 public async Task <Bookmark> ReadBookmark(ClipboardType type = ClipboardType.None)
 {
     return(await Invoke <Bookmark>("readBookmark", type == ClipboardType.Selection? "selection" : string.Empty));
 }
Example #23
0
 public ClipboardProceduralObjects(ClipboardType type)
 {
     this.type = type;
 }
Example #24
0
        public async Task <string[]> AvailableFormats(ClipboardType type = ClipboardType.None)
        {
            var result = await Invoke <object[]>("availableFormats", type == ClipboardType.Selection? "selection" : string.Empty);

            return(result == null ? new string[] { } : Array.ConvertAll(result, item => item.ToString()));
        }
Example #25
0
 public async Task <object> WriteImage(NativeImage image, ClipboardType type = ClipboardType.None)
 {
     return(await Invoke <object>("writeImage", image, type == ClipboardType.Selection? "selection" : string.Empty));
 }
Example #26
0
 static private string ClipBoardTypeToString(ClipboardType type)
 {
     return(Enum.GetName(typeof(ClipboardType), type));
 }