示例#1
0
        public void Draw(Graphics drawer, Bitmap[] resources, WatchState state)
        {
            if (state.DayTemperature == null || state.NightTemperature == null)
            {
                return;
            }

            var images = new List <Bitmap>();

            if (state.DayTemperature < 0)
            {
                images.Add(resources[MinusImageIndex]);
            }
            images.AddRange(Number.GetImagesForNumber(resources, Math.Abs(state.DayTemperature.Value)));
            if (AppendDegreesToBoth && DegreesImageIndex != null)
            {
                images.Add(resources[DegreesImageIndex.Value]);
            }

            images.Add(resources[DelimiterImageIndex]);

            if (state.NightTemperature < 0)
            {
                images.Add(resources[MinusImageIndex]);
            }
            images.AddRange(Number.GetImagesForNumber(resources, Math.Abs(state.NightTemperature.Value)));
            if (DegreesImageIndex != null)
            {
                images.Add(resources[DegreesImageIndex.Value]);
            }

            DrawerHelper.DrawImages(drawer, images, Number.Spacing, Number.Alignment, Number.GetBox());
        }
示例#2
0
        public void Draw(Graphics drawer, Bitmap[] resources, int temperature, CoordinatesElement altCoordinates = null)
        {
            var drawingBox = altCoordinates == null?Number.GetBox() : Number.GetAltBox(altCoordinates);

            var images = GetImagesForTemperature(resources, temperature);

            DrawerHelper.DrawImages(drawer, images, (int)Number.Spacing, Number.Alignment, drawingBox);
        }
示例#3
0
        private void StartDrawingLine(ConnectingRectangleViewModel rectangle)
        {
            var startPosition = GetAnchorPoint(rectangle);

            _line = DrawerHelper.GetLine(startPosition, startPosition, isHitTestVisible: false);

            AddLineToGrid(_line);

            View.MouseMove += View_MouseMove;
        }
示例#4
0
        public void Draw(Graphics drawer, Bitmap[] images, Bitmap icon, int number, int minimumDigits = 1)
        {
            List <Bitmap> imgs = GetImagesForNumber(images, number, minimumDigits);

            if (icon != null)
            {
                imgs.Insert(0, icon);
            }

            DrawerHelper.DrawImages(drawer, imgs, (int)Spacing, Alignment, GetBox());
        }
示例#5
0
        public void Draw(Graphics drawer, Bitmap[] resources, WatchState state)
        {
            var monthAndDay = (MonthAndDayElement)_parent;

            var images = Number.GetImagesForNumber(resources, state.Time.Month, monthAndDay.TwoDigitsMonth ? 2 : 1);

            images.Add(resources[DelimiterImageIndex]);
            images.AddRange(Number.GetImagesForNumber(resources, state.Time.Day, monthAndDay.TwoDigitsDay ? 2 : 1));

            DrawerHelper.DrawImages(drawer, images, (int)Number.Spacing, Number.Alignment, Number.GetBox());
        }
示例#6
0
        private Line AddLine(ConnectingRectangleViewModel source, ConnectingRectangleViewModel destination)
        {
            var startPosition = GetAnchorPoint(source);
            var endPosition   = GetAnchorPoint(destination);

            var line = DrawerHelper.GetLine(startPosition, endPosition, isHitTestVisible: false);

            AddLineToGrid(line);

            return(line);
        }
示例#7
0
        public void Draw(Graphics drawer, Bitmap[] resources, WatchState state)
        {
            var kilometers = state.Distance / 1000;
            var decimals   = state.Distance % 1000 / 10;

            var images = Number.GetImagesForNumber(resources, kilometers);

            images.Add(resources[DecimalPointImageIndex]);
            images.AddRange(Number.GetImagesForNumber(resources, decimals));
            images.Add(resources[KilometerImageIndex]);

            DrawerHelper.DrawImages(drawer, images, (int)Number.Spacing, Number.Alignment, Number.GetBox());
        }
示例#8
0
    private Rect DrawEvents(Rect pos, Rect labelPos, SerializedProperty arrayEnter, string name)
    {
        labelPos.y += DragHeight;
        DrawerHelper.BoldLabel(labelPos, name + " Events", boldStyle);

        if (arrayEnter.hasMultipleDifferentValues)
        {
            labelPos.y += DragHeight;
            EditorGUI.HelpBox(labelPos, "Cannot edit with multiple different values.", MessageType.Info);
        }
        else
        {
            labelPos.y += DragHeight;
            DrawEventArray(pos, arrayEnter, ref labelPos, boldStyle);
            GUI.Button(labelPos, "Drag event here to add to " + name + " event");
            if (labelPos.Contains(Event.current.mousePosition))
            {
                DrawerHelper.HandleEventDrag(arrayEnter);
            }
        }
        return(labelPos);
    }
示例#9
0
        public void Draw(Graphics drawer, Bitmap[] resources, WatchState state)
        {
            var steps    = 0;
            var decimals = 0;

            if (state.Steps >= 10000)
            {
                steps    = state.Steps / 10000;
                decimals = state.Steps % 10000;
            }
            else if (state.Steps >= 1000)
            {
                steps    = state.Steps / 1000;
                decimals = state.Steps % 1000;
            }
            else if (state.Steps >= 100)
            {
                steps    = state.Steps / 100;
                decimals = state.Steps % 100;
            }
            else if (state.Steps >= 10)
            {
                steps    = state.Steps / 10;
                decimals = state.Steps % 10;
            }

            var images = Number.GetImagesForNumber(resources, steps);

            //images.Add(resources[DecimalPointImageIndex]);
            images.AddRange(Number.GetImagesForNumber(resources, decimals));
            if (SuffixMilesImageIndex > 0)
            {
                images.Add(resources[SuffixMilesImageIndex]);
            }

            DrawerHelper.DrawImages(drawer, images, (int)Number.Spacing, Number.Alignment, Number.GetBox());
        }
示例#10
0
 public void Draw(Graphics drawer, Bitmap[] images, int number, int minimumDigits = 1)
 {
     DrawerHelper.DrawImages(drawer, GetImagesForNumber(images, number, minimumDigits), (int)Spacing, Alignment, GetBox());
 }
示例#11
0
    public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
    {
        var actions = prop.FindPropertyRelative("Actions");

        var labelPos = pos;

        var labelStyle = GUI.skin.GetStyle("label");
        var alignment  = labelStyle.alignment;

        labelStyle.alignment = TextAnchor.MiddleLeft;;

        labelPos.height = 14;
        DrawerHelper.BoldLabel(labelPos, prop.FindPropertyRelative("Title").stringValue, labelStyle);

        for (int i = 0; i < actions.arraySize; ++i)
        {
            var currentElement = actions.GetArrayElementAtIndex(i);
            labelPos.y     += LineHeight;
            labelPos.height = 20;
            InAudioBankLink bankLink = currentElement.FindPropertyRelative("Bank").objectReferenceValue as InAudioBankLink;
            if (bankLink != null)
            {
                GUI.Label(labelPos, bankLink.GetName, labelStyle);
            }
            else
            {
                GUI.Label(labelPos, "Missing event", labelStyle);
            }

            Rect buttonPos = labelPos;
            buttonPos.x     = pos.width - 172; //Align to right side
            buttonPos.width = 70;
            var actionProp = currentElement.FindPropertyRelative("BankAction");
            actionProp.enumValueIndex = Convert.ToInt32(EditorGUI.EnumPopup(buttonPos, (BankHookActionType)actionProp.enumValueIndex));

            buttonPos.width = 50;

            buttonPos.x = pos.width - 100; //Align to right side
            if (bankLink == null)
            {
                GUI.enabled = false;
            }

            if (GUI.Button(buttonPos, "Find"))
            {
                EditorWindow.GetWindow <AuxWindow>().FindBank(bankLink);
            }
            GUI.enabled     = true;
            buttonPos.x     = pos.width - 44;
            buttonPos.width = 35;
            if (GUI.Button(buttonPos, "X"))
            {
                actions.DeleteArrayElementAtIndex(i);
            }
        }
        labelPos.y              += DragHeight + 4;
        labelPos.height          = DragHeight;
        GUI.skin.label.alignment = TextAnchor.MiddleCenter;

        GUI.Button(labelPos, "Drag bank here for " + prop.FindPropertyRelative("Title").stringValue);
        if (labelPos.Contains(Event.current.mousePosition))
        {
            DrawerHelper.HandleBankDrag(actions);
        }

        labelStyle.alignment = alignment;
    }