using System; using System.IO; using Gdk; using Gtk; public class MainWindow: Gtk.Window { protected Gtk.EventBox evtMain; protected Gtk.Image imgMain; private string config_file; private string base_directory; private string album_directory; private int timeout; public MainWindow (): base ("") { Stetic.Gui.Build (this, typeof(MainWindow)); config_file = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal); // config_file = Path.Combine(config_file, ".stacks-frame"); } protected void OnDeleteEvent (object sender, DeleteEventArgs a) { Application.Quit (); a.RetVal = true; } public void ReadConfig () { if (File.Exists(config_file)) { FileStream stream = new FileStream(config_file, FileMode.Open, FileAccess.Read); StreamReader reader = new StreamReader(stream); try { base_directory = reader.ReadLine(); album_directory = reader.ReadLine(); timeout = Int32.Parse(reader.ReadLine()); } catch (Exception ex) { MessageDialog dialog = new MessageDialog(this, DialogFlags.DestroyWithParent, MessageType.Error, ButtonsType.Close, ex.Message); dialog.Run(); Application.Quit(); } reader.Close(); stream.Close(); } else { // Setup initial configurations base_directory = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal); base_directory = Path.Combine(base_directory, "Pictures"); album_directory = Path.Combine(base_directory, "Default"); timeout = 60; // Create the initial album if (!Directory.Exists(Path.Combine(base_directory, album_directory))) { Directory.CreateDirectory(album_directory); } // Save it WriteConfig(); } } public void SetImage(System.Byte[] image) { Pixbuf buf = new Pixbuf(image); imgMain.Pixbuf = buf; } public void WriteConfig() { FileStream stream = new FileStream(config_file, FileMode.OpenOrCreate, FileAccess.Write); StreamWriter writer = new StreamWriter(stream); writer.WriteLine(base_directory); writer.WriteLine(album_directory); writer.WriteLine(timeout); writer.Close(); stream.Close(); } }