comparison audacious/equalizer.c @ 439:3c43e25ddc7d trunk

[svn] Add `Apply' button to the presets window. Patch via NhJm.
author nenolod
date Sun, 15 Jan 2006 00:34:41 -0800
parents d7d70779c074
children fc968772e096
comparison
equal deleted inserted replaced
438:d6051a60aae2 439:3c43e25ddc7d
1085 } 1085 }
1086 gtk_widget_destroy(equalizerwin_load_window); 1086 gtk_widget_destroy(equalizerwin_load_window);
1087 } 1087 }
1088 1088
1089 static void 1089 static void
1090 equalizerwin_load_apply(GtkWidget * widget, gpointer data)
1091 {
1092 gchar *text;
1093 GtkCList *clist = GTK_CLIST(data);
1094
1095 if (clist && clist->selection) {
1096 gtk_clist_get_text(clist, GPOINTER_TO_INT(clist->selection->data),
1097 0, &text);
1098 equalizerwin_load_preset(equalizer_presets, text);
1099 }
1100 }
1101
1102
1103 static void
1090 equalizerwin_load_select(GtkCList * widget, gint row, 1104 equalizerwin_load_select(GtkCList * widget, gint row,
1091 gint column, GdkEventButton * event, gpointer data) 1105 gint column, GdkEventButton * event, gpointer data)
1092 { 1106 {
1093 if (event->type == GDK_2BUTTON_PRESS) 1107 if (event->type == GDK_2BUTTON_PRESS)
1094 equalizerwin_load_ok(NULL, widget); 1108 equalizerwin_load_ok(NULL, widget);
1377 const gchar * title, 1391 const gchar * title,
1378 GtkWidget ** window, 1392 GtkWidget ** window,
1379 GtkSelectionMode sel_mode, 1393 GtkSelectionMode sel_mode,
1380 GtkWidget ** entry, 1394 GtkWidget ** entry,
1381 const gchar * btn2_stock_name, 1395 const gchar * btn2_stock_name,
1396 const gchar * btn3_stock_name,
1382 const gchar * btn1_stock_name, 1397 const gchar * btn1_stock_name,
1383 GCallback btn2_func, 1398 GCallback btn2_func,
1399 GCallback btn3_func,
1384 GCallback select_row_func) 1400 GCallback select_row_func)
1385 { 1401 {
1386 GtkWidget *vbox, *scrolled_window, *bbox, *btn1, *btn2, *clist; 1402 GtkWidget *vbox, *scrolled_window, *bbox, *btn1, *btn2, *btn3, *clist;
1387 gchar *preset_text[1]; 1403 gchar *preset_text[1];
1388 GList *node; 1404 GList *node;
1389 1405
1390 *window = gtk_window_new(GTK_WINDOW_TOPLEVEL); 1406 *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
1391 gtk_window_set_title(GTK_WINDOW(*window), title); 1407 gtk_window_set_title(GTK_WINDOW(*window), title);
1438 g_signal_connect_swapped(btn1, "clicked", 1454 g_signal_connect_swapped(btn1, "clicked",
1439 G_CALLBACK(gtk_widget_destroy), 1455 G_CALLBACK(gtk_widget_destroy),
1440 GTK_OBJECT(*window)); 1456 GTK_OBJECT(*window));
1441 gtk_box_pack_start(GTK_BOX(bbox), btn1, TRUE, TRUE, 0); 1457 gtk_box_pack_start(GTK_BOX(bbox), btn1, TRUE, TRUE, 0);
1442 1458
1459 if (btn3_stock_name) {
1460 btn3 = gtk_button_new_from_stock(btn3_stock_name);
1461 g_signal_connect(btn3, "clicked", G_CALLBACK(btn3_func), clist);
1462 gtk_box_pack_start(GTK_BOX(bbox), btn3, TRUE, TRUE, 0);
1463 }
1464
1443 btn2 = gtk_button_new_from_stock(btn2_stock_name); 1465 btn2 = gtk_button_new_from_stock(btn2_stock_name);
1444 g_signal_connect(btn2, "clicked", G_CALLBACK(btn2_func), clist); 1466 g_signal_connect(btn2, "clicked", G_CALLBACK(btn2_func), clist);
1445 GTK_WIDGET_SET_FLAGS(btn2, GTK_CAN_DEFAULT); 1467 GTK_WIDGET_SET_FLAGS(btn2, GTK_CAN_DEFAULT);
1446 1468
1447
1448 gtk_box_pack_start(GTK_BOX(bbox), btn2, TRUE, TRUE, 0); 1469 gtk_box_pack_start(GTK_BOX(bbox), btn2, TRUE, TRUE, 0);
1449 1470
1450 gtk_widget_grab_default(btn2); 1471 gtk_widget_grab_default(btn2);
1451 1472
1452 1473
1465 if (!equalizerwin_load_window) 1486 if (!equalizerwin_load_window)
1466 equalizerwin_create_list_window(equalizer_presets, 1487 equalizerwin_create_list_window(equalizer_presets,
1467 _("Load preset"), 1488 _("Load preset"),
1468 &equalizerwin_load_window, 1489 &equalizerwin_load_window,
1469 GTK_SELECTION_SINGLE, NULL, 1490 GTK_SELECTION_SINGLE, NULL,
1470 GTK_STOCK_OK, GTK_STOCK_CANCEL, 1491 GTK_STOCK_OK, GTK_STOCK_APPLY, GTK_STOCK_CANCEL,
1471 G_CALLBACK 1492 G_CALLBACK
1472 (equalizerwin_load_ok), 1493 (equalizerwin_load_ok),
1494 G_CALLBACK
1495 (equalizerwin_load_apply),
1473 G_CALLBACK 1496 G_CALLBACK
1474 (equalizerwin_load_select)); 1497 (equalizerwin_load_select));
1475 else 1498 else
1476 gtk_window_present(GTK_WINDOW(equalizerwin_load_window)); 1499 gtk_window_present(GTK_WINDOW(equalizerwin_load_window));
1477 break; 1500 break;
1479 if (!equalizerwin_load_auto_window) 1502 if (!equalizerwin_load_auto_window)
1480 equalizerwin_create_list_window(equalizer_auto_presets, 1503 equalizerwin_create_list_window(equalizer_auto_presets,
1481 _("Load auto-preset"), 1504 _("Load auto-preset"),
1482 &equalizerwin_load_auto_window, 1505 &equalizerwin_load_auto_window,
1483 GTK_SELECTION_SINGLE, NULL, 1506 GTK_SELECTION_SINGLE, NULL,
1484 GTK_STOCK_OK, GTK_STOCK_CANCEL, 1507 GTK_STOCK_OK, NULL, GTK_STOCK_CANCEL,
1485 G_CALLBACK 1508 G_CALLBACK
1486 (equalizerwin_load_auto_ok), 1509 (equalizerwin_load_auto_ok),
1510 NULL,
1487 G_CALLBACK 1511 G_CALLBACK
1488 (equalizerwin_load_auto_select)); 1512 (equalizerwin_load_auto_select));
1489 else 1513 else
1490 gtk_window_present(GTK_WINDOW(equalizerwin_load_auto_window)); 1514 gtk_window_present(GTK_WINDOW(equalizerwin_load_auto_window));
1491 break; 1515 break;
1527 equalizerwin_create_list_window(equalizer_presets, 1551 equalizerwin_create_list_window(equalizer_presets,
1528 _("Save preset"), 1552 _("Save preset"),
1529 &equalizerwin_save_window, 1553 &equalizerwin_save_window,
1530 GTK_SELECTION_SINGLE, 1554 GTK_SELECTION_SINGLE,
1531 &equalizerwin_save_entry, 1555 &equalizerwin_save_entry,
1532 GTK_STOCK_OK, GTK_STOCK_CANCEL, 1556 GTK_STOCK_OK, NULL, GTK_STOCK_CANCEL,
1533 G_CALLBACK 1557 G_CALLBACK
1534 (equalizerwin_save_ok), 1558 (equalizerwin_save_ok),
1559 NULL,
1535 G_CALLBACK 1560 G_CALLBACK
1536 (equalizerwin_save_select)); 1561 (equalizerwin_save_select));
1537 else 1562 else
1538 gtk_window_present(GTK_WINDOW(equalizerwin_save_window)); 1563 gtk_window_present(GTK_WINDOW(equalizerwin_save_window));
1539 break; 1564 break;
1547 _("Save auto-preset"), 1572 _("Save auto-preset"),
1548 &equalizerwin_save_auto_window, 1573 &equalizerwin_save_auto_window,
1549 GTK_SELECTION_SINGLE, 1574 GTK_SELECTION_SINGLE,
1550 &equalizerwin_save_auto_entry, 1575 &equalizerwin_save_auto_entry,
1551 GTK_STOCK_OK, 1576 GTK_STOCK_OK,
1577 NULL,
1552 GTK_STOCK_CANCEL, 1578 GTK_STOCK_CANCEL,
1553 G_CALLBACK 1579 G_CALLBACK
1554 (equalizerwin_save_auto_ok), 1580 (equalizerwin_save_auto_ok),
1581 NULL,
1555 G_CALLBACK 1582 G_CALLBACK
1556 (equalizerwin_save_auto_select)); 1583 (equalizerwin_save_auto_select));
1557 else 1584 else
1558 gtk_window_present(GTK_WINDOW(equalizerwin_save_auto_window)); 1585 gtk_window_present(GTK_WINDOW(equalizerwin_save_auto_window));
1559 1586
1607 equalizerwin_create_list_window(equalizer_presets, 1634 equalizerwin_create_list_window(equalizer_presets,
1608 _("Delete preset"), 1635 _("Delete preset"),
1609 &equalizerwin_delete_window, 1636 &equalizerwin_delete_window,
1610 GTK_SELECTION_EXTENDED, NULL, 1637 GTK_SELECTION_EXTENDED, NULL,
1611 GTK_STOCK_DELETE, 1638 GTK_STOCK_DELETE,
1639 NULL,
1612 GTK_STOCK_CLOSE, 1640 GTK_STOCK_CLOSE,
1613 G_CALLBACK 1641 G_CALLBACK
1614 (equalizerwin_delete_delete), 1642 (equalizerwin_delete_delete),
1643 NULL,
1615 NULL); 1644 NULL);
1616 else 1645 else
1617 gtk_window_present(GTK_WINDOW(equalizerwin_delete_window)); 1646 gtk_window_present(GTK_WINDOW(equalizerwin_delete_window));
1618 1647
1619 break; 1648 break;
1623 equalizerwin_create_list_window(equalizer_auto_presets, 1652 equalizerwin_create_list_window(equalizer_auto_presets,
1624 _("Delete auto-preset"), 1653 _("Delete auto-preset"),
1625 &equalizerwin_delete_auto_window, 1654 &equalizerwin_delete_auto_window,
1626 GTK_SELECTION_EXTENDED, NULL, 1655 GTK_SELECTION_EXTENDED, NULL,
1627 GTK_STOCK_DELETE, 1656 GTK_STOCK_DELETE,
1657 NULL,
1628 GTK_STOCK_CLOSE, 1658 GTK_STOCK_CLOSE,
1629 G_CALLBACK 1659 G_CALLBACK
1630 (equalizerwin_delete_auto_delete), 1660 (equalizerwin_delete_auto_delete),
1661 NULL,
1631 NULL); 1662 NULL);
1632 else 1663 else
1633 gtk_window_present(GTK_WINDOW(equalizerwin_delete_auto_window)); 1664 gtk_window_present(GTK_WINDOW(equalizerwin_delete_auto_window));
1634 1665
1635 break; 1666 break;