rendered paste bodyusing 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();
}
}