1 /* EasyTAG - tag editor for audio files 2 * Copyright (C) 2014-2015 David King <amigadave@amigadave.com> 3 * Copyright (C) 2000-2003 Jerome Couderc <easytag@gmail.com> 4 * 5 * This program is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License as published by the Free 7 * Software Foundation; either version 2 of the License, or (at your option) 8 * any later version. 9 * 10 * This program is distributed in the hope that it will be useful, but WITHOUT 11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 13 * more details. 14 * 15 * You should have received a copy of the GNU General Public License along with 16 * this program; if not, write to the Free Software Foundation, Inc., 51 17 * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 18 */ 19 20 #ifndef ET_BROWSER_H_ 21 #define ET_BROWSER_H_ 22 23 #include <gtk/gtk.h> 24 25 G_BEGIN_DECLS 26 27 #include "et_core.h" 28 29 #define ET_TYPE_BROWSER (et_browser_get_type ()) 30 #define ET_BROWSER(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), ET_TYPE_BROWSER, EtBrowser)) 31 32 typedef struct _EtBrowser EtBrowser; 33 typedef struct _EtBrowserClass EtBrowserClass; 34 35 struct _EtBrowser 36 { 37 /*< private >*/ 38 GtkBin parent_instance; 39 }; 40 41 struct _EtBrowserClass 42 { 43 /*< private >*/ 44 GtkBinClass parent_class; 45 }; 46 47 GType et_browser_get_type (void); 48 EtBrowser *et_browser_new (void); 49 void et_browser_show_open_directory_with_dialog (EtBrowser *self); 50 void et_browser_show_open_files_with_dialog (EtBrowser *self); 51 void et_browser_show_rename_directory_dialog (EtBrowser *self); 52 53 typedef enum 54 { 55 ET_BROWSER_MODE_FILE, 56 ET_BROWSER_MODE_ARTIST 57 } EtBrowserMode; 58 59 /* 60 * To number columns of ComboBox 61 */ 62 enum 63 { 64 MISC_COMBO_TEXT, // = 0 (First column) 65 MISC_COMBO_COUNT // = 1 (Number of columns in ComboBox) 66 }; 67 68 void et_browser_clear_album_model (EtBrowser *self); 69 void et_browser_clear_artist_model (EtBrowser *self); 70 71 void et_browser_select_dir (EtBrowser *self, GFile *file); 72 void et_browser_reload (EtBrowser *self); 73 void et_browser_collapse (EtBrowser *self); 74 void et_browser_set_sensitive (EtBrowser *self, gboolean sensitive); 75 76 void et_browser_load_file_list (EtBrowser *self, GList *etfilelist, const ET_File *etfile_to_select); 77 void et_browser_refresh_list (EtBrowser *self); 78 void et_browser_refresh_file_in_list (EtBrowser *self, const ET_File *ETFile); 79 void et_browser_clear (EtBrowser *self); 80 void et_browser_select_file_by_et_file (EtBrowser *self, const ET_File *ETFile, gboolean select_it); 81 GtkTreePath * et_browser_select_file_by_et_file2 (EtBrowser *self, const ET_File *searchETFile, gboolean select_it, GtkTreePath *startPath); 82 void et_browser_select_file_by_iter_string (EtBrowser *self, const gchar* stringiter, gboolean select_it); 83 ET_File *et_browser_select_file_by_dlm (EtBrowser *self, const gchar* string, gboolean select_it); 84 void et_browser_refresh_sort (EtBrowser *self); 85 void et_browser_select_all (EtBrowser *self); 86 void et_browser_unselect_all (EtBrowser *self); 87 void et_browser_invert_selection (EtBrowser *self); 88 void et_browser_remove_file (EtBrowser *self, const ET_File *ETFile); 89 ET_File * et_browser_get_et_file_from_path (EtBrowser *self, GtkTreePath *path); 90 ET_File * et_browser_get_et_file_from_iter (EtBrowser *self, GtkTreeIter *iter); 91 92 void et_browser_entry_set_text (EtBrowser *self, const gchar *text); 93 void et_browser_label_set_text (EtBrowser *self, const gchar *text); 94 95 void et_browser_set_display_mode (EtBrowser *self, EtBrowserMode mode); 96 97 void et_browser_go_home (EtBrowser *self); 98 void et_browser_go_desktop (EtBrowser *self); 99 void et_browser_go_documents (EtBrowser *self); 100 void et_browser_go_downloads (EtBrowser *self); 101 void et_browser_go_music (EtBrowser *self); 102 void et_browser_go_parent (EtBrowser *self); 103 104 void et_browser_run_player_for_album_list (EtBrowser *self); 105 void et_browser_run_player_for_artist_list (EtBrowser *self); 106 void et_browser_run_player_for_selection (EtBrowser *self); 107 108 void et_browser_load_default_dir (EtBrowser *self); 109 void et_browser_reload_directory (EtBrowser *self); 110 void et_browser_set_current_path_default (EtBrowser *self); 111 GFile * et_browser_get_current_path (EtBrowser *self); 112 113 GtkTreeSelection * et_browser_get_selection (EtBrowser *self); 114 115 GtkTreeViewColumn * et_browser_get_column_for_column_id (EtBrowser *self, gint column_id); 116 GtkSortType et_browser_get_sort_order_for_column_id (EtBrowser *self, gint column_id); 117 118 G_END_DECLS 119 120 #endif /* ET_BROWSER_H_ */ 121