comparison src/audacious/ui_main.c @ 3042:01ae56759d15

mainwin_sposition is now UiSkinnedHorizontalSlider
author Tomasz Mon <desowin@gmail.com>
date Thu, 12 Jul 2007 12:50:52 +0200
parents 067e0186623a
children 464ae313343c 91df04ec5ef7
comparison
equal deleted inserted replaced
3041:910bc20f6816 3042:01ae56759d15
148 static gboolean setting_volume = FALSE; 148 static gboolean setting_volume = FALSE;
149 149
150 GtkWidget *mainwin_vis; 150 GtkWidget *mainwin_vis;
151 SVis *mainwin_svis; 151 SVis *mainwin_svis;
152 152
153 HSlider *mainwin_sposition = NULL; 153 GtkWidget *mainwin_sposition = NULL;
154 154
155 static MenuRow *mainwin_menurow; 155 static MenuRow *mainwin_menurow;
156 static HSlider *mainwin_volume, *mainwin_balance; 156 static HSlider *mainwin_volume, *mainwin_balance;
157 GtkWidget *mainwin_position; 157 GtkWidget *mainwin_position;
158 158
280 gtk_widget_show(mainwin_seject); 280 gtk_widget_show(mainwin_seject);
281 281
282 ui_skinned_textbox_set_scroll(mainwin_info, FALSE); 282 ui_skinned_textbox_set_scroll(mainwin_info, FALSE);
283 if (playback_get_playing()) 283 if (playback_get_playing())
284 { 284 {
285 widget_show(WIDGET(mainwin_sposition)); 285 gtk_widget_show(mainwin_sposition);
286 gtk_widget_show(mainwin_stime_min); 286 gtk_widget_show(mainwin_stime_min);
287 gtk_widget_show(mainwin_stime_sec); 287 gtk_widget_show(mainwin_stime_sec);
288 } 288 }
289 else 289 else
290 { 290 {
291 widget_hide(WIDGET(mainwin_sposition)); 291 gtk_widget_hide(mainwin_sposition);
292 gtk_widget_hide(mainwin_stime_min); 292 gtk_widget_hide(mainwin_stime_min);
293 gtk_widget_hide(mainwin_stime_sec); 293 gtk_widget_hide(mainwin_stime_sec);
294 } 294 }
295 295
296 } 296 }
310 gtk_widget_hide(mainwin_sfwd); 310 gtk_widget_hide(mainwin_sfwd);
311 gtk_widget_hide(mainwin_seject); 311 gtk_widget_hide(mainwin_seject);
312 312
313 gtk_widget_hide(mainwin_stime_min); 313 gtk_widget_hide(mainwin_stime_min);
314 gtk_widget_hide(mainwin_stime_sec); 314 gtk_widget_hide(mainwin_stime_sec);
315 widget_hide(WIDGET(mainwin_sposition)); 315 gtk_widget_hide(mainwin_sposition);
316 316
317 if (playback_get_playing() && !GTK_WIDGET_VISIBLE(mainwin_minus_num)) { 317 if (playback_get_playing()) {
318 gtk_widget_show(mainwin_minus_num); 318 gtk_widget_show(mainwin_minus_num);
319 gtk_widget_show(mainwin_10min_num); 319 gtk_widget_show(mainwin_10min_num);
320 gtk_widget_show(mainwin_min_num); 320 gtk_widget_show(mainwin_min_num);
321 gtk_widget_show(mainwin_10sec_num); 321 gtk_widget_show(mainwin_10sec_num);
322 gtk_widget_show(mainwin_sec_num); 322 gtk_widget_show(mainwin_sec_num);
323 gtk_widget_show(mainwin_position);
323 } 324 }
324 325
325 ui_skinned_textbox_set_scroll(mainwin_info, cfg.autoscroll); 326 ui_skinned_textbox_set_scroll(mainwin_info, cfg.autoscroll);
326 } 327 }
327 328
895 monostereo_set_num_channels(mainwin_monostereo, n_channels); 896 monostereo_set_num_channels(mainwin_monostereo, n_channels);
896 897
897 if (!playback_get_paused() && mainwin_playstatus != NULL) 898 if (!playback_get_paused() && mainwin_playstatus != NULL)
898 playstatus_set_status(mainwin_playstatus, STATUS_PLAY); 899 playstatus_set_status(mainwin_playstatus, STATUS_PLAY);
899 900
900 if (playlist_get_current_length(playlist) != -1) {
901 if (cfg.player_shaded)
902 widget_show(WIDGET(mainwin_sposition));
903 }
904 else {
905 widget_hide(WIDGET(mainwin_sposition));
906 mainwin_force_redraw = TRUE;
907 }
908
909 if (bmp_active_skin && bmp_active_skin->properties.mainwin_othertext 901 if (bmp_active_skin && bmp_active_skin->properties.mainwin_othertext
910 == TRUE) 902 == TRUE)
911 { 903 {
912 if (bitrate != -1) 904 if (bitrate != -1)
913 text = g_strdup_printf("%d kbps, %0.1f kHz, %s", 905 text = g_strdup_printf("%d kbps, %0.1f kHz, %s",
948 940
949 /* clear sampling parameters */ 941 /* clear sampling parameters */
950 playback_set_sample_params(0, 0, 0); 942 playback_set_sample_params(0, 0, 0);
951 943
952 UI_SKINNED_HORIZONTAL_SLIDER(mainwin_position)->pressed = FALSE; 944 UI_SKINNED_HORIZONTAL_SLIDER(mainwin_position)->pressed = FALSE;
953 mainwin_sposition->hs_pressed = FALSE; 945 UI_SKINNED_HORIZONTAL_SLIDER(mainwin_sposition)->pressed = FALSE;
954 946
955 /* clear sampling parameter displays */ 947 /* clear sampling parameter displays */
956 ui_skinned_textbox_set_text(mainwin_rate_text, " "); 948 ui_skinned_textbox_set_text(mainwin_rate_text, " ");
957 ui_skinned_textbox_set_text(mainwin_freq_text, " "); 949 ui_skinned_textbox_set_text(mainwin_freq_text, " ");
958 monostereo_set_num_channels(mainwin_monostereo, 0); 950 monostereo_set_num_channels(mainwin_monostereo, 0);
969 961
970 gtk_widget_hide(mainwin_stime_min); 962 gtk_widget_hide(mainwin_stime_min);
971 gtk_widget_hide(mainwin_stime_sec); 963 gtk_widget_hide(mainwin_stime_sec);
972 964
973 gtk_widget_hide(mainwin_position); 965 gtk_widget_hide(mainwin_position);
974 widget_hide(WIDGET(mainwin_sposition)); 966 gtk_widget_hide(mainwin_sposition);
975 967
976 gtk_widget_hide(mainwin_othertext); 968 gtk_widget_hide(mainwin_othertext);
977 969
978 playlistwin_hide_timer(); 970 playlistwin_hide_timer();
979 ui_vis_clear_data(mainwin_vis); 971 ui_vis_clear_data(mainwin_vis);
985 { 977 {
986 if (!mainwin) 978 if (!mainwin)
987 return; 979 return;
988 980
989 gtk_widget_hide(mainwin_position); 981 gtk_widget_hide(mainwin_position);
990 982 gtk_widget_hide(mainwin_sposition);
991 /*
992 * We dont call draw_main_window() here so this will not
993 * remove them visually. It will only prevent us from sending
994 * any seek calls to the input plugin before the input plugin
995 * calls ->set_info().
996 */
997 widget_hide(WIDGET(mainwin_sposition));
998 } 983 }
999 984
1000 static gboolean 985 static gboolean
1001 mainwin_mouse_button_release(GtkWidget * widget, 986 mainwin_mouse_button_release(GtkWidget * widget,
1002 GdkEventButton * event, 987 GdkEventButton * event,
1702 1687
1703 gint 1688 gint
1704 mainwin_spos_frame_cb(gint pos) 1689 mainwin_spos_frame_cb(gint pos)
1705 { 1690 {
1706 if (mainwin_sposition) { 1691 if (mainwin_sposition) {
1692 gint x = 0;
1707 if (pos < 6) 1693 if (pos < 6)
1708 mainwin_sposition->hs_knob_nx = mainwin_sposition->hs_knob_px = 1694 x = 17;
1709 17;
1710 else if (pos < 9) 1695 else if (pos < 9)
1711 mainwin_sposition->hs_knob_nx = mainwin_sposition->hs_knob_px = 1696 x = 20;
1712 20;
1713 else 1697 else
1714 mainwin_sposition->hs_knob_nx = mainwin_sposition->hs_knob_px = 1698 x = 23;
1715 23; 1699
1700 UI_SKINNED_HORIZONTAL_SLIDER(mainwin_sposition)->knob_nx = x;
1701 UI_SKINNED_HORIZONTAL_SLIDER(mainwin_sposition)->knob_px = x;
1716 } 1702 }
1717 return 1; 1703 return 1;
1718 } 1704 }
1719 1705
1720 void 1706 void
1721 mainwin_spos_motion_cb(gint pos) 1707 mainwin_spos_motion_cb(GtkWidget *widget, gint pos)
1722 { 1708 {
1723 gint time; 1709 gint time;
1724 gchar *time_msg; 1710 gchar *time_msg;
1725 Playlist *playlist = playlist_get_active(); 1711 Playlist *playlist = playlist_get_active();
1726 1712
1744 ui_skinned_textbox_set_text(mainwin_stime_sec, time_msg); 1730 ui_skinned_textbox_set_text(mainwin_stime_sec, time_msg);
1745 g_free(time_msg); 1731 g_free(time_msg);
1746 } 1732 }
1747 1733
1748 void 1734 void
1749 mainwin_spos_release_cb(gint pos) 1735 mainwin_spos_release_cb(GtkWidget *widget, gint pos)
1750 { 1736 {
1751 playback_seek(((playlist_get_current_length(playlist_get_active()) / 1000) * 1737 playback_seek(((playlist_get_current_length(playlist_get_active()) / 1000) *
1752 (pos - 1)) / 12); 1738 (pos - 1)) / 12);
1753 } 1739 }
1754 1740
2865 mainwin_vis = ui_vis_new(SKINNED_WINDOW(mainwin)->fixed, 24, 43, 76); 2851 mainwin_vis = ui_vis_new(SKINNED_WINDOW(mainwin)->fixed, 24, 43, 76);
2866 g_signal_connect(mainwin_vis, "button-press-event", G_CALLBACK(mainwin_vis_cb), NULL); 2852 g_signal_connect(mainwin_vis, "button-press-event", G_CALLBACK(mainwin_vis_cb), NULL);
2867 mainwin_svis = create_svis(&mainwin_wlist, mainwin_bg, SKINNED_WINDOW(mainwin)->gc, 79, 5); 2853 mainwin_svis = create_svis(&mainwin_wlist, mainwin_bg, SKINNED_WINDOW(mainwin)->gc, 79, 5);
2868 2854
2869 mainwin_position = ui_skinned_horizontal_slider_new(SKINNED_WINDOW(mainwin)->fixed, 16, 72, 248, 2855 mainwin_position = ui_skinned_horizontal_slider_new(SKINNED_WINDOW(mainwin)->fixed, 16, 72, 248,
2870 10, 248, 0, 278, 0, 29, 10, 10, 0, 0, 219, NULL, SKIN_POSBAR); 2856 10, 248, 0, 278, 0, 29, 10, 10, 0, 0, 219,
2857 NULL, SKIN_POSBAR);
2871 g_signal_connect(mainwin_position, "motion", G_CALLBACK(mainwin_position_motion_cb), NULL); 2858 g_signal_connect(mainwin_position, "motion", G_CALLBACK(mainwin_position_motion_cb), NULL);
2872 g_signal_connect(mainwin_position, "release", G_CALLBACK(mainwin_position_release_cb), NULL); 2859 g_signal_connect(mainwin_position, "release", G_CALLBACK(mainwin_position_release_cb), NULL);
2873 2860
2874 mainwin_sposition = 2861 mainwin_sposition = ui_skinned_horizontal_slider_new(SKINNED_WINDOW(mainwin)->fixed, 226, 4, 17,
2875 create_hslider(&mainwin_wlist, mainwin_bg, SKINNED_WINDOW(mainwin)->gc, 226, 4, 17, 2862 7, 17, 36, 17, 36, 3, 7, 36, 0, 1, 13,
2876 7, 17, 36, 17, 36, 3, 7, 36, 0, 1, 13, 2863 mainwin_spos_frame_cb, SKIN_TITLEBAR);
2877 mainwin_spos_frame_cb, mainwin_spos_motion_cb, 2864 g_signal_connect(mainwin_sposition, "motion", G_CALLBACK(mainwin_spos_motion_cb), NULL);
2878 mainwin_spos_release_cb, SKIN_TITLEBAR); 2865 g_signal_connect(mainwin_sposition, "release", G_CALLBACK(mainwin_spos_release_cb), NULL);
2879 widget_hide(WIDGET(mainwin_sposition));
2880 2866
2881 mainwin_stime_min = ui_skinned_textbox_new(SKINNED_WINDOW(mainwin)->fixed, 130, 4, 15, FALSE, SKIN_TEXT); 2867 mainwin_stime_min = ui_skinned_textbox_new(SKINNED_WINDOW(mainwin)->fixed, 130, 4, 15, FALSE, SKIN_TEXT);
2882 g_signal_connect(mainwin_stime_min, "clicked", change_timer_mode, NULL); 2868 g_signal_connect(mainwin_stime_min, "clicked", change_timer_mode, NULL);
2883 2869
2884 mainwin_stime_sec = ui_skinned_textbox_new(SKINNED_WINDOW(mainwin)->fixed, 147, 4, 10, FALSE, SKIN_TEXT); 2870 mainwin_stime_sec = ui_skinned_textbox_new(SKINNED_WINDOW(mainwin)->fixed, 147, 4, 10, FALSE, SKIN_TEXT);
2902 2888
2903 ui_skinned_window_widgetlist_associate(mainwin, WIDGET(mainwin_monostereo)); 2889 ui_skinned_window_widgetlist_associate(mainwin, WIDGET(mainwin_monostereo));
2904 ui_skinned_window_widgetlist_associate(mainwin, WIDGET(mainwin_playstatus)); 2890 ui_skinned_window_widgetlist_associate(mainwin, WIDGET(mainwin_playstatus));
2905 2891
2906 ui_skinned_window_widgetlist_associate(mainwin, WIDGET(mainwin_svis)); 2892 ui_skinned_window_widgetlist_associate(mainwin, WIDGET(mainwin_svis));
2907
2908 ui_skinned_window_widgetlist_associate(mainwin, WIDGET(mainwin_sposition));
2909 } 2893 }
2910 2894
2911 static void 2895 static void
2912 mainwin_create_window(void) 2896 mainwin_create_window(void)
2913 { 2897 {
2992 gtk_widget_hide(mainwin_10sec_num); 2976 gtk_widget_hide(mainwin_10sec_num);
2993 gtk_widget_hide(mainwin_sec_num); 2977 gtk_widget_hide(mainwin_sec_num);
2994 gtk_widget_hide(mainwin_othertext); 2978 gtk_widget_hide(mainwin_othertext);
2995 2979
2996 gtk_widget_hide(mainwin_position); 2980 gtk_widget_hide(mainwin_position);
2981 gtk_widget_hide(mainwin_sposition);
2997 2982
2998 if (bmp_active_skin->properties.mainwin_vis_visible) 2983 if (bmp_active_skin->properties.mainwin_vis_visible)
2999 gtk_widget_show(mainwin_vis); 2984 gtk_widget_show(mainwin_vis);
3000 else 2985 else
3001 gtk_widget_hide(mainwin_vis); 2986 gtk_widget_hide(mainwin_vis);
3050 ui_skinned_number_set_number(mainwin_10min_num, t / 600); 3035 ui_skinned_number_set_number(mainwin_10min_num, t / 600);
3051 ui_skinned_number_set_number(mainwin_min_num, (t / 60) % 10); 3036 ui_skinned_number_set_number(mainwin_min_num, (t / 60) % 10);
3052 ui_skinned_number_set_number(mainwin_10sec_num, (t / 10) % 6); 3037 ui_skinned_number_set_number(mainwin_10sec_num, (t / 10) % 6);
3053 ui_skinned_number_set_number(mainwin_sec_num, t % 10); 3038 ui_skinned_number_set_number(mainwin_sec_num, t % 10);
3054 3039
3055 if (!mainwin_sposition->hs_pressed) { 3040 if (!UI_SKINNED_HORIZONTAL_SLIDER(mainwin_sposition)->pressed) {
3056 gchar *time_str; 3041 gchar *time_str;
3057 3042
3058 time_str = g_strdup_printf("%c%2.2d", stime_prefix, t / 60); 3043 time_str = g_strdup_printf("%c%2.2d", stime_prefix, t / 60);
3059 ui_skinned_textbox_set_text(mainwin_stime_min, time_str); 3044 ui_skinned_textbox_set_text(mainwin_stime_min, time_str);
3060 g_free(time_str); 3045 g_free(time_str);
3067 time /= 1000; 3052 time /= 1000;
3068 length /= 1000; 3053 length /= 1000;
3069 if (length > 0) { 3054 if (length > 0) {
3070 if (time > length) { 3055 if (time > length) {
3071 ui_skinned_horizontal_slider_set_position(mainwin_position, 219); 3056 ui_skinned_horizontal_slider_set_position(mainwin_position, 219);
3072 hslider_set_position(mainwin_sposition, 13); 3057 ui_skinned_horizontal_slider_set_position(mainwin_sposition, 13);
3073 } 3058 }
3074 /* update the slider position ONLY if there is not a seek in progress */ 3059 /* update the slider position ONLY if there is not a seek in progress */
3075 else if (seek_state == MAINWIN_SEEK_NIL) { 3060 else if (seek_state == MAINWIN_SEEK_NIL) {
3076 ui_skinned_horizontal_slider_set_position(mainwin_position, (time * 219) / length); 3061 ui_skinned_horizontal_slider_set_position(mainwin_position, (time * 219) / length);
3077 hslider_set_position(mainwin_sposition, 3062 ui_skinned_horizontal_slider_set_position(mainwin_sposition,
3078 ((time * 12) / length) + 1); 3063 ((time * 12) / length) + 1);
3079 } 3064 }
3080 } 3065 }
3081 else { 3066 else {
3082 ui_skinned_horizontal_slider_set_position(mainwin_position, 0); 3067 ui_skinned_horizontal_slider_set_position(mainwin_position, 0);
3083 hslider_set_position(mainwin_sposition, 1); 3068 ui_skinned_horizontal_slider_set_position(mainwin_sposition, 1);
3084 } 3069 }
3085 3070
3086 return TRUE; 3071 return TRUE;
3087 } 3072 }
3088 3073