Mercurial > audlegacy
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 |