00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040 #ifndef _FILEMANAGER_H
00041 #define _FILEMANAGER_H
00042
00043 #define MAX_PATHNAME 512
00044 #define MAX_FILENAME 512
00045
00046 #ifdef __cplusplus
00047 extern "C"
00048 {
00049 #endif
00050
00051 #include <gtk/gtk.h>
00052 #include <gdk/gdkx.h>
00053
00054 #include <assert.h>
00055
00056 #include "ink.h"
00057
00058 #include <libermanifest/ermanifest.h>
00059
00060 #define MAX_INKTYPE_LEN 10
00061
00062 #define SCRIB_TYPE "irx"
00063
00064
00065 typedef struct _ScribPage
00066 {
00067 char sImgFileName[MAX_FILENAME];
00068
00069 char sPageName[MAX_FILENAME];
00070
00071 PtrInk pink;
00072
00073 gboolean bDirty;
00074
00075 struct _ScribPage* pNextPage;
00076 }ScribPage;
00077
00078 typedef ScribPage *PScribPage;
00079
00080 typedef struct _Manifest
00081 {
00082
00083 char sScribbleName[MAX_FILENAME];
00084 int iLastOpenPage;
00085 int iTotalPages;
00086
00087 char sInkType[MAX_INKTYPE_LEN];
00088
00089 gboolean bNeedSaveIrx;
00090 PScribPage pFirstScribPage;
00091 } Manifest;
00092
00093 typedef struct _FileManager
00094 {
00095 Manifest manifest;
00096
00097 erManifest* irxHandle;
00098
00099 PScribPage pCurrPage;
00100 int iCurrOpenPage;
00101 int bNeedSaveManifest;
00102 int bNeedCreatDirHirachy;
00103
00104
00105 char sTmplPathName[MAX_FILENAME];
00106
00107 char sManifestPathName[MAX_FILENAME];
00108
00109 char sDataDir[MAX_PATHNAME];
00110
00111 gboolean isCreatedFromTmpl;
00112 } FileManager;
00113
00114 typedef FileManager *PFileManager;
00115
00116
00117 extern int createDirHirachy(PFileManager pFM);
00118
00119
00120 extern int
00121 initFileManagerByTmpl(PFileManager pFM,const char* sTmplPathName);
00122
00123 extern int
00124 initFileManagerByManifest(PFileManager pFM,const char* sManifest);
00125
00126
00127 extern PScribPage getCurrScribPage(PFileManager pFM);
00128
00129 extern void freeScribPage(PScribPage pPage);
00130
00131
00132 extern const char* getCurrImgFileName(PFileManager pFM);
00133
00134
00135 extern PScribPage jumptoScribPage(PFileManager pFM,int iPageNo);
00136
00137
00138 extern int loadManifest(PFileManager pFM);
00139
00140
00141
00142 extern int insertNewPage(PFileManager pFM,int iPageNo,const char* sImgName);
00143
00144 extern int deleteCurrPage(PFileManager pFM);
00145
00146
00147 extern int getTotalPage(PFileManager pFM);
00148
00149 extern int getCurrPageNo(PFileManager pFM);
00150
00151 extern int fm_saveFileManager(PFileManager pFM);
00152
00153
00154 extern void FreeFileManager(PFileManager pFM);
00155
00156
00157 char* getAbsPathFromCurrScrib(char* sAbsFileName,
00158 int iSize,
00159 const char* currFileName,
00160 const PFileManager pFM);
00161
00162 extern int get_ink_filename (char *inkFileName, int iSize,
00163 const PFileManager pFM);
00164
00165
00166
00167 extern int get_result_filename (char *resultFileName,
00168 int iSize,
00169 const PFileManager pFM,
00170 const PScribPage pScribPage);
00171
00172
00173 extern int get_curr_result_filename(char *resultFileName,
00174 int iSize,
00175 const PFileManager pFM);
00176
00177 extern void fm_setIrxInkDirty(PFileManager pFM,gboolean bDirty);
00178
00179 extern PtrInk fm_loadCurrInk(PFileManager pFM);
00180
00181
00182 extern int fm_initIrxHandle(PFileManager pFM,gboolean isOpen);
00183
00184
00185 int fm_deleteOnePage(PFileManager pFM,PScribPage pPage);
00186
00187
00188 int fm_saveOnePage(PFileManager pFM,PScribPage pPage);
00189
00190
00191 int fm_saveCurrPage(PFileManager pFM);
00192
00193
00194
00195 extern int fm_saveAllPages(PFileManager pFM);
00196
00197 extern int fm_saveIrexInk(PFileManager pFM, gboolean bClose);
00198
00199
00200 extern int fm_setIrxTypeAndSave(PFileManager pFM);
00201
00202 extern int fc_convertold2irx(PFileManager pFM);
00203
00204
00205 extern void dumpManifest(Manifest *pM);
00206 extern void dumpFileManager(PFileManager pFM);
00207 void dumpIrxXml(const char* sPageName,
00208 erManifest *pXmlHandle,int i);
00209 #ifdef __cplusplus
00210 }
00211 #endif
00212
00213 #endif