1 /* cssed (c) Iago Rubio 2003, 2004 - A tiny CSS editor. 2 * 3 * This program is free software; you can redistribute it and/or modify 4 * it under the terms of the GNU General Public License as published by 5 * the Free Software Foundation; either version 2 of the License, or 6 * (at your option) any later version. 7 * 8 * This program is distributed in the hope that it will be useful, 9 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 * GNU Library General Public License for more details. 12 * 13 * You should have received a copy of the GNU General Public License 14 * along with this program; if not, write to the Free Software 15 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 16 */ 17 18 /** @file cssedwindow.h 19 * @brief Header file for the cssed main window object. 20 * Those functions are the interface for cssed's ::_CssedWindow object. 21 */ 22 23 /** a macro to cast a pointer to ::CssedWindow */ 24 #define CSSED_WINDOW(n) (CssedWindow*) n 25 26 /** registry name for Windows */ 27 #ifdef WIN32 28 # define CSSED_REGISTRY_NAME "cssed-0.3.1" 29 #endif 30 31 /** error domain to be used on GError */ 32 #define CSSED_ERROR_DOMAIN g_quark_from_string ("CSSED_ERROR") 33 34 /** cssed related errors */ 35 typedef enum { 36 /** file error matches with G_FILE_ERROR_EXIST */ 37 CSSED_FILE_ERROR_EXIST, 38 /** file error matches with G_FILE_ERROR_ISDIR */ 39 CSSED_FILE_ERROR_ISDIR, 40 /** file error matches with G_FILE_ERROR_ACCES */ 41 CSSED_FILE_ERROR_ACCES, 42 /** file error matches with G_FILE_ERROR_NAMETOOLONG */ 43 CSSED_FILE_ERROR_NAMETOOLONG, 44 /** file error matches with G_FILE_ERROR_NOENT */ 45 CSSED_FILE_ERROR_NOENT, 46 /** file error matches with G_FILE_ERROR_NOTDIR */ 47 CSSED_FILE_ERROR_NOTDIR, 48 /** file error matches with G_FILE_ERROR_NXIO */ 49 CSSED_FILE_ERROR_NXIO, 50 /** file error matches with G_FILE_ERROR_NODEV */ 51 CSSED_FILE_ERROR_NODEV, 52 /** file error matches with G_FILE_ERROR_ROFS */ 53 CSSED_FILE_ERROR_ROFS, 54 /** file error matches with G_FILE_ERROR_TXTBSY */ 55 CSSED_FILE_ERROR_TXTBSY, 56 /** file error matches with G_FILE_ERROR_FAULT */ 57 CSSED_FILE_ERROR_FAULT, 58 /** file error matches with G_FILE_ERROR_LOOP */ 59 CSSED_FILE_ERROR_LOOP, 60 /** file error matches with G_FILE_ERROR_NOSPC */ 61 CSSED_FILE_ERROR_NOSPC, 62 /** file error matches with G_FILE_ERROR_NOMEM */ 63 CSSED_FILE_ERROR_NOMEM, 64 /** file error matches with G_FILE_ERROR_MFILE */ 65 CSSED_FILE_ERROR_MFILE, 66 /** file error matches with G_FILE_ERROR_NFILE */ 67 CSSED_FILE_ERROR_NFILE, 68 /** file error matches with G_FILE_ERROR_BADF */ 69 CSSED_FILE_ERROR_BADF, 70 /** file error matches with G_FILE_ERROR_INVAL */ 71 CSSED_FILE_ERROR_INVAL, 72 /** file error matches with G_FILE_ERROR_PIPE */ 73 CSSED_FILE_ERROR_PIPE, 74 /** file error matches with G_FILE_ERROR_AGAIN */ 75 CSSED_FILE_ERROR_AGAIN, 76 /** file error matches with G_FILE_ERROR_INTR */ 77 CSSED_FILE_ERROR_INTR, 78 /** file error matches with G_FILE_ERROR_IO */ 79 CSSED_FILE_ERROR_IO, 80 /** file error matches with G_FILE_ERROR_PERM */ 81 CSSED_FILE_ERROR_PERM, 82 /** file error matches with G_FILE_ERROR_FAILED */ 83 CSSED_FILE_ERROR_FAILED, 84 /** this is not an error code it's just to know were the GFIleError matching ends */ 85 CSSED_FILE_ERROR_LAST, 86 /** the file is already opened onto cssed */ 87 CSSED_ERROR_FILE_IS_OPENED, 88 /** the file is not a regular file, may be a device or whatever */ 89 CSSED_ERROR_FILE_NOT_REGULAR, // 90 /** NULL document have been passed or returned for sure programming error */ 91 CSSED_ERROR_DOC_IS_NULL // 92 } CssedError; 93 94 /** @enum CssedEolMode cssed's end of line modes */ 95 typedef enum { 96 /** Windows end of line Carriage return / Line feed */ 97 EOL_MODE_CRLF, 98 /** Mac end of line Carriage return */ 99 EOL_MODE_CR, 100 /** Unix end of line Line feed */ 101 EOL_MODE_LF 102 } CssedEolMode; 103 104 /** @enum CssedCodePage cssed's code pages */ 105 typedef enum { 106 /** Default code page */ 107 CSSED_CODEPAGE_DEFAULT, 108 /** UTF8 code page */ 109 CSSED_CODEPAGE_UTF8, 110 /** DBCS code page (Thai, Hangul) */ 111 CSSED_CODEPAGE_DBCS 112 } CssedCodePage; 113 114 // those are opaque use only provided functions 115 /** @struct _CssedDoc. 116 * @brief This object implements a cssed document. This is opaque and should be accessed with the functions provided in document.h. I should not be used in plugins or extensions and exists only in the scope of the main cssed instance. 117 It is here only for compatibility with older code. 118 */ 119 /** @typedef CssedDoc. 120 * @brief A utility data type for ::_CssedDoc structures. 121 */ 122 typedef struct _CssedDoc CssedDoc; 123 124 /** @struct _CssedWindow. 125 * @brief This object represents the cssed main window object. This is opaque and should be accessed with the functions provided in cssedwindow.h 126 */ 127 /** @typedef CssedWindow. 128 * @brief A utility data type for ::_CssedWindow structures. 129 */ 130 typedef struct _CssedWindow CssedWindow; 131 132 /* *************************************************************************************************** */ 133 #define CSSED_FILETYPE_DEFAULT CSSED_FILETYPE_TEXT 134 135 /** @enum CssedFileTypeId list of recogniced file type identifiers */ 136 typedef enum { 137 /** internall use, never use it. */ 138 CSSED_FILETYPE_UNKNOW, 139 /** The default file type, plain text */ 140 CSSED_FILETYPE_TEXT, 141 /** not used ,but will be link insertion */ 142 CSSED_FILETYPE_BYNARY, 143 /** core language */ 144 CSSED_FILETYPE_CSS, 145 /** this is not just HTML but hypertext and includes ASP, JSP and PHP */ 146 CSSED_FILETYPE_HTML, 147 /** This is standalon PHP not server side PHP (for sh-like scripts) */ 148 CSSED_FILETYPE_PHP, 149 /** XML and SVG */ 150 CSSED_FILETYPE_XML, 151 /** shell and bash scripts */ 152 CSSED_FILETYPE_SH, 153 /** not just C but CPP */ 154 CSSED_FILETYPE_C, 155 /** apache conf files */ 156 CSSED_FILETYPE_APACHE_CONF, 157 /** mostly for emacs.el files (not ready) */ 158 CSSED_FILETYPE_LISP, 159 /** perl scripts */ 160 CSSED_FILETYPE_PERL, 161 /** python */ 162 CSSED_FILETYPE_PYTHON, 163 /** SQL (Ansi) */ 164 CSSED_FILETYPE_SQL, 165 /** diff and patch files */ 166 CSSED_FILETYPE_DIFF, 167 /** java */ 168 CSSED_FILETYPE_JAVA, 169 /** javascript */ 170 CSSED_FILETYPE_JS, 171 /** Makefiles */ 172 CSSED_FILETYPE_MAKE, 173 /** APDL */ 174 CSSED_FILETYPE_APDL, 175 /** AU3 */ 176 CSSED_FILETYPE_AU3, 177 /** AVE */ 178 CSSED_FILETYPE_AVE, 179 /** ADA */ 180 CSSED_FILETYPE_ADA, 181 /** Assembler */ 182 CSSED_FILETYPE_ASM, 183 /** ASN1 */ 184 CSSED_FILETYPE_ASN1, 185 /** BAAN */ 186 CSSED_FILETYPE_BAAN, 187 /** BASIC */ 188 CSSED_FILETYPE_BASIC, 189 /** BULLANT */ 190 CSSED_FILETYPE_BULLANT, 191 /** CLW */ 192 CSSED_FILETYPE_CLW, 193 /** CAML */ 194 CSSED_FILETYPE_CAML, 195 /** CRONTAB */ 196 CSSED_FILETYPE_CRONTAB, 197 /** ESCRIPT */ 198 CSSED_FILETYPE_ESCRIPT, 199 /** EIFFEL */ 200 CSSED_FILETYPE_EIFFEL, 201 /** ERLANG */ 202 CSSED_FILETYPE_ERLANG, 203 /** FORTH */ 204 CSSED_FILETYPE_FORTH, 205 /** FORTRAN */ 206 CSSED_FILETYPE_FORTRAN, 207 /** GUI4CLI */ 208 CSSED_FILETYPE_GUI4CLI, 209 /** KIX */ 210 CSSED_FILETYPE_KIX, 211 /** LOUT */ 212 CSSED_FILETYPE_LOUT, 213 /** LUA */ 214 CSSED_FILETYPE_LUA, 215 /** MMIXAL */ 216 CSSED_FILETYPE_MMIXAL, 217 /** MPT */ 218 CSSED_FILETYPE_MPT, 219 /** MSSQL */ 220 CSSED_FILETYPE_MSSQL, 221 /** MATLAB */ 222 CSSED_FILETYPE_MATLAB, 223 /** METAPOST */ 224 CSSED_FILETYPE_METAPOST, 225 /** NSIS */ 226 CSSED_FILETYPE_NSIS, 227 /** PureBasic */ 228 CSSED_FILETYPE_PB, 229 /** POV */ 230 CSSED_FILETYPE_POV, 231 /** PS */ 232 CSSED_FILETYPE_PS, 233 /** PASCAL */ 234 CSSED_FILETYPE_PASCAL, 235 /** RUBY */ 236 CSSED_FILETYPE_RUBY, 237 /** SCRIPTOL */ 238 CSSED_FILETYPE_SCRIPTOL, 239 /** SPECMAN */ 240 CSSED_FILETYPE_SPECMAN, 241 /** TEX */ 242 CSSED_FILETYPE_TEX, 243 /** VisualBasic */ 244 CSSED_FILETYPE_VB, 245 /** VHDL */ 246 CSSED_FILETYPE_VHDL, 247 /** VERILOG */ 248 CSSED_FILETYPE_VERILOG, 249 /** YAML */ 250 CSSED_FILETYPE_YAML, 251 // if you miss something here, just request for inclusion 252 /** Empty slot for user defined languages */ 253 CSSED_FILETYPE_USR, 254 /** Empty slot for user defined languages */ // user defined file types 255 CSSED_FILETYPE_USR1, 256 /** Empty slot for user defined languages */ 257 CSSED_FILETYPE_USR2, 258 /** Empty slot for user defined languages */ 259 CSSED_FILETYPE_USR3, 260 /** Empty slot for user defined languages */ 261 CSSED_FILETYPE_USR4, 262 /** Empty slot for user defined languages */ 263 CSSED_FILETYPE_USR5, 264 /** Empty slot for user defined languages */ 265 CSSED_FILETYPE_USR6, 266 /** Empty slot for user defined languages */ 267 CSSED_FILETYPE_USR7, 268 /** Empty slot for user defined languages */ 269 CSSED_FILETYPE_USR8, 270 /** Empty slot for user defined languages */ 271 CSSED_FILETYPE_USR9 272 } CssedFileTypeId; 273 274 #define CSSED_NUMFILETYPES (CSSED_FILETYPE_USR9+1) 275 276 277