#include <gtk/gtk.h>#include "common.h"Include dependency graph for dialog-goto.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.
Typedefs | |
| typedef _gotoObjectData | gotoObjectData |
Functions | |
| void | dialogGotoObject (AppData *app) |
Variables | |
| static const char *const | unitLabels [] |
|
|
Definition at line 26 of file dialog-goto.h. |
|
|
Definition at line 33 of file dialog-goto.cpp. References _gotoObjectData::app, CELSPACING, changeGotoUnits(), _gotoObjectData::dialog, distance(), _gotoObjectData::distEntry, _gotoObjectData::latEntry, _gotoObjectData::longEntry, makeRadioItems(), _gotoObjectData::nameEntry, responseGotoObject(), and _gotoObjectData::units. Referenced by actionGotoObject(). 00034 {
00035 gotoObjectData *data = g_new0(gotoObjectData, 1);
00036 data->app = app;
00037
00038 data->dialog = gtk_dialog_new_with_buttons("Goto Object",
00039 GTK_WINDOW(app->mainWindow),
00040 GTK_DIALOG_DESTROY_WITH_PARENT,
00041 "Go To",
00042 GTK_RESPONSE_OK,
00043 GTK_STOCK_CLOSE,
00044 GTK_RESPONSE_CLOSE,
00045 NULL);
00046 data->nameEntry = gtk_entry_new();
00047 data->latEntry = gtk_entry_new();
00048 data->longEntry = gtk_entry_new();
00049 data->distEntry = gtk_entry_new();
00050
00051 if (data->dialog == NULL ||
00052 data->nameEntry == NULL ||
00053 data->latEntry == NULL ||
00054 data->longEntry == NULL ||
00055 data->distEntry == NULL)
00056 {
00057 /* Potential memory leak here ... */
00058 return;
00059 }
00060
00061 /* Set up the values (from windows cpp file) */
00062 double distance, longitude, latitude;
00063 app->simulation->getSelectionLongLat(distance, longitude, latitude);
00064
00065 /* Display information in format appropriate for object */
00066 if (app->simulation->getSelection().body() != NULL)
00067 {
00068 char temp[20];
00069 distance = distance - (double) app->simulation->getSelection().body()->getRadius();
00070 sprintf(temp, "%.1f", (float)distance);
00071 gtk_entry_set_text(GTK_ENTRY(data->distEntry), temp);
00072 sprintf(temp, "%.5f", (float)longitude);
00073 gtk_entry_set_text(GTK_ENTRY(data->longEntry), temp);
00074 sprintf(temp, "%.5f", (float)latitude);
00075 gtk_entry_set_text(GTK_ENTRY(data->latEntry), temp);
00076 gtk_entry_set_text(GTK_ENTRY(data->nameEntry), (char*) app->simulation->getSelection().body()->getName().c_str());
00077 }
00078
00079 GtkWidget* vbox = gtk_vbox_new(TRUE, CELSPACING);
00080 gtk_container_set_border_width(GTK_CONTAINER(vbox), CELSPACING);
00081 gtk_box_pack_start(GTK_BOX(GTK_DIALOG(data->dialog)->vbox), vbox, TRUE, TRUE, 0);
00082
00083 GtkWidget* align = NULL;
00084 GtkWidget* hbox = NULL;
00085 GtkWidget* label = NULL;
00086
00087 /* Object name label and entry */
00088 align = gtk_alignment_new(1, 0, 0, 0);
00089 hbox = gtk_hbox_new(FALSE, CELSPACING);
00090 label = gtk_label_new("Object name:");
00091 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, TRUE, 0);
00092 gtk_box_pack_start(GTK_BOX(hbox), data->nameEntry, FALSE, TRUE, 0);
00093 gtk_container_add(GTK_CONTAINER(align), hbox);
00094 gtk_box_pack_start(GTK_BOX(vbox), align, FALSE, TRUE, 0);
00095
00096 /* Latitude and longitude */
00097 align = gtk_alignment_new(1, 0, 0, 0);
00098 hbox = gtk_hbox_new(FALSE, CELSPACING);
00099 label = gtk_label_new("Latitude:");
00100 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, TRUE, 0);
00101 gtk_box_pack_start(GTK_BOX(hbox), data->latEntry, FALSE, TRUE, 0);
00102 gtk_container_add(GTK_CONTAINER(align), hbox);
00103 gtk_box_pack_start(GTK_BOX(vbox), align, FALSE, TRUE, 0);
00104
00105 align = gtk_alignment_new(1, 0, 0, 0);
00106 hbox = gtk_hbox_new(FALSE, CELSPACING);
00107 label = gtk_label_new("Longitude:");
00108 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, TRUE, 0);
00109 gtk_box_pack_start(GTK_BOX(hbox), data->longEntry, FALSE, TRUE, 0);
00110 gtk_container_add(GTK_CONTAINER(align), hbox);
00111 gtk_box_pack_start(GTK_BOX(vbox), align, FALSE, TRUE, 0);
00112
00113 /* Distance */
00114 align = gtk_alignment_new(1, 0, 0, 0);
00115 hbox = gtk_hbox_new(FALSE, CELSPACING);
00116 label = gtk_label_new("Distance:");
00117 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, TRUE, 0);
00118 gtk_box_pack_start(GTK_BOX(hbox), data->distEntry, FALSE, TRUE, 0);
00119 gtk_container_add(GTK_CONTAINER(align), hbox);
00120 gtk_box_pack_start(GTK_BOX(vbox), align, FALSE, TRUE, 0);
00121
00122 /* Distance Options */
00123 data->units = 0;
00124 hbox = gtk_hbox_new(FALSE, CELSPACING);
00125 makeRadioItems(unitLabels, hbox, GTK_SIGNAL_FUNC(changeGotoUnits), NULL, data);
00126 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 0);
00127
00128 g_signal_connect(data->dialog, "response",
00129 G_CALLBACK(responseGotoObject), data);
00130
00131 gtk_widget_show_all(data->dialog);
00132 }
|
|
|
Initial value:
{
"km",
"radii",
"au",
NULL
}
Definition at line 39 of file dialog-goto.h. |
1.4.1