Fix FreeBSD build.
[haiku.git] / src / preferences / mail / AutoConfigView.h
blobda2621bf9bc34e963b762ea69628514c03c31d11
1 /*
2 * Copyright 2007-2015, Haiku, Inc. All rights reserved.
3 * Copyright 2011, Clemens Zeidler <haiku@clemens-zeidler.de>
4 * Distributed under the terms of the MIT License.
5 */
6 #ifndef AUTO_CONFIG_VIEW_H
7 #define AUTO_CONFIG_VIEW_H
10 #include "AutoConfig.h"
11 #include "ConfigViews.h"
13 #include <Box.h>
14 #include <Entry.h>
15 #include <GroupView.h>
16 #include <MenuField.h>
17 #include <String.h>
18 #include <TextControl.h>
20 class BPopUpMenu;
23 const int32 kNameChangedMsg = '?nch';
24 const int32 kEMailChangedMsg = '?ech';
25 const int32 kProtokollChangedMsg = '?pch';
26 const int32 kServerChangedMsg = '?sch';
29 enum protocol_type {
30 POP,
31 IMAP,
32 SMTP
36 struct account_info {
37 protocol_type inboundType;
38 entry_ref inboundProtocol;
39 entry_ref outboundProtocol;
40 BString name;
41 BString accountName;
42 BString email;
43 BString loginName;
44 BString password;
45 provider_info providerInfo;
49 class AutoConfigView : public BBox {
50 public:
51 AutoConfigView(AutoConfig& config);
53 virtual void AttachedToWindow();
54 virtual void MessageReceived(BMessage* msg);
56 bool GetBasicAccountInfo(account_info& info);
57 bool IsValidMailAddress(BString email);
59 private:
60 BPopUpMenu* _SetupProtocolMenu();
61 status_t _GetSMTPAddOnRef(entry_ref* ref);
63 BString _ExtractLocalPart(const char* email);
64 void _ProposeUsername();
66 private:
67 entry_ref fSMTPAddOnRef;
68 BMenuField* fInProtocolsField;
69 BTextControl* fNameView;
70 BTextControl* fAccountNameView;
71 BTextControl* fEmailView;
72 BTextControl* fLoginNameView;
73 BTextControl* fPasswordView;
75 // ref to the parent autoconfig so you only ones read the database
76 AutoConfig& fAutoConfig;
80 class ServerSettingsView : public BGroupView {
81 public:
82 ServerSettingsView(const account_info& info);
83 ~ServerSettingsView();
84 void GetServerInfo(account_info& info);
86 private:
87 void _DetectMenuChanges();
88 bool _HasMarkedChanged(BMenuField* field,
89 BMenuItem* originalItem);
90 void _GetAuthEncrMenu(entry_ref protocol,
91 BMenuField*& authField,
92 BMenuField*& sslField);
94 private:
95 bool fInboundAccount;
96 bool fOutboundAccount;
97 BTextControl* fInboundNameView;
98 BMenuField* fInboundAuthMenu;
99 BMenuField* fInboundEncryptionMenu;
100 BTextControl* fOutboundNameView;
101 BMenuField* fOutboundAuthMenu;
102 BMenuField* fOutboundEncryptionMenu;
104 BMenuItem* fInboundAuthItemStart;
105 BMenuItem* fInboundEncrItemStart;
106 BMenuItem* fOutboundAuthItemStart;
107 BMenuItem* fOutboundEncrItemStart;
109 image_id fImageID;
113 #endif // AUTO_CONFIG_VIEW_H