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

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

Go to the source code of this file.
Defines | |
| #define | MAXLISTSTARS 500 |
| #define | MINLISTSTARS 10 |
Typedefs | |
| typedef _sbData | sbData |
Functions | |
| void | dialogStarBrowser (AppData *app) |
Variables | |
| static const char *const | sbRadioLabels [] |
| static const char *const | sbTitles [] |
|
|
Definition at line 23 of file dialog-star.h. Referenced by dialogStarBrowser(), and listStarEntryChange(). |
|
|
Definition at line 22 of file dialog-star.h. Referenced by dialogStarBrowser(), and listStarEntryChange(). |
|
|
Definition at line 31 of file dialog-star.h. |
|
|
Definition at line 43 of file dialog-star.cpp. References actionCenterSelection(), actionGotoSelection(), _sbData::app, _sbData::browser, buttonMake(), CELSPACING, _sbData::entry, listStarEntryChange(), listStarSelect(), listStarSliderChange(), makeRadioItems(), MAXLISTSTARS, MINLISTSTARS, _sbData::numListStars, radioClicked(), refreshBrowser(), _sbData::scale, StarBrowser::setSimulation(), _AppData::simulation, starDestroy(), and _sbData::starListStore. Referenced by actionStarBrowser(). 00044 {
00045 sbData* sb = g_new0(sbData, 1);
00046 sb->app = app;
00047 sb->numListStars = 100;
00048
00049 GtkWidget *browser = gtk_dialog_new_with_buttons("Star System Browser",
00050 GTK_WINDOW(app->mainWindow),
00051 GTK_DIALOG_DESTROY_WITH_PARENT,
00052 GTK_STOCK_OK, GTK_RESPONSE_OK,
00053 NULL);
00054 app->simulation->setSelection(Selection((Star *) NULL));
00055
00056 /* Star System Browser */
00057 GtkWidget *mainbox = gtk_vbox_new(FALSE, CELSPACING);
00058 gtk_container_set_border_width(GTK_CONTAINER(mainbox), CELSPACING);
00059 gtk_box_pack_start(GTK_BOX(GTK_DIALOG(browser)->vbox), mainbox, TRUE, TRUE, 0);
00060
00061 GtkWidget *scrolled_win = gtk_scrolled_window_new (NULL, NULL);
00062
00063 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW (scrolled_win),
00064 GTK_POLICY_AUTOMATIC,
00065 GTK_POLICY_ALWAYS);
00066 gtk_box_pack_start(GTK_BOX(mainbox), scrolled_win, TRUE, TRUE, 0);
00067
00068 /* Create listbox list */
00069 sb->starListStore = gtk_list_store_new(6,
00070 G_TYPE_STRING,
00071 G_TYPE_STRING,
00072 G_TYPE_STRING,
00073 G_TYPE_STRING,
00074 G_TYPE_STRING,
00075 G_TYPE_POINTER);
00076 GtkWidget *starList = gtk_tree_view_new_with_model(GTK_TREE_MODEL(sb->starListStore));
00077
00078 gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(starList), TRUE);
00079 gtk_container_add(GTK_CONTAINER(scrolled_win), starList);
00080
00081 GtkCellRenderer *renderer;
00082 GtkTreeViewColumn *column;
00083
00084 /* Add the columns */
00085 for (int i=0; i<5; i++) {
00086 renderer = gtk_cell_renderer_text_new();
00087 column = gtk_tree_view_column_new_with_attributes (sbTitles[i], renderer, "text", i, NULL);
00088 if (i > 0 && i < 4) {
00089 /* Right align */
00090 gtk_tree_view_column_set_alignment(column, 1.0);
00091 g_object_set(G_OBJECT(renderer), "xalign", 1.0, NULL);
00092 }
00093 gtk_tree_view_append_column(GTK_TREE_VIEW(starList), column);
00094 }
00095
00096 /* Initialize the star browser */
00097 sb->browser.setSimulation(sb->app->simulation);
00098
00099 /* Set up callback for when a star is selected */
00100 GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(starList));
00101 g_signal_connect(selection, "changed", G_CALLBACK(listStarSelect), app);
00102
00103 /* From now on, it's the bottom-of-the-window controls */
00104 GtkWidget *frame = gtk_frame_new("Star Search Criteria");
00105 gtk_box_pack_start(GTK_BOX(mainbox), frame, FALSE, FALSE, 0);
00106
00107 GtkWidget *hbox = gtk_hbox_new(FALSE, CELSPACING);
00108 gtk_container_set_border_width(GTK_CONTAINER(hbox), CELSPACING);
00109 gtk_container_add(GTK_CONTAINER(frame), hbox);
00110
00111 /* List viewing preference settings */
00112 GtkWidget *vbox = gtk_vbox_new(FALSE, 0);
00113 GtkWidget *hbox2 = gtk_hbox_new(FALSE, CELSPACING);
00114 GtkWidget *label = gtk_label_new("Maximum Stars Displayed in List");
00115 gtk_box_pack_start(GTK_BOX(hbox2), label, TRUE, FALSE, 0);
00116 sb->entry = gtk_entry_new_with_max_length(3);
00117 gtk_entry_set_width_chars(GTK_ENTRY(sb->entry), 5);
00118 gtk_box_pack_start(GTK_BOX(hbox2), sb->entry, TRUE, FALSE, 0);
00119 gtk_box_pack_start(GTK_BOX(vbox), hbox2, TRUE, FALSE, 0);
00120 sb->scale = gtk_hscale_new_with_range(MINLISTSTARS, MAXLISTSTARS, 1);
00121 gtk_scale_set_draw_value(GTK_SCALE(sb->scale), FALSE);
00122 gtk_range_set_update_policy(GTK_RANGE(sb->scale), GTK_UPDATE_DISCONTINUOUS);
00123 g_signal_connect(sb->scale, "value-changed", G_CALLBACK(listStarSliderChange), sb);
00124 g_signal_connect(sb->entry, "focus-out-event", G_CALLBACK(listStarEntryChange), sb);
00125 gtk_box_pack_start(GTK_BOX(vbox), sb->scale, TRUE, FALSE, 0);
00126 gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, FALSE, 0);
00127
00128 /* Set initial Star Value */
00129 gtk_range_set_value(GTK_RANGE(sb->scale), sb->numListStars);
00130 if (sb->numListStars == MINLISTSTARS)
00131 {
00132 /* Force update manually (scale won't trigger event) */
00133 listStarEntryChange(GTK_ENTRY(sb->entry), NULL, sb);
00134 refreshBrowser(NULL, sb);
00135 }
00136
00137 /* Radio Buttons */
00138 vbox = gtk_vbox_new(TRUE, 0);
00139 makeRadioItems(sbRadioLabels, vbox, GTK_SIGNAL_FUNC(radioClicked), NULL, sb);
00140 gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 0);
00141
00142 /* Common Buttons */
00143 hbox = gtk_hbox_new(TRUE, CELSPACING);
00144 if (buttonMake(hbox, "Center", (GtkSignalFunc)actionCenterSelection, app))
00145 return;
00146 if (buttonMake(hbox, "Go To", (GtkSignalFunc)actionGotoSelection, app))
00147 return;
00148 if (buttonMake(hbox, "Refresh", (GtkSignalFunc)refreshBrowser, sb))
00149 return;
00150 gtk_box_pack_start(GTK_BOX(mainbox), hbox, FALSE, FALSE, 0);
00151
00152 g_signal_connect(browser, "response", G_CALLBACK(starDestroy), browser);
00153
00154 gtk_widget_set_usize(browser, 500, 400); /* Absolute Size, urghhh */
00155 gtk_widget_show_all(browser);
00156 }
|
|
|
Initial value:
{
"Nearest",
"Brightest (App.)",
"Brightest (Abs.)",
"With Planets",
NULL
}
Definition at line 51 of file dialog-star.h. |
|
|
Initial value:
{
"Name",
"Distance(LY)",
"App. Mag",
"Abs. Mag",
"Type"
}
Definition at line 42 of file dialog-star.h. |
1.4.1