21 #include "ns3/config.h"
22 #include "ns3/string.h"
23 #include "ns3/pointer.h"
32 GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data)
35 gtk_tree_model_get (model, iter,
COL_NODE, &node, -1);
40 g_object_set (renderer,
"text", str.
Get ().c_str (), (
char*) 0);
41 g_object_set (renderer,
"editable", TRUE, (
char*) 0);
45 g_object_set (renderer,
"text",
"", (
char*) 0);
46 g_object_set (renderer,
"editable", FALSE, (
char*) 0);
55 GtkTreeIter *iter, gpointer user_data)
58 gtk_tree_model_get (model, iter,
COL_NODE, &node, -1);
59 g_object_set (renderer,
"editable", FALSE, (
char*) 0);
66 g_object_set (renderer,
"text", node->
name.c_str (), (
char*) 0);
69 g_object_set (renderer,
"text", node->
name.c_str (), (
char*) 0);
73 std::stringstream oss;
75 g_object_set (renderer,
"text", oss.str ().c_str (), (
char*) 0);
79 g_object_set (renderer,
"text", node->
name.c_str (), (
char*) 0);
89 gchar *new_text, gpointer user_data)
91 GtkTreeModel *model = GTK_TREE_MODEL (user_data);
93 gtk_tree_model_get_iter_from_string (model, &iter, path_string);
95 gtk_tree_model_get (model, &iter,
COL_NODE, &node, -1);
109 g_return_val_if_fail (col != 0, -1);
110 g_return_val_if_fail (col->tree_view != 0, -1);
111 cols = gtk_tree_view_get_columns (GTK_TREE_VIEW (col->tree_view));
112 num = g_list_index (cols, (gpointer) col);
123 GtkTooltip *tooltip, gpointer user_data)
127 GtkTreeViewColumn * column;
128 if (!gtk_tree_view_get_tooltip_context (GTK_TREE_VIEW (widget), &x, &y,
129 keyboard_tip, &model, 0, &iter))
133 if (!gtk_tree_view_get_path_at_pos (GTK_TREE_VIEW (widget), x, y, 0, &column, 0, 0))
140 gtk_tree_model_get (model, &iter,
COL_NODE, &node, -1);
147 std::string tip =
"This object is of type "
149 gtk_tooltip_set_text (tooltip, tip.c_str ());
158 std::string tip =
"This object is of type "
160 gtk_tooltip_set_text (tooltip, tip.c_str ());
169 std::string tip =
"This object is of type "
171 gtk_tooltip_set_text (tooltip, tip.c_str ());
177 uint32_t attrIndex = 0;
194 gtk_tooltip_set_text (tooltip, tip.c_str ());
206 gtk_tooltip_set_text (tooltip, tip.c_str ());
222 GtkTreeViewColumn *col;
223 GtkCellRenderer *renderer;
226 view = gtk_tree_view_new ();
227 g_object_set (view,
"has-tooltip", TRUE, (
char*) 0);
230 gtk_tree_view_set_grid_lines (GTK_TREE_VIEW (view), GTK_TREE_VIEW_GRID_LINES_BOTH);
231 gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (view), TRUE);
233 col = gtk_tree_view_column_new ();
234 gtk_tree_view_column_set_title (col,
"Object Attributes");
235 gtk_tree_view_append_column (GTK_TREE_VIEW (view), col);
236 renderer = gtk_cell_renderer_text_new ();
237 gtk_tree_view_column_pack_start (col, renderer, TRUE);
239 g_object_set (renderer,
"editable", FALSE, (
char*) 0);
241 col = gtk_tree_view_column_new ();
242 gtk_tree_view_column_set_title (col,
"Attribute Value");
243 gtk_tree_view_append_column (GTK_TREE_VIEW (view), col);
244 renderer = gtk_cell_renderer_text_new ();
246 gtk_tree_view_column_pack_start (col, renderer, TRUE);
249 gtk_tree_view_set_model (GTK_TREE_VIEW (view), GTK_TREE_MODEL (model));
251 g_object_unref (model);
263 GtkWidget *parent_window = GTK_WIDGET (user_data);
266 dialog = gtk_file_chooser_dialog_new (
"Save File", GTK_WINDOW (parent_window), GTK_FILE_CHOOSER_ACTION_SAVE,
267 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_SAVE,
268 GTK_RESPONSE_ACCEPT, (
char *) 0);
269 gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (dialog),
272 gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (dialog),
"config.txt");
274 if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT)
278 filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));
285 gtk_widget_destroy (dialog);
294 GtkWidget *parent_window = GTK_WIDGET (user_data);
297 dialog = gtk_file_chooser_dialog_new (
"Open File", GTK_WINDOW (parent_window), GTK_FILE_CHOOSER_ACTION_OPEN,
298 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN,
299 GTK_RESPONSE_ACCEPT, (
char *) 0);
301 if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT)
305 filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));
311 gtk_widget_destroy (dialog);
321 gtk_widget_hide (GTK_WIDGET (user_data));
331 gtk_widget_hide (GTK_WIDGET (user_data));
340 GtkTreeIter *iter, gpointer
data)
343 gtk_tree_model_get (GTK_TREE_MODEL (model), iter,
COL_NODE, &node, -1);
357 GtkTreeModel *model, GtkTreeIter *iter,
361 gtk_tree_model_get (model, iter,
COL_TYPEID, &node, -1);
364 g_object_set (renderer,
"text", node->
defaultValue.c_str (), (
char*) 0);
365 g_object_set (renderer,
"editable", TRUE, (
char*) 0);
369 g_object_set (renderer,
"text",
"", (
char*) 0);
370 g_object_set (renderer,
"editable", FALSE, (
char*) 0);
378 GtkTreeIter *iter, gpointer user_data)
381 gtk_tree_model_get (model, iter,
COL_NODE, &node, -1);
382 g_object_set (renderer,
"editable", FALSE, (
char*) 0);
386 g_object_set (renderer,
"text", node->
tid.
GetName ().c_str (), (
char*) 0);
389 g_object_set (renderer,
"text", node->
name.c_str (), (
char*) 0);
402 gchar *new_text, gpointer user_data)
404 GtkTreeModel *model = GTK_TREE_MODEL (user_data);
406 gtk_tree_model_get_iter_from_string (model, &iter, path_string);
408 gtk_tree_model_get (model, &iter,
COL_NODE, &node, -1);
424 gboolean keyboard_tip, GtkTooltip *tooltip, gpointer user_data)
428 GtkTreeViewColumn * column;
429 if (!gtk_tree_view_get_tooltip_context (GTK_TREE_VIEW (widget), &x, &y,
430 keyboard_tip, &model, 0, &iter))
434 if (!gtk_tree_view_get_path_at_pos (GTK_TREE_VIEW (widget), x, y, 0, &column, 0, 0))
441 gtk_tree_model_get (model, &iter,
COL_NODE, &node, -1);
448 std::string tip =
"This object is of type " + node->
tid.
GetName ();
449 gtk_tooltip_set_text (tooltip, tip.c_str ());
455 uint32_t attrIndex = node->
index;
459 gtk_tooltip_set_text (tooltip, tip.c_str ());
470 gtk_tooltip_set_text (tooltip, tip.c_str ());
486 GtkWidget *parent_window = GTK_WIDGET (user_data);
489 dialog = gtk_file_chooser_dialog_new (
"Save File", GTK_WINDOW (parent_window), GTK_FILE_CHOOSER_ACTION_SAVE,
490 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_SAVE,
491 GTK_RESPONSE_ACCEPT, (
char *) 0);
492 gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (dialog),
495 gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (dialog),
"config.txt");
497 if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT)
501 filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));
508 gtk_widget_destroy (dialog);
517 GtkWidget *parent_window = GTK_WIDGET (user_data);
520 dialog = gtk_file_chooser_dialog_new (
"Open File", GTK_WINDOW (parent_window), GTK_FILE_CHOOSER_ACTION_OPEN,
521 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN,
522 GTK_RESPONSE_ACCEPT, (
char *) 0);
524 if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT)
528 filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));
534 gtk_widget_destroy (dialog);
544 GtkTreeViewColumn *col;
545 GtkCellRenderer *renderer;
548 view = gtk_tree_view_new ();
549 g_object_set (view,
"has-tooltip", TRUE, (
char*) 0);
552 gtk_tree_view_set_grid_lines (GTK_TREE_VIEW (view), GTK_TREE_VIEW_GRID_LINES_BOTH);
553 gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (view), TRUE);
555 col = gtk_tree_view_column_new ();
556 gtk_tree_view_column_set_title (col,
"Object Attributes");
557 gtk_tree_view_append_column (GTK_TREE_VIEW (view), col);
558 renderer = gtk_cell_renderer_text_new ();
559 gtk_tree_view_column_pack_start (col, renderer, TRUE);
561 g_object_set (renderer,
"editable", FALSE, (
char*) 0);
563 col = gtk_tree_view_column_new ();
564 gtk_tree_view_column_set_title (col,
"Attribute Value");
565 gtk_tree_view_append_column (GTK_TREE_VIEW (view), col);
566 renderer = gtk_cell_renderer_text_new ();
568 gtk_tree_view_column_pack_start (col, renderer, TRUE);
571 gtk_tree_view_set_model (GTK_TREE_VIEW (view), GTK_TREE_MODEL (model));
573 g_object_unref (model);
583 GtkTreeIter *iter, gpointer
data)
586 gtk_tree_model_get (GTK_TREE_MODEL (model), iter,
COL_TYPEID, &node, -1);