~gpredict-team/gpredict/gpredict-packaging

« back to all changes in this revision

Viewing changes to src/sat-pass-dialogs.c

  • Committer: Bazaar Package Importer
  • Author(s): Fernando M. Maresca
  • Date: 2011-02-21 12:32:33 UTC
  • mto: (3.1.7 sid)
  • mto: This revision was merged to the branch mainline in revision 18.
  • Revision ID: james.westby@ubuntu.com-20110221123233-50ztzx1wch3jqcs8
Tags: upstream-1.2
ImportĀ upstreamĀ versionĀ 1.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
11
11
  More details can be found at the project home page:
12
12
 
13
13
  http://gpredict.oz9aec.net/
14
 
 
 
14
 
15
15
  This program is free software; you can redistribute it and/or modify
16
16
  it under the terms of the GNU General Public License as published by
17
17
  the Free Software Foundation; either version 2 of the License, or
46
46
#include "gtk-polar-plot.h"
47
47
#include "gtk-azel-plot.h"
48
48
#include "save-pass.h"
 
49
#include "print-pass.h"
49
50
 
50
51
 
51
52
 
265
266
 * of fullscreen modules.
266
267
 *
267
268
 */
268
 
void
269
 
show_pass (const gchar *satname, qth_t *qth, pass_t *pass, GtkWidget *toplevel)
 
269
void show_pass (const gchar *satname, qth_t *qth, pass_t *pass, GtkWidget *toplevel)
270
270
{
271
271
    GtkWidget         *dialog;      /* the dialogue window */
272
272
    GtkWidget         *notebook;    /* the notebook widet */
369
369
                            SINGLE_PASS_COL_MA, detail->ma,
370
370
                            SINGLE_PASS_COL_PHASE, detail->phase,
371
371
                            -1);
372
 
                
 
372
 
373
373
        /*     SINGLE_PASS_COL_RA */
374
374
        /*     SINGLE_PASS_COL_DEC */
375
375
        if (flags & (SINGLE_PASS_FLAG_RA | SINGLE_PASS_FLAG_DEC)) {
516
516
 
517
517
    g_signal_connect (dialog, "response",
518
518
                      G_CALLBACK (single_pass_response), NULL);
519
 
     g_signal_connect (dialog, "destroy",
 
519
    g_signal_connect (dialog, "destroy",
520
520
                      G_CALLBACK (single_pass_dialog_destroy), NULL);
521
521
    g_signal_connect (dialog, "delete_event",
522
522
                      G_CALLBACK (single_pass_dialog_delete), NULL);    
538
538
 * Use sat, qth, and passes labels to obtain the relevant data
539
539
 *
540
540
 */
541
 
static void
542
 
single_pass_response (GtkWidget *dialog, gint response, gpointer data)
 
541
static void single_pass_response (GtkWidget *dialog, gint response, gpointer data)
543
542
{
544
543
 
545
544
    switch (response) {
547
546
    case RESPONSE_PRINT:
548
547
        sat_log_log (SAT_LOG_LEVEL_ERROR,
549
548
                     _("%s: PRINT not implemented"),
550
 
                       __FUNCTION__);
 
549
                     __FUNCTION__);
 
550
 
 
551
        pass_t    *pass = (pass_t *) g_object_get_data (G_OBJECT (dialog), "pass");
 
552
        qth_t     *qth = (qth_t *) g_object_get_data (G_OBJECT (dialog), "qth");
 
553
 
 
554
        print_pass (pass, qth, GTK_WINDOW (dialog));
551
555
        break;
552
556
 
553
557
    case RESPONSE_SAVE:
564
568
 
565
569
 
566
570
/** \brief Set cell renderer function. */
567
 
static void
568
 
check_and_set_single_cell_renderer (GtkTreeViewColumn *column,
569
 
                                    GtkCellRenderer   *renderer,
570
 
                                    gint               i)
 
571
static void check_and_set_single_cell_renderer (GtkTreeViewColumn *column,
 
572
                                                GtkCellRenderer   *renderer,
 
573
                                                gint               i)
571
574
{
572
575
 
573
576
    switch (i) {
660
663
   displayed (rendered), the tree_store will still contain the
661
664
   original flaoting point numbers. Very cool!
662
665
*/
663
 
static void
664
 
latlon_cell_data_function (GtkTreeViewColumn *col,
665
 
                           GtkCellRenderer   *renderer,
666
 
                           GtkTreeModel      *model,
667
 
                           GtkTreeIter       *iter,
668
 
                           gpointer           column)
 
666
static void latlon_cell_data_function (GtkTreeViewColumn *col,
 
667
                                       GtkCellRenderer   *renderer,
 
668
                                       GtkTreeModel      *model,
 
669
                                       GtkTreeIter       *iter,
 
670
                                       gpointer           column)
669
671
{
670
672
    gdouble   number = 0.0;
671
673
    gchar   *buff;
717
719
 
718
720
 
719
721
/* general floats with 2 digits + degree char */
720
 
static void
721
 
degree_cell_data_function (GtkTreeViewColumn *col,
722
 
                           GtkCellRenderer   *renderer,
723
 
                           GtkTreeModel      *model,
724
 
                           GtkTreeIter       *iter,
725
 
                           gpointer           column)
 
722
static void degree_cell_data_function (GtkTreeViewColumn *col,
 
723
                                       GtkCellRenderer   *renderer,
 
724
                                       GtkTreeModel      *model,
 
725
                                       GtkTreeIter       *iter,
 
726
                                       gpointer           column)
726
727
{
727
728
    gdouble    number;
728
729
    gchar     *buff;
741
742
 
742
743
 
743
744
/* distance and velocity, 0 decimal digits */
744
 
static void
745
 
distance_cell_data_function (GtkTreeViewColumn *col,
746
 
                             GtkCellRenderer   *renderer,
747
 
                             GtkTreeModel      *model,
748
 
                             GtkTreeIter       *iter,
749
 
                             gpointer           column)
 
745
static void distance_cell_data_function (GtkTreeViewColumn *col,
 
746
                                         GtkCellRenderer   *renderer,
 
747
                                         GtkTreeModel      *model,
 
748
                                         GtkTreeIter       *iter,
 
749
                                         gpointer           column)
750
750
{
751
751
    gdouble    number;
752
752
    gchar     *buff;
770
770
/* range rate is special, because we may need to convert to miles
771
771
   and want 2-3 decimal digits.
772
772
*/
773
 
static void
774
 
range_rate_cell_data_function (GtkTreeViewColumn *col,
775
 
                               GtkCellRenderer   *renderer,
776
 
                               GtkTreeModel      *model,
777
 
                               GtkTreeIter       *iter,
778
 
                               gpointer           column)
 
773
static void range_rate_cell_data_function (GtkTreeViewColumn *col,
 
774
                                           GtkCellRenderer   *renderer,
 
775
                                           GtkTreeModel      *model,
 
776
                                           GtkTreeIter       *iter,
 
777
                                           gpointer           column)
779
778
{
780
779
    gdouble    number;
781
780
    gchar     *buff;
797
796
}
798
797
 
799
798
/* 0 decimal digits */
800
 
static void
801
 
float_to_int_cell_data_function (GtkTreeViewColumn *col,
802
 
                                 GtkCellRenderer   *renderer,
803
 
                                 GtkTreeModel      *model,
804
 
                                 GtkTreeIter       *iter,
805
 
                                 gpointer           column)
 
799
static void float_to_int_cell_data_function (GtkTreeViewColumn *col,
 
800
                                             GtkCellRenderer   *renderer,
 
801
                                             GtkTreeModel      *model,
 
802
                                             GtkTreeIter       *iter,
 
803
                                             gpointer           column)
806
804
{
807
805
    gdouble    number;
808
806
    gchar     *buff;
819
817
}
820
818
 
821
819
/* 2 decimal digits */
822
 
static void
823
 
two_dec_cell_data_function (GtkTreeViewColumn *col,
824
 
                            GtkCellRenderer   *renderer,
825
 
                            GtkTreeModel      *model,
826
 
                            GtkTreeIter       *iter,
827
 
                            gpointer           column)
 
820
static void two_dec_cell_data_function (GtkTreeViewColumn *col,
 
821
                                        GtkCellRenderer   *renderer,
 
822
                                        GtkTreeModel      *model,
 
823
                                        GtkTreeIter       *iter,
 
824
                                        gpointer           column)
828
825
{
829
826
    gdouble    number;
830
827
    gchar     *buff;
842
839
 
843
840
 
844
841
/* AOS/LOS; convert julian date to string */
845
 
static void
846
 
time_cell_data_function (GtkTreeViewColumn *col,
847
 
                         GtkCellRenderer   *renderer,
848
 
                         GtkTreeModel      *model,
849
 
                         GtkTreeIter       *iter,
850
 
                         gpointer           column)
 
842
static void time_cell_data_function (GtkTreeViewColumn *col,
 
843
                                     GtkCellRenderer   *renderer,
 
844
                                     GtkTreeModel      *model,
 
845
                                     GtkTreeIter       *iter,
 
846
                                     gpointer           column)
851
847
{
852
848
    gdouble    number;
853
849
    gchar      buff[TIME_FORMAT_MAX_LENGTH];
898
894
 
899
895
 
900
896
 
901
 
static gint
902
 
single_pass_dialog_delete  (GtkWidget *dialog, GdkEvent *event, gpointer pass)
 
897
static gint single_pass_dialog_delete  (GtkWidget *dialog, GdkEvent *event, gpointer pass)
903
898
{
904
899
    /* dialog will be destroyed */
905
900
    return FALSE;
906
901
}
907
902
 
908
 
static void
909
 
single_pass_dialog_destroy (GtkWidget *dialog, gpointer data)
 
903
static void single_pass_dialog_destroy (GtkWidget *dialog, gpointer data)
910
904
{
911
905
    pass_t *pass = PASS(g_object_get_data (G_OBJECT (dialog), "pass"));
912
906
 
917
911
 
918
912
 
919
913
/*** FIXME: formalise with other copies */
920
 
static void
921
 
Calc_RADec (gdouble jul_utc, gdouble saz, gdouble sel,
922
 
            qth_t *qth, obs_astro_t *obs_set)
 
914
static void Calc_RADec (gdouble jul_utc, gdouble saz, gdouble sel,
 
915
                        qth_t *qth, obs_astro_t *obs_set)
923
916
{
924
917
 
925
918
    double phi,theta,sin_theta,cos_theta,sin_phi,cos_phi,
926
 
        az,el,Lxh,Lyh,Lzh,Sx,Ex,Zx,Sy,Ey,Zy,Sz,Ez,Zz,
927
 
        Lx,Ly,Lz,cos_delta,sin_alpha,cos_alpha;
 
919
    az,el,Lxh,Lyh,Lzh,Sx,Ex,Zx,Sy,Ey,Zy,Sz,Ez,Zz,
 
920
    Lx,Ly,Lz,cos_delta,sin_alpha,cos_alpha;
928
921
    geodetic_t geodetic;
929
922
 
930
923
 
978
971
 * details of a pass.
979
972
 *
980
973
 */
981
 
void
982
 
show_passes (const gchar *satname, qth_t *qth, GSList *passes, GtkWidget *toplevel)
 
974
void show_passes (const gchar *satname, qth_t *qth, GSList *passes, GtkWidget *toplevel)
983
975
{
984
976
    GtkWidget         *dialog;
985
977
    GtkWidget         *list;
1151
1143
 * Use sat, qth, and passes labels to obtain the relevant data
1152
1144
 *
1153
1145
 */
1154
 
static void
1155
 
multi_pass_response (GtkWidget *dialog, gint response, gpointer data)
 
1146
static void multi_pass_response (GtkWidget *dialog, gint response, gpointer data)
1156
1147
{
1157
1148
    switch (response) {
1158
1149
 
1159
1150
    case RESPONSE_PRINT:
1160
1151
        sat_log_log (SAT_LOG_LEVEL_ERROR,
1161
1152
                     _("%s: PRINT not implemented"),
1162
 
                       __FUNCTION__);
 
1153
                     __FUNCTION__);
1163
1154
        break;
1164
1155
 
1165
1156
    case RESPONSE_SAVE:
1175
1166
 
1176
1167
 
1177
1168
 
1178
 
static gint
1179
 
multi_pass_dialog_delete  (GtkWidget *dialog, GdkEvent *event, gpointer pass)
 
1169
static gint multi_pass_dialog_delete  (GtkWidget *dialog, GdkEvent *event, gpointer pass)
1180
1170
{
1181
1171
    /* dialog will be destroyed */
1182
1172
    return FALSE;
1183
1173
}
1184
1174
 
1185
1175
 
1186
 
static void
1187
 
multi_pass_dialog_destroy (GtkWidget *dialog, gpointer data)
 
1176
static void multi_pass_dialog_destroy (GtkWidget *dialog, gpointer data)
1188
1177
{
1189
1178
    GSList *passes = (GSList *) g_object_get_data (G_OBJECT (dialog), "passes");
1190
1179
 
1196
1185
 
1197
1186
 
1198
1187
/** \brief Set cell renderer function. */
1199
 
static void
1200
 
check_and_set_multi_cell_renderer (GtkTreeViewColumn *column,
1201
 
                                   GtkCellRenderer   *renderer,
1202
 
                                   gint               i)
 
1188
static void check_and_set_multi_cell_renderer (GtkTreeViewColumn *column,
 
1189
                                               GtkCellRenderer   *renderer,
 
1190
                                               gint               i)
1203
1191
{
1204
1192
 
1205
1193
    switch (i) {
1246
1234
 
1247
1235
 
1248
1236
/* duration; convert delta t in days to HH:MM:SS */
1249
 
static void
1250
 
duration_cell_data_function (GtkTreeViewColumn *col,
1251
 
                             GtkCellRenderer   *renderer,
1252
 
                             GtkTreeModel      *model,
1253
 
                             GtkTreeIter       *iter,
1254
 
                             gpointer           column)
 
1237
static void duration_cell_data_function (GtkTreeViewColumn *col,
 
1238
                                         GtkCellRenderer   *renderer,
 
1239
                                         GtkTreeModel      *model,
 
1240
                                         GtkTreeIter       *iter,
 
1241
                                         gpointer           column)
1255
1242
{
1256
1243
    gdouble    number;
1257
1244
    gchar     *buff;
1323
1310
 * usually happens if the user presses SHJIFT-F10? It is used as a wrapper
1324
1311
 * for the function that actually creates the popup menu.
1325
1312
 */
1326
 
static gboolean
1327
 
popup_menu_cb (GtkWidget *treeview, gpointer data)
 
1313
static gboolean popup_menu_cb (GtkWidget *treeview, gpointer data)
1328
1314
{
1329
1315
 
1330
1316
    /* if there is no selection, select the first row */
1342
1328
 *  \param list Pointer to the GtkSatList widget.
1343
1329
 *
1344
1330
 */
1345
 
static gboolean
1346
 
button_press_cb (GtkWidget *treeview, GdkEventButton *event, gpointer data)
 
1331
static gboolean button_press_cb (GtkWidget *treeview, GdkEventButton *event, gpointer data)
1347
1332
{
1348
1333
 
1349
1334
    /* single click with the right mouse button? */
1384
1369
}
1385
1370
 
1386
1371
 
1387
 
static void
1388
 
view_popup_menu (GtkWidget *treeview, GdkEventButton *event, gpointer data)
 
1372
static void view_popup_menu (GtkWidget *treeview, GdkEventButton *event, gpointer data)
1389
1373
{
1390
1374
    GtkTreeSelection *selection;
1391
1375
    GtkTreeModel     *model;
1413
1397
        pass = copy_pass (PASS (g_slist_nth_data (passes, rownum)));
1414
1398
 
1415
1399
        pass_popup_menu_exec (qth, pass, event, gtk_widget_get_toplevel (treeview));
1416
 
            
 
1400
 
1417
1401
 
1418
1402
    }
1419
1403
    else {