Exemplo n.º 1
0
 /// <summary>
 /// Konstruktor
 /// </summary>
 /// <param name="fileName"></param>
 /// <param name="itemKey"></param>
 /// <param name="packKey"></param>
 /// <param name="sizeType"></param>
 /// <param name="contentType"></param>
 internal DataResourceItem(string fileName, string itemKey, string packKey, ResourceImageSizeType sizeType, ResourceContentType contentType)
 {
     FileName       = fileName;
     ItemKey        = itemKey;
     PackKey        = packKey;
     ContentType    = contentType;
     SizeType       = sizeType;
     _Content       = null;
     _ContentLoaded = false;
 }
Exemplo n.º 2
0
 /// <summary>
 /// Konstruktor
 /// </summary>
 /// <param name="content"></param>
 /// <param name="fileBegin"></param>
 /// <param name="fileLength"></param>
 /// <param name="itemKey"></param>
 /// <param name="packKey"></param>
 /// <param name="sizeType"></param>
 /// <param name="contentType"></param>
 public DataResourceItem(byte[] content, long fileBegin, int fileLength, string itemKey, string packKey, ResourceImageSizeType sizeType, ResourceContentType contentType)
 {
     FileName    = null;
     ItemKey     = itemKey;
     PackKey     = packKey;
     SizeType    = sizeType;
     ContentType = contentType;
     _Content    = new byte[fileLength];
     if (fileLength > 0)
     {
         Array.Copy(content, fileBegin, _Content, 0, fileLength);
     }
     _ContentLoaded = true;
 }
Exemplo n.º 3
0
        /// <summary>
        /// Vrátí obecné jméno zdroje z dodaného plného jména zdroje (oddělí velikost a typ souboru podle suffixu a přípony).
        /// Pro vstupní text např. "Noris/pic/AddressDelete-32x32.png" vrátí "Noris/pic/AddressDelete"
        /// a nastaví <paramref name="sizeType"/> = <see cref="ResourceImageSizeType.Large"/>;
        /// a <paramref name="contentType"/> = <see cref="ResourceContentType.Bitmap"/>.
        /// </summary>
        /// <param name="name"></param>
        /// <param name="sizeType"></param>
        /// <param name="contentType"></param>
        /// <returns></returns>
        public static string GetPackKey(string name, out ResourceImageSizeType sizeType, out ResourceContentType contentType)
        {
            string packKey = GetItemKey(name);

            sizeType    = ResourceImageSizeType.None;
            contentType = ResourceContentType.None;
            if (!String.IsNullOrEmpty(packKey) && !packKey.Contains("«"))
            {
                if (RemoveContentTypeByExtension(ref packKey, out contentType) && ContentTypeSupportSize(contentType))
                {
                    RemoveSizeTypeBySuffix(ref packKey, out sizeType);
                }
            }
            return(packKey);
        }
Exemplo n.º 4
0
        /// <summary>
        /// Z dodaného jména souboru určí suffix, a podle něj detekuje velikost obrázku (dá do out parametru) a detekovaný suffix odřízne (celý).
        /// Vrátí true, pokud nějakou velikost detekoval a odřízl (tedy <paramref name="sizeType"/> je jiný než None).
        /// Vrátí false, když je vstup prázdný, nebo bez suffixu nebo s neznámým suffixem, pak suffix neodřízne.
        /// <para/>
        /// Například pro vstup: "C:/Images/Button-24x24" detekuje <paramref name="sizeType"/> = <see cref="ResourceImageSizeType.Medium"/>,
        /// a v ref parametru <paramref name="name"/> ponechá: "C:/Images/Button".
        /// <para/>
        /// Tato metoda se typicky volá až po metodě <see cref="RemoveContentTypeByExtension(ref string, out ResourceContentType)"/>, protože tam se řeší a odřízne přípona, a následně se zde řeší suffix jména souboru.
        /// </summary>
        /// <param name="name"></param>
        /// <param name="sizeType"></param>
        /// <returns></returns>
        private static bool RemoveSizeTypeBySuffix(ref string name, out ResourceImageSizeType sizeType)
        {
            sizeType = ResourceImageSizeType.None;
            if (String.IsNullOrEmpty(name))
            {
                return(false);
            }
            name = name.TrimEnd();
            int index = name.LastIndexOf("-");

            if (index <= 0)
            {
                return(false);
            }
            string suffix = name.Substring(index).ToLower();

            switch (suffix)
            {
            case "-16x16":
            case "-small":
                sizeType = ResourceImageSizeType.Small;
                break;

            case "-24x24":
                sizeType = ResourceImageSizeType.Medium;
                break;

            case "-32x32":
            case "-large":
                sizeType = ResourceImageSizeType.Large;
                break;
            }
            if (sizeType != ResourceImageSizeType.None)
            {
                name = name.Substring(0, name.Length - suffix.Length);
            }
            return(sizeType != ResourceImageSizeType.None);
        }
Exemplo n.º 5
0
 string ISystemAdapter.GetResourcePackKey(string name, out ResourceImageSizeType sizeType, out ResourceContentType contentType)
 {
     return(DataResources.GetPackKey(name, out sizeType, out contentType));
 }