void ol_osd_lock_unlock () { OlConfigProxy *config = ol_config_proxy_get_instance (); ol_assert (config != NULL); ol_config_proxy_set_bool (config, "OSD/locked", !ol_config_proxy_get_bool (config, "OSD/locked")); }
void ol_show_hide () { OlConfigProxy *config = ol_config_proxy_get_instance (); ol_assert (config != NULL); ol_config_proxy_set_bool (config, "General/visible", !ol_config_proxy_get_bool (config, "General/visible")); }
void ol_menu_lock (GtkWidget *widget, gpointer data) { OlConfigProxy *config = ol_config_proxy_get_instance (); ol_assert (config != NULL); gboolean locked = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); ol_config_proxy_set_bool (config, "OSD/locked", locked); }
void ol_menu_hide (GtkWidget *widget, gpointer data) { OlConfigProxy *config = ol_config_proxy_get_instance (); ol_assert (config != NULL); gboolean hide = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); ol_config_proxy_set_bool (config, ".visible", !hide); }
static void _unbind_config (struct _ConfigBinding *binding) { OlConfigProxy *config = ol_config_proxy_get_instance (); ol_assert (binding != NULL); g_signal_handler_disconnect (config, binding->change_handler); g_free (binding); }
static void ol_menu_init () { /* create accelerator group */ GtkAccelGroup *accel = ol_keybinding_get_accel_group (); OlConfigProxy *config = ol_config_proxy_get_instance (); popup_menu = ol_gui_get_widget ("pop-menu"); gtk_menu_set_accel_group (GTK_MENU (popup_menu), accel); menu.lock = ol_gui_get_widget ("menu-lock"); if (menu.lock) { gtk_menu_item_set_accel_path (GTK_MENU_ITEM (menu.lock), "<OSD Lyrics>/Lock"); } menu.hide = ol_gui_get_widget ("menu-hide"); if (menu.hide) { gtk_menu_item_set_accel_path (GTK_MENU_ITEM (menu.hide), "<OSD Lyrics>/Hide"); } menu.preference = ol_gui_get_widget ("menu-prefernce"); menu.about = ol_gui_get_widget ("menu-about"); menu.quit = ol_gui_get_widget ("menu-quit"); menu.play = ol_gui_get_widget ("menu-play"); menu.pause = ol_gui_get_widget ("menu-pause"); menu.stop = ol_gui_get_widget ("menu-stop"); menu.prev = ol_gui_get_widget ("menu-prev"); menu.next = ol_gui_get_widget ("menu-next"); menu.switch_osd = ol_gui_get_widget ("menu-switch-osd"); menu.switch_scroll = ol_gui_get_widget ("menu-switch-scroll"); gtk_widget_show_all (popup_menu); _locked_changed_cb (config, "OSD/locked", NULL); _visible_changed_cb (config, ".visible", NULL); _display_mode_osd_changed_cb (config, "General/display-mode-osd", NULL); _display_mode_scroll_changed_cb (config, "General/display-mode-scroll", NULL); g_signal_connect (config, "changed::OSD/locked", G_CALLBACK (_locked_changed_cb), NULL); g_signal_connect (config, "changed::.visible", G_CALLBACK (_visible_changed_cb), NULL); g_signal_connect (config, "changed::General/display-mode-osd", G_CALLBACK (_display_mode_osd_changed_cb), NULL); g_signal_connect (config, "changed::General/display-mode-scroll", G_CALLBACK (_display_mode_scroll_changed_cb), NULL); }
static void ol_osd_resize_handler (OlOsdWindow *osd, gpointer data) { ol_log_func (); if (_config_is_setting) return; OlConfigProxy *config = ol_config_proxy_get_instance (); int width = ol_osd_window_get_width (osd); ol_config_proxy_set_int (config, "OSD/width", width); }
void ol_menu_toggle_scroll (GtkWidget *widget, gpointer data) { OlConfigProxy *config = ol_config_proxy_get_instance (); ol_assert (config != NULL); gboolean scroll_enabled = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); ol_config_proxy_set_bool (config, "General/display-mode-scroll", scroll_enabled); }
static void ol_osd_moved_handler (OlOsdWindow *osd, gpointer data) { ol_log_func (); if (_config_is_setting) return; _config_is_setting = TRUE; OlConfigProxy *config = ol_config_proxy_get_instance (); int x, y; ol_osd_window_get_pos (osd, &x, &y); ol_config_proxy_set_int (config, "OSD/x", x); ol_config_proxy_set_int (config, "OSD/y", y); _config_is_setting = FALSE; }
static void _remember_cmd_if_needed (OlPlayerChooser *window, const char *cmd) { ol_assert (OL_IS_PLAYER_CHOOSER (window)); OlPlayerChooserPrivate *priv = OL_PLAYER_CHOOSER_GET_PRIVATE (window); if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->remember_button))) { OlConfigProxy *config = ol_config_proxy_get_instance (); ol_config_proxy_set_string (config, "General/startup-player", cmd); } }
static struct _ConfigBinding * _bind_config (const char *key, _ConfigSetFunc setter, OlOsdModule *osd) { ol_assert_ret (key != NULL, FALSE); OlConfigProxy *config = ol_config_proxy_get_instance (); struct _ConfigBinding *binding = g_new (struct _ConfigBinding, 1); gchar *signal = g_strdup_printf ("changed::%s", key); binding->osd = osd; binding->setter = setter; binding->change_handler = g_signal_connect (config, signal, (GCallback) _config_changed_cb, binding); g_free (signal); setter (config, key, osd); return binding; }
static void ol_osd_module_init_osd (OlOsdModule *osd) { osd->window = OL_OSD_WINDOW (ol_osd_window_new ()); if (osd->window == NULL) return; GtkIconTheme *icontheme = gtk_icon_theme_get_default (); GdkPixbuf *bg = gtk_icon_theme_load_icon (icontheme, OL_STOCK_OSD_BG, 32, 0, NULL); ol_osd_window_set_bg (osd->window, bg); g_object_unref (bg); osd->toolbar = OL_OSD_TOOLBAR (ol_osd_toolbar_new ()); if (osd->toolbar != NULL) { gtk_container_add (GTK_CONTAINER (osd->window), GTK_WIDGET (osd->toolbar)); gtk_widget_show_all (GTK_WIDGET (osd->toolbar)); g_object_ref (osd->toolbar); ol_osd_toolbar_set_player (osd->toolbar, osd->player); } osd->display = FALSE; OlConfigProxy *config = ol_config_proxy_get_instance (); ol_assert (config != NULL); _bind_all_config (osd); g_signal_connect (osd->window, "moved", G_CALLBACK (ol_osd_moved_handler), NULL); g_signal_connect (osd->window, "resize", G_CALLBACK (ol_osd_resize_handler), NULL); g_signal_connect (osd->window, "button-release-event", G_CALLBACK (ol_osd_button_release), NULL); g_signal_connect (osd->window, "scroll-event", G_CALLBACK (ol_osd_scroll), NULL); }
static gboolean _window_configure_cb (GtkWidget *widget, GdkEventConfigure *event, gpointer user_data) { ol_assert_ret (GTK_IS_WINDOW (widget), FALSE); OlScrollModule *module = (OlScrollModule*) user_data; if (module == NULL) return FALSE; if (_config_is_setting) return FALSE; _config_is_setting = TRUE; gint width, height; OlConfigProxy *config = ol_config_proxy_get_instance (); gtk_window_get_size (GTK_WINDOW (widget), &width, &height); ol_config_proxy_set_int (config, "ScrollMode/width", width); ol_config_proxy_set_int (config, "ScrollMode/height", height); _config_is_setting = FALSE; return FALSE; }