;; -*- scheme -*-
; object definitions ...
(define-object EMap
  (in-module "emap")
  (parent "GtkWidget")
  (c-name "EMap")
  (gtype-id "E_TYPE_MAP")
)

; boxed types ...
(define-boxed EMapPoint
  (in-module "emap")
  (c-name "EMapPoint")
  (gtype-id "E_TYPE_MAP_POINT")
  (copy-func "e_map_point_copy")
  (release-func "e_map_point_free")
)

;; Enumerations and flags ...


;; From cut-and-paste/e-map/e-map.h

(define-function e_map_get_type
  (c-name "e_map_get_type")
  (return-type "GtkType")
)

(define-function e_map_new
  (c-name "e_map_new")
  (is-constructor-of "EMap")
  (return-type "EMap*")
)

(define-method freeze
  (of-object "EMap")
  (c-name "e_map_freeze")
  (return-type "none")
)

(define-method thaw
  (of-object "EMap")
  (c-name "e_map_thaw")
  (return-type "none")
)

(define-method window_to_world
  (of-object "EMap")
  (c-name "e_map_window_to_world")
  (return-type "none")
  (parameters
    '("double" "win_x")
    '("double" "win_y")
    '("double*" "world_longitude")
    '("double*" "world_latitude")
  )
)

(define-method world_to_window
  (of-object "EMap")
  (c-name "e_map_world_to_window")
  (return-type "none")
  (parameters
    '("double" "world_longitude")
    '("double" "world_latitude")
    '("double*" "win_x")
    '("double*" "win_y")
  )
)

(define-method get_magnification
  (of-object "EMap")
  (c-name "e_map_get_magnification")
  (return-type "double")
)

(define-method set_smooth_zoom
  (of-object "EMap")
  (c-name "e_map_set_smooth_zoom")
  (return-type "none")
  (parameters
    '("gboolean" "state")
  )
)

(define-method get_smooth_zoom
  (of-object "EMap")
  (c-name "e_map_get_smooth_zoom")
  (return-type "gboolean")
)

(define-method zoom_to_location
  (of-object "EMap")
  (c-name "e_map_zoom_to_location")
  (return-type "none")
  (parameters
    '("double" "longitude")
    '("double" "latitude")
  )
)

(define-method zoom_out
  (of-object "EMap")
  (c-name "e_map_zoom_out")
  (return-type "none")
)

(define-method add_point
  (of-object "EMap")
  (c-name "e_map_add_point")
  (return-type "EMapPoint*")
  (parameters
    '("gchar*" "name")
    '("double" "longitude")
    '("double" "latitude")
    '("guint32" "color_rgba")
  )
)

(define-method remove_point
  (of-object "EMap")
  (c-name "e_map_remove_point")
  (return-type "none")
  (parameters
    '("EMapPoint*" "point")
  )
)

(define-method copy
  (of-object "EMapPoint")
  (c-name "e_map_point_copy")
  (return-type "EMapPoint*")
)

(define-method free
  (of-object "EMapPoint")
  (c-name "e_map_point_free")
  (return-type "none")
)

(define-function e_map_point_get_type
  (c-name "e_map_point_get_type")
  (return-type "GtkType")
)

(define-method get_location
  (of-object "EMapPoint")
  (c-name "e_map_point_get_location")
  (return-type "none")
  (parameters
    '("double*" "longitude")
    '("double*" "latitude")
  )
)

(define-method get_name
  (of-object "EMapPoint")
  (c-name "e_map_point_get_name")
  (return-type "gchar*")
)

(define-method get_color_rgba
  (of-object "EMapPoint")
  (c-name "e_map_point_get_color_rgba")
  (return-type "guint32")
)

(define-method point_set_color_rgba
  (of-object "EMap")
  (c-name "e_map_point_set_color_rgba")
  (return-type "none")
  (parameters
    '("EMapPoint*" "point")
    '("guint32" "color_rgba")
  )
)

(define-method set_data
  (of-object "EMapPoint")
  (c-name "e_map_point_set_data")
  (return-type "none")
  (parameters
    '("gpointer" "data")
  )
)

(define-method get_data
  (of-object "EMapPoint")
  (c-name "e_map_point_get_data")
  (return-type "gpointer")
)

(define-method point_is_in_view
  (of-object "EMap")
  (c-name "e_map_point_is_in_view")
  (return-type "gboolean")
  (parameters
    '("EMapPoint*" "point")
  )
)

(define-method get_closest_point
  (of-object "EMap")
  (c-name "e_map_get_closest_point")
  (return-type "EMapPoint*")
  (parameters
    '("double" "longitude")
    '("double" "latitude")
    '("gboolean" "in_view")
  )
)


