コード例 #1
0
ファイル: TileGfxPage.cs プロジェクト: lmaxim/MultiScrollNES
 public TileGfxPage(int x, int y, int width, int height, int page_index, Screens.TileGfxScreen.PageClickHandler onTileGfxPageHandler)
 {
     Area        = new Rectangle(x, y, width, height);
     m_PageIndex = page_index;
     RenderRule.SetSize(width, height);
     m_OnClickHandler += onTileGfxPageHandler;
 }
コード例 #2
0
        private void Rectangle_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            Brush brush = (((System.Windows.Shapes.Rectangle)e.Source).Fill);
            int   id    = -1;

            for (int i = 0; i < list.Count; i++)
            {
                if (brush == list[i].brush)
                {
                    id = i;
                }
            }
            if (id != -1)
            {
                RenderRule     rule = list[id].rule;
                SymbolSelector form = new SymbolSelector(rule);
                if (form.ShowDialog() == true)
                {
                    list[id].brush = form.brush;
                    list[id].rule  = form.rule;
                    dataGrid.Items.Refresh();
                }
            }
            //int id = Convert.ToInt32(((System.Windows.Shapes.Rectangle)e.Source).Name);
        }
コード例 #3
0
 protected internal override void MouseMove(InputEventMouse e)
 {
     if (e.Button != MouseButton.None)
     {
         RenderRule.Select(e.Position);
     }
 }
コード例 #4
0
ファイル: MiniMap.cs プロジェクト: lmaxim/MultiScrollNES
 private void refreshEntireMap()
 {
     try
     {
         m_RenderingMap = true;
         int w = m_Map.WidthInSuperChunks;
         int h = m_Map.HeightInSuperChunks;
         RenderRule.TextureDimension = w * 2 * 2;
         for (int i = 0; i < w * h; i++)
         {
             for (int j = 0; j < 4; j++)
             {
                 RenderRule.WriteChunk((i % w) * 2 + (j % 2), (i / w) * 2 + (j / 2),
                                       State.Data.Chunks[m_Map.GetSuperChunk(i % w, (i / w)).Chunks[j]],
                                       State.Data.TileSets[State.SelectedTileset],
                                       State.Data.TileGfx);
                 if (m_Cancel)
                 {
                     m_RenderingMap = false;
                     return;
                 }
             }
         }
     }
     catch
     {
         m_RenderingMap = false;
         return;
     }
     m_RenderingMap = false;
 }
コード例 #5
0
ファイル: ScrollBars.cs プロジェクト: lmaxim/MultiScrollNES
        protected internal override void OnLayout()
        {
            if (IsScrollOverride)
            {
                RenderRule.BuildBars(m_ScrollAreaOverride.Value);
            }
            else
            {
                // Pixel size of panel to contain child widgets
                Rectangle outerArea;
                Point     scroll;

                BuildContainerRenderArea(out outerArea, out scroll); // scroll isn't used. Scroll should always be positive.
                RenderRule.BuildBars(outerArea);

                if (Children != null)
                {
                    foreach (Widget widget in Children)
                    {
                        widget.ScreenArea = new Rectangle(
                            widget.Area.X + InputArea.X - (int)(RenderRule.Horizontal.ChildOffset),
                            widget.Area.Y + InputArea.Y - (int)(RenderRule.Vertical.ChildOffset),
                            widget.Area.Width,
                            widget.Area.Height);
                        widget.ClipArea = RenderRule.SafeArea;
                    }
                }
            }

            ClipArea = RenderRule.SafeArea;
        }
コード例 #6
0
ファイル: ComboBox.cs プロジェクト: yadiate/MonoGameGui
        /*####################################################################*/
        /*                                Events                              */
        /*####################################################################*/

        protected internal override void MouseClick(MouseEventArgs e)
        {
            if (IsToggled)
            {
                _selectedItem = RenderRule.GetItem(e.Location);
                if (_selectedItem.HasValue)
                {
                    if (_dropDownItems[_selectedItem.Value].OnClick != null)
                    {
                        _dropDownItems[_selectedItem.Value].OnClick(this);
                    }
                    Label = _dropDownItems[_selectedItem.Value].Item.Item2;
                    if (OnSelectionChanged != null)
                    {
                        OnSelectionChanged(this);
                    }
                }
            }

            IsToggled = !IsToggled;

            if (!IsToggled)
            {
                RenderRule.Mode = IsHover
                    ? ComboBoxRenderRule.RenderMode.Hover
                    : ComboBoxRenderRule.RenderMode.Default;
            }
            else
            {
                RenderRule.Mode = ComboBoxRenderRule.RenderMode.Pressed;
            }
        }
コード例 #7
0
ファイル: TextBox.cs プロジェクト: lmaxim/MultiScrollNES
        protected internal override void KeyDown(InputEventKeyboard e)
        {
            lock (RenderRule)
            {
                if (RenderRule.Length != 0)
                {
                    switch (e.KeyCode)
                    {
                    case WinKeys.Left:
                        RenderRule.TextCursor--;
                        RenderRule.SelectedChar = null;
                        break;

                    case WinKeys.Right:
                        RenderRule.TextCursor++;
                        RenderRule.SelectedChar = null;
                        break;

                    case WinKeys.Up:
                        RenderRule.CursorUp();
                        RenderRule.SelectedChar = null;
                        break;

                    case WinKeys.Down:
                        RenderRule.CursorDown();
                        RenderRule.SelectedChar = null;
                        break;

                    case WinKeys.Home:
                        RenderRule.CursorHome();
                        RenderRule.SelectedChar = null;
                        break;

                    case WinKeys.End:
                        RenderRule.CursorEnd();
                        RenderRule.SelectedChar = null;
                        break;

                    case WinKeys.PageUp:
                        RenderRule.TextCursor   = 0;
                        RenderRule.SelectedChar = null;
                        break;

                    case WinKeys.PageDown:
                        RenderRule.TextCursor   = RenderRule.Length;
                        RenderRule.SelectedChar = null;
                        break;

                    case WinKeys.Delete:
                        RenderRule.Delete();
                        RenderRule.BakeText();
                        RenderRule.SelectedChar = null;
                        break;
                    }
                }
            }

            ResetTimer();
        }
コード例 #8
0
 private void paintRule(Graphics g, RenderRule rule, float cur_y)
 {
     Symbolizer geosym = rule.geometrysymbolizer;
     //switch (geosym.sign)
     //{
     //    case SymbolizerType.POINT:
     //        pointsymbolizer pointsymbolizer = (pointsymbolizer)geosym;
     //        Brush brush = new SolidBrush(pointsymbolizer.color);
     //        Pen pen = new Pen(brush);
     //        PointF screenPointF = new PointF(position.X, cur_y);
     //        switch (pointsymbolizer.pointstyle)
     //        {
     //            case PointStyle.CIRCLE_FILL:
     //                PointStylePainter.PaintFillCircle(g, brush, screenPointF, pointsymbolizer.size);
     //                break;
     //            case PointStyle.CIRCLE_HOLLOW:
     //                PointStylePainter.PaintHollowCircle(g, pen, screenPointF, pointsymbolizer.size);
     //                break;
     //            case PointStyle.CIRCLE_POINT:
     //                PointStylePainter.PaintCircle_Point(g, pen, brush, screenPointF, pointsymbolizer.size);
     //                break;
     //            case PointStyle.CIRCLE_RECT:
     //                PointStylePainter.PaintCircle_Rect(g, pen, screenPointF, pointsymbolizer.size);
     //                break;
     //            case PointStyle.RECT_FILL:
     //                PointStylePainter.PaintFillRect(g, brush, screenPointF, pointsymbolizer.size);
     //                break;
     //            case PointStyle.RECT_HOLLOW:
     //                PointStylePainter.PaintHollowRect(g, pen, screenPointF, pointsymbolizer.size);
     //                break;
     //            case PointStyle.TRIANGLE:
     //                PointStylePainter.PaintFillTriangle(g, brush, screenPointF, pointsymbolizer.size);
     //                break;
     //        }
     //        brush.Dispose();
     //        pen.Dispose();
     //        if(rule.filter!=null) g.DrawString(rule.filter.GetDescription(), SystemFonts.DefaultFont, Brushes.Black, new PointF(position.X + 2 * pointsymbolizer.size * 2 + 10, cur_y));
     //        cur_y += (2 * pointsymbolizer.size + 5);
     //        break;
     //    case SymbolizerType.LINE:
     //        linesymbolizer lsymbolizer = (linesymbolizer)geosym;
     //        Pen lpen = new Pen(lsymbolizer.color, lsymbolizer.width);
     //        lpen.DashStyle = lsymbolizer.linestyle;
     //        g.DrawLine(lpen, position.X, cur_y, position.X + 30, cur_y);
     //        if (rule.filter != null) g.DrawString(rule.filter.GetDescription(), SystemFonts.DefaultFont, Brushes.Black, new PointF(position.X + 35, cur_y));
     //        cur_y += (20);
     //        break;
     //    case SymbolizerType.POLYGON:
     //        polygonsymbolizer symbolizer = (polygonsymbolizer)geosym;
     //        Pen ppen = new Pen(symbolizer.strokecolor, symbolizer.strokewidth);
     //        Brush pbrush = new SolidBrush(symbolizer.fillcolor);
     //        g.DrawRectangle(ppen, position.X, cur_y, 30, 15);
     //        g.FillRectangle(pbrush, position.X, cur_y, 30, 15);
     //        if (rule.filter != null) g.DrawString(rule.filter.GetDescription(), SystemFonts.DefaultFont, Brushes.Black, new PointF(position.X + 35, cur_y));
     //        cur_y += (20);
     //        break;
     //}
 }
コード例 #9
0
ファイル: TextBox.cs プロジェクト: lmaxim/MultiScrollNES
 protected internal override void OnLayout()
 {
     if (Area != Parent.InputArea)
     {
         var a = Parent.InputArea;
         Area = new Rectangle(0, 0, a.Width, a.Height);
     }
     RenderRule.BakeText();
 }
コード例 #10
0
ファイル: Menu.cs プロジェクト: lmaxim/MultiScrollNES
        protected internal override void MouseClick(InputEventMouse e)
        {
            MenuElement element = RenderRule.ElementFromMouseCoordinates();

            if (element != null && element.Action != null)
            {
                element.Action(this);
            }
        }
コード例 #11
0
 public PaletteFourColor(int x, int y, int width, int height, int color_index, int palette_index, int palette_subindex, WidgetEvent onClick)
 {
     Area = new Rectangle(x, y, width, height);
     RenderRule.SetSize(width, height);
     ColorIndex        = color_index;
     m_PaletteIndex    = palette_index;
     m_PaletteSubIndex = palette_subindex;
     m_OnClick        += onClick;
 }
コード例 #12
0
ファイル: TextBox.cs プロジェクト: lmaxim/MultiScrollNES
 protected internal override void MouseUp(InputEventMouse e)
 {
     _isPressed = false;
     lock (RenderRule) {
         RenderRule.SetTextCursor(
             new Point(
                 e.Position.X - RenderRule.Area.X,
                 e.Position.Y - RenderRule.Area.Y));
     }
 }
コード例 #13
0
ファイル: TextBox.cs プロジェクト: yadiate/MonoGameGui
 protected internal override void MouseUp(MouseEventArgs e)
 {
     _isPressed = false;
     lock (RenderRule) {
         RenderRule.SetTextCursor(
             new Point(
                 e.Location.X - RenderRule.Area.X,
                 e.Location.Y - RenderRule.Area.Y));
     }
 }
コード例 #14
0
ファイル: TextBox.cs プロジェクト: yadiate/MonoGameGui
        /// <summary>
        /// Creates a new textbox that automatically fills the parent widget.
        /// </summary>
        /// <param name="buffer">Padding between the textbox and the parent widget.</param>
        /// <param name="maxChars"></param>
        public TextBox(int buffer, short maxChars)
        {
            RenderRule.RecreateStringData(maxChars);

            Padding = buffer;

            _cursorTimer          = new Timer(500);
            _cursorTimer.Elapsed += delegate {
                RenderRule.CursorVisible = !RenderRule.CursorVisible;
            };
        }
コード例 #15
0
 public TileGfxTile(int x, int y, int pixelscale, int tile_x, int tile_y,
                    Screens.TileGfxScreen.TileClickHandler onClick, Screens.TileGfxScreen.TileClickHandler onMove)
 {
     m_PixelScale = pixelscale;
     Area         = new Rectangle(x, y, 8 * m_PixelScale, 8 * m_PixelScale);
     RenderRule.SetSize(8 * m_PixelScale, 8 * m_PixelScale);
     m_TileX    = tile_x;
     m_TileY    = tile_y;
     m_OnClick += onClick;
     m_OnMove  += onMove;
 }
コード例 #16
0
        // ================================================================================
        // Input
        // ================================================================================

        protected internal override void MouseClick(InputEventMouse e)
        {
            if (e.Button == MouseButton.Left)
            {
                int index = RenderRule.ItemAtPosition(new Point(e.Position.X, e.Position.Y));
                if (index >= 0 && index < m_Items.Count)
                {
                    SelectedIndex = index;
                }
            }
        }
コード例 #17
0
        public PolygonSymbolSelector(RenderRule rule)
        {
            InitializeComponent();
            this.rule            = rule;
            comboBox.ItemsSource = list;
            polygonsymbolizer polygonsymbolizer = (polygonsymbolizer)rule.geometrysymbolizer;

            textBox.Text      = polygonsymbolizer.strokewidth.ToString();
            outlineColor.Fill = new SolidColorBrush((Color)polygonsymbolizer.strokecolor);
            solidColor.Fill   = new SolidColorBrush((Color)polygonsymbolizer.fillcolor);

            comboBox.SelectedIndex = (int)polygonsymbolizer.polygonstyle - 1;
        }
コード例 #18
0
        public PointSymbolSelector(RenderRule rule)
        {
            InitializeComponent();
            comboBox.ItemsSource = pointstyle;
            this.rule            = rule;
            pointsymbolizer pointsymbolizer = (pointsymbolizer)rule.geometrysymbolizer;

            textBox.Text            = pointsymbolizer.size.ToString();
            outlineColor.Visibility = Visibility.Collapsed;
            outlineLabel.Visibility = Visibility.Collapsed;
            solidColor.Fill         = new SolidColorBrush((Color)pointsymbolizer.color);
            SetPointStyle(pointsymbolizer.pointstyle);
        }
コード例 #19
0
ファイル: TextBox.cs プロジェクト: yadiate/MonoGameGui
        protected internal override void MouseMove(MouseEventArgs e)
        {
            if (!_isPressed)
            {
                return;
            }

            lock (RenderRule) {
                RenderRule.SetTextCursor(
                    new Point(
                        e.Location.X - RenderRule.Area.X,
                        e.Location.Y - RenderRule.Area.Y));
            }
        }
コード例 #20
0
        public ChunkElement(int x, int y, int width, int height, WidgetMouseEvent onClick)
        {
            Area = new Rectangle(x, y, width, height);
            RenderRule.SetSize(width, height);
            OnClick += onClick;

            m_Attributes = new byte[TilesTotal];
            m_Tiles      = new byte[TilesTotal][];
            m_Textures   = new Texture2D[TilesTotal][];
            for (int i = 0; i < TilesTotal; i++)
            {
                m_Tiles[i]    = new byte[4];
                m_Textures[i] = new Texture2D[4];
            }
        }
コード例 #21
0
        public TilesetAllInOne(int x, int y, int width, int height, WidgetEvent onClick)
        {
            Area = new Rectangle(x, y, width, height);
            RenderRule.SetSize(width, height);
            OnClick += onClick;

            m_Attributes = new byte[Data.TileSet.TilesPerSet];
            m_Tiles      = new byte[Data.TileSet.TilesPerSet][];
            m_Textures   = new Texture2D[Data.TileSet.TilesPerSet][];
            for (int i = 0; i < Data.TileSet.TilesPerSet; i++)
            {
                m_Tiles[i]    = new byte[4];
                m_Textures[i] = new Texture2D[4];
            }
        }
コード例 #22
0
ファイル: ComboBox.cs プロジェクト: yadiate/MonoGameGui
        protected internal override void MouseMove(MouseEventArgs e)
        {
            RenderRule.HighlightItem = -1;

            if (!IsToggled)
            {
                return;
            }

            var number = RenderRule.GetItem(e.Location);

            if (number.HasValue)
            {
                RenderRule.HighlightItem = number.Value;
            }
        }
コード例 #23
0
ファイル: Label.cs プロジェクト: yadiate/MonoGameGui
        private void Resize()
        {
            var size = RenderRule.Font.MeasureString(RenderRule.Label);

            if (RenderRule.Image != null)
            {
                Area = new Rectangle(Area.X, Area.Y,
                                     (int)size.X + Padding + RenderRule.Image.Width,
                                     (size.Y > RenderRule.Image.Height) ? (int)size.Y : RenderRule.Image.Height);
            }
            else
            {
                Area = new Rectangle(Area.X, Area.Y, (int)size.X, (int)size.Y);
            }

            RenderRule.SetSize(Area.Width, Area.Height);
        }
コード例 #24
0
ファイル: Metatile.cs プロジェクト: lmaxim/MultiScrollNES
        public MetaTile(int index, int x, int y, int width, int height, WidgetMouseEvent onClick, int tiles_width = 2, int tiles_height = 2)
        {
            m_TilesWidth  = tiles_width;
            m_TilesHeight = tiles_height;

            int tilecount = tiles_width * tiles_height;

            m_Tiles    = new byte[tilecount];
            m_Textures = new Texture2D[tilecount];
            m_FlipH    = new bool[tilecount];
            m_FlipV    = new bool[tilecount];

            m_TileIndex = index;
            Area        = new Rectangle(x, y, width, height);
            RenderRule.SetSize(width, height);
            m_OnClick += onClick;
        }
コード例 #25
0
        public SymbolSelector(RenderRule rule)
        {
            InitializeComponent();
            this.rule = rule;
            switch (rule.geometrysymbolizer.sign)
            {
            case SymbolizerType.POINT:
                pointsymbolizer pointsymbolizer = (pointsymbolizer)rule.geometrysymbolizer;
                textBox.Text            = pointsymbolizer.size.ToString();
                outlineColor.Visibility = Visibility.Collapsed;
                outlineLabel.Visibility = Visibility.Collapsed;
                solidColor.Fill         = new SolidColorBrush((Color)pointsymbolizer.color);
                break;

            case SymbolizerType.LINE:
                linesymbolizer linesymbolizer = (linesymbolizer)rule.geometrysymbolizer;
                textBox.Text            = linesymbolizer.width.ToString();
                outlineColor.Visibility = Visibility.Collapsed;
                outlineLabel.Visibility = Visibility.Collapsed;
                solidColor.Fill         = new SolidColorBrush((Color)linesymbolizer.color);
                break;

            case SymbolizerType.POLYGON:
                polygonsymbolizer polygonsymbolizer = (polygonsymbolizer)rule.geometrysymbolizer;
                textBox.Text      = polygonsymbolizer.strokewidth.ToString();
                outlineColor.Fill = new SolidColorBrush((Color)polygonsymbolizer.strokecolor);
                solidColor.Fill   = new SolidColorBrush((Color)polygonsymbolizer.fillcolor);
                break;

            case SymbolizerType.TEXT:
                break;
            }

            //if (symbol.brush == null)
            //{
            //    outlineColor.Visibility = Visibility.Collapsed;
            //    outlineLabel.Visibility = Visibility.Collapsed;
            //    solidColor.Fill = symbol.pen.Brush;
            //    return;
            //}
            //outlineColor.Fill = symbol.pen.Brush;
            //solidColor.Fill = symbol.brush;
        }
コード例 #26
0
        private void dataGrid_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            int id = dataGrid.SelectedIndex;

            if (id != -1)
            {
                RenderRule rule = list[id].rule;
                switch (rule.geometrysymbolizer.sign)
                {
                case SymbolizerType.POINT:
                    PointSymbolSelector form_point = new PointSymbolSelector(rule);
                    if (form_point.ShowDialog() == true)
                    {
                        list[id].brush = form_point.brush;
                        list[id].rule  = form_point.rule;
                        dataGrid.Items.Refresh();
                    }
                    break;

                case SymbolizerType.POLYGON:
                    PolygonSymbolSelector form_polygon = new PolygonSymbolSelector(rule);
                    if (form_polygon.ShowDialog() == true)
                    {
                        list[id].brush = form_polygon.brush;
                        list[id].rule  = form_polygon.rule;
                        dataGrid.Items.Refresh();
                    }
                    break;

                default:
                    SymbolSelector form = new SymbolSelector(rule);
                    if (form.ShowDialog() == true)
                    {
                        list[id].brush = form.brush;
                        list[id].rule  = form.rule;
                        dataGrid.Items.Refresh();
                    }
                    break;
                }
            }
            //int id = Convert.ToInt32(((System.Windows.Shapes.Rectangle)e.Source).Name);
        }
コード例 #27
0
ファイル: ScrollBars.cs プロジェクト: yadiate/MonoGameGui
        internal override void Layout()
        {
            // Pixel size of panel to contain child widgets
            var outerArea = BuildContainerRenderArea();

            RenderRule.BuildBars(outerArea);

            foreach (var widget in Children)
            {
                widget.AbsoluteArea = new Rectangle(
                    widget.Area.X + AbsoluteInputArea.X - (int)(RenderRule.Horizontal.ChildOffset),
                    widget.Area.Y + AbsoluteInputArea.Y - (int)(RenderRule.Vertical.ChildOffset),
                    widget.Area.Width,
                    widget.Area.Height);
                widget.SissorArea = AbsoluteInputArea;
                if (Parent != null)
                {
                    widget.SissorArea = Rectangle.Intersect(widget.SissorArea, SissorArea);
                }
            }

            base.Layout();
        }
コード例 #28
0
ファイル: ComboBox.cs プロジェクト: lmaxim/MultiScrollNES
 protected internal override void MouseUp(InputEventMouse e)
 {
     if (IsToggled)
     {
         int?value = RenderRule.GetItem(e.Position);
         if (value.HasValue && value != _selectedItem)
         {
             _selectedItem = RenderRule.GetItem(e.Position);
             if (_selectedItem.HasValue)
             {
                 if (_dropDownItems[_selectedItem.Value].OnClick != null)
                 {
                     _dropDownItems[_selectedItem.Value].OnClick(this);
                 }
                 Icon  = _dropDownItems[_selectedItem.Value].Item.Item1;
                 Label = _dropDownItems[_selectedItem.Value].Item.Item2;
                 if (OnSelectionChanged != null)
                 {
                     OnSelectionChanged(this);
                 }
             }
         }
     }
 }
コード例 #29
0
ファイル: MapControl.cs プロジェクト: gisdevelope/MercuryGIS
 private void paintMutiLinebyRule(Graphics g, Graphics text_g, Feature feature, RenderRule rule, RSTransform rstransform)
 {
 }
コード例 #30
0
ファイル: Menu.cs プロジェクト: lmaxim/MultiScrollNES
 protected internal override void OnLayout()
 {
     Area = new Rectangle(0, 0, (Parent == null) ? Owner.ScreenBounds.Width : Parent.InputArea.Width, Height);
     RenderRule.SetSize(Area.Width, Area.Height);
 }