GtkWidget *ly_sss_session_new(gchar *name) { if(!name) return NULL; LyPliPlugin *plugin=NULL; plugin = ly_pli_get(name); if(!plugin) return NULL; gboolean daemon=TRUE; GtkWidget *widget=NULL; g_object_get(G_OBJECT(session), "daemon", &daemon, "widget", &widget, NULL); if(daemon) return NULL; if(!widget) { widget=ly_pli_plugin_create(session); if(widget==NULL) return NULL; } GtkWidget *session; sesseion = g_object_new(LY_SSS_SESSION_TYPE, NULL); if(!session) return NULL; LySssSessionPrivate *priv=LY_SSS_SESSION_GET_PRIVATE(LY_SSS_SESSION(session)); priv->nav=gtk_grid_new(); priv->content=widget; return session; }
GtkWidget *ly_3lrc_config() { GtkWidget *page; GtkWidget *item; GtkWidget *vbox; GtkWidget *hbox; GtkWidget *check; GtkWidget *button; GtkWidget *entry; GtkWidget *label; GtkWidget *table; char str[1024]=""; char name[1024]=""; LyPliPlugin *pl=ly_pli_get("lrc"); g_snprintf(name, sizeof(name), "PLUGIN:%s", pl->name); page=ly_cfg_page_new(name, pl->alias, pl->logo); item=ly_cfg_item_new(_("Desktop Lyrics")); ly_cfg_page_append(LY_CFG_PAGE(page), item); vbox=gtk_vbox_new(FALSE, 0); ly_cfg_item_append(LY_CFG_ITEM(item), vbox); int lrc_desktop=0; int lrc_desktop_fixed=0; ly_reg_get("3lrc_desktop_state", "%d:%d", &lrc_desktop, &lrc_desktop_fixed); check=gtk_check_button_new_with_label(_("Show desktop lyrics")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check),(gboolean)lrc_desktop); g_signal_connect(G_OBJECT(check), "toggled", G_CALLBACK(ly_3lrc_config_on_desktop_changed_cb), NULL); gtk_box_pack_start(GTK_BOX(vbox),check,FALSE,FALSE,0); check=gtk_check_button_new_with_label(_("Set desktop lyrics FIXED")); g_signal_connect(G_OBJECT(check), "toggled", G_CALLBACK(ly_3lrc_config_on_fixed_changed_cb), NULL); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check),(gboolean)lrc_desktop_fixed); gtk_box_pack_start(GTK_BOX(vbox),check,FALSE,FALSE,0); item=ly_cfg_item_new(_("Lyrics File Storage")); ly_cfg_page_append(LY_CFG_PAGE(page), item); char location[1024]="./"; ly_reg_get("lrc_dir", "%s", location); vbox=gtk_vbox_new(FALSE, 0); ly_cfg_item_append(LY_CFG_ITEM(item), vbox); hbox=gtk_hbox_new(FALSE,0); if(g_str_equal(location,"")||g_str_equal(location,"./")) gtk_widget_set_sensitive(hbox, FALSE); check=gtk_check_button_new_with_label(_("The same directory of music file")); if(g_str_equal(location,"")||g_str_equal(location,"./")) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check), TRUE); g_signal_connect(G_OBJECT(check), "toggled", G_CALLBACK(ly_3lrc_config_on_location_changed_cb), hbox); gtk_box_pack_start(GTK_BOX(vbox),check,FALSE,FALSE,0); gtk_box_pack_start(GTK_BOX(vbox),hbox,FALSE,FALSE,0); label=gtk_label_new(_("Custom LRC location")); gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,FALSE,0); entry=gtk_entry_new(); gtk_entry_set_text(GTK_ENTRY(entry), location); check=gtk_check_button_new_with_label(_("The same directory of music file")); gtk_widget_set_sensitive(entry,FALSE); gtk_box_pack_start(GTK_BOX(hbox),entry,TRUE,TRUE,0); button=gtk_button_new_from_stock(GTK_STOCK_OPEN); g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(ly_3lrc_config_on_location_set_cb), entry); gtk_box_pack_start(GTK_BOX(hbox),button,FALSE,FALSE,0); item=ly_cfg_item_new(_("Font")); ly_cfg_page_append(LY_CFG_PAGE(page), item); table=gtk_table_new(3, 2, FALSE); ly_cfg_item_append(LY_CFG_ITEM(item), table); label=gtk_label_new(_("Title Font")); gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1); ly_reg_get("3lrc_title_font", "%1024[^\n]", str); button=gtk_font_button_new_with_font(str); g_signal_connect(G_OBJECT(button), "font-set", G_CALLBACK(ly_3lrc_config_on_title_font_set_cb), NULL); gtk_table_attach_defaults(GTK_TABLE(table), button, 1, 2, 0, 1); label=gtk_label_new(_("Normal Font")); gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1, 2); ly_reg_get("3lrc_normal_font", "%1024[^\n]", str); button=gtk_font_button_new_with_font(str); g_signal_connect(G_OBJECT(button), "font-set", G_CALLBACK(ly_3lrc_config_on_normal_font_set_cb), NULL); gtk_table_attach_defaults(GTK_TABLE(table), button, 1, 2, 1, 2); label=gtk_label_new(_("Desktop Font")); gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 2, 3); ly_reg_get("3lrc_desktop_font", "%1024[^\n]", str); button=gtk_font_button_new_with_font(str); g_signal_connect(G_OBJECT(button), "font-set", G_CALLBACK(ly_3lrc_config_on_desktop_font_set_cb), NULL); gtk_table_attach_defaults(GTK_TABLE(table), button, 1, 2, 2, 3); return page; }