1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 /* */ 3 /* This file is part of the program and library */ 4 /* SCIP --- Solving Constraint Integer Programs */ 5 /* */ 6 /* Copyright (c) 2002-2023 Zuse Institute Berlin (ZIB) */ 7 /* */ 8 /* Licensed under the Apache License, Version 2.0 (the "License"); */ 9 /* you may not use this file except in compliance with the License. */ 10 /* You may obtain a copy of the License at */ 11 /* */ 12 /* http://www.apache.org/licenses/LICENSE-2.0 */ 13 /* */ 14 /* Unless required by applicable law or agreed to in writing, software */ 15 /* distributed under the License is distributed on an "AS IS" BASIS, */ 16 /* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. */ 17 /* See the License for the specific language governing permissions and */ 18 /* limitations under the License. */ 19 /* */ 20 /* You should have received a copy of the Apache-2.0 license */ 21 /* along with SCIP; see the file LICENSE. If not visit scipopt.org. */ 22 /* */ 23 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 24 25 /**@file type_dialog.h 26 * @ingroup TYPEDEFINITIONS 27 * @brief type definitions for user interface dialog 28 * @author Tobias Achterberg 29 * 30 * This file defines the interface for dialogs implemented in C. 31 * 32 * - \ref DIALOG "Instructions for implementing a dialog" 33 * - \ref DIALOGS "List of available dialogs" 34 * - \ref scip::ObjDialog "C++ wrapper class 35 */ 36 37 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/ 38 39 #ifndef __SCIP_TYPE_DIALOG_H__ 40 #define __SCIP_TYPE_DIALOG_H__ 41 42 #include "scip/def.h" 43 #include "scip/type_retcode.h" 44 #include "scip/type_scip.h" 45 46 #ifdef __cplusplus 47 extern "C" { 48 #endif 49 50 typedef struct SCIP_Dialog SCIP_DIALOG; /**< user interface dialog */ 51 typedef struct SCIP_DialogData SCIP_DIALOGDATA; /**< user defined dialog data */ 52 typedef struct SCIP_Dialoghdlr SCIP_DIALOGHDLR; /**< dialog handler */ 53 typedef struct SCIP_Linelist SCIP_LINELIST; /**< linked list of single input lines */ 54 55 56 /** copy method for dialog plugins (called when SCIP copies plugins) 57 * 58 * input: 59 * - scip : SCIP main data structure 60 * - dialog : the dialog itself 61 */ 62 #define SCIP_DECL_DIALOGCOPY(x) SCIP_RETCODE x (SCIP* scip, SCIP_DIALOG* dialog) 63 64 /** destructor of dialog to free user data (called when the dialog is not captured anymore) 65 * 66 * input: 67 * - scip : SCIP main data structure 68 * - dialog : the dialog itself 69 */ 70 #define SCIP_DECL_DIALOGFREE(x) SCIP_RETCODE x (SCIP* scip, SCIP_DIALOG* dialog) 71 72 /** description output method of dialog 73 * 74 * This method should output (usually a single line of) information describing the meaning of the dialog. 75 * The method is called, when the help menu of the parent's dialog is displayed. 76 * If no description output method is given, the description string of the dialog is displayed instead. 77 * 78 * input: 79 * - scip : SCIP main data structure 80 * - *dialog : the dialog itself 81 */ 82 #define SCIP_DECL_DIALOGDESC(x) SCIP_RETCODE x (SCIP* scip, SCIP_DIALOG* dialog) 83 84 /** execution method of dialog 85 * 86 * This method is invoked, if the user selected the dialog's command name in the parent's dialog menu. 87 * 88 * input: 89 * - scip : SCIP main data structure 90 * - dialoghdlr : dialog handler to call for user interaction 91 * - dialog : the dialog itself 92 * 93 * output: 94 * - *nextdialog : next dialog to process (or NULL to quit dialog processing) 95 */ 96 #define SCIP_DECL_DIALOGEXEC(x) SCIP_RETCODE x (SCIP* scip, SCIP_DIALOG* dialog, SCIP_DIALOGHDLR* dialoghdlr, SCIP_DIALOG** nextdialog) 97 98 #ifdef __cplusplus 99 } 100 #endif 101 102 #endif 103