Customizing Spinner and Calendar Controls in EFL (Without EDJ or UIBuilder)

Original Created Nov 27, 2016 | Regeneration Apr 22, 2026

Is it possible to customize the look and behavior of controls in EFL, specifically without using EDJ or UIBuilder? My priority is to avoid UIBuilder.

In particular, I want to:

  1. Hide or change the color of the up/down arrows in spinner controls (used for number, date, and year selection)
  2. Modify the behavior when clicking these arrows
  3. Apply similar customizations to calendar controls

Problem Understanding

The user wants to customize native EFL controls (specifically spinner and calendar components) without using EDJ files or UIBuilder. The main requirements are visual customization (hiding/changing arrow colors) and behavioral modifications for spinner controls.

Solution Methods

  1. Native Spinner Limitations:

    • As confirmed in the Tizen documentation, native spinner components don't support direct customization of arrow visibility or colors
    • Reference: Samsung Tizen OS Spinner Component
  2. Custom Implementation Workaround:

    • Create a custom spinner using basic EFL components:
      1. Use two Evas_Object buttons for up/down functionality
      2. Set custom images for the arrows using elm_object_content_set()
      3. Implement click callbacks with evas_object_smart_callback_add()
      4. Control visibility with evas_object_show()/evas_object_hide()

Code Examples

// Create custom spinner with up/down buttons
Evas_Object *btn_up = elm_button_add(parent);
Evas_Object *btn_down = elm_button_add(parent);

// Set arrow images (replace with your image paths)
elm_object_content_set(btn_up, "up_arrow.png");
elm_object_content_set(btn_down, "down_arrow.png");

// Add click callbacks
evas_object_smart_callback_add(btn_up, "clicked", _increase_value, your_data);
evas_object_smart_callback_add(btn_down, "clicked", _decrease_value, your_data);

// Hide buttons when needed
evas_object_hide(btn_up);

Additional Tips

  • For calendar controls, similar customization limitations apply
  • Consider using Elm_Calendar with custom day style functions (elm_calendar_format_function_set()) for partial visual customization
  • Always test custom implementations on target devices as behavior may vary across Tizen versions

Customize your cookie preferences

You can enable or disable non-essential cookies. Essential cookies are always on to ensure the site works properly and to keep you signed in.

Necessary

These cookies are necessary for the website to function properly and cannot be switched off. They help with things like logging in and setting your privacy preferences.

Always on

Analytics

These cookies help us improve the site by tracking which pages are most popular and how visitors move around the site.

Enable analytics cookies
Public Forum Public Forum
Employees only. Please sign in with your company account.