Witam serdecznie,
Z bliblioteką graficzną FLTK to dopiero moje pierwsze starcie, więc proszę o wyrozumiałość.
Otóż, chodzi o to, że muszę stworzyć funkcję wykonującą się n razy ( gdzie n to liczba graczy ), która po wciśnięciu Buttona "OK", odwoła się do metod z modelu wprowadzających dane. setName w tym wypadku.
Mam coś takiego ( nie jest to całość ):
class View : public Fl_Double_Window
{
public:
View( Model* model, Controller* controller );
~View();
static void hide_start( Fl_Widget*, void* );
static void choose_players_number( Fl_Widget*, void* );
//void add_player();
private:
Model* M;
Controller* C;
Fl_Box *begin_box;
Fl_Box *begin_sub_box;
Fl_Button *start;
Fl_Choice *players_number;
Fl_Button *ok;
Fl_Box *choose_hero;
Fl_Input *players_name;
};
void View::hide_start( Fl_Widget* widget, void* )
{
Fl_Button* button = ( Fl_Button* ) widget;
Fl_Box* box1 = ( Fl_Box* ) button->parent()->child(0);
Fl_Box* box2 = ( Fl_Box* ) button->parent()->child(1);
box1->hide();
box2->hide();
button->hide();
Fl_Widget* ch = ( Fl_Widget* ) button->parent()->child(2);
ch->hide();
Fl_Button* ok = ( Fl_Button* ) button->parent()->child(4);
ok->show();
Fl_Box* chooseHero = ( Fl_Box* ) button->parent()->child(5);
chooseHero->show();
Fl_Input* players_name = ( Fl_Input* ) button->parent()->child(6);
players_name->show();
View* w = (View*)widget->parent();
for( int i=0; i<w->M->getPlayersNumber(); i++)
{
if( ok->activate() )
{
w->M->aPlayers[i].setName(players_name->value());
cout << w->M->aPlayers[i].getName() << endl;
}
}
cout << "It will be good" << endl;
}
void View::choose_players_number( Fl_Widget* widget, void* number )
{
View* w = (View*)widget->parent();
//cout << "CB nrpl:" << w->M->getPlayersNumber() << endl;
w->M->setPlayersNumber( ( int ) number );
//cout << "PO: CB nrpl:" << w->M->getPlayersNumber() << endl;
}
Z góry dziękuję za szybką odpowiedź :)