diff options
Diffstat (limited to 'gtkplaylist.h')
-rw-r--r-- | gtkplaylist.h | 45 |
1 files changed, 42 insertions, 3 deletions
diff --git a/gtkplaylist.h b/gtkplaylist.h index 9504df1d..22e83000 100644 --- a/gtkplaylist.h +++ b/gtkplaylist.h @@ -46,8 +46,19 @@ enum { COLO_COUNT }; -#define pl_ncolumns 5 -#define pl_colname_max 100 +//#define pl_ncolumns 5 +//#define pl_colname_max 100 + +typedef struct gtkpl_column_s { + char *title; + int id; // id is faster than format, set to -1 to use format + char *format; + int width; + int movepos; // valid only while `moving' is 1 + struct gtkpl_column_s *next; + unsigned align_right : 1; + unsigned moving : 1; +} gtkpl_column_t; // structure of this kind must be set as user data for playlist, header and scrollbar widgets // pointer to this structure must be passed too all functions that @@ -60,6 +71,7 @@ typedef struct { GtkWidget *hscrollbar; GdkPixmap *backbuf; GdkPixmap *backbuf_header; + const char *title; // unique id, used for config writing, etc // parameters playItem_t **pcurr; // pointer to current item int *pcount; // pointer to count of items in list @@ -73,7 +85,9 @@ typedef struct { double clicktime; // for doubleclick detection int nvisiblerows; int nvisiblefullrows; - int *colwidths;//[pl_ncolumns]; // current column widths +// int *colwidths;//[pl_ncolumns]; // current column widths +// int ncolumns; + gtkpl_column_t *columns; } gtkplaylist_t; #define GTKPL_PROLOGUE \ @@ -84,6 +98,9 @@ void gtkpl_init (void); void +gtkpl_free (gtkplaylist_t *pl); + +void gtkpl_redraw_pl_row (gtkplaylist_t *ps, int row, playItem_t *it); void @@ -205,4 +222,26 @@ theme_set_cairo_source_rgb (cairo_t *cr, int col); void playlist_refresh (void); +// column utilities +gtkpl_column_t * +gtkpl_column_alloc (const char *title, int width, int id, const char *format, int align_right); + +void +gtkpl_column_append (gtkplaylist_t *pl, gtkpl_column_t *c); + +void +gtkpl_column_remove (gtkplaylist_t *pl, gtkpl_column_t *c); + +void +gtkpl_column_free (gtkpl_column_t *c); + +void +gtkpl_append_column_from_textdef (gtkplaylist_t *pl, const uint8_t *def); + +void +gtkpl_column_update_config (gtkplaylist_t *pl, gtkpl_column_t *c, int idx); + +void +gtkpl_column_rewrite_config (gtkplaylist_t *pl); + #endif // __GTKPLAYLIST_H |