예제 #1
0
파일: MapLoader.cs 프로젝트: xnum/hasuite
        private static void LoadToolTips(WzImage mapImage, Board mapBoard)
        {
            WzSubProperty tooltipsParent      = (WzSubProperty)mapImage["ToolTip"];
            WzImage       tooltipsStringImage = (WzImage)Program.WzManager.String["ToolTipHelp.img"];

            if (!tooltipsStringImage.Parsed)
            {
                tooltipsStringImage.ParseImage();
            }
            WzSubProperty tooltipStrings = (WzSubProperty)tooltipsStringImage["Mapobject"][mapBoard.MapInfo.id.ToString()];

            if (tooltipStrings == null || tooltipsParent == null)
            {
                return;
            }
            //if (tooltipStrings == null ^ tooltipsParent == null) throw new Exception("at LoadToolTips, only one tooltip parent is null");
            for (int i = 0; true; i++)
            {
                string        num           = i.ToString();
                WzSubProperty tooltipString = (WzSubProperty)tooltipStrings[num];
                WzSubProperty tooltipProp   = (WzSubProperty)tooltipsParent[num];
                WzSubProperty tooltipChar   = (WzSubProperty)tooltipsParent[num + "char"];
                if (tooltipString == null && tooltipProp == null)
                {
                    break;
                }
                if (tooltipString == null ^ tooltipProp == null)
                {
                    continue;
                }
                string title = InfoTool.GetOptionalString(tooltipString["Title"]);
                string desc  = InfoTool.GetOptionalString(tooltipString["Desc"]);
                int    x1    = InfoTool.GetInt(tooltipProp["x1"]);
                int    x2    = InfoTool.GetInt(tooltipProp["x2"]);
                int    y1    = InfoTool.GetInt(tooltipProp["y1"]);
                int    y2    = InfoTool.GetInt(tooltipProp["y2"]);
                Microsoft.Xna.Framework.Rectangle tooltipPos = new Microsoft.Xna.Framework.Rectangle(x1, y1, x2 - x1, y2 - y1);
                HaCreator.MapEditor.ToolTip       tt         = new HaCreator.MapEditor.ToolTip(mapBoard, tooltipPos, title, desc);
                mapBoard.BoardItems.ToolTips.Add(tt);
                if (tooltipChar != null)
                {
                    x1         = InfoTool.GetInt(tooltipChar["x1"]);
                    x2         = InfoTool.GetInt(tooltipChar["x2"]);
                    y1         = InfoTool.GetInt(tooltipChar["y1"]);
                    y2         = InfoTool.GetInt(tooltipChar["y2"]);
                    tooltipPos = new Microsoft.Xna.Framework.Rectangle(x1, y1, x2 - x1, y2 - y1);
                    ToolTipChar ttc = new ToolTipChar(mapBoard, tooltipPos, tt);
                    mapBoard.BoardItems.CharacterToolTips.Add(ttc);
                }
            }
        }
예제 #2
0
파일: Mouse.cs 프로젝트: hanistory/hasuite
 private void CreateTooltip()
 {
     ToolTip tt = new ToolTip(Board, new Xna.Rectangle(X, Y, 0, 0), "Title", "Description");
     Board.BoardItems.ToolTips.Add(tt);
     BindItem(tt.PointA, new Xna.Point());
     BindItem(tt.PointC, new Xna.Point());
 }
예제 #3
0
 public override void RemoveItem(ref List<UndoRedoAction> undoPipe)
 {
     if (boundTooltip == null) return; //already removed via the parent tooltip
     base.RemoveItem(ref undoPipe);
     undoPipe.Add(UndoRedoManager.ToolTipUnlinked(boundTooltip, this));
     boundTooltip.CharacterToolTip = null;
     boundTooltip = null;
 }
예제 #4
0
 public ToolTipChar(Board board, Rectangle rect, ToolTip boundTooltip)
     : base(board, rect)
 {
     PointA = new ToolTipDot(this, board, rect.Left, rect.Top, false);
     PointB = new ToolTipDot(this, board, rect.Right, rect.Top, false);
     PointC = new ToolTipDot(this, board, rect.Right, rect.Bottom, false);
     PointD = new ToolTipDot(this, board, rect.Left, rect.Bottom, false);
     board.BoardItems.ToolTipDots.Add((ToolTipDot)PointA);
     board.BoardItems.ToolTipDots.Add((ToolTipDot)PointB);
     board.BoardItems.ToolTipDots.Add((ToolTipDot)PointC);
     board.BoardItems.ToolTipDots.Add((ToolTipDot)PointD);
     LineAB = new ToolTipLine(board, PointA, PointB);
     LineBC = new ToolTipLine(board, PointB, PointC);
     LineCD = new ToolTipLine(board, PointC, PointD);
     LineDA = new ToolTipLine(board, PointD, PointA);
     LineAB.yBind = true;
     LineBC.xBind = true;
     LineCD.yBind = true;
     LineDA.xBind = true;
     BoundTooltip = boundTooltip;
 }
예제 #5
0
 public static UndoRedoAction ToolTipUnlinked(ToolTip tt, ToolTipChar ttc)
 {
     return new UndoRedoAction(tt, UndoRedoType.ToolTipUnlinked, ttc, null);
 }
예제 #6
0
 private static void LoadToolTips(WzImage mapImage, Board mapBoard)
 {
     WzSubProperty tooltipsParent = (WzSubProperty)mapImage["ToolTip"];
     WzImage tooltipsStringImage = (WzImage)Program.WzManager.String["ToolTipHelp.img"];
     if (!tooltipsStringImage.Parsed) tooltipsStringImage.ParseImage();
     WzSubProperty tooltipStrings = (WzSubProperty)tooltipsStringImage["Mapobject"][mapBoard.MapInfo.id.ToString()];
     if (tooltipStrings == null || tooltipsParent == null) return;
     //if (tooltipStrings == null ^ tooltipsParent == null) throw new Exception("at LoadToolTips, only one tooltip parent is null");
     for (int i = 0; true; i++)
     {
         string num = i.ToString();
         WzSubProperty tooltipString = (WzSubProperty)tooltipStrings[num];
         WzSubProperty tooltipProp = (WzSubProperty)tooltipsParent[num];
         WzSubProperty tooltipChar = (WzSubProperty)tooltipsParent[num + "char"];
         if (tooltipString == null && tooltipProp == null) break;
         if (tooltipString == null ^ tooltipProp == null) continue;
         string title = InfoTool.GetOptionalString(tooltipString["Title"]);
         string desc = InfoTool.GetOptionalString(tooltipString["Desc"]);
         int x1 = InfoTool.GetInt(tooltipProp["x1"]);
         int x2 = InfoTool.GetInt(tooltipProp["x2"]);
         int y1 = InfoTool.GetInt(tooltipProp["y1"]);
         int y2 = InfoTool.GetInt(tooltipProp["y2"]);
         Microsoft.Xna.Framework.Rectangle tooltipPos = new Microsoft.Xna.Framework.Rectangle(x1, y1, x2 - x1, y2 - y1);
         HaCreator.MapEditor.ToolTip tt = new HaCreator.MapEditor.ToolTip(mapBoard, tooltipPos, title, desc);
         mapBoard.BoardItems.ToolTips.Add(tt);
         if (tooltipChar != null)
         {
             x1 = InfoTool.GetInt(tooltipChar["x1"]);
             x2 = InfoTool.GetInt(tooltipChar["x2"]);
             y1 = InfoTool.GetInt(tooltipChar["y1"]);
             y2 = InfoTool.GetInt(tooltipChar["y2"]);
             tooltipPos = new Microsoft.Xna.Framework.Rectangle(x1, y1, x2 - x1, y2 - y1);
             ToolTipChar ttc = new ToolTipChar(mapBoard, tooltipPos, tt);
             mapBoard.BoardItems.CharacterToolTips.Add(ttc);
         }
     }
 }