void set_predefined_projections(int is_source, int projection) { GtkWidget * predefined_projection_option_menu; GtkWidget * menu = NULL; /* looking through all the files can be slow, skip it if we can */ if (projection == previous_projection) return; if (previous_projection == -1) { /* populate all the predefined projection menus */ source_utm_menu = populate_predefined_projections(PROJ_UTM); target_utm_menu = populate_predefined_projections(PROJ_UTM); source_latlon_menu = populate_predefined_projections(PROJ_LATLON); target_latlon_menu = populate_predefined_projections(PROJ_LATLON); source_ps_menu = populate_predefined_projections(PROJ_PS); target_ps_menu = populate_predefined_projections(PROJ_PS); source_lamcc_menu = populate_predefined_projections(PROJ_LAMCC); target_lamcc_menu = populate_predefined_projections(PROJ_LAMCC); source_lamaz_menu = populate_predefined_projections(PROJ_LAMAZ); target_lamaz_menu = populate_predefined_projections(PROJ_LAMAZ); source_albers_menu = populate_predefined_projections(PROJ_ALBERS); target_albers_menu = populate_predefined_projections(PROJ_ALBERS); g_object_ref(source_latlon_menu); g_object_ref(source_utm_menu); g_object_ref(source_ps_menu); g_object_ref(source_lamcc_menu); g_object_ref(source_lamaz_menu); g_object_ref(source_albers_menu); g_object_ref(target_latlon_menu); g_object_ref(target_utm_menu); g_object_ref(target_ps_menu); g_object_ref(target_lamcc_menu); g_object_ref(target_lamaz_menu); g_object_ref(target_albers_menu); } predefined_projection_option_menu = is_source ? get_widget_checked("source_predefined_projection_option_menu") : get_widget_checked("target_predefined_projection_option_menu"); switch (projection) { case PROJ_UTM: menu = is_source ? source_utm_menu : target_utm_menu; break; case PROJ_LATLON: menu = is_source ? source_latlon_menu : target_latlon_menu; break; case PROJ_PS: menu = is_source ? source_ps_menu : target_ps_menu; break; case PROJ_LAMCC: menu = is_source ? source_lamcc_menu : target_lamcc_menu; break; case PROJ_LAMAZ: menu = is_source ? source_lamaz_menu : target_lamaz_menu; break; case PROJ_ALBERS: menu = is_source ? source_albers_menu : target_albers_menu; break; } g_assert(menu); previous_projection = projection; gtk_option_menu_set_menu( GTK_OPTION_MENU(predefined_projection_option_menu), menu); gtk_option_menu_set_history( GTK_OPTION_MENU(predefined_projection_option_menu), 0); gtk_widget_show(menu); gtk_widget_show(predefined_projection_option_menu); }
void set_predefined_projections(int projection) { GtkWidget * predefined_projection_option_menu; GtkWidget * menu = NULL; /* looking through all the files can be slow, skip it if we can */ if (projection == previous_projection) return; if (previous_projection == -1) { /* populate all the predefined projection menus */ utm_menu = populate_predefined_projections(PROJ_UTM); ps_menu = populate_predefined_projections(PROJ_PS); lamcc_menu = populate_predefined_projections(PROJ_LAMCC); lamaz_menu = populate_predefined_projections(PROJ_LAMAZ); albers_menu = populate_predefined_projections(PROJ_ALBERS); mer_menu = populate_predefined_projections(PROJ_MER); eqr_menu = populate_predefined_projections(PROJ_EQR); geo_menu = populate_predefined_projections(PROJ_GEO); g_object_ref(utm_menu); g_object_ref(ps_menu); g_object_ref(lamcc_menu); g_object_ref(lamaz_menu); g_object_ref(albers_menu); g_object_ref(mer_menu); g_object_ref(eqr_menu); g_object_ref(geo_menu); } predefined_projection_option_menu = get_widget_checked("predefined_projection_option_menu"); g_assert(predefined_projection_option_menu); switch (projection) { case PROJ_UTM: menu = utm_menu; break; case PROJ_PS: menu = ps_menu; break; case PROJ_LAMCC: menu = lamcc_menu; break; case PROJ_LAMAZ: menu = lamaz_menu; break; case PROJ_ALBERS: menu = albers_menu; break; case PROJ_MER: menu = mer_menu; break; case PROJ_EQR: menu = eqr_menu; break; case PROJ_GEO: menu = geo_menu; break; } g_assert(menu); previous_projection = projection; gtk_option_menu_set_menu( GTK_OPTION_MENU(predefined_projection_option_menu), menu); gtk_option_menu_set_history( GTK_OPTION_MENU(predefined_projection_option_menu), 0); gtk_widget_show(menu); gtk_widget_show(predefined_projection_option_menu); }