
#ifndef _KRYOMOL_H_
#define _KRYOMOL_H_

#ifdef HAVE_CONFIG_H
#include <config.h>
#endif

#include <kapplication.h>
#include <kparts/mainwindow.h>

class KToggleAction;

/** KryoMol KPart container*/
class KryoMol : public KParts::MainWindow
{
  Q_OBJECT
public:
  KryoMol();
  virtual ~KryoMol();
  void LoadUrl(const KUrl& url);
protected:
  /**
   * This method is called when it is time for the app to save its
   * properties for session management purposes.
   */
  void saveProperties(KConfig *);

  /**
   * This method is called when this app is restored.  The KConfig
   * object points to the session management config file that was saved
   * with @ref saveProperties
   */
  void readProperties(KConfig *);
signals:
  void paste();
  void close();
  void reload();
private slots:
  void OnPaste();
  void OnFileClose();
  void OnFileOpen();
  void OnReload();
  void optionsShowToolbar();
  void optionsShowStatusbar();
  void optionsConfigureKeys();
private:
  void setupAccel();
  void setupActions();

private:
  KParts::ReadOnlyPart *m_part;
  KToggleAction *m_toolbarAction;
  KToggleAction *m_statusbarAction;
};

#endif // _KRYOMOL_H_
