#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>
#include <sys/stat.h>

#include <iostream>
#include <vector>

#include <gui/window.h>
#include <gui/layoutview.h>
#include <gui/button.h>
#include <gui/menu.h>
#include <gui/listview.h>
#include <gui/tabview.h>
#include <gui/imagebutton.h>
#include <gui/frameview.h>
#include <gui/stringview.h>
#include <gui/separator.h>
#include <gui/textview.h>
#include <gui/requesters.h>
#include <gui/image.h>
#include <gui/point.h>
#include <gui/guidefines.h>
#include <util/application.h>
#include <util/message.h>
#include <util/settings.h>
#include <util/string.h>
#include <util/invoker.h>
#include <util/datetime.h>
#include <util/exceptions.h>
#include <storage/file.h>
#include <storage/path.h>
#include <storage/fsnode.h>
#include <storage/directory.h>
#include <storage/filereference.h>

class CommThread;

class MainWindow:public os::Window
{
public:
	MainWindow();
	virtual void HandleMessage( os::Message *pcMessage );
	virtual bool OkToQuit();

private:
	void SetBookmarkPath();
	void LoadBookmarkList( os::Directory *pcDirectory );
	void AddBookmarkToList();
	void RemoveBookmarkFromList();
	void SelectBookmarkFromList();
	os::BitmapImage *LoadImageFromResource( os::String zResource );
	void GetUsers( const os::String& bufstring );
	void AddStringToTextView( const char* pzName ) const;
	void AboutRequested();

	os::ListView* m_pcBookmarkList;
	os::ListView* m_pcUserList;
	os::TextView* m_pcTextBookmarkName;
	os::TextView* m_pcTextUserName;
	os::TextView* m_pcTextUserPassword;
	os::TextView* m_pcTextUserRealName;
	os::TextView* m_pcTextServerName;
	os::TextView* m_pcTextServerPort;
	os::TextView* m_pcTextServerChannel;
	os::TextView* m_pcTextView;
	os::TextView* m_pcMessageText;

	os::Directory *m_pcDirectory;
	os::String stdName;
	os::String stdPassword;
	os::String stdRealName;
	os::String stdServerName;
	os::String stdServerPort;
	os::String stdServerChannel;

	CommThread *m_CommThread;
};

#endif