1 /** 2 * @addtogroup Elm_Win_Group 3 * 4 * @{ 5 */ 6 7 /** 8 * @typedef Elm_Win_Trap 9 * 10 * Trap can be set with elm_win_trap_set() and will intercept the 11 * calls to internal ecore_evas with the same name and parameters. If 12 * there is a trap and it returns @c EINA_TRUE then the call will be 13 * allowed, otherwise it will be ignored. 14 * 15 * @since 1.7 16 */ 17 typedef struct _Elm_Win_Trap Elm_Win_Trap; 18 struct _Elm_Win_Trap 19 { 20 #define ELM_WIN_TRAP_VERSION (1UL) 21 unsigned long version; 22 void *(*add)(Evas_Object *o); /**< object was just added. The returned pointer will be handled to every other trap call. */ 23 void (*del)(void *data, Evas_Object *o); /**< object will be deleted. */ 24 Eina_Bool (*hide)(void *data, Evas_Object *o); 25 Eina_Bool (*show)(void *data, Evas_Object *o); 26 Eina_Bool (*move)(void *data, Evas_Object *o, int x, int y); 27 Eina_Bool (*resize)(void *data, Evas_Object *o, int w, int h); 28 Eina_Bool (*center)(void *data, Evas_Object *o, Eina_Bool h, Eina_Bool v); /* not in ecore_evas, but nice to trap */ 29 Eina_Bool (*lower)(void *data, Evas_Object *o); 30 Eina_Bool (*raise)(void *data, Evas_Object *o); 31 Eina_Bool (*activate)(void *data, Evas_Object *o); 32 Eina_Bool (*alpha_set)(void *data, Evas_Object *o, Eina_Bool alpha); 33 Eina_Bool (*aspect_set)(void *data, Evas_Object *o, double aspect); 34 Eina_Bool (*avoid_damage_set)(void *data, Evas_Object *o, Ecore_Evas_Avoid_Damage_Type on); 35 Eina_Bool (*borderless_set)(void *data, Evas_Object *o, Eina_Bool on); 36 Eina_Bool (*demand_attention_set)(void *data, Evas_Object *o, Eina_Bool on); 37 Eina_Bool (*focus_skip_set)(void *data, Evas_Object *o, Eina_Bool skip); 38 Eina_Bool (*fullscreen_set)(void *data, Evas_Object *o, Eina_Bool on); 39 Eina_Bool (*iconified_set)(void *data, Evas_Object *o, Eina_Bool on); 40 Eina_Bool (*layer_set)(void *data, Evas_Object *o, int layer); 41 Eina_Bool (*manual_render_set)(void *data, Evas_Object *o, Eina_Bool manual_render); 42 Eina_Bool (*maximized_set)(void *data, Evas_Object *o, Eina_Bool on); 43 Eina_Bool (*modal_set)(void *data, Evas_Object *o, Eina_Bool on); 44 Eina_Bool (*name_class_set)(void *data, Evas_Object *o, const char *n, const char *c); 45 Eina_Bool (*object_cursor_set)(void *data, Evas_Object *o, Evas_Object *obj, int layer, int hot_x, int hot_y); 46 Eina_Bool (*override_set)(void *data, Evas_Object *o, Eina_Bool on); 47 Eina_Bool (*rotation_set)(void *data, Evas_Object *o, int rot); 48 Eina_Bool (*rotation_with_resize_set)(void *data, Evas_Object *o, int rot); 49 Eina_Bool (*shaped_set)(void *data, Evas_Object *o, Eina_Bool shaped); 50 Eina_Bool (*size_base_set)(void *data, Evas_Object *o, int w, int h); 51 Eina_Bool (*size_step_set)(void *data, Evas_Object *o, int w, int h); 52 Eina_Bool (*size_min_set)(void *data, Evas_Object *o, int w, int h); 53 Eina_Bool (*size_max_set)(void *data, Evas_Object *o, int w, int h); 54 Eina_Bool (*sticky_set)(void *data, Evas_Object *o, Eina_Bool sticky); 55 Eina_Bool (*title_set)(void *data, Evas_Object *o, const char *t); 56 Eina_Bool (*urgent_set)(void *data, Evas_Object *o, Eina_Bool urgent); 57 Eina_Bool (*withdrawn_set)(void *data, Evas_Object *o, Eina_Bool withdrawn); 58 }; 59 60 /** 61 * Sets the trap to be used for internal @c Ecore_Evas management. 62 * 63 * @param trap the trap to be used or @c NULL to remove traps. Pointer 64 * is not modified or copied, keep it alive. 65 * @return @c EINA_TRUE on success, @c EINA_FALSE if there was a 66 * problem, such as invalid version number. 67 * 68 * @warning this is an advanced feature that you should avoid using. 69 * 70 * @since 1.7 71 */ 72 EAPI Eina_Bool elm_win_trap_set(const Elm_Win_Trap *trap); 73 74 /** 75 * @} 76 */ 77