ocarina: Don't assume scrolled windows for footer pages

This made the footer too big, in my opinion.  I have some other ideas
for how to fix it, though.

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
This commit is contained in:
Bryan Schumaker 2012-03-11 13:56:43 -04:00
parent 81da1743a5
commit 06e613d901
2 changed files with 49 additions and 20 deletions

View File

@ -4,24 +4,13 @@
static GtkWidget *footer;
static void add_page(string text, GtkWidget *page, bool scroll)
static void add_page(string text, GtkWidget *page)
{
GtkWidget *label = gtk_label_new(text.c_str());
GtkWidget *window;
if (scroll == true) {
window = gtk_scrolled_window_new(NULL, NULL);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(window),
GTK_POLICY_AUTOMATIC,
GTK_POLICY_AUTOMATIC);
gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(window), page);
gtk_widget_show(window);
} else
window = page;
gtk_notebook_append_page(GTK_NOTEBOOK(footer), window, label);
gtk_notebook_append_page(GTK_NOTEBOOK(footer), page, label);
gtk_notebook_set_tab_label_packing(GTK_NOTEBOOK(footer),
window, TRUE, TRUE, GTK_PACK_START);
page, TRUE, TRUE, GTK_PACK_START);
gtk_widget_show(label);
}
@ -34,9 +23,9 @@ namespace ocarina
footer = gtk_notebook_new();
gtk_notebook_set_tab_pos(GTK_NOTEBOOK(footer), GTK_POS_TOP);
add_page("Now Playing", now_playing_page(), false);
add_page("Library Settings", library_page(), true);
add_page("General Settings", general_page(), true);
add_page("Now Playing", now_playing_page());
add_page("Library Settings", library_page());
add_page("General Settings", general_page());
gtk_widget_show(footer);
return footer;

View File

@ -1,15 +1,55 @@
// Copyright (c) 2012 Bryan Schumaker
#include <ocarina/ocarina.h>
#include <ocarina/chooser.h>
#include <ocarina/button.h>
#include <ocarina/body.h>
static void on_click_add(GtkWidget *b, GdkEvent *e, gpointer d)
{
string dir = ocarina::choose_dir();
if (dir != "") {
println("Scanning dir: " + dir);
}
}
static void on_click_update(GtkWidget *b, GdkEvent *e, gpointer d)
{
println("Update button clicked");
}
static GtkWidget *button_row()
{
GtkWidget *button_row = gtk_hbox_new(FALSE, 0);
GtkWidget *add_button = make_text_button(GTK_STOCK_ADD,
"Add Library Path",
on_click_add,
true);
GtkWidget *update_button = make_text_button(GTK_STOCK_REFRESH,
"Update Library Paths",
on_click_update,
true);
gtk_box_pack_end(GTK_BOX(button_row), add_button, FALSE, FALSE, 0);
gtk_box_pack_end(GTK_BOX(button_row), update_button, FALSE, FALSE, 0);
return button_row;
}
namespace ocarina
{
GtkWidget *body::library_page()
{
GtkWidget *label = gtk_label_new("Future library page");
gtk_widget_show(label);
return label;
GtkWidget *box = gtk_vbox_new(FALSE, 0);
/*GtkWidget *window = gtk_scrolled_window_new(NULL, NULL);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(window),
GTK_POLICY_AUTOMATIC,
GTK_POLICY_AUTOMATIC);
gtk_box_pack_start(GTK_BOX(box), window, FALSE, FALSE, 0);*/
gtk_box_pack_start(GTK_BOX(box), button_row(), FALSE, FALSE, 0);
gtk_widget_show_all(box);
return box;
}
}; /* Namespace: ocarina */