2018-05-06 00:01:36 +02:00

124 lines
2.7 KiB
C++

// ==============================================================
// This file is part of Glest (www.glest.org)
//
// Copyright (C) 2001-2008 Martiño Figueroa
//
// You can redistribute this code 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
// ==============================================================
#ifndef _SHARED_UTIL_LOGGER_H_
#define _SHARED_UTIL_LOGGER_H_
#ifdef WIN32
#include <winsock2.h>
#include <winsock.h>
#endif
#include <string>
#include <deque>
#include "texture.h"
#include "properties.h"
#include "components.h"
#include "leak_dumper.h"
using std::string;
using std::deque;
using Shared::Graphics::Texture2D;
using Shared::Util::Properties;
namespace Glest {
namespace Game {
// =====================================================
// class Logger
//
/// Interface to write log files
// =====================================================
class Logger {
private:
static const int logLineCount;
private:
typedef deque<string> Strings;
private:
string fileName;
string state;
string subtitle;
string current;
Texture2D *loadingTexture;
Properties gameHints;
Properties gameHintsTranslation;
string gameHintToShow;
int progress;
bool showProgressBar;
string statusText;
bool cancelSelected;
GraphicButton buttonCancel;
Vec4f displayColor;
GraphicButton buttonNextHint;
private:
Logger();
~Logger();
public:
static Logger & getInstance();
//void setMasterserverMode(bool value) { masterserverMode = value; }
void setFile(const string &fileName) {
this->fileName = fileName;
}
void setState(const string &state) {
this->state = state;
}
void setSubtitle(const string &subtitle) {
this->subtitle = subtitle;
}
void setProgress(int value) {
this->progress = value;
}
int getProgress() const {
return progress;
}
void showProgress() {
showProgressBar = true;
}
void hideProgress() {
showProgressBar = false;
}
void add(const string str, bool renderScreen = false, const string statusText = "");
void loadLoadingScreen(string filepath);
void loadGameHints(string filePathEnglish, string filePathTranslation, bool clearList);
void renderLoadingScreen();
void setCancelLoadingEnabled(bool value);
bool getCancelLoading() const {
return cancelSelected;
}
void setCancelLoading(bool value) {
cancelSelected = value;
}
void handleMouseClick(int x, int y);
void clearHints();
void clear();
private:
void showNextHint();
};
}
}//end namespace
#endif