22
22
#if defined(_WIN32) && !defined(__CYGWIN__)
23
23
#define WIN32_LEAN_AND_MEAN 1
24
24
#include <windows.h>
26
27
#include <gtk/gtk.h>
27
28
#include <gtk/gtkgl.h>
28
29
#include <glade/glade.h>
30
31
#include "viewport.h"
31
33
#include "menucallbacks.h"
32
34
#include "gltemplate.h"
33
35
#include "memory.h"
37
#include "frmobjectui.h"
35
39
#include "libintl.h"
46
#include "compat_getopt.h"
39
50
gchar *package_prefix;
40
51
gchar *package_data_dir;
42
53
gchar *package_locale_dir;
43
static char* smyrnaDir;
47
smyrnaPath (char* suffix)
54
static char *smyrnaDir; /* path to directory containin smyrna data files */
56
unsigned char SmyrnaVerbose;
60
* Construct pathname for smyrna data file.
61
* Base file name is given as suffix.
62
* The function resolves the directory containing the data files,
63
* and constructs a complete pathname.
64
* The returned string is malloced, so the application should free
66
* Returns NULL on error.
68
char *smyrnaPath(char *suffix)
50
if (!smyrnaDir) return NULL;
51
buf = N_NEW(strlen(smyrnaDir)+strlen(suffix)+2,char);
52
sprintf (buf, "%s/%s", smyrnaDir, suffix);
81
baselen = (int)strlen(smyrnaDir) + 2;
83
slen = (int)strlen(suffix);
84
buf = N_NEW(baselen+slen, char);
85
sprintf(buf, "%s%s%s", smyrnaDir, pathSep, suffix);
89
static char *useString = "Usage: smyrns [-v?] <file>\n\
93
static void usage(int v)
100
static char *parseArgs(int argc, char *argv[], ViewInfo * view)
104
while ((c = getopt(argc, argv, ":K:txv?")) != -1) {
111
view->dfltViewType = VT_TOPVIEW;
114
view->dfltViewType = VT_XDOT;
117
view->dfltEngine = s2layout(optarg);
125
"smyrna: option -%c unrecognized - ignored\n",
138
static void close_cgraph(Agraph_t * g)
141
for (v = agfstnode(g); v; v = agnxtnode(g, v)) {
142
agdelrec(v, "temp_node_record");
56
149
int main(int argc, char *argv[])
58
151
GdkGLConfig *glconfig;
60
smyrnaDir = getenv ("SMYRNA_PATH");
153
/*combo box to show loaded graphs */
154
GtkComboBox *graphComboBox;
158
smyrnaDir = getenv("SMYRNA_PATH");
162
GetCurrentDirectory(0,
164
strlen("\\share\\graphviz\\smyrna") + 1;
165
smyrnaDir = N_NEW(sz, char);
166
GetCurrentDirectory(sz, smyrnaDir);
167
smyrnaDir[strlen(smyrnaDir) - 4] = (char) 0;
168
strcat(smyrnaDir, "\\share\\graphviz\\smyrna");
63
170
smyrnaDir = SMYRNA_PATH;
66
173
load_attributes();
72
179
package_locale_dir =
73
180
g_build_filename(package_prefix, "share", "locale", NULL);
76
package_locale_dir = g_build_filename(smyrnaDir, "locale", NULL);
78
package_locale_dir = g_build_filename(SMYRNA_PATH, "locale", NULL);
182
package_locale_dir = g_build_filename(smyrnaDir, "locale", NULL);
81
185
bindtextdomain(GETTEXT_PACKAGE, package_locale_dir);
82
186
bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
83
187
textdomain(GETTEXT_PACKAGE);
85
189
view = NEW(ViewInfo);
86
191
init_viewport(view);
89
193
gtk_init(&argc, &argv);
92
#define GTKTOPVIEW_ICONSDIR "C:\\Projects\\ATT\\GTK\\GTKTest2\\GUI\\images\\"
96
smyrnaGlade = SMYRNA_GLADE;
98
smyrnaGlade = smyrnaPath ("smyrna.glade");
194
initFileName = parseArgs(argc, argv, view);
196
smyrnaGlade = smyrnaPath("smyrna.glade");
101
197
xml = glade_xml_new(smyrnaGlade, NULL, NULL);
102
199
gladewidget = glade_xml_get_widget(xml, "frmMain");
103
200
gtk_widget_show(gladewidget);
104
201
g_signal_connect((gpointer) gladewidget, "destroy",
105
202
G_CALLBACK(mQuitSlot), NULL);
106
203
glade_xml_signal_autoconnect(xml);
206
view->initFileName = strdup(initFileName);
107
208
gtk_gl_init(0, 0);
108
209
/* Configure OpenGL framebuffer. */
109
210
glconfig = configure_gl();
110
gladewidget = glade_xml_get_widget(xml, "vbox2");
211
// gladewidget = glade_xml_get_widget(xml, "vbox2");
212
gladewidget = glade_xml_get_widget(xml, "hbox11");
214
gtk_widget_hide(glade_xml_get_widget(xml, "vbox13"));
215
gtk_window_set_deletable ((GtkWindow*)glade_xml_get_widget(xml, "dlgSettings"),0);
216
gtk_window_set_deletable ((GtkWindow*)glade_xml_get_widget(xml, "dlgTVFilter"),0);
217
gtk_window_set_deletable ((GtkWindow*)glade_xml_get_widget(xml, "frmTVNodes"),0);
111
220
create_window(glconfig, gladewidget);
112
/*first arg is used as file name */
114
add_graph_to_viewport_from_file(argv[1]);
222
change_cursor(GDK_TOP_LEFT_ARROW);
225
glutInit(&argc, argv);
228
gladewidget = glade_xml_get_widget(xml, "hbox13");
229
graphComboBox = (GtkComboBox *) gtk_combo_box_new_text();
230
gtk_box_pack_end((GtkBox*)gladewidget, (GtkWidget*)graphComboBox, 1, 1, 10);
231
gtk_widget_show((GtkWidget*)graphComboBox);
232
view->graphComboBox = graphComboBox;
118
237
#ifdef G_OS_WIN32