From d6181f4caa49f04f69e845fc2fc62898edd94256 Mon Sep 17 00:00:00 2001 From: Michael 'Mickey' Lauer Date: Sun, 24 Jan 2010 18:13:23 +0100 Subject: [PATCH] vapi: genlist item class functions have no target; hence only static delegates work examples: repair genlist --- examples/elementary/genlist.vala | 19 ++++++++----------- vapi/elm.vapi | 38 ++++++++++++++++++-------------------- 2 files changed, 26 insertions(+), 31 deletions(-) diff --git a/examples/elementary/genlist.vala b/examples/elementary/genlist.vala index e86e73c..8f0a172 100644 --- a/examples/elementary/genlist.vala +++ b/examples/elementary/genlist.vala @@ -21,17 +21,14 @@ public class T.Genlist : T.Abstract { Elm.Genlist list; Elm.GenlistItemClass itc; - Elm.GenlistItemClassFunc itcfunc; public Genlist() { - itcfunc = Elm.GenlistItemClassFunc() { label_get = getLabel, - icon_get = getIcon, - state_get = getState, - del = delItem }; - itc.item_style = "default"; - itc.func = itcfunc; + itc.func.label_get = getLabel; + itc.func.icon_get = getIcon; + itc.func.state_get = getState; + itc.func.del = delItem; } public override void run( Evas.Object obj, void* event_info ) @@ -53,13 +50,13 @@ public class T.Genlist : T.Abstract return "Generic List Example"; } - public string getLabel( Elm.Object obj, string part ) + public static string getLabel( Elm.Object obj, string part ) { int number = (int)obj; debug( "label_get: %p", obj ); return "This is list item #%d".printf( number ); } - public Elm.Object? getIcon( Elm.Object obj, string part ) + public static Elm.Object? getIcon( Elm.Object obj, string part ) { return null; /* This leads to a SIGSEGV, something's still wrong wrt. those delegates */ @@ -71,13 +68,13 @@ public class T.Genlist : T.Abstract return icon; */ } - public bool getState( Elm.Object obj, string part ) + public static bool getState( Elm.Object obj, string part ) { int number = (int)obj; debug( "state_get for item %d", number ); return false; } - public void delItem( Elm.Object obj ) + public static void delItem( Elm.Object obj ) { int number = (int)obj; debug( "del for item %d", number ); diff --git a/vapi/elm.vapi b/vapi/elm.vapi index 1e8774c..f424ee7 100644 --- a/vapi/elm.vapi +++ b/vapi/elm.vapi @@ -814,24 +814,22 @@ public enum GenlistItemFlags SUBITEMS, } - - -public delegate string GenlistItemLabelGetFunc( Elm.Object obj, string part ); -public delegate Elm.Object? GenlistItemIconGetFunc( Elm.Object obj, string part ); -public delegate bool GenlistItemStateGetFunc( Elm.Object obj, string part ); -public delegate void GenlistItemDelFunc( Elm.Object obj ); +[CCode (cname = "GenlistItemLabelGetFunc")] +public static delegate string GenlistItemLabelGetFunc( Elm.Object obj, string part ); +[CCode (cname = "GenlistItemIconGetFunc")] +public static delegate Elm.Object? GenlistItemIconGetFunc( Elm.Object obj, string part ); +[CCode (cname = "GenlistItemStateGetFunc")] +public static delegate bool GenlistItemStateGetFunc( Elm.Object obj, string part ); +[CCode (cname = "GenlistItemDelFunc")] +public static delegate void GenlistItemDelFunc( Elm.Object obj ); //======================================================================= -[CCode (cname = "Elm_Genlist_Item_Class_Func", copy_function = "", destroy_function = "")] +[CCode (cname = "Elm_Genlist_Item_Class_Func", destroy_function = "")] public struct GenlistItemClassFunc { - [CCode (delegate_target = false)] public GenlistItemLabelGetFunc label_get; - [CCode (delegate_target = false)] public GenlistItemIconGetFunc icon_get; - [CCode (delegate_target = false)] public GenlistItemStateGetFunc state_get; - [CCode (delegate_target = false)] public GenlistItemDelFunc del; } @@ -849,10 +847,10 @@ public class Genlist : Elm.Object { [CCode (cname = "elm_genlist_add")] public Genlist( Elm.Object? parent ); - public GenlistItem item_append( GenlistItemClass itc, void *data, GenlistItem? parent, GenlistItemFlags flags, Evas.SmartCallback callback ); - public GenlistItem item_prepend( GenlistItemClass itc, void *data, GenlistItem? parent, GenlistItemFlags flags, Evas.SmartCallback callback ); - public GenlistItem item_insert_before( GenlistItemClass itc, void *data, GenlistItem before, GenlistItemFlags flags, Evas.SmartCallback callback ); - public GenlistItem item_insert_after( GenlistItemClass itc, void *data, GenlistItem after, GenlistItemFlags flags, Evas.SmartCallback callback ); + public unowned GenlistItem item_append( GenlistItemClass itc, void *data, GenlistItem? parent, GenlistItemFlags flags, Evas.SmartCallback callback ); + public unowned GenlistItem item_prepend( GenlistItemClass itc, void *data, GenlistItem? parent, GenlistItemFlags flags, Evas.SmartCallback callback ); + public unowned GenlistItem item_insert_before( GenlistItemClass itc, void *data, GenlistItem before, GenlistItemFlags flags, Evas.SmartCallback callback ); + public unowned GenlistItem item_insert_after( GenlistItemClass itc, void *data, GenlistItem after, GenlistItemFlags flags, Evas.SmartCallback callback ); public void clear(); public void multi_select_set( bool multi ); @@ -860,11 +858,11 @@ public class Genlist : Elm.Object public void always_select_mode_set( bool always_select ); public void no_select_mode_set( bool no_select ); - public GenlistItem at_xy_item_get( Evas.Coord x, Evas.Coord y, out int posret ); - public GenlistItem selected_item_get(); - public Eina.List selected_items_get(); - public GenlistItem first_item_get(); - public GenlistItem last_item_get(); + public unowned GenlistItem at_xy_item_get( Evas.Coord x, Evas.Coord y, out int posret ); + public unowned GenlistItem selected_item_get(); + public Eina.List selected_items_get(); + public unowned GenlistItem first_item_get(); + public unowned GenlistItem last_item_get(); } -- 2.11.4.GIT