More fixes (tmp tmp)

This commit is contained in:
simon.kagstrom 2009-11-16 19:00:22 +00:00
parent b0ca5f88bd
commit f02c428969

View File

@ -13,7 +13,6 @@ gcn::TextField* textField;
gcn::TextBox* textBox; gcn::TextBox* textBox;
gcn::ScrollArea* textBoxScrollArea; gcn::ScrollArea* textBoxScrollArea;
gcn::ListBox* listBox; gcn::ListBox* listBox;
gcn::DropDown* dropDown;
gcn::CheckBox* checkBox1; gcn::CheckBox* checkBox1;
gcn::CheckBox* checkBox2; gcn::CheckBox* checkBox2;
gcn::Window *window; gcn::Window *window;
@ -24,6 +23,35 @@ gcn::Button* tabOneButton;
gcn::CheckBox* tabTwoCheckBox; gcn::CheckBox* tabTwoCheckBox;
const char *test_msgs[] = {
"bruce_lee.d64",
"the_last_ninja.d64",
"the_first_ninja.d64",
"uridium.d64",
"international_karate.d64",
"fist_II.d64",
"fist_II.d64",
"fist_II.d64",
"fist_II.d64",
"fist_II.d64",
"bruce_lee.d64",
"the_last_ninja.d64",
"the_first_ninja.d64",
"uridium.d64",
"international_karate.d64",
"bruce_lee.d64",
"the_last_ninja.d64",
"the_first_ninja.d64",
"uridium.d64",
"international_karate.d64",
"bruce_lee.d64",
"the_last_ninja.d64",
"the_first_ninja.d64",
"uridium.d64",
"international_karate.d64",
NULL
};
class BackgroundContainer : public gcn::Container class BackgroundContainer : public gcn::Container
{ {
public: public:
@ -53,7 +81,7 @@ private:
}; };
class List : public gcn::ListBox class FrodoGuiList : public gcn::ListBox
{ {
public: public:
class PrivListModel : public gcn::ListModel class PrivListModel : public gcn::ListModel
@ -70,60 +98,55 @@ public:
std::string getElementAt(int i) std::string getElementAt(int i)
{ {
return this->msgs[this->n_msgs]; return this->msgs[i];
} }
const char **msgs; const char **msgs;
int n_msgs; int n_msgs;
}; };
List(const char **msgs, int n_msgs) FrodoGuiList()
{ {
this->model = NULL;
}
FrodoGuiList(const char **msgs)
{
this->setList(msgs);
}
void setList(const char **msgs)
{
int n_msgs = 0;
const char *p;
/* Count messages */
while (msgs[n_msgs])
n_msgs++;
this->model = new PrivListModel(msgs, n_msgs); this->model = new PrivListModel(msgs, n_msgs);
this->setListModel(this->model);
}
~FrodoGuiList()
{
delete this->model;
} }
private: private:
PrivListModel *model; PrivListModel *model;
}; };
/* class FrodoFileBrowser : gcn::Widget
* List boxes and drop downs need an instance of a list model {
* in order to display a list. public:
*/ FrodoFileBrowser(const char *dir) : FrodoGuiList()
class DemoListModel : public gcn::ListModel {
{ this->list = new FrodoGuiList(test_msgs);
public: this->setSize(300, 400);
int getNumberOfElements() }
{ private:
return 5; FrodoGuiList *list;
} };
std::string getElementAt(int i)
{
switch(i)
{
case 0:
return std::string("zero");
case 1:
return std::string("one");
case 2:
return std::string("two");
case 3:
return std::string("three");
case 4:
return std::string("four");
case 5:
return std::string("four");
case 6:
return std::string("four");
case 7:
return std::string("four");
default: // Just to keep warnings away
return std::string("");
}
}
};
DemoListModel demoListModel;
/** /**
* Initialises the widgets example by populating the global Gui * Initialises the widgets example by populating the global Gui
@ -132,12 +155,12 @@ private:
void init() void init()
{ {
// Now we load the font used in this example. // Now we load the font used in this example.
font = new gcn::ImageFont("data/fixedfont.bmp", " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"); font = new gcn::ImageFont("data/fixedfont.bmp", " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.,!?-+/():;%&`'*#=[]\"");
// Widgets may have a global font so we don't need to pass the // Widgets may have a global font so we don't need to pass the
// font object to every created widget. The global font is static. // font object to every created widget. The global font is static.
gcn::Widget::setGlobalFont(font); gcn::Widget::setGlobalFont(font);
title_font = new gcn::ImageFont("data/techyfontbig.png", " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"); title_font = new gcn::ImageFont("data/techyfontbig.png", " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.,!?-+/():;%&`'*#=[]\"");
// We first create a container to be used as the top widget. // We first create a container to be used as the top widget.
// The top widget in Guichan can be any kind of widget, but // The top widget in Guichan can be any kind of widget, but
// in order to make the Gui contain more than one widget we // in order to make the Gui contain more than one widget we
@ -157,9 +180,8 @@ private:
textBoxScrollArea->setHeight(100); textBoxScrollArea->setHeight(100);
textBoxScrollArea->setFrameSize(1); textBoxScrollArea->setFrameSize(1);
listBox = new gcn::ListBox(&demoListModel); listBox = new FrodoFileBrowser("vobb");
listBox->setFrameSize(1); listBox->setFrameSize(1);
dropDown = new gcn::DropDown(&demoListModel);
checkBox1 = new gcn::CheckBox("Checkbox 1"); checkBox1 = new gcn::CheckBox("Checkbox 1");
checkBox2 = new gcn::CheckBox("Checkbox 2"); checkBox2 = new gcn::CheckBox("Checkbox 2");
@ -185,7 +207,6 @@ private:
top->add(textField, 250, 80); top->add(textField, 250, 80);
top->add(textBoxScrollArea, 200, 50); top->add(textBoxScrollArea, 200, 50);
top->add(listBox, 200, 200); top->add(listBox, 200, 200);
top->add(dropDown, 500, 80);
top->add(checkBox1, 500, 130); top->add(checkBox1, 500, 130);
top->add(checkBox2, 500, 150); top->add(checkBox2, 500, 150);
top->add(window, 50, 350); top->add(window, 50, 350);
@ -205,7 +226,6 @@ private:
delete textBox; delete textBox;
delete textBoxScrollArea; delete textBoxScrollArea;
delete listBox; delete listBox;
delete dropDown;
delete checkBox1; delete checkBox1;
delete checkBox2; delete checkBox2;
delete window; delete window;