/*
* GChemPaint library
* window.h
*
* Copyright (C) 2006 Jean Bréfort <jean.brefort@normalesup.org>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
* USA
*/
#ifndef GCP_WINDOW_H
#define GCP_WINDOW_H
#include <gtk/gtkwidget.h>
#include <gtk/gtkwindow.h>
#include <gtk/gtkuimanager.h>
class gcpApplication;
class gcpDocument;
class gcpWindow
{
public:
gcpWindow (gcpApplication *App, char const *Theme = NULL, char const *extra_ui = NULL);
virtual ~gcpWindow ();
void OnFileNew ();
void OnFileOpen ();
void OnProperties ();
void OnPrint ();
void SetActive (gcpDocument* pDoc, GtkWidget* w);
void OnUndo ();
void OnRedo ();
void OnSelectAll ();
void OnPasteSelection ();
void OnCutSelection ();
void OnCopySelection ();
void OnDeleteSelection ();
void OnPreferences ();
void Zoom (double zoom);
void ClearStatus ();
void SetStatusText (const char* text);
void Show ();
bool OnKeyPressed(GtkWidget* widget, GdkEventKey* ev);
bool OnKeyReleased(GtkWidget* widget, GdkEventKey* ev);
bool Close ();
GtkWindow *GetWindow () {return m_Window;}
virtual void OnSave ();
virtual char const *GetDefaultTitle ();
gcpApplication *GetApplication () {return m_App;}
gcpDocument *GetDocument () {return m_Doc;}
void Destroy ();
void SetTitle (char const *title);
void ActivateActionWidget (char const *path, bool activate);
bool VerifySaved ();
protected:
gcpApplication *m_App;
gcpDocument *m_Doc;
GtkUIManager* m_UIManager;
private:
GtkWindow* m_Window;
GtkWidget* m_Bar; //GtkStatusBar
unsigned m_statusId;
unsigned m_MessageId; //currently displayed message in the status bar
};
#endif // GCP_WINDOW_H
syntax highlighted by Code2HTML, v. 0.9.1