00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include <sstream>
00023 #include <pgimage.h>
00024
00025 #include "../iconrepository.h"
00026 #include "../gamemap.h"
00027 #include "../paradialog.h"
00028 #include "emailsetup.h"
00029
00030
00031
00032 EmailSetupWidget::EmailSetupWidget( GameMap* gamemap, int editablePlayers, PG_Widget *parent, const PG_Rect &r, const std::string &style ) : PG_ScrollWidget( parent, r, style ) , actmap ( gamemap )
00033 {
00034 int counter = 0;
00035 int y1 = Width() * 4 / 10;
00036
00037 const int colBarXStart = 20;
00038 new PG_Label( this, PG_Rect( colBarXStart + y1, 20, 200, 20 ), "Email Address" );
00039
00040 for ( int i = 0; i < actmap->getPlayerCount(); ++i )
00041 if ( actmap->player[i].exist() ) {
00042
00043 PlayerWidgets pw;
00044 pw.pos = i;
00045
00046 int y = 50 + counter * spacing;
00047
00048 ColoredBar* colbar = new ColoredBar( actmap->player[i].getColor(), this, PG_Rect( colBarXStart, y, Width() - 60, 30 ));
00049 colbar->SetTransparency( 128 );
00050
00051
00052
00053 pw.name = new PG_LineEdit( colbar, PG_Rect( 40, 5, y1 - 40, 20 ));
00054 pw.name->SetText( actmap->player[i].getName());
00055 pw.name->SetEditable(false );
00056
00057 PG_Rect r = PG_Rect( y1 + 20, 5, colbar->Width() - y1 - 40, 20 );
00058 pw.email = new PG_LineEdit( colbar, r );
00059 pw.email->SetText( actmap->player[i].email );
00060
00061
00062 if ( editablePlayers == -1 || editablePlayers == gamemap->actplayer ) {
00063 pw.email->SetEditable(true);
00064 } else {
00065 pw.email->SetEditable(false);
00066 }
00067
00068 PG_ThemeWidget* col = new PG_ThemeWidget( colbar, PG_Rect( 5, 5, 20, 20 ));
00069 col->SetSimpleBackground(true);
00070 col->SetBackgroundColor ( actmap->player[i].getColor());
00071 col->SetBorderSize(0);
00072
00073 playerWidgets.push_back( pw );
00074
00075 ++counter;
00076 }
00077
00078 SetTransparency(255);
00079 };
00080
00081
00082 void EmailSetupWidget::Apply()
00083 {
00084 for ( vector<PlayerWidgets>::iterator i = playerWidgets.begin(); i != playerWidgets.end(); ++i )
00085 actmap->player[i->pos].email = i->email->GetText();
00086 };