public static void SetChooserShortcuts(FileChooserDialog chooser, params string [] shortcuts) { foreach (string shortcut in shortcuts) { if (shortcut != null) { try { chooser.AddShortcutFolder(shortcut); } catch {} } } }
private Application(string[] args) { selection = new Selection(); Glade.XML.CustomHandler = GladeCustomWidgetHandler; Glade.XML gxml = new Glade.XML("editor.glade", "MainWindow"); gxml.Autoconnect(this); if (MainWindow == null) { throw new Exception("Couldn't resolve all widgets"); } Tileset.LoadEditorImages = true; // Initialize status bar for PrintStatus() printStatusContextID = sbMain.GetContextId("PrintStatus"); printStatusMessageID = sbMain.Push(printStatusContextID, "Welcome to Tuxjunior-Editor."); MainWindow.DeleteEvent += OnDelete; MainWindow.SetSizeRequest(900, 675); MainWindowTitlePrefix = MainWindow.Title; UpdateTitlebar(); UpdateRecentDocuments(); MainWindow.Icon = EditorStock.WindowIcon; //HACK: not a typo, EditorStock adds icons to the stock only when called 2x or more.. MainWindow.Icon = EditorStock.WindowIcon; MainWindow.ShowAll(); // Tool "Select" is selected by default - call its event handler OnToolSelect(null, null); fileChooser = new FileChooserDialog("Choose a Level", MainWindow, FileChooserAction.Open, new object[] {}); if (Settings.Instance.LastDirectoryName == null) { if (Settings.Instance.TuxjuniorData != null) { Settings.Instance.LastDirectoryName = Settings.Instance.TuxjuniorData + "levels" + System.IO.Path.DirectorySeparatorChar; } else { Settings.Instance.LastDirectoryName = Environment.ExpandEnvironmentVariables("%HOME%"); } } fileChooser.SetCurrentFolder(Settings.Instance.LastDirectoryName); fileChooser.AddButton(Gtk.Stock.Cancel, Gtk.ResponseType.Cancel); fileChooser.AddButton(Gtk.Stock.Ok, Gtk.ResponseType.Ok); fileChooser.DefaultResponse = Gtk.ResponseType.Ok; Gtk.FileFilter filter = new Gtk.FileFilter(); filter.Name = "Tuxjunior Levels and Worldmaps"; filter.AddPattern("*.stl"); filter.AddPattern("*.stwm"); fileChooser.AddFilter(filter); Gtk.FileFilter levelfilter = new Gtk.FileFilter(); levelfilter.Name = "Tuxjunior Levels"; levelfilter.AddPattern("*.stl"); fileChooser.AddFilter(levelfilter); Gtk.FileFilter worldmapfilter = new Gtk.FileFilter(); worldmapfilter.Name = "Tuxjunior Worldmaps"; worldmapfilter.AddPattern("*.stwm"); fileChooser.AddFilter(worldmapfilter); Gtk.FileFilter brushfilter = new Gtk.FileFilter(); brushfilter.Name = "Tuxjunior-Editor Brushes"; brushfilter.AddPattern("*.csv"); fileChooser.AddFilter(brushfilter); Gtk.FileFilter all = new Gtk.FileFilter(); all.Name = "All Files"; all.AddPattern("*"); fileChooser.AddFilter(all); if (Settings.Instance.TuxjuniorData != null) { try { fileChooser.AddShortcutFolder(Settings.Instance.TuxjuniorData + System.IO.Path.DirectorySeparatorChar + "levels"); } catch (Exception e) { LogManager.Log(LogLevel.Warning, "Couldn't add tuxjunior level directory to File Chooser: " + e.Message); } } if (args.Length > 0) { Load(args[0]); } UndoManager.OnAddCommand += OnUndoManager; UndoManager.OnRedo += OnUndoManager; UndoManager.OnUndo += OnUndoManager; PrintStatus("Welcome to Tuxjunior-Editor."); }