Gtk2
view release on metacpan or search on metacpan
xs/GdkTypes.xs view on Meta::CPAN
=for apidoc Gtk2::Gdk::Rectangle::x
=for signature integer = $rectangle->x
=for signature oldvalue = $rectangle->x ($newvalue)
=for arg newvalue (integer)
=cut
=for apidoc y
=for signature integer = $rectangle->y
=for signature oldvalue = $rectangle->y ($newvalue)
=for arg newvalue (integer)
=cut
=for apidoc width
=for signature integer = $rectangle->width
=for signature oldvalue = $rectangle->width ($newvalue)
=for arg newvalue (integer)
=cut
=for apidoc height
=for signature integer = $rectangle->height
=for signature oldvalue = $rectangle->height ($newvalue)
=for arg newvalue (integer)
=cut
gint
x (GdkRectangle *rectangle, SV *newvalue = 0)
ALIAS:
y = 1
width = 2
height = 3
CODE:
switch (ix) {
case 0: RETVAL = rectangle->x; break;
case 1: RETVAL = rectangle->y; break;
case 2: RETVAL = rectangle->width; break;
case 3: RETVAL = rectangle->height; break;
default:
RETVAL = 0;
g_assert_not_reached ();
}
if (newvalue) {
switch (ix) {
case 0: rectangle->x = SvIV (newvalue); break;
case 1: rectangle->y = SvIV (newvalue); break;
case 2: rectangle->width = SvIV (newvalue); break;
case 3: rectangle->height = SvIV (newvalue); break;
default:
g_assert_not_reached ();
}
}
OUTPUT:
RETVAL
=for apidoc
=for signature (x, y, width, height) = $rectangle->values
=cut
void
values (rectangle)
GdkRectangle * rectangle
PPCODE:
EXTEND (SP, 4);
PUSHs (sv_2mortal (newSViv (rectangle->x)));
PUSHs (sv_2mortal (newSViv (rectangle->y)));
PUSHs (sv_2mortal (newSViv (rectangle->width)));
PUSHs (sv_2mortal (newSViv (rectangle->height)));
MODULE = Gtk2::Gdk::Types PACKAGE = Gtk2::Gdk::Geometry
GdkGeometry *
new (class)
PREINIT:
GdkGeometry geometry;
CODE:
memset (&geometry, 0, sizeof (GdkGeometry));
geometry.win_gravity = GDK_GRAVITY_NORTH_WEST;
RETVAL = &geometry;
OUTPUT:
RETVAL
SV *
min_width (SV *object, SV *newvalue=NULL)
ALIAS:
min_height = 1
max_width = 2
max_height = 3
base_width = 4
base_height = 5
width_inc = 6
height_inc = 7
min_aspect = 8
max_aspect = 9
win_gravity = 10
gravity = 11
PREINIT:
SV **value = NULL;
HV *geometry;
CODE:
geometry = (HV *) SvRV (object);
RETVAL = &PL_sv_undef;
switch (ix) {
case 0: value = hv_fetch (geometry, "min_width", 9, 0); break;
case 1: value = hv_fetch (geometry, "min_height", 10, 0); break;
case 2: value = hv_fetch (geometry, "max_width", 9, 0); break;
case 3: value = hv_fetch (geometry, "max_height", 10, 0); break;
case 4: value = hv_fetch (geometry, "base_width", 10, 0); break;
case 5: value = hv_fetch (geometry, "base_height", 11, 0); break;
case 6: value = hv_fetch (geometry, "width_inc", 9, 0); break;
case 7: value = hv_fetch (geometry, "height_inc", 10, 0); break;
case 8: value = hv_fetch (geometry, "min_aspect", 10, 0); break;
case 9: value = hv_fetch (geometry, "max_aspect", 10, 0); break;
case 10: /* fall-through */
case 11: value = hv_fetch (geometry, "win_gravity", 11, 0); break;
default:
g_assert_not_reached ();
}
if (value && gperl_sv_is_defined (*value))
RETVAL = newSVsv (*value);
if (items > 1) {
newvalue = newSVsv (newvalue);
switch (ix) {
case 0: gperl_hv_take_sv_s (geometry, "min_width", newvalue); break;
case 1: gperl_hv_take_sv_s (geometry, "min_height", newvalue); break;
case 2: gperl_hv_take_sv_s (geometry, "max_width", newvalue); break;
case 3: gperl_hv_take_sv_s (geometry, "max_height", newvalue); break;
case 4: gperl_hv_take_sv_s (geometry, "base_width", newvalue); break;
case 5: gperl_hv_take_sv_s (geometry, "base_height", newvalue); break;
case 6: gperl_hv_take_sv_s (geometry, "width_inc", newvalue); break;
case 7: gperl_hv_take_sv_s (geometry, "height_inc", newvalue); break;
case 8: gperl_hv_take_sv_s (geometry, "min_aspect", newvalue); break;
case 9: gperl_hv_take_sv_s (geometry, "max_aspect", newvalue); break;
case 10: /* fall-through */
case 11: gperl_hv_take_sv_s (geometry, "win_gravity", newvalue); break;
default:
g_assert_not_reached ();
}
}
OUTPUT:
RETVAL
## moved here because it makes plain sense
=for apidoc
=for signature (new_width, new_height) = $geometry->constrain_size ($width, $height)
=for signature (new_width, new_height) = $geometry->constrain_size ($flags, $width, $height)
=for arg flags (Gtk2::Gdk::WindowHints) optional, usually inferred from I<$geometry>
The $flags argument, describing which fields in the geometry are valid, is
optional. If omitted it will be inferred from the geometry itself.
=cut
## void gdk_window_constrain_size (GdkGeometry *geometry, guint flags, gint width, gint height, gint *new_width, gint *new_height)
void
constrain_size (geometry_ref, ...)
SV *geometry_ref
PREINIT:
GdkGeometry *geometry;
GdkWindowHints flags;
gint width;
gint height;
gint new_width;
gint new_height;
PPCODE:
if (items == 4) {
if (!gperl_sv_is_defined (ST (1)))
warn ("Warning: You passed undef for the flags parameter. Consider simply omitting it instead.");
geometry = SvGdkGeometry (geometry_ref);
flags = SvGdkWindowHints (ST (1));
width = SvIV (ST (2));
height = SvIV (ST (3));
} else if (items == 3) {
geometry = SvGdkGeometryReal (geometry_ref, &flags);
width = SvIV (ST (1));
height = SvIV (ST (2));
} else {
croak ("Usage: Gtk2::Gdk::Geometry::constrain_size(geometry, width, height) or Gtk2::Gdk::Geometry::constrain_size(geometry, flags, width, height)");
}
gdk_window_constrain_size (geometry, flags, width, height, &new_width, &new_height);
EXTEND (SP, 2);
PUSHs (sv_2mortal (newSViv (new_width)));
PUSHs (sv_2mortal (newSViv (new_height)));
( run in 1.433 second using v1.01-cache-2.11-cpan-5511b514fd6 )