source/code/editor/editorMain.cpp
browsing at commit = 4b0c248f43d02f694110494e8164eabaad30d84d
/*
editorMain.cpp
Copyright (C) 2007 Poul Sander
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Poul Sander
Rævehøjvej 36, V. 1111
2800 Kgs. Lyngby
DENMARK
blockattack@poulsander.com
*/
#include "editorMain.hpp"
EditorInterface ei;
//How to write!
inline void DrawIMG(SDL_Surface *img, SDL_Surface *target, int x, int y)
{
SDL_Rect dest;
dest.x = x;
dest.y = y;
SDL_BlitSurface(img, NULL, target, &dest);
}
class createFileButton : public aButton
{
public:
createFileButton()
{
aButton::aButton(100,100,bCreateFile);
}
void click(int x,int y)
{
if(clicked(x,y))
{
ei.newBoard();
}
}
};
class deletePuzzleButton : public aButton
{
public:
deletePuzzleButton()
{
aButton::aButton(240,100,bDeletePuzzle);
}
void click(int x,int y)
{
if(clicked(x,y))
{
ei.deleteBoard();
}
}
};
class loadFileButton : public aButton
{
public:
loadFileButton()
{
aButton::aButton(240,100,bLoadFile);
}
void click(int x,int y)
{
if(clicked(x,y))
{
//Thing to load file!
}
}
};
class moveBackButton : public aButton
{
public:
moveBackButton()
{
aButton::aButton(240,100,bMoveBack);
}
void click(int x,int y)
{
if(clicked(x,y))
{
ei.moveBoardBack();
}
}
};
class moveDownButton : public aButton
{
public:
moveDownButton()
{
aButton::aButton(240,100,bMoveDown);
}
void click(int x,int y)
{
if(clicked(x,y))
{
if(ei.getNumberOfMoves()>0)
ei.setNumberOfMoves(ei.getNumberOfMoves()-1);
}
}
};
theEditor::theEditor()
{
//This is the constructor
createFileButton cb;
buttons.push_back(cb);
deletePuzzleButton dpb;
buttons.push_back(dpb);
}
void theEditor::drawButtons()
{
for(int i = 0;i<buttons.size(); i++)
{
(&(buttons[i]))->draw();
}
}
void aButton::click(int x, int y)
{
cout << "Error: aButtons's click command was executed!" << endl;
}
void aButton::draw()
{
DrawIMG(label,screen,x,y);
}
void theEditor::click(int x, int y)
{
for(int i = 0;i<buttons.size(); i++)
{
(&(buttons[i]))->click(x,y);
}
}