void StaticTableModel::set(const int row, const int column, Widget *const widget) { if (!widget || row >= mRows || row < 0 || column >= mColumns || column < 0) { // raise exn? return; } if (DYN_SIZE(mHeight) && widget->getHeight() > mHeight) { mHeight = widget->getHeight(); } if (DYN_SIZE(mWidths[column]) && widget->getWidth() > mWidths[column]) { mWidths[column] = widget->getWidth(); } signalBeforeUpdate(); delete mTableModel[WIDGET_AT(row, column)]; mTableModel[WIDGET_AT(row, column)] = widget; signalAfterUpdate(); }
virtual void playerRelationsUpdated() { signalBeforeUpdate(); freeWidgets(); StringVect *player_names = player_relations.getPlayers(); if (!player_names) return; delete mPlayers; mPlayers = player_names; // set up widgets for (unsigned int r = 0; r < player_names->size(); ++r) { std::string name = (*player_names)[r]; gcn::Widget *widget = new Label(name); mWidgets.push_back(widget); gcn::DropDown *choicebox = new DropDown(mListModel); choicebox->setSelected(player_relations.getRelation(name)); mWidgets.push_back(choicebox); } signalAfterUpdate(); }
void StaticTableModel::set(int row, int column, gcn::Widget *widget) { if (row >= mRows || row < 0 || column >= mColumns || column < 0) // raise exn? return; if (DYN_SIZE(mHeight) && widget->getHeight() > mHeight) mHeight = widget->getHeight(); if (DYN_SIZE(mWidths[column]) && widget->getWidth() > mWidths[column]) mWidths[column] = widget->getWidth(); signalBeforeUpdate(); if (mTableModel[WIDGET_AT(row, column)]) delete mTableModel[WIDGET_AT(row, column)]; mTableModel[WIDGET_AT(row, column)] = widget; signalAfterUpdate(); }