[gtkmm] Widget: Added align and margin methods and properties.
- From: Murray Cumming <murrayc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtkmm] Widget: Added align and margin methods and properties.
- Date: Wed, 15 Sep 2010 09:56:15 +0000 (UTC)
commit e9262801de42f57c1a6a6c5f2ef2106e56f0500d
Author: Murray Cumming <murrayc murrayc com>
Date: Wed Sep 15 11:56:00 2010 +0200
Widget: Added align and margin methods and properties.
* gtk/src/enums.[hg|ccg]: Added Align enum, wrapping GtkAlign, removing
our own AlignmentEnum.
* tools/m4/convert_gtk.m4: Added conversions for the new Align enum.
* gtk/src/alignment.hg:
* gtk/src/aspectframe.hg:
* gtk/src/bin.ccg:
* gtk/src/bin.hg:
* gtk/src/entry.hg:
* gtk/src/frame.hg:
* gtk/src/label.ccg:
* gtk/src/label.hg:
* gtk/src/misc.hg:
* gtk/src/treeviewcolumn.hg: Use Align instad of AlignmentEnum,
and ALIGN_START/END instad of ALIGN_LEFT/TOP and ALIGN_RIGHT/BOTTOM.
* gtk/src/widget.hg: Added get_h_align(), set_h_align(),
get_v_align(), set_v_align(),
get_margin_left(), set_margin_left(),
get_margin_right(), set_margin_right(,
get_margin_top(), set_margin_top(),
get_margin_bottom(), set_margin_bottom(). And properties.
Also remove deprecated size_request(), size_allocate() and
get_child_requisition() to fix the build.
ChangeLog | 29 +++++++++++++++++++++++++++++
gtk/src/alignment.hg | 8 ++++----
gtk/src/aspectframe.hg | 12 ++++++------
gtk/src/bin.ccg | 2 +-
gtk/src/bin.hg | 6 +++---
gtk/src/entry.hg | 2 +-
gtk/src/enums.ccg | 12 ++++--------
gtk/src/enums.hg | 16 +++-------------
gtk/src/frame.hg | 2 +-
gtk/src/label.ccg | 2 +-
gtk/src/label.hg | 2 +-
gtk/src/misc.hg | 2 +-
gtk/src/treeviewcolumn.hg | 2 +-
gtk/src/widget.ccg | 7 -------
gtk/src/widget.hg | 45 +++++++++++++++++++++++----------------------
tools/m4/convert_gtk.m4 | 3 ++-
16 files changed, 81 insertions(+), 71 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index edbd0b9..bbd9399 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,34 @@
2010-09-15 Murray Cumming <murrayc murrayc com>
+ Widget: Added align and margin methods and properties.
+
+ * gtk/src/enums.[hg|ccg]: Added Align enum, wrapping GtkAlign, removing
+ our own AlignmentEnum.
+ * tools/m4/convert_gtk.m4: Added conversions for the new Align enum.
+ * gtk/src/alignment.hg:
+ * gtk/src/aspectframe.hg:
+ * gtk/src/bin.ccg:
+ * gtk/src/bin.hg:
+ * gtk/src/entry.hg:
+ * gtk/src/frame.hg:
+ * gtk/src/label.ccg:
+ * gtk/src/label.hg:
+ * gtk/src/misc.hg:
+ * gtk/src/treeviewcolumn.hg: Use Align instad of AlignmentEnum,
+ and ALIGN_START/END instad of ALIGN_LEFT/TOP and ALIGN_RIGHT/BOTTOM.
+
+ * gtk/src/widget.hg: Added get_h_align(), set_h_align(),
+ get_v_align(), set_v_align(),
+ get_margin_left(), set_margin_left(),
+ get_margin_right(), set_margin_right(,
+ get_margin_top(), set_margin_top(),
+ get_margin_bottom(), set_margin_bottom(). And properties.
+
+ Also remove deprecated size_request(), size_allocate() and
+ get_child_requisition() to fix the build.
+
+2010-09-15 Murray Cumming <murrayc murrayc com>
+
Regenerate defs and make minor changes.
* gtk/src/gtk_enums.defs:
diff --git a/gtk/src/alignment.hg b/gtk/src/alignment.hg
index 163c826..87de3d6 100644
--- a/gtk/src/alignment.hg
+++ b/gtk/src/alignment.hg
@@ -55,15 +55,15 @@ public:
_WRAP_CTOR(Alignment(float xalign = 0.5, float yalign = 0.5, float xscale = 1.0, float yscale = 1.0), gtk_alignment_new)
/** Constructor to create an Alignment object.
- * @param xalign A Gtk::AlignmentEnum describing the initial horizontal alignment of the child.
- * @param yalign A Gtk::AlignmentEnum describing the initial vertical alignment of the child.
+ * @param xalign A Gtk::Align describing the initial horizontal alignment of the child.
+ * @param yalign A Gtk::Align describing the initial vertical alignment of the child.
* @param xscale The initial amount that the child expands horizontally to fill up unused space.
* @param yscale The initial amount that the child expands vertically to fill up unused space.
*/
- _WRAP_CTOR(Alignment(AlignmentEnum xalign, AlignmentEnum yalign = Gtk::ALIGN_CENTER, float xscale = 1.0, float yscale = 1.0), gtk_alignment_new)
+ _WRAP_CTOR(Alignment(Align xalign, Align yalign = Gtk::ALIGN_CENTER, float xscale = 1.0, float yscale = 1.0), gtk_alignment_new)
_WRAP_METHOD(void set(float xalign = 0.5, float yalign = 0.5, float xscale = 1.0, float yscale= 1.0), gtk_alignment_set)
- _WRAP_METHOD(void set(AlignmentEnum xalign, AlignmentEnum yalign = Gtk::ALIGN_CENTER, float xscale = 1.0, float yscale= 1.0), gtk_alignment_set)
+ _WRAP_METHOD(void set(Align xalign, Align yalign = Gtk::ALIGN_CENTER, float xscale = 1.0, float yscale= 1.0), gtk_alignment_set)
//New in GTK+ 2.4
_WRAP_METHOD(void set_padding(guint padding_top, guint padding_bottom, guint padding_left, guint padding_right), gtk_alignment_set_padding)
diff --git a/gtk/src/aspectframe.hg b/gtk/src/aspectframe.hg
index 7cf8b94..ccc938e 100644
--- a/gtk/src/aspectframe.hg
+++ b/gtk/src/aspectframe.hg
@@ -46,15 +46,15 @@ public:
/** Constructor to create a new AspectFrame object.
* @param label Label text.
* @param xalign Horizontal alignment of the child within the allocation of this
- * AspectFrame. For possible values, see Gtk::AlignmentEnum.
+ * AspectFrame. For possible values, see Gtk::Align.
* @param yalign Vertical alignment of the child within the allocation of this
- * AspectFrame. For possible values, see Gtk::AlignmentEnum.
+ * AspectFrame. For possible values, see Gtk::Align.
* @param ratio The desired aspect ratio.
* @param obey_child If <tt>true</tt>, @a ratio is ignored and the aspect ratio
* is taken from the requisition of the child.
*/
_WRAP_CTOR(AspectFrame(const Glib::ustring& label = Glib::ustring(),
- AlignmentEnum xalign = Gtk::ALIGN_CENTER, AlignmentEnum yalign = Gtk::ALIGN_CENTER,
+ Align xalign = Gtk::ALIGN_CENTER, Align yalign = Gtk::ALIGN_CENTER,
float ratio = 1.0, bool obey_child = false), gtk_aspect_frame_new)
/** Constructor to create a new AspectFrame object.
@@ -85,14 +85,14 @@ public:
/** Set the properties of this AspectFrame.
* @param xalign Horizontal alignment of the child within the allocation of this
- * AspectFrame. For possible values, see Gtk::AlignmentEnum.
+ * AspectFrame. For possible values, see Gtk::Align.
* @param yalign Vertical alignment of the child within the allocation of this
- * AspectFrame. For possible values, see Gtk::AlignmentEnum.
+ * AspectFrame. For possible values, see Gtk::Align.
* @param ratio The desired aspect ratio.
* @param obey_child If <tt>true</tt>, @a ratio is ignored and the aspect ratio
* is taken from the requisition of the child.
*/
- _WRAP_METHOD(void set(AlignmentEnum xalign, AlignmentEnum yalign, float ratio, bool obey_child = true), gtk_aspect_frame_set)
+ _WRAP_METHOD(void set(Align xalign, Align yalign, float ratio, bool obey_child = true), gtk_aspect_frame_set)
_WRAP_PROPERTY("xalign", float)
_WRAP_PROPERTY("yalign", float)
diff --git a/gtk/src/bin.ccg b/gtk/src/bin.ccg
index 580bfe3..1dbfe4e 100644
--- a/gtk/src/bin.ccg
+++ b/gtk/src/bin.ccg
@@ -67,7 +67,7 @@ Bin::add_label(const Glib::ustring& str, bool mnemonic /* = false */,
void
Bin::add_label(const Glib::ustring& str, bool mnemonic,
- AlignmentEnum x_align, AlignmentEnum y_align /* = ALIGN_CENTER */)
+ Align x_align, Align y_align /* = ALIGN_CENTER */)
{
add_label(str, mnemonic,
_gtkmm_align_float_from_enum(x_align),
diff --git a/gtk/src/bin.hg b/gtk/src/bin.hg
index 185b740..1802f01 100644
--- a/gtk/src/bin.hg
+++ b/gtk/src/bin.hg
@@ -82,12 +82,12 @@ public:
* @param mnemonic If <tt>true</tt>, characters preceded by an underscore
* (_) will be underlined and used as a keyboard accelerator (shortcut).
* @param x_align The horizontal alignment of the text. For possible
- * values, see Gtk::AlignmentEnum.
+ * values, see Gtk::Align.
* @param y_align The vertical alignment of the text. For possible
- * values, see Gtk::AlignmentEnum.
+ * values, see Gtk::Align.
*/
void add_label(const Glib::ustring& label, bool mnemonic,
- AlignmentEnum x_align, AlignmentEnum y_align = ALIGN_CENTER);
+ Align x_align, Align y_align = ALIGN_CENTER);
/** Add an Image object.
* This does not correspond to any GTK+ function and is provided purely for
diff --git a/gtk/src/entry.hg b/gtk/src/entry.hg
index ec2c243..2b1f698 100644
--- a/gtk/src/entry.hg
+++ b/gtk/src/entry.hg
@@ -105,7 +105,7 @@ public:
_WRAP_METHOD(const Adjustment* get_cursor_hadjustment() const, gtk_entry_get_cursor_hadjustment, refreturn, constversion)
_WRAP_METHOD(void set_alignment(float xalign), gtk_entry_set_alignment)
- _WRAP_METHOD(void set_alignment(AlignmentEnum xalign), gtk_entry_set_alignment)
+ _WRAP_METHOD(void set_alignment(Align xalign), gtk_entry_set_alignment)
_WRAP_METHOD(float get_alignment() const, gtk_entry_get_alignment)
_WRAP_METHOD(void set_completion(const Glib::RefPtr<EntryCompletion>& completion), gtk_entry_set_completion)
diff --git a/gtk/src/enums.ccg b/gtk/src/enums.ccg
index dd2e7bb..85ccee5 100644
--- a/gtk/src/enums.ccg
+++ b/gtk/src/enums.ccg
@@ -31,23 +31,19 @@ GType Glib::Value<Gtk::IconSize>::value_type()
namespace Gtk
{
-float _gtkmm_align_float_from_enum(AlignmentEnum value)
+float _gtkmm_align_float_from_enum(Align value)
{
//Choose the float alignment value appropriate for this human-readable enum value:
switch(value)
{
- case ALIGN_LEFT:
+ case ALIGN_START:
return 0.0; break;
case ALIGN_CENTER:
return 0.5; break;
- case ALIGN_RIGHT:
+ case ALIGN_END:
return 1.0; break;
- case ALIGN_TOP:
- return _gtkmm_align_float_from_enum(ALIGN_LEFT); break;
- case ALIGN_BOTTOM:
- return _gtkmm_align_float_from_enum(ALIGN_RIGHT); break;
default:
- return _gtkmm_align_float_from_enum(ALIGN_LEFT); break;
+ return _gtkmm_align_float_from_enum(ALIGN_START); break;
}
}
diff --git a/gtk/src/enums.hg b/gtk/src/enums.hg
index cc4d1a3..edeb528 100644
--- a/gtk/src/enums.hg
+++ b/gtk/src/enums.hg
@@ -31,6 +31,8 @@ _CC_INCLUDE(gtk/gtk.h)
_WRAP_ENUM(AccelFlags, GtkAccelFlags)
+_WRAP_ENUM(Align, GtkAlign)
+
/** Used to indicate the direction in which a Gtk::Arrow should point.
*/
_WRAP_ENUM(ArrowType, GtkArrowType)
@@ -222,21 +224,9 @@ public:
namespace Gtk
{
- /** Methods are overriden so you can use these simple enums, or floats for more precision.
- * @ingroup gtkmmEnums
- */
- enum AlignmentEnum
- {
- ALIGN_LEFT, /**< Same as 0.0 */
- ALIGN_CENTER, /**< Same as 0.5 */
- ALIGN_RIGHT, /**< Same as 1.0 */
- ALIGN_TOP, /**< Same as ALIGN_LEFT */
- ALIGN_BOTTOM /**< Same as ALIGN_RIGHT */
- };
-
#ifndef DOXYGEN_SHOULD_SKIP_THIS
//We need this because we can't just use floats for enum value.
-float _gtkmm_align_float_from_enum(AlignmentEnum value);
+float _gtkmm_align_float_from_enum(Align value);
#endif /* DOXYGEN_SHOULD_SKIP_THIS */
} //namespace Gtk
diff --git a/gtk/src/frame.hg b/gtk/src/frame.hg
index 9c6575e..b907d16 100644
--- a/gtk/src/frame.hg
+++ b/gtk/src/frame.hg
@@ -68,7 +68,7 @@ public:
* @param yalign The y alignment of the label. Currently ignored.
*/
_WRAP_METHOD(void set_label_align(float xalign = 0.0, float yalign = 0.5), gtk_frame_set_label_align)
- _WRAP_METHOD(void set_label_align(AlignmentEnum xalign, AlignmentEnum yalign = Gtk::ALIGN_CENTER), gtk_frame_set_label_align)
+ _WRAP_METHOD(void set_label_align(Align xalign, Align yalign = Gtk::ALIGN_CENTER), gtk_frame_set_label_align)
_WRAP_METHOD(void get_label_align(float& xalign, float& yalign) const, gtk_frame_get_label_align)
diff --git a/gtk/src/label.ccg b/gtk/src/label.ccg
index 4c46ef8..c929518 100644
--- a/gtk/src/label.ccg
+++ b/gtk/src/label.ccg
@@ -41,7 +41,7 @@ Label::Label(const Glib::ustring& label, float xalign, float yalign, bool mnemon
set_alignment(xalign, yalign);
}
-Label::Label(const Glib::ustring& label, AlignmentEnum xalign, AlignmentEnum yalign, bool mnemonic)
+Label::Label(const Glib::ustring& label, Align xalign, Align yalign, bool mnemonic)
:
_CONSTRUCT("label", label.c_str(), "use_underline", gboolean(mnemonic))
{
diff --git a/gtk/src/label.hg b/gtk/src/label.hg
index 325ddca..bcde08d 100644
--- a/gtk/src/label.hg
+++ b/gtk/src/label.hg
@@ -73,7 +73,7 @@ public:
* label.set_alignment(x, y);
* @endcode
*/
- Label(const Glib::ustring& label, AlignmentEnum xalign, AlignmentEnum yalign = ALIGN_CENTER, bool mnemonic = false);
+ Label(const Glib::ustring& label, Align xalign, Align yalign = ALIGN_CENTER, bool mnemonic = false);
/// Doesn't use markup.
diff --git a/gtk/src/misc.hg b/gtk/src/misc.hg
index 057b8df..8c40e4b 100644
--- a/gtk/src/misc.hg
+++ b/gtk/src/misc.hg
@@ -44,7 +44,7 @@ protected:
public:
_WRAP_METHOD(void set_alignment(float xalign = 0.0, float yalign = 0.5), gtk_misc_set_alignment)
- _WRAP_METHOD(void set_alignment(AlignmentEnum xalign = Gtk::ALIGN_LEFT, AlignmentEnum yalign = Gtk::ALIGN_CENTER), gtk_misc_set_alignment)
+ _WRAP_METHOD(void set_alignment(Align xalign = Gtk::ALIGN_START, Align yalign = Gtk::ALIGN_CENTER), gtk_misc_set_alignment)
_WRAP_METHOD(void get_alignment(float& xalign, float& yalign) const, gtk_misc_get_alignment)
diff --git a/gtk/src/treeviewcolumn.hg b/gtk/src/treeviewcolumn.hg
index b29e3cf..651c229 100644
--- a/gtk/src/treeviewcolumn.hg
+++ b/gtk/src/treeviewcolumn.hg
@@ -171,7 +171,7 @@ public:
_WRAP_METHOD(const Widget* get_widget() const, gtk_tree_view_column_get_widget)
_WRAP_METHOD(void set_alignment(float xalign), gtk_tree_view_column_set_alignment)
- _WRAP_METHOD(void set_alignment(AlignmentEnum xalign), gtk_tree_view_column_set_alignment)
+ _WRAP_METHOD(void set_alignment(Align xalign), gtk_tree_view_column_set_alignment)
_WRAP_METHOD(float get_alignment() const, gtk_tree_view_column_get_alignment)
_WRAP_METHOD(void set_reorderable(bool reorderable = true), gtk_tree_view_column_set_reorderable)
diff --git a/gtk/src/widget.ccg b/gtk/src/widget.ccg
index 87faf1b..39a60a4 100644
--- a/gtk/src/widget.ccg
+++ b/gtk/src/widget.ccg
@@ -486,13 +486,6 @@ void Widget::draw_insertion_cursor(Glib::RefPtr<Gdk::Drawable> drawable, const G
gtk_draw_insertion_cursor(gobj(), drawable->gobj(), const_cast<GdkRectangle*>(area.gobj()), const_cast<GdkRectangle*>(location.gobj()), is_primary, (GtkTextDirection)direction, draw_arrow);
}
-Requisition Widget::size_request() const
-{
- Requisition requisition;
- gtk_widget_size_request(const_cast<GtkWidget*>(gobj()), (GtkRequisition*)(&requisition));
- return requisition;
-}
-
Glib::RefPtr<Gdk::Pixmap> Widget::get_snapshot() const
{
return Glib::wrap(reinterpret_cast<GdkPixmapObject*>(
diff --git a/gtk/src/widget.hg b/gtk/src/widget.hg
index b987c00..8adee70 100644
--- a/gtk/src/widget.hg
+++ b/gtk/src/widget.hg
@@ -133,27 +133,7 @@ public:
_WRAP_METHOD(void queue_draw_area(int x, int y, int width, int height), gtk_widget_queue_draw_area)
_WRAP_METHOD(void queue_resize(), gtk_widget_queue_resize)
- /** This function is typically used when implementing a Gtk::Container
- * subclass. Obtains the preferred size of a widget. The container
- * uses this information to arrange its child widgets and decide what
- * size allocations to give them with size_allocate().
- *
- * You can also call this function from an application, with some
- * caveats. Most notably, getting a size request requires the widget
- * to be associated with a screen, because font information may be
- * needed. Multihead-aware applications should keep this in mind.
- *
- * Also remember that the size request is not necessarily the size
- * a widget will actually be allocated.
- *
- * See also get_child_requisition().
- * @result A Gtk::Requisition.
- */
- Requisition size_request() const;
- _IGNORE(gtk_widget_size_request)
-
- _WRAP_METHOD(void size_allocate(const Allocation& allocation), gtk_widget_size_allocate)
-
+ _IGNORE(gtk_widget_size_request, gtk_widget_size_allocate) //deprecated
_WRAP_METHOD(void add_accelerator(const Glib::ustring& accel_signal, const Glib::RefPtr<AccelGroup>& accel_group,
guint accel_key, Gdk::ModifierType accel_mods, AccelFlags accel_flags), gtk_widget_add_accelerator)
@@ -347,6 +327,19 @@ public:
_WRAP_METHOD(Glib::RefPtr<Atk::Object> get_accessible(), gtk_widget_get_accessible, refreturn, ifdef GTKMM_ATKMM_ENABLED)
_WRAP_METHOD(Glib::RefPtr<const Atk::Object> get_accessible() const, gtk_widget_get_accessible, refreturn, constversion, ifdef GTKMM_ATKMM_ENABLED)
+ _WRAP_METHOD(Align get_h_align() const, gtk_widget_get_h_align)
+ _WRAP_METHOD(void set_h_align(Align align), gtk_widget_set_h_align)
+ _WRAP_METHOD(Align get_v_align() const,gtk_widget_get_v_align)
+ _WRAP_METHOD(void set_v_align(Align align), gtk_widget_set_v_align)
+ _WRAP_METHOD(int get_margin_left() const, gtk_widget_get_margin_left)
+ _WRAP_METHOD(void set_margin_left(int margin), gtk_widget_set_margin_left)
+ _WRAP_METHOD(int get_margin_right() const, gtk_widget_get_margin_right)
+ _WRAP_METHOD(void set_margin_right(int margin), gtk_widget_set_margin_right)
+ _WRAP_METHOD(int get_margin_top() const, gtk_widget_get_margin_top)
+ _WRAP_METHOD(void set_margin_top(int margin), gtk_widget_set_margin_top)
+ _WRAP_METHOD(int get_margin_bottom() const, gtk_widget_get_margin_bottom)
+ _WRAP_METHOD(void set_margin_bottom(int margin), gtk_widget_set_margin_bottom)
+
_WRAP_METHOD(void set_colormap(const Glib::RefPtr<const Gdk::Colormap> &colormap), gtk_widget_set_colormap)
_WRAP_METHOD(Gdk::EventMask get_events() const, gtk_widget_get_events)
_WRAP_METHOD(Gdk::EventMask get_device_events(const Glib::RefPtr<const Gdk::Device>& device) const, gtk_widget_get_device_events)
@@ -926,6 +919,14 @@ dnl
_WRAP_PROPERTY("window", Glib::RefPtr<Gdk::Window>)
_WRAP_PROPERTY("no-show-all", bool)
+ _WRAP_PROPERTY("h-align", Align)
+ _WRAP_PROPERTY("v-align", Align)
+ _WRAP_PROPERTY("margin-left", int)
+ _WRAP_PROPERTY("margin-right", int)
+ _WRAP_PROPERTY("margin-top", int)
+ _WRAP_PROPERTY("margin-bottom", int)
+ _WRAP_PROPERTY("margin", int)
+
protected:
//comment in GTK+ header: "seldomly overidden"
_WRAP_VFUNC(void dispatch_child_properties_changed(guint, GParamSpec**), "dispatch_child_properties_changed")
@@ -945,7 +946,7 @@ protected:
_WRAP_METHOD(void set_realized(bool realized = true), gtk_widget_set_realized)
_WRAP_METHOD(void style_attach(), gtk_widget_style_attach)
- _WRAP_METHOD(void get_child_requisition(Requisition& requisition) const, gtk_widget_get_child_requisition)
+ _IGNORE(gtk_widget_get_child_requisition) //deprecated.
//The parameter name is "the_property_name" to avoid a warning because there is a method with the "property_name" name.
_WRAP_METHOD(void get_style_property_value(
diff --git a/tools/m4/convert_gtk.m4 b/tools/m4/convert_gtk.m4
index b62dbfa..cbef7da 100644
--- a/tools/m4/convert_gtk.m4
+++ b/tools/m4/convert_gtk.m4
@@ -65,6 +65,7 @@ _CONVERSION(`guint',`ui_merge_id',`$3')
# Enums: TODO: It would be nice if gmmproc knew about these automatically.
_CONV_ENUM(Gtk,AccelFlags)
+_CONV_ENUM(Gtk,Align)
_CONV_ENUM(Gtk,ArrowType)
_CONV_ENUM(Gtk,AttachOptions)
_CONV_ENUM(Gtk,ButtonBoxStyle)
@@ -654,7 +655,7 @@ _CONVERSION(`CellRenderer*',`GtkCellRenderer*',__FP2P)
_CONVERSION(`GtkCellRenderer*',`CellRenderer*',__RP2P)
_CONVERSION(`GtkAction*',`const Glib::RefPtr<Action>&',`Glib::wrap($3, true)')
-_CONVERSION(`AlignmentEnum',`float',`_gtkmm_align_float_from_enum($3)')
+_CONVERSION(`Align',`float',`_gtkmm_align_float_from_enum($3)')
# Used by AboutDialog:
#_CONVERSION(`const Glib::StringArrayHandle&',`const gchar**',`($3).data())')
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]