-
Notifications
You must be signed in to change notification settings - Fork 1
/
TGdesk_login_dial.h
135 lines (66 loc) · 2.01 KB
/
TGdesk_login_dial.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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
#ifndef __TGdesk_login_dial__
#define __TGdesk_login_dial__
/**
@file
Subclass of login_dial, which is generated by wxFormBuilder.
*/
#include "GUI.h"
//// end generated include
#include <wx/msgdlg.h>
#include "TGdesk_register_dial.h"
#include "TGdesk_main_frame.h"
#include <string>
#include "Backend_API.h"
/** Implementing login_dial */
class TGdesk_login_dial : public login_dial
{
protected:
// Handlers for login_dial events.
void login_dialOnClose( wxCloseEvent& event );
void login_fieldOnTextEnter( wxCommandEvent& event );
void login_fieldOnTextMaxLen( wxCommandEvent& event );
void passwd_fieldOnTextEnter( wxCommandEvent& event );
void passwd_fieldOnTextMaxLen( wxCommandEvent& event );
void auth_code_fieldOnTextEnter( wxCommandEvent& event );
void auth_code_fieldOnTextMaxLen( wxCommandEvent& event );
void login_buttonOnButtonClick( wxCommandEvent& event );
void regiter_buttonOnButtonClick( wxCommandEvent& event );
public:
/** Constructor */
TGdesk_login_dial( wxWindow* parent );
//// end generated class members
private:
bool loggedin = false;
wxFrame* main;
public:
/** Constructor */
TGdesk_login_dial( wxWindow* parent, wxFrame* main_w) : login_dial( parent ), main{main_w} {}
bool is_logged() const {return loggedin;}
static bool mail_check(std::string email){
if(email.size()){
auto at = email.find('@');
if(at > 0){
if(email.find('@', at+1) == std::string::npos){
if(email[0] == '.') return false;
std::string::size_type p=0;
while(p < email.size()-1){
p = email.find('.', p+1);
if(p == std::string::npos) break;
for(int i=-1; i<=1; i+=2){
if((email[p+i]<'a' || email[p+i]>'z')
&& (email[p+i]<'A' || email[p+i]>'Z')
&& (email[p+i]<'0' || email[p+i]>'9') )
{return false;}
}
}
p = email.rfind('.', email.size()-1);
if(p != std::string::npos){
return p > at;
}
}
}
}
return false;
}
};
#endif // __TGdesk_login_dial__