Graphic Calculator: FIDocalcus
Проект трёх первокурсников (по инженерному практикуму в первом семестре) по созданию графического калькулятора на FLTK C++
Loading...
Searching...
No Matches
Graphix_calc::Function_box Class Reference

Класс с вводом мат. функции, кнопками для графиков, вывод ошибок More...

#include <Function_box.h>

Inheritance diagram for Graphix_calc::Function_box:
Collaboration diagram for Graphix_calc::Function_box:

Public Member Functions

 Function_box (unsigned long long int box_index, void cb_graphix_draw(void *, void *), void cb_graphix_hide(void *, void *), void cb_rem_func(void *, void *), void cb_deriv_draw(void *, void *), void cb_deriv_hide(void *, void *))
 Упрощенный конструктор
 
 ~Function_box ()
 
void attach (Graph_lib::Window &) override
 Привязывает все элементы к окну
 
void deriv_hide ()
 Устанавливает флаг о том, что график производной мат. функции скрыт
 
void deriv_show ()
 Устанавливает флаг, что график производной мат. функции нарисован
 
void detach (Graph_lib::Window &)
 Отвязывает все элементы от окна
 
unsigned long long get_index () const
 Возвращает значение индекс текущего Function_box
 
std::string get_string () const
 Возвращает значение введенной мат. функцию
 
void graphix_hide ()
 Устанавливает флаг о том, что график мат. функции скрыт
 
void graphix_show ()
 Устанавливает флаг о том, что график мат. функции нарисован
 
virtual void hide ()
 
void input_invalid ()
 Устанавливает флаг о том, что мат. функция в поле ввода невалидна
 
void input_valid ()
 Устанавливает флаг о том, что мат. функция в поле ввода валидна
 
bool is_deriv_hidden () const
 
bool is_graphix_hidden () const
 
bool is_input_valid () const
 
void move (int dx, int dy) override
 Двигает все элементы
 
void set_deriv_message (const std::string &deriv_str)
 Устанавливает текст в поле вывода для производной мат. функции
 
void set_index (unsigned long long)
 Устанавливает индекс всем кнопкам и полям
 
void set_message (const std::string &message)
 Устанавливает текст в поле вывода ошибок
 
virtual void show ()
 
Window & window ()
 

Protected Attributes

Callback cb
 
pix_amount height
 
std::string label
 
Point loc
 
Window * own
 Окно, которому принадлежит виджет
 
Fl_Widget * ptr_wid
 Указатель на FLTK виджет
 
pix_amount width
 

Private Attributes

Numbed_buttondraw_deriv_button
 Кнопка для рисования графика производной мат. функции
 
Numbed_buttondraw_graphix_button
 Кнопка для рисования графика мат. функции
 
Numbed_buttonhide_deriv_button
 Кнопка для скрытия графика производной мат. функции
 
Numbed_buttonhide_graphix_button
 Кнопка для скрытия графика мат. функции
 
Graph_lib::In_boxin_box
 Поле для ввода мат. функции
 
bool is_deriv_visible {false}
 Флаг, сообщающий о видимости графика производной мат. функции
 
bool is_func_valid {false}
 Флаг, сообщающий о валидности введенной мат. функции
 
bool is_graphix_visible {false}
 Флаг, сообщающий о видимости графика введенной мат. функции
 
Graph_lib::Out_boxout_box
 Поле для вывода ошибок по поводу введенной мат. функции
 
Graph_lib::Out_boxout_der_box
 Поле для вывода текущей производной мат. функции
 
Numbed_buttonrem_func_button
 Кнопка для удаления текущего Function_box
 

Detailed Description

Класс с вводом мат. функции, кнопками для графиков, вывод ошибок

Constructor & Destructor Documentation

◆ Function_box()

Graphix_calc::Function_box::Function_box ( unsigned long long int box_index,
void cb_graphix_drawvoid *, void *,
void cb_graphix_hidevoid *, void *,
void cb_rem_funcvoid *, void *,
void cb_deriv_drawvoid *, void *,
void cb_deriv_hidevoid *, void * )

Упрощенный конструктор

24 Point{0, func_box_h * pix_amount(box_index) + in_box_h}, btn_w, btn_h,
25 "Draw", box_index, cb_graphix_draw}},
27 Point{btn_w + margin / 2,
28 func_box_h * pix_amount(box_index) + in_box_h},
29 btn_w, btn_h, "Hide", box_index, cb_graphix_hide}},
31 Point{btn_w + margin / 2,
32 func_box_h * pix_amount(box_index) + in_box_h + btn_h},
33 btn_w, btn_h, "Draw", box_index, cb_deriv_draw}},
35 Point{(btn_w + margin / 2) * 2,
36 func_box_h * pix_amount(box_index) + in_box_h + btn_h},
37 btn_w, btn_h, "Hide", box_index, cb_deriv_hide}},
39 Point{0, func_box_h * pix_amount(box_index) + in_box_h + btn_h},
41 // in_box_label_w: необходимо отступить расстояние, где находится "y = "
42 in_box{
44 in_box_w, in_box_h, "y = "}},
45 out_box{new Out_box{
46 Point{0, func_box_h * pix_amount(box_index) + in_box_h + 2 * btn_h},
49 Point{(btn_w + margin / 2) * 2,
50 func_box_h * pix_amount(box_index) + in_box_h},
51 btn_w, btn_h, "Remove", box_index, cb_rem_func}} {}
unsigned int pix_amount
Definition Point.h:3
Graph_lib::Out_box * out_box
Поле для вывода ошибок по поводу введенной мат. функции
Definition Function_box.h:132
Numbed_button * draw_graphix_button
Кнопка для рисования графика мат. функции
Definition Function_box.h:118
Numbed_button * draw_deriv_button
Кнопка для рисования графика производной мат. функции
Definition Function_box.h:123
Numbed_button * hide_graphix_button
Кнопка для скрытия графика мат. функции
Definition Function_box.h:120
Graph_lib::Out_box * out_der_box
Поле для вывода текущей производной мат. функции
Definition Function_box.h:127
Numbed_button * hide_deriv_button
Кнопка для скрытия графика производной мат. функции
Definition Function_box.h:125
Graph_lib::In_box * in_box
Поле для ввода мат. функции
Definition Function_box.h:130
Numbed_button * rem_func_button
Кнопка для удаления текущего Function_box'а
Definition Function_box.h:135
Кнопка, которая имеет номер
Definition Numbed_button.h:9
constexpr pix_amount out_box_h
Высота поля вывода
Definition constants.h:61
constexpr pix_amount out_box_w
Длина поля вывода
Definition constants.h:59
constexpr pix_amount in_box_label_w
Кол-во пикселей, захваченных лейблом для in_box (т.е. "y = ")
Definition constants.h:51
const std::string empty_str
Definition constants.h:15
constexpr pix_amount in_box_h
Высота поля для ввода
Definition constants.h:56
constexpr pix_amount btn_w
Стандартная ширина кнопки
Definition constants.h:43
constexpr pix_amount margin
Вспомогательный отступ
Definition constants.h:40
constexpr pix_amount func_box_h
Высота всего бокса, где пользователь может рисовать графики
Definition constants.h:66
constexpr pix_amount in_box_w
Длина поля для ввода (исключая его лейбл "y = ")
Definition constants.h:54
constexpr pix_amount btn_h
Стандартная высота кнопки
Definition constants.h:45
Definition Widgets.h:88
Definition Widgets.h:104
Definition Point.h:7

◆ ~Function_box()

Graphix_calc::Function_box::~Function_box ( )
53 {
54 // так как в классе мы храним указатели, а память резервируем в конструкторе,
55 // в деструкторе надобно всё освободить
56
57 delete in_box;
60 delete rem_func_button;
61 delete out_der_box;
62 delete draw_deriv_button;
63 delete hide_deriv_button;
64 delete out_box;
65}

Member Function Documentation

◆ attach()

void Graphix_calc::Function_box::attach ( Graph_lib::Window & win)
overridevirtual

Привязывает все элементы к окну

Implements Graph_lib::Widget.

67 {
68 // try to uncomment this :)
69 // win.attach(*this);
70 win.attach(*in_box);
71 win.attach(*draw_graphix_button);
72 win.attach(*hide_graphix_button);
73 win.attach(*rem_func_button);
74 win.attach(*out_der_box);
75 win.attach(*draw_deriv_button);
76 win.attach(*hide_deriv_button);
77 win.attach(*out_box);
78 own = &win;
79}
Window * own
Окно, которому принадлежит виджет
Definition Widgets.h:57

◆ deriv_hide()

void Graphix_calc::Function_box::deriv_hide ( )
inline

Устанавливает флаг о том, что график производной мат. функции скрыт

70{ is_deriv_visible = false; }
bool is_deriv_visible
Флаг, сообщающий о видимости графика производной мат. функции
Definition Function_box.h:146

◆ deriv_show()

void Graphix_calc::Function_box::deriv_show ( )
inline

Устанавливает флаг, что график производной мат. функции нарисован

67{ is_deriv_visible = true; }

◆ detach()

void Graphix_calc::Function_box::detach ( Graph_lib::Window & win)

Отвязывает все элементы от окна

81 {
82 // try to uncomment this :)
83 // win.detach(*this);
84 win.detach(*in_box);
85 win.detach(*draw_graphix_button);
86 win.detach(*hide_graphix_button);
87 win.detach(*rem_func_button);
88 win.detach(*out_der_box);
89 win.detach(*draw_deriv_button);
90 win.detach(*hide_deriv_button);
91 win.detach(*out_box);
92 own = &win;
93}

◆ get_index()

unsigned long long Graphix_calc::Function_box::get_index ( ) const
inline

Возвращает значение индекс текущего Function_box

Returns
unsigned long long
105 {
106 // (так как мы не храним этот индекс в качестве поля, берём от элемента)
108 }
unsigned long long get_number() const
Definition Numbed_button.h:26
Here is the call graph for this function:

◆ get_string()

std::string Graphix_calc::Function_box::get_string ( ) const
inline

Возвращает значение введенной мат. функцию

Returns
std::string
99{ return in_box->get_string(); }
std::string get_string()
Definition Widgets.cpp:31
Here is the call graph for this function:

◆ graphix_hide()

void Graphix_calc::Function_box::graphix_hide ( )
inline

Устанавливает флаг о том, что график мат. функции скрыт

60{ is_graphix_visible = false; }
bool is_graphix_visible
Флаг, сообщающий о видимости графика введенной мат. функции
Definition Function_box.h:143

◆ graphix_show()

void Graphix_calc::Function_box::graphix_show ( )
inline

Устанавливает флаг о том, что график мат. функции нарисован

57{ is_graphix_visible = true; }

◆ hide()

virtual void Graph_lib::Widget::hide ( )
inlinevirtualinherited
41{ ptr_wid->hide(); }
Fl_Widget * ptr_wid
Указатель на FLTK виджет
Definition Widgets.h:60
Here is the caller graph for this function:

◆ input_invalid()

void Graphix_calc::Function_box::input_invalid ( )
inline

Устанавливает флаг о том, что мат. функция в поле ввода невалидна

50{ is_func_valid = false; }
bool is_func_valid
Флаг, сообщающий о валидности введенной мат. функции
Definition Function_box.h:140

◆ input_valid()

void Graphix_calc::Function_box::input_valid ( )
inline

Устанавливает флаг о том, что мат. функция в поле ввода валидна

47{ is_func_valid = true; }

◆ is_deriv_hidden()

bool Graphix_calc::Function_box::is_deriv_hidden ( ) const
inline
72{ return !is_deriv_visible; }

◆ is_graphix_hidden()

bool Graphix_calc::Function_box::is_graphix_hidden ( ) const
inline
62{ return !is_graphix_visible; }

◆ is_input_valid()

bool Graphix_calc::Function_box::is_input_valid ( ) const
inline
52{ return is_func_valid; };

◆ move()

void Graphix_calc::Function_box::move ( int dx,
int dy )
overridevirtual

Двигает все элементы

Parameters
dx
dy

Reimplemented from Graph_lib::Widget.

95 {
96 in_box->move(dx, dy);
99 rem_func_button->move(dx, dy);
100 out_der_box->move(dx, dy);
101 draw_deriv_button->move(dx, dy);
102 hide_deriv_button->move(dx, dy);
103 out_box->move(dx, dy);
104}
virtual void move(int dx, int dy)
Definition Widgets.cpp:9
Here is the call graph for this function:

◆ set_deriv_message()

void Graphix_calc::Function_box::set_deriv_message ( const std::string & deriv_str)
inline

Устанавливает текст в поле вывода для производной мат. функции

Parameters
deriv_strтекст
89 {
90 out_der_box->put(deriv_str);
91 }
void put(const std::string &)
Definition Widgets.cpp:45
Here is the call graph for this function:

◆ set_index()

void Graphix_calc::Function_box::set_index ( unsigned long long value)

Устанавливает индекс всем кнопкам и полям

106 {
112}
void set_number(unsigned long long value)
Definition Numbed_button.h:28
Here is the call graph for this function:

◆ set_message()

void Graphix_calc::Function_box::set_message ( const std::string & message)
inline

Устанавливает текст в поле вывода ошибок

Parameters
messageтекст
83{ out_box->put(message); }
Here is the call graph for this function:

◆ show()

virtual void Graph_lib::Widget::show ( )
inlinevirtualinherited
43{ ptr_wid->show(); }
Here is the caller graph for this function:

◆ window()

Window & Graph_lib::Widget::window ( )
inlineinherited
47{ return *own; }

Member Data Documentation

◆ cb

Callback Graph_lib::Widget::cb
protectedinherited

◆ draw_deriv_button

Numbed_button* Graphix_calc::Function_box::draw_deriv_button
private

Кнопка для рисования графика производной мат. функции

◆ draw_graphix_button

Numbed_button* Graphix_calc::Function_box::draw_graphix_button
private

Кнопка для рисования графика мат. функции

◆ height

pix_amount Graph_lib::Widget::height
protectedinherited

◆ hide_deriv_button

Numbed_button* Graphix_calc::Function_box::hide_deriv_button
private

Кнопка для скрытия графика производной мат. функции

◆ hide_graphix_button

Numbed_button* Graphix_calc::Function_box::hide_graphix_button
private

Кнопка для скрытия графика мат. функции

◆ in_box

Graph_lib::In_box* Graphix_calc::Function_box::in_box
private

Поле для ввода мат. функции

◆ is_deriv_visible

bool Graphix_calc::Function_box::is_deriv_visible {false}
private

Флаг, сообщающий о видимости графика производной мат. функции

146{false};

◆ is_func_valid

bool Graphix_calc::Function_box::is_func_valid {false}
private

Флаг, сообщающий о валидности введенной мат. функции

140{false};

◆ is_graphix_visible

bool Graphix_calc::Function_box::is_graphix_visible {false}
private

Флаг, сообщающий о видимости графика введенной мат. функции

143{false};

◆ label

std::string Graph_lib::Widget::label
protectedinherited

◆ loc

Point Graph_lib::Widget::loc
protectedinherited

◆ out_box

Graph_lib::Out_box* Graphix_calc::Function_box::out_box
private

Поле для вывода ошибок по поводу введенной мат. функции

◆ out_der_box

Graph_lib::Out_box* Graphix_calc::Function_box::out_der_box
private

Поле для вывода текущей производной мат. функции

◆ own

Window* Graph_lib::Widget::own
protectedinherited

Окно, которому принадлежит виджет

◆ ptr_wid

Fl_Widget* Graph_lib::Widget::ptr_wid
protectedinherited

Указатель на FLTK виджет

◆ rem_func_button

Numbed_button* Graphix_calc::Function_box::rem_func_button
private

Кнопка для удаления текущего Function_box

◆ width

pix_amount Graph_lib::Widget::width
protectedinherited

The documentation for this class was generated from the following files: