navit  0.5.3-trunk
gui_internal_poi.c File Reference
#include <glib.h>
#include <stdlib.h>
#include "color.h"
#include "coord.h"
#include "point.h"
#include "callback.h"
#include "graphics.h"
#include "debug.h"
#include "navit.h"
#include "navit_nls.h"
#include "item.h"
#include "xmlconfig.h"
#include "map.h"
#include "mapset.h"
#include "layout.h"
#include "route.h"
#include "transform.h"
#include "linguistics.h"
#include "fib.h"
#include "util.h"
#include "gui_internal.h"
#include "gui_internal_widget.h"
#include "gui_internal_priv.h"
#include "gui_internal_html.h"
#include "gui_internal_menu.h"
#include "gui_internal_keyboard.h"
#include "gui_internal_poi.h"

Data Structures

struct  item_data
 
struct  selector
 

Functions

static struct graphics_imagegui_internal_poi_icon (struct gui_priv *this, struct item *item)
 Get icon for given POI type. More...
 
void gui_internal_poi_param_free (void *p)
 Free poi_param structure. More...
 
static struct poi_paramgui_internal_poi_param_clone (struct poi_param *p)
 Clone poi_param structure. More...
 
void gui_internal_poi_param_set_filter (struct poi_param *param, char *text)
 Set POIs filter data in poi_param structure. More...
 
static struct widgetgui_internal_cmd_pois_selector (struct gui_priv *this, struct pcoord *c, int pagenb)
 
static void format_dist (int dist, char *distbuf)
 Widget to display POI item. More...
 
struct widgetgui_internal_cmd_pois_item (struct gui_priv *this, struct coord *center, struct item *item, struct coord *c, struct route *route, int dist, char *name)
 
char * gui_internal_compose_item_address_string (struct item *item, int prependPostal)
 Get string representation of item address suitable for doing search and for display in POI list. More...
 
static int gui_internal_cmd_pois_item_selected (struct poi_param *param, struct item *item)
 
static void gui_internal_cmd_pois_more (struct gui_priv *this, struct widget *wm, void *data)
 Event handler for POIs list "more" element. More...
 
static void gui_internal_cmd_pois_filter_do (struct gui_priv *this, struct widget *wm, void *data)
 Event to apply POIs text filter. More...
 
static void gui_internal_cmd_pois_filter_changed (struct gui_priv *this, struct widget *wm, void *data)
 POIs filter dialog. Event to handle '\r' '
' keys pressed. More...
 
void gui_internal_cmd_pois_filter (struct gui_priv *this, struct widget *wm, void *data)
 POIs filter dialog. More...
 
void gui_internal_cmd_pois (struct gui_priv *this, struct widget *wm, void *data)
 Do POI search specified by poi_param and display POIs found. More...
 

Variables

static enum item_type selectors_BankTypes [] = {type_poi_bank,type_poi_bank, type_poi_atm,type_poi_atm, type_none}
 
static enum item_type selectors_FuelTypes [] = {type_poi_fuel,type_poi_fuel,type_none}
 
static enum item_type selectors_BusTrainTypes []
 
static enum item_type selectors_HotelTypes []
 
static enum item_type selectors_RestaurantTypes []
 
static enum item_type selectors_ShoppingTypes []
 
static enum item_type selectors_ServiceTypes []
 
static enum item_type selectors_ParkingTypes [] = {type_poi_car_parking,type_poi_car_parking,type_none}
 
static enum item_type selectors_LandFeaturesTypes []
 
static enum item_type selectors_OtherTypes []
 
struct selector selectors []
 

Function Documentation

◆ format_dist()

static void format_dist ( int  dist,
char *  distbuf 
)
static

Widget to display POI item.

Parameters
thispointer to gui context
centerreference to the standing point where angle to be counted from
itemPOI item reference
cPOI coordinates
distprecomputed distance to POI (or -1 if it's not to be displayed)
namePOI name
Returns
Pointer to new widget.

References poi_param::dist.

Referenced by gui_internal_cmd_pois_item().

◆ gui_internal_cmd_pois()

void gui_internal_cmd_pois ( struct gui_priv this,
struct widget wm,
void *  data 
)

Do POI search specified by poi_param and display POIs found.

Parameters
thisThe graphics context.
wmcalled widget.
dataevent data, reference to poi_param or NULL.

References _, poi_param::AddressFilterType, widget::background, table_data::bottom_row, widget::c, c, map_selection::c_rect, center, widget::children, coord_rect_contains(), poi_param::count, widget::data, data, widget::data_free, widget::datai, dbg, item_data::dist, poi_param::dist, fh_deleteheap(), fh_extractmin(), fh_insertkey(), fh_makekeyheap(), fh_minkey(), poi_param::filter, poi_param::filterstr, flags_expand, flags_fill, widget::func, gravity_left, gravity_left_center, gravity_left_top, gravity_top_center, gui_internal_box_new(), gui_internal_cmd_pois_item(), gui_internal_cmd_pois_item_selected(), gui_internal_cmd_pois_more(), gui_internal_cmd_pois_selector(), gui_internal_compose_item_address_string(), gui_internal_label_new(), gui_internal_menu(), gui_internal_menu_render(), gui_internal_poi_param_clone(), gui_internal_poi_param_free(), gui_internal_table_button_next(), gui_internal_widget_append(), gui_internal_widget_prepend(), gui_internal_widget_table_new(), gui_internal_widget_table_row_new(), item, item_attr_get(), item_attr_rewind(), item_coord_get_pro(), key, label, lvl_debug, item::map, map_convert_string(), map_convert_string_tmp(), map_projection(), map_rect_destroy(), map_rect_get_item(), map_rect_new(), map_selection_destroy(), map_selection_dup_pro(), map_selection_rect_new(), mapset_close(), mapset_next(), mapset_open(), selector::name, navit_get_attr(), navit_get_mapset(), scroll_buttons::next_button, orientation_horizontal, orientation_vertical, poi_param::pagenb, pcoord::pro, route_get_attr(), route_status_path_done_incremental, route_status_path_done_new, table_data::scroll_buttons, poi_param::sel, selectors, poi_param::selnb, widget::state, STATE_SENSITIVE, attr::str, table_data::top_row, transform_distance(), transform_scale(), item::type, attr::u, map_selection::u, widget::w, pcoord::x, and pcoord::y.

Referenced by gui_internal_cmd2_pois(), gui_internal_cmd_pois_filter_do(), gui_internal_cmd_pois_more(), gui_internal_cmd_pois_selector(), and gui_internal_cmd_position_do().

◆ gui_internal_cmd_pois_filter()

◆ gui_internal_cmd_pois_filter_changed()

static void gui_internal_cmd_pois_filter_changed ( struct gui_priv this,
struct widget wm,
void *  data 
)
static

POIs filter dialog. Event to handle '\r' '
' keys pressed.

References gui_internal_cmd_pois_filter_do(), gui_internal_reason_keypress_finish, widget::reason, and widget::text.

Referenced by gui_internal_cmd_pois_filter().

◆ gui_internal_cmd_pois_filter_do()

static void gui_internal_cmd_pois_filter_do ( struct gui_priv this,
struct widget wm,
void *  data 
)
static

Event to apply POIs text filter.

Parameters
thisThe graphics context.
wmcalled widget.
dataevent data (pointer to editor widget containg filter text).

References poi_param::AddressFilterType, widget::data, data, gui_internal_cmd_pois(), gui_internal_poi_param_clone(), gui_internal_poi_param_free(), gui_internal_poi_param_set_filter(), widget::name, poi_param::pagenb, widget::text, and widget::w.

Referenced by gui_internal_cmd_pois_filter(), and gui_internal_cmd_pois_filter_changed().

◆ gui_internal_cmd_pois_item()

◆ gui_internal_cmd_pois_item_selected()

◆ gui_internal_cmd_pois_more()

static void gui_internal_cmd_pois_more ( struct gui_priv this,
struct widget wm,
void *  data 
)
static

Event handler for POIs list "more" element.

Parameters
thisThe graphics context.
wmcalled widget.
dataevent data.

References widget::c, widget::data, widget::data_free, gui_internal_back(), gui_internal_cmd_pois(), and widget::w.

Referenced by gui_internal_cmd_pois().

◆ gui_internal_cmd_pois_selector()

◆ gui_internal_compose_item_address_string()

char* gui_internal_compose_item_address_string ( struct item item,
int  prependPostal 
)

Get string representation of item address suitable for doing search and for display in POI list.

Parameters
itemreference to item.
Returns
Pointer to string representation of address. To be g_free()d after use.

References item_attr_get(), item::map, map_convert_string_tmp(), attr::str, and attr::u.

Referenced by gui_internal_cmd_pois(), and gui_internal_cmd_pois_item_selected().

◆ gui_internal_poi_icon()

static struct graphics_image* gui_internal_poi_icon ( struct gui_priv this,
struct item item 
)
static

◆ gui_internal_poi_param_clone()

static struct poi_param* gui_internal_poi_param_clone ( struct poi_param p)
static

Clone poi_param structure.

Parameters
preference to the object to be cloned.
Returns
Cloned object reference.

References poi_param::filter, poi_param::filterstr, and p.

Referenced by gui_internal_cmd_pois(), and gui_internal_cmd_pois_filter_do().

◆ gui_internal_poi_param_free()

void gui_internal_poi_param_free ( void *  p)

Free poi_param structure.

Parameters
preference to the object to be freed.

References p.

Referenced by gui_internal_cmd2_pois(), gui_internal_cmd_pois(), gui_internal_cmd_pois_filter_do(), and gui_internal_cmd_pois_selector().

◆ gui_internal_poi_param_set_filter()

void gui_internal_poi_param_set_filter ( struct poi_param param,
char *  text 
)

Set POIs filter data in poi_param structure.

Parameters
parampoi_param structure with unset filter data.
textfilter text.

References poi_param::filter, poi_param::filterstr, removecase(), and s1.

Referenced by gui_internal_cmd2_pois(), and gui_internal_cmd_pois_filter_do().

Variable Documentation

◆ selectors

struct selector selectors[]
Initial value:
= {
{"bank","Bank",selectors_BankTypes},
{"fuel","Fuel",selectors_FuelTypes},
{"bus_stop","Bus&Train",selectors_BusTrainTypes},
{"hotel","Hotel",selectors_HotelTypes},
{"restaurant","Restaurant",selectors_RestaurantTypes},
{"shopping","Shopping",selectors_ShoppingTypes},
{"hospital","Service",selectors_ServiceTypes},
{"parking","Parking",selectors_ParkingTypes},
{"peak","Land Features",selectors_LandFeaturesTypes},
{"unknown","Other",selectors_OtherTypes},
}
static enum item_type selectors_RestaurantTypes[]
Definition: gui_internal_poi.c:50
static enum item_type selectors_ServiceTypes[]
Definition: gui_internal_poi.c:57
static enum item_type selectors_OtherTypes[]
Definition: gui_internal_poi.c:66
static enum item_type selectors_FuelTypes[]
Definition: gui_internal_poi.c:43
static enum item_type selectors_HotelTypes[]
Definition: gui_internal_poi.c:47
static enum item_type selectors_BusTrainTypes[]
Definition: gui_internal_poi.c:44
static enum item_type selectors_ParkingTypes[]
Definition: gui_internal_poi.c:62
static enum item_type selectors_LandFeaturesTypes[]
Definition: gui_internal_poi.c:63
static enum item_type selectors_ShoppingTypes[]
Definition: gui_internal_poi.c:53
static enum item_type selectors_BankTypes[]
Definition: gui_internal_poi.c:42

Referenced by gui_internal_cmd_pois(), gui_internal_cmd_pois_item_selected(), and gui_internal_cmd_pois_selector().

◆ selectors_BankTypes

enum item_type selectors_BankTypes[] = {type_poi_bank,type_poi_bank, type_poi_atm,type_poi_atm, type_none}
static

◆ selectors_BusTrainTypes

enum item_type selectors_BusTrainTypes[]
static
Initial value:
= {type_poi_rail_station,type_poi_rail_station,
type_poi_rail_halt,type_poi_rail_tram_stop,type_poi_bus_station,type_poi_bus_stop,type_none
}

◆ selectors_FuelTypes

enum item_type selectors_FuelTypes[] = {type_poi_fuel,type_poi_fuel,type_none}
static

◆ selectors_HotelTypes

enum item_type selectors_HotelTypes[]
static
Initial value:
= {type_poi_hotel,type_poi_camp_rv,type_poi_camping,type_poi_camping,
type_poi_resort,type_poi_resort,type_poi_motel,type_poi_hostel,type_none
}

◆ selectors_LandFeaturesTypes

enum item_type selectors_LandFeaturesTypes[]
static
Initial value:
= {type_poi_land_feature,type_poi_rock,type_poi_dam,type_poi_dam,
type_poi_peak,type_poi_peak,type_none
}

◆ selectors_OtherTypes

enum item_type selectors_OtherTypes[]
static
Initial value:
= {type_point_unspecified,type_poi_land_feature-1,type_poi_rock+1,type_poi_fuel-1,
type_poi_marina+1,type_poi_shopping-1,type_poi_shopping+1,type_poi_car_parking-1,type_poi_car_parking+1,
type_poi_bar-1,type_poi_bank+1,type_poi_dam-1,type_poi_dam+1,type_poi_information-1,type_poi_information+1,
type_poi_mall-1,type_poi_mall+1,type_poi_personal_service-1,type_poi_pharmacy+1,type_poi_repair_service-1,
type_poi_repair_service+1,type_poi_restaurant-1,type_poi_restaurant+1,type_poi_restroom-1,type_poi_restroom+1,
type_poi_shop_grocery-1,type_poi_shop_grocery+1,type_poi_peak-1,type_poi_peak+1,type_poi_motel-1,type_poi_hostel+1,
type_poi_shop_butcher-1,type_poi_shop_baker+1,type_poi_shop_fruit-1,type_poi_shop_fruit+1,type_poi_shop_beverages-1,
type_poi_shop_beverages+1,type_poi_pub-1,type_poi_atm+1,type_line-1,type_none
}

◆ selectors_ParkingTypes

enum item_type selectors_ParkingTypes[] = {type_poi_car_parking,type_poi_car_parking,type_none}
static

◆ selectors_RestaurantTypes

enum item_type selectors_RestaurantTypes[]
static
Initial value:
= {type_poi_bar,type_poi_picnic,type_poi_burgerking,type_poi_fastfood,
type_poi_restaurant,type_poi_restaurant,type_poi_cafe,type_poi_cafe,type_poi_pub,type_poi_pub,type_none
}

◆ selectors_ServiceTypes

enum item_type selectors_ServiceTypes[]
static
Initial value:
= {type_poi_marina,type_poi_marina,type_poi_hospital,type_poi_hospital,
type_poi_public_utilities,type_poi_public_utilities,type_poi_police,type_poi_autoservice,type_poi_information,
type_poi_information,type_poi_pharmacy,type_poi_pharmacy,type_poi_personal_service,type_poi_repair_service,
type_poi_restroom,type_poi_restroom,type_none
}

◆ selectors_ShoppingTypes

enum item_type selectors_ShoppingTypes[]
static
Initial value:
= {type_poi_mall,type_poi_mall,type_poi_shop_grocery,type_poi_shop_grocery,
type_poi_shopping,type_poi_shopping,type_poi_shop_butcher,type_poi_shop_baker,type_poi_shop_fruit,
type_poi_shop_fruit,type_poi_shop_beverages,type_poi_shop_beverages,type_none
}