/******************************************************************************* Name: UpdateMenus Description: Updates the windows if necessary Arguments: None Returns: None *******************************************************************************/ void UpdateMenus() { void *theEnv = GetCurrentEnvironment(); static long LastModuleIndex = -1; Boolean UpdateAll = False; UpdateWindowsMenu(); if(LastModuleIndex != DefmoduleData(theEnv)->ModuleChangeIndex) { UpdateAll = True; LastModuleIndex = DefmoduleData(theEnv)->ModuleChangeIndex; } #if DEFRULE_CONSTRUCT if((Browse_status[AGENDA_WIN] == True ) ? (UpdateAll || (EnvGetAgendaChanged(theEnv) == CLIPS_TRUE)) : FALSE) { EnvSetAgendaChanged(theEnv,CLIPS_FALSE); PrintChangedAgenda(); } if((Browse_status[FOCUS_WIN] == True) ? ( UpdateAll || (EnvGetFocusChanged(theEnv) == CLIPS_TRUE)) : FALSE) { EnvSetFocusChanged(theEnv,CLIPS_FALSE); PrintChangedFocus(); } #endif #if DEFTEMPLATE_CONSTRUCT if((Browse_status[FACT_WIN] == True) ? ( UpdateAll || (EnvGetFactListChanged(theEnv) == CLIPS_TRUE)) : FALSE) { EnvSetFactListChanged(theEnv,CLIPS_FALSE); PrintChangedFacts(); } #endif #if OBJECT_SYSTEM if((Browse_status[INSTANCE_WIN]) ? (UpdateAll || (EnvGetInstancesChanged(theEnv) == CLIPS_TRUE)) : FALSE) { EnvSetInstancesChanged(theEnv,CLIPS_FALSE); PrintChangedInstances(); } #endif #ifdef DEFGLOBAL_CONSTRUCT if((Browse_status[GLOBAL_WIN] == True) ? (UpdateAll || (EnvGetGlobalsChanged(theEnv) == CLIPS_TRUE)) : FALSE) { EnvSetGlobalsChanged(theEnv,CLIPS_FALSE); PrintChangedGlobals(); } #endif }
/****************************************************************************** * PeriodicUpdate: * Description : This function will be called by CLIPS periodically * while it processes a command. This will allow user * to halt the execution, change options, turn on/off watch, * update the the windows during CLIPS process ****************************************************************************** */ static void PeriodicUpdate( void *theEnv) { periodicChecking = True; while(XtAppPending(app_con) != 0) { XtAppNextEvent(app_con, &TheEvent); XtDispatchEvent(&TheEvent); } periodicChecking = False; if((Browse_status[AGENDA_WIN] == True) ? (EnvGetAgendaChanged(theEnv) == CLIPS_TRUE) : FALSE) { PrintChangedAgenda(); EnvSetAgendaChanged(theEnv,CLIPS_FALSE); } if((Browse_status[FACT_WIN] == True) ? (EnvGetFactListChanged(theEnv) == CLIPS_TRUE) : FALSE) { PrintChangedFacts(); EnvSetFactListChanged(theEnv,CLIPS_FALSE); } if((Browse_status[INSTANCE_WIN] == True) ? (EnvGetInstancesChanged(theEnv) == CLIPS_TRUE) : FALSE) { PrintChangedInstances(); EnvSetInstancesChanged(theEnv,CLIPS_FALSE); } if((Browse_status[GLOBAL_WIN] == True) ? (EnvGetGlobalsChanged(theEnv) == CLIPS_TRUE) : FALSE) { PrintChangedGlobals(); EnvSetGlobalsChanged(theEnv,CLIPS_FALSE); } if((Browse_status[FOCUS_WIN] == True) ? (EnvGetFocusChanged(theEnv) == CLIPS_TRUE) :FALSE) { PrintChangedFocus(); EnvSetFocusChanged(theEnv,CLIPS_FALSE); } }
void UpdateStatus(void) { void *theEnv = GlobalEnv; static long lastModuleIndex = -1; if (lastModuleIndex != DefmoduleData(theEnv)->ModuleChangeIndex) { #if DEFRULE_CONSTRUCT EnvSetFocusChanged(theEnv,TRUE); EnvSetAgendaChanged(theEnv,TRUE); #endif #if DEFTEMPLATE_CONSTRUCT EnvSetFactListChanged(theEnv,TRUE); #endif #if OBJECT_SYSTEM EnvSetInstancesChanged(theEnv,TRUE); #endif #if DEFGLOBAL_CONSTRUCT EnvSetGlobalsChanged(theEnv,TRUE); #endif lastModuleIndex = DefmoduleData(GlobalEnv)->ModuleChangeIndex; } #if DEFRULE_CONSTRUCT UpdateStatusContent(AgendaWindow); UpdateStatusContent(FocusWindow); #endif #if DEFTEMPLATE_CONSTRUCT UpdateStatusContent(FactsWindow); #endif #if OBJECT_SYSTEM UpdateStatusContent(InstancesWindow); #endif #if DEFGLOBAL_CONSTRUCT UpdateStatusContent(GlobalsWindow); #endif }