/* Dr Genius an interactive geometry software
* (C) Copyright Hilaire Fernandes 2003
* hilaire@ofset.org
*
*
*
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public Licences as by published
* by the Free Software Foundation; either version 2; or (at your option)
* any later version
*
* This program is distributed in the hope that it will entertaining,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILTY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
* Publis 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.
* 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef DRGENIUS_VIEW_H
#define DRGENIUS_VIEW_H
#include <gtk/gtk.h>
#include "xmlinclude.h"
enum drgeniusViewType
{
FIGURE_CHILD,
EDITOR_CHILD
};
class drgeniusView
{
public:
drgeniusView (drgeniusViewType type, gboolean save);
virtual ~ drgeniusView ();
virtual gboolean save (gchar *filename);
virtual gboolean saveNode (xmlNodePtr tree) = 0;
virtual gboolean undo (gint n);
virtual gboolean redo (gint n);
virtual gboolean undoActive ();
virtual gboolean redoActive ();
void setToolbar (GtkWidget *w);
GtkWidget * toolbar ();
// Force the view to update its user interface (show/hide tools)
// according to its state defined into the document object (ie
// figure, etc.)
virtual void updateUserInterface () = 0;
virtual gpointer createWidgetView () = 0;
virtual GtkWidget * widgetView () = 0;
gboolean supportsSave ();
drgeniusViewType childType ();
gchar * filename ();
gchar * name ();
void setName (const gchar *name);
void setFilename (const gchar *name);
protected:
drgeniusViewType p_childType;
gboolean p_supportsSave;
gchar *p_filename, *p_name;
GtkWidget *p_toolbar;
};
#endif /* DRGENIUS_VIEW_H */
syntax highlighted by Code2HTML, v. 0.9.1