Example #1
0
Ex_Tab *
_ex_tab_new(Exhibit *e, char *dir)
{
   Ex_Tab *tab;
   Etk_Tree_Model *imodel;
   char *file;

   file = NULL;
   tab = calloc(1, sizeof(Ex_Tab));
   //tab->num = eina_list_count(e->tabs);
   tab->dirs = NULL;

   if (!dir) {
	D(("NO DIR\n"));
	exit(-1);
   }

   D(("Creating new tab with %s\n", dir));

   if (e->options->default_view == EX_IMAGE_FIT_TO_WINDOW)
     {
	tab->fit_window = ETK_TRUE;
	D(("Setting EX_IMAGE_FIT_TO_WINDOW\n"));
     }
   else
      tab->fit_window = ETK_FALSE;

   tab->comment.visible = ETK_FALSE;
   tab->image_loaded = ETK_FALSE;

   tab->dtree = etk_tree_new();
   etk_widget_size_request_set(tab->dtree, 180, 120);
   etk_signal_connect("row-clicked", ETK_OBJECT(tab->dtree), ETK_CALLBACK(_ex_tab_dtree_item_clicked_cb), e);
   tab->dcol = etk_tree_col_new(ETK_TREE(tab->dtree), "Directories", 10, 0.0);
   etk_tree_col_model_add(tab->dcol, etk_tree_model_image_new());
   etk_tree_col_model_add(tab->dcol, etk_tree_model_text_new());
   etk_tree_headers_visible_set(ETK_TREE(tab->dtree), 0);
   etk_scrolled_view_policy_set(etk_tree_scrolled_view_get(ETK_TREE(tab->dtree)), ETK_POLICY_AUTO, ETK_POLICY_SHOW);
   etk_tree_build(ETK_TREE(tab->dtree));

   tab->itree = etk_tree_new();
   etk_scrolled_view_dragable_set(ETK_SCROLLED_VIEW(etk_tree_scrolled_view_get(ETK_TREE(tab->itree))), ETK_TRUE);
   etk_scrolled_view_drag_bouncy_set(ETK_SCROLLED_VIEW(etk_tree_scrolled_view_get(ETK_TREE(tab->itree))), ETK_FALSE);
   etk_scrolled_view_drag_damping_set(ETK_SCROLLED_VIEW(etk_tree_scrolled_view_get(ETK_TREE(tab->itree))), 300);



   etk_widget_dnd_source_set(ETK_WIDGET(tab->itree), ETK_TRUE);
//   etk_signal_connect("drag_begin", ETK_OBJECT(tab->itree), ETK_CALLBACK(_ex_tab_tree_drag_begin_cb), tab);
   etk_widget_size_request_set(tab->itree, 180, 220);
   etk_tree_multiple_select_set(ETK_TREE(tab->itree), ETK_TRUE);
   etk_signal_connect("row-selected", ETK_OBJECT(tab->itree), ETK_CALLBACK(_ex_tab_itree_item_clicked_cb), e);
   etk_signal_connect("key-down", ETK_OBJECT(tab->itree), ETK_CALLBACK(_ex_tab_itree_key_down_cb), e);
   imodel = etk_tree_model_wobbly_new();
   tab->imodel = imodel;
   //etk_tree_model_image_width_set(imodel, 80, 0.0);
   tab->icol = etk_tree_col_new(ETK_TREE(tab->itree), "Files", 10, 0.0);
   etk_tree_col_model_add(tab->icol, imodel);
   etk_tree_col_model_add(tab->icol, etk_tree_model_text_new());
   etk_tree_headers_visible_set(ETK_TREE(tab->itree), 0);
   etk_tree_rows_height_set(ETK_TREE(tab->itree), 60);
   etk_scrolled_view_policy_set(etk_tree_scrolled_view_get(ETK_TREE(tab->itree)), ETK_POLICY_AUTO, ETK_POLICY_SHOW);
   etk_tree_build(ETK_TREE(tab->itree));

   tab->dir = _ex_path_normalize(ecore_file_realpath(dir));
   tab->alignment = etk_alignment_new(0.5, 0.5, 1.0, 1.0);

   tab->image = etk_image_new();
   etk_widget_theme_file_set(tab->image, PACKAGE_DATA_DIR"/gui.edj");
   etk_widget_theme_group_set(tab->image, "image_bg");
   etk_signal_connect("mouse-down", ETK_OBJECT(tab->image), ETK_CALLBACK(_ex_image_mouse_down), e);
   etk_signal_connect("mouse-up", ETK_OBJECT(tab->image), ETK_CALLBACK(_ex_image_mouse_up), e);
   etk_signal_connect("mouse-move", ETK_OBJECT(tab->image), ETK_CALLBACK(_ex_image_mouse_move), e);
   etk_signal_connect("mouse-wheel", ETK_OBJECT(tab->image), ETK_CALLBACK(_ex_image_mouse_wheel), e);

   etk_image_keep_aspect_set(ETK_IMAGE(tab->image), ETK_TRUE);

   etk_container_add(ETK_CONTAINER(tab->alignment), tab->image);

   tab->scrolled_view = etk_scrolled_view_new();
   etk_scrolled_view_policy_set(ETK_SCROLLED_VIEW(tab->scrolled_view), ETK_POLICY_HIDE, ETK_POLICY_HIDE);
   etk_scrolled_view_dragable_set(ETK_SCROLLED_VIEW(tab->scrolled_view), ETK_TRUE);
   etk_scrolled_view_drag_bouncy_set((ETK_SCROLLED_VIEW(tab->scrolled_view)), ETK_FALSE);
   etk_scrolled_view_add_with_viewport(ETK_SCROLLED_VIEW(tab->scrolled_view), tab->alignment);
   etk_widget_has_event_object_set(tab->scrolled_view, ETK_TRUE);
   etk_signal_connect("mouse-wheel", ETK_OBJECT(tab->scrolled_view), ETK_CALLBACK(_ex_image_mouse_wheel), e);

   return tab;
}
Example #2
0
/* TODO : documentation */
void
emphasis_init_player(Emphasis_Player_Gui *player)
{
  Enhance *en;
  
  en = enhance_new();
  
  player->en = en;
  if(!en)
    {
      fprintf(stderr, "Enhance new failed");
      exit(1);
    }

  player->state = EMPHASIS_SMALL; /* TODO : state toggle full */

  _emphasis_enhance_callbacks(player);
  enhance_file_load(en, "Emphasis", PACKAGE_DATA_DIR EMPHASIS_GLADE);

  /* TODO : check widget? */

  EN_VAR_GET(en, player, window);
  etk_widget_hide(player->small.window);
  etk_widget_hide(player->full.window);
  EN_VAR_GET(en, player, root);

  player->small.ctr.root = enhance_var_get(en, "small_root_ctrl");
  player->small.cov.root = enhance_var_get(en, "small_root_cover");
  _emphasis_init_player_small(player);
  EN_VAR_GET(en, player, cover);
  
  EN_VAR_GET(en, player, stop);
  EN_VAR_GET(en, player, prev);
  EN_VAR_GET(en, player, play);
  EN_VAR_GET(en, player, next);

  EN_VAR_GET(en, player, info);

  EN_VAR_GET(en, player, progress);
  //EN_VAR_GET(en, player, time);
  player->full.time = enhance_var_get(en, "full_time");

  EN_VAR_GET(en, player, sound_slider);
  EN_VAR_GET(en, player, sound_low);
  EN_VAR_GET(en, player, sound_high);

  EN_VAR_GET(en, player, random);
  EN_VAR_GET(en, player, repeat);
  EN_VAR_GET(en, player, full);
  player->small.media  = enhance_var_get(en, "small_media");


  player->media.window   = enhance_var_get(en, "media_window");
  player->media.root     = enhance_var_get(en, "media_root");

  player->media.notebook = enhance_var_get(en, "media_notebook");

  player->media.paned    = enhance_var_get(en, "media_paned");
  player->media.pls      = enhance_var_get(en, "media_pls");

  player->media.artist   = enhance_var_get(en, "media_artist");
  player->media.album    = enhance_var_get(en, "media_album");
  player->media.track    = enhance_var_get(en, "media_track");

  player->media.search_root  = enhance_var_get(en, "search_page_root");
  player->media.search_combo = enhance_var_get(en, "search_page_combo");
  player->media.search_tree  = enhance_var_get(en, "search_page_tree");


  player->media.pls_list       = enhance_var_get(en, "media_pls_list");
  player->media.pls_content    = enhance_var_get(en, "media_pls_content");
  player->media.pls_entry_save = enhance_var_get(en, "media_pls_entry_save");

  /* Mediabox buttons init */
  player->media.toolbar          = enhance_var_get(en, "media_toolbar");
  player->media.button_lib       = enhance_var_get(en, "media_button_lib");
  player->media.button_search    = enhance_var_get(en, "media_button_search");
  player->media.button_playlists = enhance_var_get(en, "media_button_pls");
  player->media.button_stats     = enhance_var_get(en, "media_button_stats");

  /* enhance completion : col def */
  etk_tree_multiple_select_set(ETK_TREE(player->media.artist), ETK_TRUE);
  etk_tree_multiple_select_set(ETK_TREE(player->media.album) , ETK_TRUE);
  etk_tree_multiple_select_set(ETK_TREE(player->media.track) , ETK_TRUE);
  etk_tree_multiple_select_set(ETK_TREE(player->media.pls)   , ETK_TRUE);

  Etk_Tree_Col *col;
  col = etk_tree_col_new(ETK_TREE(player->media.artist), "Artist", 60, 0.0);
  etk_tree_col_model_add(col, etk_tree_model_text_new());
  etk_tree_build(ETK_TREE(player->media.artist));
  
  col = etk_tree_col_new(ETK_TREE(player->media.album), "Album", 60, 0.0);
  etk_tree_col_model_add(col, etk_tree_model_text_new());
  etk_tree_build(ETK_TREE(player->media.album));

  col = etk_tree_col_new(ETK_TREE(player->media.track), "Track", 60, 0.0);
  etk_tree_col_model_add(col, etk_tree_model_text_new());
  etk_tree_build(ETK_TREE(player->media.track));
  /* pls */
  col = etk_tree_col_new(ETK_TREE(player->media.pls), "Title", 140, 0.0);
  etk_tree_col_model_add(col, etk_tree_model_image_new());
  etk_tree_col_model_add(col, etk_tree_model_text_new());
  col = etk_tree_col_new(ETK_TREE(player->media.pls), "Time", 30, 0.0);
  etk_tree_col_model_add(col, etk_tree_model_text_new());
  col = etk_tree_col_new(ETK_TREE(player->media.pls), "Artist", 120, 0.0);
  etk_tree_col_model_add(col, etk_tree_model_text_new());
  col = etk_tree_col_new(ETK_TREE(player->media.pls), "Album", 120, 0.0);
  etk_tree_col_model_add(col, etk_tree_model_text_new());
  etk_tree_build(ETK_TREE(player->media.pls));
  /* search page */
  etk_tree_multiple_select_set(ETK_TREE(player->media.search_tree), ETK_TRUE);
  col = etk_tree_col_new(ETK_TREE(player->media.search_tree), "Artist", 120, 0.0);
  etk_tree_col_model_add(col, etk_tree_model_text_new());
  col = etk_tree_col_new(ETK_TREE(player->media.search_tree), "Album", 100, 0.0);
  etk_tree_col_model_add(col, etk_tree_model_text_new());
  col = etk_tree_col_new(ETK_TREE(player->media.search_tree), "Title", 200, 0.0);
  etk_tree_col_model_add(col, etk_tree_model_text_new());
  col = etk_tree_col_new(ETK_TREE(player->media.search_tree), "Filename", 200, 0.0);
  etk_tree_col_model_add(col, etk_tree_model_text_new());
  etk_tree_build(ETK_TREE(player->media.search_tree));
  /* playlists page */
  col = etk_tree_col_new(ETK_TREE(player->media.pls_list), "Playlists", 120, 0.0);
  etk_tree_col_model_add(col, etk_tree_model_text_new());
  etk_tree_build(ETK_TREE(player->media.pls_list));
  col = etk_tree_col_new(ETK_TREE(player->media.pls_content), "Preview", 120, 0.0);
  etk_tree_col_model_add(col, etk_tree_model_text_new());
  etk_tree_build(ETK_TREE(player->media.pls_content));
  /**/
 
  etk_object_data_set(ETK_OBJECT(player->media.artist), "title", "Artist");
  etk_object_data_set(ETK_OBJECT(player->media.album) , "title", "Album" );
  etk_object_data_set(ETK_OBJECT(player->media.track) , "title", "Track" );

  etk_object_data_set(ETK_OBJECT(player->media.artist),
                      "Emphasis_Type",
                      (void*)EMPHASIS_ARTIST);
  etk_object_data_set(ETK_OBJECT(player->media.album),
                      "Emphasis_Type",
                      (void*)EMPHASIS_ALBUM);
  etk_object_data_set(ETK_OBJECT(player->media.track),
                      "Emphasis_Type",
                      (void*)EMPHASIS_TRACK);

  /* enhance completion : dnd */
  etk_widget_dnd_source_set(ETK_WIDGET(player->media.artist), ETK_TRUE);
  etk_widget_dnd_source_set(ETK_WIDGET(player->media.album) , ETK_TRUE);
  etk_widget_dnd_source_set(ETK_WIDGET(player->media.track) , ETK_TRUE);
  etk_widget_dnd_dest_set(ETK_WIDGET(player->media.pls), ETK_TRUE);

  etk_signal_connect("row-clicked", ETK_OBJECT(player->media.artist),
                     ETK_CALLBACK(cb_tree_mlib_clicked),
                     player);
  etk_signal_connect("row-clicked", ETK_OBJECT(player->media.album ),
                     ETK_CALLBACK(cb_tree_mlib_clicked),
                     player);
  etk_signal_connect("row-clicked", ETK_OBJECT(player->media.track ),
                     ETK_CALLBACK(cb_tree_mlib_clicked),
                     player);
  etk_signal_connect("row-clicked", ETK_OBJECT(player->media.pls   ),
                     ETK_CALLBACK(cb_tree_pls_clicked),
                     NULL);

  /* Media pls init */
  etk_object_data_set(ETK_OBJECT(player->media.pls_content),
                      "Emphasis_Type",
                      (void*)EMPHASIS_TRACK);

  /* enhance complection : images */
  emphasis_player_cover_set(player, NULL);

  emphasis_player_vol_image_set(player, 0, PACKAGE_DATA_DIR EMPHASIS_SOUNDL);
  emphasis_player_vol_image_set(player, 1, PACKAGE_DATA_DIR EMPHASIS_SOUNDR);

  player->small.cover_size_w = player->small.cover->requested_size.w;
  player->small.cover_size_h = player->small.cover->requested_size.h;
  player->full.cover_size_w  = player->full.cover->requested_size.w;
  player->full.cover_size_h  = player->full.cover->requested_size.h;

  /* TEMP configuration, need to add this to enhance */
  etk_window_wmclass_set(ETK_WINDOW(player->full.window),
                         "emphasis full", "Emphasis");
  etk_window_wmclass_set(ETK_WINDOW(player->small.window),
                         "emphasis small", "Emphasis");
  etk_window_wmclass_set(ETK_WINDOW(player->media.window),
                         "emphasis mlib", "Emphasis");
  etk_container_border_width_set(ETK_CONTAINER(player->full.window), 5);
}