All pastes #418572 Raw Edit

Stuff

public text v1 · immutable
#418572 ·published 2007-03-31 18:10 UTC
rendered paste body
using System;
using System.Collections.Generic;
using System.Text;

namespace Bytebot
{
    public class LuaFrame
    {
        private string texture = null;
        private string name = null;
        private string type = null;
        private string parent = null;
        private string template = null;
        private int width = 10;
        private int height = 10;
        private int x = 0;
        private int y = 0;

        public LuaFrame(string Name, string Type, string Parent, string Template)
        {
            name = Name;
            type = Type;
            parent = Parent;
            template = Template;
            if (template != "")
            {
                Game.Instance.WoWScript(string.Format("{0} = CreateFrame('{1}',nil,{2},'{3}')", name, type, parent, template));
            }
            else
            {
                Game.Instance.WoWScript(string.Format("{0} = CreateFrame('{1}',nil,{2})", name, type, parent));
            }
            Game.Instance.WoWScript(string.Format("{0}:SetFrameStrata('BACKGROUND')",name));
            Game.Instance.WoWScript(string.Format("{0}:SetPoint('TOPLEFT',{1},{2})", name, x, y));
            Game.Instance.WoWScript(string.Format("t_{0} = {1}:CreateTexture(nil,'BACKGROUND')", Name, Name));
        }

        ~LuaFrame()
        {
            Hide();
        }

        public string Name
        {
            get
            {
                return name;
            }
        }

        public int X
        {
            get
            {
                return x;
            }
            set
            {
                x = value;
                Game.Instance.WoWScript(string.Format("{0}:SetPoint('TOPLEFT',{1},{2})", name, x, y));
            }
        }

        public int Y
        {
            get
            {
                return y;
            }
            set
            {
                y = value;
                Game.Instance.WoWScript(string.Format("{0}:SetPoint('TOPLEFT',{1},{2})", name, x, y));
            }
        }

        public string Texture
        {
            get
            {
                return texture;
            }
            set
            {
                texture = value;
                Game.Instance.WoWScript(string.Format("t_{0}:SetTexture('{1}')", name, texture));
                Game.Instance.WoWScript(string.Format("t_{0}:SetAllPoints('{1}')", name, name));
                Game.Instance.WoWScript(string.Format("{0}.texture = t_{1}", name, name));
            }
        }

        public int Width
        {
            get
            {
                return width;
            }
            set
            {
                width = value;
                Game.Instance.WoWScript(string.Format("{0}:SetWidth({1})", name, width));
            }
        }

        public int Height
        {
            get 
            {
                return height;
            }
            set
            {
                height = value;
                Game.Instance.WoWScript(string.Format("{0}:SetHeight({1})", name, height));
            }
        }

        public void Hide()
        {
            Game.Instance.WoWScript(string.Format("{0}:Hide()",name));
        }

        public void Show()
        {
            Game.Instance.WoWScript(string.Format("{0}:Show()",name));
        }
    }

    public class LuaWindow : LuaFrame
    {
        public LuaWindow(string Name) : base(Name, "Frame", "UIParent", "")
        {
            Game.Instance.WoWScript(string.Format("{0}:SetMovable(true)", Name));
            Game.Instance.WoWScript(string.Format("{0}:RegisterForDrag('LeftButton')", Name));
            Game.Instance.WoWScript(string.Format("{0}:SetScript('OnDragStart',function() {0}:StartMoving(); end)", Name, Name));
            Game.Instance.WoWScript(string.Format("{0}:SetScript('OnDragStop',function() {0}:StopMovingOrSizing(); end)", Name, Name));
            Texture = "Interface/DialogFrame/UI-DialogBox-Background";
        }
    }

    public class LuaButton : LuaFrame
    {
        private string text = null;
        private string leftclick = null;

        public LuaButton(string Name, string Text, LuaWindow Parent) : base(Name, "Button", Parent.Name, "UIPanelButtonTemplate")
        {
            Game.Instance.WoWScript(string.Format("{0}:SetFrameStrata('HIGH')", Name));
            this.Text = Text;
        }

        public string LeftClick
        {
            get
            {
                return leftclick;
            }
            set
            {
                leftclick = value;
                Game.Instance.WoWScript(string.Format("{0}:SetScript('OnClick',function() ISCommand('{1}') end)", Name, leftclick));
            }
        }

        public string Text
        {
            get
            {
                return text;
            }
            set
            {
                text = value;
                Game.Instance.WoWScript(string.Format("{0}:SetText('{1}')", Name,text));
            }
        }
    }

    public sealed class MainWindow
    {
        static readonly MainWindow instance = new MainWindow();

        #region Singleton stuff
        static MainWindow()
        {
        }

        MainWindow()
        {
        }

        ~MainWindow()
        {
            Hide();
        }

        public static MainWindow Instance
        {
            get
            {
                return instance;
            }
        }
        #endregion

        public void Show()
        {
            LuaWindow mainwindow = new LuaWindow("Main");
            mainwindow.Height = 200;
            mainwindow.Width = 200;
            mainwindow.Show();

            mainwindow.X = 50;
            mainwindow.Y = -100;

            LuaButton bStart = new LuaButton("bStart", "Start", mainwindow);
            bStart.LeftClick = "Event[BYTEBOT]:Execute[START]";
            bStart.Width = 100;
            bStart.Height = 30;
            bStart.X = 10;
            bStart.Y = -10;
            bStart.Show();

            LuaButton bStop = new LuaButton("bStop", "Stop", mainwindow);
            bStop.LeftClick = "Event[BYTEBOT]:Execute[STOP]";
            bStop.Width = 100;
            bStop.Height = 30;
            bStop.X = 10;
            bStop.Y = -55;
            bStop.Show();

            LuaButton bQuit = new LuaButton("bQuit", "Quit", mainwindow);
            bQuit.LeftClick = "Event[BYTEBOT]:Execute[QUIT]";
            bQuit.Width = 100;
            bQuit.Height = 30;
            bQuit.X = 10;
            bQuit.Y = -100;
            bQuit.Show();
        }

        public void Hide()
        {
            LuaWindow mainwindow = new LuaWindow("Main");
            mainwindow.Hide();
        }
    }
}