00001 #ifdef WIN32 00002 #pragma message(__FILE__ "(2) : warning C9999: Use of sml.h is deprecated, use forward declarations or individual sml/... headers instead") 00003 #endif 00004 00005 /****************************************************************************** 00006 * 00007 * \file mi32/sml.h 00008 * \brief SML -- Spatial Manipulation Language 00009 * 00010 * SML is used in TNTmips for both a scripting language and for database 00011 * query operations. 00012 * 00013 * \if NODOC 00014 * $Log: sml.h_v $ 00015 * Revision 1.688 2011/10/12 14:23:47 mju 00016 * Change mxQueryOpenScript to use int for usage so don't need rvc script hdr. 00017 * 00018 * Revision 1.687 2010/09/28 15:59:30 bcolombe 00019 * SML_ExecuteMain needs productcode 00020 * 00021 * Revision 1.686 2009/11/25 20:57:56 mju 00022 * Fix typo. 00023 * 00024 * Revision 1.685 2009/11/25 18:43:10 mju 00025 * Doxygen fixes. 00026 * 00027 * Revision 1.684 2009/02/24 23:39:49 bcolombe 00028 * Added QFLAG_SuppressToolbar 00029 * 00030 * Revision 1.683 2008/11/10 23:33:51 scowan 00031 * Moved qtype flags to private include file. 00032 * 00033 * Revision 1.682 2008/11/10 20:40:37 scowan 00034 * Removed duplicated defines and sml flag include file. 00035 * 00036 * Revision 1.681 2008/11/07 23:23:46 scowan 00037 * Removed context include file. 00038 * 00039 * Revision 1.680 2008/11/07 17:18:49 scowan 00040 * Removed more unnecessary include files. 00041 * 00042 * Revision 1.679 2008/11/06 20:29:17 scowan 00043 * Removed another include file. 00044 * 00045 * Revision 1.678 2008/11/05 18:09:42 scowan 00046 * Reduced the number of files included with this file. 00047 * 00048 * Revision 1.677 2008/11/04 00:16:44 scowan 00049 * Removed about half of the files this file was including. 00050 * 00051 * Revision 1.676 2008/11/03 16:59:32 scowan 00052 * Moved getParent to context, removed unused setParent methods. 00053 * 00054 * Revision 1.675 2008/11/03 16:50:53 mju 00055 * Move sml_AppInit to context hdr. 00056 * 00057 * Revision 1.674 2008/11/03 16:21:30 scowan 00058 * Removed sml specific infinity macros. 00059 * 00060 * Revision 1.673 2008/11/03 16:01:37 scowan 00061 * Removed calls to init carto script because the function is not needed anymore 00062 * 00063 * Revision 1.672 2008/10/31 15:44:19 scowan 00064 * *** empty log message *** 00065 * 00066 * Revision 1.671 2008/10/30 18:03:39 scowan 00067 * Removed readScript macro. 00068 * 00069 * Revision 1.670 2008/10/30 17:55:15 scowan 00070 * MOved exported function to context include file and removed unused qflag. 00071 * 00072 * Revision 1.669 2008/10/23 20:37:31 scowan 00073 * Some parts moved to sml namespace include files. 00074 * 00075 * Revision 1.668 2008/10/16 17:14:29 scowan 00076 * Moved most context creation code to context specific include file. 00077 * 00078 * Revision 1.667 2008/10/15 21:31:23 mju 00079 * Remove sml/errors hdr. 00080 * 00081 * Revision 1.666 2008/10/15 13:50:40 mju 00082 * Display deprecation warning when include. 00083 * 00084 * Revision 1.664 2007/05/08 15:44:55 dwilliss 00085 * SML namespace 00086 * 00087 * Revision 1.663 2007/05/07 15:46:29 dwilliss 00088 * breaking up into multiple include files 00089 * 00090 * Revision 1.662 2007/05/04 23:03:12 dwilliss 00091 * moved a bunch of stuff to sml include subdirectory 00092 * 00093 * Revision 1.661 2007/05/03 15:48:45 dwilliss 00094 * took out unused method 00095 * 00096 * Revision 1.660 2007/05/03 14:55:04 dwilliss 00097 * fixed typo 00098 * 00099 * Revision 1.659 2007/04/20 17:02:39 drb 00100 * Added some classnames 00101 * 00102 * Revision 1.658 2007/04/18 22:59:29 dwilliss 00103 * added method to get script objitem 00104 * 00105 * Revision 1.657 2007/04/18 20:50:57 dwilliss 00106 * removed stuff that's been deprecated for a while 00107 * deprecated more old stuff 00108 * 00109 * Revision 1.656 2007/04/17 22:48:14 bcolombe 00110 * Added 2 more pipeline classnames 00111 * 00112 * Revision 1.655 2007/04/16 20:18:57 bcolombe 00113 * Added more pipeline class names 00114 * 00115 * Revision 1.654 2007/04/13 15:28:53 bcolombe 00116 * Added SIG_i_pv_pv_b 00117 * 00118 * Revision 1.653 2007/04/13 15:16:41 mju 00119 * Don't need errcodes hdr at all as included by fixedstr hdr. 00120 * 00121 * Revision 1.652 2007/04/13 15:06:14 mju 00122 * Exclude errcodes for no_deprecated as not needed by this header. 00123 * 00124 * Revision 1.651 2007/04/13 14:57:54 bcolombe 00125 * Added more pipeline classnames 00126 * 00127 * Revision 1.650 2007/04/12 20:14:38 bcolombe 00128 * Added some new classes and SIGs 00129 * 00130 * Revision 1.649 2007/04/12 15:59:13 bcolombe 00131 * Added CBPARMS classname 00132 * 00133 * Revision 1.648 2007/04/11 22:19:13 bcolombe 00134 * Added new sig SIG_i_pv_d_d 00135 * Added new classnames 00136 * 00137 * Revision 1.647 2007/04/10 22:45:58 bcolombe 00138 * Added new SIG_i_i_i_d 00139 * 00140 * Revision 1.646 2007/04/09 16:55:36 drb 00141 * Removed and deprecated some old info stuff. 00142 * 00143 * Revision 1.645 2007/04/09 16:36:18 scowan 00144 * Removed getGenInfo. 00145 * 00146 * Revision 1.644 2007/04/05 21:32:21 dwilliss 00147 * changed export defines 00148 * get rid of unnamed include file 00149 * 00150 * Revision 1.643 2007/04/05 20:32:47 dwilliss 00151 * changed export defines 00152 * 00153 * Revision 1.642 2007/04/05 14:56:57 bcolombe 00154 * Added new sig: SIG_i_i_d_d 00155 * 00156 * Revision 1.641 2007/04/05 13:22:54 mju 00157 * Remove some unused deprecated stuff. 00158 * 00159 * Revision 1.640 2007/04/05 13:14:39 mju 00160 * Exclude setInode unless building rvcsys. 00161 * 00162 * Revision 1.639 2007/04/05 13:09:08 mju 00163 * Only define Get/SetGenInfo if building rvcsys as not used outside DLL. 00164 * 00165 * Revision 1.638 2007/03/29 14:38:48 drb 00166 * Removed b----Running as it is now replaced within mstatus 00167 * 00168 * Revision 1.637 2007/03/26 19:58:06 scowan 00169 * Added include file that rvc defns was getting for us. 00170 * 00171 * Revision 1.636 2007/03/20 13:57:52 scowan 00172 * Marked items as can be removed. 00173 * 00174 * Revision 1.635 2007/03/19 13:28:56 mju 00175 * Remove unused sml_readScript variants. 00176 * 00177 * Revision 1.634 2007/03/14 21:53:53 mju 00178 * Remove dbquery_EditUC. 00179 * 00180 * Revision 1.633 2007/03/13 20:48:29 dwilliss 00181 * On Exit Data no longer stored in old linked list structure 00182 * 00183 * Revision 1.632 2007/03/13 17:59:14 dwilliss 00184 * Got rid of an obsolete structure 00185 * 00186 * Revision 1.631 2007/03/09 16:56:56 dwilliss 00187 * Moved some private stuff to mi32p/dbqueryp.h 00188 * 00189 * Revision 1.630 2007/03/05 20:46:16 scowan 00190 * Moved database header to private include file. 00191 * 00192 * Revision 1.629 2007/03/05 17:10:49 scowan 00193 * Set database callback struct to rvc namespace. 00194 * 00195 * Revision 1.628 2007/02/12 18:16:34 drb 00196 * Fixed typo 00197 * 00198 * Revision 1.627 2007/02/09 18:39:47 dwilliss 00199 * removed prototype for an obsolete function 00200 * 00201 * Revision 1.626 2007/02/09 17:02:39 scowan 00202 * Removed commented out references to legacy raster info structure. 00203 * 00204 * Revision 1.625 2007/02/08 23:57:07 drb 00205 * Removing references to RVC-RAST-INFO 00206 * 00207 * Revision 1.624 2007/02/05 18:12:19 drb 00208 * Added DBASE_TINxx defines 00209 * 00210 * Revision 1.623 2007/02/02 23:13:19 drb 00211 * Added some class names 00212 * 00213 * Revision 1.622 2007/01/31 18:10:36 dwilliss 00214 * Moved SMLUSAGE enum to smlbase.h 00215 * 00216 * Revision 1.621 2007/01/29 15:49:51 drb 00217 * DBASE_RASTER 00218 * 00219 * Revision 1.620 2007/01/26 23:48:22 drb 00220 * Added methods to get a the string(s) from a given value from an SMLFLAGS array 00221 * 00222 * Revision 1.619 2007/01/26 22:13:57 drb 00223 * Added some classnames 00224 * 00225 * Revision 1.618 2007/01/26 16:42:06 drb 00226 * Added several class names. 00227 * Fixed Deletable autoclass constructor to return null since no default 00228 * construtor is available. 00229 * 00230 * Revision 1.617 2007/01/24 16:12:10 drb 00231 * Add RVC_ELEMENT 00232 * 00233 * Revision 1.616 2007/01/22 14:20:27 mju 00234 * Remove colormap hdr as not needed by this hdr. 00235 * 00236 * Revision 1.615 2007/01/17 21:40:00 dwilliss 00237 * Added some documentation functions 00238 * 00239 * Revision 1.614 2007/01/09 16:12:49 dwilliss 00240 * defined SML_AppInit 00241 * 00242 * Revision 1.613 2007/01/09 15:28:51 dwilliss 00243 * Something was still using the method I renamed, so I had to create a stub 00244 * to call it. 00245 * 00246 * Revision 1.612 2007/01/09 14:42:19 dwilliss 00247 * Renamed a static method -- allowing more than one funclist to be pre- 00248 * registered now. 00249 * 00250 * Revision 1.611 2007/01/03 15:55:11 bcolombe 00251 * GPSDBASE 00252 * 00253 * Revision 1.610 2007/01/03 15:24:31 bcolombe 00254 * Added GPSDBASE 00255 * 00256 * Revision 1.609 2006/12/29 18:46:20 bcolombe 00257 * Added new SIG 00258 * 00259 * Revision 1.608 2006/12/28 22:11:12 dwilliss 00260 * Some work on console methods 00261 * 00262 * Revision 1.607 2006/12/26 18:54:13 dwilliss 00263 * Got rid of deprecated methods no longer used 00264 * 00265 * Revision 1.606 2006/12/20 17:28:41 dwilliss 00266 * Got rid of deprecated method 00267 * 00268 * Revision 1.605 2006/12/19 15:58:49 dwilliss 00269 * got rid of a deprecated template no longer used 00270 * 00271 * Revision 1.604 2006/12/18 17:04:54 dwilliss 00272 * Removed some deprecated SMLSTRING methods. Deprecated a few more. 00273 * 00274 * Revision 1.603 2006/12/13 22:57:16 scowan 00275 * Removed unused dbquery legacy functions. 00276 * 00277 * Revision 1.602 2006/12/07 19:03:09 mju 00278 * Fix comments so not on deprecation list. 00279 * 00280 * Revision 1.601 2006/12/07 16:14:01 dwilliss 00281 * Working toward changing how functions are registered 00282 * 00283 * Revision 1.600 2006/11/22 23:51:54 dwilliss 00284 * Started adding Scope rule support 00285 * 00286 * Revision 1.599 2006/11/17 22:46:36 dwilliss 00287 * deprecated some old functions 00288 * 00289 * Revision 1.598 2006/11/17 22:15:12 dwilliss 00290 * added a method 00291 * 00292 * Revision 1.597 2006/11/17 20:35:34 dwilliss 00293 * Added method to register minimal function list. 00294 * 00295 * Revision 1.596 2006/11/17 17:44:51 dwilliss 00296 * added new private method 00297 * 00298 * Revision 1.595 2006/11/16 22:26:33 dwilliss 00299 * Fixed problem in autoclass deletable template 00300 * 00301 * Revision 1.594 2006/11/16 20:28:59 dwilliss 00302 * Changed how class arrays are stored 00303 * 00304 * Revision 1.593 2006/10/26 16:05:11 drb 00305 * Added deprecation comments to QTYPE 00306 * 00307 * Revision 1.592 2006/10/26 13:54:35 dwilliss 00308 * added SMLFUNC_Deprecated 00309 * 00310 * Revision 1.591 2006/10/24 13:41:02 dwilliss 00311 * added some prototypes 00312 * 00313 * Revision 1.590 2006/10/19 22:29:12 dwilliss 00314 * some class names 00315 * 00316 * Revision 1.589 2006/10/16 17:24:19 dwilliss 00317 * Added SMLCONTEXT::IsRunning() 00318 * 00319 * Revision 1.588 2006/10/16 16:30:17 dwilliss 00320 * added SMLSYMBOL::IsPermanent() 00321 * 00322 * Revision 1.587 2006/10/13 20:56:46 drb 00323 * Added NULLMASK class name 00324 * Dave W's previous change was unprotecting SetTextColor****(), StartTitle() 00325 * and EndTitle(). 00326 * 00327 * Revision 1.586 2006/10/13 20:52:29 dwilliss 00328 * I don't know :-) 00329 * 00330 * Revision 1.585 2006/10/05 21:11:45 mju 00331 * Remove textid hdr, not needed by this hdr. 00332 * 00333 * Revision 1.584 2006/09/18 16:09:28 dwilliss 00334 * put back an include file that I still needed 00335 * 00336 * Revision 1.583 2006/09/18 15:30:05 dwilliss 00337 * Eliminated some old deprecated methods 00338 * 00339 * Revision 1.582 2006/09/14 21:50:54 mju 00340 * Change message to not use word "error" so easier to search for. 00341 * 00342 * Revision 1.581 2006/09/14 17:04:55 mju 00343 * Include smlbase hdr. 00344 * 00345 * Revision 1.580 2006/09/14 14:35:31 dwilliss 00346 * Added SMLRASTEROBJECT::GetDataType() 00347 * 00348 * Revision 1.579 2006/09/13 20:42:11 dwilliss 00349 * some deprecated stuff 00350 * 00351 * Revision 1.578 2006/09/13 15:58:27 dwilliss 00352 * Added a DeleteExisting to SMLOBJECT 00353 * 00354 * Revision 1.577 2006/09/12 22:22:14 dwilliss 00355 * changed some methods to only be defined if building the dll so that they'll still 00356 * be exported, but nothing that tries to use them will compile. 00357 * 00358 * Revision 1.576 2006/09/07 17:55:55 scowan 00359 * Removed unused mxqueryeditscript functions. 00360 * 00361 * Revision 1.575 2006/09/07 17:41:38 dwilliss 00362 * Changed SMLCALLBACKSTRUCT to have an RVC::OBJITEM 00363 * 00364 * Revision 1.574 2006/09/07 17:07:20 dwilliss 00365 * prevent memset of SMLCALLBACKSTRUCT 00366 * 00367 * Revision 1.573 2006/09/01 17:43:37 dfriberg 00368 * Add EXIF 00369 * 00370 * Revision 1.572 2006/09/01 15:52:54 scowan 00371 * Removed unnecessary header, added forward decl. 00372 * 00373 * Revision 1.571 2006/08/17 16:44:14 dwilliss 00374 * some deprecation work 00375 * 00376 * Revision 1.570 2006/08/16 23:02:39 dwilliss 00377 * *** empty log message *** 00378 * 00379 * Revision 1.569 2006/08/02 17:47:49 dwilliss 00380 * added a context creation method that takes an RVC::OBJITEM instead of 00381 * filehandle/inode 00382 * 00383 * Revision 1.568 2006/07/27 19:39:21 dwilliss 00384 * fixed a few deprecated things to still be defined if building rvcsys so that 00385 * the implementation will compile and be exported 00386 * 00387 * Revision 1.567 2006/07/25 21:45:06 dwilliss 00388 * Implemented AddRef/Release on SMLCONTEXT. Deprecated Destroy() 00389 * 00390 * Revision 1.566 2006/07/20 22:19:54 dwilliss 00391 * Added SetParmError, depredated <DELETED> 00392 * 00393 * Revision 1.565 2006/07/20 17:46:08 dwilliss 00394 * eliminated the temp mem pool 00395 * 00396 * Revision 1.564 2006/07/18 18:02:01 dwilliss 00397 * support for function overloads 00398 * 00399 * Revision 1.563 2006/07/14 14:30:30 dwilliss 00400 * smlgeostruct no longer has private ctor/dtor. Go ahead and use new/delete 00401 * outside the dll. 00402 * 00403 * Revision 1.562 2006/07/13 19:52:56 dwilliss 00404 * Some major changes coming soon 00405 * 00406 * Revision 1.561 2006/07/07 17:52:17 dwilliss 00407 * Really deprecated something old 00408 * 00409 * Revision 1.560 2006/07/06 22:27:28 dwilliss 00410 * deprecated some stuff 00411 * 00412 * Revision 1.559 2006/07/06 20:42:38 drb 00413 * Removed CADINFO stuff 00414 * 00415 * Revision 1.558 2006/06/30 22:24:09 dwilliss 00416 * got rid of a member we don't need any more 00417 * 00418 * Revision 1.557 2006/06/16 19:35:50 dwilliss 00419 * Addes SMLSTRINGHASH 00420 * 00421 * Revision 1.556 2006/06/15 17:08:19 drb 00422 * Added BITSET_OPERARTOR 00423 * 00424 * Revision 1.555 2006/06/14 21:24:14 dwilliss 00425 * Added a method to SMLSYMBOL to get the "alternate" name 00426 * 00427 * Revision 1.554 2006/06/12 19:39:07 dwilliss 00428 * Added a private method to SMLSYMBOL 00429 * 00430 * Revision 1.553 2006/06/09 23:28:51 drb 00431 * Added some SMLCLASSNAMES 00432 * 00433 * Revision 1.552 2006/06/09 19:10:39 drb 00434 * Add constructor and destructor to SMLFILEINFO struct 00435 * 00436 * Revision 1.551 2006/05/08 15:59:44 drb 00437 * Added OBJECTINFO class name 00438 * 00439 * Revision 1.550 2006/04/07 21:29:27 dwilliss 00440 * get rid of prototype of a function that was no longer used 00441 * 00442 * Revision 1.549 2006/04/07 19:08:21 dwilliss 00443 * changed callback struct to be derived from MICALLBACKLIST::ANYCALLBACKSTRUCT 00444 * 00445 * Revision 1.548 2006/04/06 15:34:52 dwilliss 00446 * fixed a prototype that didn't specify return type. Should have been void. 00447 * 00448 * Revision 1.547 2006/04/05 20:06:26 mju 00449 * Use win32 instead of winnt. 00450 * 00451 * Revision 1.546 2006/03/31 18:54:53 drb 00452 * Added Clear method to SML*HASH classes 00453 * 00454 * Revision 1.545 2006/03/07 18:14:06 dwilliss 00455 * *** empty log message *** 00456 * 00457 * Revision 1.544 2006/02/08 21:05:26 dwilliss 00458 * fixed to compile with g++ 4.0 00459 * 00460 * Revision 1.543 2006/01/06 21:41:43 dfriberg 00461 * Remove deprecated SML ImpExp functions 00462 * 00463 * Revision 1.542 2006/01/06 19:08:31 dwilliss 00464 * un-ifdef-d out something 00465 * 00466 * Revision 1.541 2006/01/05 21:45:27 mju 00467 * Exclude deprecated stuff when compiling for no_deprecated. 00468 * 00469 * Revision 1.540 2006/01/05 17:05:12 dwilliss 00470 * modified autoclass new's copy ctor to cope with in-place copy 00471 * 00472 * Revision 1.539 2006/01/03 17:46:18 dwilliss 00473 * added a method for internal use 00474 * 00475 * 00476 ******************************************************************************* 00477 * Defining built-in SML functions: 00478 * 00479 * I SML built-in functions come in 3 flavors: void, double, and string. 00480 * Functions should take 3 parameters: 00481 * 00482 * static void function(numargs, arg, argtype) 00483 * int numargs; # of arguments 00484 * SMLARG *arg; Array of arguments 00485 * UINT8 *argtype; STYPE_Xxxx -- See <mi32/dbquery.h> 00486 * 00487 * All built-in functions should be declared as static. 00488 * 00489 * II To install a group of built-in functions, do the following: 00490 * 00491 * A. For each function: 00492 * 1. Prototype the function. 00493 * 2. Define a static array of SMLPARM. 00494 * a. Give one entry for each parameter. 00495 * b. Signal the end of the array by defining a paramater 00496 * with NULL for a name. 00497 * c. If you request the type STYPE_AnyVal, you may be passed 00498 * either an STYPE_Constant or STYPE_String. Check the 00499 * argtype array in your function and use the parm accordingly. 00500 * d. If you don't care how many parameters your function gets, 00501 * name the last parameter (not counting the NULL) "..." 00502 * This will match 0 or more parameters of the type requested. 00503 * e. Some parameters can be marked as optional, but then it's 00504 * up to you to figure out which ones you got. Put optional 00505 * parameters at the end. 00506 * 00507 * B. Define a static array of SMLFUNC, one entry per function. 00508 * the type must be either STYPE_BProcedure (void function), 00509 * STYPE_Function (function returning double), or STYPE_BSFunction 00510 * (Function returning SMLSTRING). You will have to cast the 00511 * function pointer to (VOIDFUNC), or most compilers will hate you. 00512 * Signal the end of the array by defining a function with NULL as 00513 * a name. 00514 * 00515 * III In the function: 00516 * 00517 * A. Don't free anything passed to you -- ever! 00518 * B. The arg array passed is an array of unions. Use the field that 00519 * matches the type of data you requested. Rasters are passed as 00520 * symbols. 00521 * C. If you encounter an error in your function and want to halt the 00522 * SML script, call one of the following, then return: 00523 * 1. context->SetErrorCode(int error) 00524 * Works for any error code listed in <mi32/errcodes.ref> 00525 * 2. context->SetParmError(argnum, int error) 00526 * Works for SML_EXxxxx errors listed below. Pass the 00527 * 0-based argument number of the offending argument. 00528 * The error parameter has a default value of EBadFuncParm 00529 * 00530 * IV. Actual install. 00531 * A. Get the SML context (returned from SML_InitExt) 00532 * B. Call the following: 00533 * SML_InstallFunctions(context, class, func_list) 00534 * void *context; (returned from SML_InitExt) 00535 * char *class; (example: "test") 00536 * SMLFUNC *func_list; (see above) 00537 * 00538 * Function returns 0 or an error code 00539 * C. In the SML editor, the functions will be shown on the 00540 * "Symbols..." dialog in a group called (in this example) 00541 * "function_test". These names are looked up from textres 00542 * 00543 * \endif 00544 */ 00545 /*****************************************************************************/ 00546 00547 #ifndef INC_MI32_SML_H 00548 #define INC_MI32_SML_H 00549 00550 /*#undef SML_API_CONFORMANCE Can't have until I can check this include file in */ 00551 00552 #ifndef SML_API_CONFORMANCE 00553 #define SML_API_CONFORMANCE 0 00554 #endif 00555 00556 #ifndef INC_MI32_SMLBASE_H 00557 #include <mi32/smlbase.h> 00558 #endif 00559 00560 #ifndef INC_MI32_ELEMTYPE_H 00561 #include <mi32/elemtype.h> 00562 #endif 00563 00564 #ifndef INC_MI32_MCB_H 00565 #include <mi32/mcb.h> 00566 #endif 00567 00568 #ifndef INC_MI32_CRYPTO_H 00569 #include <mi32/crypto.h> 00570 #endif 00571 00572 #ifdef RVCSYSDLL 00573 #define RVCSYSLIBEXPORT MI_DLLEXPORT 00574 #else 00575 #define RVCSYSLIBEXPORT MI_DLLIMPORT 00576 #endif 00577 00578 // Forward declarations 00579 #ifndef GENERATING_DOXYGEN_OUTPUT 00580 class TRANS2D_MAPGEN; 00581 class MISTRING; 00582 class FILEPATH; 00583 struct MENUITEM; 00584 namespace MGD { 00585 class CONTEXT; 00586 } 00587 namespace RVC { 00588 class OBJITEM; 00589 } 00590 namespace SML { 00591 class EDITOR; 00592 } 00593 #endif 00594 /***************************************************************************/ 00595 00596 /* Flags for MxQueryCreate() */ 00597 #define QFLAG_SML 0x0001 00598 #define QFLAG_NoShell 0x0002 00599 #define QFLAG_AutoRun 0x0004 00600 #define QFLAG_NoWait 0x0008 00601 #define QFLAG_SingleTable 0x0010 00602 #define QFLAG_PinMap 0x0020 00603 #define QFLAG_DispLayer 0x0040 00604 #define QFLAG_Formula 0x0080 00605 #define QFLAG_NonModal 0x0100 00606 #define QFLAG_NoEdit 0x0400 00607 #define QFLAG_NoConsole 0x0800 00608 #define QFLAG_SetExitOnQuit 0x1000 00609 #define QFLAG_NoViewIcon 0x2000 00610 #define QFLAG_ScriptNoFile 0x4000 00611 #define QFLAG_FileExtnSML 0x8000 00612 #define QFLAG_Filename 0x10000 00613 #define QFLAG_SupressToolbar 0x20000 00614 00615 /*-------------------------------------------------------------------------*/ 00616 /* Function Prototypes */ 00617 /*-------------------------------------------------------------------------*/ 00618 00619 /*:> querylow.c ----------------------------------------------*/ 00620 00621 #ifndef GENERATING_DOXYGEN_OUTPUT 00622 namespace SML { 00627 00628 RVCSYSLIBEXPORT int ReadScript ( 00629 RVC::OBJITEM& ObjItem, 00630 char *encoding, 00631 MIUNICODE *upassword, 00632 int (*CryptoPromptPassword) ( 00633 void *data, 00634 MIUNICODE *password 00635 ), 00636 void *PromptPasswordData, 00637 MCRYPTOHDR *crypto, 00638 MISTRING& ScriptStr, 00639 int chdrsize 00640 ); 00641 } // end of SML namespace 00642 00643 #endif // GENERATING_DOXYGEN_OUTPUT 00644 00645 /******************************************************************************/ 00646 /* The rest of these are NOT in rvcsys.dll */ 00647 /******************************************************************************/ 00648 00649 /*:> smlinit.c ----------------------------------------------*/ 00650 00652 void SML_LongToDate ( 00653 INT32 date, 00654 char *dateStr 00655 ); 00656 00657 /*:> qqstyle.c ----------------------------------------------*/ 00659 int DBQuery_DrawOptimizedLabels ( 00660 SML::CONTEXT *context, 00661 ELEMTYPE ElemType, 00662 UINT8 *bitarray, 00663 INT32 NumElem 00664 ); 00665 00667 int DBQuery_SetupStyleDraw ( 00668 SML::CONTEXT *context, 00669 MGD::CONTEXT *ggc, 00670 const TRANS2D_MAPGEN& tmg, 00671 bool Is3D, 00672 SML::SYMBOL *DrawDoneSym 00673 ); 00674 00676 int DBQuery_LineStyleSetPoints ( 00677 SML::CONTEXT *context, 00678 const DPOINT2D *pts, 00679 INT32 NumPts, 00680 int CloseMode 00681 ); 00682 00684 int DBQuery_LineStyleSetGC ( 00685 SML::CONTEXT *context, 00686 MGD::CONTEXT* gc, 00687 const TRANS2D_MAPGEN& tmg 00688 ); 00689 00690 /*:> qqmgd.c ----------------------------------------------*/ 00691 00699 void DBQuery_SetMgdDisplay ( 00700 SML::CONTEXT *context, 00701 MGD::CONTEXT* ggc, 00702 const TRANS2D_MAPGEN& tmg, 00703 const RVC::OBJITEM* StyleObjItem = 0 00704 ); 00705 00711 00712 int DBQuery_GetMgdExtents ( 00713 SML::CONTEXT *context, 00714 DRECT2D *extents 00715 ); 00716 00718 MGD::CONTEXT* DBQuery_GetCurrentMgdGC ( 00719 SML::CONTEXT *context 00720 ); 00721 00722 /*:> qqmdisp.c ----------------------------------------------*/ 00723 00727 void DBQuery_SetMdispLayer ( 00728 SML::CONTEXT *context, 00729 void *layer, 00730 void *view, 00731 int ExtentsOnly 00732 ); 00733 00734 00735 /**********************************************************************/ 00736 00750 int SML_ExecuteMain ( 00751 MDLGPARENT toplevel, 00752 int (*InstallDisplayFunctions)(SML::CONTEXT *), 00753 const MIUNICODE *fname, 00754 const MIUNICODE *objname, 00755 UINT32 flags, 00756 void *encdata = NULL, 00757 MIPRODUCTCODE productcode = MIPRODUCTCODE_Default 00758 ); 00759 00764 int SML_Main ( 00765 MDLGPARENT toplevel, 00766 SML::CONTEXT *context, 00767 const char **argv, 00768 int argc, 00769 UINT32 flags = 0 00770 ); 00771 00772 00774 int SML_NoEditMain ( 00775 MDLGPARENT toplevel, 00776 SML::CONTEXT *context, 00777 const MIUNICODE *fname, 00778 const MIUNICODE *objname, 00779 UINT32 flags, 00780 void *encdata = NULL 00781 ); 00782 00784 namespace SML { 00785 class ENCODINGDATA { 00786 public: 00787 ENCODINGDATA(); 00788 ~ENCODINGDATA(); 00789 00790 char *encoding; 00791 int EncodingNum; 00792 }; 00793 } // end of SML namespace 00794 00795 typedef SML::ENCODINGDATA SMLENCODINGDATA; 00796 00804 00805 int SML_CheckExit ( 00806 MDLGPARENT parent 00807 ); 00808 00809 #if !defined(WIN32_NATIVE) || defined(GENERATING_DOXYGEN_OUTPUT) 00810 #include <X11/intrinsic.h> // For XtCallbackProc 00811 00825 void SML_AddWidgetDestroyCallback ( 00826 SML::CONTEXT *context, 00827 Widget widget, 00828 XtCallbackProc func, 00829 void *cbdata 00830 ); 00831 #endif 00832 00833 00834 /**********************************************************************/ 00835 00842 typedef SML::EDITOR SMLEDITOR; 00843 00854 00855 int MxQueryCreate ( 00856 SML::EDITOR **handle, 00857 UINT32 flags 00858 ); 00859 00861 int MxQueryCloseChildren ( 00862 SML::EDITOR *handle 00863 ); 00864 00866 int MxQuerySetContext ( 00867 SML::EDITOR *handle, 00868 SML::CONTEXT *context, 00869 int segment 00870 ); 00871 00875 void MxQuerySetScriptFilepath ( 00876 SML::EDITOR *handle, 00877 const FILEPATH& filepath 00878 ); 00879 00883 void MxQuerySetScriptObject ( 00884 SML::EDITOR *handle, 00885 const RVC::OBJITEM& objitem 00886 ); 00887 00888 00889 #ifndef WIN32_NATIVE 00895 int MxQuerySetWidgets ( 00896 SML::EDITOR *handle, 00897 Widget parent, 00898 Widget text, 00899 Widget message 00900 ); 00901 #endif 00902 00903 00912 int MxQueryAddCallback ( 00913 SML::EDITOR *handle, 00914 McbCallbackFunc func, 00915 void *cbdata, 00916 UINT32 reason 00917 ); 00918 00919 00924 void MxQueryRemoveCallback ( 00925 SML::EDITOR *handle, 00926 McbCallbackFunc func, 00927 void *cbdata, 00928 UINT32 reason 00929 ); 00930 00934 00935 int MxQueryCheckSyntax ( 00936 MDLGPARENT parent, 00937 SML::EDITOR *handle 00938 ); 00939 00940 #ifndef WIN32_NATIVE 00945 DEPRECATED_MSG("Use MGUI::FORM_EDIT_SML") Widget MxCreateQueryMenuBar ( 00946 Widget pwidget, 00947 SML::EDITOR *handle 00948 ); 00949 #endif 00950 00951 00952 #ifndef WIN32_NATIVE 00955 MENUITEM * MxQueryGetMenuInsert ( 00956 SML::EDITOR *handle 00957 ); 00958 #endif 00959 00960 #ifndef WIN32_NATIVE 00963 MENUITEM * MxQueryGetMenuSyntax ( 00964 SML::EDITOR *handle 00965 ); 00966 #endif 00967 00968 00971 ERRVALUE MxQueryOpenScript ( 00972 SML::EDITOR* editor, 00973 const RVC::OBJITEM& ObjItem, 00974 int usage 00975 ); 00976 00977 00989 ERRVALUE SML_EditScript ( 00990 MDLGPARENT dlgparent, 00991 MISTRING& scriptstr, 00992 SML::CONTEXT* smlcontext, 00993 int smlsegment = 0, 00994 UINT32 flags = 0 00995 ); 00996 01015 inline int SML_ReadScript ( 01016 RVC::OBJITEM& ObjItem, 01017 MISTRING& ScriptStr, 01018 char *encoding = 0, 01019 MIUNICODE *password = 0, 01020 int (*CryptoPromptPassword) ( 01021 void *data, 01022 MIUNICODE *password 01023 ) = 0, 01024 void *PromptPasswordData = 0, 01025 MCRYPTOHDR *crypto = 0 01026 ) { 01027 return (SML::ReadScript(ObjItem,encoding,password,CryptoPromptPassword,PromptPasswordData,crypto,ScriptStr,sizeof(MCRYPTOHDR))); 01028 } 01029 01030 01031 #ifdef WIN32_MFC 01032 01033 ERRVALUE SMLEdit ( 01034 MDLGPARENT parent, 01035 SML::CONTEXT* context, 01036 int segment, 01037 MISTRING& query, 01038 UINT32 flags 01039 ); 01040 01041 #endif 01042 01043 01044 #ifdef WIN32 01045 #pragma warning (default:4996) // Restore warning about deprecated declaration 01046 #endif 01047 01048 #undef RVCSYSLIBEXPORT 01049 01050 #endif // INC_MI32_SML_H 01051 01052
1.6.1