Exemplo n.º 1
0
        public frmRefine()
        {
            InitializeComponent();

            _type = WidgetType.TextField;

            _fileToLoad += _type.ToString() + ".json";
            _fileToSave += _type.ToString() + ".json";

            if (File.Exists(_fileToLoad))
            {
                string file = File.ReadAllText(_fileToLoad);
                _images = JsonConvert.DeserializeObject<List<ImageTestData>>(file);
            }
        }
        /// <summary>
        /// Builds and returns a value.
        /// </summary>
        /// <param name="botId">Id of the bot</param>
        /// <returns>Widget url</returns>
        public string Build(ulong botId)
        {
            string query = $"https://discordbots.org/api/widget/{ Type.ToString().ToLower() }/{ botId }.svg";

            List <string> args = new List <string>();

            if (AvatarBackgroundColor != null)
            {
                args.Add($"avatarbg={AvatarBackgroundColor.Value.ToString("X")}");
            }

            if (LeftColor != null)
            {
                args.Add($"leftcolor={LeftColor.Value.ToString("X")}");
            }

            if (RightColor != null)
            {
                args.Add($"rightcolor={RightColor.Value.ToString("X")}");
            }

            if (LeftTextColor != null)
            {
                args.Add($"lefttextcolor={LeftTextColor.Value.ToString("X")}");
            }

            if (RightTextColor != null)
            {
                args.Add($"righttextcolor={RightTextColor.Value.ToString("X")}");
            }

            return(Utils.CreateQuery(query, args.ToArray()));
        }
Exemplo n.º 3
0
        public JSONClass ToJson(string rootPath)//json文件的asset路径的文件夹/
        {
            JSONClass json = new JSONClass();

            json[KeyWord.type] = type.ToString();
            json[KeyWord.name] = string.IsNullOrEmpty(name)?type.ToString():name;
            if (spriteDic != null)
            {
                var imagedic = json[KeyWord.image] = new JSONClass();
                foreach (var item in spriteDic)
                {
                    if (item.Value != null)
                    {
                        imagedic[item.Key] = GetSpritePath(rootPath, item.Value);
                    }
                }
            }
            return(json);
        }
Exemplo n.º 4
0
        public frmSelection(WidgetType type)
        {
            InitializeComponent();

            (selectionPanel as Control).KeyDown += new KeyEventHandler(this.onKeyDown);
            (selectionPanel as Control).Select();
            (selectionPanel as Control).MouseWheel += new MouseEventHandler(this.onMouseWheel);
            (zoomedImageBox as Control).MouseWheel += new MouseEventHandler(this.onMouseWheel);

            _fileToLoad += type.ToString() + ".json";

            if (File.Exists(_fileToLoad))
            {
                string file = File.ReadAllText(_fileToLoad);
                _images = JsonConvert.DeserializeObject<List<ImageTestData>>(file);

                foreach (ImageTestData item in _images)
                {
                    _widgetCount += item.WidgetAreaList.Count;
                }

                _index = _images.Count - 1;
                _currentImage = _images[_images.Count - 1];
                _images.RemoveAt(_images.Count - 1);

                _loadedFromJSON = true;
            }
            else
            {
                _images = new List<ImageTestData>();
            }

            _imagePaths = Directory.GetFiles("testimages\\").ToList<string>();

            lblType.Text = type.ToString();
        }
Exemplo n.º 5
0
        public frmTest(WidgetType type)
        {
            _type = type;

            InitializeComponent();

            _fileToLoad += type.ToString() + ".json";
            _fileToSave += type.ToString() + ".json";

            if (File.Exists(_fileToLoad))
            {
                string file = File.ReadAllText(_fileToLoad);
                _images = JsonConvert.DeserializeObject<List<ImageTestData>>(file);

                foreach (ImageTestData item in _images)
                {
                    _widgetCount += item.WidgetAreaList.Count;
                }

                _loadedFromJSON = true;
            }

            lblFile.Text = _fileToLoad;
        }
Exemplo n.º 6
0
        public static string AddBitmap(string activityName, Bitmap image, WidgetType type)
        {
            RandomNumberGenerator rng = new RNGCryptoServiceProvider();
            byte[] tokenData = new byte[4];
            rng.GetBytes(tokenData);
            string randomChars = Convert.ToBase64String(tokenData);

            string id = "";

            id = activityName + "_" + type.ToString() + "_" + randomChars;
            id = id.ToLower();

            while (_knownIDs.Contains(id))
            {
                tokenData = new byte[4];
                rng.GetBytes(tokenData);
                randomChars = Convert.ToBase64String(tokenData);

                id += "_" + randomChars;
                id = id.ToLower();
            }

            var sb = new StringBuilder();

            foreach (char c in id)
            {
                if (char.IsLetterOrDigit(c))
                    sb.Append(c);
                else if (c == '_')
                    sb.Append(c);
            }

            id = sb.ToString();
            id = id.ToLower();

            _knownImages.Add(image);
            _knownIDs.Add(id);
            _IDToBitmap.Add(id, image);

            return id;
        }
Exemplo n.º 7
0
        private static IElementCreater GetCreater(WidgetType type)
        {
            if (createrDic == null)
            {
                createrDic = new Dictionary <WidgetType, IElementCreater>();
            }

            if (!createrDic.ContainsKey(type))
            {
                var typeName    = "CommonWidget." + type.ToString() + "Creater";
                var createrType = typeof(IElementCreater).Assembly.GetType(typeName);
                if (createrType == null)
                {
                    Debug.LogError("请编写:" + typeName);
                    return(null);
                }
                createrDic.Add(type, System.Activator.CreateInstance(createrType) as IElementCreater);
            }

            return(createrDic[type]);
        }
Exemplo n.º 8
0
        public List <AvailableWidgetModel> QueryAvailable()
        {
            List <AvailableWidgetModel> result = new List <AvailableWidgetModel>();

            var arr = Enum.GetValues(typeof(WidgetType));

            foreach (byte item in arr)
            {
                WidgetType type       = (WidgetType)item;
                Type       configType = DefaultWidgetConfigTypes[type];
                result.Add(new AvailableWidgetModel
                {
                    Type          = type,
                    Name          = DefaultNames[type],
                    DefaultConfig = (WidgetConfigModelBase)Activator.CreateInstance(configType),
                    Icon          = type.ToString()
                });
            }

            return(result);
        }
Exemplo n.º 9
0
        public static string AddColour(Color colour, WidgetType type, string widgetText)
        {
            RandomNumberGenerator rng = new RNGCryptoServiceProvider();
            byte[] tokenData = new byte[4];
            rng.GetBytes(tokenData);
            string randomChars = Convert.ToBase64String(tokenData);

            string newWidgetText = widgetText;

            string colourName = "";

            // If we have already stored a colour like that...
            bool foundKnownColour = false;
            Color storedColour = Color.Empty;
            foreach (Color c in _knownColours)
            {
                if (IsColourSimilar(colour, c))
                {
                    foundKnownColour = true;
                    storedColour = c;
                    break;
                }
            }

            // ... return its name
            if (foundKnownColour)
            {
                return _colorToString[storedColour];
            }

            // If we haven't stored a colour like that, try and find its name
            string knownColourName = "Unknown";
            foreach (KnownColor kc in Enum.GetValues(typeof(KnownColor)))
            {
                Color known = Color.FromKnownColor(kc);
                if (IsColourSimilar(colour, known))
                {
                    knownColourName = known.Name;
                    break;
                }
            }

            // If it has a system designated name, create a new name
            if (knownColourName != "Unknown")
            {
                colourName = knownColourName.ToLower() + "_" + type.ToString().ToLower();

                while (_knownColourDesignations.Contains(colourName))
                {
                    rng.GetBytes(tokenData);
                    randomChars = Convert.ToBase64String(tokenData);

                    colourName += "_" + randomChars.ToLower();

                    StringBuilder sb = new StringBuilder();

                    foreach (char c in colourName)
                    {
                        if (char.IsLetterOrDigit(c))
                            sb.Append(c);
                        else if (c == '_')
                            sb.Append(c);
                    }

                    colourName = sb.ToString();
                    colourName = colourName.ToLower();
                }

                _knownColours.Add(colour);
                _knownColourDesignations.Add(colourName);

                _colorToString.Add(colour, colourName);
                _stringToColor.Add(colourName, colour);

                return colourName;
            }

            // Colour doesnt have a system defined name, create a different name
            if (newWidgetText != null && newWidgetText != "")
            {
                var sb = new StringBuilder();

                foreach (char c in newWidgetText)
                {
                    if (char.IsLetterOrDigit(c))
                        sb.Append(c);
                    else if (c == '_')
                        sb.Append(c);
                }

                newWidgetText = sb.ToString();
                newWidgetText = newWidgetText.ToLower();

                colourName = type.ToString().ToLower() + "_" + newWidgetText.ToLower().Replace(" ", "");

                while (_knownColourDesignations.Contains(colourName))
                {
                    rng.GetBytes(tokenData);
                    randomChars = Convert.ToBase64String(tokenData);

                    colourName += "_" + randomChars.ToLower();

                    sb = new StringBuilder();

                    foreach (char c in newWidgetText)
                    {
                        if (char.IsLetterOrDigit(c))
                            sb.Append(c);
                        else if (c == '_')
                            sb.Append(c);
                    }

                    colourName = sb.ToString();
                }

                _knownColours.Add(colour);
                _knownColourDesignations.Add(colourName);

                _colorToString.Add(colour, colourName);
                _stringToColor.Add(colourName, colour);

                return colourName;
            }

            // And if all else fails
            colourName = type.ToString().ToLower() + "_" + randomChars.ToLower();

            while (_knownColourDesignations.Contains(colourName))
            {
                rng.GetBytes(tokenData);
                randomChars = Convert.ToBase64String(tokenData);

                colourName += "_" + randomChars.ToLower();

                var sb = new StringBuilder();

                foreach (char c in newWidgetText)
                {
                    if (char.IsLetterOrDigit(c))
                        sb.Append(c);
                    else if (c == '_')
                        sb.Append(c);
                }

                colourName = sb.ToString();
            }

            _knownColours.Add(colour);
            _knownColourDesignations.Add(colourName);

            _colorToString.Add(colour, colourName);
            _stringToColor.Add(colourName, colour);

            return colourName;
        }
Exemplo n.º 10
0
 public static string Serialize(this WidgetType widgetType)
 {
     return(widgetType.ToString().Replace("_", " "));
 }
Exemplo n.º 11
0
        public static string AddString(string activityName, string text, WidgetType type)
        {
            RandomNumberGenerator rng = new RNGCryptoServiceProvider();
            byte[] tokenData = new byte[4];
            rng.GetBytes(tokenData);
            string randomChars = Convert.ToBase64String(tokenData);

            string id = "";

            if (text != null || text != "")
            {
                id = activityName + "_" + type.ToString() + "_" + text.Replace(" ", "");
            }
            else
            {
                id = activityName + "_" + type.ToString();
            }

            var sb = new StringBuilder();

            foreach (char c in id)
            {
                if (char.IsLetterOrDigit(c))
                    sb.Append(c);
                else if (c == '_')
                    sb.Append(c);
            }

            id = sb.ToString();
            id = id.ToLower();

            string newText = text;

            sb = new StringBuilder();

            foreach (char c in newText)
            {
                if (c == '\'')
                    sb.Append("\\'");
                else
                    sb.Append(c);
            }

            newText = sb.ToString();

            if (!_knownStringIDs.Contains(id))
            {
                _knownStrings.Add(newText);
                _knownStringIDs.Add(id);
                _IDToString.Add(id, newText);
            }
            else
            {
                id += "_" + randomChars.ToLower();

                while (_knownStringIDs.Contains(id))
                {
                    rng.GetBytes(tokenData);
                    randomChars = Convert.ToBase64String(tokenData);

                    id += "_" + randomChars.ToLower();

                    foreach (char c in id)
                    {
                        if (char.IsLetterOrDigit(c))
                            sb.Append(c);
                        else if (c == '_')
                            sb.Append(c);
                    }

                    id = sb.ToString();
                    id = id.ToLower();
                }

                _knownStrings.Add(newText);
                _knownStringIDs.Add(id);
                _IDToString.Add(id, newText);
            }

            return id;
        }
Exemplo n.º 12
0
 /// <summary>
 ///     Get sitemap by name.
 /// </summary>
 /// <param name="sitemapName"></param>
 /// <param name="type"></param>
 /// <returns></returns>
 public Sitemap GetSitemap(string sitemapName, WidgetType type)
 {
     return(GetSitemapAsync(sitemapName, type.ToString()).Result);
 }