示例#1
0
/*******************************************************************************
          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
  }
示例#2
0
/******************************************************************************
 * 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);
     }

}
示例#3
0
文件: Status.c 项目: Viriana/SISE
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
}