Esempio n. 1
0
//Update text objects, progress bar...
//Called when an new frame is decoded
void eclair_update(Eclair *eclair)
{
   char time_elapsed[10];
   double position, length;

   if (!eclair)
      return;

   position = eclair_position_get(eclair);

   //Display subtitles
   eclair_subtitles_display_current_subtitle(&eclair->subtitles, eclair_position_get(eclair), eclair->video.subtitles_object);

   if (!eclair->video.video_object || !eclair->gui_window)
      return;

   //Update time text
   length = emotion_object_play_length_get(eclair->video.video_object);
   if (eclair->use_progress_bar_drag_for_time)
   {
      edje_object_part_drag_value_get(eclair->gui_window->edje_object, "progress_bar_drag", &position, NULL);
      position *= length;
   }
   eclair_utils_second_to_string(position, length, time_elapsed);
   eclair_all_windows_text_set(eclair, "time_elapsed", time_elapsed);

   //Update progress bar
   if (eclair->dont_update_progressbar)
      eclair->dont_update_progressbar = 0;
   else if (eclair->seek_to_pos >= 0.0)
      eclair->seek_to_pos = -1.0;
   edje_object_part_drag_value_set(eclair->gui_window->edje_object, "progress_bar_drag", position / length, 0.0);
}
Esempio n. 2
0
static void
_val_set(Evas_Object *obj)
{
   Eina_Bool rtl;
   double pos;

   ELM_SLIDER_DATA_GET(obj, sd);

   if (sd->val_max > sd->val_min)
     pos = (sd->val - sd->val_min) / (sd->val_max - sd->val_min);
   else pos = 0.0;

   if (pos < 0.0) pos = 0.0;
   else if (pos > 1.0)
     pos = 1.0;

   rtl = elm_widget_mirrored_get(obj);
   if ((!rtl && sd->inverted) ||
       (rtl && ((!sd->horizontal && sd->inverted) ||
                (sd->horizontal && !sd->inverted))))
     pos = 1.0 - pos;

   ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
   edje_object_part_drag_value_set
     (wd->resize_obj, "elm.dragable.slider", pos, pos);
}
static void
_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
	UI *ui = data;
	Evas_Event_Mouse_Down *ev = event_info;
	float x, z, w;

	_get_pos(ui, &ev->canvas, &x, &z, &w);

	Evas_Object *edj = elm_layout_edje_get(ui->theme);
	edje_object_part_drag_value_set(edj, "magnet", x, 0.0);
	edje_object_part_drag_size_set(edj, "magnet", w, z);

	chimaera_event_t *cev = &ui->cev;

	cev->state = CHIMAERA_STATE_ON;
	cev->sid += 1;
	cev->gid = 0;
	cev->pid = ev->button == 1 ? 128 : 256;
	cev->x = x;
	cev->z = z;
	cev->X = 0.f;
	cev->Z = 0.f;

	_write_event(ui, cev);
	
	cev->state = CHIMAERA_STATE_SET;
}
Esempio n. 4
0
bool ui_refresh_seeker(ePlayer *player, double song_pos) {
	edje_object_part_drag_value_set(player->gui.edje, "seeker",
	                                song_pos, song_pos);
	edje_object_thaw(player->gui.edje);					
	evas_render(player->gui.evas);

	return true;
}
Esempio n. 5
0
static void
_screen_visual_bounds(Miniview *mv)
{
   if ((mv->screen.pos_val > 1) || (mv->screen.pos_val < 0))
     {
        edje_object_part_drag_value_set(mv->base, "miniview_screen",
                                        0.0, mv->screen.pos_val);
        edje_object_signal_emit(mv->base, "miniview_screen,outbounds",
                                "miniview");
     }
   else
     {
        edje_object_part_drag_value_set(mv->base, "miniview_screen",
                                        0.0, mv->screen.pos_val);
        edje_object_signal_emit(mv->base, "miniview_screen,inbounds",
                                "miniview");
     }
}
Esempio n. 6
0
static void
_smart_toggle_smart_init(Evas_Object *o)
{
	smart_toggle_t *priv = evas_object_smart_data_get(o);

	priv->value = 0;
	priv->disabled = 0;
	
	edje_object_part_drag_size_set(priv->theme, "drag", 0.f, 1.f);
	edje_object_part_drag_value_set(priv->theme, "drag", 0.f, 0.f);
}
Esempio n. 7
0
/* set progress position 0.0 -> 1.0 */
void
theme_progress_set(double val)
{	
   if (edje_object_part_exists(o_bg, "exquisite.progress"))
     {
	edje_object_part_drag_value_set(o_bg, "exquisite.progress", val, val);
	edje_object_signal_emit(o_bg, "exquisite", "progress");
     }
   else
     {
	Edje_Message_Float m;
	m.val = val;
	edje_object_message_send(o_bg, EDJE_MESSAGE_FLOAT, 2, &m);
     }
}
Esempio n. 8
0
//Set the audio level
void eclair_audio_level_set(Eclair *eclair, double audio_level)
{
   if (!eclair)
      return;

      if (audio_level < 0.0)
         audio_level = 0.0;
      else if (audio_level > 1.0)
         audio_level = 1.0;

   if (eclair->video.video_object)
      emotion_object_audio_volume_set(eclair->video.video_object, audio_level);
   if (eclair->gui_window)
      edje_object_part_drag_value_set(eclair->gui_window->edje_object, "volume_bar_drag", audio_level, 0);
}
Esempio n. 9
0
void
e_widget_spectrum_update(Evas_Object *obj, int redraw)
{
    E_Widget_Data *wd;
    double vx = 0, vy = 0;

    wd = e_widget_data_get(obj);
    /* redraw spectrum */
    if (redraw)
        e_spectrum_update(wd->o_spectrum);

    switch (wd->mode)
    {
    case E_COLOR_COMPONENT_R:
        vy = wd->cv->g / 255.0;
        vx = wd->cv->b / 255.0;
        break;
    case E_COLOR_COMPONENT_G:
        vy = wd->cv->b / 255.0;
        vx = wd->cv->r / 255.0;
        break;
    case E_COLOR_COMPONENT_B:
        vy = wd->cv->r / 255.0;
        vx = wd->cv->g / 255.0;
        break;
    case E_COLOR_COMPONENT_H:
        vy = wd->cv->s;
        vx = wd->cv->v;
        break;
    case E_COLOR_COMPONENT_S:
        vy = wd->cv->v;
        vx = wd->cv->h / 360.0;
        break;
    case E_COLOR_COMPONENT_V:
        vy = wd->cv->h / 360.0;
        vx = wd->cv->s;
        break;
    case E_COLOR_COMPONENT_MAX:
        break;
    }
    edje_object_part_drag_value_set(wd->o_edje, "cursor", vx, vy);
}
Esempio n. 10
0
static void
_mirroredness_change_eval(Evas_Object *obj)
{
   double pos;
   char *left;

   ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);

   left = (char *)elm_layout_text_get(obj, "elm.text.left");
   if (left) left = strdup(left);

   elm_layout_text_set
     (obj, "elm.text.left", elm_layout_text_get(obj, "elm.text.right"));
   elm_layout_text_set(obj, "elm.text.right", left);

   free(left);

   edje_object_part_drag_value_get
     (wd->resize_obj, "elm.drag_button_base", &pos, NULL);
   edje_object_part_drag_value_set
     (wd->resize_obj, "elm.drag_button_base", 1.0 - pos, 0.5);
}
Esempio n. 11
0
static void
_smart_slider_smart_init(Evas_Object *o)
{
	smart_slider_t *priv = evas_object_smart_data_get(o);

	priv->min = 0.f;
	priv->max = 1.f;
	priv->diff = priv->max - priv->min;
	priv->scale = 1.f / priv->diff;
	priv->dflt = 0.f;
	priv->value = priv->dflt;

	priv->drag = 0.f;

	priv->integer = 0;
	strcpy(priv->format, "%.4f %s");
	strcpy(priv->unit, "");

	priv->grabbed = 0;
	
	edje_object_part_drag_value_set(priv->theme, "drag", 0.f, 0.f);
}
Esempio n. 12
0
/* Progressbar: render() */
static Etk_Bool _progress_bar_render(Etk_Tree_Model *model, Etk_Tree_Row *row, Etk_Geometry geometry, void *cell_data, Evas_Object *cell_objects[ETK_TREE_MAX_OBJECTS_PER_MODEL], Evas *evas)
{
   Etk_Tree_Model_Progressbar_Data *pbar_data;
   int w, h;

   if (!(pbar_data = cell_data) || !cell_objects[0])
      return ETK_FALSE;

   edje_object_part_text_set(cell_objects[0], "etk.text.text", pbar_data->text ? pbar_data->text : "");

   evas_object_data_set(cell_objects[0], "_Etk_Tree_Model_Progressbar::Row", row);
   edje_object_size_min_get(cell_objects[0], &w, &h);
   evas_object_move(cell_objects[0], geometry.x, geometry.y + ((geometry.h - h) / 2));
   evas_object_resize(cell_objects[0], w > geometry.w ? w : geometry.w, h);

   edje_object_part_drag_value_set(cell_objects[0], "etk.dragable.filler", 0.0, 0.0);
   edje_object_part_drag_size_set(cell_objects[0], "etk.dragable.filler", pbar_data->fraction, 0.0);

   evas_object_show(cell_objects[0]);

   return ETK_FALSE;
}
static void
_mouse_move(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
	UI *ui = data;
	Evas_Event_Mouse_Move *ev = event_info;
	float x, z, w;

	_get_pos(ui, &ev->cur.canvas, &x, &z, &w);

	Evas_Object *edj = elm_layout_edje_get(ui->theme);
	edje_object_part_drag_value_set(edj, "magnet", x, 0.0);
	edje_object_part_drag_size_set(edj, "magnet", w, z);
	
	chimaera_event_t *cev = &ui->cev;

	if(cev->state == CHIMAERA_STATE_SET)
	{
		cev->x = x;
		cev->z = z;
		
		_write_event(ui, cev);
	}
}
Esempio n. 14
0
//Initialize eclair
Evas_Bool eclair_init(Eclair *eclair, int *argc, char ***argv)
{
   Eina_List *filenames, *l;
   filenames = NULL;

   if (!eclair)
      return 0;

   ecore_init();
   ecore_file_init();
   ecore_evas_init();
   edje_init();

   eclair->argc = argc;
   eclair->argv = argv;
   eclair->gui_window = NULL;
   eclair->equalizer_window = NULL;
   eclair->playlist_window = NULL;
   eclair->playlist_container = NULL;
   eclair->playlist_container_owner = NULL;
   eclair->playlist_entry_height = -1;
   eclair->cover_window = NULL;
   eclair->cover = NULL;
   eclair->previous_cover = NULL;
   eclair->cover_owner = NULL;
   eclair->state = ECLAIR_STOP;
   eclair->seek_to_pos = -1.0;
   eclair->use_progress_bar_drag_for_time = 0;
   eclair->dont_update_progressbar = 0;
   eclair->gui_engine = ECLAIR_SOFTWARE;
   eclair->gui_theme_file = strdup(PACKAGE_DATA_DIR "/themes/default.edj");
   eclair->drop_object = ECLAIR_DROP_NONE;
   eclair->drop_window = NULL;
   eclair->video_engine = ECLAIR_SOFTWARE;
   eclair->video_module = ECLAIR_VIDEO_XINE;
   eclair->start_playing = 0;

   if (!eclair_args_parse(eclair, &filenames))
   {
      free(eclair->gui_theme_file);
      return 0;
   }

   eclair_config_init(&eclair->config);
   eclair_utils_init();
   eclair_video_init(&eclair->video, eclair);
   if (!_eclair_create_gui_window(eclair))
   {
      eclair_config_shutdown(&eclair->config);
      fprintf(stderr, "Error: Unable to create the gui window\n");
      return 0;
   }
   eclair_playlist_init(&eclair->playlist, eclair);
   _eclair_create_playlist_window(eclair);
   _eclair_create_equalizer_window(eclair);
   _eclair_create_cover_window(eclair);
   eclair_create_video_window(&eclair->video, eclair->video_engine);
   _eclair_add_inter_windows_callbacks(eclair);
   eclair_database_init(&eclair->database, eclair);
   eclair_dialogs_init(&eclair->dialogs_manager, eclair);
   eclair_playlist_container_set_media_list(eclair->playlist_container, &eclair->playlist.playlist);
   eclair_subtitles_init(&eclair->subtitles);
   eclair_meta_tag_init(&eclair->meta_tag_manager, eclair);
   eclair_cover_init(&eclair->cover_manager, eclair);
   eclair_update_current_file_info(eclair, 0);

   if ((l = filenames))
   {
      for (; l; l = l->next)
         eclair_playlist_add_uri(&eclair->playlist, l->data, 0, 1);
      eina_list_free(filenames);
      eclair_playlist_container_update(eclair->playlist_container);
   }
   else
      eclair_playlist_add_uri(&eclair->playlist, eclair->config.default_playlist_path, 1, 0);

   ecore_event_handler_add(ECORE_X_EVENT_XDND_POSITION, eclair_dnd_position_cb, eclair);
   ecore_event_handler_add(ECORE_X_EVENT_XDND_DROP, eclair_dnd_drop_cb, eclair);
   ecore_event_handler_add(ECORE_X_EVENT_SELECTION_NOTIFY, eclair_dnd_selection_cb, eclair);
   ecore_event_handler_add(ECORE_X_EVENT_MOUSE_BUTTON_UP, eclair_mouse_up_cb, eclair);
   edje_object_part_drag_value_set(eclair->gui_window->edje_object, "volume_bar_drag", 1.0, 0.0);

   return 1;
}