亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
亚洲乱码国产乱码精品精98午夜| 国产精品免费av| 欧美精品一区二区三区在线播放| 国产农村妇女精品| 日韩av电影免费观看高清完整版 | www久久精品| 亚洲成人av福利| 99久久综合精品| 精品久久久久久亚洲综合网| 亚洲一区在线视频| 成人禁用看黄a在线| 久久人人爽人人爽| 久久国产视频网| 欧美日韩国产另类一区| 亚洲综合一区在线| 99久久免费精品高清特色大片| 久久先锋影音av| 久久疯狂做爰流白浆xx| 日韩欧美卡一卡二| 日韩 欧美一区二区三区| 欧美系列日韩一区| 亚洲综合久久久久| 91黄色小视频| 一区二区三区四区高清精品免费观看| 成人免费黄色大片| 国产精品理伦片| 99久久国产免费看| 中文字幕一区二区不卡| 99精品视频免费在线观看| 中文字幕在线免费不卡| 成人av片在线观看| 中文字幕一区二区三区色视频| 波多野结衣亚洲一区| 国产精品色在线| 一本一道久久a久久精品| 亚洲三级免费电影| 欧美午夜免费电影| 婷婷国产在线综合| 日韩一区二区免费在线电影| 日韩制服丝袜先锋影音| 精品处破学生在线二十三| 国产一区二区美女| 国产精品久久毛片| 欧洲亚洲精品在线| 免费av成人在线| 国产午夜精品一区二区三区嫩草| 国产高清亚洲一区| 亚洲人成影院在线观看| 欧美妇女性影城| 韩国av一区二区三区在线观看| 久久影院午夜论| 99视频在线观看一区三区| 一区二区三区中文在线观看| 欧美精选一区二区| 国产黄色成人av| 一区二区免费在线播放| 欧美一区二区三区四区久久| 国产v日产∨综合v精品视频| 亚洲人成影院在线观看| 日韩女优毛片在线| 成人黄色电影在线| 婷婷久久综合九色国产成人| 久久久国产一区二区三区四区小说| 99久久久免费精品国产一区二区| 亚洲另类在线制服丝袜| 精品国产乱码久久| 日本精品免费观看高清观看| 日本不卡中文字幕| 亚洲天堂免费看| 日韩精品一区二区三区在线观看| av中文字幕不卡| 美女视频黄频大全不卡视频在线播放| 中文乱码免费一区二区| 欧美军同video69gay| 99久久综合国产精品| 青青青伊人色综合久久| 亚洲天堂久久久久久久| 欧美zozozo| 欧美男人的天堂一二区| 不卡高清视频专区| 国产综合色在线视频区| 亚洲成av人影院| 日本一区二区三区四区在线视频| 欧美顶级少妇做爰| 在线亚洲免费视频| 国产suv一区二区三区88区| 午夜精品免费在线| 亚洲精品乱码久久久久久久久| 精品sm在线观看| 日韩欧美一区二区在线视频| 色噜噜狠狠成人网p站| 国产成a人无v码亚洲福利| 激情综合色丁香一区二区| 天堂资源在线中文精品| 亚洲一区二区视频在线| 亚洲欧美一区二区不卡| 国产精品无人区| 久久精品在这里| 精品国产乱码久久久久久蜜臀 | 欧美精品久久天天躁| 成人黄色综合网站| 国产福利一区在线| 美女一区二区三区在线观看| 五月综合激情婷婷六月色窝| 一区二区三区四区不卡在线| 亚洲精品一二三四区| 中文字幕综合网| 亚洲欧美视频在线观看| 亚洲欧洲成人av每日更新| 国产精品毛片大码女人| 国产精品久久三区| 亚洲天堂2014| 一区二区三区成人| 亚洲一区二区三区自拍| 亚洲成a人v欧美综合天堂| 首页亚洲欧美制服丝腿| 日韩电影免费在线观看网站| 日韩经典中文字幕一区| 日本欧洲一区二区| 老司机午夜精品| 国产精品综合一区二区三区| 福利一区二区在线观看| 91在线一区二区| 精品视频色一区| 日韩你懂的电影在线观看| 精品国产网站在线观看| 久久精品一区二区| 亚洲精品久久久蜜桃| 天天av天天翘天天综合网色鬼国产| 日本人妖一区二区| 国产成人精品一区二区三区四区| 成人久久视频在线观看| 在线一区二区三区做爰视频网站| 欧美日韩专区在线| 日韩欧美www| 亚洲色图欧洲色图| 亚洲大片一区二区三区| 极品瑜伽女神91| 99热精品一区二区| 欧美日本一区二区三区四区| 精品成人a区在线观看| 国产精品久久国产精麻豆99网站| 亚洲在线观看免费| 国产在线视频精品一区| 欧洲生活片亚洲生活在线观看| 91精品免费在线| 亚洲国产精品成人综合色在线婷婷| 亚洲视频一区二区在线观看| 舔着乳尖日韩一区| 国产不卡视频一区| 欧美日韩一区二区三区四区五区 | 在线综合亚洲欧美在线视频| 久久蜜桃一区二区| 亚洲国产三级在线| 国产乱淫av一区二区三区 | 日韩av中文字幕一区二区| 国产精品综合一区二区| 欧美区在线观看| 亚洲欧洲中文日韩久久av乱码| 精品综合久久久久久8888| 色婷婷综合久色| 日本一区二区综合亚洲| 日本不卡1234视频| 色88888久久久久久影院野外| 久久九九国产精品| 毛片av中文字幕一区二区| 欧美视频在线播放| 亚洲国产精品二十页| 久久国内精品自在自线400部| 欧美性一区二区| 中文字幕一区二区三区蜜月 | 亚洲精品一二三| 高清在线观看日韩| 精品少妇一区二区三区视频免付费| 亚洲精品ww久久久久久p站| 丁香亚洲综合激情啪啪综合| 精品剧情在线观看| 日本女优在线视频一区二区| 欧美午夜精品一区二区蜜桃| 国产精品成人免费| 国产成人在线观看免费网站| 717成人午夜免费福利电影| 一区二区三区不卡视频在线观看| 99精品视频在线观看| 欧美国产一区在线| 岛国精品一区二区| 久久精品日韩一区二区三区| 国产综合一区二区| 久久久久久久综合狠狠综合| 精品一区二区三区在线观看 | 欧美大胆人体bbbb| 亚洲一卡二卡三卡四卡五卡| 91免费视频网| 亚洲免费伊人电影| 91精彩视频在线观看| 亚洲精品高清视频在线观看| 色激情天天射综合网| 亚洲五月六月丁香激情| 91高清视频在线| 性做久久久久久久免费看|