<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="lt">
	<id>https://wiki.eofnet.lt/w//index.php?action=history&amp;feed=atom&amp;title=Tizen_C</id>
	<title>Tizen C - Versijų istorija</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.eofnet.lt/w//index.php?action=history&amp;feed=atom&amp;title=Tizen_C"/>
	<link rel="alternate" type="text/html" href="https://wiki.eofnet.lt/w//index.php?title=Tizen_C&amp;action=history"/>
	<updated>2026-05-30T11:00:33Z</updated>
	<subtitle>Šio puslapio versijų istorija projekte</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://wiki.eofnet.lt/w//index.php?title=Tizen_C&amp;diff=8660&amp;oldid=prev</id>
		<title>\dev\null 16:36, 21 gegužės 2018</title>
		<link rel="alternate" type="text/html" href="https://wiki.eofnet.lt/w//index.php?title=Tizen_C&amp;diff=8660&amp;oldid=prev"/>
		<updated>2018-05-21T16:36:17Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Naujas puslapis&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Intro to C programming with EFL toolkit on Tizen ==&lt;br /&gt;
* https://www.youtube.com/watch?v=m9sx7AZQKtQ&amp;amp;feature=youtu.be&amp;amp;t=340&lt;br /&gt;
* https://www.youtube.com/watch?v=4BpOIFjHr28&lt;br /&gt;
* [https://www.youtube.com/watch?v=fWAOajhbyg8 Develop Samsung Gear and Android Apps with the Tizen IDE for Wearable]&lt;br /&gt;
* [https://www.youtube.com/watch?v=Oce-Si88qVE Tizen Native App Fundamentals]&lt;br /&gt;
* [https://www.youtube.com/watch?v=m9sx7AZQKtQ&amp;amp;t=343s Design your Tizen app with EFL]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Code sample ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;rssreader.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
typedef struct appdata {&lt;br /&gt;
	Evas_Object *win;&lt;br /&gt;
	Evas_Object *conform;&lt;br /&gt;
	Evas_Object *naviframe;&lt;br /&gt;
	Evas_Object *label;&lt;br /&gt;
	Evas_Object *button;&lt;br /&gt;
} appdata_s;&lt;br /&gt;
&lt;br /&gt;
static void&lt;br /&gt;
win_delete_request_cb(void *data, Evas_Object *obj, void *event_info)&lt;br /&gt;
{&lt;br /&gt;
	ui_app_exit();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static void&lt;br /&gt;
win_back_cb(void *data, Evas_Object *obj, void *event_info)&lt;br /&gt;
{&lt;br /&gt;
	appdata_s *ad = data;&lt;br /&gt;
	/* Let window go to hide state. */&lt;br /&gt;
	elm_win_lower(ad-&amp;gt;win);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static Evas_Object *&lt;br /&gt;
create_singlelines_editfield_layout(Evas_Object *parent) {&lt;br /&gt;
Evas_Object *editfield, *entry, *button, *buttonOk;&lt;br /&gt;
&lt;br /&gt;
editfield = elm_layout_add(parent);&lt;br /&gt;
elm_layout_theme_set(editfield, &amp;quot;layout&amp;quot;, &amp;quot;editfield&amp;quot;, &amp;quot;singleline&amp;quot;);&lt;br /&gt;
evas_object_size_hint_align_set(editfield, EVAS_HINT_FILL, 0.5);&lt;br /&gt;
evas_object_size_hint_weight_set(editfield, EVAS_HINT_EXPAND, 0.5);&lt;br /&gt;
&lt;br /&gt;
entry = elm_entry_add(editfield);&lt;br /&gt;
elm_entry_single_line_set(entry, EINA_TRUE);&lt;br /&gt;
elm_entry_scrollable_set(entry, EINA_TRUE);&lt;br /&gt;
elm_object_part_text_set(entry, &amp;quot;elm.guide&amp;quot;, &amp;quot;Enter Your Weight&amp;quot;);&lt;br /&gt;
//evas_object_smart_callback_add(entry, &amp;quot;focused&amp;quot;, editfield_focused_cb, editfield);&lt;br /&gt;
//evas_object_smart_callback_add(entry, &amp;quot;unfocused&amp;quot;, editfield_unfocused_cb, editfield);&lt;br /&gt;
//evas_object_smart_callback_add(entry, &amp;quot;changed&amp;quot;, editfield_changed_cb, editfield);&lt;br /&gt;
//evas_object_smart_callback_add(entry, &amp;quot;preedit,changed&amp;quot;, editfield_changed_cb, editfield);&lt;br /&gt;
elm_object_part_content_set(editfield, &amp;quot;elm.swallow.content&amp;quot;, entry);&lt;br /&gt;
//elm_object_part_content_set(editfield, &amp;quot;elm.swallow.button&amp;quot;, button);&lt;br /&gt;
return editfield;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void&lt;br /&gt;
clicked_cb(void *data, Evas_Object *obj, void *event_info)&lt;br /&gt;
{&lt;br /&gt;
	appdata_s *ad = data;&lt;br /&gt;
	Evas_Object *bg = elm_bg_add(ad-&amp;gt;naviframe);&lt;br /&gt;
	elm_bg_color_set(bg,66,162,206);&lt;br /&gt;
	elm_naviframe_item_push(ad-&amp;gt;naviframe, &amp;quot;second page&amp;quot;, NULL, NULL, bg, NULL);&lt;br /&gt;
    dlog_print(DLOG_INFO, LOG_TAG, &amp;quot;Button clicked\n&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
static void&lt;br /&gt;
create_base_gui(appdata_s *ad)&lt;br /&gt;
{&lt;br /&gt;
	/* Window */&lt;br /&gt;
	ad-&amp;gt;win = elm_win_util_standard_add(PACKAGE, PACKAGE);&lt;br /&gt;
	elm_win_autodel_set(ad-&amp;gt;win, EINA_TRUE);&lt;br /&gt;
&lt;br /&gt;
	if (elm_win_wm_rotation_supported_get(ad-&amp;gt;win)) {&lt;br /&gt;
		int rots[4] = { 0, 90, 180, 270 };&lt;br /&gt;
		elm_win_wm_rotation_available_rotations_set(ad-&amp;gt;win, (const int *)(&amp;amp;rots), 4);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	evas_object_smart_callback_add(ad-&amp;gt;win, &amp;quot;delete,request&amp;quot;, win_delete_request_cb, NULL);&lt;br /&gt;
	eext_object_event_callback_add(ad-&amp;gt;win, EEXT_CALLBACK_BACK, win_back_cb, ad);&lt;br /&gt;
&lt;br /&gt;
	/* Conformant */&lt;br /&gt;
	ad-&amp;gt;conform = elm_conformant_add(ad-&amp;gt;win);&lt;br /&gt;
	elm_win_indicator_mode_set(ad-&amp;gt;win, ELM_WIN_INDICATOR_SHOW);&lt;br /&gt;
	elm_win_indicator_opacity_set(ad-&amp;gt;win, ELM_WIN_INDICATOR_OPAQUE);&lt;br /&gt;
	evas_object_size_hint_weight_set(ad-&amp;gt;conform, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);&lt;br /&gt;
	elm_win_resize_object_add(ad-&amp;gt;win, ad-&amp;gt;conform);&lt;br /&gt;
	evas_object_show(ad-&amp;gt;conform);&lt;br /&gt;
&lt;br /&gt;
	ad-&amp;gt;naviframe = elm_naviframe_add(ad-&amp;gt;conform);&lt;br /&gt;
	elm_object_item_content_set(ad-&amp;gt;conform, ad-&amp;gt;naviframe);&lt;br /&gt;
	evas_object_show(ad-&amp;gt;conform);&lt;br /&gt;
&lt;br /&gt;
	/* box */&lt;br /&gt;
	Evas_Object *box = elm_box_add(ad-&amp;gt;naviframe);&lt;br /&gt;
	elm_box_horizontal_set(box, EINA_FALSE);&lt;br /&gt;
	evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);&lt;br /&gt;
	evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);&lt;br /&gt;
    elm_naviframe_item_push(ad-&amp;gt;naviframe, &amp;quot;First Page&amp;quot;, NULL, NULL, box, NULL);&lt;br /&gt;
    evas_object_show(box);&lt;br /&gt;
&lt;br /&gt;
    /*label   */&lt;br /&gt;
    Evas_Object *label = elm_label_add(box);&lt;br /&gt;
    evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);&lt;br /&gt;
    evas_object_size_hint_align_set(box, EVAS_HINT_FILL, 0.5);&lt;br /&gt;
    elm_object_text_set(label,&amp;quot;&amp;lt;align=center&amp;gt;Hello Tizen!&amp;lt;/align&amp;gt;&amp;quot;);&lt;br /&gt;
    elm_box_pack_end(box,label);&lt;br /&gt;
    evas_object_show(label);&lt;br /&gt;
&lt;br /&gt;
    Evas_Object *Button = elm_button_add(box);&lt;br /&gt;
	evas_object_size_hint_weight_set(Button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);&lt;br /&gt;
	evas_object_size_hint_align_set(Button, EVAS_HINT_FILL, 1);&lt;br /&gt;
	elm_object_text_set(Button,&amp;quot;Go!&amp;quot;);&lt;br /&gt;
	evas_object_smart_callback_add(Button, &amp;quot;clicked&amp;quot;, clicked_cb, ad);&lt;br /&gt;
	elm_box_pack_end(box,Button);&lt;br /&gt;
	evas_object_show(Button);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	//create_singlelines_editfield_layout(ad);&lt;br /&gt;
	//char const * const text = elm_entry_entry_get(create_singlelines_editfield_layout(ad)-&amp;gt;field);&lt;br /&gt;
	/* Show window after base gui is set up */&lt;br /&gt;
	evas_object_show(ad-&amp;gt;win);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static bool&lt;br /&gt;
app_create(void *data)&lt;br /&gt;
{&lt;br /&gt;
	/* Hook to take necessary actions before main event loop starts&lt;br /&gt;
		Initialize UI resources and application's data&lt;br /&gt;
		If this function returns true, the main loop of application starts&lt;br /&gt;
		If this function returns false, the application is terminated */&lt;br /&gt;
	appdata_s *ad = data;&lt;br /&gt;
&lt;br /&gt;
	create_base_gui(ad);&lt;br /&gt;
&lt;br /&gt;
	return true;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static void&lt;br /&gt;
app_control(app_control_h app_control, void *data)&lt;br /&gt;
{&lt;br /&gt;
	/* Handle the launch request. */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static void&lt;br /&gt;
app_pause(void *data)&lt;br /&gt;
{&lt;br /&gt;
	/* Take necessary actions when application becomes invisible. */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static void&lt;br /&gt;
app_resume(void *data)&lt;br /&gt;
{&lt;br /&gt;
	/* Take necessary actions when application becomes visible. */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static void&lt;br /&gt;
app_terminate(void *data)&lt;br /&gt;
{&lt;br /&gt;
	/* Release all resources. */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static void&lt;br /&gt;
ui_app_lang_changed(app_event_info_h event_info, void *user_data)&lt;br /&gt;
{&lt;br /&gt;
	/*APP_EVENT_LANGUAGE_CHANGED*/&lt;br /&gt;
	char *locale = NULL;&lt;br /&gt;
	system_settings_get_value_string(SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE, &amp;amp;locale);&lt;br /&gt;
	elm_language_set(locale);&lt;br /&gt;
	free(locale);&lt;br /&gt;
	return;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static void&lt;br /&gt;
ui_app_orient_changed(app_event_info_h event_info, void *user_data)&lt;br /&gt;
{&lt;br /&gt;
	/*APP_EVENT_DEVICE_ORIENTATION_CHANGED*/&lt;br /&gt;
	return;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static void&lt;br /&gt;
ui_app_region_changed(app_event_info_h event_info, void *user_data)&lt;br /&gt;
{&lt;br /&gt;
	/*APP_EVENT_REGION_FORMAT_CHANGED*/&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static void&lt;br /&gt;
ui_app_low_battery(app_event_info_h event_info, void *user_data)&lt;br /&gt;
{&lt;br /&gt;
	/*APP_EVENT_LOW_BATTERY*/&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static void&lt;br /&gt;
ui_app_low_memory(app_event_info_h event_info, void *user_data)&lt;br /&gt;
{&lt;br /&gt;
	/*APP_EVENT_LOW_MEMORY*/&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int&lt;br /&gt;
main(int argc, char *argv[])&lt;br /&gt;
{&lt;br /&gt;
	appdata_s ad = {0,};&lt;br /&gt;
	int ret = 0;&lt;br /&gt;
&lt;br /&gt;
	ui_app_lifecycle_callback_s event_callback = {0,};&lt;br /&gt;
	app_event_handler_h handlers[5] = {NULL, };&lt;br /&gt;
&lt;br /&gt;
	event_callback.create = app_create;&lt;br /&gt;
	event_callback.terminate = app_terminate;&lt;br /&gt;
	event_callback.pause = app_pause;&lt;br /&gt;
	event_callback.resume = app_resume;&lt;br /&gt;
	event_callback.app_control = app_control;&lt;br /&gt;
&lt;br /&gt;
	ui_app_add_event_handler(&amp;amp;handlers[APP_EVENT_LOW_BATTERY], APP_EVENT_LOW_BATTERY, ui_app_low_battery, &amp;amp;ad);&lt;br /&gt;
	ui_app_add_event_handler(&amp;amp;handlers[APP_EVENT_LOW_MEMORY], APP_EVENT_LOW_MEMORY, ui_app_low_memory, &amp;amp;ad);&lt;br /&gt;
	ui_app_add_event_handler(&amp;amp;handlers[APP_EVENT_DEVICE_ORIENTATION_CHANGED], APP_EVENT_DEVICE_ORIENTATION_CHANGED, ui_app_orient_changed, &amp;amp;ad);&lt;br /&gt;
	ui_app_add_event_handler(&amp;amp;handlers[APP_EVENT_LANGUAGE_CHANGED], APP_EVENT_LANGUAGE_CHANGED, ui_app_lang_changed, &amp;amp;ad);&lt;br /&gt;
	ui_app_add_event_handler(&amp;amp;handlers[APP_EVENT_REGION_FORMAT_CHANGED], APP_EVENT_REGION_FORMAT_CHANGED, ui_app_region_changed, &amp;amp;ad);&lt;br /&gt;
	ui_app_remove_event_handler(handlers[APP_EVENT_LOW_MEMORY]);&lt;br /&gt;
&lt;br /&gt;
	ret = ui_app_main(argc, argv, &amp;amp;event_callback, &amp;amp;ad);&lt;br /&gt;
	if (ret != APP_ERROR_NONE) {&lt;br /&gt;
		dlog_print(DLOG_ERROR, LOG_TAG, &amp;quot;app_main() is failed. err = %d&amp;quot;, ret);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	return ret;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Programavimas]]&lt;br /&gt;
[[Category:Tizen]]&lt;br /&gt;
[[Category:Samsung]]&lt;/div&gt;</summary>
		<author><name>\dev\null</name></author>
	</entry>
</feed>