This repository has been archived on 2025-03-20. You can view files and clone it, but cannot push or open issues or pull requests.
The-Powder-Toy/src/gui/preview/PreviewView.h
Tamás Bálint Misius 4f0c365e05
Preprocessor purge round 19: Split and minimize usage of Config.h
Also mostly banish it from other headers, and shuffle standard header includes to minimize cross-contamination between headers.
2023-01-27 09:27:32 +01:00

83 lines
2.1 KiB
C++

#pragma once
#include "common/String.h"
#include "gui/interface/Window.h"
#include <vector>
#include <set>
namespace ui
{
class Button;
class CopyTextButton;
class Label;
class Textbox;
class ScrollPanel;
class AvatarButton;
}
class VideoBuffer;
class PreviewModel;
class PreviewController;
class PreviewView: public ui::Window
{
PreviewController * c;
VideoBuffer * savePreview;
ui::Button * openButton;
ui::Button * browserOpenButton;
ui::Button * favButton;
ui::Button * reportButton;
ui::Button * submitCommentButton;
ui::Textbox * addCommentBox;
ui::Label * commentWarningLabel;
ui::Label * saveNameLabel;
ui::Label * authorDateLabel;
ui::AvatarButton * avatarButton;
ui::Label * pageInfo;
ui::Label * saveDescriptionLabel;
ui::Label * viewsLabel;
ui::Label * saveIDLabel;
ui::Label * saveIDLabel2;
ui::CopyTextButton * saveIDButton;
ui::ScrollPanel * commentsPanel;
std::vector<ui::Component*> commentComponents;
std::vector<ui::Component*> commentTextComponents;
int votesUp;
int votesDown;
bool userIsAuthor;
bool doOpen;
bool doError;
String doErrorMessage;
bool showAvatars;
bool prevPage;
int commentBoxHeight;
float commentBoxPositionX;
float commentBoxPositionY;
float commentBoxSizeX;
float commentBoxSizeY;
bool commentHelpText;
std::set<String> swearWords;
void displayComments();
void commentBoxAutoHeight();
void submitComment();
bool CheckSwearing(String text);
void CheckComment();
public:
void AttachController(PreviewController * controller);
PreviewView();
void NotifySaveChanged(PreviewModel * sender);
void NotifyCommentsChanged(PreviewModel * sender);
void NotifyCommentsPageChanged(PreviewModel * sender);
void NotifyCommentBoxEnabledChanged(PreviewModel * sender);
void SaveLoadingError(String errorMessage);
void OnDraw() override;
void DoDraw() override;
void OnTick(float dt) override;
void OnTryExit(ExitMethod method) override;
void OnMouseWheel(int x, int y, int d) override;
void OnMouseUp(int x, int y, unsigned int button) override;
void OnKeyPress(int key, int scan, bool repeat, bool shift, bool ctrl, bool alt) override;
virtual ~PreviewView();
};