Remove the last part of the old campaign dialog.

This commit is contained in:
Mark de Wever 2009-06-13 14:50:27 +00:00
parent 47142ec674
commit fb7280aa1c
2 changed files with 0 additions and 103 deletions

View file

@ -1021,92 +1021,6 @@ void show_unit_description(game_display &disp, const unit_type& t)
help::show_unit_help(disp, t.id(), t.hide_help());
}
namespace {
static const int campaign_preview_border = font::relative_size(10);
}
campaign_preview_pane::campaign_preview_pane(CVideo &video,std::vector<std::pair<std::string,std::string> >* desc) : gui::preview_pane(video),descriptions_(desc),index_(0)
{
// size of the campaign info window with the campaign description and image in pixel
#ifdef USE_TINY_GUI
set_measurements(160, 200);
#else
set_measurements(430, 440);
#endif
}
bool campaign_preview_pane::show_above() const { return false; }
bool campaign_preview_pane::left_side() const { return false; }
void campaign_preview_pane::set_selection(int index)
{
index = std::min<int>(descriptions_->size()-1,index);
if(index != index_ && index >= 0) {
index_ = index;
set_dirty();
}
}
void campaign_preview_pane::draw_contents()
{
if (size_t(index_) >= descriptions_->size()) {
return;
}
const SDL_Rect area = {
location().x+campaign_preview_border,
location().y,
location().w-campaign_preview_border*2,
location().h };
/* background frame */
gui::dialog_frame f(video(), "", gui::dialog_frame::preview_style, false);
f.layout(area);
f.draw_background();
f.draw_border();
/* description text */
std::string desc_text;
try {
desc_text = font::word_wrap_text((*descriptions_)[index_].first,
font::SIZE_SMALL, area.w - 2 * campaign_preview_border);
} catch (utils::invalid_utf8_exception&) {
ERR_NG << "Invalid utf-8 found, campaign description is ignored.\n";
}
const std::vector<std::string> lines = utils::split(desc_text, '\n',utils::STRIP_SPACES);
SDL_Rect txt_area = { area.x+campaign_preview_border,area.y+campaign_preview_border,0,0 };
for(std::vector<std::string>::const_iterator line = lines.begin(); line != lines.end(); ++line) {
txt_area = font::draw_text(&video(),location(),font::SIZE_SMALL,font::NORMAL_COLOUR,*line,txt_area.x,txt_area.y);
txt_area.y += txt_area.h;
}
/* description image */
surface img(NULL);
const std::string desc_img_name = (*descriptions_)[index_].second;
if(!desc_img_name.empty()) {
img.assign(image::get_image(desc_img_name));
}
if (!img.null()) {
SDL_Rect src_rect,dst_rect;
int max_height = area.h-(txt_area.h+txt_area.y-area.y);
src_rect.x = src_rect.y = 0;
src_rect.w = std::min<int>(area.w,img->w);
src_rect.h = std::min<int>(max_height,img->h);
dst_rect.x = area.x+(area.w-src_rect.w)/2;
dst_rect.y = txt_area.y+((max_height-src_rect.h)*8)/13;
if(dst_rect.y - txt_area.h - txt_area.y >= 120) {
//for really tall dialogs, just put it under the text
dst_rect.y = txt_area.y + font::get_max_height(font::SIZE_SMALL)*5;
}
SDL_BlitSurface(img,&src_rect,video().getSurface(),&dst_rect);
}
}
static network::connection network_data_dialog(display& disp, const std::string& msg, config& cfg, network::connection connection_num, network::statistics (*get_stats)(network::connection handle))
{
#ifdef USE_TINY_GUI

View file

@ -145,23 +145,6 @@ private:
void show_unit_description(game_display &disp, const unit_type& t);
void show_unit_description(game_display &disp, const unit& u);
class campaign_preview_pane : public gui::preview_pane
{
public:
campaign_preview_pane(CVideo &video,std::vector<std::pair<std::string,std::string> >* descriptions);
bool show_above() const;
bool left_side() const;
void set_selection(int index);
private:
void draw_contents();
const std::vector<std::pair<std::string,std::string> >* descriptions_;
int index_;
};
network::connection network_send_dialog(display& disp, const std::string& msg, config& cfg, network::connection connection_num=0);
network::connection network_receive_dialog(display& disp, const std::string& msg, config& cfg, network::connection connection_num=0);
network::connection network_connect_dialog(display& disp, const std::string& msg, const std::string& hostname, int port);