More lexer and parser improvements.
[ttfautohint.git] / frontend / maingui.h
blob135176881d3326390c94308dc093d1b2ae8fd24c
1 // maingui.h
3 // Copyright (C) 2012-2014 by Werner Lemberg.
4 //
5 // This file is part of the ttfautohint library, and may only be used,
6 // modified, and distributed under the terms given in `COPYING'. By
7 // continuing to use, modify, or distribute this file you indicate that you
8 // have read `COPYING' and understand and accept it fully.
9 //
10 // The file `COPYING' mentioned in the previous paragraph is distributed
11 // with the ttfautohint library.
14 #ifndef __MAINGUI_H__
15 #define __MAINGUI_H__
17 #include <config.h>
19 #include <QtGui>
20 #include "ddlineedit.h"
21 #include "ttlineedit.h"
23 #include <stdio.h>
24 #include <ttfautohint.h>
25 #include <numberset.h>
27 class QAction;
28 class QButtonGroup;
29 class QCheckBox;
30 class QComboBox;
31 class QFile;
32 class QLabel;
33 class QLocale;
34 class QMenu;
35 class QPushButton;
36 class QSpinBox;
38 class Drag_Drop_Line_Edit;
39 class Tooltip_Line_Edit;
41 class Main_GUI
42 : public QMainWindow
44 Q_OBJECT
46 public:
47 Main_GUI(bool,
48 int, int, int,
49 bool, bool,
50 bool, int,
51 const char*, int,
52 bool, bool, bool,
53 bool, bool, const char*, const char*,
54 bool, bool);
55 ~Main_GUI();
57 protected:
58 void closeEvent(QCloseEvent*);
60 private slots:
61 void about();
62 void browse_input();
63 void browse_output();
64 void browse_deltas();
65 void check_min();
66 void check_max();
67 void check_limit();
68 void check_dehint();
69 void check_no_limit();
70 void check_no_increase();
71 void check_default_stem_width();
72 void absolute_input();
73 void absolute_output();
74 void absolute_deltas();
75 void check_number_set();
76 void clear_status_bar();
77 void check_watch();
78 void watch_files();
79 void check_run();
80 void run();
82 private:
83 int hinting_range_min;
84 int hinting_range_max;
85 int hinting_limit;
86 int gray_strong_stem_width;
87 int gdi_cleartype_strong_stem_width;
88 int dw_cleartype_strong_stem_width;
89 int increase_x_height;
90 QString x_height_snapping_exceptions_string;
91 number_range* x_height_snapping_exceptions;
92 int fallback_stem_width;
93 int ignore_restrictions;
94 int windows_compatibility;
95 int adjust_subglyphs;
96 int hint_composites;
97 int no_info;
98 int default_script_idx;
99 int fallback_script_idx;
100 int symbol;
101 int dehint;
103 void create_layout(bool);
104 void create_horizontal_layout();
105 void create_vertical_layout();
107 QTimer* timer;
108 QFileInfo fileinfo_input_file;
109 QFileInfo fileinfo_deltas_file;
110 QDateTime datetime_input_file;
111 QDateTime datetime_deltas_file;
113 void create_connections();
114 void create_actions();
115 void create_menus();
116 void create_status_bar();
117 void set_defaults();
118 void read_settings();
119 void write_settings();
121 int check_filenames(const QString&,
122 const QString&,
123 const QString&);
124 int open_files(const QString&, FILE**,
125 const QString&, FILE**,
126 const QString&, FILE**);
127 int handle_error(TA_Error, const unsigned char*, QString);
129 QMenu* file_menu;
130 QMenu* help_menu;
132 QLabel* input_label;
133 Drag_Drop_Line_Edit* input_line;
134 QPushButton* input_button;
136 QLabel* output_label;
137 Drag_Drop_Line_Edit* output_line;
138 QPushButton* output_button;
140 QLabel* deltas_label;
141 Drag_Drop_Line_Edit* deltas_line;
142 QPushButton* deltas_button;
144 QLabel* min_label;
145 QSpinBox* min_box;
146 QLabel* max_label;
147 QSpinBox* max_box;
149 QLabel* stem_label;
150 QCheckBox* gray_box;
151 QCheckBox* gdi_box;
152 QCheckBox* dw_box;
154 QLabel* default_label;
155 QComboBox* default_box;
156 QLabel* fallback_label;
157 QComboBox* fallback_box;
159 QLabel* limit_label;
160 QString limit_label_text_with_key;
161 QString limit_label_text;
162 QSpinBox* limit_box;
163 QCheckBox* no_limit_box;
164 QString no_limit_box_text_with_key;
165 QString no_limit_box_text;
167 QLabel* increase_label;
168 QString increase_label_text_with_key;
169 QString increase_label_text;
170 QSpinBox* increase_box;
171 QCheckBox* no_increase_box;
172 QString no_increase_box_text_with_key;
173 QString no_increase_box_text;
175 QLabel* snapping_label;
176 Tooltip_Line_Edit* snapping_line;
178 QLabel* stem_width_label;
179 QString stem_width_label_text_with_key;
180 QString stem_width_label_text;
181 QSpinBox* stem_width_box;
182 QCheckBox* default_stem_width_box;
183 QString default_stem_width_box_text_with_key;
184 QString default_stem_width_box_text;
186 QCheckBox* wincomp_box;
187 QCheckBox* adjust_box;
188 QCheckBox* hint_box;
189 QCheckBox* symbol_box;
190 QCheckBox* dehint_box;
191 QCheckBox* info_box;
193 QCheckBox* watch_box;
194 QPushButton* run_button;
196 QAction* exit_act;
197 QAction* about_act;
198 QAction* about_Qt_act;
200 QLocale* locale;
203 #endif // __MAINGUI_H__
205 // end of maingui.h