comparison src/statusicon/si_ui.c @ 918:209bd85dc1b9 trunk

[svn] - statusicon: add an option to use mouse wheel to change playing song instead of volume
author giacomo
date Fri, 06 Apr 2007 11:47:07 -0700
parents f2fde7b4dccd
children d16737cc85f6
comparison
equal deleted inserted replaced
917:c64da1c724b9 918:209bd85dc1b9
100 si_ui_statusicon_cb_btscroll ( GtkWidget * evbox , GdkEventScroll * event ) 100 si_ui_statusicon_cb_btscroll ( GtkWidget * evbox , GdkEventScroll * event )
101 { 101 {
102 switch ( event->direction ) 102 switch ( event->direction )
103 { 103 {
104 case GDK_SCROLL_UP: 104 case GDK_SCROLL_UP:
105 si_audacious_volume_change( 5 ); 105 {
106 break; 106 switch ( si_cfg.scroll_action )
107 {
108 case SI_CFG_SCROLL_ACTION_VOLUME:
109 si_audacious_volume_change( 5 );
110 break;
111 case SI_CFG_SCROLL_ACTION_SKIP:
112 si_audacious_playback_skip( 1 );
113 break;
114 }
115 break;
116 }
117
107 case GDK_SCROLL_DOWN: 118 case GDK_SCROLL_DOWN:
108 si_audacious_volume_change( -5 ); 119 {
109 break; 120 switch ( si_cfg.scroll_action )
121 {
122 case SI_CFG_SCROLL_ACTION_VOLUME:
123 si_audacious_volume_change( -5 );
124 break;
125 case SI_CFG_SCROLL_ACTION_SKIP:
126 si_audacious_playback_skip( -1 );
127 break;
128 }
129 break;
130 }
110 } 131 }
111 132
112 return FALSE; 133 return FALSE;
113 } 134 }
114 135
536 557
537 558
538 void 559 void
539 si_ui_prefs_cb_commit ( gpointer prefs_win ) 560 si_ui_prefs_cb_commit ( gpointer prefs_win )
540 { 561 {
541 GSList *rcm_grp = g_object_get_data( G_OBJECT(prefs_win) , "rcm_grp" ); 562 GSList *list = g_object_get_data( G_OBJECT(prefs_win) , "rcm_grp" );
542 while ( rcm_grp != NULL ) 563 while ( list != NULL )
543 { 564 {
544 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(rcm_grp->data) ) == TRUE ) 565 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(list->data) ) == TRUE )
545 { 566 {
546 si_cfg.rclick_menu = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(rcm_grp->data),"val")); 567 si_cfg.rclick_menu = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(list->data),"val"));
547 break; 568 break;
548 } 569 }
549 rcm_grp = g_slist_next(rcm_grp); 570 list = g_slist_next(list);
550 } 571 }
572
573 list = g_object_get_data( G_OBJECT(prefs_win) , "msa_grp" );
574 while ( list != NULL )
575 {
576 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(list->data) ) == TRUE )
577 {
578 si_cfg.scroll_action = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(list->data),"val"));
579 break;
580 }
581 list = g_slist_next(list);
582 }
583
551 si_cfg_save(); 584 si_cfg_save();
552 gtk_widget_destroy( GTK_WIDGET(prefs_win) ); 585 gtk_widget_destroy( GTK_WIDGET(prefs_win) );
553 } 586 }
554 587
555 588
558 { 591 {
559 static GtkWidget *prefs_win = NULL; 592 static GtkWidget *prefs_win = NULL;
560 GtkWidget *prefs_vbox; 593 GtkWidget *prefs_vbox;
561 GtkWidget *prefs_rclick_frame, *prefs_rclick_vbox; 594 GtkWidget *prefs_rclick_frame, *prefs_rclick_vbox;
562 GtkWidget *prefs_rclick_audmenu_rbt, *prefs_rclick_smallmenu_rbt; 595 GtkWidget *prefs_rclick_audmenu_rbt, *prefs_rclick_smallmenu_rbt;
596 GtkWidget *prefs_scroll_frame, *prefs_scroll_vbox;
597 GtkWidget *prefs_scroll_vol_rbt, *prefs_scroll_skip_rbt;
563 GtkWidget *prefs_bbar_bbox; 598 GtkWidget *prefs_bbar_bbox;
564 GtkWidget *prefs_bbar_bt_ok, *prefs_bbar_bt_cancel; 599 GtkWidget *prefs_bbar_bt_ok, *prefs_bbar_bt_cancel;
565 GdkGeometry prefs_win_hints; 600 GdkGeometry prefs_win_hints;
566 601
567 if ( prefs_win != NULL ) 602 if ( prefs_win != NULL )
604 else 639 else
605 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(prefs_rclick_smallmenu_rbt) , TRUE ); 640 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(prefs_rclick_smallmenu_rbt) , TRUE );
606 gtk_box_pack_start( GTK_BOX(prefs_rclick_vbox) , prefs_rclick_audmenu_rbt , TRUE , TRUE , 0 ); 641 gtk_box_pack_start( GTK_BOX(prefs_rclick_vbox) , prefs_rclick_audmenu_rbt , TRUE , TRUE , 0 );
607 gtk_box_pack_start( GTK_BOX(prefs_rclick_vbox) , prefs_rclick_smallmenu_rbt , TRUE , TRUE , 0 ); 642 gtk_box_pack_start( GTK_BOX(prefs_rclick_vbox) , prefs_rclick_smallmenu_rbt , TRUE , TRUE , 0 );
608 gtk_box_pack_start( GTK_BOX(prefs_vbox) , prefs_rclick_frame , TRUE , TRUE , 0 ); 643 gtk_box_pack_start( GTK_BOX(prefs_vbox) , prefs_rclick_frame , TRUE , TRUE , 0 );
644
645 prefs_scroll_frame = gtk_frame_new( _("Mouse Scroll Action") );
646 prefs_scroll_vbox = gtk_vbox_new( TRUE , 0 );
647 gtk_container_set_border_width( GTK_CONTAINER(prefs_scroll_vbox) , 6 );
648 gtk_container_add( GTK_CONTAINER(prefs_scroll_frame) , prefs_scroll_vbox );
649 prefs_scroll_vol_rbt = gtk_radio_button_new_with_label( NULL ,
650 _("Change volume") );
651 g_object_set_data( G_OBJECT(prefs_scroll_vol_rbt) , "val" ,
652 GINT_TO_POINTER(SI_CFG_SCROLL_ACTION_VOLUME) );
653 prefs_scroll_skip_rbt = gtk_radio_button_new_with_label_from_widget(
654 GTK_RADIO_BUTTON(prefs_scroll_vol_rbt) ,
655 _("Change playing song") );
656 g_object_set_data( G_OBJECT(prefs_scroll_skip_rbt) , "val" ,
657 GINT_TO_POINTER(SI_CFG_SCROLL_ACTION_SKIP) );
658 g_object_set_data( G_OBJECT(prefs_win) , "msa_grp" ,
659 gtk_radio_button_get_group(GTK_RADIO_BUTTON(prefs_scroll_skip_rbt)) );
660 if ( si_cfg.scroll_action == SI_CFG_SCROLL_ACTION_VOLUME )
661 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(prefs_scroll_vol_rbt) , TRUE );
662 else
663 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(prefs_scroll_skip_rbt) , TRUE );
664 gtk_box_pack_start( GTK_BOX(prefs_scroll_vbox) , prefs_scroll_vol_rbt , TRUE , TRUE , 0 );
665 gtk_box_pack_start( GTK_BOX(prefs_scroll_vbox) , prefs_scroll_skip_rbt , TRUE , TRUE , 0 );
666 gtk_box_pack_start( GTK_BOX(prefs_vbox) , prefs_scroll_frame , TRUE , TRUE , 0 );
609 667
610 /* horizontal separator and buttons */ 668 /* horizontal separator and buttons */
611 gtk_box_pack_start( GTK_BOX(prefs_vbox) , gtk_hseparator_new() , FALSE , FALSE , 4 ); 669 gtk_box_pack_start( GTK_BOX(prefs_vbox) , gtk_hseparator_new() , FALSE , FALSE , 4 );
612 prefs_bbar_bbox = gtk_hbutton_box_new(); 670 prefs_bbar_bbox = gtk_hbutton_box_new();
613 gtk_button_box_set_layout( GTK_BUTTON_BOX(prefs_bbar_bbox) , GTK_BUTTONBOX_END ); 671 gtk_button_box_set_layout( GTK_BUTTON_BOX(prefs_bbar_bbox) , GTK_BUTTONBOX_END );