tomato-testing/src/main_screen.hpp

79 lines
1.9 KiB
C++
Raw Normal View History

2023-07-26 12:24:18 +02:00
#pragma once
#include "./screen.hpp"
2023-07-26 12:55:50 +02:00
#include <solanaceae/util/simple_config_model.hpp>
#include <solanaceae/contact/contact_model3.hpp>
#include <solanaceae/message3/registry_message_model.hpp>
2023-07-29 20:51:32 +02:00
#include <solanaceae/message3/message_time_sort.hpp>
2023-07-26 12:55:50 +02:00
#include <solanaceae/plugin/plugin_manager.hpp>
#include <solanaceae/toxcore/tox_event_logger.hpp>
2023-11-13 15:14:30 +01:00
#include "./tox_private_impl.hpp"
2023-07-26 12:55:50 +02:00
2023-07-26 20:09:57 +02:00
#include <solanaceae/tox_contacts/tox_contact_model2.hpp>
#include <solanaceae/tox_messages/tox_message_manager.hpp>
#include <solanaceae/tox_messages/tox_transfer_manager.hpp>
2023-07-26 12:55:50 +02:00
#include "./tox_client.hpp"
#include "./auto_dirty.hpp"
2023-07-26 12:55:50 +02:00
2023-08-02 19:24:51 +02:00
#include "./media_meta_info_loader.hpp"
#include "./tox_avatar_manager.hpp"
2023-08-02 19:24:51 +02:00
2023-07-26 20:09:57 +02:00
#include "./sdlrenderer_texture_uploader.hpp"
2023-07-28 18:03:45 +02:00
#include "./chat_gui4.hpp"
#include "./settings_window.hpp"
#include "./tox_ui_utils.hpp"
2023-11-13 16:23:49 +01:00
#include "./tox_dht_cap_histo.hpp"
2023-07-26 20:09:57 +02:00
2023-07-26 12:24:18 +02:00
#include <string>
2023-07-26 12:55:50 +02:00
#include <iostream>
#include <chrono>
2023-07-26 12:24:18 +02:00
2023-07-26 20:09:57 +02:00
// fwd
extern "C" {
struct SDL_Renderer;
} // C
2023-07-26 12:24:18 +02:00
struct MainScreen final : public Screen {
2023-07-26 20:09:57 +02:00
SDL_Renderer* renderer;
2023-07-26 12:55:50 +02:00
std::chrono::high_resolution_clock::time_point last_time = std::chrono::high_resolution_clock::now();
SimpleConfigModel conf;
Contact3Registry cr;
RegistryMessageModel rmm;
2023-07-29 20:51:32 +02:00
MessageTimeSort mts;
2023-07-26 12:55:50 +02:00
PluginManager pm;
ToxEventLogger tel{std::cout};
ToxClient tc;
2023-11-13 15:14:30 +01:00
ToxPrivateImpl tpi;
AutoDirty ad;
2023-07-26 20:09:57 +02:00
ToxContactModel2 tcm;
ToxMessageManager tmm;
ToxTransferManager ttm;
2023-07-26 12:55:50 +02:00
2023-08-02 19:24:51 +02:00
MediaMetaInfoLoader mmil;
ToxAvatarManager tam;
2023-08-02 19:24:51 +02:00
2023-07-26 20:09:57 +02:00
SDLRendererTextureUploader sdlrtu;
2023-07-26 12:55:50 +02:00
//OpenGLTextureUploader ogltu;
2023-07-28 18:03:45 +02:00
ChatGui4 cg;
SettingsWindow sw;
ToxUIUtils tuiu;
2023-11-13 16:23:49 +01:00
ToxDHTCapHisto tdch;
2023-07-26 12:55:50 +02:00
MainScreen(SDL_Renderer* renderer_, std::string save_path, std::string save_password, std::vector<std::string> plugins);
2023-07-26 20:09:57 +02:00
~MainScreen(void);
2023-07-26 12:24:18 +02:00
2023-07-30 15:10:26 +02:00
bool handleEvent(SDL_Event& e) override;
2023-07-26 12:24:18 +02:00
// return nullptr if not next
// sets bool quit to true if exit
Screen* poll(bool&) override;
};