99 lines
2.3 KiB
C++
99 lines
2.3 KiB
C++
#pragma once
|
|
|
|
#include <RmlUi/Core.h>
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
// Settings data model
|
|
struct SettingsData {
|
|
bool wifi = true;
|
|
bool bluetooth = false;
|
|
bool airplane_mode = false;
|
|
bool location = true;
|
|
bool dark_mode = true;
|
|
bool notifications = true;
|
|
bool do_not_disturb = false;
|
|
|
|
// User profile
|
|
Rml::String user_name = "User Name";
|
|
Rml::String user_email = "user@example.com";
|
|
|
|
// Device info
|
|
Rml::String wifi_network = "Home_Network";
|
|
int battery_percent = 85;
|
|
Rml::String battery_remaining = "About 12h remaining";
|
|
Rml::String storage_used = "45.2 GB used of 128 GB";
|
|
};
|
|
|
|
// Phone state data model
|
|
struct PhoneData {
|
|
Rml::String dial_number = "";
|
|
bool is_calling = false;
|
|
Rml::String call_contact = "";
|
|
Rml::String call_duration = "00:00";
|
|
};
|
|
|
|
// Messages data model
|
|
struct Message {
|
|
Rml::String from;
|
|
Rml::String text;
|
|
Rml::String time;
|
|
};
|
|
|
|
struct Conversation {
|
|
int id;
|
|
Rml::String name;
|
|
Rml::String color;
|
|
Rml::String last_message;
|
|
Rml::String time;
|
|
int unread;
|
|
std::vector<Message> messages;
|
|
};
|
|
|
|
// Contact data model
|
|
struct Contact {
|
|
int id;
|
|
Rml::String name;
|
|
Rml::String phone;
|
|
Rml::String email;
|
|
Rml::String color;
|
|
Rml::String initial;
|
|
};
|
|
|
|
// Browser data model
|
|
struct BrowserTab {
|
|
Rml::String url;
|
|
Rml::String title;
|
|
bool is_loading;
|
|
};
|
|
|
|
struct BrowserData {
|
|
Rml::String current_url = "example.com";
|
|
Rml::String page_title = "Example Domain";
|
|
Rml::String page_content = "This domain is for use in illustrative examples.";
|
|
std::vector<BrowserTab> tabs;
|
|
int current_tab = 0;
|
|
bool can_go_back = false;
|
|
bool can_go_forward = false;
|
|
};
|
|
|
|
// Global data instances
|
|
extern SettingsData g_settings;
|
|
extern PhoneData g_phone;
|
|
extern BrowserData g_browser;
|
|
extern std::vector<Conversation> g_conversations;
|
|
extern std::vector<Contact> g_contacts;
|
|
extern int g_selected_conversation;
|
|
extern int g_selected_contact;
|
|
|
|
// Data model handles
|
|
extern Rml::DataModelHandle g_settings_model;
|
|
extern Rml::DataModelHandle g_phone_model;
|
|
extern Rml::DataModelHandle g_messages_model;
|
|
extern Rml::DataModelHandle g_contacts_model;
|
|
extern Rml::DataModelHandle g_browser_model;
|
|
|
|
// Functions
|
|
void initializeSampleData();
|
|
void setupDataModels(Rml::Context* context);
|