void SaveExecutionInformation() { HKEY hKey; DWORD lpdwDisposition; struct ExecutionInformation executionInfo; if (RegCreateKeyEx(HKEY_CURRENT_USER,TEXT("Software\\CLIPS\\CLIPSWin"),0,"",0, KEY_READ | KEY_WRITE,NULL,&hKey,&lpdwDisposition) != ERROR_SUCCESS) { return; } executionInfo.salienceEvaluation = EnvGetSalienceEvaluation(GlobalEnv); executionInfo.strategy = EnvGetStrategy(GlobalEnv); executionInfo.staticConstraintChecking = (boolean) EnvGetStaticConstraintChecking(GlobalEnv); executionInfo.dynamicConstraintChecking = (boolean) EnvGetDynamicConstraintChecking(GlobalEnv); executionInfo.autoFloatDividend = (boolean) EnvGetAutoFloatDividend(GlobalEnv); executionInfo.resetGlobals = (boolean) EnvGetResetGlobals(GlobalEnv); executionInfo.factDuplication = (boolean) EnvGetFactDuplication(GlobalEnv); executionInfo.incrementalReset = (boolean) EnvGetIncrementalReset(GlobalEnv); executionInfo.sequenceOperatorRecognition = (boolean) EnvGetSequenceOperatorRecognition(GlobalEnv); if (RegSetValueEx(hKey,"Execution",0,REG_BINARY,(BYTE *) &executionInfo, sizeof(struct ExecutionInformation)) != ERROR_SUCCESS) { RegCloseKey(hKey); return; } RegCloseKey(hKey); }
globle int GetResetGlobalsCommand( void *theEnv) { int oldValue; oldValue = EnvGetResetGlobals(theEnv); if (EnvArgCountCheck(theEnv,"get-reset-globals",EXACTLY,0) == -1) { return(oldValue); } return(oldValue); }
globle int SetResetGlobalsCommand( void *theEnv) { int oldValue; DATA_OBJECT arg_ptr; /*===========================================*/ /* Remember the old value of this attribute. */ /*===========================================*/ oldValue = EnvGetResetGlobals(theEnv); /*============================================*/ /* Check for the correct number of arguments. */ /*============================================*/ if (EnvArgCountCheck(theEnv,"set-reset-globals",EXACTLY,1) == -1) { return(oldValue); } /*===========================================*/ /* Determine the new value of the attribute. */ /*===========================================*/ EnvRtnUnknown(theEnv,1,&arg_ptr); if ((arg_ptr.value == EnvFalseSymbol(theEnv)) && (arg_ptr.type == SYMBOL)) { EnvSetResetGlobals(theEnv,FALSE); } else { EnvSetResetGlobals(theEnv,TRUE); } /*========================================*/ /* Return the old value of the attribute. */ /*========================================*/ return(oldValue); }
/******************************************************************************* Name: UpdateOptionsMenu Description: Set menu item mark on options selected Arguments: None Returns: None *******************************************************************************/ void UpdateOptionsMenu() { int i; unsigned n = 0; void *theEnv = GetCurrentEnvironment(); XtSetArg(TheArgs[n], XtNleftBitmap, None);n++; for(i = 0; i <= RANDOM_STRATEGY;i++) XtSetValues(strategy_widgets[i], TheArgs, n); for(i = 0; i <= EVERY_CYCLE;i++) XtSetValues(sal_opt_widgets[i],TheArgs,n); n = 0; XtSetArg(TheArgs[n], XtNleftBitmap, checker);n++; XtSetValues(strategy_widgets[EnvGetStrategy(theEnv)],TheArgs,n); XtSetValues(sal_opt_widgets[EnvGetSalienceEvaluation(theEnv)],TheArgs,n); n = 0; if (EnvGetFactDuplication(theEnv)) { XtSetArg(TheArgs[n], XtNstate,True);n++; XtSetValues(option_widgets[INT_FACT_DUPLICATION], TheArgs, n); } else { XtSetArg(TheArgs[n], XtNstate,False);n++; XtSetValues(option_widgets[INT_FACT_DUPLICATION], TheArgs, n); } n = 0; if (EnvGetDynamicConstraintChecking(theEnv)) { XtSetArg(TheArgs[n], XtNstate,True);n++; XtSetValues(option_widgets[INT_DYN_CONSTRAINT_CHK], TheArgs, n); } else { XtSetArg(TheArgs[n], XtNstate,False);n++; XtSetValues(option_widgets[INT_DYN_CONSTRAINT_CHK], TheArgs, n); } n = 0; if (EnvGetStaticConstraintChecking(theEnv)) { XtSetArg(TheArgs[n], XtNstate,True);n++; XtSetValues(option_widgets[INT_STA_CONSTRAINT_CHK], TheArgs, n); } else { XtSetArg(TheArgs[n], XtNstate,False);n++; XtSetValues(option_widgets[INT_STA_CONSTRAINT_CHK], TheArgs, n); } n = 0; if (EnvGetSequenceOperatorRecognition(theEnv)) { XtSetArg(TheArgs[n], XtNstate,True);n++; XtSetValues(option_widgets[INT_SEQUENCE_OPT_REG], TheArgs, n); } else { XtSetArg(TheArgs[n], XtNstate,False);n++; XtSetValues(option_widgets[INT_SEQUENCE_OPT_REG], TheArgs, n); } n = 0; if (EnvGetAutoFloatDividend(theEnv)) { XtSetArg(TheArgs[n], XtNstate,True);n++; XtSetValues(option_widgets[INT_AUTO_FLOAT_DIV], TheArgs, n); } else { XtSetArg(TheArgs[n], XtNstate,False);n++; XtSetValues(option_widgets[INT_AUTO_FLOAT_DIV], TheArgs, n); } n = 0; if (EnvGetIncrementalReset(theEnv)) { XtSetArg(TheArgs[n], XtNstate,True);n++; XtSetValues(option_widgets[INT_INCREMENTAL_RESET], TheArgs, n); } else { XtSetArg(TheArgs[n], XtNstate,False);n++; XtSetValues(option_widgets[INT_INCREMENTAL_RESET], TheArgs, n); } n = 0; if (EnvGetResetGlobals(theEnv)) { XtSetArg(TheArgs[n], XtNstate,True);n++; XtSetValues(option_widgets[INT_RESET_GLOBALS], TheArgs, n); } else { XtSetArg(TheArgs[n], XtNstate,False);n++; XtSetValues(option_widgets[INT_RESET_GLOBALS], TheArgs, n); } }
globle void ResetDefglobals( void *theEnv) { if (! EnvGetResetGlobals(theEnv)) return; DoForAllConstructs(theEnv,ResetDefglobalAction,DefglobalData(theEnv)->DefglobalModuleIndex,TRUE,NULL); }