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