2013-09-17 08:00:12 +00:00
# include <swe-glib.h>
2013-09-13 23:25:46 +00:00
# include "ag-chart.h"
struct _AgChartPrivate {
2013-09-17 20:18:24 +00:00
gchar * name ;
gchar * country ;
gchar * city ;
2013-09-13 23:25:46 +00:00
gchar * save_buffer ;
} ;
2013-09-17 20:18:24 +00:00
enum {
PROP_0 ,
PROP_NAME ,
PROP_COUNTRY ,
PROP_CITY
} ;
2013-09-13 23:25:46 +00:00
G_DEFINE_TYPE ( AgChart , ag_chart , GSWE_TYPE_MOMENT ) ;
# define GET_PRIVATE(instance) (G_TYPE_INSTANCE_GET_PRIVATE((instance), AG_TYPE_CHART, AgChartPrivate))
2013-09-17 20:18:24 +00:00
static void ag_chart_set_property ( GObject * gobject , guint prop_id , const GValue * value , GParamSpec * param_spec ) ;
static void ag_chart_get_property ( GObject * gobject , guint prop_id , GValue * value , GParamSpec * param_spec ) ;
static void ag_chart_finalize ( GObject * gobject ) ;
2013-09-13 23:25:46 +00:00
static void
ag_chart_class_init ( AgChartClass * klass )
{
2013-09-17 20:18:24 +00:00
GObjectClass * gobject_class = G_OBJECT_CLASS ( klass ) ;
2013-09-13 23:25:46 +00:00
g_type_class_add_private ( klass , sizeof ( AgChartPrivate ) ) ;
2013-09-17 20:18:24 +00:00
gobject_class - > set_property = ag_chart_set_property ;
gobject_class - > get_property = ag_chart_get_property ;
gobject_class - > finalize = ag_chart_finalize ;
g_object_class_install_property ( gobject_class , PROP_NAME , g_param_spec_string ( " name " , " Chart name " , " Name of the person on this chart " , NULL , G_PARAM_READWRITE ) ) ;
g_object_class_install_property ( gobject_class , PROP_COUNTRY , g_param_spec_string ( " country " , " Country name " , " Name of the country of birth " , NULL , G_PARAM_READWRITE ) ) ;
g_object_class_install_property ( gobject_class , PROP_CITY , g_param_spec_string ( " city " , " City name " , " Name of the city of birth " , NULL , G_PARAM_READWRITE ) ) ;
2013-09-13 23:25:46 +00:00
}
static void
ag_chart_init ( AgChart * chart )
{
chart - > priv = GET_PRIVATE ( chart ) ;
2013-09-17 20:18:24 +00:00
chart - > priv - > name = NULL ;
chart - > priv - > country = NULL ;
chart - > priv - > city = NULL ;
chart - > priv - > save_buffer = NULL ;
}
static void
ag_chart_set_property ( GObject * gobject , guint prop_id , const GValue * value , GParamSpec * param_spec )
{
switch ( prop_id ) {
case PROP_NAME :
ag_chart_set_name ( AG_CHART ( gobject ) , g_value_get_string ( value ) ) ;
break ;
case PROP_COUNTRY :
ag_chart_set_country ( AG_CHART ( gobject ) , g_value_get_string ( value ) ) ;
break ;
case PROP_CITY :
ag_chart_set_city ( AG_CHART ( gobject ) , g_value_get_string ( value ) ) ;
break ;
}
}
static void
ag_chart_get_property ( GObject * gobject , guint prop_id , GValue * value , GParamSpec * param_spec )
{
switch ( prop_id ) {
case PROP_NAME :
g_value_set_string ( value , AG_CHART ( gobject ) - > priv - > name ) ;
break ;
case PROP_COUNTRY :
g_value_set_string ( value , AG_CHART ( gobject ) - > priv - > country ) ;
break ;
case PROP_CITY :
g_value_set_string ( value , AG_CHART ( gobject ) - > priv - > city ) ;
break ;
}
}
static void
ag_chart_finalize ( GObject * gobject )
{
AgChart * chart = AG_CHART ( gobject ) ;
if ( chart - > priv - > name ! = NULL ) {
g_free ( chart - > priv - > name ) ;
}
if ( chart - > priv - > country ! = NULL ) {
g_free ( chart - > priv - > country ) ;
}
if ( chart - > priv - > city ! = NULL ) {
g_free ( chart - > priv - > city ) ;
}
if ( chart - > priv - > save_buffer ! = NULL ) {
g_free ( chart - > priv - > save_buffer ) ;
}
2013-09-13 23:25:46 +00:00
}
AgChart *
2013-09-14 15:37:33 +00:00
ag_chart_new_full ( GsweTimestamp * timestamp , gdouble longitude , gdouble latitude , gdouble altitude , GsweHouseSystem house_system )
2013-09-13 23:25:46 +00:00
{
2013-09-17 07:31:37 +00:00
AgChart * chart ;
2013-09-14 15:37:33 +00:00
GsweCoordinates * coords = g_new0 ( GsweCoordinates , 1 ) ;
coords - > longitude = longitude ;
coords - > latitude = latitude ;
coords - > altitude = altitude ;
2013-09-17 07:31:37 +00:00
chart = AG_CHART ( g_object_new ( AG_TYPE_CHART ,
2013-09-14 15:37:33 +00:00
" timestamp " , timestamp ,
" coordinates " , coords ,
" house-system " , house_system ,
NULL ) ) ;
g_free ( coords ) ;
2013-09-17 08:00:12 +00:00
gswe_moment_add_all_planets ( GSWE_MOMENT ( chart ) ) ;
2013-09-17 07:31:37 +00:00
return chart ;
2013-09-13 23:25:46 +00:00
}
2013-09-17 20:18:24 +00:00
void
ag_chart_set_name ( AgChart * chart , const gchar * name )
{
if ( chart - > priv - > name ! = NULL ) {
g_free ( chart - > priv - > name ) ;
}
chart - > priv - > name = g_strdup ( name ) ;
}
gchar *
ag_chart_get_name ( AgChart * chart )
{
return g_strdup ( chart - > priv - > name ) ;
}
void
ag_chart_set_country ( AgChart * chart , const gchar * country )
{
if ( chart - > priv - > country ! = NULL ) {
g_free ( chart - > priv - > country ) ;
}
chart - > priv - > country = g_strdup ( country ) ;
}
gchar *
ag_chart_get_country ( AgChart * chart )
{
return g_strdup ( chart - > priv - > country ) ;
}
void
ag_chart_set_city ( AgChart * chart , const gchar * city )
{
if ( chart - > priv - > city ! = NULL ) {
g_free ( chart - > priv - > city ) ;
}
chart - > priv - > city = g_strdup ( city ) ;
}
gchar *
ag_chart_get_city ( AgChart * chart )
{
return g_strdup ( chart - > priv - > city ) ;
}