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

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

?? actions.cpp

?? celestia源代碼
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
/* *  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: actions.cpp,v 1.12 2006/01/22 17:59:51 suwalski Exp $ */#ifdef HAVE_CONFIG_H#include <config.h>#endif /* HAVE_CONFIG_H */#include <cstring>#include <fstream>#include <gtk/gtk.h>#ifdef GNOME#include <gconf/gconf-client.h>#endif /* GNOME */#include <celengine/body.h>#include <celengine/gl.h>#include <celengine/glext.h>#include <celengine/simulation.h>#include <celengine/cmdparser.h>#include <celengine/render.h>#include <celestia/celestiacore.h>#include <celestia/imagecapture.h>#include <celestia/url.h>#include <celutil/filetype.h>#include "actions.h"#include "common.h"#include "dialog-eclipse.h"#include "dialog-goto.h"#include "dialog-options.h"#include "dialog-solar.h"#include "dialog-star.h"#include "dialog-time.h"#include "dialog-tour.h"#ifdef GNOME#include "settings-gconf.h"#else#include "settings-file.h"#endif /* GNOME *//* Declarations: Action Helpers */static void openScript(const char* filename, AppData* app);static void captureImage(const char* filename, AppData* app);static void textInfoDialog(const char *txt, const char *title, AppData* app);static void setRenderFlag(AppData* a, int flag, gboolean state);static void setOrbitMask(AppData* a, int mask, gboolean state);static void setLabelMode(AppData* a, int mode, gboolean state);/* File -> Copy URL */void actionCopyURL(GtkAction*, AppData* app){	GtkClipboard* cb = gtk_clipboard_get(GDK_SELECTION_CLIPBOARD);	Url url(app->core);	gtk_clipboard_set_text(cb, url.getAsString().c_str(), -1);}/* File -> Open URL */void actionOpenURL(GtkAction*, AppData* app){	GtkWidget* dialog = gtk_dialog_new_with_buttons("Enter cel:// URL",	                                                GTK_WINDOW(app->mainWindow),	                                                GTK_DIALOG_MODAL,	                                                GTK_STOCK_OK, GTK_RESPONSE_ACCEPT,	                                                GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT,	                                                NULL);	/* Create a new entry box with default text, all selected */	GtkWidget* entry = gtk_entry_new();	gtk_entry_set_width_chars(GTK_ENTRY(entry), 80);	gtk_entry_set_text(GTK_ENTRY(entry), "cel://");	gtk_editable_select_region(GTK_EDITABLE(entry), 0, -1);	gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), entry, TRUE, TRUE, CELSPACING);	gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_ACCEPT);	gtk_widget_show_all(dialog);	if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT)		app->core->goToUrl(gtk_entry_get_text(GTK_ENTRY(entry)));	gtk_widget_destroy(dialog);}/* File -> Open Script... */void actionOpenScript(GtkAction*, AppData* app){	GtkWidget* fs = gtk_file_chooser_dialog_new("Open Script.",	                                            GTK_WINDOW(app->mainWindow),	                                            GTK_FILE_CHOOSER_ACTION_OPEN,	                                            GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,	                                            GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,	                                            NULL);	#if GTK_CHECK_VERSION(2, 7, 0)	gtk_file_chooser_set_do_overwrite_confirmation(GTK_FILE_CHOOSER(fs), TRUE);	#endif /* GTK_CHECK_VERSION */	gtk_dialog_set_default_response(GTK_DIALOG(fs), GTK_RESPONSE_ACCEPT);	gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(fs), g_get_home_dir());	GtkFileFilter* filter = gtk_file_filter_new();	gtk_file_filter_set_name(filter, "Celestia Scripts");		gtk_file_filter_add_pattern(filter, "*.cel");	#ifdef CELX	gtk_file_filter_add_pattern(filter, "*.celx");	gtk_file_filter_add_pattern(filter, "*.clx");	#endif /* CELX */		gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(fs), filter);		if (gtk_dialog_run(GTK_DIALOG(fs)) == GTK_RESPONSE_ACCEPT)	{		char* filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(fs));		openScript(filename, app);		g_free(filename);	}	gtk_widget_destroy(fs);	}/* File -> Capture Image... */void actionCaptureImage(GtkAction*, AppData* app){	GtkWidget* fs = gtk_file_chooser_dialog_new("Save Image to File",	                                            GTK_WINDOW(app->mainWindow),	                                            GTK_FILE_CHOOSER_ACTION_SAVE,	                                            GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,	                                            GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT,	                                            NULL);	GtkFileFilter* filter = gtk_file_filter_new();	gtk_file_filter_set_name(filter, "PNG and JPEG Images");	gtk_file_filter_add_pattern(filter, "*.jpeg");	gtk_file_filter_add_pattern(filter, "*.jpg");	gtk_file_filter_add_pattern(filter, "*.png");	gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(fs), filter);	#if GTK_CHECK_VERSION(2, 7, 0)	gtk_file_chooser_set_do_overwrite_confirmation(GTK_FILE_CHOOSER(fs), TRUE);	#endif /* GTK_CHECK_VERSION */		gtk_dialog_set_default_response(GTK_DIALOG(fs), GTK_RESPONSE_ACCEPT);	gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(fs), g_get_home_dir());	if (gtk_dialog_run(GTK_DIALOG(fs)) == GTK_RESPONSE_ACCEPT)	{		char* filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(fs));		captureImage(filename, app);		g_free(filename);	}	gtk_widget_destroy(fs);}void actionQuit(GtkAction*, AppData* app){	#ifdef GNOME	saveSettingsGConf(app);	#else	saveSettingsFile(app);	#endif /* GNOME */	gtk_main_quit();}void actionSelectSol(GtkAction*, AppData* app){	app->core->charEntered('H');}void actionTourGuide(GtkAction*, AppData* app){	dialogTourGuide(app);}void actionSearchObject(GtkAction*, AppData* app){	GtkWidget* dialog = gtk_dialog_new_with_buttons("Select Object",	                                                GTK_WINDOW(app->mainWindow),	                                                GTK_DIALOG_DESTROY_WITH_PARENT,	                                                GTK_STOCK_OK, GTK_RESPONSE_OK,	                                                GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,	                                                NULL);	GtkWidget* box = gtk_hbox_new(FALSE, CELSPACING);	gtk_container_set_border_width(GTK_CONTAINER(box), CELSPACING);	gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), box, TRUE, TRUE, 0);	GtkWidget* label = gtk_label_new("Object name");	gtk_box_pack_start(GTK_BOX(box), label, TRUE, TRUE, 0);	GtkWidget* entry = gtk_entry_new();	gtk_box_pack_start(GTK_BOX(box), entry, TRUE, TRUE, 0);	gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_OK);	gtk_widget_show_all(GTK_WIDGET(dialog));	if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_OK)	{		const gchar* name = gtk_entry_get_text(GTK_ENTRY(entry));		if (name != NULL)		{			Selection sel = app->simulation->findObject(name);			if (!sel.empty())				app->simulation->setSelection(sel);		}	}	gtk_widget_destroy(GTK_WIDGET(dialog));}void actionGotoObject(GtkAction*, AppData* app){	dialogGotoObject(app);}void actionCenterSelection(GtkAction*, AppData* app){	app->core->charEntered('c');}void actionGotoSelection(GtkAction*, AppData* app){	app->core->charEntered('G');}void actionFollowSelection(GtkAction*, AppData* app){	app->core->charEntered('F');}void actionSyncSelection(GtkAction*, AppData* app){	app->core->charEntered('Y');}void actionTrackSelection(GtkAction*, AppData* app){	app->core->charEntered('T');}void actionSystemBrowser(GtkAction*, AppData* app){	dialogSolarBrowser(app);}void actionStarBrowser(GtkAction*, AppData* app){	dialogStarBrowser(app);}void actionEclipseFinder(GtkAction*, AppData* app){	dialogEclipseFinder(app);}void actionTimeFaster(GtkAction*, AppData* app){	app->core->charEntered('L');}void actionTimeSlower(GtkAction*, AppData* app){	app->core->charEntered('K');}void actionTimeFreeze(GtkAction*, AppData* app){	app->core->charEntered(' ');}void actionTimeReal(GtkAction*, AppData* app){	app->core->charEntered('\\');}void actionTimeReverse(GtkAction*, AppData* app){	app->core->charEntered('J');}void actionTimeSet(GtkAction*, AppData* app){	dialogSetTime(app);}void actionTimeLocal(GtkAction* action, AppData* app){	app->showLocalTime = gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(action));	updateTimeZone(app, app->showLocalTime);	#ifdef GNOME	gconf_client_set_bool(app->client, "/apps/celestia/showLocalTime", app->showLocalTime, NULL);	#endif /* GNOME */}void actionViewerSize(GtkAction*, AppData* app){	GtkWidget* dialog;	int newX, currentX, currentY, winX, winY, screenX, i = 1, position = -1;	char res[32];		screenX = gdk_screen_get_width(gdk_screen_get_default());	currentX = app->glArea->allocation.width;	currentY = app->glArea->allocation.height;	dialog = gtk_dialog_new_with_buttons("Set Viewer Size...",	                                     GTK_WINDOW(app->mainWindow),	                                     GTK_DIALOG_DESTROY_WITH_PARENT,	                                     GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,	                                     GTK_STOCK_OK, GTK_RESPONSE_OK,	                                     NULL);	GtkWidget* vbox = gtk_vbox_new(FALSE, CELSPACING); 	gtk_container_set_border_width(GTK_CONTAINER(vbox), CELSPACING);	GtkWidget* label = gtk_label_new("Dimensions for Main Window:");	gtk_box_pack_start(GTK_BOX(vbox), label, TRUE, TRUE, 0);	GtkWidget* menubox = gtk_combo_box_new_text();	gtk_box_pack_start(GTK_BOX(vbox), menubox, FALSE, FALSE, 0);	gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), vbox, TRUE, TRUE, 0);	while (resolutions[i] != -1)	{		if (position == -1 && resolutions[i-1] < currentX && resolutions[i] >= currentX)		{			sprintf(res, "%d x %d (current)", currentX, currentY);			position = i - 1;		}		else if (resolutions[i] < screenX)		{			sprintf(res, "%d x %d", resolutions[i], int(0.75 * resolutions[i]));			i++;		}		else			break;				gtk_combo_box_append_text(GTK_COMBO_BOX(menubox), res);	}	gtk_combo_box_set_active(GTK_COMBO_BOX(menubox), position);	gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_OK);	gtk_widget_show_all(dialog);	if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_OK)	{		int active = gtk_combo_box_get_active(GTK_COMBO_BOX(menubox));		if (active > -1 && active != position)		{			/* Adjust for default entry */			if (active > position) active--;			newX = resolutions[active + 1];			gtk_window_get_size(GTK_WINDOW(app->mainWindow), &winX, &winY);						/* Resizing takes into account border, titlebar, and menubar			   sizes. Without them only an allocation can be requested */			gtk_window_resize(GTK_WINDOW(app->mainWindow), newX + winX - currentX, int(0.75 * newX) + winY - currentY);		}	}		gtk_widget_destroy(GTK_WIDGET(dialog));}void actionFullScreen(GtkAction* action, AppData* app){	int positionX, positionY;	app->fullScreen = gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(action));		if (app->fullScreen)	{		/* Save size/position, so original numbers are available for prefs */		g_object_set_data(G_OBJECT(app->mainWindow), "sizeX", GINT_TO_POINTER(app->glArea->allocation.width));		g_object_set_data(G_OBJECT(app->mainWindow), "sizeY", GINT_TO_POINTER(app->glArea->allocation.height));		gtk_window_get_position(GTK_WINDOW(app->mainWindow), &positionX, &positionY);		g_object_set_data(G_OBJECT(app->mainWindow), "positionX", GINT_TO_POINTER(positionX));		g_object_set_data(G_OBJECT(app->mainWindow), "positionY", GINT_TO_POINTER(positionY));

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本一区二区久久| 久久国产精品区| 国产亚洲一区字幕| 久久久久综合网| 久久久天堂av| 欧美激情综合五月色丁香小说| 欧美一区二区在线不卡| 4438x亚洲最大成人网| 91精品欧美久久久久久动漫| 欧美高清性hdvideosex| 在线播放91灌醉迷j高跟美女| 欧美精选一区二区| 精品国产制服丝袜高跟| 国产亚洲欧美一级| 亚洲丝袜精品丝袜在线| 亚洲精品伦理在线| 天天操天天色综合| 国产综合色精品一区二区三区| 国产福利视频一区二区三区| 国产福利精品一区二区| 色婷婷av一区二区三区大白胸| 色婷婷久久久亚洲一区二区三区 | 欧美日韩在线播放三区| 欧美日韩一区二区在线观看| 日韩一区二区免费视频| 国产丝袜在线精品| 亚洲免费观看在线视频| 蜜乳av一区二区三区| 成人av动漫网站| 一本大道久久a久久精品综合| 在线成人免费视频| 欧美国产精品一区二区| 亚州成人在线电影| 国产一区二区网址| 欧美在线高清视频| 国产三级一区二区| 亚洲一区成人在线| 国产99精品国产| 欧美日韩激情一区二区三区| 国产日产欧产精品推荐色| 亚洲精品精品亚洲| 国产麻豆9l精品三级站| 欧美日韩高清一区二区不卡| 亚洲国产精品传媒在线观看| 日本亚洲欧美天堂免费| 99re成人精品视频| 久久综合九色综合97婷婷女人| 一区二区三区中文在线观看| 极品少妇一区二区三区精品视频| 91国产丝袜在线播放| 久久九九影视网| 三级在线观看一区二区| 91麻豆福利精品推荐| 精品毛片乱码1区2区3区| 亚洲永久免费视频| av中文一区二区三区| 久久综合久久综合亚洲| 午夜国产不卡在线观看视频| 91麻豆精东视频| 中文字幕av一区二区三区免费看| 久久精品国产秦先生| 欧美日韩精品一区二区三区四区 | 91丨九色porny丨蝌蚪| 久久先锋影音av| 美女在线观看视频一区二区| 精品视频123区在线观看| 亚洲一区二区三区在线播放| 91女厕偷拍女厕偷拍高清| 日本一区二区三区在线不卡| 韩国精品主播一区二区在线观看 | 欧美日韩精品高清| 亚洲综合丝袜美腿| 色哟哟欧美精品| 亚洲乱码国产乱码精品精小说| 成人在线综合网站| 中文字幕国产精品一区二区| 国产99久久久精品| 国产精品麻豆久久久| www.久久久久久久久| 中文字幕日韩一区| 91丨porny丨户外露出| 亚洲男人电影天堂| 欧美影视一区二区三区| 午夜免费欧美电影| 日韩欧美国产综合| 国产美女在线精品| 国产精品久久久久天堂| 欧洲视频一区二区| 日日夜夜精品视频天天综合网| 91精品国产91久久久久久一区二区 | 中文一区一区三区高中清不卡| 成人午夜激情片| 一区二区三区四区蜜桃| 91精品中文字幕一区二区三区| 美女网站色91| 中文字幕av不卡| 色综合一个色综合| 视频一区视频二区中文| www国产精品av| 91片黄在线观看| 麻豆久久一区二区| 中文字幕av一区二区三区| 在线观看av一区二区| 久久99精品久久久久久动态图 | 色婷婷国产精品久久包臀| 午夜视频在线观看一区二区| 日韩精品一区二区三区在线观看| 国产精品88av| 亚洲电影一级黄| 国产视频不卡一区| 欧美在线999| 国产一区二区不卡在线 | 日韩久久久久久| 99视频超级精品| 免费xxxx性欧美18vr| 一区在线观看免费| 精品播放一区二区| 欧美视频在线不卡| 国产成人av福利| 日本v片在线高清不卡在线观看| 中文字幕欧美国产| 91精品国产综合久久香蕉麻豆| 成人爱爱电影网址| 美女久久久精品| 亚洲精品日韩专区silk| 久久久久久久网| 欧美日韩高清一区二区三区| av成人免费在线观看| 激情综合亚洲精品| 午夜精品福利一区二区三区av| 国产精品久久久久精k8| 久久―日本道色综合久久| 欧美精品丝袜久久久中文字幕| 成人免费毛片aaaaa**| 久久99国产乱子伦精品免费| 污片在线观看一区二区| 亚洲欧美另类图片小说| 国产精品全国免费观看高清 | 亚洲激情在线播放| 中文字幕精品一区二区精品绿巨人| 日韩三级在线观看| 欧美一卡在线观看| 欧美日韩在线电影| 欧美图区在线视频| 在线免费av一区| 一本久久精品一区二区| 99久久国产免费看| 91一区二区三区在线观看| 成人精品鲁一区一区二区| 国产成人在线看| 国产91富婆露脸刺激对白| 国产精品香蕉一区二区三区| 狠狠色丁香婷综合久久| 国产综合一区二区| 粉嫩13p一区二区三区| 成人免费毛片片v| 99免费精品在线| 色综合久久天天综合网| 欧美天天综合网| 欧美精品高清视频| 欧美成人精品3d动漫h| 26uuu国产一区二区三区| 久久综合九色综合欧美亚洲| 国产亚洲欧美色| 一区二区三区在线影院| 香蕉乱码成人久久天堂爱免费| 午夜电影一区二区| 精品制服美女丁香| 福利一区福利二区| 91小视频在线| 欧美精品在线观看一区二区| 欧美成va人片在线观看| 国产拍欧美日韩视频二区| 亚洲天堂成人在线观看| 亚洲va在线va天堂| 黄一区二区三区| 播五月开心婷婷综合| 欧美日韩久久久| 久久精品欧美一区二区三区麻豆 | 欧美一区二区黄| 国产亚洲福利社区一区| 一区二区三区美女视频| 蜜桃传媒麻豆第一区在线观看| 国产凹凸在线观看一区二区| 91国偷自产一区二区三区观看 | 日本韩国一区二区三区视频| 91精品一区二区三区在线观看| 国产日韩精品一区| 亚洲第一福利一区| 国产成+人+日韩+欧美+亚洲| 在线一区二区三区四区| 久久人人超碰精品| 亚洲高清一区二区三区| 国产一区二区三区在线观看免费 | 99久久er热在这里只有精品66| 欧美午夜宅男影院| 国产精品日日摸夜夜摸av| 毛片av一区二区三区| 在线亚洲免费视频| 国产欧美久久久精品影院|