Graphic Calculator: FIDocalcus
Проект трёх первокурсников (по инженерному практикуму в первом семестре) по созданию графического калькулятора на FLTK C++
Loading...
Searching...
No Matches
Window.h
Go to the documentation of this file.
1#pragma once
2
3// std libs
4#include <string>
5#include <vector>
6
7// Graph_lib
8#include "Point.h"
9#include "fltk.h"
10
11namespace Graph_lib {
12
13class Shape;
14class Widget;
15
16class Window : public Fl_Window {
17 public:
18 using Fl_Window::resize;
19
20 Window(pix_amount _width, pix_amount _height, const std::string& title);
21 Window(Point top_left_corner, pix_amount _width, pix_amount _height,
22 const std::string& title);
23
24 virtual ~Window() = default;
25
26 inline pix_amount w() const { return width; }
27
28 inline pix_amount h() const { return height; }
29
30 inline void resize(pix_amount _width, pix_amount _height) {
31 width = _width;
33 size(_width, _height);
34 }
35
36 inline void set_label(const std::string& s) { label(s.c_str()); }
37
38 void attach(Shape&);
39 void attach(Widget&);
40
41 /// @brief Удаляет фигуру из соотв. списка
42 void detach(Shape&);
43
44 /// @brief Отвязывает виджет от окна, деактивируя коллбэки
45 void detach(Widget&);
46
47 void put_on_top(Shape&);
48 void put_on_top(Widget&);
49
50 protected:
51 void draw();
52
53 private:
54 std::vector<Shape*> shapes;
57
58 virtual void init();
59};
60
61/**
62 * @brief Вызывает основной цикл обработки событий библиотеки виджетов
63 * @return int: результат работы
64 */
65inline int gui_main() { return Fl::run(); }
66
67} // namespace Graph_lib
unsigned int pix_amount
Definition Point.h:3
Абстрактная фигура
Definition Shapes.h:154
Абстрактный объект взаимодействия с пользователем
Definition Widgets.h:25
Definition Window.h:16
void attach(Shape &)
Definition Window.cpp:41
void draw()
Definition Window.cpp:26
void put_on_top(Shape &)
Definition Window.cpp:49
pix_amount w() const
Definition Window.h:26
void set_label(const std::string &s)
Definition Window.h:36
pix_amount height
Definition Window.h:56
pix_amount width
Definition Window.h:55
Window(pix_amount _width, pix_amount _height, const std::string &title)
Definition Window.cpp:5
virtual ~Window()=default
pix_amount h() const
Definition Window.h:28
void detach(Shape &)
Удаляет фигуру из соотв. списка
Definition Window.cpp:43
std::vector< Shape * > shapes
Definition Window.h:54
virtual void init()
Definition Window.cpp:21
void resize(pix_amount _width, pix_amount _height)
Definition Window.h:30
Definition Point.h:5
int gui_main()
Вызывает основной цикл обработки событий библиотеки виджетов
Definition Window.h:65
W & reference_to(void *ptr_wid)
Definition Widgets.h:16
Definition Point.h:7