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

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

?? main.cpp

?? celestia源代碼
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
/* *  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: main.cpp,v 1.6 2006/01/01 23:43:51 suwalski Exp $ */#ifdef HAVE_CONFIG_H#include <config.h>#endif /* HAVE_CONFIG_H */#include <iostream>#include <fstream>#include <cstdlib>#include <cctype>#include <cstring>#include <time.h>#ifdef WIN32#include <direct.h>#else#include <unistd.h>#endif /* WIN32 */#include <gtk/gtk.h>#include <gtk/gtkgl.h>#include <celengine/astro.h>#include <celengine/celestia.h>#include <celengine/gl.h>#include <celengine/glext.h>#include <celengine/galaxy.h>#include <celengine/simulation.h>#include <celestia/celestiacore.h>#include <celutil/debug.h>/* Includes for the GNOME front-end */#ifdef GNOME#include <gnome.h>#include <libgnomeui/libgnomeui.h>#include <gconf/gconf-client.h>#endif /* GNOME *//* Includes for the GTK front-end */#include "common.h"#include "glwidget.h"#include "menu-context.h"#include "splash.h"#include "ui.h"/* Includes for the settings interface */#ifdef GNOME#include "settings-gconf.h"#else#include "settings-file.h"#endif /* GNOME */#ifndef DEBUG#define G_DISABLE_ASSERT#endif /* DEBUG */using namespace std;/* Function Definitions */static void createMainMenu(GtkWidget* window, AppData* app);static void initRealize(GtkWidget* widget, AppData* app);/* Command-Line Options */static gchar* configFile = NULL;static gchar* installDir = NULL;static gchar** extrasDir = NULL;static gboolean fullScreen = FALSE;static gboolean noSplash = FALSE;/* Command-Line Options specification */static GOptionEntry optionEntries[] ={	{ "conf", 'c', 0, G_OPTION_ARG_FILENAME, &configFile, "Alternate configuration file", "file" },	{ "dir", 'd', 0, G_OPTION_ARG_FILENAME, &installDir, "Alternate installation directory", "directory" },	{ "extrasdir", 'e', 0, G_OPTION_ARG_FILENAME_ARRAY, &extrasDir, "Additional \"extras\" directory", "directory" },	{ "fullscreen", 'f', 0, G_OPTION_ARG_NONE, &fullScreen, "Start full-screen", NULL },	{ "nosplash", 's', 0, G_OPTION_ARG_NONE, &noSplash, "Disable splash screen", NULL },	{ NULL },};/* Initializes GtkActions and creates main menu */static void createMainMenu(GtkWidget* window, AppData* app){	GtkUIManager *ui_manager;	GtkAccelGroup *accel_group;	GError *error;		app->agMain = gtk_action_group_new ("MenuActions");	app->agRender = gtk_action_group_new("RenderActions");	app->agLabel = gtk_action_group_new("LabelActions");	app->agOrbit = gtk_action_group_new("OrbitActions");	app->agVerbosity = gtk_action_group_new("VerbosityActions");	app->agStarStyle = gtk_action_group_new("StarStyleActions");	app->agAmbient = gtk_action_group_new("AmbientActions");		/* All actions have the AppData structure passed */	gtk_action_group_add_actions(app->agMain, actionsPlain, G_N_ELEMENTS(actionsPlain), app);	gtk_action_group_add_toggle_actions(app->agMain, actionsToggle, G_N_ELEMENTS(actionsToggle), app);	gtk_action_group_add_radio_actions(app->agVerbosity, actionsVerbosity, G_N_ELEMENTS(actionsVerbosity), 0, G_CALLBACK(actionVerbosity), app);	gtk_action_group_add_radio_actions(app->agStarStyle, actionsStarStyle, G_N_ELEMENTS(actionsStarStyle), 0, G_CALLBACK(actionStarStyle), app);	gtk_action_group_add_radio_actions(app->agAmbient, actionsAmbientLight, G_N_ELEMENTS(actionsAmbientLight), 0, G_CALLBACK(actionAmbientLight), app);	gtk_action_group_add_toggle_actions(app->agRender, actionsRenderFlags, G_N_ELEMENTS(actionsRenderFlags), app);	gtk_action_group_add_toggle_actions(app->agLabel, actionsLabelFlags, G_N_ELEMENTS(actionsLabelFlags), app);	gtk_action_group_add_toggle_actions(app->agOrbit, actionsOrbitFlags, G_N_ELEMENTS(actionsOrbitFlags), app);	ui_manager = gtk_ui_manager_new();	gtk_ui_manager_insert_action_group(ui_manager, app->agMain, 0);	gtk_ui_manager_insert_action_group(ui_manager, app->agRender, 0);	gtk_ui_manager_insert_action_group(ui_manager, app->agLabel, 0);	gtk_ui_manager_insert_action_group(ui_manager, app->agOrbit, 0);	gtk_ui_manager_insert_action_group(ui_manager, app->agStarStyle, 0);	gtk_ui_manager_insert_action_group(ui_manager, app->agAmbient, 0);	gtk_ui_manager_insert_action_group(ui_manager, app->agVerbosity, 0);	accel_group = gtk_ui_manager_get_accel_group(ui_manager);	gtk_window_add_accel_group(GTK_WINDOW (window), accel_group);	error = NULL;	if (!gtk_ui_manager_add_ui_from_file(ui_manager, "celestiaui.xml", &error))	{		g_message("Building menus failed: %s", error->message);		g_error_free(error);		exit(EXIT_FAILURE);	}	app->mainMenu = gtk_ui_manager_get_widget(ui_manager, "/MainMenu");}/* Our own watcher. Celestiacore will call notifyChange() to tell us * we need to recheck the check menu items and option buttons. */class GtkWatcher : public CelestiaWatcher{	public:	    GtkWatcher(CelestiaCore*, AppData*);	    virtual void notifyChange(CelestiaCore*, int);	private:		AppData* app;};GtkWatcher::GtkWatcher(CelestiaCore* _appCore, AppData* _app) :    CelestiaWatcher(*_appCore), app(_app){}void GtkWatcher::notifyChange(CelestiaCore*, int property){	if (property & CelestiaCore::LabelFlagsChanged)		resyncLabelActions(app);	else if (property & CelestiaCore::RenderFlagsChanged)	{		resyncRenderActions(app);		resyncOrbitActions(app);		resyncStarStyleActions(app);	}	else if (property & CelestiaCore::VerbosityLevelChanged)		resyncVerbosityActions(app);	else if (property & CelestiaCore::TimeZoneChanged)		resyncTimeZoneAction(app);	else if (property & CelestiaCore::AmbientLightChanged)		resyncAmbientActions(app);	/*	else if (property & CelestiaCore::FaintestChanged) DEPRECATED?	else if (property & CelestiaCore::HistoryChanged)	*/	else if (property == CelestiaCore::TextEnterModeChanged)	{		if (app->core->getTextEnterMode() != 0)		{			/* Grey-out the menu */			gtk_widget_set_sensitive(app->mainMenu, FALSE);						/* Disable any actions that will interfere in typing and			   autocomplete */			gtk_action_group_set_sensitive(app->agMain, FALSE);			gtk_action_group_set_sensitive(app->agRender, FALSE);			gtk_action_group_set_sensitive(app->agLabel, FALSE);		}		else		{			/* Set the menu normal */			gtk_widget_set_sensitive(app->mainMenu, TRUE);						/* Re-enable action groups */			gtk_action_group_set_sensitive(app->agMain, TRUE);			gtk_action_group_set_sensitive(app->agRender, TRUE);			gtk_action_group_set_sensitive(app->agLabel, TRUE);		}	}		else if (property & CelestiaCore::GalaxyLightGainChanged)		resyncGalaxyGainActions(app);}/* END Watcher *//* CALLBACK: Event "realize" on the main GL area. Things that go here are those *           that require the glArea to be set up. */static void initRealize(GtkWidget* widget, AppData* app){	if (!app->core->initRenderer())	{		cerr << "Failed to initialize renderer.\n";	}	/* Read/Apply Settings */	#ifdef GNOME	applySettingsGConfMain(app, app->client);	#else	applySettingsFileMain(app, app->settingsFile);	#endif /* GNOME */		/* Synchronize all actions with core settings */	resyncLabelActions(app);	resyncRenderActions(app);	resyncOrbitActions(app);	resyncVerbosityActions(app);	resyncAmbientActions(app);	resyncStarStyleActions(app);		/* If full-screen at startup, make it so. */	if (app->fullScreen)		gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(gtk_action_group_get_action(app->agMain, "FullScreen")), TRUE);	/* If URL at startup, make it so. */	if (app->startURL != NULL)		app->core->setStartURL(app->startURL);		/* Set simulation time */	app->core->start((double)time(NULL) / 86400.0 + (double)astro::Date(1970, 1, 1));	updateTimeZone(app, app->showLocalTime);		/* Setting time zone name not very useful, but makes space for "LT" status in	 * the top-right corner. Set to some default. */	app->core->setTimeZoneName("UTC");	/* Set the cursor to a crosshair */	gdk_window_set_cursor(widget->window, gdk_cursor_new(GDK_CROSSHAIR));

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合激情五月| ...中文天堂在线一区| 国产欧美一区二区精品忘忧草| 亚洲欧美综合另类在线卡通| 捆绑紧缚一区二区三区视频| 欧美性猛交xxxxxxxx| 国产精品不卡视频| 国产一区二区在线电影| 91精品国产麻豆| 亚洲精品国产a久久久久久| 不卡一区中文字幕| 久久久高清一区二区三区| 免费观看在线综合色| 欧美日韩夫妻久久| 一区二区视频免费在线观看| eeuss鲁片一区二区三区| xnxx国产精品| 韩国毛片一区二区三区| 精品免费视频.| 老司机精品视频在线| 91精品国产一区二区人妖| 亚洲一级在线观看| 欧美亚男人的天堂| 亚洲综合色婷婷| 欧洲一区二区三区在线| 91麻豆精品国产91| 欧美国产日韩a欧美在线观看| 久久99精品久久久久久国产越南| 欧美一级理论片| 爽好多水快深点欧美视频| 欧美色图免费看| 午夜精品视频一区| 69精品人人人人| 六月丁香婷婷色狠狠久久| 56国语精品自产拍在线观看| 天堂一区二区在线| 日韩一二三区不卡| 久久99热国产| 国产亚洲一二三区| 97精品国产露脸对白| 亚洲婷婷在线视频| 欧美性生活影院| 日本v片在线高清不卡在线观看| 91麻豆精品91久久久久久清纯| 日本在线观看不卡视频| 欧美变态tickle挠乳网站| 国产一区在线观看麻豆| 久久久久99精品国产片| 99热99精品| 亚洲午夜在线观看视频在线| 欧美一区二区久久久| 精品一区二区三区不卡| 国产欧美综合在线观看第十页| 99久久国产免费看| 偷拍日韩校园综合在线| 精品国产91九色蝌蚪| 成人一道本在线| 亚洲成a天堂v人片| 久久久久久免费| 欧美三级中文字| 久久99国产精品免费网站| 中文字幕一区二区三区不卡 | 亚洲大型综合色站| 日韩欧美黄色影院| av一区二区久久| 日韩av一级电影| 中文字幕制服丝袜一区二区三区| 在线免费不卡视频| 国模一区二区三区白浆| 亚洲一区中文日韩| 亚洲国产精品传媒在线观看| 欧美少妇性性性| 成人黄色av网站在线| 麻豆精品视频在线| 亚洲高清视频中文字幕| 国产欧美日韩亚州综合| 91精品国产欧美一区二区18| 99re在线精品| 国产精品白丝av| 人妖欧美一区二区| 亚洲图片欧美色图| 国产精品人人做人人爽人人添| 欧美放荡的少妇| 91免费在线看| 国产91精品在线观看| 日韩福利视频网| 亚洲天堂精品在线观看| 国产欧美一区二区三区沐欲| 91精品一区二区三区在线观看| 色综合久久久久久久| 国产69精品久久久久777| 久久国产精品99久久人人澡| 天堂va蜜桃一区二区三区| 亚洲欧美偷拍三级| 欧美国产97人人爽人人喊| 欧美mv和日韩mv的网站| 这里只有精品免费| 欧美日韩视频一区二区| 色成年激情久久综合| 不卡一区二区在线| 国产成人av一区二区三区在线| 精品中文字幕一区二区| 免费人成精品欧美精品| 石原莉奈在线亚洲二区| 偷拍亚洲欧洲综合| 天堂久久久久va久久久久| 无码av免费一区二区三区试看| 亚洲一区二区视频在线观看| 一区二区三区蜜桃网| 国产精品久99| 亚洲欧美日韩中文字幕一区二区三区| 中文字幕欧美区| 18涩涩午夜精品.www| 亚洲欧洲三级电影| 亚洲欧美乱综合| 亚洲已满18点击进入久久| 一区二区三区不卡在线观看| 一区二区不卡在线播放| 一区二区三区波多野结衣在线观看 | 日韩免费成人网| 26uuu亚洲| 国产三级久久久| 亚洲日本在线天堂| 亚洲六月丁香色婷婷综合久久| 一区二区三区**美女毛片| 日韩精品免费专区| 久久99精品久久久| 粉嫩欧美一区二区三区高清影视| 成人在线一区二区三区| 色婷婷国产精品| 欧美蜜桃一区二区三区| 日韩一区二区三区精品视频 | 经典三级一区二区| 国产成人夜色高潮福利影视| 成人一道本在线| 在线观看91视频| 日韩欧美激情一区| 国产精品久99| 免费在线欧美视频| 国产不卡免费视频| 在线观看日韩国产| 精品日本一线二线三线不卡| 欧美激情自拍偷拍| 性做久久久久久免费观看| 国产精品自拍在线| 91成人免费网站| 久久综合九色欧美综合狠狠 | 久久久久九九视频| 亚洲精品视频在线观看免费 | 天天色综合成人网| 国产99久久久国产精品潘金| 欧美在线免费播放| 亚洲国产成人午夜在线一区| 午夜电影网亚洲视频| 成人aa视频在线观看| 日韩一区二区电影| 亚洲激情男女视频| 久久69国产一区二区蜜臀| 色婷婷av一区二区三区大白胸| 欧美不卡在线视频| 一区二区三区加勒比av| 国产精品一区二区果冻传媒| 欧美日韩中字一区| 中文字幕永久在线不卡| 麻豆国产欧美日韩综合精品二区 | 亚洲午夜精品一区二区三区他趣| 精品一区二区三区免费观看| 欧美日韩一区二区三区视频| 国产精品成人午夜| 国产精品77777| 精品嫩草影院久久| 亚洲va国产天堂va久久en| eeuss鲁一区二区三区| 精品国精品国产尤物美女| 性久久久久久久久| 色婷婷精品久久二区二区蜜臀av| 国产欧美一区二区精品性色超碰| 免费看日韩a级影片| 欧美日高清视频| 一区二区高清视频在线观看| 成人国产精品免费| 久久久久久久av麻豆果冻| 久色婷婷小香蕉久久| 51精品国自产在线| 亚洲国产精品久久一线不卡| 91免费精品国自产拍在线不卡| 久久精品欧美一区二区三区麻豆 | 91麻豆成人久久精品二区三区| 久久免费电影网| 国产精品一区二区三区乱码| 日韩女优毛片在线| 久久99精品久久久久婷婷| 欧美不卡在线视频| 国内不卡的二区三区中文字幕| 精品av综合导航| 韩国精品主播一区二区在线观看 | 欧美在线免费观看视频| 亚洲制服丝袜在线| 欧美日韩一区二区三区在线| 亚洲成人av免费|