public static void Open(MainWindow window, Model model) { bool goAhead = true; if (model != null && model.IsDirty && !CommandDoer.PromptSave(window, model)) { goAhead = false; } if (goAhead) { System.Windows.Forms.OpenFileDialog ofd = new System.Windows.Forms.OpenFileDialog(); ofd.InitialDirectory = CommandDoer.MapsDirectory; System.Windows.Forms.DialogResult result = ofd.ShowDialog(); if (result == System.Windows.Forms.DialogResult.OK) { string filename = ofd.FileName; MapParser mapParser = new MapParser(filename, window.TileTemplateLookup); window.ActiveModel = mapParser.Parse(); window.ActiveModel.IsDirty = false; window.InvalidateDrawing(); window.UpdateTitle(); } } }
private void Draw(MouseEventArgs e) { Point p = e.GetPosition(this.clicker_catcher); int x = (int)p.X; int y = (int)p.Y; int layer = Model.LayerCutoff; y -= this.RenderTop; x -= this.RenderMiddle; y += 8 * (layer + 1); int col = (y + x / 2) / 16; int row = (y - x / 2) / 16; this.LastX = col; this.LastY = row; if (this.isDrawing) { if (this.level.ModifyTile(col, row, layer, this.isErasing ? null : Model.ActiveTileSwatch)) { this.level.IsDirty = true; this.Refresh(col, row); } } MainWindow.UpdateTitle(); }
// returns false if the user hit cancel or the document was not saved. public static bool Save(MainWindow window, Model model) { if (model == null) { return(false); } if (model.Path == null) { return(CommandDoer.SaveAs(window, model)); } else { if (model.IsDirty) { string fileContents = model.Serialize(); System.IO.File.WriteAllText(model.Path, fileContents); model.IsDirty = false; window.UpdateTitle(); } } return(false); }
public static void New(MainWindow window, Model model) { window.ActiveModel = new Model(16, 14); window.InvalidateDrawing(); window.UpdateTitle(); }