ocarina: Listen for LIBRARY_REFRESH callback
I eventually want to add songs to the songlist, but for now it is enough to wait for this callback.
This commit is contained in:
parent
69beb10d6b
commit
170e700746
|
@ -2,5 +2,6 @@
|
|||
#define OCARINA_LIBRARY_H
|
||||
|
||||
void library_init();
|
||||
void ocarina_library_refresh();
|
||||
|
||||
#endif /* OCARINA_LIBRARY_H */
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
#include <libsaria/print.h>
|
||||
#include <ocarina/ocarina.h>
|
||||
#include <ocarina/button.h>
|
||||
#include <ocarina/library.h>
|
||||
|
||||
void cb_play()
|
||||
{
|
||||
|
@ -24,6 +25,12 @@ void cb_idle_task_queued()
|
|||
ocarina_idle_add();
|
||||
}
|
||||
|
||||
void cb_library_refresh()
|
||||
{
|
||||
println("Ocarina LIBRARY_REFRESH callback!");
|
||||
ocarina_library_refresh();
|
||||
}
|
||||
|
||||
static void add_callback(callback_t type, void (* func)())
|
||||
{
|
||||
register_callback(type, func);
|
||||
|
@ -35,4 +42,5 @@ void setup_callbacks()
|
|||
add_callback(PLAY, cb_play);
|
||||
add_callback(PAUSE, cb_pause);
|
||||
add_callback(IDLE_TASK_QUEUED, cb_idle_task_queued);
|
||||
add_callback(IDLE_TASK_QUEUED, cb_library_refresh);
|
||||
}
|
||||
|
|
|
@ -5,13 +5,13 @@
|
|||
#include "songlist/songlist.h"
|
||||
|
||||
static SongList library_list;
|
||||
static GtkWidget *label;
|
||||
|
||||
void library_init()
|
||||
{
|
||||
library_list.init();
|
||||
label = gtk_label_new("Library");
|
||||
gtk_label_set_angle(GTK_LABEL(label), 90);
|
||||
gtk_widget_show(label);
|
||||
add_page(label, library_list.get_window(), true);
|
||||
library_list.init("Library");
|
||||
add_page(library_list.get_label(), library_list.get_window(), true);
|
||||
}
|
||||
|
||||
void ocarina_library_refresh()
|
||||
{
|
||||
}
|
||||
|
|
|
@ -15,16 +15,25 @@ SongList::~SongList()
|
|||
* I need an init() function to set up the scrolled window AFTER
|
||||
* the gtk_init() function has been called.
|
||||
*/
|
||||
void SongList::init()
|
||||
void SongList::init(string text)
|
||||
{
|
||||
window = gtk_scrolled_window_new(NULL, NULL);
|
||||
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(window),
|
||||
GTK_POLICY_AUTOMATIC,
|
||||
GTK_POLICY_AUTOMATIC);
|
||||
gtk_widget_show(window);
|
||||
|
||||
label = gtk_label_new(text.c_str());
|
||||
gtk_label_set_angle(GTK_LABEL(label), 90);
|
||||
gtk_widget_show(label);
|
||||
}
|
||||
|
||||
GtkWidget *SongList::get_window()
|
||||
{
|
||||
return window;
|
||||
}
|
||||
|
||||
GtkWidget *SongList::get_label()
|
||||
{
|
||||
return label;
|
||||
}
|
||||
|
|
|
@ -3,17 +3,22 @@
|
|||
|
||||
#include <ocarina/gtk.h>
|
||||
|
||||
#include <string>
|
||||
using namespace std;
|
||||
|
||||
class SongList
|
||||
{
|
||||
private:
|
||||
GtkWidget *window;
|
||||
GtkWidget *label;
|
||||
|
||||
public:
|
||||
SongList();
|
||||
~SongList();
|
||||
|
||||
void init();
|
||||
void init(string);
|
||||
GtkWidget *get_window();
|
||||
GtkWidget *get_label();
|
||||
};
|
||||
|
||||
#endif /* OCARINA_SONGLIST_H */
|
||||
|
|
Loading…
Reference in New Issue