diff options
author | Steven Rostedt <srostedt@redhat.com> | 2010-06-22 18:54:42 -0400 |
---|---|---|
committer | Steven Rostedt <rostedt@goodmis.org> | 2010-06-22 19:04:38 -0400 |
commit | 362dcc67996130a1a0ebd0ac46080887cc3e5cc0 (patch) | |
tree | feb75074d787cff4fe33478cb16804490355a16a | |
parent | 6a0b8a7bc2728f8b97db68226794a634984a7c22 (diff) |
kernelshark: Restructure capture dialog
Change the capture dialog around to include the events window.
Also use table widget instead of vpaned to layout the widgets
nicer.
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
-rw-r--r-- | trace-capture.c | 189 |
1 files changed, 105 insertions, 84 deletions
diff --git a/trace-capture.c b/trace-capture.c index c5248a5..8ce13c7 100644 --- a/trace-capture.c +++ b/trace-capture.c | |||
@@ -47,7 +47,7 @@ | |||
47 | 47 | ||
48 | #define PLUGIN_NONE "NONE" | 48 | #define PLUGIN_NONE "NONE" |
49 | 49 | ||
50 | #define DIALOG_WIDTH 600 | 50 | #define DIALOG_WIDTH 320 |
51 | #define DIALOG_HEIGHT 600 | 51 | #define DIALOG_HEIGHT 600 |
52 | 52 | ||
53 | struct trace_capture { | 53 | struct trace_capture { |
@@ -1327,15 +1327,14 @@ static void tracing_dialog(struct shark_info *info, const char *tracing) | |||
1327 | { | 1327 | { |
1328 | struct pevent *pevent; | 1328 | struct pevent *pevent; |
1329 | GtkWidget *dialog; | 1329 | GtkWidget *dialog; |
1330 | GtkWidget *vbox; | ||
1331 | GtkWidget *vbox2; | ||
1332 | GtkWidget *button; | 1330 | GtkWidget *button; |
1333 | GtkWidget *hbox; | ||
1334 | GtkWidget *combo; | 1331 | GtkWidget *combo; |
1335 | GtkWidget *label; | 1332 | GtkWidget *label; |
1336 | GtkWidget *entry; | 1333 | GtkWidget *entry; |
1337 | GtkWidget *hpaned; | 1334 | GtkWidget *frame; |
1338 | GtkWidget *scrollwin; | 1335 | GtkWidget *scrollwin; |
1336 | GtkWidget *table; | ||
1337 | GtkWidget *table2; | ||
1339 | GtkWidget *event_tree; | 1338 | GtkWidget *event_tree; |
1340 | char **plugins; | 1339 | char **plugins; |
1341 | int nr_plugins; | 1340 | int nr_plugins; |
@@ -1369,31 +1368,32 @@ static void tracing_dialog(struct shark_info *info, const char *tracing) | |||
1369 | return; | 1368 | return; |
1370 | } | 1369 | } |
1371 | 1370 | ||
1372 | dialog = gtk_dialog_new_with_buttons("Capture", | 1371 | dialog = gtk_dialog_new(); |
1373 | NULL, | 1372 | gtk_window_set_title(GTK_WINDOW(dialog), "Capture"); |
1374 | GTK_DIALOG_MODAL, | 1373 | |
1375 | "Execute", | 1374 | button = gtk_button_new_with_label("Run"); |
1376 | GTK_RESPONSE_ACCEPT, | 1375 | gtk_dialog_add_action_widget(GTK_DIALOG(dialog), button, |
1377 | GTK_STOCK_CANCEL, | 1376 | GTK_RESPONSE_ACCEPT); |
1378 | GTK_RESPONSE_REJECT, | 1377 | gtk_widget_show(button); |
1379 | NULL); | 1378 | |
1379 | gtk_dialog_add_button(GTK_DIALOG(dialog), GTK_STOCK_CANCEL, | ||
1380 | GTK_RESPONSE_REJECT); | ||
1380 | 1381 | ||
1381 | cap.main_dialog = dialog; | 1382 | cap.main_dialog = dialog; |
1382 | 1383 | ||
1383 | /* --- Top Level Hpaned --- */ | 1384 | /* --- Top Level Hpaned --- */ |
1384 | 1385 | table = gtk_table_new(4, 1, FALSE); | |
1385 | hpaned = gtk_hpaned_new(); | ||
1386 | gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), hpaned, TRUE, TRUE, 0); | ||
1387 | gtk_widget_show(hpaned); | ||
1388 | 1386 | ||
1389 | /* It is possible that no pevents exist. */ | 1387 | /* It is possible that no pevents exist. */ |
1390 | if (pevent) { | 1388 | if (pevent) { |
1389 | |||
1391 | scrollwin = gtk_scrolled_window_new(NULL, NULL); | 1390 | scrollwin = gtk_scrolled_window_new(NULL, NULL); |
1392 | gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrollwin), | 1391 | gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrollwin), |
1393 | GTK_POLICY_AUTOMATIC, | 1392 | GTK_POLICY_AUTOMATIC, |
1394 | GTK_POLICY_AUTOMATIC); | 1393 | GTK_POLICY_AUTOMATIC); |
1395 | 1394 | ||
1396 | gtk_paned_add2(GTK_PANED(hpaned), scrollwin); | 1395 | gtk_table_attach_defaults(GTK_TABLE(table), scrollwin, |
1396 | 0, 1, 1, 2); | ||
1397 | gtk_widget_show(scrollwin); | 1397 | gtk_widget_show(scrollwin); |
1398 | 1398 | ||
1399 | event_tree = trace_create_event_list_view(pevent, NULL, | 1399 | event_tree = trace_create_event_list_view(pevent, NULL, |
@@ -1409,77 +1409,64 @@ static void tracing_dialog(struct shark_info *info, const char *tracing) | |||
1409 | } else { | 1409 | } else { |
1410 | /* No events */ | 1410 | /* No events */ |
1411 | label = gtk_label_new("No events enabled on system"); | 1411 | label = gtk_label_new("No events enabled on system"); |
1412 | gtk_paned_add2(GTK_PANED(hpaned), label); | 1412 | gtk_table_attach(GTK_TABLE(table), label, 0, 1, 1, 2, |
1413 | GTK_EXPAND|GTK_FILL, GTK_EXPAND|GTK_FILL, | ||
1414 | 0, 10); | ||
1413 | gtk_widget_show(label); | 1415 | gtk_widget_show(label); |
1414 | cap.event_view = NULL; | 1416 | cap.event_view = NULL; |
1415 | } | 1417 | } |
1416 | 1418 | ||
1417 | vbox = gtk_vbox_new(TRUE, 0); | 1419 | gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), table, TRUE, TRUE, 0); |
1418 | gtk_paned_add1(GTK_PANED(hpaned), vbox); | 1420 | gtk_widget_show(table); |
1419 | gtk_widget_show(vbox); | ||
1420 | |||
1421 | hbox = gtk_hbox_new(FALSE, 0); | ||
1422 | gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); | ||
1423 | gtk_widget_show(hbox); | ||
1424 | 1421 | ||
1425 | combo = trace_create_combo_box(hbox, "Plugin: ", create_plugin_combo_model, plugins); | 1422 | /*------------------ Frame Settings --------------------------- */ |
1426 | cap.plugin_combo = combo; | ||
1427 | 1423 | ||
1428 | if (cap.info->cap_plugin) | 1424 | frame = gtk_frame_new("Settings"); |
1429 | set_plugin(&cap); | 1425 | gtk_table_attach(GTK_TABLE(table), frame, 0, 1, 0, 1, |
1426 | GTK_EXPAND|GTK_FILL, 0, 0, 10); | ||
1427 | gtk_widget_show(frame); | ||
1430 | 1428 | ||
1431 | vbox2 = gtk_vbox_new(FALSE, 0); | 1429 | table2 = gtk_table_new(2, 3, FALSE); |
1432 | gtk_box_pack_start(GTK_BOX(vbox), vbox2, FALSE, FALSE, 0); | 1430 | gtk_container_add(GTK_CONTAINER(frame), table2); |
1433 | gtk_widget_show(vbox2); | 1431 | gtk_widget_show(table2); |
1434 | 1432 | ||
1435 | label = gtk_label_new("Command:"); | 1433 | gtk_table_set_col_spacings(GTK_TABLE(table2), 5); |
1436 | gtk_box_pack_start(GTK_BOX(vbox2), label, FALSE, FALSE, 0); | ||
1437 | gtk_widget_show(label); | ||
1438 | 1434 | ||
1439 | entry = gtk_entry_new(); | 1435 | button = gtk_button_new_with_label("Save Settings"); |
1440 | gtk_box_pack_start(GTK_BOX(vbox2), entry, FALSE, FALSE, 0); | 1436 | gtk_table_attach_defaults(GTK_TABLE(table2), button, 0, 1, 0, 1); |
1441 | gtk_widget_show(entry); | 1437 | gtk_widget_show(button); |
1442 | |||
1443 | cap.command_entry = entry; | ||
1444 | |||
1445 | if (cap.info->cap_command) | ||
1446 | gtk_entry_set_text(GTK_ENTRY(entry), cap.info->cap_command); | ||
1447 | 1438 | ||
1448 | hbox = gtk_hbox_new(FALSE, 0); | 1439 | g_signal_connect (button, "clicked", |
1449 | gtk_box_pack_start(GTK_BOX(vbox2), hbox, TRUE, FALSE, 0); | 1440 | G_CALLBACK (save_settings_clicked), |
1450 | gtk_widget_show(hbox); | 1441 | (gpointer)&cap); |
1451 | 1442 | ||
1452 | button = gtk_button_new_with_label("Save file: "); | 1443 | button = gtk_button_new_with_label("Import Settings"); |
1453 | gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); | 1444 | gtk_table_attach_defaults(GTK_TABLE(table2), button, 1, 2, 0, 1); |
1454 | gtk_widget_show(button); | 1445 | gtk_widget_show(button); |
1455 | 1446 | ||
1456 | g_signal_connect (button, "clicked", | 1447 | g_signal_connect (button, "clicked", |
1457 | G_CALLBACK (file_clicked), | 1448 | G_CALLBACK (import_settings_clicked), |
1458 | (gpointer)&cap); | 1449 | (gpointer)&cap); |
1459 | 1450 | ||
1460 | entry = gtk_entry_new(); | ||
1461 | gtk_box_pack_start(GTK_BOX(hbox), entry, TRUE, TRUE, 0); | ||
1462 | gtk_widget_show(entry); | ||
1463 | 1451 | ||
1464 | if (cap.info->cap_file) | 1452 | button = gtk_button_new_with_label("Export Settings"); |
1465 | file = cap.info->cap_file; | 1453 | gtk_table_attach_defaults(GTK_TABLE(table2), button, 2, 3, 0, 1); |
1466 | else | 1454 | gtk_widget_show(button); |
1467 | file = default_output_file; | ||
1468 | |||
1469 | gtk_entry_set_text(GTK_ENTRY(entry), file); | ||
1470 | cap.file_entry = entry; | ||
1471 | 1455 | ||
1456 | g_signal_connect (button, "clicked", | ||
1457 | G_CALLBACK (export_settings_clicked), | ||
1458 | (gpointer)&cap); | ||
1472 | 1459 | ||
1473 | vbox2 = gtk_vbox_new(FALSE, 0); | 1460 | if (cap.info->cap_settings_name) |
1474 | gtk_box_pack_start(GTK_BOX(vbox), vbox2, FALSE, FALSE, 0); | 1461 | set_settings(&cap); |
1475 | gtk_widget_show(vbox2); | ||
1476 | 1462 | ||
1477 | hbox = gtk_hbox_new(FALSE, 0); | 1463 | label = gtk_label_new("Available Settings: "); |
1478 | gtk_box_pack_start(GTK_BOX(vbox2), hbox, FALSE, FALSE, 0); | 1464 | gtk_table_attach_defaults(GTK_TABLE(table2), label, 0, 1, 1, 2); |
1479 | gtk_widget_show(hbox); | 1465 | gtk_widget_show(label); |
1480 | 1466 | ||
1481 | combo = trace_create_combo_box(hbox, "Available Settings: ", | 1467 | combo = trace_create_combo_box(NULL, NULL, |
1482 | create_settings_model, NULL); | 1468 | create_settings_model, NULL); |
1469 | gtk_table_attach_defaults(GTK_TABLE(table2), combo, 1, 3, 1, 2); | ||
1483 | 1470 | ||
1484 | cap.settings_combo = combo; | 1471 | cap.settings_combo = combo; |
1485 | 1472 | ||
@@ -1487,33 +1474,67 @@ static void tracing_dialog(struct shark_info *info, const char *tracing) | |||
1487 | G_CALLBACK (settings_changed), | 1474 | G_CALLBACK (settings_changed), |
1488 | (gpointer)&cap); | 1475 | (gpointer)&cap); |
1489 | 1476 | ||
1490 | button = gtk_button_new_with_label("Save Settings"); | ||
1491 | gtk_box_pack_start(GTK_BOX(vbox2), button, TRUE, FALSE, 0); | ||
1492 | gtk_widget_show(button); | ||
1493 | 1477 | ||
1494 | if (cap.info->cap_settings_name) | ||
1495 | set_settings(&cap); | ||
1496 | 1478 | ||
1497 | g_signal_connect (button, "clicked", | 1479 | /*------------------ Frame Settings --------------------------- */ |
1498 | G_CALLBACK (save_settings_clicked), | ||
1499 | (gpointer)&cap); | ||
1500 | 1480 | ||
1481 | frame = gtk_frame_new("Execute"); | ||
1482 | gtk_table_attach(GTK_TABLE(table), frame, 0, 1, 3, 4, | ||
1483 | GTK_EXPAND|GTK_FILL, 0, 0, 10); | ||
1484 | gtk_widget_show(frame); | ||
1501 | 1485 | ||
1502 | button = gtk_button_new_with_label("Import Settings"); | 1486 | table2 = gtk_table_new(3, 3, FALSE); |
1503 | gtk_box_pack_start(GTK_BOX(vbox2), button, TRUE, FALSE, 0); | 1487 | gtk_container_add(GTK_CONTAINER(frame), table2); |
1504 | gtk_widget_show(button); | 1488 | gtk_widget_show(table2); |
1505 | 1489 | ||
1506 | g_signal_connect (button, "clicked", | 1490 | label = gtk_label_new("Plugin: "); |
1507 | G_CALLBACK (import_settings_clicked), | 1491 | gtk_table_attach_defaults(GTK_TABLE(table2), label, 0, 1, 0, 1); |
1508 | (gpointer)&cap); | 1492 | gtk_widget_show(label); |
1509 | 1493 | ||
1494 | combo = trace_create_combo_box(NULL, NULL, create_plugin_combo_model, plugins); | ||
1495 | cap.plugin_combo = combo; | ||
1510 | 1496 | ||
1511 | button = gtk_button_new_with_label("Export Settings"); | 1497 | gtk_table_attach_defaults(GTK_TABLE(table2), combo, 1, 3, 0, 1); |
1512 | gtk_box_pack_start(GTK_BOX(vbox2), button, TRUE, FALSE, 0); | 1498 | |
1499 | if (cap.info->cap_plugin) | ||
1500 | set_plugin(&cap); | ||
1501 | |||
1502 | |||
1503 | label = gtk_label_new("Command:"); | ||
1504 | gtk_table_attach_defaults(GTK_TABLE(table2), label, 0, 1, 1, 2); | ||
1505 | gtk_widget_show(label); | ||
1506 | |||
1507 | entry = gtk_entry_new(); | ||
1508 | gtk_table_attach_defaults(GTK_TABLE(table2), entry, 1, 3, 1, 2); | ||
1509 | gtk_widget_show(entry); | ||
1510 | |||
1511 | cap.command_entry = entry; | ||
1512 | |||
1513 | if (cap.info->cap_command) | ||
1514 | gtk_entry_set_text(GTK_ENTRY(entry), cap.info->cap_command); | ||
1515 | |||
1516 | label = gtk_label_new("Output file: "); | ||
1517 | gtk_table_attach_defaults(GTK_TABLE(table2), label, 0, 1, 2, 3); | ||
1518 | gtk_widget_show(label); | ||
1519 | |||
1520 | entry = gtk_entry_new(); | ||
1521 | gtk_table_attach_defaults(GTK_TABLE(table2), entry, 1, 2, 2, 3); | ||
1522 | gtk_widget_show(entry); | ||
1523 | |||
1524 | if (cap.info->cap_file) | ||
1525 | file = cap.info->cap_file; | ||
1526 | else | ||
1527 | file = default_output_file; | ||
1528 | |||
1529 | gtk_entry_set_text(GTK_ENTRY(entry), file); | ||
1530 | cap.file_entry = entry; | ||
1531 | |||
1532 | button = gtk_button_new_with_label("Browse"); | ||
1533 | gtk_table_attach_defaults(GTK_TABLE(table2), button, 2, 3, 2, 3); | ||
1513 | gtk_widget_show(button); | 1534 | gtk_widget_show(button); |
1514 | 1535 | ||
1515 | g_signal_connect (button, "clicked", | 1536 | g_signal_connect (button, "clicked", |
1516 | G_CALLBACK (export_settings_clicked), | 1537 | G_CALLBACK (file_clicked), |
1517 | (gpointer)&cap); | 1538 | (gpointer)&cap); |
1518 | 1539 | ||
1519 | gtk_widget_set_size_request(GTK_WIDGET(dialog), | 1540 | gtk_widget_set_size_request(GTK_WIDGET(dialog), |