private void Awake()
 {
     if (instance == null)
     {
         instance = this;
     }
     else if (instance != this)
     {
         Destroy(gameObject);
     }
     DontDestroyOnLoad(this.gameObject);
 }
Exemple #2
0
        private void ClipboardChanged(object sender, EventArgs e)
        {
            if (OffClipboard == true)
            {
                return;
            }

            if (listBox.Items.Count == Properties.Settings.Default.MaxElement && Properties.Settings.Default.MaxElement != 0)
            {
                listBox.Items.RemoveAt(listBox.Items.Count - 1);
                System.GC.Collect();
            }
            if (listBox.Items.Count > Properties.Settings.Default.MaxElement && Properties.Settings.Default.MaxElement != 0)
            {
                for (int i = Properties.Settings.Default.MaxElement; i < listBox.Items.Count; i++)
                {
                    listBox.Items.RemoveAt(i);
                    System.GC.Collect();
                }
            }
            try
            {
                if (Clipboard.ContainsImage())
                {
                    //TODO NAJPIERW SRAWDZ POŹNNNIEJ STWURZ A I ZOBACZ DO TEJ KONTROLKI BO MASZ TAM ASCYN: OffClipboard
                    //TODO for -> foreach
                    //NIEKTURE ELEMĘTY MAJĄ WSOBIE Clipboard.GetText(TextDataFormat.Text) POBIRZ TO NA POCZĄTKU PUŹNIEJ PODAJ TEKST JAKO PARAMETR
                    //var clip = Clipboard.GetImage();
                    var y = Clipboard.GetText(TextDataFormat.Html);
                    for (int i = 0; i < listBox.Items.Count; i++)
                    {
                        if (listBox.Items[i].GetType() == typeof(imageControl))
                        {
                            if ((listBox.Items[i] as imageControl).paseToClipboardURL == Regex.Match(y, "<img.+?src=[\"'](.+?)[\"'].+?>", RegexOptions.IgnoreCase).Groups[1].Value)
                            {
                                return;
                            }
                        }
                    }
                    imageControl imageControl = new imageControl(Clipboard.GetImage(), y);

                    listBox.Items.Insert(0, imageControl);
                    return;
                }
                if (Clipboard.ContainsText(TextDataFormat.Rtf))
                {
                    var x = Clipboard.GetText(TextDataFormat.Rtf);
                    for (int i = 0; i < listBox.Items.Count; i++)
                    {
                        if (listBox.Items[i].GetType() == typeof(textControl))
                        {
                            if ((listBox.Items[i] as textControl).paseToClipboard == x)
                            {
                                return;
                            }
                        }
                    }
                    textControl text = new textControl(x, TextDataFormat.Rtf);
                    //if (listBox.Items.Cast<textControl>().Any(x => x.paseToClipboard == text.paseToClipboard))
                    //return;

                    listBox.Items.Insert(0, text);
                    return;
                }
                if (Clipboard.ContainsText(TextDataFormat.Html))
                {
                    var x = Clipboard.GetText(TextDataFormat.Html);
                    //MessageBox.Show(x);
                    for (int i = 0; i < listBox.Items.Count; i++)
                    {
                        if (listBox.Items[i].GetType() == typeof(textControl))
                        {
                            if ((listBox.Items[i] as textControl).paseToClipboard == x)
                            {
                                return;
                            }
                        }
                    }
                    textControl text = new textControl(x, TextDataFormat.Html);

                    listBox.Items.Insert(0, text);

                    return;
                }

                if (Clipboard.ContainsText(TextDataFormat.Text))
                {
                    var x = Clipboard.GetText(TextDataFormat.Text); //TODO NAPRAW
                    for (int i = 0; i < listBox.Items.Count; i++)
                    {
                        if (listBox.Items[i].GetType() == typeof(textControl))
                        {
                            if ((listBox.Items[i] as textControl).paseToClipboard.Replace("\r\n", string.Empty) == x.Replace("\r\n", string.Empty))
                            {
                                return;
                            }
                        }
                    }
                    textControl text = new textControl(x, TextDataFormat.Text);
                    listBox.Items.Insert(0, text);
                    return;
                }

                if (Clipboard.ContainsFileDropList())
                {
                    var data = Clipboard.GetFileDropList();
                    if (data.Count == 1)
                    {
                        string[] imageExtension = { ".jpg", ".png", ".jpeg", ".bmp" };
                        string[] musicExtension = { ".mp3", ".wav", ".m4a", ".ogg", ".flac" };
                        var      Extension      = System.IO.Path.GetExtension(data[0]);
                        foreach (string x in imageExtension)
                        {
                            if (Extension.ToLower().Contains(x))
                            {
                                for (int i = 0; i < listBox.Items.Count; i++)
                                {
                                    if (listBox.Items[i].GetType() == typeof(imageControl))
                                    {
                                        if ((listBox.Items[i] as imageControl).paseToClipboardFilePath == data[0])
                                        {
                                            return;
                                        }
                                    }
                                }
                                imageControl imageControl = new imageControl(data[0]);
                                listBox.Items.Insert(0, imageControl);
                                return;
                            }
                        }
                        foreach (string x in musicExtension)
                        {
                            if (Extension.ToLower().Contains(x))
                            {
                                for (int i = 0; i < listBox.Items.Count; i++)
                                {
                                    if (listBox.Items[i].GetType() == typeof(musicControl))
                                    {
                                        if ((listBox.Items[i] as musicControl).paseToClipboardFilePath == data[0])
                                        {
                                            return;
                                        }
                                    }
                                }
                                musicControl musicControl = new musicControl(data[0]);
                                listBox.Items.Insert(0, musicControl);
                                return;
                            }
                        }
                        if (Extension != "")
                        {
                            for (int i = 0; i < listBox.Items.Count; i++)
                            {
                                if (listBox.Items[i].GetType() == typeof(fileControl))
                                {
                                    if ((listBox.Items[i] as fileControl).paseToClipboardFilePath == data[0])
                                    {
                                        return;
                                    }
                                }
                            }
                            fileControl fileControl = new fileControl(data[0]);
                            listBox.Items.Insert(0, fileControl);
                        }
                        else
                        {
                            if (Properties.Settings.Default.FileDropList == false)
                            {
                                return;
                            }
                            for (int i = 0; i < listBox.Items.Count; i++)
                            {
                                if (listBox.Items[i].GetType() == typeof(fileListControl))
                                {
                                    if ((listBox.Items[i] as fileListControl).allFile.Contains(data[0]))
                                    {
                                        return;
                                    }
                                }
                            }
                            fileListControl fileList = new fileListControl(data);
                            listBox.Items.Insert(0, fileList);
                        }
                    }
                    else
                    {
                        if (Properties.Settings.Default.FileDropList == false)
                        {
                            return;
                        }
                        for (int i = 0; i < listBox.Items.Count; i++)
                        {
                            if (listBox.Items[i].GetType() == typeof(fileListControl))
                            {
                                if ((listBox.Items[i] as fileListControl).allFile.Contains(data[0]))
                                {
                                    return;
                                }
                            }
                        }
                        fileListControl fileList = new fileListControl(data);
                        listBox.Items.Insert(0, fileList);
                    }
                }
            }
            catch
            {
                MessageBox.Show("Błąd podczas pobierania wartości");
            }
        }