static void save_rc_clicked(GtkWidget *widget, gpointer user_data) { gchar *filename = NULL; CtkConfig *ctk_config = CTK_CONFIG(user_data); CtkWindow *ctk_window = CTK_WINDOW(ctk_get_parent_window(GTK_WIDGET(ctk_config))); filename = ctk_get_filename_from_dialog("Please select a file to save to.", GTK_WINDOW(ctk_window), ctk_config->rc_filename ? ctk_config->rc_filename : DEFAULT_RC_FILE); if (!filename) { return; } g_free(ctk_config->rc_filename); ctk_config->rc_filename = filename; /* write the configuration file */ add_special_config_file_attributes(ctk_window); nv_write_config_file(ctk_config->rc_filename, ctk_config->pCtrlSystem, ctk_window->attribute_list, ctk_config->conf); }
void ctk_main(ParsedAttribute *p, ConfigProperties *conf, CtrlHandles *h, const char *page) { int i, has_nv_control = FALSE; GList *list = NULL; GtkWidget *window; list = g_list_append (list, gdk_pixbuf_from_pixdata(&nvidia_icon_pixdata, TRUE, NULL)); gtk_window_set_default_icon_list(list); window = ctk_window_new(p, conf, h); for (i = 0; i < h->targets[X_SCREEN_TARGET].n; i++) { if (h->targets[X_SCREEN_TARGET].t[i].h) { has_nv_control = TRUE; break; } } if (!has_nv_control) { GtkWidget *dlg; dlg = gtk_message_dialog_new (NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_WARNING, GTK_BUTTONS_OK, "You do not appear to be using the NVIDIA " "X driver. Please edit your X configuration " "file (just run `nvidia-xconfig` " "as root), and restart the X server."); gtk_dialog_run(GTK_DIALOG(dlg)); gtk_widget_destroy (dlg); } ctk_window_set_active_page(CTK_WINDOW(window), page); gtk_main(); }