KolibriLib
Loading...
Searching...
No Matches
childWindow.hpp
1#pragma once
2
3#ifndef __CHILDWINDOW_H__
4#define __CHILDWINDOW_H__
5
6
7#include <stdio.h>
8#include <string.h>
9#include <stdlib.h>
10#include <sys/ksys.h>
11
12#include <string>
13#include <vector>
14
15#include "base.hpp"
16#include "UI.hpp"
17#include "window.hpp"
18#include "thread.hpp"
19#include "os.hpp"
20
21
22namespace KolibriLib
23{
25 namespace childWindow
26 {
27 // Я вам запрещаю записывать значения в эту переменную
28 std::string Message, Title;
29 // Я вам запрещаю записывать значения в эту переменную
30 bool Used = false;
31
32 //Функция потока нового окна
33 void RenderMessageWindow(void)
34 {
35 std::string _Message = Message;
36 std::string _Title = Title;
37
38 window::Window window(_Title, {256,128});
39
40 UI::Size WindowSize = window.GetSize();
41
42 UI::text::TextLabel message({window.GetMargin(), WindowSize.y / 2 }, {WindowSize.x, WindowSize.y / 2}, _Message);
43 message.SetScale(true);
44
45 window.CreateText(message);
46
47 while (true)
48 {
49 OS::Event event = window.Handler();
50 if(event = OS::Events::Exit)
51 {
52 return;
53 }
54 }
55 }
56
57
58
62 void MessageBox(std::string _Message, std::string _Title)
63 {
64 while (true)
65 {
66 if (!Used) // Проверка на то создают ли другие потоки ещё MessageWindow.
67 { // Это так потому что глобальная переменная Newindex одна на всех
68 Used = true;
69
70 Message = _Message;
71 Title = _Title;
72 Used = true;
73
74
75 Thread::CreateThread((void(*))RenderMessageWindow, 4096);
76
77 Used = false; // Я всё, заКОНЧИЛ. Свободно!
78 return;
79 }
80 else // если занято то ждём
81 {
82 Wait(1);
83 }
84 }
85 }
86
89 inline void ErrorWindow(std::string ErrorMessage)
90 {
91 MessageBox(ErrorMessage, "Error!");
92 }
93 }
94}
95
96#endif // __CHILDWINDOW_H__
Текстовая метка
Definition text.hpp:66
void SetScale(bool scale)
Изменить значение переменной _TextScale.
Definition text.hpp:175
Класс для работы с окном
Definition window.hpp:63
unsigned int Event
Ивент
Definition os.hpp:27
unsigned CreateThread(void *ThreadEntry, unsigned ThreadStackSize=1024)
Создать поток
Definition thread.hpp:18
void MessageBox(std::string _Message, std::string _Title)
Создать окно с сообщением
Definition childWindow.hpp:62
void ErrorWindow(std::string ErrorMessage)
окошко с ошибкой
Definition childWindow.hpp:89
Основное пространство имён
Definition base.hpp:18
void Wait(unsigned int time)
Подождать
Definition os.hpp:92