亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? settings-file.cpp

?? celestia源代碼
?? CPP
字號:
/* *  Celestia GTK+ Front-End *  Copyright (C) 2005 Pat Suwalski <pat@suwalski.net> * *  This program is free software; you can redistribute it and/or modify *  it under the terms of the GNU General Public License as published by *  the Free Software Foundation; either version 2 of the License, or *  (at your option) any later version. * *  $Id: settings-file.cpp,v 1.2 2005/12/06 04:15:07 suwalski Exp $ */#include <gtk/gtk.h>#include <celengine/body.h>#include <celengine/galaxy.h>#include <celengine/render.h>#include "settings-file.h"#include "common.h"/* Definitions: Helpers */static void getFlag(GKeyFile* file, int *flags, int setting, const gchar* section, const gchar* key, int* errors);/* ENTRY: Initializes and reads into memory the preferences */void initSettingsFile(AppData* app){	GError *error = NULL;	app->settingsFile = g_key_file_new();		char* fn = g_build_filename(g_get_home_dir(), CELESTIARC, NULL);		g_key_file_load_from_file(app->settingsFile, fn, G_KEY_FILE_NONE, &error);	/* Should check G_KEY_FILE_ERROR_NOT_FOUND, but bug in glib returns wrong	 * error code. */	if (error != NULL && g_file_test(fn, G_FILE_TEST_EXISTS))	{		g_print("Error reading '%s': %s.\n", fn, error->message);		exit(1);	}		g_free(fn);}/* ENTRY: Applies preferences needed before initializing the core */void applySettingsFilePre(AppData* app, GKeyFile* file){	int sizeX, sizeY, positionX, positionY;	GError* e;	/* Numbers require special treatment because if they are not found they	 * are not set to NULL like strings. So, if that is the case, we set them	 * to values that will cause setSane*() to set defaults. */	e= NULL;	sizeX = g_key_file_get_integer(file, "Window", "width", &e);	if (e != NULL) sizeX = -1;	e= NULL;	sizeY = g_key_file_get_integer(file, "Window", "height", &e);	if (e != NULL) sizeY = -1;	e= NULL;	positionX = g_key_file_get_integer(file, "Window", "x", &e);	if (e != NULL) positionX = -1;	e= NULL;	positionY = g_key_file_get_integer(file, "Window", "y", &e);	if (e != NULL) positionY = -1;	/* These next two cannot be checked for sanity, default set here */	e= NULL;	app->fullScreen = g_key_file_get_boolean(file, "Window", "fullScreen", &e);	if (e != NULL) app->fullScreen = FALSE;		/* Nothing is set here. The prefs structure is used to set things at the	 * corrent times. */	setSaneWinSize(app, sizeX, sizeY);	setSaneWinPosition(app, positionX, positionY);}/* ENTRY: Applies preferences after the core is initialized */void applySettingsFileMain(AppData* app, GKeyFile* file){	GError* e;	float ambientLight, visualMagnitude, galaxyLightGain;	int errors, verbosity, starStyle, rf, om, lm;			/* See comment in applySettingsFilePrefs() */	e= NULL;	ambientLight = (float)g_key_file_get_integer(file, "Main", "ambientLight", &e) / 1000.0;	if (e != NULL) ambientLight = -1.0;		e = NULL;	visualMagnitude = (float)g_key_file_get_integer(file, "Main", "visualMagnitude", &e) / 1000.0;	if (e != NULL) visualMagnitude = -1.0;	e = NULL;	galaxyLightGain = (float)g_key_file_get_integer(file, "Main", "galaxyLightGain", &e) / 1000.0;	if (e != NULL) galaxyLightGain = -1.0;	e = NULL;	verbosity = g_key_file_get_integer(file, "Main", "verbosity", &e);	if (e != NULL) verbosity = -1;		e = NULL;	starStyle = g_key_file_get_integer(file, "Main", "starStyle", &e);	if (e != NULL) starStyle = -1;			e= NULL;	app->showLocalTime = g_key_file_get_boolean(file, "Main", "localTime", &e);	if (e != NULL) app->showLocalTime = FALSE;		/* All settings that need sanity checks get them */	setSaneAmbientLight(app, ambientLight);	setSaneVisualMagnitude(app, visualMagnitude);	setSaneGalaxyLightGain(galaxyLightGain);	setSaneVerbosity(app, verbosity);	setSaneStarStyle(app, (Renderer::StarStyle)starStyle);	setSaneAltSurface(app, g_key_file_get_string(file, "Main", "altSurfaceName", NULL));		/* Render Flags */	errors = 0;	rf = Renderer::ShowNothing;	getFlag(file, &rf, Renderer::ShowStars, "RenderFlags", "stars", &errors);	getFlag(file, &rf, Renderer::ShowPlanets, "RenderFlags", "planets", &errors);	getFlag(file, &rf, Renderer::ShowGalaxies, "RenderFlags", "galaxies", &errors);	getFlag(file, &rf, Renderer::ShowDiagrams, "RenderFlags", "diagrams", &errors);	getFlag(file, &rf, Renderer::ShowCloudMaps, "RenderFlags", "cloudMaps", &errors);	getFlag(file, &rf, Renderer::ShowOrbits, "RenderFlags", "orbits", &errors);	getFlag(file, &rf, Renderer::ShowCelestialSphere, "RenderFlags", "celestialSphere", &errors);	getFlag(file, &rf, Renderer::ShowNightMaps, "RenderFlags", "nightMaps", &errors);	getFlag(file, &rf, Renderer::ShowAtmospheres, "RenderFlags", "atmospheres", &errors);	getFlag(file, &rf, Renderer::ShowSmoothLines, "RenderFlags", "smoothLines", &errors);	getFlag(file, &rf, Renderer::ShowEclipseShadows, "RenderFlags", "eclipseShadows", &errors);	getFlag(file, &rf, Renderer::ShowRingShadows, "RenderFlags", "ringShadows", &errors);	getFlag(file, &rf, Renderer::ShowBoundaries, "RenderFlags", "boundaries", &errors);	getFlag(file, &rf, Renderer::ShowAutoMag, "RenderFlags", "autoMag", &errors);	getFlag(file, &rf, Renderer::ShowCometTails, "RenderFlags", "cometTails", &errors);	getFlag(file, &rf, Renderer::ShowMarkers, "RenderFlags", "markers", &errors);	getFlag(file, &rf, Renderer::ShowPartialTrajectories, "RenderFlags", "partialTrajectories", &errors);	getFlag(file, &rf, Renderer::ShowNebulae, "RenderFlags", "nebulae", &errors);	getFlag(file, &rf, Renderer::ShowOpenClusters, "RenderFlags", "openClusters", &errors);		/* If any flag is missing, use defaults for all. */	if (errors > 0)		setDefaultRenderFlags(app);	else		app->renderer->setRenderFlags(rf);		/* Orbit Mask */	errors = 0;	om = 0;	getFlag(file, &om, Body::Planet, "OrbitMask", "planet", &errors);	getFlag(file, &om, Body::Moon, "OrbitMask", "moon", &errors);	getFlag(file, &om, Body::Asteroid, "OrbitMask", "asteroid", &errors);	getFlag(file, &om, Body::Comet, "OrbitMask", "comet", &errors);	getFlag(file, &om, Body::Spacecraft, "OrbitMask", "spacecraft", &errors);	getFlag(file, &om, Body::Invisible, "OrbitMask", "invisible", &errors);	getFlag(file, &om, Body::Unknown, "OrbitMask", "unknown", &errors);		/* If any orbit is missing, use core defaults for all (do nothing). */	if (errors == 0)		app->renderer->setOrbitMask(om);	/* Label Mode */	errors = 0;	lm = Renderer::NoLabels;		getFlag(file, &lm, Renderer::StarLabels, "LabelMode", "star", &errors);	getFlag(file, &lm, Renderer::PlanetLabels, "LabelMode", "planet", &errors);	getFlag(file, &lm, Renderer::MoonLabels, "LabelMode", "moon", &errors);	getFlag(file, &lm, Renderer::ConstellationLabels, "LabelMode", "constellation", &errors);	getFlag(file, &lm, Renderer::GalaxyLabels, "LabelMode", "galaxy", &errors);	getFlag(file, &lm, Renderer::AsteroidLabels, "LabelMode", "asteroid", &errors);	getFlag(file, &lm, Renderer::SpacecraftLabels, "LabelMode", "spacecraft", &errors);	getFlag(file, &lm, Renderer::LocationLabels, "LabelMode", "location", &errors);	getFlag(file, &lm, Renderer::CometLabels, "LabelMode", "comet", &errors);	getFlag(file, &lm, Renderer::NebulaLabels, "LabelMode", "nebula", &errors);	getFlag(file, &lm, Renderer::OpenClusterLabels, "LabelMode", "opencluster", &errors);	getFlag(file, &lm, Renderer::I18nConstellationLabels, "LabelMode", "i18n", &errors);		/* If any label is missing, use core defaults for all (do nothing). */	if (errors == 0)		app->renderer->setLabelMode(lm);}/* ENTRY: Saves settings to file */void saveSettingsFile(AppData* app){	int rf, om, lm;	GKeyFile* file = app->settingsFile;	char* fn = g_build_filename(g_get_home_dir(), CELESTIARC, NULL);	FILE* outfile;		g_key_file_set_integer(file, "Main", "ambientLight", (int)(1000 * app->renderer->getAmbientLightLevel()));	g_key_file_set_comment(file, "Main", "ambientLight", "ambientLight = (int)(1000 * AmbientLightLevel)", NULL);	g_key_file_set_integer(file, "Main", "visualMagnitude", (int)(1000 * app->simulation->getFaintestVisible()));	g_key_file_set_comment(file, "Main", "visualMagnitude", "visualMagnitude = (int)(1000 * FaintestVisible)", NULL);	g_key_file_set_integer(file, "Main", "galaxyLightGain", (int)(1000 * Galaxy::getLightGain()));	g_key_file_set_comment(file, "Main", "galaxyLightGain", "galaxyLightGain = (int)(1000 * GalaxyLightGain)", NULL);	g_key_file_set_boolean(file, "Main", "localTime", app->showLocalTime);	g_key_file_set_integer(file, "Main", "verbosity", app->core->getHudDetail());	g_key_file_set_comment(file, "Main", "verbosity", "Level of Detail in the heads-up-display. 0=None, 1=Terse, 2=Verbose", NULL);	g_key_file_set_integer(file, "Main", "starStyle", app->renderer->getStarStyle());	g_key_file_set_comment(file, "Main", "starStyle", "Style of star rendering. 0=Fuzzy Points, 1=Points, 2=Scaled Discs", NULL);	g_key_file_set_string(file, "Main", "altSurfaceName", app->simulation->getActiveObserver()->getDisplayedSurface().c_str());		g_key_file_set_integer(file, "Window", "width", getWinWidth(app));	g_key_file_set_integer(file, "Window", "height", getWinHeight(app));	g_key_file_set_integer(file, "Window", "x", getWinX(app));	g_key_file_set_integer(file, "Window", "y", getWinY(app));	g_key_file_set_boolean(file, "Window", "fullScreen", app->fullScreen);		rf = app->renderer->getRenderFlags();	g_key_file_set_boolean(file, "RenderFlags", "stars", rf & Renderer::ShowStars);	g_key_file_set_boolean(file, "RenderFlags", "planets", rf & Renderer::ShowPlanets);	g_key_file_set_boolean(file, "RenderFlags", "galaxies", rf & Renderer::ShowGalaxies);	g_key_file_set_boolean(file, "RenderFlags", "diagrams", rf & Renderer::ShowDiagrams);	g_key_file_set_boolean(file, "RenderFlags", "cloudMaps", rf & Renderer::ShowCloudMaps);	g_key_file_set_boolean(file, "RenderFlags", "orbits", rf & Renderer::ShowOrbits);	g_key_file_set_boolean(file, "RenderFlags", "celestialSphere", rf & Renderer::ShowCelestialSphere);	g_key_file_set_boolean(file, "RenderFlags", "nightMaps", rf & Renderer::ShowNightMaps);	g_key_file_set_boolean(file, "RenderFlags", "atmospheres", rf & Renderer::ShowAtmospheres);	g_key_file_set_boolean(file, "RenderFlags", "smoothLines", rf & Renderer::ShowSmoothLines);	g_key_file_set_boolean(file, "RenderFlags", "eclipseShadows", rf & Renderer::ShowEclipseShadows);	g_key_file_set_boolean(file, "RenderFlags", "ringShadows", rf & Renderer::ShowRingShadows);	g_key_file_set_boolean(file, "RenderFlags", "boundaries", rf & Renderer::ShowBoundaries);	g_key_file_set_boolean(file, "RenderFlags", "autoMag", rf & Renderer::ShowAutoMag);	g_key_file_set_boolean(file, "RenderFlags", "cometTails", rf & Renderer::ShowCometTails);	g_key_file_set_boolean(file, "RenderFlags", "markers", rf & Renderer::ShowMarkers);	g_key_file_set_boolean(file, "RenderFlags", "partialTrajectories", rf & Renderer::ShowPartialTrajectories);	g_key_file_set_boolean(file, "RenderFlags", "nebulae", rf & Renderer::ShowNebulae);	g_key_file_set_boolean(file, "RenderFlags", "openClusters", rf & Renderer::ShowOpenClusters);		om = app->renderer->getOrbitMask();	g_key_file_set_boolean(file, "OrbitMask", "planet", om & Body::Planet);	g_key_file_set_boolean(file, "OrbitMask", "moon", om & Body::Moon);	g_key_file_set_boolean(file, "OrbitMask", "asteroid", om & Body::Asteroid);	g_key_file_set_boolean(file, "OrbitMask", "comet", om & Body::Comet);	g_key_file_set_boolean(file, "OrbitMask", "spacecraft", om & Body::Spacecraft);	g_key_file_set_boolean(file, "OrbitMask", "invisible", om & Body::Invisible);	g_key_file_set_boolean(file, "OrbitMask", "unknown", om & Body::Unknown);		lm = app->renderer->getLabelMode();	g_key_file_set_boolean(file, "LabelMode", "star", lm & Renderer::StarLabels);	g_key_file_set_boolean(file, "LabelMode", "planet", lm & Renderer::PlanetLabels);	g_key_file_set_boolean(file, "LabelMode", "moon", lm & Renderer::MoonLabels);	g_key_file_set_boolean(file, "LabelMode", "constellation", lm & Renderer::ConstellationLabels);	g_key_file_set_boolean(file, "LabelMode", "galaxy", lm & Renderer::GalaxyLabels);	g_key_file_set_boolean(file, "LabelMode", "asteroid", lm & Renderer::AsteroidLabels);	g_key_file_set_boolean(file, "LabelMode", "spacecraft", lm & Renderer::SpacecraftLabels);	g_key_file_set_boolean(file, "LabelMode", "location", lm & Renderer::LocationLabels);	g_key_file_set_boolean(file, "LabelMode", "comet", lm & Renderer::CometLabels);	g_key_file_set_boolean(file, "LabelMode", "nebula", lm & Renderer::NebulaLabels);	g_key_file_set_boolean(file, "LabelMode", "opencluster", lm & Renderer::OpenClusterLabels);	g_key_file_set_boolean(file, "LabelMode", "i18n", lm & Renderer::I18nConstellationLabels);		g_key_file_set_comment(file, "RenderFlags", NULL, "All Render Flag values must be true or false", NULL);	g_key_file_set_comment(file, "OrbitMask", NULL, "All Orbit Mask values must be true or false", NULL);	g_key_file_set_comment(file, "LabelMode", NULL, "All Label Mode values must be true or false", NULL);		/* Write the settings to a file */	outfile = fopen(fn, "w");		if (outfile == NULL)		g_print("Error writing '%s'.\n", fn);		fputs(g_key_file_to_data(file, NULL, NULL), outfile);		g_free(fn);}/* HELPER: gets an or-group flag and handles error checking */static void getFlag(GKeyFile* file, int *flags, int setting, const gchar* section, const gchar* key, int* errors){	GError* e = NULL;		*flags |= setting * g_key_file_get_boolean(file, section, key, &e);		if (e != NULL)		*errors += 1;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩avvvv在线播放| 热久久免费视频| 国产午夜精品久久久久久久| 欧美一卡二卡三卡| 日韩欧美国产高清| 欧美电影免费观看高清完整版在| 91精品国产91久久久久久最新毛片 | 欧美色手机在线观看| 色网综合在线观看| 欧美中文字幕一区| 日韩西西人体444www| 欧美精品一区二区在线播放| wwww国产精品欧美| 中文字幕一区二区在线播放| 亚洲人成影院在线观看| 亚洲午夜私人影院| 免费观看在线色综合| 国产一区二区福利| 91在线国产福利| 欧美精品v日韩精品v韩国精品v| 日韩欧美资源站| 成人免费在线视频| 香蕉乱码成人久久天堂爱免费| 美国毛片一区二区三区| 丁香六月久久综合狠狠色| 91免费版pro下载短视频| 这里只有精品电影| 国产精品麻豆99久久久久久| 午夜伦欧美伦电影理论片| 精品一区二区久久久| 99久久久久久99| 日韩精品自拍偷拍| 亚洲色图都市小说| 免费在线观看精品| 一本色道久久综合亚洲精品按摩| 91精品一区二区三区在线观看| 久久一区二区视频| 亚洲永久精品国产| 国产.欧美.日韩| 欧美狂野另类xxxxoooo| 国产精品久久久久久久第一福利| 日韩精品久久久久久| 成人ar影院免费观看视频| 91精品国产综合久久婷婷香蕉 | 91免费小视频| 4438x成人网最大色成网站| 久久久亚洲精品石原莉奈| 午夜久久福利影院| 国产91丝袜在线观看| 欧美肥妇free| 亚洲综合色区另类av| 成人av网址在线观看| 精品成人私密视频| 亚洲日本在线视频观看| 高清不卡在线观看av| 久久综合久色欧美综合狠狠| 亚洲国产精品自拍| 91老司机福利 在线| 国产亚洲女人久久久久毛片| 九九**精品视频免费播放| 色88888久久久久久影院按摩| 国产精品嫩草影院av蜜臀| 精品亚洲免费视频| 91精品国产91久久综合桃花| 亚洲午夜久久久久| 欧美午夜寂寞影院| 一区二区三区电影在线播| 国产suv精品一区二区三区| 精品国产免费一区二区三区四区| 亚洲成人激情综合网| 精品视频在线免费看| 亚洲成人自拍偷拍| 67194成人在线观看| 天天综合天天做天天综合| 欧美日韩国产区一| 婷婷开心激情综合| 欧美高清精品3d| 美女爽到高潮91| www国产精品av| 成人一区在线看| 1000部国产精品成人观看| 99久久婷婷国产综合精品| 亚洲精品成a人| 欧美日韩成人高清| 麻豆91免费观看| 久久久久久综合| 成人动漫一区二区三区| 中文字幕永久在线不卡| 欧美日韩综合色| 久久激情五月婷婷| 国产精品入口麻豆九色| 色一情一伦一子一伦一区| 图片区小说区区亚洲影院| 欧美精品久久天天躁| 国产专区欧美精品| 日本一区二区三区视频视频| 91色porny| 免费三级欧美电影| 久久久天堂av| 欧美视频在线不卡| 韩国欧美国产1区| 亚洲毛片av在线| 欧美r级在线观看| 91在线云播放| 日本一区中文字幕| 国产精品国产三级国产三级人妇| 欧美亚洲国产一区二区三区va | 国产欧美日韩在线| 欧美综合一区二区| 激情五月婷婷综合网| 亚洲日本欧美天堂| 精品乱码亚洲一区二区不卡| aaa欧美日韩| 久久福利资源站| 亚洲自拍偷拍欧美| 久久精品亚洲麻豆av一区二区| 色域天天综合网| 国产不卡视频一区二区三区| 一区二区三区日韩欧美精品| 久久久一区二区三区| 欧美日韩在线免费视频| 国产成人av一区二区三区在线| 视频一区在线播放| 亚洲精品国产成人久久av盗摄 | 日韩欧美在线影院| 日本久久电影网| 高清不卡在线观看av| 久久国产精品一区二区| 婷婷综合五月天| 一区二区三区在线看| 国产精品青草综合久久久久99| 日韩欧美一级片| 91精品国产乱| 欧美理论在线播放| 欧美中文字幕一区二区三区 | 欧美一区二区三区日韩视频| 色哟哟一区二区在线观看| 盗摄精品av一区二区三区| 久久国产视频网| 国产精品久久久久久久久免费樱桃 | 亚洲综合免费观看高清在线观看| 成人午夜精品在线| 怡红院av一区二区三区| 日本大胆欧美人术艺术动态 | 国产aⅴ精品一区二区三区色成熟| 不卡一区二区中文字幕| 欧美日韩一区视频| 2024国产精品| 玉米视频成人免费看| 久久国产精品一区二区| 99免费精品在线观看| 欧美一级一区二区| 中文字幕制服丝袜一区二区三区 | 成人av在线观| 5858s免费视频成人| 国产精品久久久久久久久久免费看 | 欧美r级在线观看| 亚洲美女在线一区| 国产精品综合一区二区三区| 色视频成人在线观看免| 久久奇米777| 图片区日韩欧美亚洲| 91在线观看一区二区| 精品88久久久久88久久久| 亚洲自拍偷拍图区| 成人免费黄色在线| 91精品国产综合久久香蕉的特点| 国产精品你懂的在线| 国产美女在线观看一区| 欧美丰满一区二区免费视频 | 麻豆视频一区二区| 欧美日韩1234| 亚洲激情自拍视频| 国产91精品入口| 久久人人97超碰com| 日韩av不卡在线观看| 欧美性受极品xxxx喷水| 中文字幕一区二区三区四区| 国产在线精品不卡| 欧美一区二区三区喷汁尤物| 亚洲高清在线精品| 色天天综合色天天久久| 1024成人网色www| 成人激情免费视频| 中文在线免费一区三区高中清不卡| 全国精品久久少妇| 日韩一级片网站| 视频一区免费在线观看| 欧美老肥妇做.爰bbww视频| 亚洲成人精品一区| 欧美日韩国产一区二区三区地区| 亚洲男女一区二区三区| 91片黄在线观看| 亚洲欧美日韩国产一区二区三区| 成人免费高清在线观看| 国产女主播视频一区二区| 国产美女精品在线| 国产欧美一区二区三区在线老狼| 紧缚奴在线一区二区三区| 精品日韩一区二区|