1 /*===========================================================================*/
2 /*                                                                           */
3 /* This file is part of the SYMPHONY MILP Solver Framework.                  */
4 /*                                                                           */
5 /* SYMPHONY was jointly developed by Ted Ralphs (ted@lehigh.edu) and         */
6 /* Laci Ladanyi (ladanyi@us.ibm.com).                                        */
7 /*                                                                           */
8 /* (c) Copyright 2000-2019 Ted Ralphs. All Rights Reserved.                  */
9 /*                                                                           */
10 /* This software is licensed under the Eclipse Public License. Please see    */
11 /* accompanying file for terms.                                              */
12 /*                                                                           */
13 /*===========================================================================*/
14 
15 #ifndef _DRAW_GRAPH_PARAMS_H
16 #define _DRAW_GRAPH_PARAMS_H
17 
18 #include "sym_proto.h"
19 
20 /*****************************************************************************
21  *****************************************************************************
22  *************                                                      **********
23  *************         Constants related to DrawGraph               **********
24  *************                                                      **********
25  *****************************************************************************
26  *****************************************************************************/
27 
28 #define MAX_HORIZ                         500
29 #define MAX_VERT                          500
30 #define RADIUS                            10
31 
32 #define  DONT_WAIT_FOR_CLICK              0
33 #define  WAIT_FOR_CLICK_AND_REPORT        1
34 #define  WAIT_FOR_CLICK_NO_REPORT         2
35 
36 
37 #define MAX_NAME_LENGTH                   36
38 #define MAX_TITLE_LENGTH                  64
39 #define MAX_DASH_PATTERN_LENGTH           32
40 #define MAX_FONT_LENGTH                   128
41 #define MAX_LABEL_LENGTH                  8
42 #define MAX_WEIGHT_LENGTH                 12
43 
44 
45 #define IGDTOI_CLICK_HAPPENED             90100
46 #define IGDTOI_QUIT_WINDOW                90101
47 #define IGDTOI_QUIT_APPLICATION           90102
48 #define IGDTOI_TEXT_ENTERED               90103
49 #define IGDTOI_REQUEST_GRAPH              90104
50 
51 
52 #define ITOC_CLICK_HAPPENED               90200
53 #define ITOC_WINDOW_DOESNT_EXIST          90201
54 #define ITOC_WINDOW_ALREADY_EXISTS        90202
55 #define ITOC_WINDOW_ISNT_DISPLAYED        90203
56 #define ITOC_APPLICATION_KILLED           90204
57 #define ITOC_USER_MESSAGE                 90205
58 
59 
60 #define CTOI_INITIALIZE_WINDOW            90300
61 #define CTOI_QUIT_WINDOW                  90301
62 #define CTOI_QUIT                         90302
63 #define CTOI_YOU_CAN_DIE                  90303
64 #define CTOI_COPY_GRAPH                   90304
65 #define CTOI_CHANGE_WINDOW_DESC           90305
66 #define CTOI_SET_GRAPH                    90306
67 #define CTOI_DRAW_GRAPH                   90307
68 #define CTOI_SET_AND_DRAW_GRAPH           90308
69 #define CTOI_DELETE_GRAPH                 90309
70 #define CTOI_WAIT_FOR_CLICK_NO_REPORT     90310
71 #define CTOI_WAIT_FOR_CLICK_AND_REPORT    90311
72 #define CTOI_SAVE_GRAPH_TO_FILE           90312
73 #define CTOI_SAVE_GRAPH_PS_TO_FILE        90313
74 #define CTOI_CLONE_WINDOW                 90314
75 #define CTOI_RENAME_WINDOW                90315
76 #define CTOI_RESIZE_VIEWABLE_WINDOW       90316
77 #define CTOI_RESIZE_CANVAS                90317
78 #define CTOI_MODIFY_GRAPH                 90318
79 #define CTOI_CLEAR_MESSAGE                90319
80 #define CTOI_PRINT_MESSAGE                90320
81 #define CTOI_APPEND_MESSAGE               90321
82 
83 #define CTOI_USER_MESSAGE                 90350
84 
85 
86 #define WAITING_TO_GET_A_COPY             90400
87 #define WAITING_TO_BE_COPIED              90401
88 #define MODIFY_ADD_NODES                  90402
89 #define MODIFY_CHANGE_WEIGHTS_OF_NODES    90403
90 #define MODIFY_CHANGE_LABELS_OF_NODES     90404
91 #define MODIFY_CHANGE_DASH_OF_NODES       90405
92 #define MODIFY_CHANGE_RADII_OF_NODES      90406
93 #define MODIFY_DELETE_NODES               90407
94 #define MODIFY_ADD_EDGES                  90408
95 #define MODIFY_CHANGE_WEIGHTS_OF_EDGES    90409
96 #define MODIFY_CHANGE_DASH_OF_EDGES       90410
97 #define MODIFY_DELETE_EDGES               90411
98 #define MODIFY_DELETE_ALL_EDGES           90412
99 #define MODIFY_END_OF_MESSAGE             90413
100 
101 /* Window description keycodes */
102 #define CANVAS_WIDTH                      1
103 #define CANVAS_HEIGHT                     2
104 #define VIEWABLE_WIDTH                    3
105 #define VIEWABLE_HEIGHT                   4
106 #define DISP_NODELABELS                   5
107 #define DISP_NODEWEIGHTS                  6
108 #define DISP_EDGEWEIGHTS                  7
109 #define NODE_DASH                         8
110 #define EDGE_DASH                         9
111 #define NODE_RADIUS                       10
112 #define INTERACTIVE_MODE                  11
113 #define MOUSE_TRACKING                    12
114 #define SCALE_FACTOR                      13
115 #define NODELABEL_FONT                    14
116 #define NODEWEIGHT_FONT                   15
117 #define EDGEWEIGHT_FONT                   16
118 
119 typedef struct DRAW_GRAPH_PARAMS{
120    char   source_path[MAX_FILE_NAME_LENGTH +1];
121    int    echo_commands;
122 
123    int    canvas_width;
124    int    canvas_height;
125    int    viewable_width;
126    int    viewable_height;
127    int    disp_nodelabels;
128    int    disp_nodeweights;
129    int    disp_edgeweights;
130    char   node_dash[MAX_DASH_PATTERN_LENGTH +1];
131    char   edge_dash[MAX_DASH_PATTERN_LENGTH +1];
132    int    node_radius;
133    int    interactive_mode;
134    int    mouse_tracking;
135    double scale_factor;
136    char   nodelabel_font[MAX_FONT_LENGTH +1];
137    char   nodeweight_font[MAX_FONT_LENGTH +1];
138    char   edgeweight_font[MAX_FONT_LENGTH +1];
139 }dg_params;
140 
141 #endif
142