1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* */
/* This file is part of the program and library */
/* SCIP --- Solving Constraint Integer Programs */
/* */
/* Copyright 2002-2022 Zuse Institute Berlin */
/* */
/* Licensed under the Apache License, Version 2.0 (the "License"); */
/* you may not use this file except in compliance with the License. */
/* You may obtain a copy of the License at */
/* */
/* http://www.apache.org/licenses/LICENSE-2.0 */
/* */
/* Unless required by applicable law or agreed to in writing, software */
/* distributed under the License is distributed on an "AS IS" BASIS, */
/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. */
/* See the License for the specific language governing permissions and */
/* limitations under the License. */
/* */
/* You should have received a copy of the Apache-2.0 license */
/* along with SCIP; see the file LICENSE. If not visit scipopt.org. */
/* */
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/**@file dialog.h
* @ingroup INTERNALAPI
* @brief internal methods for user interface dialog
* @author Tobias Achterberg
*/
/*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
#ifndef __SCIP_DIALOG_H__
#define __SCIP_DIALOG_H__
#include "scip/def.h"
#include "scip/type_retcode.h"
#include "scip/type_set.h"
#include "scip/type_dialog.h"
#include "scip/pub_dialog.h"
#ifdef __cplusplus
extern "C" {
#endif
/*
* dialog handler
*/
/** copies the given dialog to a new scip */
SCIP_RETCODE SCIPdialogCopyInclude(
SCIP_DIALOG* dialog, /**< dialog */
SCIP_SET* set /**< SCIP_SET of SCIP to copy to */
);
/** creates a dialog handler */
SCIP_RETCODE SCIPdialoghdlrCreate(
SCIP_SET* set, /**< global SCIP settings */
SCIP_DIALOGHDLR** dialoghdlr /**< pointer to store dialog handler */
);
/** frees a dialog handler and it's dialog tree */
SCIP_RETCODE SCIPdialoghdlrFree(
SCIP* scip, /**< SCIP data structure */
SCIP_DIALOGHDLR** dialoghdlr /**< pointer to dialog handler */
);
/** executes the root dialog of the dialog handler */
SCIP_RETCODE SCIPdialoghdlrExec(
SCIP_DIALOGHDLR* dialoghdlr, /**< dialog handler */
SCIP_SET* set /**< global SCIP settings */
);
/** makes given dialog the root dialog of dialog handler; captures dialog and releases former root dialog */
SCIP_RETCODE SCIPdialoghdlrSetRoot(
SCIP* scip, /**< SCIP data structure */
SCIP_DIALOGHDLR* dialoghdlr, /**< dialog handler */
SCIP_DIALOG* dialog /**< dialog to be the root */
);
/*
* dialog
*/
/** creates and captures a user interface dialog */
SCIP_RETCODE SCIPdialogCreate(
SCIP_DIALOG** dialog, /**< pointer to store the dialog */
SCIP_DECL_DIALOGCOPY ((*dialogcopy)), /**< copy method of dialog or NULL if you don't want to copy your plugin into sub-SCIPs */
SCIP_DECL_DIALOGEXEC ((*dialogexec)), /**< execution method of dialog */
SCIP_DECL_DIALOGDESC ((*dialogdesc)), /**< description output method of dialog, or NULL */
SCIP_DECL_DIALOGFREE ((*dialogfree)), /**< destructor of dialog to free user data, or NULL */
const char* name, /**< name of dialog: command name appearing in parent's dialog menu */
const char* desc, /**< description of dialog used if description output method is NULL */
SCIP_Bool issubmenu, /**< is the dialog a sub-menu? */
SCIP_DIALOGDATA* dialogdata /**< user defined dialog data */
);
/** captures a dialog */
void SCIPdialogCapture(
SCIP_DIALOG* dialog /**< dialog */
);
/** releases a dialog */
SCIP_RETCODE SCIPdialogRelease(
SCIP* scip, /**< SCIP data structure */
SCIP_DIALOG** dialog /**< pointer to dialog */
);
/** executes dialog */
SCIP_RETCODE SCIPdialogExec(
SCIP_DIALOG* dialog, /**< dialog */
SCIP_SET* set, /**< global SCIP settings */
SCIP_DIALOGHDLR* dialoghdlr, /**< dialog handler */
SCIP_DIALOG** nextdialog /**< pointer to store the next dialog to process */
);
/** adds a sub-dialog to the given dialog as menu entry and captures the sub-dialog */
SCIP_RETCODE SCIPdialogAddEntry(
SCIP_DIALOG* dialog, /**< dialog */
SCIP_SET* set, /**< global SCIP settings */
SCIP_DIALOG* subdialog /**< sub-dialog to add as menu entry in dialog */
);
#ifdef __cplusplus
}
#endif
#endif