public MappingWidget(IContainer Parent) : base(Parent) { Editor.MainWindow.MainEditorWidget = this; Grid layout = new Grid(this); layout.SetColumns( new GridSize(222, Unit.Pixels), new GridSize(1, Unit.Pixels), new GridSize(1) ); // Left sidebar MapSelectPanel = new MapSelectPanel(layout); // Left sidebar divider Widget LeftSidebarDivider = new Widget(layout); LeftSidebarDivider.SetBackgroundColor(28, 50, 73); LeftSidebarDivider.SetGridColumn(1); Submodes = new SubmodeView(layout); Submodes.OnSelectionChanged += delegate(BaseEventArgs e) { ChangeSubmode(); }; Submodes.SetHeaderHeight(31); Submodes.SetHeaderSelHeight(1); Submodes.SetTextY(6); Submodes.SetGridColumn(2); Submodes.CreateTab("Tiles"); //Submodes.CreateTab("Events"); Submodes.CreateTab("Connections"); //Submodes.CreateTab("Encounters"); //Submodes.CreateTab("Properties"); MapViewerTiles = new MapViewerTiles(Submodes.GetTab(0)); //MapViewerEvents = new MapViewerEvents(Submodes.GetTab(1)); MapViewerConnections = new MapViewerConnections(Submodes.GetTab(1)); //MapViewerEncounters = new MapViewerEncounters(Submodes.GetTab(3)); //MapViewerProperties = new MapViewerProperties(Submodes.GetTab(4)); MapImageWidget = new MapImageWidget(MapViewerTiles.MainContainer); MapImageWidget.SetZIndex(3); // 1 for normal map connections, 2 for the selected map connection, so 3 for the main map. MapViewerTiles.MapWidget = MapImageWidget; //MapViewerEvents.MapWidget = MapImageWidget; MapViewerConnections.MapWidget = MapImageWidget; //MapViewerEncounters.MapWidget = MapImageWidget; //mapViewerProperties.MapWidget = MapImageWidget; SetHorizontalScroll(0.5); SetVerticalScroll(0.5); }
public void TestForOverlapBetweenMaps(MapImageWidget a, MapImageWidget b) { if (new Rect(a.Position, a.Size).Overlaps(new Rect(b.Position, b.Size))) { // Intersection of the two maps int nx = Math.Max(a.Position.X, b.Position.X); int ny = Math.Max(a.Position.Y, b.Position.Y); int nw = Math.Min(a.Position.X + a.Size.Width, b.Position.X + b.Size.Width) - nx; int nh = Math.Min(a.Position.Y + a.Size.Height, b.Position.Y + b.Size.Height) - ny; Widget overlapwidget = new Widget(MainContainer); overlapwidget.SetZIndex(4); // 1 for map connections, 2 for the selected map connection, 3 for the main map, so 4 for overlaps overlapwidget.SetPosition(nx, ny); overlapwidget.SetSize(nw, nh); overlapwidget.SetBackgroundColor(255, 22, 47, 103); TileOverlaps.Add(overlapwidget); } }