void SludgeApplication::setFileChanged()
{
	if (!fileChanged) {
		if (currentShortname[0] == 0) {
			sprintf (currentShortname, "%s", getUntitledFilename());
		}
		gtk_window_set_title (GTK_WINDOW(theWindow), joinTwoStrings("*", currentShortname));
		fileChanged = TRUE;
	}
}
SludgeZBufferMaker::SludgeZBufferMaker()
 : SludgeGLApplication(joinTwoStrings(DATADIR, "ZBufferMaker.glade"), "zIcon", "zbuffermaker")
{
	if (!initSuccess) return;

	theSliderAdjustment = GTK_ADJUSTMENT (gtk_builder_get_object(theXml, "slider_adjustment"));
	theYAdjustment = GTK_ADJUSTMENT (gtk_builder_get_object(theXml, "y_adjustment"));
	theNumBuffersLabel = GTK_LABEL (gtk_builder_get_object(theXml, "num_buffers_label"));
	saveItem = GTK_WIDGET (gtk_builder_get_object(theXml, "save"));
	saveAsItem = GTK_WIDGET (gtk_builder_get_object(theXml, "save_as"));

    init(TRUE);
	setupButtons();
}
SludgeApplication::SludgeApplication(const char * gladeFileName, const char * iconName, const char * configFile)
{
	configfile = configFile;
	GError *err = NULL;

	initSuccess = TRUE;

	char buf[1000];
	GdkPixbuf *pixbuf16, *pixbuf32, *pixbuf128, *pixbuf256;
	GList *list = NULL;

	sprintf(buf, "%s%s_16x16x32.png", DATADIR, iconName);
	pixbuf16 = gdk_pixbuf_new_from_file (buf, &err);

	if (err == NULL) {
		sprintf(buf, "%s%s_32x32x32.png", DATADIR, iconName);
		pixbuf32 = gdk_pixbuf_new_from_file (buf, &err);
	}
	if (err == NULL) {
		sprintf(buf, "%s%s_128x128x32.png", DATADIR, iconName);
		pixbuf128 = gdk_pixbuf_new_from_file (buf, &err);
	}
	if (err == NULL) {
		sprintf(buf, "%s%s_256x256x32.png", DATADIR, iconName);
		pixbuf256 = gdk_pixbuf_new_from_file (buf, &err);
	}

	if (err != NULL)
	{
		fprintf (stderr, "Unable to open icon file: %s\n", err->message);
		g_error_free (err);
	} else {
		list = g_list_append (list, pixbuf16);
		list = g_list_append (list, pixbuf32);
		list = g_list_append (list, pixbuf128);
		list = g_list_append (list, pixbuf256);
		gtk_window_set_default_icon_list(list);
	}

	/*
	 * Load the GTK interface.
	 */
	theXml = gtk_builder_new ();

	if (!gtk_builder_add_from_file (theXml, gladeFileName, NULL))
	{
		g_critical ("Failed to load the GTK file.\n");
		errorBox("Error!", joinTwoStrings("Failed to load resource file:\n", gladeFileName));
		initSuccess = FALSE;
		return;
	}

	/*
	 * Get the top-level window reference from loaded Glade file.
	 */
	theWindow = GTK_WIDGET (gtk_builder_get_object (theXml, "window1"));

	if (theWindow == NULL)
	{
		g_critical ("Failed to get the window from the builder.\n");
		initSuccess = FALSE;
		return;
	}

	// Set unassigned widgets to get handled automatically by the window manager.
	gtk_container_set_reallocate_redraws (GTK_CONTAINER (theWindow), TRUE);

	char folderFile[300];
	sprintf(folderFile, "%s/sludge-devkit/%s", g_get_user_config_dir(), configfile);
	FILE * fp = fopen (folderFile, "r");
	if (fp) {
		char readChar = ' ';
		for (int i = 0; i < 300; i++) {
			readChar = fgetc(fp);
			if (readChar != '\n') {
				currentFolder[i] = readChar;
			} else {
				currentFolder[i] = 0;
				break;
			}
		}
		fclose (fp);
	} else {
		sprintf (currentFolder, "%s", g_get_home_dir());
	}
	fileChanged = FALSE;

	currentFilename[0] = 0;
	currentShortname[0] = 0;
}
SludgeProjectManager::SludgeProjectManager()
 : SludgeApplication(joinTwoStrings(DATADIR, "ProjectManager.glade"), "ProjIcon", "projectmanager")
{
	if (!initSuccess) return;

	numResources = 0;
	resourceList[0] = NULL;
	fileList[0] = NULL;

	filesListStore = NULL;
	resourcesListStore = NULL;
	errorsListStore = NULL;
	filesSelection = NULL;

	notebook = GTK_NOTEBOOK (gtk_builder_get_object(theXml, "notebook"));
	saveItem = GTK_WIDGET (gtk_builder_get_object(theXml, "save"));
	saveAsItem = GTK_WIDGET (gtk_builder_get_object(theXml, "save_as"));
	projectPropertiesItem = GTK_WIDGET (gtk_builder_get_object(theXml, "project_properties"));
	projectCompileItem = GTK_WIDGET (gtk_builder_get_object(theXml, "project_compile"));
	projectRunGameItem = GTK_WIDGET (gtk_builder_get_object(theXml, "project_run_game"));
	addFileButton = GTK_WIDGET (gtk_builder_get_object(theXml, "add_file"));
	removeFileButton = GTK_WIDGET (gtk_builder_get_object(theXml, "remove_file"));

	compilerDialog = GTK_DIALOG (gtk_builder_get_object(theXml, "compiler_dialog"));
	compProgress1 = GTK_PROGRESS_BAR (gtk_builder_get_object(theXml, "progressbar1"));
	compProgress2 = GTK_PROGRESS_BAR (gtk_builder_get_object(theXml, "progressbar2"));
	compTask = GTK_LABEL (gtk_builder_get_object(theXml, "comp_task"));
	compFile = GTK_LABEL (gtk_builder_get_object(theXml, "comp_file"));
	compItem = GTK_LABEL (gtk_builder_get_object(theXml, "comp_item"));
	compFuncs = GTK_LABEL (gtk_builder_get_object(theXml, "comp_funcs"));
	compObjs = GTK_LABEL (gtk_builder_get_object(theXml, "comp_objs"));
	compGlobs = GTK_LABEL (gtk_builder_get_object(theXml, "comp_globs"));
	compStrings = GTK_LABEL (gtk_builder_get_object(theXml, "comp_strings"));
	compResources = GTK_LABEL (gtk_builder_get_object(theXml, "comp_resources"));
	runGameButton = GTK_WIDGET (gtk_builder_get_object(theXml, "comp_gamebutton"));
	closeCompilerButton = GTK_WIDGET (gtk_builder_get_object(theXml, "comp_okbutton"));

	projectSettingsDialog = GTK_DIALOG (gtk_builder_get_object(theXml, "project_settings_dialog"));
	prefName = GTK_ENTRY (gtk_builder_get_object(theXml, "pref_name"));
	prefQuit = GTK_ENTRY (gtk_builder_get_object(theXml, "pref_quit"));
	prefSave = GTK_ENTRY (gtk_builder_get_object(theXml, "pref_save"));
	prefLanguage = GTK_ENTRY (gtk_builder_get_object(theXml, "pref_language"));
	prefFilename = GTK_ENTRY (gtk_builder_get_object(theXml, "pref_filename"));
	prefIcon = GTK_ENTRY (gtk_builder_get_object(theXml, "pref_icon"));
	prefLogo = GTK_ENTRY (gtk_builder_get_object(theXml, "pref_logo"));
	prefWidth = GTK_SPIN_BUTTON (gtk_builder_get_object(theXml, "pref_width"));
	prefHeight = GTK_SPIN_BUTTON (gtk_builder_get_object(theXml, "pref_height"));
	prefSpeed = GTK_SPIN_BUTTON (gtk_builder_get_object(theXml, "pref_speed"));
	prefSilent = GTK_TOGGLE_BUTTON (gtk_builder_get_object(theXml, "pref_silent"));

	preferenceDialog = GTK_DIALOG (gtk_builder_get_object(theXml, "preferences_dialog"));
	prefKeepImages = GTK_TOGGLE_BUTTON (gtk_builder_get_object(theXml, "pref_keep_images"));
	prefWriteStrings = GTK_TOGGLE_BUTTON (gtk_builder_get_object(theXml, "pref_write_strings"));
	prefVerbose = GTK_TOGGLE_BUTTON (gtk_builder_get_object(theXml, "pref_verbose"));
	prefEditor = GTK_ENTRY (gtk_builder_get_object(theXml, "pref_editor"));
	prefImageViewer = GTK_ENTRY (gtk_builder_get_object(theXml, "pref_image_viewer"));
	prefAudioPlayer = GTK_ENTRY (gtk_builder_get_object(theXml, "pref_audio_player"));
	prefModPlayer = GTK_ENTRY (gtk_builder_get_object(theXml, "pref_mod_player"));

	compilerInfoQueue = NULL;

	if (!getcwd(workingDir, 998))
		fprintf(stderr, "Couldn't get current working directory.");

	readIniFile();

    init(TRUE);

	setupButtons();
}
Esempio n. 5
0
SludgeFloorMaker::SludgeFloorMaker()
 : SludgeGLApplication(joinTwoStrings(DATADIR, "FloorMaker.glade"), "floorIcon", "floormaker")
{
	if (!initSuccess) return;
	init(TRUE);
}