Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

dialog-goto.h File Reference

#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 []


Typedef Documentation

typedef struct _gotoObjectData gotoObjectData
 

Definition at line 26 of file dialog-goto.h.


Function Documentation

void dialogGotoObject AppData app  ) 
 

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 }


Variable Documentation

const char* const unitLabels[] [static]
 

Initial value:

{
        "km",
        "radii",
        "au",
        NULL
}

Definition at line 39 of file dialog-goto.h.


Generated on Sat Jan 14 22:31:51 2006 for Celestia by  doxygen 1.4.1