added some functionality 

now we can do this

import gypsython
gypsython.insertText('hello')
gypsython.setPaperColor('yellow')
gypsython.editHeader()
gypsython.insertText('header')
gypsython.editFooter()
gypsython.insertText('footer')
gypsython.editBody()
gypsython.insertText('body')
gypsython.openFile('dummy.abw')

ciao
Mauro

p.s. this is my first time patch , so I dunno it it's good :)
? mauro.patch
Index: Gypsython.cpp
===================================================================
RCS file: /cvsroot/abiword-plugins/tools/gypsython/xp/Gypsython.cpp,v
retrieving revision 1.3
diff -u -r1.3 Gypsython.cpp
--- Gypsython.cpp	4 Dec 2002 17:59:28 -0000	1.3
+++ Gypsython.cpp	5 Dec 2002 17:23:39 -0000
@@ -26,18 +26,21 @@
 Gypsython * mygypsython;
 
 Gypsython::Gypsython(void):
-	m_pCurDoc(NULL)
-//	m_pCurView(NULL),
-//	m_pFrame(NULL),
-{
-	m_pApp = XAP_App::getApp();
-	m_pFrame = XAP_App::getApp()->getLastFocussedFrame();
-	m_pCurView = static_cast <FV_View *>(m_pFrame->getCurrentView());	
+  m_pCurDoc(NULL),
+  m_sModulePath(0)
+
+  //	m_pCurView(NULL),
+  //	m_pFrame(NULL),
+
+{
+  m_pApp = XAP_App::getApp();
+  m_pFrame = XAP_App::getApp()->getLastFocussedFrame();
+  m_pCurView = static_cast <FV_View *>(m_pFrame->getCurrentView());	
 }
 
 Gypsython::~Gypsython(void)
 {
-	
+  FREEP( m_sModulePath );
 }
 
 
@@ -47,35 +50,98 @@
 extern "C" {
 #endif
 
-static PyObject *
-Gypsython_insertText(PyObject *self, PyObject *pyArgs)
-{
-	char * pystring;
-	
+  // This inserts a test inside Abiword  
+  static PyObject *
+  Gypsython_insertText(PyObject *self, PyObject *pyArgs)
+  {
+    char * pystring;
+    
     PyArg_ParseTuple(pyArgs, "s", &pystring);
+    
+    mygypsython->insertText( pystring );
+    
+    Py_INCREF(Py_None);
+    return Py_None;
+  }
 
-	mygypsython->insertText( pystring );
-	
-	Py_INCREF(Py_None);
+  static PyObject *
+  Gypsython_setPaperColor(PyObject *self, PyObject *pyArgs)
+  {
+    char * pycolor;
+    
+    PyArg_ParseTuple(pyArgs, "s", &pycolor);
+    
+    mygypsython->setPaperColor( pycolor );
+    
+    Py_INCREF(Py_None);
     return Py_None;
-}
+  }
 
-static PyMethodDef GypysthonMethods[] = {
-			{"insertText", Gypsython_insertText, METH_VARARGS, "let's you insert some text in abiword"},
-			{NULL, NULL} //Sentinel 
-			};
-
-bool initgypsython()
-{
-	
-	static char modname__doc__[] = "This module let's you work with python.";
-	
-	(void) Py_InitModule("gypsython", GypysthonMethods, modname__doc__);
-	
-	return true;
+  static PyObject *
+  Gypsython_editHeader(PyObject *self, PyObject *pyArgs)
+  {
+    mygypsython->editHeader();
+    
+    Py_INCREF(Py_None);
+    return Py_None;
+  }
 
-}
 
+  static PyObject *
+  Gypsython_editFooter(PyObject *self, PyObject *pyArgs)
+  {
+    mygypsython->editFooter();
+    
+    Py_INCREF(Py_None);
+    return Py_None;
+  }
+
+  static PyObject *
+  Gypsython_editBody(PyObject *self, PyObject *pyArgs)
+  {
+    mygypsython->editBody();
+    
+    Py_INCREF(Py_None);
+    return Py_None;
+  }
+
+
+  static PyObject *
+  Gypsython_openFile(PyObject *self, PyObject *pyArgs)
+  {
+    char * pyfilename;
+    
+    PyArg_ParseTuple(pyArgs, "s", &pyfilename);
+    
+    mygypsython->openFile( pyfilename );
+    Py_INCREF(Py_None);
+    return Py_None;
+
+  }
+
+
+  // Here it's where you have to add your method to be avaible from the python namespace
+  static PyMethodDef GypysthonMethods[] = {
+    {"insertText", Gypsython_insertText, METH_VARARGS, "let's you insert some text in abiword"},
+    {"setPaperColor", Gypsython_setPaperColor, METH_VARARGS, "change paper's color"},
+    {"editHeader", Gypsython_editHeader, METH_VARARGS, "Edits header"},
+    {"editFooter", Gypsython_editFooter, METH_VARARGS, "Edits footer"},
+    {"editBody", Gypsython_editBody, METH_VARARGS, "Edits boody"},
+    {"openFile", Gypsython_openFile, METH_VARARGS, "Open a file"},
+    {NULL, NULL} //Sentinel 
+  };
+  
+  bool initgypsython()
+  {
+    
+    static char modname__doc__[] = "This module let's you work with python.";
+    
+    (void) Py_InitModule("gypsython", GypysthonMethods);
+    
+    return true;
+    
+  }
+  
 #ifdef __cplusplus
 }
 #endif
@@ -86,100 +152,150 @@
 // insertText, Puts string on a view
 bool Gypsython::insertText(char * text)
 {
-	if(m_pCurView != NULL)
-	{
-		UT_UCSChar * pUCSText = (UT_UCSChar *) UT_calloc(strlen(text)+1,sizeof(UT_UCSChar));
-		UT_UCS4_strcpy_char((UT_UCS4Char *) pUCSText, text);
-		static_cast<FV_View *>(m_pCurView)->cmdCharInsert(pUCSText,strlen(text));
-		FREEP(pUCSText);
-		return true;
-	}
-	return false;
+  if(m_pCurView != NULL){
+    UT_UCSChar * pUCSText = (UT_UCSChar *) UT_calloc(strlen(text)+1,sizeof(UT_UCSChar));
+    UT_UCS4_strcpy_char((UT_UCS4Char *) pUCSText, text);
+    static_cast<FV_View *>(m_pCurView)->cmdCharInsert(pUCSText,strlen(text));
+    FREEP(pUCSText);
+    return true;
+  }
+  return false;
 }
 
-// 
+
+
+XAP_Frame * Gypsython::openFile(char * filename)
+{
+  XAP_Frame *     RETVAL;
+  
+  // printf("openFile\n");
+  RETVAL = m_pApp->newFrame();
+  RETVAL->loadDocument(filename, 0, true);
+
+  m_pCurView = static_cast <FV_View *>(m_pFrame->getCurrentView());
+  return RETVAL;
+
+}
+
+
+
+bool Gypsython::setPaperColor(char * color)
+{
+  static_cast<FV_View *>(m_pCurView)->setPaperColor((XML_Char*) color);
+  return true;
+
+}
+
+
+bool Gypsython::editHeader()
+{
+  static_cast<FV_View *>(m_pCurView)->cmdEditHeader();
+  return true;
+}
+
+bool Gypsython::editFooter()
+{
+  static_cast<FV_View *>(m_pCurView)->cmdEditFooter();
+  return true;
+}
+
+bool Gypsython::editBody()
+{
+
+ static_cast<FV_View *>(m_pCurView)->clearHdrFtrEdit();
+ static_cast<FV_View *>(m_pCurView)->warpInsPtToXY(0, 0, false);
+
+}
 // AskScriptFilename
 // -------------------
- 
-bool Gypsython::AskScriptFilename(char * modulename)
+
+bool Gypsython::AskScriptFilename()
 {
   XAP_DialogFactory * pDialogFactory
     = (XAP_DialogFactory *)(m_pFrame->getDialogFactory());
-	
-	XAP_Dialog_Id id = XAP_DIALOG_ID_FILE_OPEN;  
+  
+  XAP_Dialog_Id id = XAP_DIALOG_ID_FILE_OPEN;  
   
   XAP_Dialog_FileOpenSaveAs * pDialog
     = (XAP_Dialog_FileOpenSaveAs *)(pDialogFactory->requestDialog(id));
   UT_ASSERT(pDialog);
   if (!pDialog)
     return false;
-
+  
   pDialog->runModal(m_pFrame);
-
+  
   XAP_Dialog_FileOpenSaveAs::tAnswer ans = pDialog->getAnswer();
   bool bOK = (ans == XAP_Dialog_FileOpenSaveAs::a_OK);
 
-  if (bOK) strcpy(modulename,pDialog->getPathname());
+
+  if( (bOK) && (pDialog->getPathname()) )
+	     m_sModulePath = UT_strdup(pDialog->getPathname());
   
+
+  if (m_sModulePath == 0) return false; // oops
+  int length = strlen (m_sModulePath); 
+
+  if (length > 4) if (strcmp (m_sModulePath+length-4,".pyc") == 0) m_sModulePath[length-4] = 0;
+  if (length > 3) if (strcmp (m_sModulePath+length-3,".py") == 0) m_sModulePath[length-3] = 0;
+
+
   pDialogFactory->releaseDialog(pDialog);
   return true;
 }
 
 bool Gypsython::DoCommand()
 {
-	// Get the current view that the user is in.
-	char loadmodulestring[255];
-		 
-	if (!AskScriptFilename(m_sModulePath))
-		return false; 
-	
-	Py_Initialize();
-	
-	initgypsython();	
-			   
- 	//strcpy(m_sModulePath,"E:/abiword/abi/src/WIN32_1.3.15_i386_OBJ/bin/prova.py");
-/*
-	Well this can prevent to do a import gypsython in the script...but it's so ugly!! 					   
-	sprintf(loadmodulestring,
-							 "import sys\n"
- 					   		 "import os\n"
-					         "import string\n"	
- 					   	     "import gypsython\n"   // I need my own namespace:)
-							 "(filepath, filename) = os.path.split('%s')\n"  // if someone knows a better way to do this..
-							 "sys.path.append(filepath)\n",m_sModulePath); 
-	PyRun_SimpleString(loadmodulestring); */
- 							 					 
-    PyImport_ImportModule( (char *)UT_basename(m_sModulePath));		     
-    
- 	
-//	PyRun_SimpleString("import gypsython\ngypsython.insertText('prova si di nuovo prova')");
-	
-  	Py_Finalize();
-			
-	return true;
+  // Get the current view that the user is in.
+  char loadmodulestring[255];
+  
+  if (!AskScriptFilename())
+    return false; 
+  
+  Py_Initialize();
+  
+  initgypsython();	
+  
+  //strcpy(m_sModulePath,"E:/abiword/abi/src/WIN32_1.3.15_i386_OBJ/bin/prova.py");
+  //	Well this can prevent to do a import gypsython in the script...but it's so ugly!! 
+  sprintf(loadmodulestring,
+	  "import sys\n"
+	  "import os\n"
+	  "import string\n"	
+	  "import gypsython\n"   // I need my own namespace:)
+	  "(filepath, filename) = os.path.split('%s')\n"  // if someone knows a better way to do this..
+	  "sys.path.append(filepath)\n__import__(filename)",m_sModulePath); 
+  PyRun_SimpleString(loadmodulestring); 
+  
+  /* PyImport_ImportModule( (char *)UT_basename(m_sModulePath));	*/	     
+  
+  // test row PyRun_SimpleString("import gypsython\ngypsython.insertText('from prg')");
+  
+  Py_Finalize();
+  
+  return true;
 }	
-	
+
 
 // 
 // Gypsython_invoke
 // -------------------
 //   This is the function that we actually call to invoke the 
 //   embedded python 
- 
- 
-static bool Gypsython_invoke(AV_View * v, EV_EditMethodCallData * d)
-{
 
-	mygypsython = new Gypsython();	
 
-	mygypsython->DoCommand();
-	
-	return true;
-	
+static bool Gypsython_invoke(AV_View * v, EV_EditMethodCallData * d)
+{
+  
+  mygypsython = new Gypsython();	
+  
+  mygypsython->DoCommand();
+  
+  return true;
+  
 }
 
-static const char * Python_MenuLabel = "Python Mail merge";
-static const char * Python_MenuTooltip = "Runs python mailmerge";
+static const char * Python_MenuLabel = "Run Python script";
+static const char * Python_MenuTooltip = "Runs a python script";
 
 static void
 Python_RemoveFromMenus ()
@@ -192,94 +308,92 @@
   EV_EditMethod * pEM = ev_EditMethod_lookup ( "Gypsython_invoke" ) ;
   pEMC->removeEditMethod ( pEM ) ;
   DELETEP( pEM ) ;
-
+  
   // now remove crap from the menus
   int frameCount = pApp->getFrameCount();
   XAP_Menu_Factory * pFact = pApp->getMenuFactory();
-
+  
   pFact->removeMenuItem("Main",NULL,Python_MenuLabel);
   pFact->removeMenuItem("contextText",NULL,Python_MenuLabel);
-  for(int i = 0;i < frameCount;++i)
-    {
-      // Get the current frame that we're iterating through.
-      XAP_Frame* pFrame = pApp->getFrame(i);
-      pFrame->rebuildMenus();
-    }
+  for(int i = 0;i < frameCount;++i){
+    // Get the current frame that we're iterating through.
+    XAP_Frame* pFrame = pApp->getFrame(i);
+    pFrame->rebuildMenus();
+  }
 }
 
 static void Python_addToMenus()
 {
-	// First we need to get a pointer to the application itself.
-	XAP_App * pApp = XAP_App::getApp();
-
-	// Create an EditMethod that will link our method's name with
-	// it's callback function.  This is used to link the name to 
-	// the callback.
-	EV_EditMethod * myEditMethod = new EV_EditMethod(
-							"Gypsython_invoke",	// name of callback function
-							Gypsython_invoke,		// callback function itself.
-							0,							// no additional data required.
-							""	// description -- allegedly never used for anything
-	);
-
-	// Now we need to get the EditMethod container for the application.
-	// This holds a series of Edit Methods and links names to callbacks.
-	EV_EditMethodContainer * pEMC = pApp->getEditMethodContainer();
-
-	// We have to add our EditMethod to the application's EditMethodList
-	// so that the application will know what callback to call when a call
-	// to "Gypsython_invoke" is received.
-	pEMC->addEditMethod(myEditMethod);
-
-
-	// Now we need to grab an ActionSet.  This is going to be used later
-	// on in our for loop.  Take a look near the bottom.
-	EV_Menu_ActionSet * pActionSet = pApp->getMenuActionSet();
-
-
-	// We need to go through and add the menu element to each "frame" 
-	// of the application.  We can iterate through the frames by doing
-	// XAP_App::getFrameCount() to tell us how many frames there are,
-	// then calling XAP_App::getFrame(i) to get the i-th frame.
-
-	int frameCount = pApp->getFrameCount();
-	XAP_Menu_Factory * pFact = pApp->getMenuFactory();
-
-	// 
-	// Put it in the context menu.
-	// 
-	XAP_Menu_Id newID = pFact->addNewMenuAfter("contextText", NULL, "Bullets and &Numbering", EV_MLF_Normal);
-	pFact->addNewLabel(NULL, newID, Python_MenuLabel, Python_MenuTooltip);
-
-	// 
-	// Also put it under word Wount in the main menu,
-	// 
-	pFact->addNewMenuAfter("Main", NULL, "&Word Count", EV_MLF_Normal, newID);
-
-	// Create the Action that will be called.
-	EV_Menu_Action * myAction = new EV_Menu_Action(
-			newID,						// id that the layout said we could use
-			0,							// no, we don't have a sub menu.
-			1,							// yes, we raise a  dialog.
-			0,							// no, we don't have a checkbox.
-			"Gypsython_invoke",	// name of callback function to call.
-			NULL,						// don't know/care what this is for
-			NULL						// don't know/care what this is for
-	);
-
-	// Now what we need to do is add this particular action to the ActionSet
-	// of the application.  This forms the link between our new ID that we 
-	// got for this particular frame with the EditMethod that knows how to 
-	// call our callback function.
-
-	pActionSet->addAction(myAction);
-
-	for (int i = 0; i < frameCount; ++i)
-   	{
-		// Get the current frame that we're iterating through.
-		XAP_Frame * pFrame = pApp->getFrame(i);
-		pFrame->rebuildMenus();
-	}
+  // First we need to get a pointer to the application itself.
+  XAP_App * pApp = XAP_App::getApp();
+  
+  // Create an EditMethod that will link our method's name with
+  // it's callback function.  This is used to link the name to 
+  // the callback.
+  EV_EditMethod * myEditMethod = new EV_EditMethod(
+						   "Gypsython_invoke",// name of callback function
+						   Gypsython_invoke,// callback function itself.
+						   0,// no additional data required.
+						   ""// description -- allegedly never used for anything
+						   );
+  
+  // Now we need to get the EditMethod container for the application.
+  // This holds a series of Edit Methods and links names to callbacks.
+  EV_EditMethodContainer * pEMC = pApp->getEditMethodContainer();
+  
+  // We have to add our EditMethod to the application's EditMethodList
+  // so that the application will know what callback to call when a call
+  // to "Gypsython_invoke" is received.
+  pEMC->addEditMethod(myEditMethod);
+  
+  
+  // Now we need to grab an ActionSet.  This is going to be used later
+  // on in our for loop.  Take a look near the bottom.
+  EV_Menu_ActionSet * pActionSet = pApp->getMenuActionSet();
+  
+  
+  // We need to go through and add the menu element to each "frame" 
+  // of the application.  We can iterate through the frames by doing
+  // XAP_App::getFrameCount() to tell us how many frames there are,
+  // then calling XAP_App::getFrame(i) to get the i-th frame.
+  
+  int frameCount = pApp->getFrameCount();
+  XAP_Menu_Factory * pFact = pApp->getMenuFactory();
+  
+  // 
+  // Put it in the context menu.
+  // 
+  XAP_Menu_Id newID = pFact->addNewMenuAfter("contextText", NULL, "Bullets and &Numbering", EV_MLF_Normal);
+  pFact->addNewLabel(NULL, newID, Python_MenuLabel, Python_MenuTooltip);
+  
+  // 
+  // Also put it under word Wount in the main menu,
+  // 
+  pFact->addNewMenuAfter("Main", NULL, "&Word Count", EV_MLF_Normal, newID);
+  
+  // Create the Action that will be called.
+  EV_Menu_Action * myAction = new EV_Menu_Action(
+						 newID,// id that the layout said we could use
+						 0,// no, we don't have a sub menu.
+						 1,// yes, we raise a  dialog.
+						 0,// no, we don't have a checkbox.
+						 "Gypsython_invoke",// name of callback function to call.
+						 NULL,// don't know/care what this is for
+						 NULL // don't know/care what this is for
+						 );
+
+  // Now what we need to do is add this particular action to the ActionSet
+  // of the application.  This forms the link between our new ID that we 
+  // got for this particular frame with the EditMethod that knows how to 
+  // call our callback function.
+  
+  pActionSet->addAction(myAction);
+  
+  for (int i = 0; i < frameCount; ++i){
+    // Get the current frame that we're iterating through.
+    XAP_Frame * pFrame = pApp->getFrame(i);
+    pFrame->rebuildMenus();
+  }
 }
 
 // -----------------------------------------------------------------------
@@ -290,33 +404,33 @@
 
 ABI_FAR_CALL int abi_plugin_register(XAP_ModuleInfo * mi)
 {
-	mi->name = "Python plugin";
-	mi->desc = "Python plugin";
-	mi->version = ABI_VERSION_STRING;
-	mi->author = "Mauro Colorio";
-	mi->usage = "No Usage";
-
-	// Add the Python to AbiWord's menus.
-	Python_addToMenus();
-
-	return 1;
+  mi->name = "Python plugin";
+  mi->desc = "Python plugin";
+  mi->version = ABI_VERSION_STRING;
+  mi->author = "Mauro Colorio";
+  mi->usage = "No Usage";
+  
+  // Add the Python to AbiWord's menus.
+  Python_addToMenus();
+  
+  return 1;
 }
 
 ABI_FAR_CALL int abi_plugin_unregister(XAP_ModuleInfo * mi)
 {
-	mi->name = 0;
-	mi->desc = 0;
-	mi->version = 0;
-	mi->author = 0;
-	mi->usage = 0;
-
-	Python_RemoveFromMenus ();
-
-	return 1;
+  mi->name = 0;
+  mi->desc = 0;
+  mi->version = 0;
+  mi->author = 0;
+  mi->usage = 0;
+  
+  Python_RemoveFromMenus ();
+  
+  return 1;
 }
 
 ABI_FAR_CALL int abi_plugin_supports_version(UT_uint32 major, UT_uint32 minor,
-			UT_uint32 release)
+					     UT_uint32 release)
 {
-	return 1;
+  return 1;
 }
Index: Gypsython.h
===================================================================
RCS file: /cvsroot/abiword-plugins/tools/gypsython/xp/Gypsython.h,v
retrieving revision 1.2
diff -u -r1.2 Gypsython.h
--- Gypsython.h	4 Dec 2002 17:59:30 -0000	1.2
+++ Gypsython.h	5 Dec 2002 17:23:39 -0000
@@ -1,70 +1,76 @@
-/* GypsyPlugin
- * Copyright (C) 2002 Mauro Colorio
- * 
- * 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.
- */
-
-#include "xap_Module.h"
-#include "xap_App.h"
-#include "xap_Frame.h"
-#include "fv_View.h"
-#include "ap_Menu_Id.h"
-#include "ev_Menu_Actions.h"
-#include "ev_Menu.h"
-#include "ev_Menu_Layouts.h"
-#include "ev_Menu_Labels.h"
-#include "ev_EditMethod.h"
-#include "xap_Menu_Layouts.h"
-#include "ut_string_class.h"
-#include "ut_path.h"
-
-#include "xap_Dialog_Id.h"
-#include "xap_DialogFactory.h"
-#include "xap_Dlg_FileOpenSaveAs.h"
-#include "xap_Dlg_Language.h"
-#include "xap_Frame.h"
-
-#include <python2.2/Python.h>
-
-
-
-#ifndef PLUGIN_GYPSYTHON_H
-#define PLUGIN_GYPSYTHON_H
-
-class Gypsython
-{
-public:
-	                         Gypsython(void);
-	virtual                  ~Gypsython(void);
-	bool insertText(char * text);
-	bool RunModule(char * modulename);
-	bool AskScriptFilename(char * modulename);
-//	bool RunPythonfunction(PyObject * pFunction);
-//	bool Python_invoke(AV_View * v, EV_EditMethodCallData * d);
-	bool DoCommand();
-	
-private:
-	PD_Document *            m_pCurDoc;
-	AV_View *                m_pCurView;
-	FL_DocLayout *           m_pLayout;
-	XAP_App *                m_pApp;
-	XAP_Frame * 			 m_pFrame;	
-	char					 m_sModulePath[MAX_PATH];
-
-};
-
-
-#endif /* PLUGIN_GYPSYTHON_H */
\ No newline at end of file
+/* GypsyPlugin
+ * Copyright (C) 2002 Mauro Colorio
+ * 
+ * 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.
+ */
+
+#include "xap_Module.h"
+#include "xap_App.h"
+#include "xap_Frame.h"
+#include "fv_View.h"
+#include "ap_Menu_Id.h"
+#include "ev_Menu_Actions.h"
+#include "ev_Menu.h"
+#include "ev_Menu_Layouts.h"
+#include "ev_Menu_Labels.h"
+#include "ev_EditMethod.h"
+#include "xap_Menu_Layouts.h"
+#include "ut_string_class.h"
+#include "ut_path.h"
+
+#include "xap_Dialog_Id.h"
+#include "xap_DialogFactory.h"
+#include "xap_Dlg_FileOpenSaveAs.h"
+#include "xap_Dlg_Language.h"
+#include "xap_Frame.h"
+
+#include <python2.2/Python.h>
+ 
+ 
+ 
+#ifndef PLUGIN_GYPSYTHON_H
+#define PLUGIN_GYPSYTHON_H
+ 
+ class Gypsython
+{
+ public:
+  Gypsython(void);
+  virtual                  ~Gypsython(void);
+
+
+  bool insertText(char * text);
+  bool setPaperColor(char * color);
+  bool editHeader();
+  bool editFooter();
+  bool editBody();
+  XAP_Frame * openFile(char * filename);
+
+  bool RunModule(char * modulename);
+  bool AskScriptFilename();
+  //	bool RunPythonfunction(PyObject * pFunction);
+  //	bool Python_invoke(AV_View * v, EV_EditMethodCallData * d);
+  bool DoCommand();
+  
+ private:
+  PD_Document * m_pCurDoc;
+  AV_View *                m_pCurView;
+  FL_DocLayout *           m_pLayout;
+  XAP_App *                m_pApp;
+  XAP_Frame * 		   m_pFrame;	
+  char *                   m_sModulePath;
+};
+
+#endif /* PLUGIN_GYPSYTHON_H */

Reply via email to