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:
Bryan Schumaker 2011-09-18 17:27:12 -04:00
parent 69beb10d6b
commit 170e700746
5 changed files with 31 additions and 8 deletions

View File

@ -2,5 +2,6 @@
#define OCARINA_LIBRARY_H
void library_init();
void ocarina_library_refresh();
#endif /* OCARINA_LIBRARY_H */

View File

@ -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);
}

View File

@ -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()
{
}

View File

@ -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;
}

View File

@ -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 */