public ButtonTooltipLogic(Widget widget, ToggleButtonWidget button)
        {
            var label = widget.Get<LabelWidget>("LABEL");
            var hotkey = widget.Get<LabelWidget>("HOTKEY");

            label.GetText = () => button.TooltipText;
            var labelWidth = Game.Renderer.Fonts[label.Font].Measure(button.TooltipText).X;
            label.Bounds.Width = labelWidth;

            var hotkeyLabel = "({0})".F(button.Key.ToUpperInvariant());
            hotkey.GetText = () => hotkeyLabel;
            hotkey.Bounds.X = labelWidth + 2*label.Bounds.X;

            var panelWidth = hotkey.Bounds.X + label.Bounds.X
                + Game.Renderer.Fonts[label.Font].Measure(hotkeyLabel).X;
            widget.Bounds.Width = panelWidth;
        }
        void SetupProductionGroupButton(ToggleButtonWidget button, string group)
        {
            Action<bool> selectTab = reverse =>
            {
                if (queueTabs.QueueGroup == group)
                    queueTabs.SelectNextTab(reverse);
                else
                    queueTabs.QueueGroup = group;
            };

            button.IsDisabled = () => queueTabs.Groups[group].Tabs.Count == 0;
            button.OnMouseUp = mi => selectTab(mi.Modifiers.HasModifier(Modifiers.Shift));
            button.OnKeyPress = e => selectTab(e.Modifiers.HasModifier(Modifiers.Shift));
            button.IsToggled = () => queueTabs.QueueGroup == group;
            var chromeName = group.ToLowerInvariant();
            var icon = button.Get<ImageWidget>("ICON");
            icon.GetImageName = () => button.IsDisabled() ? chromeName+"-disabled" :
                queueTabs.Groups[group].Alert ? chromeName+"-alert" : chromeName;
        }
Beispiel #3
0
        public ButtonTooltipLogic(Widget widget, ToggleButtonWidget button)
        {
            var label  = widget.GetWidget <LabelWidget>("LABEL");
            var hotkey = widget.GetWidget <LabelWidget>("HOTKEY");

            label.GetText = () => button.TooltipText;
            var labelWidth = Game.Renderer.Fonts[label.Font].Measure(button.TooltipText).X;

            label.Bounds.Width = labelWidth;

            var hotkeyLabel = "({0})".F(button.Key.ToUpperInvariant());

            hotkey.GetText  = () => hotkeyLabel;
            hotkey.Bounds.X = labelWidth + 2 * label.Bounds.X;

            var panelWidth = hotkey.Bounds.X + label.Bounds.X
                             + Game.Renderer.Fonts[label.Font].Measure(hotkeyLabel).X;

            widget.Bounds.Width = panelWidth;
        }
        void SetupProductionGroupButton(ToggleButtonWidget button, string group)
        {
            Action<bool> selectTab = reverse =>
            {
                if (queueTabs.QueueGroup == group)
                    queueTabs.SelectNextTab(reverse);
                else
                    queueTabs.QueueGroup = group;
            };

            button.IsDisabled = () => queueTabs.Groups[group].Tabs.Count == 0;
            button.OnMouseUp = mi => selectTab(mi.Modifiers.HasModifier(Modifiers.Shift));
            button.OnKeyPress = e => selectTab(e.Modifiers.HasModifier(Modifiers.Shift));
            button.IsToggled = () => queueTabs.QueueGroup == group;
            var chromeName = group.ToLowerInvariant();
            var icon = button.GetWidget<ImageWidget>("ICON");
            icon.GetImageName = () => button.IsDisabled() ? chromeName+"-disabled" :
                queueTabs.Groups[group].Alert ? chromeName+"-alert" : chromeName;
        }