-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathimpressionistUI.h
102 lines (79 loc) · 2.54 KB
/
impressionistUI.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
//
// impressionistUI.h
//
// The header file for the UI part
//
#ifndef ImpressionistUI_h
#define ImpressionistUI_h
#include <FL/Fl.H>
#include <FL/Fl_Window.H>
#include <FL/fl_file_chooser.H> // FLTK file chooser
#include <FL/Fl_Menu_Bar.H>
#include <FL/Fl_Value_Slider.H>
#include <FL/Fl_Choice.H>
#include <FL/Fl_Button.H>
#include <FL/Fl_Light_Button.H>
#include "Impressionist.h"
#include "OriginalView.h"
#include "PaintView.h"
#include "ImpBrush.h"
class ImpressionistUI {
public:
ImpressionistUI();
// The FLTK widgets
Fl_Window* m_mainWindow;
Fl_Menu_Bar* m_menubar;
PaintView* m_paintView;
OriginalView* m_origView;
// for brush dialog
Fl_Window* m_brushDialog;
Fl_Choice* m_BrushTypeChoice;
Fl_Button* m_ClearCanvasButton;
Fl_Choice* m_strokeTypeChoice;
Fl_Slider* m_BrushSizeSlider;
Fl_Slider* m_LineWidthSlider;
Fl_Slider* m_LineAngleSlider;
Fl_Slider* m_AlphaSlider;
// Member functions
void setDocument(ImpressionistDoc* doc);
ImpressionistDoc* getDocument();
void show();
void resize_windows(int w, int h);
// Interface to get attribute
int getSize();
void setSize(int size);
int getLineWidth();
void setLineWidth(int lineWidth);
int getLineAngle();
void setLineAngle(int lineAngle);
float getAlpha();
void setAlpha(float alpha);
private:
ImpressionistDoc* m_pDoc; // pointer to document to communicate with the document
// All attributes here
int m_nSize;
int m_nLineWidth;
int m_nLineAngle;
float m_nAlpha;
// Static class members
static Fl_Menu_Item menuitems[];
static Fl_Menu_Item brushTypeMenu[NUM_BRUSH_TYPE+1];
static Fl_Menu_Item StrokeDirectionMenu[NUM_STROKE_DIRECTION + 1];
static ImpressionistUI* whoami(Fl_Menu_* o);
// All callbacks here. Callbacks are declared
// static
static void cb_load_image(Fl_Menu_* o, void* v);
static void cb_save_image(Fl_Menu_* o, void* v);
static void cb_brushes(Fl_Menu_* o, void* v);
static void cb_clear_canvas(Fl_Menu_* o, void* v);
static void cb_exit(Fl_Menu_* o, void* v);
static void cb_about(Fl_Menu_* o, void* v);
static void cb_brushChoice(Fl_Widget* o, void* v);
static void cb_clear_canvas_button(Fl_Widget* o, void* v);
static void cb_sizeSlides(Fl_Widget* o, void* v);
static void cb_LineWidthSlides(Fl_Widget* o, void* v);
static void cb_LineAngleSlides(Fl_Widget* o, void* v);
static void cb_AlphaSlides(Fl_Widget* o, void* v);
static void cb_strokeDirection(Fl_Widget* o, void* v);
};
#endif