python-efl/efl/elementary/store.pxd

109 lines
7.1 KiB
Cython

from efl cimport Eina_Bool
from efl.evas cimport Evas_Object
from enums cimport Elm_Icon_Lookup_Order, Elm_Store_Item_Mapping_Type
from genlist cimport Elm_Genlist_Item_Class
from object_item cimport Elm_Object_Item
cdef extern from "Python.h":
void PyEval_InitThreads()
cdef extern from "Elementary.h":
struct _Elm_Store:
pass
struct _Elm_Store_Item:
pass
ctypedef _Elm_Store Elm_Store # A store object
ctypedef _Elm_Store const Elm_Store
ctypedef _Elm_Store_Item Elm_Store_Item # A handle of a store item passed to store fetch/unfetch functions
ctypedef _Elm_Store_Item const Elm_Store_Item
ctypedef void (*Elm_Store_Item_Fetch_Cb)(void *data, Elm_Store_Item *sti) # Function to call to fetch item data
ctypedef void (*Elm_Store_Item_Unfetch_Cb)(void *data, Elm_Store_Item *sti) # Function to cal lto un-fetch (free) an item
ctypedef void *(*Elm_Store_Item_Mapping_Cb)(void *data, Elm_Store_Item *sti, const char *part) # Custom mapping function to call
struct _Elm_Store_Item_Mapping_Icon:
int w, h # The desired icon size in addition to the file path returned from the mapping
Elm_Icon_Lookup_Order lookup_order # The order in which to find the icon
Eina_Bool standard_name # Use a standard name to find it (EINA_TRUE) or not
Eina_Bool no_scale # EINA_TRUE is you don't want the icon scaled
Eina_Bool smooth # EINA_TRUE if icon is to be smooth scaled
Eina_Bool scale_up # EINA_TRUE if scaling up is allowed
Eina_Bool scale_down # EINA_TRUE if scaling down is allowed
ctypedef _Elm_Store_Item_Mapping_Icon Elm_Store_Item_Mapping_Icon # The data being mapped at the given address is an icon, so use these properties for finding it
struct _Elm_Store_Item_Mapping_Empty:
Eina_Bool dummy # dummy entry - set to anything you like
ctypedef _Elm_Store_Item_Mapping_Empty Elm_Store_Item_Mapping_Empty # An empty piece of mapping information. Useful for String labels as they get used directly
struct _Elm_Store_Item_Mapping_Photo:
int size # Photo size to use (see elm_photo_add()) with the given photo path
ctypedef _Elm_Store_Item_Mapping_Photo Elm_Store_Item_Mapping_Photo # The data is a photo, so use these parameters to find it
struct _Elm_Store_Item_Mapping_Custom:
Elm_Store_Item_Mapping_Cb func # The function called to do the custom mapping and return it
ctypedef _Elm_Store_Item_Mapping_Custom Elm_Store_Item_Mapping_Custom # The item needs a custom mapping which means calling a function and returning a string from it, as opposed to a static lookup. It should not be allocated, and should live in a buffer in memory that survives the return of this function if its a label, or an allocated icon object if its an icon needed etc.
union _Elm_Store_Item_Mapping_Details:
# Allowed to be one of these possible mapping types
Elm_Store_Item_Mapping_Empty empty
Elm_Store_Item_Mapping_Icon icon
Elm_Store_Item_Mapping_Photo photo
Elm_Store_Item_Mapping_Custom custom
# add more types here
struct _Elm_Store_Item_Mapping:
Elm_Store_Item_Mapping_Type type # what kind of mapping is this
const char *part # what part name in the genlist item is this filling in
int offset # offset in memory (in bytes) relative to base of structure for item data where the data for the mapping lives
_Elm_Store_Item_Mapping_Details details
ctypedef _Elm_Store_Item_Mapping Elm_Store_Item_Mapping # A basic way of telling Store how to take your return data (string, or something else from your struct) and convert it into something genlist can use
ctypedef _Elm_Store_Item_Mapping const Elm_Store_Item_Mapping
struct _Elm_Store_Item_Info:
Elm_Genlist_Item_Class *item_class # The genlist item class that should be used for the item that has been listed
const Elm_Store_Item_Mapping *mapping # What kind of mappings do we use for the fields of this item to fill in the genlist item. Terminate array pointed to here with ELM_STORE_ITEM_MAPPING_END
void *data # Pointer to pass to struct data in memory if its already there, of not, NULL
char *sort_id # Sort ID string (strduped()) to know how to wort items, or NULL, if you don't care
ctypedef _Elm_Store_Item_Info Elm_Store_Item_Info # Basic information about a store item - always cast into a specific type like Elm_Store_Item_Info_Filesystem
ctypedef Eina_Bool (*Elm_Store_Item_List_Cb)(void *data, Elm_Store_Item_Info *info) # Function to call for listing an item
struct _Elm_Store_Item_Info_Filesystem:
Elm_Store_Item_Info base # Base information about an item
char *path # Extra information specific to the filesystem store
ctypedef _Elm_Store_Item_Info_Filesystem Elm_Store_Item_Info_Filesystem # Filesystem specific information about a store item
#define ELM_STORE_ITEM_MAPPING_END { ELM_STORE_ITEM_MAPPING_NONE, NULL, 0, { .empty = { EINA_TRUE } } } # Use this to end a list of mappings
#define ELM_STORE_ITEM_MAPPING_OFFSET(st, it) offsetof(st, it) # Use this to get the offset in bytes in memory for where the data for the mapping lives relative to the item data (a private struct pointed to owned by the user
Elm_Store *elm_store_filesystem_new()
void elm_store_free(Elm_Store *st)
void elm_store_filesystem_directory_set(Elm_Store *st, const char *dir)
const char *elm_store_filesystem_directory_get(const Elm_Store *st)
const char *elm_store_item_filesystem_path_get(const Elm_Store_Item *sti)
void elm_store_target_genlist_set(Elm_Store *st, Evas_Object *obj)
void elm_store_cache_set(Elm_Store *st, int max)
int elm_store_cache_get(const Elm_Store *st)
void elm_store_list_func_set(Elm_Store *st, Elm_Store_Item_List_Cb func, const void *data)
void elm_store_fetch_func_set(Elm_Store *st, Elm_Store_Item_Fetch_Cb func, const void *data)
void elm_store_unfetch_func_set(Elm_Store *st, Elm_Store_Item_Unfetch_Cb func, const void *data)
void elm_store_fetch_thread_set(Elm_Store *st, Eina_Bool use_thread)
Eina_Bool elm_store_fetch_thread_get(const Elm_Store *st)
void elm_store_sorted_set(Elm_Store *st, Eina_Bool sorted)
Eina_Bool elm_store_sorted_get(const Elm_Store *st)
void elm_store_item_data_set(Elm_Store_Item *sti, void *data)
void *elm_store_item_data_get(Elm_Store_Item *sti)
const Elm_Store *elm_store_item_store_get(const Elm_Store_Item *sti)
const Elm_Object_Item *elm_store_item_genlist_item_get(const Elm_Store_Item *sti)