comparison src/audacious/ui_main.c @ 3001:6d4b7b739232 trunk

fully implement UiSkinnedNumber, number.c no longer needed
author Tomasz Mon <desowin@gmail.com>
date Sun, 08 Jul 2007 12:21:09 +0200
parents bbca1e0e054a
children 6720b09fec47
comparison
equal deleted inserted replaced
3000:bbca1e0e054a 3001:6d4b7b739232
80 #include "visualization.h" 80 #include "visualization.h"
81 81
82 #include "ui_skinned_window.h" 82 #include "ui_skinned_window.h"
83 #include "ui_skinned_button.h" 83 #include "ui_skinned_button.h"
84 #include "ui_skinned_textbox.h" 84 #include "ui_skinned_textbox.h"
85 #include "ui_skinned_number.h"
85 #include "ui_jumptotrack.h" 86 #include "ui_jumptotrack.h"
86 87
87 static GTimeVal cb_time; /* click delay for tristate is defined by TRISTATE_THRESHOLD */ 88 static GTimeVal cb_time; /* click delay for tristate is defined by TRISTATE_THRESHOLD */
88 89
89 #define ITEM_SEPARATOR {"/-", NULL, NULL, 0, "<Separator>"} 90 #define ITEM_SEPARATOR {"/-", NULL, NULL, 0, "<Separator>"}
137 static GtkWidget *mainwin_rate_text, *mainwin_freq_text, 138 static GtkWidget *mainwin_rate_text, *mainwin_freq_text,
138 *mainwin_othertext; 139 *mainwin_othertext;
139 140
140 PlayStatus *mainwin_playstatus; 141 PlayStatus *mainwin_playstatus;
141 142
142 Number *mainwin_minus_num, *mainwin_10min_num, *mainwin_min_num; 143 GtkWidget *mainwin_minus_num, *mainwin_10min_num, *mainwin_min_num;
143 Number *mainwin_10sec_num, *mainwin_sec_num; 144 GtkWidget *mainwin_10sec_num, *mainwin_sec_num;
144 145
145 static gboolean setting_volume = FALSE; 146 static gboolean setting_volume = FALSE;
146 147
147 Vis *mainwin_vis; 148 Vis *mainwin_vis;
148 SVis *mainwin_svis; 149 SVis *mainwin_svis;
682 if (bmp_active_skin->properties.mainwin_infobar_x && bmp_active_skin->properties.mainwin_infobar_y) 683 if (bmp_active_skin->properties.mainwin_infobar_x && bmp_active_skin->properties.mainwin_infobar_y)
683 gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_othertext), bmp_active_skin->properties.mainwin_infobar_x, 684 gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_othertext), bmp_active_skin->properties.mainwin_infobar_x,
684 bmp_active_skin->properties.mainwin_infobar_y); 685 bmp_active_skin->properties.mainwin_infobar_y);
685 686
686 if (bmp_active_skin->properties.mainwin_number_0_x && bmp_active_skin->properties.mainwin_number_0_y) 687 if (bmp_active_skin->properties.mainwin_number_0_x && bmp_active_skin->properties.mainwin_number_0_y)
687 widget_move(WIDGET(mainwin_minus_num), bmp_active_skin->properties.mainwin_number_0_x, 688 gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_minus_num), bmp_active_skin->properties.mainwin_number_0_x,
688 bmp_active_skin->properties.mainwin_number_0_y); 689 bmp_active_skin->properties.mainwin_number_0_y);
689 690
690 if (bmp_active_skin->properties.mainwin_number_1_x && bmp_active_skin->properties.mainwin_number_1_y) 691 if (bmp_active_skin->properties.mainwin_number_1_x && bmp_active_skin->properties.mainwin_number_1_y)
691 widget_move(WIDGET(mainwin_10min_num), bmp_active_skin->properties.mainwin_number_1_x, 692 gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_10min_num), bmp_active_skin->properties.mainwin_number_1_x,
692 bmp_active_skin->properties.mainwin_number_1_y); 693 bmp_active_skin->properties.mainwin_number_1_y);
693 694
694 if (bmp_active_skin->properties.mainwin_number_2_x && bmp_active_skin->properties.mainwin_number_2_y) 695 if (bmp_active_skin->properties.mainwin_number_2_x && bmp_active_skin->properties.mainwin_number_2_y)
695 widget_move(WIDGET(mainwin_min_num), bmp_active_skin->properties.mainwin_number_2_x, 696 gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_min_num), bmp_active_skin->properties.mainwin_number_2_x,
696 bmp_active_skin->properties.mainwin_number_2_y); 697 bmp_active_skin->properties.mainwin_number_2_y);
697 698
698 if (bmp_active_skin->properties.mainwin_number_3_x && bmp_active_skin->properties.mainwin_number_3_y) 699 if (bmp_active_skin->properties.mainwin_number_3_x && bmp_active_skin->properties.mainwin_number_3_y)
699 widget_move(WIDGET(mainwin_10sec_num), bmp_active_skin->properties.mainwin_number_3_x, 700 gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_10sec_num), bmp_active_skin->properties.mainwin_number_3_x,
700 bmp_active_skin->properties.mainwin_number_3_y); 701 bmp_active_skin->properties.mainwin_number_3_y);
701 702
702 if (bmp_active_skin->properties.mainwin_number_4_x && bmp_active_skin->properties.mainwin_number_4_y) 703 if (bmp_active_skin->properties.mainwin_number_4_x && bmp_active_skin->properties.mainwin_number_4_y)
703 widget_move(WIDGET(mainwin_sec_num), bmp_active_skin->properties.mainwin_number_4_x, 704 gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_sec_num), bmp_active_skin->properties.mainwin_number_4_x,
704 bmp_active_skin->properties.mainwin_number_4_y); 705 bmp_active_skin->properties.mainwin_number_4_y);
705 706
706 if (bmp_active_skin->properties.mainwin_playstatus_x && bmp_active_skin->properties.mainwin_playstatus_y) 707 if (bmp_active_skin->properties.mainwin_playstatus_x && bmp_active_skin->properties.mainwin_playstatus_y)
707 widget_move(WIDGET(mainwin_playstatus), bmp_active_skin->properties.mainwin_playstatus_x, 708 widget_move(WIDGET(mainwin_playstatus), bmp_active_skin->properties.mainwin_playstatus_x,
708 bmp_active_skin->properties.mainwin_playstatus_y); 709 bmp_active_skin->properties.mainwin_playstatus_y);
863 /* Show sampling frequency in kHz */ 864 /* Show sampling frequency in kHz */
864 text = g_strdup_printf("%2d", frequency / 1000); 865 text = g_strdup_printf("%2d", frequency / 1000);
865 ui_skinned_textbox_set_text(mainwin_freq_text, text); 866 ui_skinned_textbox_set_text(mainwin_freq_text, text);
866 867
867 monostereo_set_num_channels(mainwin_monostereo, n_channels); 868 monostereo_set_num_channels(mainwin_monostereo, n_channels);
868
869 widget_show(WIDGET(mainwin_minus_num));
870 widget_show(WIDGET(mainwin_10min_num));
871 widget_show(WIDGET(mainwin_min_num));
872 widget_show(WIDGET(mainwin_10sec_num));
873 widget_show(WIDGET(mainwin_sec_num));
874 869
875 if (!playback_get_paused() && mainwin_playstatus != NULL) 870 if (!playback_get_paused() && mainwin_playstatus != NULL)
876 playstatus_set_status(mainwin_playstatus, STATUS_PLAY); 871 playstatus_set_status(mainwin_playstatus, STATUS_PLAY);
877 872
878 if (playlist_get_current_length(playlist) != -1) { 873 if (playlist_get_current_length(playlist) != -1) {
939 934
940 if (mainwin_playstatus != NULL) 935 if (mainwin_playstatus != NULL)
941 playstatus_set_status(mainwin_playstatus, STATUS_STOP); 936 playstatus_set_status(mainwin_playstatus, STATUS_STOP);
942 937
943 /* hide playback time */ 938 /* hide playback time */
944 widget_hide(WIDGET(mainwin_minus_num)); 939 gtk_widget_hide(mainwin_minus_num);
945 widget_hide(WIDGET(mainwin_10min_num)); 940 gtk_widget_hide(mainwin_10min_num);
946 widget_hide(WIDGET(mainwin_min_num)); 941 gtk_widget_hide(mainwin_min_num);
947 widget_hide(WIDGET(mainwin_10sec_num)); 942 gtk_widget_hide(mainwin_10sec_num);
948 widget_hide(WIDGET(mainwin_sec_num)); 943 gtk_widget_hide(mainwin_sec_num);
949 944
950 gtk_widget_hide(mainwin_stime_min); 945 gtk_widget_hide(mainwin_stime_min);
951 gtk_widget_hide(mainwin_stime_sec); 946 gtk_widget_hide(mainwin_stime_sec);
952 947
953 widget_hide(WIDGET(mainwin_position)); 948 widget_hide(WIDGET(mainwin_position));
1147 */ 1142 */
1148 ui_manager_popup_menu_show(GTK_MENU(mainwin_general_menu), 1143 ui_manager_popup_menu_show(GTK_MENU(mainwin_general_menu),
1149 event->x_root, 1144 event->x_root,
1150 event->y_root, 3, event->time); 1145 event->y_root, 3, event->time);
1151 grab = FALSE; 1146 grab = FALSE;
1152 }
1153 }
1154
1155 if (event->button == 1)
1156 {
1157 if (widget_contains(WIDGET(mainwin_minus_num), event->x, event->y) ||
1158 widget_contains(WIDGET(mainwin_10min_num), event->x, event->y) ||
1159 widget_contains(WIDGET(mainwin_min_num), event->x, event->y) ||
1160 widget_contains(WIDGET(mainwin_10sec_num), event->x, event->y) ||
1161 widget_contains(WIDGET(mainwin_sec_num), event->x, event->y)) {
1162 change_timer_mode();
1163 } 1147 }
1164 } 1148 }
1165 1149
1166 if (grab) 1150 if (grab)
1167 gdk_pointer_grab(mainwin->window, FALSE, 1151 gdk_pointer_grab(mainwin->window, FALSE,
1947 1931
1948 gtk_widget_show(mainwin); 1932 gtk_widget_show(mainwin);
1949 return; 1933 return;
1950 } 1934 }
1951 1935
1952 gtk_widget_show_all(mainwin);
1953
1954 if (nullmask) 1936 if (nullmask)
1955 { 1937 {
1956 g_object_unref(nullmask); 1938 g_object_unref(nullmask);
1957 nullmask = NULL; 1939 nullmask = NULL;
1958 } 1940 }
2852 SKIN_MONOSTEREO); 2834 SKIN_MONOSTEREO);
2853 2835
2854 mainwin_playstatus = 2836 mainwin_playstatus =
2855 create_playstatus(&mainwin_wlist, mainwin_bg, SKINNED_WINDOW(mainwin)->gc, 24, 28); 2837 create_playstatus(&mainwin_wlist, mainwin_bg, SKINNED_WINDOW(mainwin)->gc, 24, 28);
2856 2838
2857 mainwin_minus_num = 2839 mainwin_minus_num = ui_skinned_number_new(SKINNED_WINDOW(mainwin)->fixed, mainwin_bg, SKINNED_WINDOW(mainwin)->gc, 36, 26,
2858 create_number(&mainwin_wlist, mainwin_bg, SKINNED_WINDOW(mainwin)->gc, 36, 26,
2859 SKIN_NUMBERS); 2840 SKIN_NUMBERS);
2860 widget_hide(WIDGET(mainwin_minus_num)); 2841 g_signal_connect(mainwin_minus_num, "clicked", change_timer_mode, NULL);
2861 mainwin_10min_num = 2842
2862 create_number(&mainwin_wlist, mainwin_bg, SKINNED_WINDOW(mainwin)->gc, 48, 26, 2843 mainwin_10min_num = ui_skinned_number_new(SKINNED_WINDOW(mainwin)->fixed, mainwin_bg, SKINNED_WINDOW(mainwin)->gc, 48, 26,
2863 SKIN_NUMBERS); 2844 SKIN_NUMBERS);
2864 widget_hide(WIDGET(mainwin_10min_num)); 2845 g_signal_connect(mainwin_10min_num, "clicked", change_timer_mode, NULL);
2865 2846
2866 mainwin_min_num = 2847 mainwin_min_num = ui_skinned_number_new(SKINNED_WINDOW(mainwin)->fixed, mainwin_bg, SKINNED_WINDOW(mainwin)->gc, 60, 26,
2867 create_number(&mainwin_wlist, mainwin_bg, SKINNED_WINDOW(mainwin)->gc, 60, 26,
2868 SKIN_NUMBERS); 2848 SKIN_NUMBERS);
2869 widget_hide(WIDGET(mainwin_min_num)); 2849 g_signal_connect(mainwin_min_num, "clicked", change_timer_mode, NULL);
2870 2850
2871 mainwin_10sec_num = 2851 mainwin_10sec_num = ui_skinned_number_new(SKINNED_WINDOW(mainwin)->fixed, mainwin_bg, SKINNED_WINDOW(mainwin)->gc, 78, 26,
2872 create_number(&mainwin_wlist, mainwin_bg, SKINNED_WINDOW(mainwin)->gc, 78, 26,
2873 SKIN_NUMBERS); 2852 SKIN_NUMBERS);
2874 widget_hide(WIDGET(mainwin_10sec_num)); 2853 g_signal_connect(mainwin_10sec_num, "clicked", change_timer_mode, NULL);
2875 2854
2876 mainwin_sec_num = 2855 mainwin_sec_num = ui_skinned_number_new(SKINNED_WINDOW(mainwin)->fixed, mainwin_bg, SKINNED_WINDOW(mainwin)->gc, 90, 26,
2877 create_number(&mainwin_wlist, mainwin_bg, SKINNED_WINDOW(mainwin)->gc, 90, 26,
2878 SKIN_NUMBERS); 2856 SKIN_NUMBERS);
2879 widget_hide(WIDGET(mainwin_sec_num)); 2857 g_signal_connect(mainwin_sec_num, "clicked", change_timer_mode, NULL);
2880 2858
2881 mainwin_about = ui_skinned_button_new(); 2859 mainwin_about = ui_skinned_button_new();
2882 ui_skinned_small_button_setup(mainwin_about, SKINNED_WINDOW(mainwin)->fixed, mainwin_bg, 2860 ui_skinned_small_button_setup(mainwin_about, SKINNED_WINDOW(mainwin)->fixed, mainwin_bg,
2883 SKINNED_WINDOW(mainwin)->gc, 247, 83, 20, 25); 2861 SKINNED_WINDOW(mainwin)->gc, 247, 83, 20, 25);
2884 g_signal_connect(mainwin_about, "clicked", show_about_window, NULL); 2862 g_signal_connect(mainwin_about, "clicked", show_about_window, NULL);
2927 ui_skinned_window_widgetlist_associate(mainwin, WIDGET(mainwin_volume)); 2905 ui_skinned_window_widgetlist_associate(mainwin, WIDGET(mainwin_volume));
2928 ui_skinned_window_widgetlist_associate(mainwin, WIDGET(mainwin_balance)); 2906 ui_skinned_window_widgetlist_associate(mainwin, WIDGET(mainwin_balance));
2929 2907
2930 ui_skinned_window_widgetlist_associate(mainwin, WIDGET(mainwin_monostereo)); 2908 ui_skinned_window_widgetlist_associate(mainwin, WIDGET(mainwin_monostereo));
2931 ui_skinned_window_widgetlist_associate(mainwin, WIDGET(mainwin_playstatus)); 2909 ui_skinned_window_widgetlist_associate(mainwin, WIDGET(mainwin_playstatus));
2932
2933 ui_skinned_window_widgetlist_associate(mainwin, WIDGET(mainwin_minus_num));
2934 ui_skinned_window_widgetlist_associate(mainwin, WIDGET(mainwin_10min_num));
2935 ui_skinned_window_widgetlist_associate(mainwin, WIDGET(mainwin_min_num));
2936 ui_skinned_window_widgetlist_associate(mainwin, WIDGET(mainwin_10sec_num));
2937 ui_skinned_window_widgetlist_associate(mainwin, WIDGET(mainwin_sec_num));
2938 2910
2939 ui_skinned_window_widgetlist_associate(mainwin, WIDGET(mainwin_vis)); 2911 ui_skinned_window_widgetlist_associate(mainwin, WIDGET(mainwin_vis));
2940 ui_skinned_window_widgetlist_associate(mainwin, WIDGET(mainwin_svis)); 2912 ui_skinned_window_widgetlist_associate(mainwin, WIDGET(mainwin_svis));
2941 2913
2942 ui_skinned_window_widgetlist_associate(mainwin, WIDGET(mainwin_position)); 2914 ui_skinned_window_widgetlist_associate(mainwin, WIDGET(mainwin_position));
3003 mainwin_bg_x2 = gdk_pixmap_new(mainwin->window, 2975 mainwin_bg_x2 = gdk_pixmap_new(mainwin->window,
3004 bmp_active_skin->properties.mainwin_width * 2, 2976 bmp_active_skin->properties.mainwin_width * 2,
3005 bmp_active_skin->properties.mainwin_height * 2, -1); 2977 bmp_active_skin->properties.mainwin_height * 2, -1);
3006 mainwin_set_back_pixmap(); 2978 mainwin_set_back_pixmap();
3007 mainwin_create_widgets(); 2979 mainwin_create_widgets();
2980 gtk_widget_show_all(mainwin);
2981
2982 if (cfg.player_shaded) {
2983 gtk_widget_show(mainwin_stime_min);
2984 gtk_widget_show(mainwin_stime_sec);
2985 }
2986 gtk_widget_hide(mainwin_minus_num);
2987 gtk_widget_hide(mainwin_10min_num);
2988 gtk_widget_hide(mainwin_min_num);
2989 gtk_widget_hide(mainwin_10sec_num);
2990 gtk_widget_hide(mainwin_sec_num);
2991 gtk_widget_hide(mainwin_othertext);
3008 2992
3009 vis_set_window(mainwin_vis, mainwin->window); 2993 vis_set_window(mainwin_vis, mainwin->window);
3010 } 2994 }
3011 2995
3012 void 2996 void
3032 playlistwin_hide_timer(); 3016 playlistwin_hide_timer();
3033 input_update_vis(time); 3017 input_update_vis(time);
3034 3018
3035 if (cfg.timer_mode == TIMER_REMAINING) { 3019 if (cfg.timer_mode == TIMER_REMAINING) {
3036 if (length != -1) { 3020 if (length != -1) {
3037 number_set_number(mainwin_minus_num, 11); 3021 ui_skinned_number_set_number(mainwin_minus_num, 11);
3038 t = length - time; 3022 t = length - time;
3039 stime_prefix = '-'; 3023 stime_prefix = '-';
3040 } 3024 }
3041 else { 3025 else {
3042 number_set_number(mainwin_minus_num, 10); 3026 ui_skinned_number_set_number(mainwin_minus_num, 10);
3043 t = time; 3027 t = time;
3044 stime_prefix = ' '; 3028 stime_prefix = ' ';
3045 } 3029 }
3046 } 3030 }
3047 else { 3031 else {
3048 number_set_number(mainwin_minus_num, 10); 3032 ui_skinned_number_set_number(mainwin_minus_num, 10);
3049 t = time; 3033 t = time;
3050 stime_prefix = ' '; 3034 stime_prefix = ' ';
3051 } 3035 }
3052 t /= 1000; 3036 t /= 1000;
3053 3037
3054 /* Show the time in the format HH:MM when we have more than 100 3038 /* Show the time in the format HH:MM when we have more than 100
3055 * minutes. */ 3039 * minutes. */
3056 if (t >= 100 * 60) 3040 if (t >= 100 * 60)
3057 t /= 60; 3041 t /= 60;
3058 number_set_number(mainwin_10min_num, t / 600); 3042 ui_skinned_number_set_number(mainwin_10min_num, t / 600);
3059 number_set_number(mainwin_min_num, (t / 60) % 10); 3043 ui_skinned_number_set_number(mainwin_min_num, (t / 60) % 10);
3060 number_set_number(mainwin_10sec_num, (t / 10) % 6); 3044 ui_skinned_number_set_number(mainwin_10sec_num, (t / 10) % 6);
3061 number_set_number(mainwin_sec_num, t % 10); 3045 ui_skinned_number_set_number(mainwin_sec_num, t % 10);
3062 3046
3063 if (!mainwin_sposition->hs_pressed) { 3047 if (!mainwin_sposition->hs_pressed) {
3064 gchar *time_str; 3048 gchar *time_str;
3065 3049
3066 time_str = g_strdup_printf("%c%2.2d", stime_prefix, t / 60); 3050 time_str = g_strdup_printf("%c%2.2d", stime_prefix, t / 60);