MegaGlest Forum
Archives (read only) => Vanilla Glest => Linux and other ports => Topic started by: pseudonym404 on 23 January 2006, 11:17:46
-
This patch (against current Glest CVS) does a few (trivial) things:
Allows the tools to be built using unicode or non-unicode wxWidgets (tested with unicode & non-unicode builds of wxGTK 2.6.2 on Fedora Core 4)
Adds some double casts to pow statements in the map editor source (gcc4 has a tantrum trying to pass int to functions that take double)
Changes the way onPaint gets called from mouse event handlers (gcc4 tantrums again)
Removes glCanvas onPaint handler in g3d_viewer (solves a GLXBadDrawable error - function seems to be superfluous, window updates fine without it)
Adds g3d_viewer to the linux build system
diff -urN glest.orig/mk/linux/autogen.sh glest/mk/linux/autogen.sh
--- glest.orig/mk/linux/autogen.sh 2006-01-23 09:24:55.000000000 +0000
+++ glest/mk/linux/autogen.sh 2006-01-22 17:55:11.000000000 +0000
@@ -34,4 +34,6 @@
if [ ! -d glest_map_editor ]; then
ln -sf ../../source/glest_map_editor .
fi
-
+if [ ! -d g3d_viewer ]; then
+ ln -sf ../../source/g3d_viewer .
+fi
diff -urN glest.orig/mk/linux/configure.ac glest/mk/linux/configure.ac
--- glest.orig/mk/linux/configure.ac 2006-01-23 09:24:55.000000000 +0000
+++ glest/mk/linux/configure.ac 2006-01-22 15:46:37.000000000 +0000
@@ -134,7 +134,7 @@
XIPH_PATH_OGG(, [AC_MSG_ERROR([Please install ogg/vorbis])])
AM_OPTIONS_WXCONFIG
-AM_PATH_WXCONFIG([2.6.0], [WX_AVAILABLE="yes"], [WX_AVAILABLE="no"], [std,gl], [--unicode=no])
+AM_PATH_WXCONFIG([2.6.0], [WX_AVAILABLE="yes"], [WX_AVAILABLE="no"], [std,gl])
AC_SUBST([WX_AVAILABLE])
AC_INIT_JAM
diff -urN glest.orig/mk/linux/Jamfile glest/mk/linux/Jamfile
--- glest.orig/mk/linux/Jamfile 2006-01-23 09:24:55.000000000 +0000
+++ glest/mk/linux/Jamfile 2006-01-22 17:52:53.000000000 +0000
@@ -46,3 +46,18 @@
ExternalLibs glest_map_editor : SDL GL GLU XERCES VORBIS VORBISFILE OGG OPENAL WX ;
IncludeDir glest_map_editor : ../shared_lib/include/$(LIB_INCLUDE_DIRS) $(GLEST_MAP_DIRS) ;
}
+
+#### Viewer ####
+if $(WX_AVAILABLE) = "yes" {
+ SubDir TOP g3d_viewer ;
+
+ G3D_VIEWER_DIR = . ;
+ for i in $(GLEST_DIRS) {
+ G3D_VIEWER_SOURCES += [ Wildcard $(i) : *.cpp *.h ] ;
+ }
+
+ Application g3d_viewer : $(G3D_VIEWER_SOURCES) ;
+ LinkWith g3d_viewer : glestlib ;
+ ExternalLibs g3d_viewer : SDL GL GLU XERCES VORBIS VORBISFILE OGG OPENAL WX ;
+ IncludeDir g3d_viewer : ../shared_lib/include/$(LIB_INCLUDE_DIRS) $(G3D_VIEWER_DIR) ;
+}
diff -urN glest.orig/source/g3d_viewer/main.cpp glest/source/g3d_viewer/main.cpp
--- glest.orig/source/g3d_viewer/main.cpp 2006-01-23 09:24:54.000000000 +0000
+++ glest/source/g3d_viewer/main.cpp 2006-01-23 10:42:50.000000000 +0000
@@ -1,6 +1,5 @@
#include "main.h"
-#include "graphics_factory_basic_gl.h"
#include "graphics_interface.h"
#include "util.h"
@@ -8,6 +7,13 @@
using namespace Shared::Graphics;
using namespace Shared::Graphics::Gl;
using namespace Shared::Util;
+using std::exception;
+
+#if (wxUSE_UNICODE == 1)
+#define STRCONV(x) wxConvUTF8.cMB2WC(x)
+#else
+#define STRCONV(x) x
+#endif
namespace Shared{ namespace G3dViewer{
@@ -20,7 +26,7 @@
MainWindow::MainWindow(const string &modelPath):
wxFrame(
- NULL, -1, winHeader.c_str(),
+ NULL, -1, STRCONV(winHeader.c_str()),
wxPoint(Renderer::windowX, Renderer::windowY),
wxSize(Renderer::windowW, Renderer::windowH))
{
@@ -33,38 +39,33 @@
glCanvas = new GlCanvas(this);
- glCanvas->SetCurrent();
-
- renderer->init();
-
-
menu= new wxMenuBar();
//menu
menuFile= new wxMenu();
- menuFile->Append(miFileLoad, "Load");
- menu->Append(menuFile, "File");
+ menuFile->Append(miFileLoad, wxT("Load"));
+ menu->Append(menuFile, wxT("File"));
//mode
menuMode= new wxMenu();
- menuMode->AppendCheckItem(miModeNormals, "Normals");
- menuMode->AppendCheckItem(miModeWireframe, "Wireframe");
- menuMode->AppendCheckItem(miModeGrid, "Grid");
- menu->Append(menuMode, "Mode");
+ menuMode->AppendCheckItem(miModeNormals, wxT("Normals"));
+ menuMode->AppendCheckItem(miModeWireframe, wxT("Wireframe"));
+ menuMode->AppendCheckItem(miModeGrid, wxT("Grid"));
+ menu->Append(menuMode, wxT("Mode"));
//mode
menuSpeed= new wxMenu();
- menuSpeed->Append(miSpeedSlower, "Slower");
- menuSpeed->Append(miSpeedFaster, "Faster");
- menu->Append(menuSpeed, "Speed");
+ menuSpeed->Append(miSpeedSlower, wxT("Slower"));
+ menuSpeed->Append(miSpeedFaster, wxT("Faster"));
+ menu->Append(menuSpeed, wxT("Speed"));
//custom color
menuCustomColor= new wxMenu();
- menuCustomColor->AppendCheckItem(miColorRed, "Red");
- menuCustomColor->AppendCheckItem(miColorBlue, "Blue");
- menuCustomColor->AppendCheckItem(miColorYellow, "Yellow");
- menuCustomColor->AppendCheckItem(miColorGreen, "Green");
- menu->Append(menuCustomColor, "Custom Color");
+ menuCustomColor->AppendCheckItem(miColorRed, wxT("Red"));
+ menuCustomColor->AppendCheckItem(miColorBlue, wxT("Blue"));
+ menuCustomColor->AppendCheckItem(miColorYellow, wxT("Yellow"));
+ menuCustomColor->AppendCheckItem(miColorGreen, wxT("Green"));
+ menu->Append(menuCustomColor, wxT("Custom Color"));
menuMode->Check(miModeGrid, true);
menuCustomColor->Check(miColorRed, true);
@@ -85,11 +86,16 @@
timer = new wxTimer(this);
timer->Start(40);
+}
+
+void MainWindow::init(){
+ glCanvas->SetCurrent();
+ renderer->init();
if(!modelPath.empty()){
Model *tmpModel= new ModelGl();
renderer->loadTheModel(tmpModel, modelPath);
model= tmpModel;
- GetStatusBar()->SetStatusText(getModelInfo().c_str());
+ GetStatusBar()->SetStatusText(STRCONV(getModelInfo().c_str()));
}
}
@@ -121,12 +127,14 @@
if(event.LeftIsDown()){
rotX+= clamp(lastX-x, -10, 10);
rotY+= clamp(lastY-y, -10, 10);
- onPaint(wxPaintEvent());
+ wxPaintEvent paint =* new wxPaintEvent();
+ onPaint(paint);
}
else if(event.RightIsDown()){
zoom*= 1.0f+(lastX-x+lastY-y)/100.0f;
zoom= clamp(zoom, 0.1f, 10.0f);
- onPaint(wxPaintEvent());
+ wxPaintEvent paint =* new wxPaintEvent();
+ onPaint(paint);
}
lastX= x;
@@ -136,13 +144,14 @@
void MainWindow::onMenuFileLoad(wxCommandEvent &event){
string fileName;
wxFileDialog fileDialog(this);
- fileDialog.SetWildcard("G3D files (*.g3d)|*.g3d");
+ fileDialog.SetWildcard(wxT("G3D files (*.g3d)|*.g3d"));
if(fileDialog.ShowModal()==wxID_OK){
delete model;
Model *tmpModel= new ModelGl();
- renderer->loadTheModel(tmpModel, fileDialog.GetPath().c_str());
+ fileName=wxFNCONV(fileDialog.GetPath());
+ renderer->loadTheModel(tmpModel, fileName);
model= tmpModel;
- GetStatusBar()->SetStatusText(getModelInfo().c_str());
+ GetStatusBar()->SetStatusText(STRCONV(getModelInfo().c_str()));
}
}
@@ -206,7 +215,8 @@
if(anim>1.0f){
anim-= 1.f;
}
- onPaint(wxPaintEvent());
+ wxPaintEvent paint =* new wxPaintEvent();
+ onPaint(paint);
}
string MainWindow::getModelInfo(){
@@ -254,13 +264,8 @@
mainWindow->onMouseMove(event);
}
-void GlCanvas::onPaint(wxPaintEvent &event){
- mainWindow->onPaint(event);
-}
-
BEGIN_EVENT_TABLE(GlCanvas, wxGLCanvas)
EVT_MOTION(GlCanvas::onMouseMove)
- EVT_PAINT(GlCanvas::onPaint)
END_EVENT_TABLE()
// ===============================================
@@ -270,11 +275,12 @@
bool App::OnInit(){
string modelPath;
if(argc==2){
- modelPath= argv[1];
+ modelPath= wxFNCONV(argv[1]);
}
mainWindow= new MainWindow(modelPath);
mainWindow->Show();
+ mainWindow->init();
return true;
}
@@ -283,9 +289,9 @@
return wxApp::MainLoop();
}
catch(const exception &e){
- wxMessageDialog(NULL, e.what(), "Exception", wxOK | wxICON_ERROR).ShowModal();
- return 0;
+ wxMessageDialog(NULL, STRCONV(e.what()), wxT("Exception"), wxOK | wxICON_ERROR).ShowModal();
}
+ return 0;
}
int App::OnExit(){
diff -urN glest.orig/source/g3d_viewer/main.h glest/source/g3d_viewer/main.h
--- glest.orig/source/g3d_viewer/main.h 2006-01-23 09:24:54.000000000 +0000
+++ glest/source/g3d_viewer/main.h 2006-01-22 20:36:42.000000000 +0000
@@ -3,6 +3,8 @@
#include <string>
+#include "graphics_factory_basic_gl.h"
+
#include <wx/wx.h>
#include <wx/timer.h>
#include <wx/glcanvas.h>
@@ -11,8 +13,8 @@
#include "util.h"
#include "window.h"
-using Shared::Platform::Window;
-using Shared::Platform::MouseState;
+//using Shared::Platform::Window;
+//using Shared::Platform::MouseState;
using std::string;
@@ -70,6 +72,8 @@
MainWindow(const string &modelPath);
~MainWindow();
+ void init();
+
void Notify();
void onPaint(wxPaintEvent &event);
@@ -102,7 +106,6 @@
GlCanvas(MainWindow *mainWindow);
void onMouseMove(wxMouseEvent &event);
- void onPaint(wxPaintEvent &event);
private:
MainWindow *mainWindow;
diff -urN glest.orig/source/glest_map_editor/main.cpp glest/source/glest_map_editor/main.cpp
--- glest.orig/source/glest_map_editor/main.cpp 2006-01-23 09:24:54.000000000 +0000
+++ glest/source/glest_map_editor/main.cpp 2006-01-23 10:40:13.000000000 +0000
@@ -4,6 +4,12 @@
#include "conversion.h"
+#if (wxUSE_UNICODE == 1)
+#define STRCONV(x) wxConvUTF8.cMB2WC(x)
+#else
+#define STRCONV(x) x
+#endif
+
using namespace Shared::Util;
using namespace std;
@@ -18,7 +24,7 @@
// ===============================================
MainWindow::MainWindow():
- wxFrame(NULL, -1, winHeader.c_str())
+ wxFrame(NULL, -1, STRCONV(winHeader.c_str()))
{
lastX= 0;
lastY= 0;
@@ -40,34 +46,34 @@
//file
menuFile= new wxMenu();
- menuFile->Append(miFileLoad, "Load");
+ menuFile->Append(miFileLoad, wxT("Load"));
menuFile->AppendSeparator();
- menuFile->Append(miFileSave, "Save");
- menuFile->Append(miFileSaveAs, "Save As");
+ menuFile->Append(miFileSave, wxT("Save"));
+ menuFile->Append(miFileSaveAs, wxT("Save As"));
menuFile->AppendSeparator();
- menuFile->Append(miFileExit, "Exit");
- menuBar->Append(menuFile, "File");
+ menuFile->Append(miFileExit, wxT("Exit"));
+ menuBar->Append(menuFile, wxT("File"));
//edit
menuEdit= new wxMenu();
- menuEdit->Append(miEditReset, "Reset");
- menuEdit->Append(miEditResetPlayers, "Reset Players");
- menuEdit->Append(miEditResize, "Resize");
- menuEdit->Append(miEditFlipX, "Flip X");
- menuEdit->Append(miEditFlipY, "Flip Y");
- menuEdit->Append(miEditRandomizeHeights, "Randomize Heights");
- menuEdit->Append(miEditRandomize, "Randomize");
- menuEdit->Append(miEditSwitchSurfaces, "Switch Surfaces");
- menuEdit->Append(miEditInfo, "Info");
- menuEdit->Append(miEditAdvanced, "Advanced");
- menuBar->Append(menuEdit, "Edit");
+ menuEdit->Append(miEditReset, wxT("Reset"));
+ menuEdit->Append(miEditResetPlayers, wxT("Reset Players"));
+ menuEdit->Append(miEditResize, wxT("Resize"));
+ menuEdit->Append(miEditFlipX, wxT("Flip X"));
+ menuEdit->Append(miEditFlipY, wxT("Flip Y"));
+ menuEdit->Append(miEditRandomizeHeights, wxT("Randomize Heights"));
+ menuEdit->Append(miEditRandomize, wxT("Randomize"));
+ menuEdit->Append(miEditSwitchSurfaces, wxT("Switch Surfaces"));
+ menuEdit->Append(miEditInfo, wxT("Info"));
+ menuEdit->Append(miEditAdvanced, wxT("Advanced"));
+ menuBar->Append(menuEdit, wxT("Edit"));
//misc
menuMisc= new wxMenu();
- menuMisc->Append(miMiscResetZoomAndPos, "Reset zoom and pos");
- menuMisc->Append(miMiscAbout, "About");
- menuMisc->Append(miMiscHelp, "Help");
- menuBar->Append(menuMisc, "Misc");
+ menuMisc->Append(miMiscResetZoomAndPos, wxT("Reset zoom and pos"));
+ menuMisc->Append(miMiscAbout, wxT("About"));
+ menuMisc->Append(miMiscHelp, wxT("Help"));
+ menuBar->Append(menuMisc, wxT("Misc"));
//brush
menuBrush= new wxMenu();
@@ -75,62 +81,62 @@
//height
menuBrushHeight= new wxMenu();
for(int i=0; i<heightCount; ++i){
- menuBrushHeight->AppendCheckItem(miBrushHeight+i+1, intToStr(i-heightCount/2).c_str());
+ menuBrushHeight->AppendCheckItem(miBrushHeight+i+1, wxString::Format(wxT("%d"),i-heightCount/2));
}
menuBrushHeight->Check(miBrushHeight + 1 + heightCount/2, true);
- menuBrush->Append(miBrushHeight, "Height", menuBrushHeight);
+ menuBrush->Append(miBrushHeight, wxT("Height"), menuBrushHeight);
//surface
menuBrushSurface= new wxMenu();
- menuBrushSurface->AppendCheckItem(miBrushSurface+1, "1 - Grass");
- menuBrushSurface->AppendCheckItem(miBrushSurface+2, "2 - Secondary Grass");
- menuBrushSurface->AppendCheckItem(miBrushSurface+3, "3 - Road");
- menuBrushSurface->AppendCheckItem(miBrushSurface+4, "4 - Stone");
- menuBrushSurface->AppendCheckItem(miBrushSurface+5, "5 - Custom");
- menuBrush->Append(miBrushSurface, "Surface", menuBrushSurface);
+ menuBrushSurface->AppendCheckItem(miBrushSurface+1, wxT("1 - Grass"));
+ menuBrushSurface->AppendCheckItem(miBrushSurface+2, wxT("2 - Secondary Grass"));
+ menuBrushSurface->AppendCheckItem(miBrushSurface+3, wxT("3 - Road"));
+ menuBrushSurface->AppendCheckItem(miBrushSurface+4, wxT("4 - Stone"));
+ menuBrushSurface->AppendCheckItem(miBrushSurface+5, wxT("5 - Custom"));
+ menuBrush->Append(miBrushSurface, wxT("Surface"), menuBrushSurface);
//objects
menuBrushObject= new wxMenu();
- menuBrushObject->AppendCheckItem(miBrushObject+1, "0 - None");
- menuBrushObject->AppendCheckItem(miBrushObject+2, "1 - Tree");
- menuBrushObject->AppendCheckItem(miBrushObject+3, "2 - Dead Tree");
- menuBrushObject->AppendCheckItem(miBrushObject+4, "3 - Stone");
- menuBrushObject->AppendCheckItem(miBrushObject+5, "4 - Bush");
- menuBrushObject->AppendCheckItem(miBrushObject+6, "5 - Water Object");
- menuBrushObject->AppendCheckItem(miBrushObject+7, "6 - Custom 1");
- menuBrushObject->AppendCheckItem(miBrushObject+8, "7 - Custom 2");
- menuBrushObject->AppendCheckItem(miBrushObject+9, "8 - Custom 3");
- menuBrushObject->AppendCheckItem(miBrushObject+10, "9 - Custom 4");
- menuBrushObject->AppendCheckItem(miBrushObject+11, "10 - Custom 5");
- menuBrush->Append(miBrushObject, "Object", menuBrushObject);
+ menuBrushObject->AppendCheckItem(miBrushObject+1, wxT("0 - None"));
+ menuBrushObject->AppendCheckItem(miBrushObject+2, wxT("1 - Tree"));
+ menuBrushObject->AppendCheckItem(miBrushObject+3, wxT("2 - Dead Tree"));
+ menuBrushObject->AppendCheckItem(miBrushObject+4, wxT("3 - Stone"));
+ menuBrushObject->AppendCheckItem(miBrushObject+5, wxT("4 - Bush"));
+ menuBrushObject->AppendCheckItem(miBrushObject+6, wxT("5 - Water Object"));
+ menuBrushObject->AppendCheckItem(miBrushObject+7, wxT("6 - Custom 1"));
+ menuBrushObject->AppendCheckItem(miBrushObject+8, wxT("7 - Custom 2"));
+ menuBrushObject->AppendCheckItem(miBrushObject+9, wxT("8 - Custom 3"));
+ menuBrushObject->AppendCheckItem(miBrushObject+10, wxT("9 - Custom 4"));
+ menuBrushObject->AppendCheckItem(miBrushObject+11, wxT("10 - Custom 5"));
+ menuBrush->Append(miBrushObject, wxT("Object"), menuBrushObject);
//resources
menuBrushResource= new wxMenu();
- menuBrushResource->AppendCheckItem(miBrushResource+1, "0 - None");
- menuBrushResource->AppendCheckItem(miBrushResource+2, "1 - Custom 1");
- menuBrushResource->AppendCheckItem(miBrushResource+3, "2 - Custom 2");
- menuBrushResource->AppendCheckItem(miBrushResource+4, "3 - Custom 3");
- menuBrushResource->AppendCheckItem(miBrushResource+5, "4 - Custom 4");
- menuBrushResource->AppendCheckItem(miBrushResource+6, "5 - Custom 5");
- menuBrush->Append(miBrushResource, "Resource", menuBrushResource);
+ menuBrushResource->AppendCheckItem(miBrushResource+1, wxT("0 - None"));
+ menuBrushResource->AppendCheckItem(miBrushResource+2, wxT("1 - Custom 1"));
+ menuBrushResource->AppendCheckItem(miBrushResource+3, wxT("2 - Custom 2"));
+ menuBrushResource->AppendCheckItem(miBrushResource+4, wxT("3 - Custom 3"));
+ menuBrushResource->AppendCheckItem(miBrushResource+5, wxT("4 - Custom 4"));
+ menuBrushResource->AppendCheckItem(miBrushResource+6, wxT("5 - Custom 5"));
+ menuBrush->Append(miBrushResource, wxT("Resource"), menuBrushResource);
//players
menuBrushStartLocation= new wxMenu();
- menuBrushStartLocation->AppendCheckItem(miBrushStartLocation+1, "1 - Player 1");
- menuBrushStartLocation->AppendCheckItem(miBrushStartLocation+2, "2 - Player 2");
- menuBrushStartLocation->AppendCheckItem(miBrushStartLocation+3, "3 - Player 3");
- menuBrushStartLocation->AppendCheckItem(miBrushStartLocation+4, "4 - Player 4");
- menuBrush->Append(miBrushStartLocation, "Player", menuBrushStartLocation);
+ menuBrushStartLocation->AppendCheckItem(miBrushStartLocation+1, wxT("1 - Player 1"));
+ menuBrushStartLocation->AppendCheckItem(miBrushStartLocation+2, wxT("2 - Player 2"));
+ menuBrushStartLocation->AppendCheckItem(miBrushStartLocation+3, wxT("3 - Player 3"));
+ menuBrushStartLocation->AppendCheckItem(miBrushStartLocation+4, wxT("4 - Player 4"));
+ menuBrush->Append(miBrushStartLocation, wxT("Player"), menuBrushStartLocation);
- menuBar->Append(menuBrush, "Brush");
+ menuBar->Append(menuBrush, wxT("Brush"));
//radius
menuRadius= new wxMenu();
for(int i=0; i<radiusCount; ++i){
- menuRadius->AppendCheckItem(miRadius+i, intToStr(i+1).c_str());
+ menuRadius->AppendCheckItem(miRadius+i, wxString::Format(wxT("%d"),i+1));
}
menuRadius->Check(miRadius, true);
- menuBar->Append(menuRadius, "Radius");
+ menuBar->Append(menuRadius, wxT("Radius"));
SetMenuBar(menuBar);
}
@@ -154,7 +160,8 @@
program->setRefAlt(event.GetX(), event.GetY());
change(event.GetX(), event.GetY());
}
- onPaint(wxPaintEvent());
+ wxPaintEvent paint =* new wxPaintEvent();
+ onPaint(paint);
}
void MainWindow::onMouseMove(wxMouseEvent &event){
@@ -177,10 +184,15 @@
}
lastX= x;
lastY= y;
- onPaint(wxPaintEvent());
+ wxPaintEvent paint =* new wxPaintEvent();
+ onPaint(paint);
}
void MainWindow::onPaint(wxPaintEvent &event){
+
+ //Creating this objects tells wxWidgets that the invalid regions in the window have been repainted so that the windowing system won't keep sending paint events ad infinitum.
+ wxPaintDC dc(this);
+
program->renderMap(GetClientSize().x, GetClientSize().y);
glCanvas->SwapBuffers();
@@ -190,19 +202,20 @@
string fileName;
wxFileDialog fileDialog(this);
- fileDialog.SetWildcard("Glest Binary Map (*.gbm)|*.gbm");
+ fileDialog.SetWildcard(wxT("Glest Binary Map (*.gbm)|*.gbm"));
if(fileDialog.ShowModal()==wxID_OK){
- fileName= fileDialog.GetPath();
+ fileName= wxFNCONV(fileDialog.GetPath());
program->loadMap(fileName);
}
currentFile= fileName;
- SetTitle((winHeader + "; " + currentFile).c_str());
+ wxString newWinHeader = wxString(wxT("")) << STRCONV(winHeader.c_str()) << wxT("; ") << STRCONV(currentFile.c_str());
+ SetTitle(newWinHeader);
}
void MainWindow::onMenuFileSave(wxCommandEvent &event){
if(currentFile.empty()){
- onMenuFileSaveAs(wxCommandEvent());
+ onMenuFileSaveAs(event);
}
else{
program->saveMap(currentFile);
@@ -212,15 +225,16 @@
void MainWindow::onMenuFileSaveAs(wxCommandEvent &event){
string fileName;
- wxFileDialog fileDialog(this, "Select file", "", "", "*.gbm", wxSAVE);
- fileDialog.SetWildcard("Glest Binary Map (*.gbm)|*.gbm");
+ wxFileDialog fileDialog(this, wxT("Select file"), wxT(""), wxT(""), wxT("*.gbm"), wxSAVE);
+ fileDialog.SetWildcard(wxT("Glest Binary Map (*.gbm)|*.gbm"));
if(fileDialog.ShowModal()==wxID_OK){
- fileName= fileDialog.GetPath();
+ fileName= wxFNCONV(fileDialog.GetPath());
program->saveMap(fileName);
}
currentFile= fileName;
- SetTitle((winHeader + "; " + currentFile).c_str());
+ wxString newWinHeader = wxString(wxT("")) << STRCONV(winHeader.c_str()) << wxT("; ") << STRCONV(currentFile.c_str());
+ SetTitle(newWinHeader);
}
void MainWindow::onMenuFileExit(wxCommandEvent &event){
@@ -243,7 +257,7 @@
strToInt(simpleDialog.getValue("Surface")));
}
catch(const exception &e){
- wxMessageDialog(NULL, e.what(), "Exception", wxOK | wxICON_ERROR).ShowModal();
+ wxMessageDialog(NULL, STRCONV(e.what()), wxT("Exception"), wxOK | wxICON_ERROR).ShowModal();
}
}
@@ -257,7 +271,7 @@
program->resetPlayers(strToInt(simpleDialog.getValue("Players")));
}
catch(const exception &e){
- wxMessageDialog(NULL, e.what(), "Exception", wxOK | wxICON_ERROR).ShowModal();
+ wxMessageDialog(NULL, STRCONV(e.what()), wxT("Exception"), wxOK | wxICON_ERROR).ShowModal();
}
}
@@ -277,7 +291,7 @@
strToInt(simpleDialog.getValue("Surface")));
}
catch(const exception &e){
- wxMessageDialog(NULL, e.what(), "Exception", wxOK | wxICON_ERROR).ShowModal();
+ wxMessageDialog(NULL, STRCONV(e.what()), wxT("Exception"), wxOK | wxICON_ERROR).ShowModal();
}
}
@@ -309,7 +323,7 @@
strToInt(simpleDialog.getValue("Surface2")));
}
catch(const exception &e){
- wxMessageDialog(NULL, e.what(), "Exception", wxOK | wxICON_ERROR).ShowModal();
+ wxMessageDialog(NULL, STRCONV(e.what()), wxT("Exception"), wxOK | wxICON_ERROR).ShowModal();
}
}
@@ -339,7 +353,7 @@
strToInt(simpleDialog.getValue("Water Level")));
}
catch(const exception &e){
- wxMessageDialog(NULL, e.what(), "Exception", wxOK | wxICON_ERROR).ShowModal();
+ wxMessageDialog(NULL, STRCONV(e.what()), wxT("Exception"), wxOK | wxICON_ERROR).ShowModal();
}
}
@@ -348,11 +362,11 @@
}
void MainWindow::onMenuMiscAbout(wxCommandEvent &event){
- wxMessageDialog(NULL, "Glest Map Editor - Copyright 2004 The Glest Team", "About").ShowModal();
+ wxMessageDialog(NULL, wxT("Glest Map Editor - Copyright 2004 The Glest Team"), wxT("About")).ShowModal();
}
void MainWindow::onMenuMiscHelp(wxCommandEvent &event){
- wxMessageDialog(NULL, "Left mouse click: draw\nRight mouse drag: move\nCenter mouse drag: zoom", "Help").ShowModal();
+ wxMessageDialog(NULL, wxT("Left mouse click: draw\nRight mouse drag: move\nCenter mouse drag: zoom"), wxT("Help")).ShowModal();
}
void MainWindow::onMenuBrushHeight(wxCommandEvent &event){
@@ -471,6 +485,7 @@
EVT_MENU_RANGE(miBrushResource+1, miBrushResource+resourceCount, MainWindow::onMenuBrushResource)
EVT_MENU_RANGE(miBrushStartLocation+1, miBrushStartLocation+startLocationCount, MainWindow::onMenuBrushStartLocation)
EVT_MENU_RANGE(miRadius, miRadius+radiusCount, MainWindow::onMenuRadius)
+ EVT_PAINT(MainWindow::onPaint)
END_EVENT_TABLE()
// =====================================================
@@ -515,15 +530,15 @@
void SimpleDialog::show(){
- Create(NULL, -1, "Edit Values");
+ Create(NULL, -1, wxT("Edit Values"));
wxSizer *sizer= new wxFlexGridSizer(2);
vector<wxTextCtrl*> texts;
for(Values::iterator it= values.begin(); it!=values.end(); ++it){
- sizer->Add(new wxStaticText(this, -1, it->first.c_str()), 0, wxALL, 5);
- wxTextCtrl *text= new wxTextCtrl(this, -1, it->second.c_str());
+ sizer->Add(new wxStaticText(this, -1, STRCONV(it->first.c_str())), 0, wxALL, 5);
+ wxTextCtrl *text= new wxTextCtrl(this, -1, STRCONV(it->second.c_str()));
sizer->Add(text, 0, wxALL, 5);
texts.push_back(text);
}
@@ -532,7 +547,7 @@
ShowModal();
for(int i=0; i<texts.size(); ++i){
- values[i].second= texts[i]->GetValue();
+ values[i].second= wxFNCONV(texts[i]->GetValue());
}
}
@@ -552,7 +567,7 @@
return wxApp::MainLoop();
}
catch(const exception &e){
- wxMessageDialog(NULL, e.what(), "Exception", wxOK | wxICON_ERROR).ShowModal();
+ wxMessageDialog(NULL, STRCONV(e.what()), wxT("Exception"), wxOK | wxICON_ERROR).ShowModal();
}
return 0;
}
diff -urN glest.orig/source/glest_map_editor/map.cpp glest/source/glest_map_editor/map.cpp
--- glest.orig/source/glest_map_editor/map.cpp 2006-01-23 09:24:54.000000000 +0000
+++ glest/source/glest_map_editor/map.cpp 2006-01-23 09:43:50.000000000 +0000
@@ -65,7 +65,7 @@
for (int i=x-radius+1; i<x+radius; i++){
for (int j=y-radius+1; j<y+radius; j++){
if (inside(i, j)){
- int dist= static_cast<int>(sqrt(pow(i-x, 2)+pow(j-y, 2)));
+ int dist= static_cast<int>(sqrt(pow((double)(i-x), (double)2)+pow((double)(j-y), (double)2)));
if (radius>dist){
int oldAlt= static_cast<int>(cells[i][j].height);
int altInc= height * (radius-dist-1)/radius;
@@ -148,7 +148,7 @@
for (i=x-radius+1; i<x+radius; i++){
for (j=y-radius+1; j<y+radius; j++){
if (inside(i, j)){
- dist= (int) sqrt(pow(i-x, 2)+pow(j-y, 2));
+ dist= (int) sqrt(pow((double)(i-x), (double)2)+pow((double)(j-y), (double)2));
if (radius>=dist){
cells[i][j].surface= surface;
}
@@ -164,7 +164,7 @@
for (i=x-radius+1; i<x+radius; i++){
for (j=y-radius+1; j<y+radius; j++){
if (inside(i, j)){
- dist= (int) sqrt(pow(i-x, 2)+pow(j-y, 2));
+ dist= (int) sqrt(pow((double)(i-x), (double)2)+pow((double)(j-y), (double)2));
if (radius>=dist){
cells[i][j].object= object;
cells[i][j].resource= 0;
@@ -181,7 +181,7 @@
for (i=x-radius+1; i<x+radius; i++){
for (j=y-radius+1; j<y+radius; j++){
if (inside(i, j)){
- dist= (int) sqrt(pow(i-x, 2)+pow(j-y, 2));
+ dist= (int) sqrt(pow((double)(i-x), (double)2)+pow((double)(j-y), (double)2));
if (radius>=dist){
cells[i][j].resource= resource;
cells[i][j].object= 0;
@@ -306,7 +306,7 @@
//delete old cells
if (oldCells!=NULL){
- for(i=0; i<oldW; i++)
+ for(int i=0; i<oldW; i++)
delete oldCells[i];
delete oldCells;
}
-
Thanks! If we didn´t release the source code for the tools was because we didn´t try it in Linux, so we wanted to make sure that the source was cross platform. I´ll tell Matze to take a look and we will try to release the final soruce as soon as possible.
Regards.
-
I know this thread is really old, but i want to let you know that this patch is still valid more or less. I applied the changes for the g3d_viewer mentioned in this patch and some small other changes. So here is a patch against svn trunk (r191) to enable g3d_viewer for linux:
http://www1.inf.tu-dresden.de/~s1445051/g3d_viewer.patch (http://www1.inf.tu-dresden.de/~s1445051/g3d_viewer.patch)
After patching you need to run autogen.sh and configure before running jam because the build system changed. The binary is called glest_g3dviewer.
Have fun.
EDIT: Can someone move this thread to the ports subforum? ( titi: I did it )