📄 dialog1.c
字号:
/*******************************************************/ /* "C" Language Integrated Production System */ /* */ /* A Product Of The */ /* Software Technology Branch */ /* NASA - Johnson Space Center */ /* */ /* CLIPS Version 6.00 10/01/92 */ /* */ /* DIALOG1 MODULE */ /*******************************************************//**************************************************************//* Purpose: Contains the callback functions for most of the *//* simple dialogs from the main menu. *//* *//* Principal Programmer(s): *//* Christopher J. Ortiz *//* *//* Contributing Programmer(s): *//* *//* Revision History: *//* *//**************************************************************//*-------------------------------+| Windows & System Include Files |+-------------------------------*/#include <windows.h>#include <stdlib.h>#include <ctype.h>#include <string.h>/*------------------------+| CLIPS 6.0 Include Files |+------------------------*/#include "setup.h"#include "factcom.h"#include "facthsh.h"#include "crstrtgy.h"#include "globlcom.h"#include "incrrset.h"#include "watch.h"#include "exprnpsr.h"#include "bmathfun.h"/*------------------------+| Interface Include Files |+------------------------*/#include "dialog.h"#include "ids.h"#include "main.h"int rulestep = 1;int warnings = 1;BOOL Complete = 1;int SetCheckBox (HWND, WORD, int );/******************************************************************** SetCheckBox: The function selects (places a check mark next to)* or clears (removes a check mark from) a button control (wParam).*******************************************************************/int SetCheckBox (hDlg, wParam, value ) HWND hDlg; WORD wParam; int value;{ CheckDlgButton ( hDlg, wParam, value ); return (value);}/******************************************************************** AboutDlg: Callback Function for the About CLIPS Dialog Box.*******************************************************************/#if IBM_TBC#pragma argsused#endifBOOL FAR PASCAL _export AboutDlg (hDlg, message, wParam, lParam) HWND hDlg; unsigned message; WORD wParam; LONG lParam;{ switch (message) { case WM_INITDIALOG: return (TRUE); case WM_COMMAND: { switch ( wParam ) case IDC_OK: { EndDialog(hDlg, IDOK); return (TRUE); } break; } } return (FALSE);}/************************************************************ ExecDlg: Callback function which allows the user to set* various CLIPS execution options.***********************************************************/#if IBM_TBC#pragma argsused#endifBOOL FAR PASCAL _export ExecDlg (hDlg, message, wParam, lParam) HWND hDlg; unsigned message; WORD wParam; LONG lParam;{ switch (message) { case WM_INITDIALOG: { WPARAM item; SetWindowText ( hDlg, (LPSTR)"Execution Options" ); /*-----------------------------+ | Initalize Strategy Combo Box | +-----------------------------*/#if CONFLICT_RESOLUTION_STRATEGIES SendDlgItemMessage (hDlg, IDC_EXE_STRATEGY, CB_ADDSTRING,0,(LPARAM)((LPSTR) "Depth")); SendDlgItemMessage (hDlg, IDC_EXE_STRATEGY, CB_ADDSTRING,0,(LPARAM)((LPSTR) "Breadth")); SendDlgItemMessage (hDlg, IDC_EXE_STRATEGY, CB_ADDSTRING,0,(LPARAM)((LPSTR) "LEX")); SendDlgItemMessage (hDlg, IDC_EXE_STRATEGY, CB_ADDSTRING,0,(LPARAM)((LPSTR) "MEA")); SendDlgItemMessage (hDlg, IDC_EXE_STRATEGY, CB_ADDSTRING,0,(LPARAM)((LPSTR) "Complexity")); SendDlgItemMessage (hDlg, IDC_EXE_STRATEGY, CB_ADDSTRING,0,(LPARAM)((LPSTR) "Simplicity")); SendDlgItemMessage (hDlg, IDC_EXE_STRATEGY, CB_ADDSTRING,0,(LPARAM)((LPSTR) "Random")); switch ( GetStrategy()) { case DEPTH_STRATEGY: item = (int) SendDlgItemMessage(hDlg,IDC_EXE_STRATEGY,CB_FINDSTRING,0,(LPARAM)((LPSTR)"Depth")); break; case BREADTH_STRATEGY: item = (int) SendDlgItemMessage(hDlg,IDC_EXE_STRATEGY,CB_FINDSTRING,0,(LPARAM)((LPSTR)"Breadth")); break; case LEX_STRATEGY: item = (int) SendDlgItemMessage(hDlg,IDC_EXE_STRATEGY,CB_FINDSTRING,0,(LPARAM)((LPSTR)"LEX")); break; case MEA_STRATEGY: item = (int) SendDlgItemMessage(hDlg,IDC_EXE_STRATEGY,CB_FINDSTRING,0,(LPARAM)((LPSTR)"MEA")); break; case COMPLEXITY_STRATEGY: item = (int) SendDlgItemMessage(hDlg,IDC_EXE_STRATEGY,CB_FINDSTRING,0,(LPARAM)((LPSTR)"Complexity")); break; case SIMPLICITY_STRATEGY: item = (int) SendDlgItemMessage(hDlg,IDC_EXE_STRATEGY,CB_FINDSTRING,0,(LPARAM)((LPSTR)"Simplicity")); break; case RANDOM_STRATEGY: item = (int) SendDlgItemMessage(hDlg,IDC_EXE_STRATEGY,CB_FINDSTRING,0,(LPARAM)((LPSTR)"Random")); break; }#else SendDlgItemMessage (hDlg, IDC_EXE_STRATEGY, CB_ADDSTRING,0,(LPARAM)((LPSTR) "Depth")); item = (int) SendDlgItemMessage(hDlg,IDC_EXE_STRATEGY,CB_FINDSTRING,0,(LPARAM)((LPSTR)"Depth"));#endif SendDlgItemMessage (hDlg, IDC_EXE_STRATEGY, CB_SETCURSEL, item, 0); /*-----------------------------+ | Initalize Salience Combo Box | +-----------------------------*/#if DYNAMIC_SALIENCE SendDlgItemMessage (hDlg, IDC_EXE_SALIENCE, CB_ADDSTRING,0,(LPARAM)((LPSTR) "When Defined")); SendDlgItemMessage (hDlg, IDC_EXE_SALIENCE, CB_ADDSTRING,0,(LPARAM)((LPSTR) "When Activated")); SendDlgItemMessage (hDlg, IDC_EXE_SALIENCE, CB_ADDSTRING,0,(LPARAM)((LPSTR) "Every Cycle")); switch (GetSalienceEvaluation()) { case WHEN_DEFINED: item = (int) SendDlgItemMessage (hDlg, IDC_EXE_SALIENCE, CB_FINDSTRING,0,(LPARAM)((LPSTR) "When Defined")); break; case WHEN_ACTIVATED: item = (int) SendDlgItemMessage (hDlg, IDC_EXE_SALIENCE, CB_FINDSTRING,0,(LPARAM)((LPSTR) "When Activated")); break; case EVERY_CYCLE: item = (int) SendDlgItemMessage (hDlg, IDC_EXE_SALIENCE, CB_FINDSTRING,0,(LPARAM)((LPSTR) "Every Cycle")); break; }#else SendDlgItemMessage (hDlg, IDC_EXE_SALIENCE, CB_ADDSTRING,0,(LPARAM)((LPSTR) "When Defined")); item = SendDlgItemMessage (hDlg, IDC_EXE_SALIENCE, CB_FINDSTRING,0,(LPARAM)((LPSTR) "When Defined"));#endif SendDlgItemMessage (hDlg, IDC_EXE_SALIENCE, CB_SETCURSEL, item, 0); /*-----------------------------------+ | Disable Incremental reset check box | | if any rules are in the system. | +------------------------------------*/ if ( GetNextDefrule (NULL) != NULL ) { EnableWindow(GetDlgItem(hDlg, IDC_WATCH_ALL ), TRUE); } /*----------------------------+ | Initalize Other Check Boxes | +----------------------------*/ SetCheckBox(hDlg, IDC_EXE_STATIC, GetStaticConstraintChecking()); SetCheckBox(hDlg, IDC_EXE_DYNAMIC, GetDynamicConstraintChecking()); SetCheckBox(hDlg, IDC_EXE_AUTO, GetAutoFloatDividend());#if DEFGLOBAL_CONSTRUCT SetCheckBox(hDlg, IDC_EXE_GLOBAL, GetResetGlobals());#endif#if DEFTEMPLATE_CONSTRUCT SetCheckBox(hDlg, IDC_EXE_FACT, GetFactDuplication());#endif#if INCREMENTAL_RESET & (! RUN_TIME) SetCheckBox(hDlg, IDC_EXE_RESET, GetIncrementalReset());#endif#if (!RUN_TIME) SetCheckBox(hDlg, IDC_EXE_SEQUENCE, GetSequenceOperatorRecognition());#endif return (TRUE); } case WM_COMMAND: { switch ( wParam ) { case IDC_OK: { int value; char Msg[40];#if DYNAMIC_SALIENCE /*--------------------------+ | Decode Salience Combo Box | +--------------------------*/ value = (int) SendDlgItemMessage (hDlg, IDC_EXE_SALIENCE, CB_GETCURSEL, 0, 0); SendDlgItemMessage (hDlg, IDC_EXE_SALIENCE, CB_GETLBTEXT, value, (LONG)Msg ); if ( strcmp (Msg, "When Defined" ) == 0 ) SetSalienceEvaluation(WHEN_DEFINED); else if (strcmp(Msg, "When Activated" ) == 0) SetSalienceEvaluation(WHEN_ACTIVATED); else SetSalienceEvaluation(EVERY_CYCLE);#endif#if CONFLICT_RESOLUTION_STRATEGIES /*--------------------------+ | Decode Strategy Combo Box | +--------------------------*/ value = (int) SendDlgItemMessage (hDlg, IDC_EXE_STRATEGY, CB_GETCURSEL, 0, 0); SendDlgItemMessage (hDlg, IDC_EXE_STRATEGY, CB_GETLBTEXT, value, (LONG)Msg ); if ( strcmp (Msg, "Depth" ) == 0 ) SetStrategy(DEPTH_STRATEGY); else if (strcmp(Msg, "Breadth" ) == 0) SetStrategy(BREADTH_STRATEGY); else if (strcmp(Msg, "LEX") == 0 ) SetStrategy(LEX_STRATEGY); else if (strcmp(Msg, "MEA") == 0 ) SetStrategy(MEA_STRATEGY); else if (strcmp(Msg, "Complexity") == 0 ) SetStrategy(COMPLEXITY_STRATEGY); else if (strcmp(Msg, "Simplicity") == 0 ) SetStrategy(SIMPLICITY_STRATEGY); else SetStrategy(RANDOM_STRATEGY);#endif /*-------------------------+ | Decode Other Check Boxes | +-------------------------*/ SetStaticConstraintChecking ( IsDlgButtonChecked(hDlg, IDC_EXE_STATIC)); SetDynamicConstraintChecking ( IsDlgButtonChecked(hDlg, IDC_EXE_DYNAMIC)); SetAutoFloatDividend ( IsDlgButtonChecked(hDlg, IDC_EXE_AUTO));#if DEFGLOBAL_CONSTRUCT SetResetGlobals ( IsDlgButtonChecked(hDlg, IDC_EXE_GLOBAL));#endif#if DEFTEMPLATE_CONSTRUCT SetFactDuplication( IsDlgButtonChecked(hDlg, IDC_EXE_FACT));#endif#if INCREMENTAL_RESET & (! RUN_TIME ) SetIncrementalReset ( IsDlgButtonChecked(hDlg, IDC_EXE_RESET));#endif#if ( ! RUN_TIME ) SetSequenceOperatorRecognition ( IsDlgButtonChecked(hDlg, IDC_EXE_SEQUENCE));#endif } case IDC_CANCEL: { EndDialog( hDlg, IDOK); return (TRUE); } /*-------------------+ | Toggle Check Boxes | +-------------------*/ case IDC_EXE_RESET: case IDC_EXE_STATIC: case IDC_EXE_DYNAMIC: case IDC_EXE_GLOBAL:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -