-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmainwindow.h
118 lines (99 loc) · 2.38 KB
/
mainwindow.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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <gtkmm/button.h>
#include <gtkmm/window.h>
#include <gtkmm/entry.h>
#include <gtkmm.h>
#include "gpar2.h"
#include <libpar2/libpar2.h>
#include <pthread.h>
#include <string.h>
#include<iostream>
#include<sstream>
class MainWindow : public Gtk::Window
{
public:
MainWindow(char* text);
virtual ~MainWindow();
Gtk::ProgressBar progressBar;
protected:
// Current operation
typedef enum {
none,
repairing,
verifying,
scanning
} Operation;
Operation operation;
typedef enum {
notloaded_repair,
notloaded_verify,
notnecessary_repair,
notpossible_repair,
already_verified
} Error;
typedef enum {
complete,
repairable,
unrepairable,
undef
} Status;
Status status;
//Signal handlers:
virtual void verify();
virtual void repair();
virtual void open();
virtual void quit();
virtual void about();
void preprocess();
void update_status(Result result);
void signal_filename(std::string filename);
void signal_progress(double progress);
void signal_headers(ParHeaders* headers);
void signal_done(std::string filename, int blocks_available,
int blocks_total);
void errors(Error error);
LibPar2* repairer;
// menus
Glib::RefPtr<Gtk::UIManager> m_refUIManager;
Glib::RefPtr<Gtk::ActionGroup> m_refActionGroup;
//Member widgets:
Gtk::VBox main_VBox;
Gtk::HBox main_HBox;
Gtk::Button repair_button;
Gtk::Button verify_button;
Gtk::Button open_button;
//Gtk::Entry filename_entry;
Gtk::Frame status_frame;
Gtk::Frame done_frame;
Gtk::Frame headers_frame;
Gtk::Label status_label;
// Headers label
Gtk::HBox headers_hbox;
Gtk::VBox headers_col1;
Gtk::VBox headers_col2;
Gtk::Label header_setid;
Gtk::Label header_blocksize;
Gtk::Label header_chunksize;
Gtk::Label header_sourceblockcount;
Gtk::Label header_totalsize;
Gtk::Label header_recoverablefiles;
Gtk::Label header_otherfiles;
Gtk::Label header_blocks;
// Filename
Gtk::HBox filename_hbox;
Gtk::Label filename_title;
Gtk::Label filename_entry;
Gtk::ProgressBar globalProgress;
// Files done
Gtk::ScrolledWindow done_window;
Gtk::TextView done_files;
double nbdone;
double nbfiles;
bool file_loaded;
int avail_blocks;
};
// Tools
string itos(int i); // convert int to string
string dtos(double d); // convert double to string
#endif // MAINWINDOW_H