elementary: Add ecore_cocoa backend to elementary
[framework/uifw/elementary.git] / src / lib / elm_main.c
index 54f9ac3..b2ad65b 100644 (file)
@@ -2,7 +2,9 @@
 # include "elementary_config.h"
 #endif
 
+#ifdef HAVE_FORK
 #include <dlfcn.h> /* dlopen,dlclose,etc */
+#endif
 
 #ifdef HAVE_CRT_EXTERNS_H
 # include <crt_externs.h>
@@ -434,6 +436,8 @@ elm_quicklaunch_sub_init(int    argc,
           }
         ecore_evas_init(); // FIXME: check errors
         ecore_imf_init();
+        ecore_con_init();
+        ecore_con_url_init();
      }
    return _elm_sub_init_count;
 }
@@ -453,6 +457,8 @@ elm_quicklaunch_sub_shutdown(void)
      {
         _elm_win_shutdown();
         _elm_module_shutdown();
+        ecore_con_url_shutdown();
+        ecore_con_shutdown();
         ecore_imf_shutdown();
         ecore_evas_shutdown();
 #define ENGINE_COMPARE(name) (!strcmp(_elm_config->engine, name))
@@ -474,6 +480,7 @@ elm_quicklaunch_sub_shutdown(void)
             ENGINE_COMPARE(ELM_SOFTWARE_SDL) ||
             ENGINE_COMPARE(ELM_SOFTWARE_16_SDL) ||
             ENGINE_COMPARE(ELM_OPENGL_SDL) ||
+            ENGINE_COMPARE(ELM_OPENGL_COCOA) ||
             ENGINE_COMPARE(ELM_SOFTWARE_WIN32) ||
             ENGINE_COMPARE(ELM_SOFTWARE_16_WINCE))
 #undef ENGINE_COMPARE
@@ -508,6 +515,7 @@ elm_quicklaunch_shutdown(void)
    _elm_unneed_efreet();
    _elm_unneed_e_dbus();
    _elm_unneed_ethumb();
+   _elm_unneed_web();
    ecore_file_shutdown();
 
 #ifdef HAVE_ELEMENTARY_EMAP
@@ -875,6 +883,13 @@ elm_policy_get(unsigned int policy)
    return _elm_policies[policy];
 }
 
+EAPI void
+elm_language_set(const char *lang)
+{
+   setlocale(LC_ALL, lang);
+   _elm_win_translate();
+}
+
 EAPI Eina_Bool
 elm_object_mirrored_get(const Evas_Object *obj)
 {
@@ -933,6 +948,20 @@ elm_object_text_part_get(const Evas_Object *obj, const char *part)
 }
 
 EAPI void
+elm_object_domain_translatable_text_part_set(Evas_Object *obj, const char *part, const char *domain, const char *text)
+{
+   EINA_SAFETY_ON_NULL_RETURN(obj);
+   elm_widget_domain_translatable_text_part_set(obj, part, domain, text);
+}
+
+EAPI const char *
+elm_object_translatable_text_part_get(const Evas_Object *obj, const char *part)
+{
+   EINA_SAFETY_ON_NULL_RETURN_VAL(obj, NULL);
+   return elm_widget_translatable_text_part_get(obj, part);
+}
+
+EAPI void
 elm_object_content_part_set(Evas_Object *obj, const char *part, Evas_Object *content)
 {
    EINA_SAFETY_ON_NULL_RETURN(obj);
@@ -1508,21 +1537,34 @@ elm_object_focus_get(const Evas_Object *obj)
 }
 
 EAPI void
-elm_object_focus(Evas_Object *obj)
+elm_object_focus_set(Evas_Object *obj,
+                     Eina_Bool    focus)
 {
    EINA_SAFETY_ON_NULL_RETURN(obj);
-   if (elm_widget_focus_get(obj))
-     return;
+   if (focus)
+     {
+        if (elm_widget_focus_get(obj)) return;
+        elm_widget_focus_cycle(obj, ELM_FOCUS_NEXT);
+     }
+   else
+     {
+        if (!elm_widget_can_focus_get(obj)) return;
+        elm_widget_focused_object_clear(obj);
+     }
+}
 
-   elm_widget_focus_cycle(obj, ELM_FOCUS_NEXT);
+EAPI void
+elm_object_focus(Evas_Object *obj)
+{
+   EINA_SAFETY_ON_NULL_RETURN(obj);
+   elm_object_focus_set(obj, EINA_TRUE);
 }
 
 EAPI void
 elm_object_unfocus(Evas_Object *obj)
 {
    EINA_SAFETY_ON_NULL_RETURN(obj);
-   if (!elm_widget_can_focus_get(obj)) return;
-   elm_widget_focused_object_clear(obj);
+   elm_object_focus_set(obj, EINA_FALSE);
 }
 
 EAPI void
@@ -2111,6 +2153,12 @@ elm_longpress_timeout_get(void)
    return _elm_config->longpress_timeout;
 }
 
+EAPI Evas_Object *
+elm_object_item_object_get(const Elm_Object_Item *it)
+{
+   return ((Elm_Widget_Item *) it)->widget;
+}
+
 EAPI void
 elm_object_item_content_part_set(Elm_Object_Item *it,
                                  const char *part,
@@ -2163,3 +2211,16 @@ elm_object_item_signal_emit(Elm_Object_Item *it, const char *emission, const cha
 {
    elm_widget_item_signal_emit(it, emission, source);
 }
+
+EAPI void
+elm_object_access_info_set(Evas_Object *obj, const char *txt)
+{
+   elm_widget_access_info_set(obj, txt);
+}
+
+EAPI void
+elm_object_item_access_info_set(Elm_Object_Item *it, const char *txt)
+{
+   _elm_widget_item_access_info_set((Elm_Widget_Item *)it, txt);
+}
+