2008-09-29 23:58:56 -07:00
/*
* vim : ts = 8 : sw = 3 : sts = 8 : noexpandtab : cino = > 5 n - 3f 0 ^ - 2 { 2
*/
# ifndef ELEMENTARY_H
# define ELEMENTARY_H
2009-05-19 02:29:20 -07:00
/**
* @ file Elementary . h
* @ brief Elementary ' s API
*
* Elementary API .
*/
2008-12-18 16:34:56 -08:00
@ ELM_UNIX_DEF @ ELM_UNIX
@ ELM_WIN32_DEF @ ELM_WIN32
@ ELM_WINCE_DEF @ ELM_WINCE
2008-12-18 17:22:11 -08:00
@ ELM_EDBUS_DEF @ ELM_EDBUS
@ ELM_ALLOCA_H_DEF @ ELM_ALLOCA_H
2009-02-05 02:23:04 -08:00
@ ELM_LIBINTL_H_DEF @ ELM_LIBINTL_H
2008-09-29 23:58:56 -07:00
/* Standard headers for standard system calls etc. */
# include <stdio.h>
# include <stdlib.h>
# include <unistd.h>
# include <string.h>
# include <sys/types.h>
# include <sys/stat.h>
# include <sys/time.h>
# include <sys/param.h>
# include <dlfcn.h>
# include <math.h>
# include <fnmatch.h>
# include <limits.h>
# include <ctype.h>
# include <time.h>
# include <dirent.h>
# include <pwd.h>
# include <errno.h>
2008-12-18 17:47:42 -08:00
# ifdef ELM_UNIX
# include <locale.h>
2009-02-05 02:23:04 -08:00
# ifdef ELM_LIBINTL_H
2008-12-18 17:47:42 -08:00
# include <libintl.h>
2009-02-05 02:23:04 -08:00
# endif
2008-12-18 17:47:42 -08:00
# include <signal.h>
# include <grp.h>
# include <glob.h>
# endif
2008-09-29 23:58:56 -07:00
2008-12-18 17:22:11 -08:00
# ifdef ELM_ALLOCA_H
# include <alloca.h>
# endif
2008-12-18 17:47:42 -08:00
# if defined (ELM_WIN32) || defined (ELM_WINCE)
# include <malloc.h>
# ifndef alloca
# define alloca _alloca
# endif
# endif
2008-12-18 17:22:11 -08:00
2008-09-29 23:58:56 -07:00
/* EFL headers */
2008-10-17 07:40:54 -07:00
# include <Eina.h>
# include <Eet.h>
2008-09-29 23:58:56 -07:00
# include <Evas.h>
# include <Ecore.h>
# include <Ecore_Evas.h>
# include <Ecore_Job.h>
# include <Ecore_Txt.h>
# include <Ecore_File.h>
# include <Edje.h>
2008-12-18 17:22:11 -08:00
# ifdef ELM_EDBUS
# include <E_DBus.h>
# include <E_Hal.h>
# endif
2008-12-18 16:34:56 -08:00
# ifdef EAPI
# undef EAPI
# endif
# ifdef _WIN32
# ifdef ELEMENTARY_BUILD
# ifdef DLL_EXPORT
# define EAPI __declspec(dllexport)
# else
# define EAPI
# endif /* ! DLL_EXPORT */
# else
# define EAPI __declspec(dllimport)
# endif /* ! EFL_EVAS_BUILD */
# else
# ifdef __GNUC__
# if __GNUC__ >= 4
# define EAPI __attribute__ ((visibility("default")))
# else
# define EAPI
# endif
# else
# define EAPI
# endif
# endif /* ! _WIN32 */
2008-09-29 23:58:56 -07:00
/* allow usage from c++ */
# ifdef __cplusplus
extern " C " {
# endif
2009-02-25 22:50:36 -08:00
/* handy macros */
2009-02-11 03:49:43 -08:00
# define ELM_RECTS_INTERSECT(x, y, w, h, xx, yy, ww, hh) (((x) < ((xx) + (ww))) && ((y) < ((yy) + (hh))) && (((x) + (w)) > (xx)) && (((y) + (h)) > (yy)))
2008-10-06 18:23:49 -07:00
/**************************************************************************/
/* Objects */
2008-09-29 23:58:56 -07:00
typedef enum _Elm_Win_Type
{
ELM_WIN_BASIC ,
2009-04-10 21:54:12 -07:00
ELM_WIN_DIALOG_BASIC ,
ELM_WIN_DESKTOP ,
ELM_WIN_DOCK ,
ELM_WIN_TOOLBAR ,
ELM_WIN_MENU ,
ELM_WIN_UTILITY ,
ELM_WIN_SPLASH
2008-09-29 23:58:56 -07:00
} Elm_Win_Type ;
2008-11-18 02:11:57 -08:00
typedef enum _Elm_Win_Keyboard_Mode
{
ELM_WIN_KEYBOARD_UNKNOWN ,
ELM_WIN_KEYBOARD_OFF ,
ELM_WIN_KEYBOARD_ON ,
ELM_WIN_KEYBOARD_ALPHA ,
ELM_WIN_KEYBOARD_NUMERIC ,
ELM_WIN_KEYBOARD_PIN ,
ELM_WIN_KEYBOARD_PHONE_NUMBER ,
ELM_WIN_KEYBOARD_HEX ,
ELM_WIN_KEYBOARD_TERMINAL ,
ELM_WIN_KEYBOARD_PASSWORD
} Elm_Win_Keyboard_Mode ;
2009-01-09 03:34:55 -08:00
2009-02-25 03:00:07 -08:00
# ifndef ELM_LIB_QUICKLAUNCH
2009-01-09 03:34:55 -08:00
# define ELM_MAIN() int main(int argc, char **argv) {elm_init(argc, argv); return elm_main(argc, argv);}
2009-02-25 03:00:07 -08:00
# else
# define ELM_MAIN() int main(int argc, char **argv) {return elm_quicklaunch_fallback(argc, argv);}
# endif
2008-09-29 23:58:56 -07:00
/**************************************************************************/
/* General calls */
2008-10-06 18:23:49 -07:00
EAPI void elm_init ( int argc , char * * argv ) ;
EAPI void elm_shutdown ( void ) ;
EAPI void elm_run ( void ) ;
EAPI void elm_exit ( void ) ;
2009-02-25 03:00:07 -08:00
EAPI void elm_quicklaunch_init ( int argc , char * * argv ) ;
EAPI void elm_quicklaunch_sub_init ( int argc , char * * argv ) ;
EAPI void elm_quicklaunch_sub_shutdown ( void ) ;
EAPI void elm_quicklaunch_shutdown ( void ) ;
EAPI void elm_quicklaunch_seed ( void ) ;
2009-06-17 08:35:19 -07:00
EAPI Eina_Bool elm_quicklaunch_prepare ( int argc , char * * argv ) ;
EAPI Eina_Bool elm_quicklaunch_fork ( int argc , char * * argv , char * cwd , void ( postfork_func ) ( void * data ) , void * postfork_data ) ;
2009-02-25 03:00:07 -08:00
EAPI void elm_quicklaunch_cleanup ( void ) ;
EAPI int elm_quicklaunch_fallback ( int argc , char * * argv ) ;
EAPI char * elm_quicklaunch_exe_path_get ( const char * exe ) ;
2009-02-02 21:09:03 -08:00
EAPI void elm_object_scale_set ( Evas_Object * obj , double scale ) ;
2009-02-25 07:54:26 -08:00
EAPI double elm_object_scale_get ( const Evas_Object * obj ) ;
2009-04-22 21:03:27 -07:00
EAPI void elm_object_style_set ( Evas_Object * obj , const char * style ) ;
EAPI const char * elm_object_style_get ( const Evas_Object * obj ) ;
2009-03-12 22:50:38 -07:00
EAPI double elm_scale_get ( void ) ;
EAPI void elm_scale_set ( double scale ) ;
EAPI Evas_Coord elm_finger_size_get ( void ) ;
EAPI void elm_finger_size_set ( Evas_Coord size ) ;
2009-02-02 21:09:03 -08:00
EAPI void elm_object_focus ( Evas_Object * obj ) ;
2009-02-11 03:49:43 -08:00
EAPI void elm_coords_finger_size_adjust ( int times_w , Evas_Coord * w , int times_h , Evas_Coord * h ) ;
2009-02-23 00:40:58 -08:00
EAPI void elm_theme_overlay_add ( const char * item ) ;
EAPI void elm_theme_extension_add ( const char * item ) ;
2009-02-02 21:09:03 -08:00
2008-10-06 18:23:49 -07:00
EAPI Evas_Object * elm_win_add ( Evas_Object * parent , const char * name , Elm_Win_Type type ) ;
EAPI void elm_win_resize_object_add ( Evas_Object * obj , Evas_Object * subobj ) ;
EAPI void elm_win_resize_object_del ( Evas_Object * obj , Evas_Object * subobj ) ;
EAPI void elm_win_title_set ( Evas_Object * obj , const char * title ) ;
2009-06-17 08:35:19 -07:00
EAPI void elm_win_autodel_set ( Evas_Object * obj , Eina_Bool autodel ) ;
2008-10-06 18:23:49 -07:00
EAPI void elm_win_activate ( Evas_Object * obj ) ;
2009-04-03 14:52:01 -07:00
EAPI void elm_win_lower ( Evas_Object * obj ) ;
EAPI void elm_win_raise ( Evas_Object * obj ) ;
2009-06-17 08:35:19 -07:00
EAPI void elm_win_borderless_set ( Evas_Object * obj , Eina_Bool borderless ) ;
EAPI void elm_win_shaped_set ( Evas_Object * obj , Eina_Bool shaped ) ;
EAPI void elm_win_alpha_set ( Evas_Object * obj , Eina_Bool alpha ) ;
EAPI void elm_win_override_set ( Evas_Object * obj , Eina_Bool override ) ;
EAPI void elm_win_fullscreen_set ( Evas_Object * obj , Eina_Bool fullscreen ) ;
EAPI void elm_win_maximized_set ( Evas_Object * obj , Eina_Bool maximized ) ;
EAPI void elm_win_iconified_set ( Evas_Object * obj , Eina_Bool iconified ) ;
2009-03-12 22:50:38 -07:00
EAPI void elm_win_layer_set ( Evas_Object * obj , int layer ) ;
2009-03-14 11:03:19 -07:00
EAPI void elm_win_rotation_set ( Evas_Object * obj , int rotation ) ;
2009-04-03 14:52:01 -07:00
EAPI void elm_win_sticky_set ( Evas_Object * obj , Eina_Bool sticky ) ;
2009-03-12 22:50:38 -07:00
/*...
* ecore_x_icccm_hints_set - > accepts_focus ( add to ecore_evas )
* ecore_x_icccm_hints_set - > window_group ( add to ecore_evas )
* ecore_x_icccm_size_pos_hints_set - > request_pos ( add to ecore_evas )
* ecore_x_icccm_client_leader_set - > l ( add to ecore_evas )
* ecore_x_icccm_window_role_set - > role ( add to ecore_evas )
* ecore_x_icccm_transient_for_set - > forwin ( add to ecore_evas )
* ecore_x_netwm_window_type_set - > type ( add to ecore_evas )
*
* ( add to ecore_x ) set netwm argb icon ! ( add to ecore_evas )
* ( blank mouse , private mouse obj , defaultmouse )
*
*/
2008-11-18 02:11:57 -08:00
EAPI void elm_win_keyboard_mode_set ( Evas_Object * obj , Elm_Win_Keyboard_Mode mode ) ;
2009-06-17 08:35:19 -07:00
EAPI void elm_win_keyboard_win_set ( Evas_Object * obj , Eina_Bool is_keyboard ) ;
2008-12-30 08:19:46 -08:00
EAPI Evas_Object * elm_win_inwin_add ( Evas_Object * obj ) ;
EAPI void elm_win_inwin_activate ( Evas_Object * obj ) ;
EAPI void elm_win_inwin_style_set ( Evas_Object * obj , const char * style ) ;
2009-02-23 00:05:05 -08:00
EAPI void elm_win_inwin_content_set ( Evas_Object * obj , Evas_Object * content ) ;
2009-01-15 18:49:18 -08:00
/* available styles:
* default
2009-01-27 16:28:20 -08:00
* minimal
* minimal_vertical
2009-01-15 18:49:18 -08:00
*/
2008-12-30 08:19:46 -08:00
2008-11-18 22:23:08 -08:00
/* X specific calls - won't work on non-x engines (return 0) */
2009-02-25 07:54:26 -08:00
EAPI Ecore_X_Window elm_win_xwindow_get ( const Evas_Object * obj ) ;
2008-10-08 08:09:00 -07:00
/* smart callbacks called:
2008-10-06 18:23:49 -07:00
* " delete-request " - the user requested to delete the window
2009-04-04 09:58:28 -07:00
* " focus-in " - window got focus
* " focus-out " - window lost focus
2008-10-06 18:23:49 -07:00
*/
2008-09-29 23:58:56 -07:00
2008-10-06 18:23:49 -07:00
EAPI Evas_Object * elm_bg_add ( Evas_Object * parent ) ;
EAPI void elm_bg_file_set ( Evas_Object * obj , const char * file , const char * group ) ;
2008-10-08 08:09:00 -07:00
/* smart callbacks called:
2008-10-06 18:23:49 -07:00
*/
2008-09-29 23:58:56 -07:00
2008-10-06 18:23:49 -07:00
EAPI Evas_Object * elm_icon_add ( Evas_Object * parent ) ;
2009-04-03 14:52:01 -07:00
EAPI Eina_Bool elm_icon_file_set ( Evas_Object * obj , const char * file , const char * group ) ;
2008-10-21 05:01:00 -07:00
EAPI void elm_icon_standard_set ( Evas_Object * obj , const char * name ) ;
2009-06-17 08:35:19 -07:00
EAPI void elm_icon_smooth_set ( Evas_Object * obj , Eina_Bool smooth ) ;
EAPI void elm_icon_no_scale_set ( Evas_Object * obj , Eina_Bool no_scale ) ;
EAPI void elm_icon_scale_set ( Evas_Object * obj , Eina_Bool scale_up , Eina_Bool scale_down ) ;
EAPI void elm_icon_fill_outside_set ( Evas_Object * obj , Eina_Bool fill_outside ) ;
2009-03-12 22:50:38 -07:00
EAPI void elm_icon_prescale_set ( Evas_Object * obj , int size ) ;
2008-10-08 08:09:00 -07:00
/* smart callbacks called:
2008-10-08 02:33:05 -07:00
* " clicked " - the user clicked the icon
2008-10-06 18:23:49 -07:00
*/
2008-09-29 23:58:56 -07:00
2009-04-22 20:48:41 -07:00
typedef enum _Elm_Image_Orient
{
ELM_IMAGE_ORIENT_NONE ,
ELM_IMAGE_ROTATE_90_CW ,
ELM_IMAGE_ROTATE_180_CW ,
ELM_IMAGE_ROTATE_90_CCW ,
ELM_IMAGE_FLIP_HORIZONTAL ,
ELM_IMAGE_FLIP_VERTICAL ,
ELM_IMAGE_FLIP_TRANSPOSE ,
ELM_IMAGE_FLIP_TRANSVERSE
} Elm_Image_Orient ;
EAPI Evas_Object * elm_image_add ( Evas_Object * parent ) ;
EAPI Eina_Bool elm_image_file_set ( Evas_Object * obj , const char * file , const char * group ) ;
2009-06-17 08:35:19 -07:00
EAPI void elm_image_smooth_set ( Evas_Object * obj , Eina_Bool smooth ) ;
EAPI void elm_image_no_scale_set ( Evas_Object * obj , Eina_Bool no_scale ) ;
EAPI void elm_image_scale_set ( Evas_Object * obj , Eina_Bool scale_up , Eina_Bool scale_down ) ;
EAPI void elm_image_fill_outside_set ( Evas_Object * obj , Eina_Bool fill_outside ) ;
2009-04-22 20:48:41 -07:00
EAPI void elm_image_prescale_set ( Evas_Object * obj , int size ) ;
EAPI void elm_image_orient_set ( Evas_Object * obj , Elm_Image_Orient orient ) ;
/* smart callbacks called:
* " clicked " - the user clicked the image
*/
2008-10-06 18:23:49 -07:00
EAPI Evas_Object * elm_box_add ( Evas_Object * parent ) ;
2009-06-17 08:35:19 -07:00
EAPI void elm_box_horizontal_set ( Evas_Object * obj , Eina_Bool horizontal ) ;
EAPI void elm_box_homogenous_set ( Evas_Object * obj , Eina_Bool homogenous ) ;
2008-10-06 18:23:49 -07:00
EAPI void elm_box_pack_start ( Evas_Object * obj , Evas_Object * subobj ) ;
EAPI void elm_box_pack_end ( Evas_Object * obj , Evas_Object * subobj ) ;
EAPI void elm_box_pack_before ( Evas_Object * obj , Evas_Object * subobj , Evas_Object * before ) ;
EAPI void elm_box_pack_after ( Evas_Object * obj , Evas_Object * subobj , Evas_Object * after ) ;
2008-10-08 08:09:00 -07:00
/* smart callbacks called:
2008-10-06 18:23:49 -07:00
*/
EAPI Evas_Object * elm_button_add ( Evas_Object * parent ) ;
EAPI void elm_button_label_set ( Evas_Object * obj , const char * label ) ;
EAPI void elm_button_icon_set ( Evas_Object * obj , Evas_Object * icon ) ;
2008-12-08 01:24:46 -08:00
EAPI void elm_button_style_set ( Evas_Object * obj , const char * style ) ;
2009-01-15 18:49:18 -08:00
/* available styles:
* default
* hoversel_vertical
* hoversel_vertical_entry
*/
2008-10-08 08:09:00 -07:00
/* smart callbacks called:
2008-10-06 18:23:49 -07:00
* " clicked " - the user clicked the button
*/
2009-04-23 05:58:34 -07:00
typedef enum _Elm_Scroller_Policy
{
ELM_SCROLLER_POLICY_AUTO ,
ELM_SCROLLER_POLICY_ON ,
ELM_SCROLLER_POLICY_OFF
}
Elm_Scroller_Policy ;
2008-10-06 18:23:49 -07:00
EAPI Evas_Object * elm_scroller_add ( Evas_Object * parent ) ;
2008-10-06 23:55:11 -07:00
EAPI void elm_scroller_content_set ( Evas_Object * obj , Evas_Object * child ) ;
2009-06-17 08:35:19 -07:00
EAPI void elm_scroller_content_min_limit ( Evas_Object * obj , Eina_Bool w , Eina_Bool h ) ;
2009-01-08 23:35:52 -08:00
EAPI void elm_scroller_region_show ( Evas_Object * obj , Evas_Coord x , Evas_Coord y , Evas_Coord w , Evas_Coord h ) ;
2009-04-23 05:58:34 -07:00
EAPI void elm_scroller_policy_set ( Evas_Object * obj , Elm_Scroller_Policy policy_h , Elm_Scroller_Policy policy_v ) ;
EAPI void elm_scroller_region_get ( Evas_Object * obj , Evas_Coord * x , Evas_Coord * y , Evas_Coord * w , Evas_Coord * h ) ;
2009-05-08 04:27:32 -07:00
EAPI void elm_scroller_child_size_get ( Evas_Object * obj , Evas_Coord * w , Evas_Coord * h ) ;
2009-06-17 08:35:19 -07:00
EAPI void elm_scroller_bounce_set ( Evas_Object * obj , Eina_Bool h_bounce , Eina_Bool v_bounce ) ;
2008-10-08 08:09:00 -07:00
/* smart callbacks called:
2009-05-08 04:27:32 -07:00
* " edge_left "
* " edge_right "
* " edge_top "
* " edge_bottom "
* " scroll "
2008-10-06 18:23:49 -07:00
*/
2008-09-29 23:58:56 -07:00
2008-10-06 18:23:49 -07:00
EAPI Evas_Object * elm_label_add ( Evas_Object * parent ) ;
EAPI void elm_label_label_set ( Evas_Object * obj , const char * label ) ;
2008-10-08 08:09:00 -07:00
/* smart callbacks called:
2008-10-06 18:23:49 -07:00
*/
EAPI Evas_Object * elm_toggle_add ( Evas_Object * parent ) ;
EAPI void elm_toggle_label_set ( Evas_Object * obj , const char * label ) ;
EAPI void elm_toggle_icon_set ( Evas_Object * obj , Evas_Object * icon ) ;
EAPI void elm_toggle_states_labels_set ( Evas_Object * obj , const char * onlabel , const char * offlabel ) ;
2009-06-17 08:35:19 -07:00
EAPI void elm_toggle_state_set ( Evas_Object * obj , Eina_Bool state ) ;
EAPI Eina_Bool elm_toggle_state_get ( const Evas_Object * obj ) ;
EAPI void elm_toggle_state_pointer_set ( Evas_Object * obj , Eina_Bool * statep ) ;
2008-10-08 08:09:00 -07:00
/* smart callbacks called:
2008-10-06 18:23:49 -07:00
* " changed " - the user toggled the state
*/
EAPI Evas_Object * elm_frame_add ( Evas_Object * parent ) ;
EAPI void elm_frame_label_set ( Evas_Object * obj , const char * label ) ;
EAPI void elm_frame_content_set ( Evas_Object * obj , Evas_Object * content ) ;
2008-12-08 01:24:46 -08:00
EAPI void elm_frame_style_set ( Evas_Object * obj , const char * style ) ;
2009-01-15 18:49:18 -08:00
/* available styles:
* default
* pad_small
* pad_medium
* pad_large
* pad_huge
* outdent_top
* outdent_bottom
*/
2008-10-08 08:09:00 -07:00
/* smart callbacks called:
2008-10-06 18:23:49 -07:00
*/
EAPI Evas_Object * elm_table_add ( Evas_Object * parent ) ;
2009-06-17 08:35:19 -07:00
EAPI void elm_table_homogenous_set ( Evas_Object * obj , Eina_Bool homogenous ) ;
2008-10-06 18:23:49 -07:00
EAPI void elm_table_pack ( Evas_Object * obj , Evas_Object * subobj , int x , int y , int w , int h ) ;
2008-10-08 08:09:00 -07:00
/* smart callbacks called:
2008-10-06 18:23:49 -07:00
*/
EAPI Evas_Object * elm_clock_add ( Evas_Object * parent ) ;
EAPI void elm_clock_time_set ( Evas_Object * obj , int hrs , int min , int sec ) ;
2009-02-25 07:54:26 -08:00
EAPI void elm_clock_time_get ( const Evas_Object * obj , int * hrs , int * min , int * sec ) ;
2009-06-17 08:35:19 -07:00
EAPI void elm_clock_edit_set ( Evas_Object * obj , Eina_Bool edit ) ;
EAPI void elm_clock_show_am_pm_set ( Evas_Object * obj , Eina_Bool am_pm ) ;
EAPI void elm_clock_show_seconds_set ( Evas_Object * obj , Eina_Bool seconds ) ;
2008-10-08 08:09:00 -07:00
/* smart callbacks called:
2008-10-06 18:23:49 -07:00
* " changed " - the user changed the time
*/
2008-10-02 05:45:23 -07:00
2008-10-07 00:45:49 -07:00
EAPI Evas_Object * elm_layout_add ( Evas_Object * parent ) ;
2009-04-03 14:52:01 -07:00
EAPI Eina_Bool elm_layout_file_set ( Evas_Object * obj , const char * file , const char * group ) ;
2008-10-07 00:45:49 -07:00
EAPI void elm_layout_content_set ( Evas_Object * obj , const char * swallow , Evas_Object * content ) ;
2009-02-25 07:54:26 -08:00
EAPI Evas_Object * elm_layout_edje_get ( const Evas_Object * obj ) ;
2008-10-08 08:09:00 -07:00
/* smart callbacks called:
2008-10-07 00:45:49 -07:00
*/
2008-11-26 21:41:13 -08:00
typedef enum _Elm_Hover_Axis
{
ELM_HOVER_AXIS_NONE ,
ELM_HOVER_AXIS_HORIZONTAL ,
ELM_HOVER_AXIS_VERTICAL ,
ELM_HOVER_AXIS_BOTH
} Elm_Hover_Axis ;
2008-10-07 23:38:20 -07:00
EAPI Evas_Object * elm_hover_add ( Evas_Object * parent ) ;
EAPI void elm_hover_target_set ( Evas_Object * obj , Evas_Object * target ) ;
EAPI void elm_hover_parent_set ( Evas_Object * obj , Evas_Object * parent ) ;
2008-10-08 01:48:09 -07:00
EAPI void elm_hover_content_set ( Evas_Object * obj , const char * swallow , Evas_Object * content ) ;
2008-10-09 01:10:20 -07:00
EAPI void elm_hover_style_set ( Evas_Object * obj , const char * style ) ;
2009-04-23 08:59:08 -07:00
EAPI const char * elm_hover_best_content_location_get ( const Evas_Object * obj , Elm_Hover_Axis pref_axis ) ;
2009-01-15 18:49:18 -08:00
/* available styles:
* default
* popout
* hoversel_vertical
*/
2008-10-08 08:09:00 -07:00
/* smart callbacks called:
2008-10-24 19:11:06 -07:00
* " clicked " - the user clicked the empty space in the hover to dismiss
2008-10-07 23:38:20 -07:00
*/
2008-10-14 01:05:30 -07:00
2008-10-24 19:11:06 -07:00
typedef struct _Elm_Entry_Anchor_Info Elm_Entry_Anchor_Info ;
struct _Elm_Entry_Anchor_Info
{
const char * name ;
int button ;
Evas_Coord x , y , w , h ;
} ;
2008-10-14 01:05:30 -07:00
EAPI Evas_Object * elm_entry_add ( Evas_Object * parent ) ;
2009-06-17 08:35:19 -07:00
EAPI void elm_entry_single_line_set ( Evas_Object * obj , Eina_Bool single_line ) ;
EAPI void elm_entry_password_set ( Evas_Object * obj , Eina_Bool password ) ;
2008-10-16 02:17:57 -07:00
EAPI void elm_entry_entry_set ( Evas_Object * obj , const char * entry ) ;
2009-02-25 07:54:26 -08:00
EAPI const char * elm_entry_entry_get ( const Evas_Object * obj ) ;
EAPI const char * elm_entry_selection_get ( const Evas_Object * obj ) ;
2008-10-16 02:17:57 -07:00
EAPI void elm_entry_entry_insert ( Evas_Object * obj , const char * entry ) ;
2009-06-17 08:35:19 -07:00
EAPI void elm_entry_line_wrap_set ( Evas_Object * obj , Eina_Bool wrap ) ;
EAPI void elm_entry_editable_set ( Evas_Object * obj , Eina_Bool editable ) ;
2008-11-18 00:45:38 -08:00
EAPI void elm_entry_select_none ( Evas_Object * obj ) ;
EAPI void elm_entry_select_all ( Evas_Object * obj ) ;
2009-01-26 16:44:29 -08:00
EAPI char * elm_entry_markup_to_utf8 ( const char * s ) ;
EAPI char * elm_entry_utf8_to_markup ( const char * s ) ;
2008-11-18 00:45:38 -08:00
2008-10-16 02:17:57 -07:00
/* smart callbacks called:
2008-10-17 20:55:44 -07:00
* " changed " - the text content changed
2008-10-20 22:40:01 -07:00
* " selection,start " - the user started selecting text
* " selection,changed " - the user modified the selection size / location
* " selection,cleared " - the user cleared the selection
* " selection,paste " - the user rrequested a paste of text
* " selection,copy " - the user copied the text
* " selection,cut " - the user cut the text
* " cursor,changed " - the cursor changed position
2008-10-24 19:11:06 -07:00
* " anchor,clicked " - achor called was clicked | event_info = Elm_Entry_Anchor_Info
2008-10-22 01:58:56 -07:00
* " activated " - when the enter key is pressed ( useful for single line )
2008-10-16 02:17:57 -07:00
*/
2008-10-21 05:01:00 -07:00
/* composite widgets - these basically put together basic widgets above
* in convenient packages that do more than basic stuff */
typedef enum _Elm_Text_Format
{
ELM_TEXT_FORMAT_PLAIN_UTF8 ,
ELM_TEXT_FORMAT_MARKUP_UTF8
} Elm_Text_Format ;
EAPI Evas_Object * elm_notepad_add ( Evas_Object * parent ) ;
EAPI void elm_notepad_file_set ( Evas_Object * obj , const char * file , Elm_Text_Format format ) ;
/* smart callbacks called:
*/
2008-10-24 19:11:06 -07:00
typedef struct _Elm_Entry_Anchorview_Info Elm_Entry_Anchorview_Info ;
struct _Elm_Entry_Anchorview_Info
{
const char * name ;
int button ;
Evas_Object * hover ;
struct {
Evas_Coord x , y , w , h ;
} anchor , hover_parent ;
2009-06-17 08:35:19 -07:00
Eina_Bool hover_left : 1 ;
Eina_Bool hover_right : 1 ;
Eina_Bool hover_top : 1 ;
Eina_Bool hover_bottom : 1 ;
2008-10-24 19:11:06 -07:00
} ;
EAPI Evas_Object * elm_anchorview_add ( Evas_Object * parent ) ;
EAPI void elm_anchorview_text_set ( Evas_Object * obj , const char * text ) ;
2008-11-15 05:58:50 -08:00
EAPI void elm_anchorview_hover_parent_set ( Evas_Object * obj , Evas_Object * parent ) ;
2008-10-24 19:11:06 -07:00
EAPI void elm_anchorview_hover_style_set ( Evas_Object * obj , const char * style ) ;
EAPI void elm_anchorview_hover_end ( Evas_Object * obj ) ;
/* smart callbacks called:
* " anchor,clicked " - achor called was clicked | event_info = Elm_Entry_Anchorview_Info
*/
typedef struct _Elm_Entry_Anchorblock_Info Elm_Entry_Anchorblock_Info ;
struct _Elm_Entry_Anchorblock_Info
{
const char * name ;
int button ;
Evas_Object * hover ;
struct {
Evas_Coord x , y , w , h ;
} anchor , hover_parent ;
2009-06-17 08:35:19 -07:00
Eina_Bool hover_left : 1 ;
Eina_Bool hover_right : 1 ;
Eina_Bool hover_top : 1 ;
Eina_Bool hover_bottom : 1 ;
2008-10-24 19:11:06 -07:00
} ;
EAPI Evas_Object * elm_anchorblock_add ( Evas_Object * parent ) ;
EAPI void elm_anchorblock_text_set ( Evas_Object * obj , const char * text ) ;
2008-11-15 05:58:50 -08:00
EAPI void elm_anchorblock_hover_parent_set ( Evas_Object * obj , Evas_Object * parent ) ;
2008-10-24 19:11:06 -07:00
EAPI void elm_anchorblock_hover_style_set ( Evas_Object * obj , const char * style ) ;
EAPI void elm_anchorblock_hover_end ( Evas_Object * obj ) ;
/* smart callbacks called:
* " anchor,clicked " - achor called was clicked | event_info = Elm_Entry_Anchorblock_Info
*/
2008-10-28 18:51:45 -07:00
EAPI Evas_Object * elm_bubble_add ( Evas_Object * parent ) ;
EAPI void elm_bubble_label_set ( Evas_Object * obj , const char * label ) ;
2008-11-15 05:58:50 -08:00
EAPI void elm_bubble_info_set ( Evas_Object * obj , const char * info ) ;
2008-10-28 18:51:45 -07:00
EAPI void elm_bubble_content_set ( Evas_Object * obj , Evas_Object * content ) ;
EAPI void elm_bubble_icon_set ( Evas_Object * obj , Evas_Object * icon ) ;
2008-12-04 23:42:14 -08:00
EAPI void elm_bubble_corner_set ( Evas_Object * obj , const char * corner ) ;
2008-10-28 18:51:45 -07:00
/* smart callbacks called:
*/
2008-11-17 17:41:49 -08:00
2008-12-04 23:42:14 -08:00
EAPI Evas_Object * elm_photo_add ( Evas_Object * parent ) ;
2009-04-03 14:52:01 -07:00
EAPI Eina_Bool elm_photo_file_set ( Evas_Object * obj , const char * file ) ;
2008-12-04 23:42:14 -08:00
EAPI void elm_photo_size_set ( Evas_Object * obj , int size ) ;
/* smart callbacks called:
* " clicked " - the user clicked the icon
*/
2008-12-15 16:15:34 -08:00
typedef enum _Elm_Icon_Type
{
ELM_ICON_NONE ,
2008-12-18 16:34:56 -08:00
ELM_ICON_FILE ,
ELM_ICON_STANDARD
2008-12-15 16:15:34 -08:00
} Elm_Icon_Type ;
typedef struct _Elm_Hoversel_Item Elm_Hoversel_Item ;
EAPI Evas_Object * elm_hoversel_add ( Evas_Object * parent ) ;
EAPI void elm_hoversel_hover_parent_set ( Evas_Object * obj , Evas_Object * parent ) ;
EAPI void elm_hoversel_label_set ( Evas_Object * obj , const char * label ) ;
EAPI void elm_hoversel_icon_set ( Evas_Object * obj , Evas_Object * icon ) ;
2009-03-19 06:36:46 -07:00
EAPI void elm_hoversel_hover_begin ( Evas_Object * obj ) ;
2008-12-15 16:15:34 -08:00
EAPI void elm_hoversel_hover_end ( Evas_Object * obj ) ;
EAPI Elm_Hoversel_Item * elm_hoversel_item_add ( Evas_Object * obj , const char * label , const char * icon_file , Elm_Icon_Type icon_type , void ( * func ) ( void * data , Evas_Object * obj , void * event_info ) , const void * data ) ;
EAPI void elm_hoversel_item_del ( Elm_Hoversel_Item * item ) ;
2009-03-31 04:58:56 -07:00
EAPI void * elm_hoversel_item_data_get ( Elm_Hoversel_Item * it ) ;
2008-12-18 16:34:56 -08:00
/* smart callbacks called:
2008-12-18 20:26:24 -08:00
* " clicked " - the user clicked the hoversel button and popped up the sel
* " selected " - an item in the hoversel list is selected
* " dismissed " - the hover is dismissed
2008-12-18 16:34:56 -08:00
*/
2008-12-18 05:38:58 -08:00
typedef struct _Elm_Toolbar_Item Elm_Toolbar_Item ;
EAPI Evas_Object * elm_toolbar_add ( Evas_Object * parent ) ;
EAPI Elm_Toolbar_Item * elm_toolbar_item_add ( Evas_Object * obj , Evas_Object * icon , const char * label , void ( * func ) ( void * data , Evas_Object * obj , void * event_info ) , const void * data ) ;
EAPI void elm_toolbar_item_del ( Elm_Toolbar_Item * item ) ;
EAPI void elm_toolbar_item_select ( Elm_Toolbar_Item * item ) ;
2009-06-17 08:35:19 -07:00
EAPI void elm_toolbar_scrollable_set ( Evas_Object * obj , Eina_Bool scrollable ) ;
2008-12-18 16:34:56 -08:00
/* smart callbacks called:
2008-12-18 20:26:24 -08:00
* " clicked " - when the user clicks on a toolbar item and becomes selected
2008-12-18 16:34:56 -08:00
*/
2008-12-18 05:38:58 -08:00
2009-03-14 20:03:54 -07:00
typedef enum _Elm_List_Mode
2009-01-07 05:49:08 -08:00
{
ELM_LIST_COMPRESS ,
ELM_LIST_SCROLL ,
ELM_LIST_LIMIT
2009-03-14 20:03:54 -07:00
} Elm_List_Mode ;
2009-01-07 05:49:08 -08:00
typedef struct _Elm_List_Item Elm_List_Item ;
EAPI Evas_Object * elm_list_add ( Evas_Object * parent ) ;
2009-01-08 06:29:13 -08:00
EAPI Elm_List_Item * elm_list_item_append ( Evas_Object * obj , const char * label , Evas_Object * icon , Evas_Object * end , void ( * func ) ( void * data , Evas_Object * obj , void * event_info ) , const void * data ) ;
2009-01-08 23:35:52 -08:00
EAPI Elm_List_Item * elm_list_item_prepend ( Evas_Object * obj , const char * label , Evas_Object * icon , Evas_Object * end , void ( * func ) ( void * data , Evas_Object * obj , void * event_info ) , const void * data ) ;
EAPI Elm_List_Item * elm_list_item_insert_before ( Evas_Object * obj , Elm_List_Item * before , const char * label , Evas_Object * icon , Evas_Object * end , void ( * func ) ( void * data , Evas_Object * obj , void * event_info ) , const void * data ) ;
EAPI Elm_List_Item * elm_list_item_insert_after ( Evas_Object * obj , Elm_List_Item * after , const char * label , Evas_Object * icon , Evas_Object * end , void ( * func ) ( void * data , Evas_Object * obj , void * event_info ) , const void * data ) ;
2009-04-03 14:52:01 -07:00
EAPI void elm_list_clear ( Evas_Object * obj ) ;
2009-01-08 23:35:52 -08:00
EAPI void elm_list_go ( Evas_Object * obj ) ;
2009-06-17 08:35:19 -07:00
EAPI void elm_list_multi_select_set ( Evas_Object * obj , Eina_Bool multi ) ;
2009-03-14 21:13:08 -07:00
EAPI void elm_list_horizontal_mode_set ( Evas_Object * obj , Elm_List_Mode mode ) ;
2009-06-17 08:35:19 -07:00
EAPI void elm_list_always_select_mode_set ( Evas_Object * obj , Eina_Bool always_select ) ;
2009-02-25 07:54:26 -08:00
EAPI const Eina_List * elm_list_items_get ( const Evas_Object * obj ) ;
EAPI Elm_List_Item * elm_list_selected_item_get ( const Evas_Object * obj ) ;
EAPI const Eina_List * elm_list_selected_items_get ( const Evas_Object * obj ) ;
2009-06-17 08:35:19 -07:00
EAPI void elm_list_item_selected_set ( Elm_List_Item * item , Eina_Bool selected ) ;
2009-01-08 23:35:52 -08:00
EAPI void elm_list_item_show ( Elm_List_Item * item ) ;
EAPI void elm_list_item_del ( Elm_List_Item * item ) ;
2009-04-03 14:52:01 -07:00
EAPI void elm_list_item_del_cb_set ( Elm_List_Item * item , void ( * func ) ( void * data , Evas_Object * obj , void * event_info ) ) ;
2009-02-25 07:54:26 -08:00
EAPI const void * elm_list_item_data_get ( const Elm_List_Item * item ) ;
EAPI Evas_Object * elm_list_item_icon_get ( const Elm_List_Item * item ) ;
EAPI Evas_Object * elm_list_item_end_get ( const Elm_List_Item * item ) ;
2009-04-03 14:52:01 -07:00
EAPI Evas_Object * elm_list_item_base_get ( const Elm_List_Item * item ) ;
EAPI const char * elm_list_item_label_get ( const Elm_List_Item * item ) ;
2009-04-04 08:06:58 -07:00
EAPI Elm_List_Item * elm_list_item_prev ( const Elm_List_Item * it ) ;
EAPI Elm_List_Item * elm_list_item_next ( const Elm_List_Item * it ) ;
2009-01-07 05:49:08 -08:00
/* smart callbacks called:
* " clicked " - when the user double - clicked an item
2009-01-08 23:35:52 -08:00
* " selected " - when the user selected an item
* " unselected " - when the user selected an item
2009-01-07 05:49:08 -08:00
*/
2009-01-13 01:20:53 -08:00
2009-02-09 03:23:59 -08:00
// FIXME: incomplete - carousel
2009-01-13 01:20:53 -08:00
typedef struct _Elm_Carousel_Item Elm_Carousel_Item ;
EAPI Evas_Object * elm_carousel_add ( Evas_Object * parent ) ;
EAPI Elm_Carousel_Item * elm_carousel_item_add ( Evas_Object * obj , Evas_Object * icon , const char * label , void ( * func ) ( void * data , Evas_Object * obj , void * event_info ) , const void * data ) ;
EAPI void elm_carousel_item_del ( Elm_Carousel_Item * item ) ;
EAPI void elm_carousel_item_select ( Elm_Carousel_Item * item ) ;
/* smart callbacks called:
* " clicked " - when the user clicks on a carousel item and becomes selected
*/
2009-02-08 04:34:58 -08:00
EAPI Evas_Object * elm_slider_add ( Evas_Object * parent ) ;
2009-02-09 03:23:59 -08:00
EAPI void elm_slider_label_set ( Evas_Object * obj , const char * label ) ;
EAPI void elm_slider_icon_set ( Evas_Object * obj , Evas_Object * icon ) ;
EAPI void elm_slider_span_size_set ( Evas_Object * obj , Evas_Coord size ) ;
EAPI void elm_slider_unit_format_set ( Evas_Object * obj , const char * format ) ;
EAPI void elm_slider_indicator_format_set ( Evas_Object * obj , const char * indicator ) ;
2009-06-17 08:35:19 -07:00
EAPI void elm_slider_horizontal_set ( Evas_Object * obj , Eina_Bool horizontal ) ;
2009-02-09 03:23:59 -08:00
EAPI void elm_slider_min_max_set ( Evas_Object * obj , double min , double max ) ;
EAPI void elm_slider_value_set ( Evas_Object * obj , double val ) ;
2009-02-25 07:54:26 -08:00
EAPI double elm_slider_value_get ( const Evas_Object * obj ) ;
2009-06-17 08:35:19 -07:00
EAPI void elm_slider_inverted_set ( Evas_Object * obj , Eina_Bool inverted ) ;
2009-02-08 04:34:58 -08:00
/* smart callbacks called:
* " changed " - when the slider value changes
* " delay,changed " - when the slider value changed , but a small time after a change ( use this if you only want to respond to a change once the slider is held still for a short while ) .
*/
2009-02-09 03:23:59 -08:00
typedef enum _Elm_Genlist_Item_Flags
{
2009-02-11 03:49:43 -08:00
ELM_GENLIST_ITEM_NONE = 0 ,
ELM_GENLIST_ITEM_SUBITEMS = ( 1 < < 0 )
2009-02-09 03:23:59 -08:00
} Elm_Genlist_Item_Flags ;
typedef struct _Elm_Genlist_Item_Class Elm_Genlist_Item_Class ;
typedef struct _Elm_Genlist_Item Elm_Genlist_Item ;
2009-03-14 20:03:54 -07:00
typedef struct _Elm_Genlist_Item_Class_Func Elm_Genlist_Item_Class_Func ;
typedef char * ( * GenlistItemLabelGetFunc ) ( const void * data , Evas_Object * obj , const char * part ) ;
typedef Evas_Object * ( * GenlistItemIconGetFunc ) ( const void * data , Evas_Object * obj , const char * part ) ;
2009-06-17 08:35:19 -07:00
typedef Eina_Bool ( * GenlistItemStateGetFunc ) ( const void * data , Evas_Object * obj , const char * part ) ;
2009-03-14 21:13:08 -07:00
typedef void ( * GenlistItemDelFunc ) ( const void * data , Evas_Object * obj ) ;
2009-03-14 20:03:54 -07:00
2009-02-09 03:23:59 -08:00
struct _Elm_Genlist_Item_Class
{
2009-02-17 20:18:25 -08:00
const char * item_style ;
2009-03-14 20:03:54 -07:00
struct _Elm_Genlist_Item_Class_Func {
GenlistItemLabelGetFunc label_get ;
GenlistItemIconGetFunc icon_get ;
GenlistItemStateGetFunc state_get ;
GenlistItemDelFunc del ;
2009-02-09 03:23:59 -08:00
} func ;
} ;
2009-01-20 16:05:38 -08:00
2009-02-18 05:42:56 -08:00
EAPI Evas_Object * elm_genlist_add ( Evas_Object * parent ) ;
2009-02-16 23:50:35 -08:00
EAPI Elm_Genlist_Item * elm_genlist_item_append ( Evas_Object * obj , const Elm_Genlist_Item_Class * itc , const void * data , Elm_Genlist_Item * parent , Elm_Genlist_Item_Flags flags , void ( * func ) ( void * data , Evas_Object * obj , void * event_info ) , const void * func_data ) ;
2009-02-18 04:41:45 -08:00
EAPI Elm_Genlist_Item * elm_genlist_item_prepend ( Evas_Object * obj , const Elm_Genlist_Item_Class * itc , const void * data , Elm_Genlist_Item * parent , Elm_Genlist_Item_Flags flags , void ( * func ) ( void * data , Evas_Object * obj , void * event_info ) , const void * func_data ) ;
EAPI Elm_Genlist_Item * elm_genlist_item_insert_before ( Evas_Object * obj , const Elm_Genlist_Item_Class * itc , const void * data , Elm_Genlist_Item * before , Elm_Genlist_Item_Flags flags , void ( * func ) ( void * data , Evas_Object * obj , void * event_info ) , const void * func_data ) ;
EAPI Elm_Genlist_Item * elm_genlist_item_insert_after ( Evas_Object * obj , const Elm_Genlist_Item_Class * itc , const void * data , Elm_Genlist_Item * after , Elm_Genlist_Item_Flags flags , void ( * func ) ( void * data , Evas_Object * obj , void * event_info ) , const void * func_data ) ;
2009-02-18 05:42:56 -08:00
EAPI void elm_genlist_clear ( Evas_Object * obj ) ;
2009-06-17 08:35:19 -07:00
EAPI void elm_genlist_multi_select_set ( Evas_Object * obj , Eina_Bool multi ) ;
2009-02-25 07:54:26 -08:00
EAPI Elm_Genlist_Item * elm_genlist_selected_item_get ( const Evas_Object * obj ) ;
EAPI const Eina_List * elm_genlist_selected_items_get ( const Evas_Object * obj ) ;
EAPI Elm_Genlist_Item * elm_genlist_first_item_get ( const Evas_Object * obj ) ;
EAPI Elm_Genlist_Item * elm_genlist_last_item_get ( const Evas_Object * obj ) ;
EAPI Elm_Genlist_Item * elm_genlist_item_next_get ( const Elm_Genlist_Item * item ) ;
EAPI Elm_Genlist_Item * elm_genlist_item_prev_get ( const Elm_Genlist_Item * item ) ;
2009-03-12 22:50:38 -07:00
EAPI Evas_Object * elm_genlist_item_genlist_get ( const Elm_Genlist_Item * item ) ;
EAPI Elm_Genlist_Item * elm_genlist_item_parent_get ( const Elm_Genlist_Item * it ) ;
EAPI void elm_genlist_item_subitems_clear ( Elm_Genlist_Item * item ) ;
2009-06-17 08:35:19 -07:00
EAPI void elm_genlist_item_selected_set ( Elm_Genlist_Item * item , Eina_Bool selected ) ;
EAPI Eina_Bool elm_genlist_item_selected_get ( const Elm_Genlist_Item * item ) ;
EAPI void elm_genlist_item_expanded_set ( Elm_Genlist_Item * item , Eina_Bool expanded ) ;
EAPI Eina_Bool elm_genlist_item_expanded_get ( const Elm_Genlist_Item * item ) ;
EAPI void elm_genlist_item_disabled_set ( Elm_Genlist_Item * item , Eina_Bool disabled ) ;
EAPI Eina_Bool elm_genlist_item_disabled_get ( const Elm_Genlist_Item * item ) ;
2009-02-18 05:42:56 -08:00
EAPI void elm_genlist_item_show ( Elm_Genlist_Item * item ) ;
EAPI void elm_genlist_item_del ( Elm_Genlist_Item * item ) ;
2009-02-25 07:54:26 -08:00
EAPI const void * elm_genlist_item_data_get ( const Elm_Genlist_Item * item ) ;
2009-02-18 05:42:56 -08:00
EAPI void elm_genlist_item_update ( Elm_Genlist_Item * item ) ;
2009-03-14 21:13:08 -07:00
EAPI void elm_genlist_horizontal_mode_set ( Evas_Object * obj , Elm_List_Mode mode ) ;
2009-06-17 08:35:19 -07:00
EAPI void elm_genlist_always_select_mode_set ( Evas_Object * obj , Eina_Bool always_select ) ;
EAPI void elm_genlist_no_select_mode_set ( Evas_Object * obj , Eina_Bool no_select ) ;
2009-04-23 08:59:08 -07:00
/* available item styles:
* default
* double_label
*/
2009-02-16 23:50:35 -08:00
/* smart callbacks called:
2009-03-12 22:50:38 -07:00
* " clicked " - when the user double - clicked an item
* " selected " - when the user selected an item
* " unselected " - when the user selected an item
* " expanded " - when the user expanded an item
* " contracted " - when the user contracted an item
* " expand,request " - when the user requested to expand an item
* " contract,request " - when the user requested to expand an item
2009-02-16 23:50:35 -08:00
*/
2009-02-23 00:05:05 -08:00
EAPI Evas_Object * elm_check_add ( Evas_Object * parent ) ;
EAPI void elm_check_label_set ( Evas_Object * obj , const char * label ) ;
EAPI void elm_check_icon_set ( Evas_Object * obj , Evas_Object * icon ) ;
2009-06-17 08:35:19 -07:00
EAPI void elm_check_state_set ( Evas_Object * obj , Eina_Bool state ) ;
EAPI Eina_Bool elm_check_state_get ( const Evas_Object * obj ) ;
EAPI void elm_check_state_pointer_set ( Evas_Object * obj , Eina_Bool * statep ) ;
2009-02-09 03:23:59 -08:00
/* smart callbacks called:
2009-02-23 00:05:05 -08:00
* " changed " - the user toggled the state
2009-02-09 03:23:59 -08:00
*/
2009-02-24 01:23:51 -08:00
EAPI Evas_Object * elm_radio_add ( Evas_Object * parent ) ;
EAPI void elm_radio_label_set ( Evas_Object * obj , const char * label ) ;
EAPI void elm_radio_icon_set ( Evas_Object * obj , Evas_Object * icon ) ;
EAPI void elm_radio_group_add ( Evas_Object * obj , Evas_Object * group ) ;
EAPI void elm_radio_state_value_set ( Evas_Object * obj , int value ) ;
EAPI void elm_radio_value_set ( Evas_Object * obj , int value ) ;
2009-02-25 07:54:26 -08:00
EAPI int elm_radio_value_get ( const Evas_Object * obj ) ;
2009-02-24 01:23:51 -08:00
EAPI void elm_radio_value_pointer_set ( Evas_Object * obj , int * valuep ) ;
/* smart callbacks called:
* " changed " - the user toggled the state
*/
2009-02-26 00:25:22 -08:00
EAPI Evas_Object * elm_pager_add ( Evas_Object * parent ) ;
2009-03-02 01:42:58 -08:00
EAPI void elm_pager_content_push ( Evas_Object * obj , Evas_Object * content ) ;
EAPI void elm_pager_content_pop ( Evas_Object * obj ) ;
EAPI void elm_pager_content_promote ( Evas_Object * obj , Evas_Object * content ) ;
2009-03-01 15:52:13 -08:00
EAPI Evas_Object * elm_pager_content_bottom_get ( Evas_Object * obj ) ;
EAPI Evas_Object * elm_pager_content_top_get ( Evas_Object * obj ) ;
2009-02-26 00:25:22 -08:00
/* smart callbacks called:
*/
2009-02-24 01:23:51 -08:00
2009-01-20 16:05:38 -08:00
# ifdef __cplusplus
}
# endif
2008-11-18 22:23:08 -08:00
////////////////////////////////////////////////////////////////////////////
/// FIXME: TODO LIST ///////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
2008-11-17 17:41:49 -08:00
//
//// (bugs - high priority)
2008-11-16 21:58:21 -08:00
// * scale change for hover doesnt seem to do new size alloc nicely
2008-11-18 00:45:38 -08:00
// * left/right arrow broken with password mode for entry + utf8 chars...
2008-12-04 19:20:51 -08:00
// * bubble doesnt handle child size changes right
2008-12-18 20:26:24 -08:00
// * table doesnt do homogenous properly
2008-11-16 21:58:21 -08:00
//
2008-11-17 17:41:49 -08:00
//// (incomplete - medium priority)
2008-11-16 21:58:21 -08:00
// * disabled not supported
// * on the fly theme changes - test (should work)
2008-11-18 02:11:57 -08:00
// * need a hold-scroll counter in elm_widget
2008-12-18 00:12:27 -08:00
// * hoversel only vertical right now - make horizontal
2009-01-31 15:23:51 -08:00
// * when entries are in a scroller and change size, the scroller shows scrollbars. fix. same for selecting. for 1 line entries in a scroller should only have scroll arrow indicators.
2008-11-16 21:58:21 -08:00
//
2008-11-17 17:41:49 -08:00
//// (more widgets/features - medium priority)
2009-02-23 03:40:24 -08:00
// * multiple genlist item styles (multi-label, 1 icon + 2 line label, header etc.)
2008-12-23 06:05:56 -08:00
// * carousel selector widget
2009-02-02 21:54:46 -08:00
// * auto-size label/text that adapts text size to its allocated region
2009-02-09 03:23:59 -08:00
// * [ scrollable dropdown combo box ]
// * [ notepad widget ]
// * [ toggle with 2x labelled button for 2 states ]
// * [ poker spinner with numbers + labels ]
// * [ wrapping text button bar ]
2008-12-17 18:01:36 -08:00
// * separator widget (h/v)
// * slide-open "panel" that can hold stuff and optionally scroll
// * calendar widget (select date)
// * range selector (select range of values from X to Y over an interval)
// * "dialogbutton" widget (bigger button for bottom of wins)
// * dialog window widget
// * phone-number widget (hilight country dial prefixes, add flags, photos of contacts that match etc.)
// * imageview widget (for large not iconic images)
2008-11-14 21:18:36 -08:00
// * tiled image + zoom widget (tiled map viewer)
// * dialpad widget - need one with a phone dialpad
2009-01-08 06:29:13 -08:00
// * file selector widget
2009-01-31 15:23:51 -08:00
// * progress bar widget
2009-02-12 05:39:43 -08:00
// * generic "tacho" widget (set min/max labels - and up to 3 intermediate labels etc.)
2009-01-31 15:23:51 -08:00
// * status widget (busy, stalled, running, etc.)
2009-02-08 04:34:58 -08:00
// * full window in window widget (so move/resize of window object does as you'd expect a child window to do within the canvas)
2009-03-14 11:03:19 -07:00
// * window frame widget for borderless windows that want the app to do its own frame (move, resize as well etc.)
2008-11-16 21:58:21 -08:00
//
2008-11-17 17:41:49 -08:00
//// (improvements - low priority)
2009-02-23 03:40:24 -08:00
// * test for all bubble styles
// * test for all frame styles
// * test for all genlist item styles
2009-02-25 03:00:07 -08:00
// * test for all button styles
// * test for all hoversel styles
// * test for all inwin styles
// * test for all anchorblock styles
// * test for all anchorview styles
// * test more layout in layout
// * test normal evas (and edje) objects used as children in elm widgets
2009-02-23 03:40:24 -08:00
// * need a way to attach a "dnd detector" to any object
// * need a dnd handler (able to hook to dnd detector)
2009-01-31 15:23:51 -08:00
// * need another sample theme
2009-01-15 03:34:39 -08:00
// * need a way to set a preferred size of a widget (but not min or max).
2009-01-09 05:58:48 -08:00
// * merge with gurana
2008-12-18 20:26:24 -08:00
// * use evas's new box instead of a box smart
// * use evas's table instead of a table smart
// * use stack for win widget
2009-02-12 05:39:43 -08:00
// * determine prefix of app dynamically and export calls to get prefix info
// * load config from file
2009-02-17 20:18:25 -08:00
// * load config from x property
2009-02-12 05:39:43 -08:00
// * handle finger size property and on-the-fly changes like scaling does
2008-12-18 05:38:58 -08:00
// * somehow a pdf(ps) viewer widget that doesnt make it gpl (lgpl)
2009-02-12 05:39:43 -08:00
// * emotion widget
2008-12-18 05:38:58 -08:00
// * ewebkit widget
2009-02-12 05:39:43 -08:00
// * flash (gnash) widget
2009-03-14 11:03:19 -07:00
// * menu bar + menu widget
2008-12-18 00:12:27 -08:00
// * need url and path entry modes for vkbd
2008-12-04 19:20:51 -08:00
// * return list of toplevel window objects
2009-01-31 15:23:51 -08:00
// * focus should have an object that is layered above all others (definable layer) that moves + resizes (slides about - animated) from one focused widget to the next for focus. also emit focus/unfocus signals too
2008-12-17 18:01:36 -08:00
// * scroller could do with page up/down/left/right buttons and and idea of a page size
2008-11-16 21:58:21 -08:00
// * current sizing tree inefficient
// * need a way to filter entry data for entry (eg for phone numbers)
2008-11-18 02:11:57 -08:00
// * win should emit signals based on vkbd type - if it gets a message and is a vkbd win
// * win needs a way of setting aspect too
2009-02-12 05:39:43 -08:00
// * use the wrong call on the wrong widget and *BOOM* ... crashland
2008-11-16 21:58:21 -08:00
//
2008-11-18 22:23:08 -08:00
//////////////////////////////////////////////////////////////////////////////
2008-09-29 23:58:56 -07:00
# endif