예제 #1
0
파일: Button.cs 프로젝트: maesse/CubeHags
        public Button(string Text, Window window)
            : base(window)
        {
            Selected = new ButtonSelectedEvent(ButtonSelected);
            Margin = 4;
            FlowLayout layout = new FlowLayout(true);
            layout.centered = false;
            label = new Label(Text, window);
            label.Color = Color.LightGray;
            this.AddControl(label);
            this.Name = "Button";
            Color = System.Drawing.Color.White;

            atlas = new HagsAtlas("window-theme/button/button.png");
            atlas["topleft"] = new Rectangle(0, 0, 3, 3);
            atlas["left"] = new Rectangle(0, 3, 3, 15);
            atlas["bottomleft"] = new Rectangle(0, 18, 3, 3);
            atlas["top"] = new Rectangle(3, 0, 34, 3);
            atlas["middle"] = new Rectangle(3, 3, 34, 15);
            atlas["bottom"] = new Rectangle(3, 18, 34, 3);
            atlas["topright"] = new Rectangle(37,0,3,3);
            atlas["right"] = new Rectangle(37, 3, 3, 15);
            atlas["bottomright"] = new Rectangle(37, 18, 3, 3);
            stateOffets.Add(ButtonState.HOVER, new Point(0, 21));
            stateOffets.Add(ButtonState.DOWN, new Point(0, 43));
        }
예제 #2
0
파일: TextBox.cs 프로젝트: maesse/CubeHags
        public TextBox(Window window)
            : base(window)
        {
            PreferredSize = new Size(240, 26);

            atlas = new HagsAtlas("window-theme/textframe.png");

            //HagsAtlas.SerializeToXML(atlas);
            atlas["topleft"] = new Rectangle(0, 0, 3, 3);
            atlas["top"] = new Rectangle(5, 0, 3, 3);
            atlas["topright"] = new Rectangle(28, 0, 3, 3);

            atlas["left"] = new Rectangle(0, 5, 3, 3);
            atlas["middle"] = new Rectangle(5, 5, 3, 3);
            atlas["right"] = new Rectangle(28, 5, 3, 3);

            atlas["bottomleft"] = new Rectangle(0, 28, 3, 3);
            atlas["bottom"] = new Rectangle(5, 28, 3, 3);
            atlas["bottomright"] = new Rectangle(28, 28, 3, 3);

            // Load theme
            WhiteTexture = TextureManager.CreateTexture(1, 1, Format.A8R8G8B8, new SlimDX.Color4(Color.White));
            //WhiteTexture = TextureManager.Instance.LoadTexture("window-theme/White.bmp");
            // Fixed sized font measurement
            ASize = new Rectangle();
            Renderer.Instance.Fonts["textbox"].MeasureString(Renderer.Instance.sprite, "A", DrawTextFormat.Left, ref ASize);

            // Little prefferedsize tweak
            int goodHeight = ASize.Height + atlas["top"].Height + atlas["bottom"].Height;
            if (goodHeight > PreferredSize.Height)
            {
                PreferredSize.Height = goodHeight;
            }
        }
예제 #3
0
        private Size ScrollbarSize = new Size(64, 64); // Minimum size for panel the contains the scrollbars

        #endregion Fields

        #region Constructors

        public Scrollbar(Container parent)
        {
            this.Parent = parent;

            // Load texture and atlas
            atlas = new HagsAtlas("window-theme/scrollbar.png");
            atlas["toparrow"] = new System.Drawing.Rectangle(10, 0, 16, 16);
            atlas["bottomarrow"] = new System.Drawing.Rectangle(26, 0, 16, 16);
            atlas["background"] = new System.Drawing.Rectangle(16, 32, 1, 1);
            atlas["vslidermarks"] = new System.Drawing.Rectangle(0, 0, 9, 9);
            atlas["vslidertl"] = new System.Drawing.Rectangle(0, 16, 2, 2);
            atlas["vslidert"] = new System.Drawing.Rectangle(2, 16, 12, 2);
            atlas["vslidertr"] = new System.Drawing.Rectangle(14, 16, 2, 2);
            atlas["vsliderml"] = new System.Drawing.Rectangle(0, 18, 2, 28);
            atlas["vsliderm"] = new System.Drawing.Rectangle(2, 18, 12, 28);
            atlas["vslidermr"] = new System.Drawing.Rectangle(14, 18, 2, 28);
            atlas["vsliderbl"] = new System.Drawing.Rectangle(0, 46, 2, 2);
            atlas["vsliderb"] = new System.Drawing.Rectangle(2, 46, 12, 2);
            atlas["vsliderbr"] = new System.Drawing.Rectangle(14, 46, 2, 2);
            atlas["hslidermarks"] = new System.Drawing.Rectangle(17, 32, 9, 9);
            atlas["hslidertl"] = new System.Drawing.Rectangle(16, 16, 2, 2);
            atlas["hsliderl"] = new System.Drawing.Rectangle(16, 18, 2, 12);
            atlas["hsliderbl"] = new System.Drawing.Rectangle(16, 30, 2, 2);
            atlas["hslidert"] = new System.Drawing.Rectangle(18, 16, 28, 2);
            atlas["hsliderm"] = new System.Drawing.Rectangle(18, 18, 28, 12);
            atlas["hsliderb"] = new System.Drawing.Rectangle(18, 30, 28, 2);
            atlas["hslidertr"] = new System.Drawing.Rectangle(46, 16, 2, 2);
            atlas["hsliderr"] = new System.Drawing.Rectangle(46, 18, 2, 12);
            atlas["hsliderbr"] = new System.Drawing.Rectangle(46, 30, 2, 2);
        }
예제 #4
0
파일: Window.cs 프로젝트: maesse/CubeHags
        public Window()
            : base(null)
        {
            this.Window = this;
            panel = new Panel(this);

            // Load theme
            // "Untitled-1.png"
            atlas = new HagsAtlas("window-theme/window-borders.png");

            //HagsAtlas.SerializeToXML(atlas);
            atlas["topleft"] = new Rectangle(0, 0, 26, 26);
            atlas["top"] = new Rectangle(0, 81, 128, 26);
            atlas["topright"] = new Rectangle(27, 0, 27, 26);

            atlas["left"] = new Rectangle(0, 28, 25, 26);
            atlas["middle"] = new Rectangle(55, 28, 25, 25);
            atlas["right"] = new Rectangle(54, 1, 27, 26);

            atlas["bottomleft"] = new Rectangle(0, 54, 27, 27);
            atlas["bottom"] = new Rectangle(27, 55, 27, 26);
            atlas["bottomright"] = new Rectangle(54, 54, 27, 27);
            atlas["scale"] = new Rectangle(27, 27, 17, 17);

            LayoutUpdate(false);
        }
예제 #5
0
 // Serialize
 public static void SerializeToXML(HagsAtlas atlas)
 {
     XmlSerializer serializer = new XmlSerializer(typeof(HagsAtlas));
     TextWriter textWriter = new StreamWriter(@"client/data/gui/Atlas/" + atlas.Name + ".xml");
     serializer.Serialize(textWriter, atlas);
     textWriter.Close();
 }