[libchamplain] Accesors/Modifiers for Chamlain::MapSourceDesc are now without prefix (get_/get_).
- From: Pierre-Luc Beaudoin <plbeaudoin src gnome org>
- To: svn-commits-list gnome org
- Subject: [libchamplain] Accesors/Modifiers for Chamlain::MapSourceDesc are now without prefix (get_/get_).
- Date: Sun, 14 Jun 2009 18:15:27 -0400 (EDT)
commit 589705e0c7879ce1ca47b3c68a490b09a99052d5
Author: Emmanuel Rodriguez <emmanuel rodriguez gmail com>
Date: Sun Jun 14 23:35:32 2009 +0200
Accesors/Modifiers for Chamlain::MapSourceDesc are now without prefix (get_/get_).
The prefixes get_ and set_ have been removed because the ChamplainMapSourceDesc
is a struct and not a GObject. By using property names the caller will notice
that the fields are directly accessed.
bindings/perl/Champlain/examples/gtk2.pl | 8 +-
bindings/perl/Champlain/t/ChamplainMapSourceDesc.t | 54 ++++++------
.../perl/Champlain/xs/ChamplainMapSourceDesc.xs | 95 +++++---------------
3 files changed, 55 insertions(+), 102 deletions(-)
---
diff --git a/bindings/perl/Champlain/examples/gtk2.pl b/bindings/perl/Champlain/examples/gtk2.pl
index b6e2263..4071d70 100755
--- a/bindings/perl/Champlain/examples/gtk2.pl
+++ b/bindings/perl/Champlain/examples/gtk2.pl
@@ -126,14 +126,14 @@ sub create_combo_box {
my $index = 0;
my $current_source = $map->get_map_source->get_id;
my $factory = Champlain::MapSourceFactory->dup_default;
- foreach my $desc (sort { $a->get_name cmp $b->get_name } $factory->dup_list) {
+ foreach my $desc (sort { $a->name cmp $b->name } $factory->dup_list) {
my $iter = $model->append();
$model->set($iter,
- 0, $desc->get_name,
- 1, $desc->get_id,
+ 0, $desc->name,
+ 1, $desc->id,
);
- if ($current_source eq $desc->get_id) {
+ if ($current_source eq $desc->id) {
$active = $index;
}
diff --git a/bindings/perl/Champlain/t/ChamplainMapSourceDesc.t b/bindings/perl/Champlain/t/ChamplainMapSourceDesc.t
index d2b4820..2e91733 100644
--- a/bindings/perl/Champlain/t/ChamplainMapSourceDesc.t
+++ b/bindings/perl/Champlain/t/ChamplainMapSourceDesc.t
@@ -25,7 +25,7 @@ sub test_get_set {
ok(@maps >= 5, "Maps factory has the default maps");
# Find the OAM map and check that the it's properly described
- my @found = grep { $_->get_id eq Champlain::MapSourceFactory->OAM } @maps;
+ my @found = grep { $_->id eq Champlain::MapSourceFactory->OAM } @maps;
is(scalar(@found), 1, "Found a single map matching OAM");
if (! @found) {
fail("Can't test a Champlain::MapSourceDesc without a map description") for 1 .. 22;
@@ -35,43 +35,43 @@ sub test_get_set {
# Getters
my ($oam) = @found;
isa_ok($oam, 'Champlain::MapSourceDesc');
- is($oam->get_id, Champlain::MapSourceFactory->OAM, "get_id()");
- is($oam->get_name, 'OpenAerialMap', "get_name()");
- is($oam->get_license, "(CC) BY 3.0 OpenAerialMap contributors", "get_license()");
- is($oam->get_license_uri, 'http://creativecommons.org/licenses/by/3.0/', "get_license_uri()");
- is($oam->get_min_zoom_level, 0, "get_min_zoom_level()");
- is($oam->get_max_zoom_level, 17, "get_max_zoom_level()");
- is($oam->get_projection, 'mercator', "get_projection()");
- is($oam->get_uri_format, 'http://tile.openaerialmap.org/tiles/1.0.0/openaerialmap-900913/#Z#/#X#/#Y#.jpg', "get_uri_format()");
+ is($oam->id, Champlain::MapSourceFactory->OAM, "get id()");
+ is($oam->name, 'OpenAerialMap', "get name()");
+ is($oam->license, "(CC) BY 3.0 OpenAerialMap contributors", "get license()");
+ is($oam->license_uri, 'http://creativecommons.org/licenses/by/3.0/', "get license_uri()");
+ is($oam->min_zoom_level, 0, "get min_zoom_level()");
+ is($oam->max_zoom_level, 17, "get max_zoom_level()");
+ is($oam->projection, 'mercator', "get projection()");
+ is($oam->uri_format, 'http://tile.openaerialmap.org/tiles/1.0.0/openaerialmap-900913/#Z#/#X#/#Y#.jpg', "get uri_format()");
# Setters
- $oam->set_id('test');
- is($oam->get_id, 'test', "set_id()");
+ $oam->id('test');
+ is($oam->id, 'test', "set id()");
- $oam->set_name("new name");
- is($oam->get_name, "new name", "set_name()");
+ $oam->name("new name");
+ is($oam->name, "new name", "set name()");
- $oam->set_license("free for all");
- is($oam->get_license, "free for all", "set_license()");
+ $oam->license("free for all");
+ is($oam->license, "free for all", "set license()");
- $oam->set_license_uri('file:///tmp/free.txt');
- is($oam->get_license_uri, 'file:///tmp/free.txt', "set_license_uri()");
+ $oam->license_uri('file:///tmp/free.txt');
+ is($oam->license_uri, 'file:///tmp/free.txt', "set license_uri()");
- $oam->set_min_zoom_level(2);
- is($oam->get_min_zoom_level, 2, "set_min_zoom_level()");
+ $oam->min_zoom_level(2);
+ is($oam->min_zoom_level, 2, "set min_zoom_level()");
- $oam->set_max_zoom_level(4);
- is($oam->get_max_zoom_level, 4, "set_max_zoom_level()");
+ $oam->max_zoom_level(4);
+ is($oam->max_zoom_level, 4, "set max_zoom_level()");
# There are no other projections now, we have to trust that the setter works
- $oam->set_projection('mercator');
- is($oam->get_projection, 'mercator', "set_projection()");
+ $oam->projection('mercator');
+ is($oam->projection, 'mercator', "set projection()");
- $oam->set_uri_format('http://tile.oam.org/tiles/#Z#/#X#/#Y#.jpg');
- is($oam->get_uri_format, 'http://tile.oam.org/tiles/#Z#/#X#/#Y#.jpg', "set_uri_format()");
+ $oam->uri_format('http://tile.oam.org/tiles/#Z#/#X#/#Y#.jpg');
+ is($oam->uri_format, 'http://tile.oam.org/tiles/#Z#/#X#/#Y#.jpg', "set uri_format()");
# The constructor is not yet available in the perl bindings
- throws_ok { $oam->get_constructor } qr/\Qdesc->get_constructor() isn't implemented yet/, "get_constructor() isn't implemented";
- throws_ok { $oam->set_constructor(sub{}) } qr/\Qdesc->set_constructor(\&code_ref)/, "set_constructor() isn't implemented";
+ throws_ok { $oam->constructor } qr/\Qdesc->constructor() isn't implemented yet/, "get constructor() isn't implemented";
+ throws_ok { $oam->constructor(sub{}) } qr/\Qdesc->constructor(\&code_ref)/, "set constructor() isn't implemented";
}
diff --git a/bindings/perl/Champlain/xs/ChamplainMapSourceDesc.xs b/bindings/perl/Champlain/xs/ChamplainMapSourceDesc.xs
index 7949bee..61cb734 100644
--- a/bindings/perl/Champlain/xs/ChamplainMapSourceDesc.xs
+++ b/bindings/perl/Champlain/xs/ChamplainMapSourceDesc.xs
@@ -18,57 +18,70 @@ champlain_map_source_desc_free (ChamplainMapSourceDesc* desc)
#
-# Provide nice accessors to the data members of the struct.
+# Provide nice accessors and modifiers to the data members of the struct.
#
SV*
-get_id (ChamplainMapSourceDesc *desc)
+id (ChamplainMapSourceDesc *desc, ...)
ALIAS:
- Champlain::MapSourceDesc::get_name = 1
- Champlain::MapSourceDesc::get_license = 2
- Champlain::MapSourceDesc::get_license_uri = 3
- Champlain::MapSourceDesc::get_min_zoom_level = 4
- Champlain::MapSourceDesc::get_max_zoom_level = 5
- Champlain::MapSourceDesc::get_projection = 6
- Champlain::MapSourceDesc::get_constructor = 7
- Champlain::MapSourceDesc::get_uri_format = 8
+ name = 1
+ license = 2
+ license_uri = 3
+ min_zoom_level = 4
+ max_zoom_level = 5
+ projection = 6
+ constructor = 7
+ uri_format = 8
CODE:
switch (ix) {
case 0:
RETVAL = newSVGChar(desc->id);
+ if (items > 1) desc->id = g_strdup(SvGChar(ST(1)));
break;
case 1:
RETVAL = newSVGChar(desc->name);
+ if (items > 1) desc->name = g_strdup(SvGChar(ST(1)));
break;
case 2:
RETVAL = newSVGChar(desc->license);
+ if (items > 1) desc->license = g_strdup(SvGChar(ST(1)));
break;
case 3:
RETVAL = newSVGChar(desc->license_uri);
+ if (items > 1) desc->license_uri = g_strdup(SvGChar(ST(1)));
break;
case 4:
RETVAL = newSViv(desc->min_zoom_level);
+ if (items > 1) desc->min_zoom_level = (gint)SvIV(ST(1));
break;
case 5:
RETVAL = newSViv(desc->max_zoom_level);
+ if (items > 1) desc->max_zoom_level = (gint)SvIV(ST(1));
break;
case 6:
RETVAL = newSVChamplainMapProjection(desc->projection);
+ if (items > 1) desc->projection = SvChamplainMapProjection(ST(1));
break;
case 7:
/* This is tricky as we have to wrap the C callback into a Perl sub. */
- croak("$desc->get_constructor() isn't implemented yet");
+ if (items == 1) {
+ croak("$desc->constructor() isn't implemented yet");
+ }
+ else {
+ croak("$desc->constructor(\\&code_ref) isn't implemented yet");
+ }
break;
case 8:
RETVAL = newSVGChar(desc->uri_format);
+ if (items > 1) desc->uri_format = g_strdup(SvGChar(ST(1)));
break;
default:
@@ -79,63 +92,3 @@ get_id (ChamplainMapSourceDesc *desc)
OUTPUT:
RETVAL
-
-
-#
-# Provide nice modifiers to the data members of the struct.
-#
-void
-set_id (ChamplainMapSourceDesc *desc, SV *sv)
- ALIAS:
- Champlain::MapSourceDesc::set_name = 1
- Champlain::MapSourceDesc::set_license = 2
- Champlain::MapSourceDesc::set_license_uri = 3
- Champlain::MapSourceDesc::set_min_zoom_level = 4
- Champlain::MapSourceDesc::set_max_zoom_level = 5
- Champlain::MapSourceDesc::set_projection = 6
- Champlain::MapSourceDesc::set_constructor = 7
- Champlain::MapSourceDesc::set_uri_format = 8
-
- CODE:
- switch (ix) {
- case 0:
- desc->id = g_strdup(SvGChar(sv));
- break;
-
- case 1:
- desc->name = g_strdup(SvGChar(sv));
- break;
-
- case 2:
- desc->license = g_strdup(SvGChar(sv));
- break;
-
- case 3:
- desc->license_uri = g_strdup(SvGChar(sv));
- break;
-
- case 4:
- desc->min_zoom_level = (gint)SvIV(sv);
- break;
-
- case 5:
- desc->max_zoom_level = (gint)SvIV(sv);
- break;
-
- case 6:
- desc->projection = SvChamplainMapProjection(sv);
- break;
-
- case 7:
- /* This is tricky as we have to wrap the Perl sub into a C callback. */
- croak("$desc->set_constructor(\\&code_ref) isn't implemented yet");
- break;
-
- case 8:
- desc->uri_format = g_strdup(SvGChar(sv));
- break;
-
- default:
- croak("Unsupported property %s", GvNAME(CvGV(cv)));
- break;
- }
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]