X-Git-Url: https://git.distorted.org.uk/~mdw/disorder/blobdiff_plain/ad47bd4ceb35ce30440fb7ccc5a7d871375ea362..9eeb9f121e6f5bea8307f5a90bdae6359c4a3211:/disobedience/choose.h diff --git a/disobedience/choose.h b/disobedience/choose.h index 49c9b60..f67261c 100644 --- a/disobedience/choose.h +++ b/disobedience/choose.h @@ -20,31 +20,33 @@ #ifndef CHOOSE_H #define CHOOSE_H -/** @brief Extra data at each node */ -struct choosedata { - /** @brief Node type */ - int type; - - /** @brief Full track or directory name */ - gchar *track; - - /** @brief Sort key */ - gchar *sort; -}; - /** @brief Column numbers */ enum { - STATE_COLUMN, - NAME_COLUMN, - LENGTH_COLUMN, - CHOOSEDATA_COLUMN + /* Visible columns */ + STATE_COLUMN, /* Track state */ + NAME_COLUMN, /* Track name (display context) */ + LENGTH_COLUMN, /* Track length */ + /* Hidden columns */ + ISFILE_COLUMN, /* TRUE for a track, FALSE for a directory */ + TRACK_COLUMN, /* Full track name, "" for placeholder */ + SORT_COLUMN, /* Sort key */ + BG_COLUMN, /* Background color */ + FG_COLUMN, /* Foreground color */ + + CHOOSE_COLUMNS /* column count */ }; -/** @brief @ref choosedata node is a file */ -#define CHOOSE_FILE 0 +#ifndef SEARCH_RESULT_BG +/** @brief Background color for search results */ +# define SEARCH_RESULT_BG "#ffffc0" +/** @brief Foreground color for search results */ +# define SEARCH_RESULT_FG "black" +#endif -/** @brief @ref choosedata node is a directory */ -#define CHOOSE_DIRECTORY 1 +#ifndef SEARCH_DELAY_MS +/** @brief Delay between last keypress in search entry and start of search */ +# define SEARCH_DELAY_MS 500 /* milliseconds */ +#endif extern GtkTreeStore *choose_store; extern GtkWidget *choose_view; @@ -56,6 +58,15 @@ struct choosedata *choose_path_to_data(GtkTreePath *path); gboolean choose_button_event(GtkWidget *widget, GdkEventButton *event, gpointer user_data); +void choose_play_completed(void attribute((unused)) *v, + const char *error); +char *choose_get_track(GtkTreeIter *iter); +char *choose_get_sort(GtkTreeIter *iter); +int choose_is_file(GtkTreeIter *iter); +int choose_is_dir(GtkTreeIter *iter); +int choose_is_placeholder(GtkTreeIter *iter); +GtkWidget *choose_search_widget(void); +int choose_is_search_result(const char *track); #endif /* CHOOSE_H */