diff options
author | George Hazan <ghazan@miranda.im> | 2021-03-26 16:48:53 +0300 |
---|---|---|
committer | George Hazan <ghazan@miranda.im> | 2021-03-26 16:48:53 +0300 |
commit | 25c72306da694aefc53294c6ccd9e7e205229260 (patch) | |
tree | 58ac71052d47771611ff23c110b5b6d6e34ff40c | |
parent | 30fa813e97c0195cdbf02d92943c909904d5a197 (diff) |
fixes #2798 (IRC: remove "Networks")
-rw-r--r-- | protocols/IRCG/res/IRC.rc | 201 | ||||
-rw-r--r-- | protocols/IRCG/res/quick.ico | bin | 5430 -> 0 bytes | |||
-rw-r--r-- | protocols/IRCG/src/commandmonitor.cpp | 24 | ||||
-rw-r--r-- | protocols/IRCG/src/input.cpp | 3 | ||||
-rw-r--r-- | protocols/IRCG/src/irc_dlg.h | 155 | ||||
-rw-r--r-- | protocols/IRCG/src/irclib.cpp | 4 | ||||
-rw-r--r-- | protocols/IRCG/src/irclib.h | 5 | ||||
-rw-r--r-- | protocols/IRCG/src/ircproto.cpp | 83 | ||||
-rw-r--r-- | protocols/IRCG/src/ircproto.h | 7 | ||||
-rw-r--r-- | protocols/IRCG/src/main.cpp | 10 | ||||
-rw-r--r-- | protocols/IRCG/src/options.cpp | 2098 | ||||
-rw-r--r-- | protocols/IRCG/src/resource.h | 15 | ||||
-rw-r--r-- | protocols/IRCG/src/scripting.cpp | 3 | ||||
-rw-r--r-- | protocols/IRCG/src/services.cpp | 32 | ||||
-rw-r--r-- | protocols/IRCG/src/stdafx.h | 13 | ||||
-rw-r--r-- | protocols/IRCG/src/tools.cpp | 16 | ||||
-rw-r--r-- | protocols/IRCG/src/version.h | 4 | ||||
-rw-r--r-- | protocols/IRCG/src/windows.cpp | 167 |
18 files changed, 981 insertions, 1859 deletions
diff --git a/protocols/IRCG/res/IRC.rc b/protocols/IRCG/res/IRC.rc index f758d79c89..1e1662ac9a 100644 --- a/protocols/IRCG/res/IRC.rc +++ b/protocols/IRCG/res/IRC.rc @@ -17,7 +17,7 @@ #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NEU)
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
-#pragma code_page(1252)
+#pragma code_page(1251)
/////////////////////////////////////////////////////////////////////////////
//
@@ -27,22 +27,36 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL // Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDI_MAIN ICON "irc.ico"
+
IDI_ADD ICON "add.ico"
+
IDI_BLOCK ICON "block.ico"
+
IDI_DELETE ICON "delete.ico"
+
IDI_APPLY ICON "apply.ico"
+
IDI_WHOIS ICON "whois.ico"
+
IDI_LIST ICON "list.ico"
+
IDI_MANAGER ICON "manager.ico"
-IDI_QUICK ICON "quick.ico"
+
IDI_RENAME ICON "rename.ico"
+
IDI_SHOW ICON "show.ico"
+
IDI_LOGO ICON "world.ico"
+
IDI_DCC ICON "dcc.ico"
+
IDI_SERVER ICON "server.ico"
+
IDI_EDIT ICON "edit.ico"
+
IDI_IRCQUESTION ICON "question.ico"
+
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
@@ -53,46 +67,39 @@ STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD EXSTYLE WS_EX_CONTROLPARENT
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
- GROUPBOX "Default network",IDC_STATIC,2,0,142,134
- CONTROL "Enable",IDC_STARTUP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,11,125,10
- LTEXT "Server name",IDC_STATIC,10,22,125,8,0,WS_EX_TRANSPARENT
- COMBOBOX IDC_SERVERCOMBO,10,30,125,90,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP
- CONTROL "Internet address",IDC_STATIC,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,10,45,81,8,WS_EX_TRANSPARENT
- EDITTEXT IDC_SERVER,10,53,88,12,ES_AUTOHSCROLL | ES_READONLY | WS_GROUP
- LTEXT "SSL",IDC_STATIC,107,45,28,8,0,WS_EX_TRANSPARENT
- EDITTEXT IDC_SSL,107,53,28,12,ES_AUTOHSCROLL | ES_READONLY | ES_NUMBER,WS_EX_RIGHT
- LTEXT "Port range",IDC_STATIC,10,67,79,8,0,WS_EX_TRANSPARENT
- EDITTEXT IDC_PORT,10,75,33,12,ES_AUTOHSCROLL | ES_READONLY | ES_NUMBER,WS_EX_RIGHT
- LTEXT "->",IDC_STATIC,45,76,8,8
- EDITTEXT IDC_PORT2,54,75,33,12,ES_AUTOHSCROLL | ES_READONLY | ES_NUMBER,WS_EX_RIGHT
- LTEXT "Password",IDC_STATIC,10,90,125,8,0,WS_EX_TRANSPARENT
- EDITTEXT IDC_PASS,10,100,125,12,ES_PASSWORD | ES_AUTOHSCROLL
- CONTROL "&Add",IDC_ADDSERVER,"MButtonClass",WS_DISABLED | WS_TABSTOP,16,116,27,14,WS_EX_NOACTIVATE | 0x10000000L
- CONTROL "&Edit",IDC_EDITSERVER,"MButtonClass",WS_DISABLED | WS_TABSTOP,59,116,27,14,WS_EX_NOACTIVATE | 0x10000000L
- CONTROL "&Del",IDC_DELETESERVER,"MButtonClass",WS_DISABLED | WS_TABSTOP,102,116,27,14,WS_EX_NOACTIVATE | 0x10000000L
+ GROUPBOX "Server",IDC_STATIC,2,0,142,134
+ CONTROL "Host address",IDC_STATIC,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,8,11,81,8,WS_EX_TRANSPARENT
+ EDITTEXT IDC_SERVER,8,21,127,12,ES_AUTOHSCROLL | WS_GROUP
+ LTEXT "SSL",IDC_STATIC,8,64,28,8,0,WS_EX_TRANSPARENT
+ LTEXT "Port range",IDC_STATIC,8,37,79,8,0,WS_EX_TRANSPARENT
+ EDITTEXT IDC_PORT,8,47,39,12,ES_AUTOHSCROLL | ES_NUMBER,WS_EX_RIGHT
+ LTEXT "->",IDC_STATIC,55,49,8,8
+ EDITTEXT IDC_PORT2,68,47,39,12,ES_AUTOHSCROLL | ES_NUMBER,WS_EX_RIGHT
+ LTEXT "Password",IDC_STATIC,8,105,127,8,0,WS_EX_TRANSPARENT
+ EDITTEXT IDC_PASS,8,115,127,12,ES_PASSWORD | ES_AUTOHSCROLL
GROUPBOX "User info - Required",IDC_STATIC,150,0,154,90
- RTEXT "Nick",IDC_STATIC,158,16,75,8,0,WS_EX_TRANSPARENT
+ RTEXT "Nick",IDC_STATIC,157,16,76,8,0,WS_EX_TRANSPARENT
EDITTEXT IDC_NICK,237,13,63,13,ES_AUTOHSCROLL
- RTEXT "Alternative nick",IDC_STATIC,158,34,75,8,0,WS_EX_TRANSPARENT
+ RTEXT "Alternative nick",IDC_STATIC,157,34,76,8,0,WS_EX_TRANSPARENT
EDITTEXT IDC_NICK2,237,32,63,13,ES_AUTOHSCROLL
- RTEXT "Full name (e-mail)",IDC_STATIC,158,53,75,8,0,WS_EX_TRANSPARENT
+ RTEXT "Full name (e-mail)",IDC_STATIC,157,53,76,8,0,WS_EX_TRANSPARENT
EDITTEXT IDC_NAME,237,51,63,13,ES_AUTOHSCROLL
- RTEXT "User ID (Ident)",IDC_STATIC,158,73,75,8,0,WS_EX_TRANSPARENT
+ RTEXT "User ID (Ident)",IDC_STATIC,157,73,76,8,0,WS_EX_TRANSPARENT
EDITTEXT IDC_USERID,237,71,63,13,ES_AUTOHSCROLL
GROUPBOX "Ident",IDC_STATIC,150,92,154,42
- CONTROL "Enable",IDC_IDENT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,158,106,46,15
+ CONTROL "Enable",IDC_IDENT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,157,106,46,15
LTEXT "System",IDC_STATIC,210,98,39,8,0,WS_EX_TRANSPARENT
EDITTEXT IDC_IDENTSYSTEM,210,106,39,12,ES_AUTOHSCROLL
LTEXT "Port",IDC_STATIC,256,98,35,8,0,WS_EX_TRANSPARENT
EDITTEXT IDC_IDENTPORT,256,106,39,12,ES_AUTOHSCROLL | ES_NUMBER
CONTROL "only while connecting",IDC_IDENT_TIMED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,171,120,124,11
GROUPBOX "Other",IDC_STATIC,2,134,302,92
- CONTROL "Force visible (-i)",IDC_FORCEVISIBLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,145,134,10
- CONTROL "Rejoin channel if kicked",IDC_REJOINONKICK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,156,134,10
- CONTROL "Rejoin channels on reconnect",IDC_REJOINCHANNELS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,167,134,10
- CONTROL "Disable tray balloon on error",IDC_DISABLEERROR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,178,134,10
- CONTROL "Show addresses",IDC_ADDRESS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,189,134,10
- CONTROL "Use server window",IDC_USESERVER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,200,134,10
+ CONTROL "Force visible (-i)",IDC_FORCEVISIBLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,145,136,10
+ CONTROL "Rejoin channel if kicked",IDC_REJOINONKICK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,156,136,10
+ CONTROL "Rejoin channels on reconnect",IDC_REJOINCHANNELS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,167,136,10
+ CONTROL "Disable tray balloon on error",IDC_DISABLEERROR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,178,136,10
+ CONTROL "Show addresses",IDC_ADDRESS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,189,136,10
+ CONTROL "Use server window",IDC_USESERVER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,200,136,10
CONTROL "Show server window on startup",IDC_SHOWSERVER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,211,129,10
CONTROL "Keep connection alive",IDC_KEEPALIVE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,144,145,154,10
CONTROL "Automatically join on invite",IDC_AUTOJOIN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,144,156,154,10
@@ -107,7 +114,8 @@ BEGIN RTEXT "Don't check if more than (users):",IDC_STATIC,142,212,124,8
EDITTEXT IDC_LIMIT,267,210,29,12,ES_AUTOHSCROLL | ES_NUMBER,WS_EX_RIGHT
CONTROL "Spin2",IDC_SPIN2,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS | UDS_HOTTRACK,284,209,11,14
- CONTROL "SASL",IDC_SASL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,103,77,32,10
+ CONTROL "Enable SASL",IDC_SASL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,92,55,10
+ COMBOBOX IDC_SSL,8,74,48,30,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP
END
IDD_INFO DIALOGEX 0, 0, 267, 214
@@ -192,30 +200,6 @@ BEGIN CONTROL "Enable UTF-8 autodetection",IDC_UTF_AUTODETECT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,208,287,10
END
-IDD_ADDSERVER DIALOGEX 0, 0, 182, 136
-STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
-EXSTYLE WS_EX_TOOLWINDOW | WS_EX_CONTROLPARENT
-CAPTION "Add server"
-FONT 8, "MS Shell Dlg", 0, 0, 0x1
-BEGIN
- COMBOBOX IDC_ADD_COMBO,7,20,168,90,CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP
- EDITTEXT IDC_ADD_SERVER,7,44,120,12,ES_AUTOHSCROLL
- EDITTEXT IDC_ADD_ADDRESS,7,68,120,12,ES_AUTOHSCROLL | WS_GROUP
- EDITTEXT IDC_ADD_PORT,7,92,47,12,ES_AUTOHSCROLL | ES_NUMBER,WS_EX_RIGHT
- EDITTEXT IDC_ADD_PORT2,80,92,47,12,ES_AUTOHSCROLL | ES_NUMBER,WS_EX_RIGHT
- CONTROL "Auto",IDC_AUTO,"Button",BS_AUTORADIOBUTTON | WS_GROUP,139,52,32,10
- CONTROL "On",IDC_ON,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,139,69,32,10
- CONTROL "Off",IDC_OFF,"Button",BS_AUTORADIOBUTTON,139,86,32,10
- DEFPUSHBUTTON "&OK",IDOK,63,115,50,14
- PUSHBUTTON "&Cancel",IDCANCEL,125,115,50,14
- CONTROL "Host address",IDC_STATIC,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,7,60,120,8,WS_EX_TRANSPARENT
- LTEXT "->",IDC_STATIC,64,94,8,8
- LTEXT "Port range",IDC_STATIC,7,84,87,8,0,WS_EX_TRANSPARENT
- LTEXT "Server description",IDC_STATIC,7,36,120,8,0,WS_EX_TRANSPARENT
- LTEXT "Network",IDC_STATIC,7,12,107,8,0,WS_EX_TRANSPARENT
- GROUPBOX "SSL",IDC_STATIC,136,38,39,67
-END
-
IDD_LIST DIALOGEX 0, 0, 360, 212
STYLE DS_SETFONT | DS_FIXEDSYS | DS_CENTER | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CLIPCHILDREN | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
CAPTION "Channels on server"
@@ -230,35 +214,6 @@ BEGIN EDITTEXT IDC_TEXT,4,200,351,10,ES_AUTOHSCROLL | WS_DISABLED | NOT WS_BORDER,WS_EX_STATICEDGE
END
-IDD_QUICKCONN DIALOGEX 0, 0, 201, 165
-STYLE DS_SYSMODAL | DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
-EXSTYLE WS_EX_CONTROLPARENT
-FONT 8, "MS Shell Dlg", 0, 0, 0x1
-BEGIN
- COMBOBOX IDC_SERVERCOMBO,12,54,177,69,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP
- EDITTEXT IDC_SERVER,12,78,177,12,ES_AUTOHSCROLL
- GROUPBOX "SSL",IDC_GRBOX_SSL,12,94,177,21,WS_GROUP | WS_TABSTOP
- CONTROL "Off",IDC_SSL_OFF,"Button",BS_AUTORADIOBUTTON,36,102,42,10
- CONTROL "Auto",IDC_SSL_AUTO,"Button",BS_AUTORADIOBUTTON,87,102,42,10
- CONTROL "On",IDC_SSL_ON,"Button",BS_AUTORADIOBUTTON,138,102,44,10
- EDITTEXT IDC_PORT,12,124,36,12,ES_AUTOHSCROLL | ES_NUMBER,WS_EX_RIGHT
- EDITTEXT IDC_PORT2,63,124,36,12,ES_AUTOHSCROLL | ES_NUMBER,WS_EX_RIGHT
- EDITTEXT IDC_PASS,116,124,73,12,ES_PASSWORD | ES_AUTOHSCROLL
- DEFPUSHBUTTON "C&onnect",IDOK,83,146,50,14
- PUSHBUTTON "&Cancel",IDCANCEL,139,146,50,14
- CONTROL "Internet address",IDC_STATIC,"Static",SS_LEFTNOWORDWRAP,12,70,130,8,WS_EX_TRANSPARENT
- LTEXT "Port range",IDC_STATIC,12,116,63,8,0,WS_EX_TRANSPARENT
- LTEXT "Password",IDC_STATIC,116,116,73,8,0,WS_EX_TRANSPARENT
- LTEXT "Server name",IDC_STATIC,12,46,177,8,0,WS_EX_TRANSPARENT
- CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,0,140,201,1
- CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,0,38,201,1
- LTEXT "",IDC_WHITERECT,0,0,201,38
- ICON "",IDC_LOGO,159,5,20,20,SS_REALSIZEIMAGE
- LTEXT "",IDC_TEXT,18,16,138,18
- LTEXT "",IDC_CAPTION,12,5,143,11
- LTEXT "->",IDC_STATIC,51,126,8,8,0,WS_EX_TRANSPARENT
-END
-
IDD_USERINFO DIALOGEX 0, 0, 222, 132
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD
EXSTYLE WS_EX_CONTROLPARENT
@@ -408,7 +363,6 @@ EXSTYLE WS_EX_TOOLWINDOW | WS_EX_CONTROLPARENT FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
EDITTEXT IDC_MASK,7,15,137,14,ES_AUTOHSCROLL
- EDITTEXT IDC_NETWORK,150,15,63,14,ES_AUTOHSCROLL
CONTROL "Queries",IDC_Q,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,20,47,54,10
CONTROL "Messages",IDC_M,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,80,47,64,10
CONTROL "Notices",IDC_N,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,150,47,57,10
@@ -423,27 +377,29 @@ BEGIN CTEXT "(*) blank to set this mask for all networks",IDC_STATIC,7,90,206,8
END
-IDD_ACCMGRUI DIALOGEX 0, 0, 186, 134
+IDD_ACCMGRUI DIALOGEX 0, 0, 186, 135
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD
EXSTYLE WS_EX_CONTROLPARENT
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
- COMBOBOX IDC_SERVERCOMBO,55,5,123,90,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP
- EDITTEXT IDC_SERVER,5,21,88,12,ES_AUTOHSCROLL | ES_READONLY | WS_GROUP | NOT WS_TABSTOP
- EDITTEXT IDC_PORT,96,21,27,12,ES_AUTOHSCROLL | ES_READONLY | ES_NUMBER | NOT WS_TABSTOP,WS_EX_RIGHT
- EDITTEXT IDC_PORT2,126,21,27,12,ES_AUTOHSCROLL | ES_READONLY | ES_NUMBER | NOT WS_TABSTOP,WS_EX_RIGHT
- EDITTEXT IDC_PASS,55,38,123,12,ES_PASSWORD | ES_AUTOHSCROLL
- EDITTEXT IDC_NICK,87,64,91,13,ES_AUTOHSCROLL
- EDITTEXT IDC_NICK2,87,81,91,13,ES_AUTOHSCROLL
- EDITTEXT IDC_NAME,87,98,91,13,ES_AUTOHSCROLL
- EDITTEXT IDC_USERID,87,115,91,13,ES_AUTOHSCROLL
- RTEXT "Server:",IDC_STATIC,5,7,45,8
- RTEXT "Password:",IDC_STATIC,5,41,45,8
- RTEXT "Nick",IDC_STATIC,5,66,79,8
- RTEXT "Alternative nick",IDC_STATIC,5,83,79,8
- RTEXT "Full name (e-mail)",IDC_STATIC,5,100,79,8
- RTEXT "User ID (Ident)",IDC_STATIC,5,117,79,8
- EDITTEXT IDC_SSL,155,21,23,12,ES_AUTOHSCROLL | ES_READONLY | ES_NUMBER | NOT WS_TABSTOP,WS_EX_RIGHT
+ EDITTEXT IDC_SERVER,87,6,91,12,ES_AUTOHSCROLL | WS_GROUP | NOT WS_TABSTOP
+ EDITTEXT IDC_PORT,87,22,34,12,ES_AUTOHSCROLL | ES_NUMBER | NOT WS_TABSTOP,WS_EX_RIGHT
+ EDITTEXT IDC_PORT2,144,22,34,12,ES_AUTOHSCROLL | ES_NUMBER | NOT WS_TABSTOP,WS_EX_RIGHT
+ EDITTEXT IDC_PASS,87,52,91,12,ES_PASSWORD | ES_AUTOHSCROLL
+ EDITTEXT IDC_NICK,87,68,91,13,ES_AUTOHSCROLL
+ EDITTEXT IDC_NICK2,87,84,91,13,ES_AUTOHSCROLL
+ EDITTEXT IDC_NAME,87,100,91,13,ES_AUTOHSCROLL
+ EDITTEXT IDC_USERID,87,116,91,13,ES_AUTOHSCROLL
+ LTEXT "Password",IDC_STATIC,5,55,79,8
+ LTEXT "Nick",IDC_STATIC,5,70,79,8
+ LTEXT "Alternative nick",IDC_STATIC,5,86,79,8
+ LTEXT "Full name (e-mail)",IDC_STATIC,5,102,79,8
+ LTEXT "User ID (Ident)",IDC_STATIC,5,118,79,8
+ LTEXT "Host",IDC_STATIC,5,8,79,8
+ LTEXT "Port range",IDC_STATIC,5,22,79,8
+ LTEXT "->",IDC_STATIC,130,24,10,8
+ LTEXT "SSL",IDC_STATIC,5,39,79,8
+ COMBOBOX IDC_SSL,87,37,48,30,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP
END
@@ -458,10 +414,10 @@ BEGIN IDD_PREFS_CONNECT, DIALOG
BEGIN
LEFTMARGIN, 2
- VERTGUIDE, 10
+ VERTGUIDE, 8
VERTGUIDE, 135
VERTGUIDE, 144
- VERTGUIDE, 158
+ VERTGUIDE, 157
VERTGUIDE, 210
VERTGUIDE, 233
VERTGUIDE, 237
@@ -526,21 +482,6 @@ BEGIN HORZGUIDE, 174
END
- IDD_ADDSERVER, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 175
- VERTGUIDE, 127
- VERTGUIDE, 136
- VERTGUIDE, 143
- TOPMARGIN, 7
- BOTTOMMARGIN, 129
- HORZGUIDE, 20
- HORZGUIDE, 44
- HORZGUIDE, 68
- HORZGUIDE, 92
- END
-
IDD_LIST, DIALOG
BEGIN
LEFTMARGIN, 4
@@ -556,19 +497,6 @@ BEGIN HORZGUIDE, 179
END
- IDD_QUICKCONN, DIALOG
- BEGIN
- VERTGUIDE, 12
- VERTGUIDE, 189
- BOTTOMMARGIN, 160
- HORZGUIDE, 5
- HORZGUIDE, 38
- HORZGUIDE, 54
- HORZGUIDE, 78
- HORZGUIDE, 124
- HORZGUIDE, 140
- END
-
IDD_USERINFO, DIALOG
BEGIN
LEFTMARGIN, 6
@@ -679,15 +607,15 @@ BEGIN IDD_ACCMGRUI, DIALOG
BEGIN
VERTGUIDE, 5
- VERTGUIDE, 50
- VERTGUIDE, 55
VERTGUIDE, 84
VERTGUIDE, 87
VERTGUIDE, 178
+ BOTTOMMARGIN, 134
END
END
#endif // APSTUDIO_INVOKED
+
/////////////////////////////////////////////////////////////////////////////
//
// AFX_DIALOG_LAYOUT
@@ -698,6 +626,11 @@ BEGIN 0
END
+IDD_ACCMGRUI AFX_DIALOG_LAYOUT
+BEGIN
+ 0
+END
+
#endif // Neutral resources
/////////////////////////////////////////////////////////////////////////////
diff --git a/protocols/IRCG/res/quick.ico b/protocols/IRCG/res/quick.ico Binary files differdeleted file mode 100644 index 9638e6e948..0000000000 --- a/protocols/IRCG/res/quick.ico +++ /dev/null diff --git a/protocols/IRCG/src/commandmonitor.cpp b/protocols/IRCG/src/commandmonitor.cpp index a402668e45..c3f356564a 100644 --- a/protocols/IRCG/src/commandmonitor.cpp +++ b/protocols/IRCG/src/commandmonitor.cpp @@ -599,12 +599,10 @@ bool CIrcProto::OnIrc_NOTICE(const CIrcMessage *pmsg) if (!m_ignore || !IsIgnored(pmsg->prefix.sNick, pmsg->prefix.sUser, pmsg->prefix.sHost, 'n')) {
CMStringW S;
CMStringW S2;
- CMStringW S3;
+
if (pmsg->prefix.sNick.GetLength() > 0)
S = pmsg->prefix.sNick;
- else
- S = m_info.sNetwork;
- S3 = m_info.sNetwork;
+
if (IsChannel(pmsg->parameters[0]))
S2 = pmsg->parameters[0];
else {
@@ -625,7 +623,7 @@ bool CIrcProto::OnIrc_NOTICE(const CIrcMessage *pmsg) }
else S2 = L"";
}
- DoEvent(GC_EVENT_NOTICE, S2.IsEmpty() ? nullptr : S2.c_str(), S, pmsg->parameters[1], nullptr, S3, NULL, true, false);
+ DoEvent(GC_EVENT_NOTICE, S2.IsEmpty() ? nullptr : S2.c_str(), S, pmsg->parameters[1], nullptr, L"IRC", NULL, true, false);
}
}
else ShowMessage(pmsg);
@@ -2338,9 +2336,8 @@ bool CIrcProto::DoOnConnect(const CIrcMessage*) PostIrcMessage(L"/AWAY " + m_statusMessage.Mid(0, 450));
if (m_perform) {
- DoPerform("ALL NETWORKS");
if (IsConnected()) {
- DoPerform(_T2A(m_info.sNetwork));
+ DoPerform("Connect");
switch (Temp) {
case ID_STATUS_FREECHAT: DoPerform("Event: Free for chat"); break;
case ID_STATUS_ONLINE: DoPerform("Event: Available"); break;
@@ -2418,19 +2415,14 @@ int CIrcProto::IsIgnored(CMStringW user, char type) return i + 1;
bool bUserContainsWild = (wcschr(user, '*') != nullptr || wcschr(user, '?') != nullptr);
- if (!bUserContainsWild && WCCmp(C.mask, user) ||
- bUserContainsWild && !mir_wstrcmpi(user, C.mask)) {
+ if (!bUserContainsWild && WCCmp(C.mask, user) || bUserContainsWild && !mir_wstrcmpi(user, C.mask)) {
if (C.flags.IsEmpty() || C.flags[0] != '+')
continue;
if (!wcschr(C.flags, type))
continue;
- if (C.network.IsEmpty())
- return i + 1;
-
- if (IsConnected() && !mir_wstrcmpi(C.network, m_info.sNetwork))
- return i + 1;
+ return i + 1;
}
}
@@ -2444,7 +2436,7 @@ bool CIrcProto::AddIgnore(const wchar_t* mask, const wchar_t* flags, const wchar RewriteIgnoreSettings();
if (m_ignoreDlg)
- m_ignoreDlg->RebuildList();
+ m_ignoreDlg->Update();
return true;
}
@@ -2457,6 +2449,6 @@ bool CIrcProto::RemoveIgnore(const wchar_t* mask) RewriteIgnoreSettings();
if (m_ignoreDlg)
- m_ignoreDlg->RebuildList();
+ m_ignoreDlg->Update();
return true;
}
diff --git a/protocols/IRCG/src/input.cpp b/protocols/IRCG/src/input.cpp index 934d56abd5..fe5f53ebde 100644 --- a/protocols/IRCG/src/input.cpp +++ b/protocols/IRCG/src/input.cpp @@ -170,7 +170,6 @@ CMStringW CIrcProto::DoIdentifiers(CMStringW text, const wchar_t*) text.Replace(L"%module", _A2T(m_szModuleName));
text.Replace(L"%name", m_name);
text.Replace(L"%newl", L"\r\n");
- text.Replace(L"%network", m_info.sNetwork.c_str());
text.Replace(L"%me", m_info.sNick.c_str());
char mirver[100];
@@ -294,7 +293,7 @@ BOOL CIrcProto::DoHardcodedCommand(CMStringW text, wchar_t *window, MCONTACT hCo CMStringW szNetwork;
if (three.IsEmpty())
- szNetwork = m_info.sNetwork;
+ szNetwork = "IRC";
else
szNetwork = three;
diff --git a/protocols/IRCG/src/irc_dlg.h b/protocols/IRCG/src/irc_dlg.h index b070217fd7..082973dd2f 100644 --- a/protocols/IRCG/src/irc_dlg.h +++ b/protocols/IRCG/src/irc_dlg.h @@ -21,10 +21,19 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #pragma once
+struct CIrcBaseDlg : public CProtoDlgBase<CIrcProto>
+{
+ CIrcBaseDlg(CIrcProto *ppro, int dlgId) :
+ CProtoDlgBase<CIrcProto>(ppro, dlgId)
+ {}
+
+ virtual void Update() {};
+};
+
/////////////////////////////////////////////////////////////////////////////////////////
// Dialogs
-struct CMessageBoxDlg : public CProtoDlgBase < CIrcProto >
+struct CMessageBoxDlg : public CIrcBaseDlg
{
DCCINFO *pdci;
@@ -33,7 +42,7 @@ struct CMessageBoxDlg : public CProtoDlgBase < CIrcProto > bool OnApply() override;
};
-struct CCoolIrcDlg : public CProtoDlgBase < CIrcProto >
+struct CCoolIrcDlg : public CIrcBaseDlg
{
CCoolIrcDlg(CIrcProto* _pro, int dlgId);
@@ -79,7 +88,7 @@ struct CNickDlg : public CCoolIrcDlg void OnDestroy() override;
};
-struct CListDlg : public CProtoDlgBase < CIrcProto >
+struct CListDlg : public CIrcBaseDlg
{
CListDlg(CIrcProto* _pro);
@@ -111,21 +120,6 @@ struct CJoinDlg : public CCoolIrcDlg void OnDestroy() override;
};
-struct CQuickDlg : public CCoolIrcDlg
-{
- CQuickDlg(CIrcProto* _pro);
-
- bool OnInitDialog() override;
- bool OnApply() override;
- void OnDestroy() override;
-
- CCtrlCombo m_serverCombo;
- void OnServerCombo(CCtrlData*);
-
-private:
- struct SERVER_INFO* m_si;
-};
-
struct CManagerDlg : public CCoolIrcDlg
{
CManagerDlg(CIrcProto* _pro);
@@ -176,128 +170,3 @@ struct CQuestionDlg : public CCoolIrcDlg private:
CManagerDlg* m_owner;
};
-
-/////////////////////////////////////////////////////////////////////////////////////////
-// options
-
-//---- the first property page: Account -------------------------------------------------
-
-struct CConnectPrefsDlg : public CProtoDlgBase < CIrcProto >
-{
- bool m_serverlistModified;
-
- CCtrlCombo m_serverCombo;
- CCtrlEdit m_server, m_port, m_port2, m_pass;
- CCtrlMButton m_add, m_edit, m_del;
- CCtrlEdit m_nick, m_nick2, m_name, m_userID;
-
- CCtrlCheck m_ident, m_identTimer;
- CCtrlEdit m_identSystem, m_identPort;
-
- CCtrlCheck m_forceVisible, m_rejoinOnKick, m_rejoinChannels, m_disableError,
- m_address, m_useServer, m_showServer, m_keepAlive, m_autoJoin,
- m_oldStyle, m_onlineNotif, m_channelAway, m_enableServer, m_useSasl;
- CCtrlEdit m_onlineTimer, m_limit, m_ssl;
- CCtrlSpin m_spin1, m_spin2;
-
- CConnectPrefsDlg(CIrcProto* _pro);
-
- bool OnInitDialog() override;
- bool OnApply() override;
-
- void OnServerCombo(CCtrlData*);
- void OnAddServer(CCtrlButton*);
- void OnDeleteServer(CCtrlButton*);
- void OnEditServer(CCtrlButton*);
- void OnStartup(CCtrlData*);
- void OnIdent(CCtrlData*);
- void OnUseServer(CCtrlData*);
- void OnOnlineNotif(CCtrlData*);
- void OnChannelAway(CCtrlData*);
-};
-
-//---- the second property page: DCC/CTCP -----------------------------------------------
-
-struct CCtcpPrefsDlg : public CProtoDlgBase < CIrcProto >
-{
- CCtrlCombo m_combo;
- CCtrlCheck m_slow, m_fast, m_disc, m_passive, m_sendNotice, m_enableIP, m_fromServer;
- CCtrlEdit m_ip, m_userInfo;
- CCtrlCheck m_radio1, m_radio2, m_radio3;
-
- CCtcpPrefsDlg(CIrcProto* _pro);
-
- bool OnInitDialog() override;
- bool OnApply() override;
-
- void OnClicked(CCtrlData*);
-};
-
-//---- the third property page: Other ---------------------------------------------------
-
-struct COtherPrefsDlg : public CProtoDlgBase < CIrcProto >
-{
- bool m_performlistModified;
-
- CCtrlButton m_url;
- CCtrlMButton m_add, m_delete;
- CCtrlCombo m_performCombo, m_codepage;
- CCtrlEdit m_pertormEdit, m_quitMessage, m_alias;
- CCtrlCheck m_perform, m_scripting, m_autodetect;
-
- COtherPrefsDlg(CIrcProto* _pro);
-
- bool OnInitDialog() override;
- bool OnApply() override;
- void OnDestroy() override;
-
- void OnPerformCombo(CCtrlData*);
- void OnCodePage(CCtrlData*);
- void OnPerformEdit(CCtrlData*);
- void OnPerform(CCtrlData*);
- void OnAdd(CCtrlButton*);
- void OnDelete(CCtrlButton*);
-
- void addPerformComboValue(int idx, const char* szValueName);
-};
-
-//---- the fourth property page: Ignore -------------------------------------------------
-
-struct CIgnorePrefsDlg : public CProtoDlgBase < CIrcProto >
-{
- CCtrlMButton m_add, m_edit, m_del;
- CCtrlCheck m_enable, m_ignoreChat, m_ignoreFile, m_ignoreChannel, m_ignoreUnknown;
- CCtrlListView m_list;
-
- CIgnorePrefsDlg(CIrcProto* _pro);
-
- bool OnInitDialog() override;
- bool OnApply() override;
- void OnDestroy() override;
-
- INT_PTR DlgProc(UINT msg, WPARAM wParam, LPARAM lParam) override;
-
- void List_OnColumnClick(CCtrlListView::TEventInfo*);
- void OnEnableIgnore(CCtrlData*);
- void OnIgnoreChat(CCtrlData*);
- void OnAdd(CCtrlButton*);
- void OnEdit(CCtrlButton*);
- void OnDelete(CCtrlButton*);
-
- void FixButtons(void);
- void RebuildList(void);
- void UpdateList(void);
-};
-
-struct CAddIgnoreDlg : public CProtoDlgBase < CIrcProto >
-{
- CIgnorePrefsDlg* m_owner;
-
- wchar_t szOldMask[500];
-
- CAddIgnoreDlg(CIrcProto* _pro, const wchar_t* mask, CIgnorePrefsDlg* parent);
-
- bool OnInitDialog() override;
- bool OnApply() override;
- void OnDestroy() override;
-};
diff --git a/protocols/IRCG/src/irclib.cpp b/protocols/IRCG/src/irclib.cpp index 4c4ac7e045..50a5b51079 100644 --- a/protocols/IRCG/src/irclib.cpp +++ b/protocols/IRCG/src/irclib.cpp @@ -200,7 +200,7 @@ bool CIrcProto::Connect(const CIrcSessionInfo& info) con = Netlib_OpenConnection(m_hNetlibUser, &ncon); if (con == nullptr) { wchar_t szTemp[300]; - mir_snwprintf(szTemp, L"%c5%s %c%s%c (%S: %u).", irc::COLOR, TranslateT("Failed to connect to"), irc::BOLD, m_sessionInfo.sNetwork.c_str(), irc::BOLD, m_sessionInfo.sServer.c_str(), m_sessionInfo.iPort); + mir_snwprintf(szTemp, L"%c%s (%S: %u).", irc::COLOR, TranslateT("Failed to connect to"), m_sessionInfo.sServer.c_str(), m_sessionInfo.iPort); DoEvent(GC_EVENT_INFORMATION, SERVERWINDOW, nullptr, szTemp, nullptr, nullptr, NULL, true, false); return false; } @@ -619,7 +619,6 @@ CIrcSessionInfo::CIrcSessionInfo(const CIrcSessionInfo& si) : bIdentServer(si.bIdentServer), m_iSSL(si.m_iSSL), sIdentServerType(si.sIdentServerType), - sNetwork(si.sNetwork), iIdentServerPort(si.iIdentServerPort) { } @@ -638,7 +637,6 @@ void CIrcSessionInfo::Reset() m_iSSL = 0; sIdentServerType = L""; iIdentServerPort = 0; - sNetwork = L""; } //////////////////////////////////////////////////////////////////// diff --git a/protocols/IRCG/src/irclib.h b/protocols/IRCG/src/irclib.h index 7677956762..9b32b78ebf 100644 --- a/protocols/IRCG/src/irclib.h +++ b/protocols/IRCG/src/irclib.h @@ -92,14 +92,13 @@ private : struct CIrcSessionInfo
{
- CMStringA sServer;
+ CMStringA sServer;
CMStringW sServerName;
CMStringW sNick;
CMStringW sUserID;
CMStringW sFullName;
- CMStringA sPassword;
+ CMStringA sPassword;
CMStringW sIdentServerType;
- CMStringW sNetwork;
bool bIdentServer;
bool bNickFlag;
int m_iSSL;
diff --git a/protocols/IRCG/src/ircproto.cpp b/protocols/IRCG/src/ircproto.cpp index 2d6a97709c..dc96b7342a 100644 --- a/protocols/IRCG/src/ircproto.cpp +++ b/protocols/IRCG/src/ircproto.cpp @@ -46,7 +46,6 @@ CIrcProto::CIrcProto(const char* szModuleName, const wchar_t* tszUserName) : CreateProtoService(PS_LEAVECHAT, &CIrcProto::OnLeaveChat);
CreateProtoService(IRC_JOINCHANNEL, &CIrcProto::OnJoinMenuCommand);
- CreateProtoService(IRC_QUICKCONNECT, &CIrcProto::OnQuickConnectMenuCommand);
CreateProtoService(IRC_CHANGENICK, &CIrcProto::OnChangeNickMenuCommand);
CreateProtoService(IRC_SHOWLIST, &CIrcProto::OnShowListMenuCommand);
CreateProtoService(IRC_SHOWSERVER, &CIrcProto::OnShowServerMenuCommand);
@@ -171,19 +170,6 @@ CIrcProto::~CIrcProto() ////////////////////////////////////////////////////////////////////////////////////////
// OnModulesLoaded - performs hook registration
-static int sttCheckPerform(const char *szSetting, void *lParam)
-{
- if (!_strnicmp(szSetting, "PERFORM:", 8)) {
- CMStringA s = szSetting;
- s.MakeUpper();
- if (s != szSetting) {
- OBJLIST<CMStringA>* p = (OBJLIST<CMStringA>*)lParam;
- p->insert(new CMStringA(szSetting));
- }
- }
- return 0;
-}
-
void CIrcProto::OnModulesLoaded()
{
wchar_t name[128];
@@ -205,54 +191,24 @@ void CIrcProto::OnModulesLoaded() nlu.szDescriptiveName.w = name;
hNetlibDCC = Netlib_RegisterUser(&nlu);
- m_pServer = Chat_NewSession(GCW_SERVER, m_szModuleName, SERVERWINDOW, _A2T(m_network));
+ m_pServer = Chat_NewSession(GCW_SERVER, m_szModuleName, SERVERWINDOW, TranslateT("Server window"));
if (m_useServer && !m_hideServerWindow)
Chat_Control(m_szModuleName, SERVERWINDOW, WINDOW_VISIBLE);
else
Chat_Control(m_szModuleName, SERVERWINDOW, WINDOW_HIDDEN);
- wchar_t szTemp[MAX_PATH];
- mir_snwprintf(szTemp, L"%%miranda_path%%\\Plugins\\%S_perform.ini", m_szModuleName);
- wchar_t *szLoadFileName = Utils_ReplaceVarsW(szTemp);
- char* pszPerformData = IrcLoadFile(szLoadFileName);
- if (pszPerformData != nullptr) {
- char *p1 = pszPerformData, *p2 = pszPerformData;
- while ((p1 = strstr(p2, "NETWORK: ")) != nullptr) {
- p1 += 9;
- p2 = strchr(p1, '\n');
- CMStringA sNetwork(p1, int(p2 - p1 - 1));
- sNetwork.MakeUpper();
- p1 = p2;
- p2 = strstr(++p1, "\nNETWORK: ");
- if (!p2)
- p2 = p1 + mir_strlen(p1) - 1;
- if (p1 == p2)
- break;
+ ptrA szNetwork(getStringA("Network"));
+ if (szNetwork) {
+ CMStringA szSetting(FORMAT, "PERFORM:%s", szNetwork);
+ szSetting.MakeUpper();
- *p2++ = 0;
- setString(("PERFORM:" + sNetwork).c_str(), rtrim(p1));
+ CMStringW wszValue(getMStringW(szSetting));
+ if (!wszValue.IsEmpty()) {
+ setWString("PERFORM:EVENT: CONNECT", wszValue);
+ delSetting(szSetting);
}
- delete[] pszPerformData;
- ::_wremove(szLoadFileName);
- }
- mir_free(szLoadFileName);
-
- if (!getByte("PerformConversionDone", 0)) {
- OBJLIST<CMStringA> performToConvert(10);
- db_enum_settings(NULL, sttCheckPerform, m_szModuleName, &performToConvert);
-
- for (auto &it : performToConvert) {
- DBVARIANT dbv;
- if (!getWString(*it, &dbv)) {
- db_unset(0, m_szModuleName, *it);
- it->MakeUpper();
- setWString(*it, dbv.pwszVal);
- db_free(&dbv);
- }
- }
-
- setByte("PerformConversionDone", 1);
+ delSetting("Network");
}
InitIgnore();
@@ -664,25 +620,6 @@ int CIrcProto::SetStatus(int iNewStatus) int CIrcProto::SetStatusInternal(int iNewStatus, bool bIsInternal)
{
- if (iNewStatus != ID_STATUS_OFFLINE && !m_network[0]) {
- if (m_nick[0] && !m_disableDefaultServer) {
- if (m_quickDlg == nullptr) {
- m_quickDlg = new CQuickDlg(this);
- m_quickComboSelection = m_serverComboSelection + 1;
- m_quickDlg->Show();
- }
-
- HWND hwnd = m_quickDlg->GetHwnd();
- SetWindowTextA(hwnd, "Miranda IRC");
- SetDlgItemText(hwnd, IDC_TEXT, TranslateT("Please choose an IRC-network to go online. This network will be the default."));
- SetDlgItemText(hwnd, IDC_CAPTION, TranslateT("Default network"));
- Window_SetIcon_IcoLib(hwnd, g_plugin.getIconHandle(IDI_MAIN));
- ShowWindow(hwnd, SW_SHOW);
- SetActiveWindow(hwnd);
- }
- return 0;
- }
-
if (iNewStatus != ID_STATUS_OFFLINE && !m_nick[0] || !m_userID[0] || !m_name[0]) {
Clist_TrayNotifyW(m_szModuleName, TranslateT("IRC error"), TranslateT("Connection cannot be established! You have not completed all necessary fields (Nickname, User ID and Full name)."), NIIF_ERROR, 15000);
return 0;
diff --git a/protocols/IRCG/src/ircproto.h b/protocols/IRCG/src/ircproto.h index 6c344ef45d..bbf980d830 100644 --- a/protocols/IRCG/src/ircproto.h +++ b/protocols/IRCG/src/ircproto.h @@ -87,7 +87,6 @@ struct CIrcProto : public PROTO<CIrcProto> INT_PTR __cdecl OnMenuDisconnect(WPARAM, LPARAM); INT_PTR __cdecl OnMenuIgnore(WPARAM, LPARAM); INT_PTR __cdecl OnMenuWhois(WPARAM, LPARAM); - INT_PTR __cdecl OnQuickConnectMenuCommand(WPARAM, LPARAM); INT_PTR __cdecl OnShowListMenuCommand(WPARAM, LPARAM); INT_PTR __cdecl OnShowServerMenuCommand(WPARAM, LPARAM); @@ -105,7 +104,6 @@ struct CIrcProto : public PROTO<CIrcProto> char m_serverName[100]; char m_password[500]; wchar_t m_identSystem[10]; - char m_network[30]; char m_portStart[10]; char m_portEnd[10]; int m_iSSL; @@ -122,7 +120,6 @@ struct CIrcProto : public PROTO<CIrcProto> char m_myLocalHost[50]; WORD m_myLocalPort; wchar_t *m_alias; - int m_serverComboSelection; int m_quickComboSelection; int m_onlineNotificationTime; int m_onlineNotificationLimit; @@ -136,7 +133,6 @@ struct CIrcProto : public PROTO<CIrcProto> BYTE m_hideServerWindow; BYTE m_ident; BYTE m_identTimer; - BYTE m_disableDefaultServer; BYTE m_autoOnlineNotification; BYTE m_sendKeepAlive; BYTE m_joinOnInvite; @@ -189,9 +185,8 @@ struct CIrcProto : public PROTO<CIrcProto> CListDlg *m_listDlg; CNickDlg *m_nickDlg; CWhoisDlg *m_whoisDlg; - CQuickDlg *m_quickDlg; CManagerDlg *m_managerDlg; - CIgnorePrefsDlg *m_ignoreDlg; + CIrcBaseDlg *m_ignoreDlg; int m_noOfChannels, m_manualWhoisCount; CMStringA sChannelModes, sUserModes; diff --git a/protocols/IRCG/src/main.cpp b/protocols/IRCG/src/main.cpp index 69ffe7aa1e..c80a013e46 100644 --- a/protocols/IRCG/src/main.cpp +++ b/protocols/IRCG/src/main.cpp @@ -24,15 +24,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. CMPlugin g_plugin;
-/////////////////////////////////////////////////////////////////////////////////////////
-
-static int CompareServers(const SERVER_INFO* p1, const SERVER_INFO* p2)
-{
- return mir_strcmp(p1->m_name, p2->m_name);
-}
-
-OBJLIST<SERVER_INFO> g_servers(20, CompareServers);
-
void UninitTimers(void);
/////////////////////////////////////////////////////////////////////////////////////////
@@ -67,7 +58,6 @@ extern "C" __declspec(dllexport) const MUUID MirandaInterfaces[] = { MIID_PROTOC int CMPlugin::Load()
{
InitIcons();
- InitServers();
InitContactMenus();
return 0;
}
diff --git a/protocols/IRCG/src/options.cpp b/protocols/IRCG/src/options.cpp index 4390e41d31..74df705b51 100644 --- a/protocols/IRCG/src/options.cpp +++ b/protocols/IRCG/src/options.cpp @@ -22,7 +22,16 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "stdafx.h"
#include <win2k.h>
-static const CIrcProto *pZero = nullptr;
+static void removeSpaces(wchar_t* p)
+{
+ while (*p) {
+ if (*p == ' ')
+ memmove(p, p + 1, sizeof(wchar_t)*mir_wstrlen(p));
+ p++;
+ }
+}
+
+/////////////////////////////////////////////////////////////////////////////////////////
void CIrcProto::ReadSettings(TDbSetting *sets, int count)
{
@@ -113,78 +122,6 @@ void CIrcProto::WriteSettings(TDbSetting *sets, int count) }
/////////////////////////////////////////////////////////////////////////////////////////
-
-static int sttServerEnum(const char *szSetting, void *)
-{
- CMStringA szValue(db_get_sm(0, SERVERSMODULE, szSetting));
- if (szValue.IsEmpty())
- return 0;
-
- int iStart = 0;
- CMStringA szName, szAddress, szPort, szGroup;
- szName = szValue.Tokenize(":", iStart); // skip SERVER
- szAddress = szValue.Tokenize(":", iStart);
- if (szName.IsEmpty() || szAddress.IsEmpty())
- return 0;
-
- szPort = szValue.Tokenize(":", iStart);
- szGroup = szValue.Tokenize(":", iStart);
-
- SERVER_INFO *pData = new SERVER_INFO;
- pData->m_name = mir_strdup(szSetting);
-
- pData->m_iSSL = 0;
- if (!_strnicmp(szAddress, "SSL", 3)) {
- if (szAddress[3] == '1')
- pData->m_iSSL = 1;
- else if (szAddress[3] == '2')
- pData->m_iSSL = 2;
- szAddress.Delete(0, 4);
- }
-
- pData->m_address = mir_strdup(szAddress);
-
- for (iStart = 0; iStart < szPort.GetLength(); iStart++)
- if (szPort[iStart] == 'G' || szPort[iStart] == '-')
- break;
-
- pData->m_portStart = atoi(szPort.Left(iStart));
-
- if (szPort[iStart] == 'G')
- pData->m_portEnd = pData->m_portStart;
- else {
- int iEnd = szPort.Find('G', ++iStart);
- if (iEnd == -1)
- return 0;
-
- pData->m_portEnd = atoi(szPort.Mid(iStart, iEnd - iStart));
- }
-
- pData->m_group = mir_strdup(szGroup);
-
- g_servers.insert(pData);
- return 0;
-}
-
-void RereadServers()
-{
- g_servers.destroy();
-
- db_enum_settings(NULL, sttServerEnum, SERVERSMODULE);
-}
-
-/////////////////////////////////////////////////////////////////////////////////////////
-
-static void removeSpaces(wchar_t* p)
-{
- while (*p) {
- if (*p == ' ')
- memmove(p, p + 1, sizeof(wchar_t)*mir_wstrlen(p));
- p++;
- }
-}
-
-/////////////////////////////////////////////////////////////////////////////////////////
// add icons to the skinning module
static IconItem iconList[] =
@@ -198,7 +135,6 @@ static IconItem iconList[] = { LPGEN("Ignore"), "block", IDI_BLOCK, 0 },
{ LPGEN("Channel list"), "list", IDI_LIST, 0 },
{ LPGEN("Channel manager"), "manager", IDI_MANAGER, 0 },
- { LPGEN("Quick connect"), "quick", IDI_QUICK, 0 },
{ LPGEN("Server window"), "server", IDI_SERVER, 0 },
{ LPGEN("Show channel"), "show", IDI_SHOW, 0 },
{ LPGEN("Question"), "question",IDI_IRCQUESTION, 0 },
@@ -258,147 +194,27 @@ static BOOL CALLBACK sttLangAddCallback(wchar_t *str) }
/////////////////////////////////////////////////////////////////////////////////////////
-// 'Add server' dialog
-
-static int sttRequiredFields[] = { IDC_ADD_SERVER, IDC_ADD_ADDRESS, IDC_ADD_PORT, IDC_ADD_PORT2, IDC_ADD_COMBO };
-
-struct CServerDlg : public CProtoDlgBase<CIrcProto>
-{
- CConnectPrefsDlg *m_owner;
- int m_action;
-
- CCtrlEdit m_server, m_address, m_port, m_port2;
- CCtrlCombo m_groupCombo;
-
- CServerDlg(CIrcProto *_pro, CConnectPrefsDlg *_owner, int _action)
- : CProtoDlgBase<CIrcProto>(_pro, IDD_ADDSERVER),
- m_owner(_owner),
- m_action(_action),
- m_groupCombo(this, IDC_ADD_COMBO),
- m_address(this, IDC_ADD_ADDRESS),
- m_server(this, IDC_ADD_SERVER),
- m_port(this, IDC_ADD_PORT),
- m_port2(this, IDC_ADD_PORT2)
- {
- m_hwndParent = _owner->GetHwnd();
- }
-
- bool OnInitDialog() override
- {
- int i = m_owner->m_serverCombo.GetCount();
- for (int index = 0; index < i; index++) {
- SERVER_INFO *pData = (SERVER_INFO*)m_owner->m_serverCombo.GetItemData(index);
- if (m_groupCombo.FindStringA(pData->m_group, -1, true) == CB_ERR)
- m_groupCombo.AddStringA(pData->m_group);
- }
-
- if (m_action == 2) {
- int j = m_owner->m_serverCombo.GetCurSel();
- SERVER_INFO *pData = (SERVER_INFO*)m_owner->m_serverCombo.GetItemData(j);
- m_address.SetTextA(pData->m_address);
- m_groupCombo.SetTextA(pData->m_group);
- m_port.SetInt(pData->m_portStart);
- m_port2.SetInt(pData->m_portEnd);
-
- char *p = strstr(pData->m_name, ": ");
- if (p)
- m_server.SetTextA(p + 2);
-
- if (pData->m_iSSL == 0)
- CheckDlgButton(m_hwnd, IDC_OFF, BST_CHECKED);
- if (pData->m_iSSL == 1)
- CheckDlgButton(m_hwnd, IDC_AUTO, BST_CHECKED);
- if (pData->m_iSSL == 2)
- CheckDlgButton(m_hwnd, IDC_ON, BST_CHECKED);
- }
- else {
- CheckDlgButton(m_hwnd, IDC_OFF, BST_CHECKED);
- m_port.SetInt(6667);
- m_port2.SetInt(6667);
- }
-
- int bEnableSsl = TRUE;
- EnableWindow(GetDlgItem(m_hwnd, IDC_ON), bEnableSsl);
- EnableWindow(GetDlgItem(m_hwnd, IDC_OFF), bEnableSsl);
- EnableWindow(GetDlgItem(m_hwnd, IDC_AUTO), bEnableSsl);
-
- SetFocus(m_groupCombo.GetHwnd());
- return true;
- }
-
- bool OnApply() override
- {
- for (auto &it : sttRequiredFields)
- if (!GetWindowTextLength(GetDlgItem(m_hwnd, it))) {
- MessageBox(m_hwnd, TranslateT("Please complete all fields"), TranslateT("IRC error"), MB_OK | MB_ICONERROR);
- return false;
- }
-
- SERVER_INFO *pData;
- if (m_action == 2) {
- int j = m_owner->m_serverCombo.GetCurSel();
- pData = (SERVER_INFO*)m_owner->m_serverCombo.GetItemData(j);
- }
- else pData = new SERVER_INFO;
-
- pData->m_iSSL = 0;
- if (IsDlgButtonChecked(m_hwnd, IDC_ON))
- pData->m_iSSL = 2;
- if (IsDlgButtonChecked(m_hwnd, IDC_AUTO))
- pData->m_iSSL = 1;
-
- pData->m_portStart = m_port.GetInt();
- pData->m_portEnd = m_port2.GetInt();
- pData->m_address = rtrim(m_address.GetTextA());
- pData->m_group = m_groupCombo.GetTextA();
- pData->m_name = m_server.GetTextA();
-
- char temp[255];
- mir_snprintf(temp, "%s: %s", pData->m_group, pData->m_name);
- mir_free(pData->m_name);
- pData->m_name = mir_strdup(temp);
-
- int iItem = m_owner->m_serverCombo.AddStringA(pData->m_name, (LPARAM)pData);
- m_owner->m_serverCombo.SetCurSel(iItem);
- m_owner->OnServerCombo(nullptr);
-
- m_owner->m_serverlistModified = true;
- return true;
- }
-
- void OnDestroy() override
- {
- m_owner->m_serverCombo.Enable();
- m_owner->m_add.Enable();
- m_owner->m_edit.Enable();
- m_owner->m_del.Enable();
- }
-};
-
-/////////////////////////////////////////////////////////////////////////////////////////
// 'Connect preferences' dialog
static TDbSetting ConnectSettings[] =
{
- { FIELD_OFFSET(CIrcProto, m_userID), "UserID", DBVT_WCHAR, _countof(pZero->m_userID) },
- { FIELD_OFFSET(CIrcProto, m_identSystem), "IdentSystem", DBVT_WCHAR, _countof(pZero->m_identSystem) },
- { FIELD_OFFSET(CIrcProto, m_identPort), "IdentPort", DBVT_WCHAR, _countof(pZero->m_identPort) },
-
- { FIELD_OFFSET(CIrcProto, m_serverName), "ServerName", DBVT_ASCIIZ, _countof(pZero->m_serverName) },
- { FIELD_OFFSET(CIrcProto, m_portStart), "PortStart", DBVT_ASCIIZ, _countof(pZero->m_portStart) },
- { FIELD_OFFSET(CIrcProto, m_portEnd), "PortEnd", DBVT_ASCIIZ, _countof(pZero->m_portEnd) },
- { FIELD_OFFSET(CIrcProto, m_password), "Password", DBVT_ASCIIZ, _countof(pZero->m_password) },
+ { FIELD_OFFSET(CIrcProto, m_userID), "UserID", DBVT_WCHAR, _countof(CIrcProto::m_userID) },
+ { FIELD_OFFSET(CIrcProto, m_identSystem), "IdentSystem", DBVT_WCHAR, _countof(CIrcProto::m_identSystem) },
+ { FIELD_OFFSET(CIrcProto, m_identPort), "IdentPort", DBVT_WCHAR, _countof(CIrcProto::m_identPort) },
+
+ { FIELD_OFFSET(CIrcProto, m_serverName), "ServerName", DBVT_ASCIIZ, _countof(CIrcProto::m_serverName) },
+ { FIELD_OFFSET(CIrcProto, m_portStart), "PortStart", DBVT_ASCIIZ, _countof(CIrcProto::m_portStart) },
+ { FIELD_OFFSET(CIrcProto, m_portEnd), "PortEnd", DBVT_ASCIIZ, _countof(CIrcProto::m_portEnd) },
+ { FIELD_OFFSET(CIrcProto, m_password), "Password", DBVT_ASCIIZ, _countof(CIrcProto::m_password) },
{ FIELD_OFFSET(CIrcProto, m_joinOnInvite), "JoinOnInvite", DBVT_BYTE },
- { FIELD_OFFSET(CIrcProto, m_network), "Network", DBVT_ASCIIZ, _countof(pZero->m_network) },
{ FIELD_OFFSET(CIrcProto, m_iSSL), "UseSSL", DBVT_BYTE },
{ FIELD_OFFSET(CIrcProto, m_onlineNotificationTime) , "OnlineNotificationTime", DBVT_WORD, 0, 30 },
{ FIELD_OFFSET(CIrcProto, m_onlineNotificationLimit) , "OnlineNotificationLimit", DBVT_WORD, 0, 50 },
{ FIELD_OFFSET(CIrcProto, m_channelAwayNotification), "ChannelAwayNotification", DBVT_BYTE, 0, 1 },
- { FIELD_OFFSET(CIrcProto, m_nick), "Nick", DBVT_WCHAR, _countof(pZero->m_nick) },
- { FIELD_OFFSET(CIrcProto, m_pNick), "PNick", DBVT_WCHAR, _countof(pZero->m_pNick) },
- { FIELD_OFFSET(CIrcProto, m_alternativeNick), "AlernativeNick", DBVT_WCHAR, _countof(pZero->m_alternativeNick) },
- { FIELD_OFFSET(CIrcProto, m_name), "Name", DBVT_WCHAR, _countof(pZero->m_name) },
- { FIELD_OFFSET(CIrcProto, m_disableDefaultServer), "DisableDefaultServer", DBVT_BYTE },
+ { FIELD_OFFSET(CIrcProto, m_nick), "Nick", DBVT_WCHAR, _countof(CIrcProto::m_nick) },
+ { FIELD_OFFSET(CIrcProto, m_pNick), "PNick", DBVT_WCHAR, _countof(CIrcProto::m_pNick) },
+ { FIELD_OFFSET(CIrcProto, m_alternativeNick), "AlernativeNick", DBVT_WCHAR, _countof(CIrcProto::m_alternativeNick) },
+ { FIELD_OFFSET(CIrcProto, m_name), "Name", DBVT_WCHAR, _countof(CIrcProto::m_name) },
{ FIELD_OFFSET(CIrcProto, m_ident), "Ident", DBVT_BYTE },
{ FIELD_OFFSET(CIrcProto, m_identTimer), "IdentTimer", DBVT_BYTE },
{ FIELD_OFFSET(CIrcProto, m_forceVisible), "ForceVisible", DBVT_BYTE },
@@ -410,492 +226,360 @@ static TDbSetting ConnectSettings[] = { FIELD_OFFSET(CIrcProto, m_useServer), "UseServer", DBVT_BYTE, 0, 1 },
{ FIELD_OFFSET(CIrcProto, m_bUseSASL), "UseSASL", DBVT_BYTE },
{ FIELD_OFFSET(CIrcProto, m_hideServerWindow), "HideServerWindow", DBVT_BYTE, 0, 1 },
- { FIELD_OFFSET(CIrcProto, m_serverComboSelection), "ServerComboSelection", DBVT_DWORD, 0 },
{ FIELD_OFFSET(CIrcProto, m_sendKeepAlive), "SendKeepAlive", DBVT_BYTE, 0, 1 },
{ FIELD_OFFSET(CIrcProto, m_autoOnlineNotification), "AutoOnlineNotification", DBVT_BYTE },
};
-CConnectPrefsDlg::CConnectPrefsDlg(CIrcProto *_pro)
- : CProtoDlgBase<CIrcProto>(_pro, IDD_PREFS_CONNECT),
- m_serverCombo(this, IDC_SERVERCOMBO),
- m_server(this, IDC_SERVER),
- m_port(this, IDC_PORT),
- m_port2(this, IDC_PORT2),
- m_pass(this, IDC_PASS),
- m_add(this, IDC_ADDSERVER, g_plugin.getIcon(IDI_ADD), LPGEN("Add a new network")),
- m_edit(this, IDC_EDITSERVER, g_plugin.getIcon(IDI_EDIT), LPGEN("Edit this network")),
- m_del(this, IDC_DELETESERVER, g_plugin.getIcon(IDI_DELETE), LPGEN("Delete this network")),
- m_nick(this, IDC_NICK),
- m_nick2(this, IDC_NICK2),
- m_name(this, IDC_NAME),
- m_userID(this, IDC_USERID),
- m_ident(this, IDC_IDENT),
- m_identSystem(this, IDC_IDENTSYSTEM),
- m_identPort(this, IDC_IDENTPORT),
- m_identTimer(this, IDC_IDENT_TIMED),
- m_forceVisible(this, IDC_FORCEVISIBLE),
- m_rejoinOnKick(this, IDC_REJOINONKICK),
- m_rejoinChannels(this, IDC_REJOINCHANNELS),
- m_disableError(this, IDC_DISABLEERROR),
- m_address(this, IDC_ADDRESS),
- m_useServer(this, IDC_USESERVER),
- m_showServer(this, IDC_SHOWSERVER),
- m_keepAlive(this, IDC_KEEPALIVE),
- m_autoJoin(this, IDC_AUTOJOIN),
- m_oldStyle(this, IDC_OLDSTYLE),
- m_useSasl(this, IDC_SASL),
- m_onlineNotif(this, IDC_ONLINENOTIF),
- m_channelAway(this, IDC_CHANNELAWAY),
- m_enableServer(this, IDC_STARTUP),
- m_onlineTimer(this, IDC_ONLINETIMER),
- m_limit(this, IDC_LIMIT),
- m_spin1(this, IDC_SPIN1, 999, 20),
- m_spin2(this, IDC_SPIN2, 200),
- m_ssl(this, IDC_SSL),
- m_serverlistModified(false)
+class CConnectPrefsDlg : public CIrcBaseDlg
{
- m_serverCombo.OnChange = Callback(this, &CConnectPrefsDlg::OnServerCombo);
- m_add.OnClick = Callback(this, &CConnectPrefsDlg::OnAddServer);
- m_del.OnClick = Callback(this, &CConnectPrefsDlg::OnDeleteServer);
- m_edit.OnClick = Callback(this, &CConnectPrefsDlg::OnEditServer);
- m_enableServer.OnChange = Callback(this, &CConnectPrefsDlg::OnStartup);
- m_ident.OnChange = Callback(this, &CConnectPrefsDlg::OnIdent);
- m_useServer.OnChange = Callback(this, &CConnectPrefsDlg::OnUseServer);
- m_onlineNotif.OnChange = Callback(this, &CConnectPrefsDlg::OnOnlineNotif);
- m_channelAway.OnChange = Callback(this, &CConnectPrefsDlg::OnChannelAway);
-}
+ CCtrlEdit m_server, m_port, m_port2, m_pass;
+ CCtrlEdit m_nick, m_nick2, m_name, m_userID;
+ CCtrlCombo m_ssl;
-bool CConnectPrefsDlg::OnInitDialog()
-{
- m_proto->m_hwndConnect = m_hwnd;
-
- // Fill the servers combo box and create SERVER_INFO structures
- for (auto &it : g_servers)
- m_serverCombo.AddStringA(it->m_name, LPARAM(it));
-
- m_serverCombo.SetCurSel(m_proto->m_serverComboSelection);
- m_server.SetTextA(m_proto->m_serverName);
- m_port.SetTextA(m_proto->m_portStart);
- m_port2.SetTextA(m_proto->m_portEnd);
-
- if (m_proto->m_iSSL == 0)
- m_ssl.SetText(TranslateT("Off"));
- if (m_proto->m_iSSL == 1)
- m_ssl.SetText(TranslateT("Auto"));
- if (m_proto->m_iSSL == 2)
- m_ssl.SetText(TranslateT("On"));
-
- if (m_proto->m_serverComboSelection != -1) {
- SERVER_INFO *pData = (SERVER_INFO*)m_serverCombo.GetItemData(m_proto->m_serverComboSelection);
- if ((INT_PTR)pData != CB_ERR) {
- m_server.SetTextA(pData->m_address);
- m_port.SetInt(pData->m_portStart);
- m_port2.SetInt(pData->m_portEnd);
- }
- }
-
- m_spin1.SetPosition(m_proto->m_onlineNotificationTime);
- m_spin2.SetPosition(m_proto->m_onlineNotificationLimit);
-
- m_nick.SetText(m_proto->m_nick);
- m_nick2.SetText(m_proto->m_alternativeNick);
- m_userID.SetText(m_proto->m_userID);
- m_name.SetText(m_proto->m_name);
- m_pass.SetTextA(m_proto->m_password);
- m_identSystem.SetText(m_proto->m_identSystem);
- m_identPort.SetText(m_proto->m_identPort);
- m_address.SetState(m_proto->m_showAddresses);
- m_oldStyle.SetState(m_proto->m_oldStyleModes);
- m_useSasl.SetState(m_proto->m_bUseSASL);
- m_channelAway.SetState(m_proto->m_channelAwayNotification);
- m_onlineNotif.SetState(m_proto->m_autoOnlineNotification);
- m_ident.SetState(m_proto->m_ident);
- m_identTimer.SetState(m_proto->m_identTimer);
- m_disableError.SetState(m_proto->m_disableErrorPopups);
- m_forceVisible.SetState(m_proto->m_forceVisible);
- m_rejoinChannels.SetState(m_proto->m_rejoinChannels);
- m_rejoinOnKick.SetState(m_proto->m_rejoinIfKicked);
- m_enableServer.SetState(!m_proto->m_disableDefaultServer);
- m_keepAlive.SetState(m_proto->m_sendKeepAlive);
- m_useServer.SetState(m_proto->m_useServer);
- m_showServer.SetState(!m_proto->m_hideServerWindow);
- m_showServer.Enable(m_proto->m_useServer);
- m_autoJoin.SetState(m_proto->m_joinOnInvite);
- return true;
-}
+ CCtrlCheck m_ident, m_identTimer;
+ CCtrlEdit m_identSystem, m_identPort;
-void CConnectPrefsDlg::OnServerCombo(CCtrlData*)
-{
- int i = m_serverCombo.GetCurSel();
- SERVER_INFO *pData = (SERVER_INFO*)m_serverCombo.GetItemData(i);
- if (pData && (INT_PTR)pData != CB_ERR) {
- m_server.SetTextA(pData->m_address);
- m_port.SetInt(pData->m_portStart);
- m_port2.SetInt(pData->m_portEnd);
- m_pass.SetTextA("");
-
- if (pData->m_iSSL == 0)
- m_ssl.SetText(TranslateT("Off"));
- if (pData->m_iSSL == 1)
- m_ssl.SetText(TranslateT("Auto"));
- if (pData->m_iSSL == 2)
- m_ssl.SetText(TranslateT("On"));
-
- SendMessage(GetParent(m_hwnd), PSM_CHANGED, 0, 0);
- }
-}
+ CCtrlCheck m_forceVisible, m_rejoinOnKick, m_rejoinChannels, m_disableError;
+ CCtrlCheck m_address, m_useServer, m_showServer, m_keepAlive, m_autoJoin;
+ CCtrlCheck m_oldStyle, m_onlineNotif, m_channelAway, m_useSasl;
-void CConnectPrefsDlg::OnAddServer(CCtrlButton*)
-{
- m_serverCombo.Disable();
- m_add.Disable();
- m_edit.Disable();
- m_del.Disable();
- CServerDlg *dlg = new CServerDlg(m_proto, this, 1);
- dlg->Show();
-}
+ CCtrlEdit m_onlineTimer, m_limit;
+ CCtrlSpin m_spin1, m_spin2;
-void CConnectPrefsDlg::OnDeleteServer(CCtrlButton*)
-{
- int i = m_serverCombo.GetCurSel();
- if (i == CB_ERR)
- return;
-
- m_serverCombo.Disable();
- m_add.Disable();
- m_edit.Disable();
- m_del.Disable();
-
- SERVER_INFO *pData = (SERVER_INFO*)m_serverCombo.GetItemData(i);
- wchar_t temp[200];
- mir_snwprintf(temp, TranslateT("Do you want to delete\r\n%s"), (wchar_t*)_A2T(pData->m_name));
- if (MessageBox(m_hwnd, temp, TranslateT("Delete server"), MB_YESNO | MB_ICONQUESTION) == IDYES) {
- g_servers.remove(pData);
-
- m_serverCombo.DeleteString(i);
- if (i >= m_serverCombo.GetCount())
- i--;
- m_serverCombo.SetCurSel(i);
- OnServerCombo(nullptr);
- SendMessage(GetParent(m_hwnd), PSM_CHANGED, 0, 0);
- m_serverlistModified = true;
+public:
+ CConnectPrefsDlg::CConnectPrefsDlg(CIrcProto *_pro) :
+ CIrcBaseDlg(_pro, IDD_PREFS_CONNECT),
+ m_server(this, IDC_SERVER),
+ m_port(this, IDC_PORT),
+ m_port2(this, IDC_PORT2),
+ m_pass(this, IDC_PASS),
+ m_nick(this, IDC_NICK),
+ m_nick2(this, IDC_NICK2),
+ m_name(this, IDC_NAME),
+ m_userID(this, IDC_USERID),
+ m_ident(this, IDC_IDENT),
+ m_identSystem(this, IDC_IDENTSYSTEM),
+ m_identPort(this, IDC_IDENTPORT),
+ m_identTimer(this, IDC_IDENT_TIMED),
+ m_forceVisible(this, IDC_FORCEVISIBLE),
+ m_rejoinOnKick(this, IDC_REJOINONKICK),
+ m_rejoinChannels(this, IDC_REJOINCHANNELS),
+ m_disableError(this, IDC_DISABLEERROR),
+ m_address(this, IDC_ADDRESS),
+ m_useServer(this, IDC_USESERVER),
+ m_showServer(this, IDC_SHOWSERVER),
+ m_keepAlive(this, IDC_KEEPALIVE),
+ m_autoJoin(this, IDC_AUTOJOIN),
+ m_oldStyle(this, IDC_OLDSTYLE),
+ m_useSasl(this, IDC_SASL),
+ m_onlineNotif(this, IDC_ONLINENOTIF),
+ m_channelAway(this, IDC_CHANNELAWAY),
+ m_onlineTimer(this, IDC_ONLINETIMER),
+ m_limit(this, IDC_LIMIT),
+ m_spin1(this, IDC_SPIN1, 999, 20),
+ m_spin2(this, IDC_SPIN2, 200),
+ m_ssl(this, IDC_SSL)
+ {
+ m_ident.OnChange = Callback(this, &CConnectPrefsDlg::OnIdent);
+ m_useServer.OnChange = Callback(this, &CConnectPrefsDlg::OnUseServer);
+ m_onlineNotif.OnChange = Callback(this, &CConnectPrefsDlg::OnOnlineNotif);
+ m_channelAway.OnChange = Callback(this, &CConnectPrefsDlg::OnChannelAway);
}
- m_serverCombo.Enable();
- m_add.Enable();
- m_edit.Enable();
- m_del.Enable();
-}
-
-void CConnectPrefsDlg::OnEditServer(CCtrlButton*)
-{
- int i = m_serverCombo.GetCurSel();
- if (i == CB_ERR)
- return;
-
- m_serverCombo.Disable();
- m_add.Disable();
- m_edit.Disable();
- m_del.Disable();
- CServerDlg *dlg = new CServerDlg(m_proto, this, 2);
- dlg->Show();
- SetWindowText(dlg->GetHwnd(), TranslateT("Edit server"));
-}
-
-void CConnectPrefsDlg::OnStartup(CCtrlData*)
-{
- m_serverCombo.Enable(m_enableServer.GetState());
- m_add.Enable(m_enableServer.GetState());
- m_edit.Enable(m_enableServer.GetState());
- m_del.Enable(m_enableServer.GetState());
- m_server.Enable(m_enableServer.GetState());
- m_port.Enable(m_enableServer.GetState());
- m_port2.Enable(m_enableServer.GetState());
- m_pass.Enable(m_enableServer.GetState());
- m_ssl.Enable(m_enableServer.GetState());
-}
+ bool OnInitDialog() override
+ {
+ m_proto->m_hwndConnect = m_hwnd;
-void CConnectPrefsDlg::OnIdent(CCtrlData*)
-{
- m_identSystem.Enable(m_ident.GetState());
- m_identPort.Enable(m_ident.GetState());
- m_identTimer.Enable(m_ident.GetState());
-}
+ m_server.SetTextA(m_proto->m_serverName);
+ m_port.SetTextA(m_proto->m_portStart);
+ m_port2.SetTextA(m_proto->m_portEnd);
+ m_pass.SetTextA(m_proto->m_password);
+ m_useSasl.SetState(m_proto->m_bUseSASL);
-void CConnectPrefsDlg::OnUseServer(CCtrlData*)
-{
- EnableWindow(GetDlgItem(m_hwnd, IDC_SHOWSERVER), m_useServer.GetState());
-}
+ m_ssl.AddString(TranslateT("Off"), 0);
+ m_ssl.AddString(TranslateT("Auto"), 1);
+ m_ssl.AddString(TranslateT("On"), 2);
+ m_ssl.SetCurSel(m_proto->m_iSSL);
-void CConnectPrefsDlg::OnOnlineNotif(CCtrlData*)
-{
- m_channelAway.Enable(m_onlineNotif.GetState());
- m_onlineTimer.Enable(m_onlineNotif.GetState());
- m_spin1.Enable(m_onlineNotif.GetState());
- m_spin2.Enable(m_onlineNotif.GetState());
- m_limit.Enable(m_onlineNotif.GetState() && m_channelAway.GetState());
-}
+ m_spin1.SetPosition(m_proto->m_onlineNotificationTime);
+ m_spin2.SetPosition(m_proto->m_onlineNotificationLimit);
-void CConnectPrefsDlg::OnChannelAway(CCtrlData*)
-{
- m_spin2.Enable(m_onlineNotif.GetState() && m_channelAway.GetState());
- m_limit.Enable(m_onlineNotif.GetState() && m_channelAway.GetState());
-}
+ m_nick.SetText(m_proto->m_nick);
+ m_nick2.SetText(m_proto->m_alternativeNick);
+ m_userID.SetText(m_proto->m_userID);
+ m_name.SetText(m_proto->m_name);
+ m_identSystem.SetText(m_proto->m_identSystem);
+ m_identPort.SetText(m_proto->m_identPort);
+ m_address.SetState(m_proto->m_showAddresses);
+ m_oldStyle.SetState(m_proto->m_oldStyleModes);
+ m_channelAway.SetState(m_proto->m_channelAwayNotification);
+ m_onlineNotif.SetState(m_proto->m_autoOnlineNotification);
+ m_ident.SetState(m_proto->m_ident);
+ m_identTimer.SetState(m_proto->m_identTimer);
+ m_disableError.SetState(m_proto->m_disableErrorPopups);
+ m_forceVisible.SetState(m_proto->m_forceVisible);
+ m_rejoinChannels.SetState(m_proto->m_rejoinChannels);
+ m_rejoinOnKick.SetState(m_proto->m_rejoinIfKicked);
+ m_keepAlive.SetState(m_proto->m_sendKeepAlive);
+ m_useServer.SetState(m_proto->m_useServer);
+ m_showServer.SetState(!m_proto->m_hideServerWindow);
+ m_showServer.Enable(m_proto->m_useServer);
+ m_autoJoin.SetState(m_proto->m_joinOnInvite);
+ return true;
+ }
-bool CConnectPrefsDlg::OnApply()
-{
- //Save the setting in the CONNECT dialog
- if (m_enableServer.GetState()) {
+ bool OnApply() override
+ {
+ // Save the setting in the CONNECT dialog
m_server.GetTextA(m_proto->m_serverName, _countof(m_proto->m_serverName));
m_port.GetTextA(m_proto->m_portStart, _countof(m_proto->m_portStart));
m_port2.GetTextA(m_proto->m_portEnd, _countof(m_proto->m_portEnd));
m_pass.GetTextA(m_proto->m_password, _countof(m_proto->m_password));
- }
- else m_proto->m_serverName[0] = m_proto->m_portStart[0] = m_proto->m_portEnd[0] = m_proto->m_password[0] = 0;
-
- m_proto->m_onlineNotificationTime = SendDlgItemMessage(m_hwnd, IDC_SPIN1, UDM_GETPOS, 0, 0);
- m_proto->m_onlineNotificationLimit = SendDlgItemMessage(m_hwnd, IDC_SPIN2, UDM_GETPOS, 0, 0);
- m_proto->m_channelAwayNotification = m_channelAway.GetState();
-
- m_nick.GetText(m_proto->m_nick, _countof(m_proto->m_nick));
- removeSpaces(m_proto->m_nick);
- wcsncpy_s(m_proto->m_pNick, m_proto->m_nick, _TRUNCATE);
- m_nick2.GetText(m_proto->m_alternativeNick, _countof(m_proto->m_alternativeNick));
- removeSpaces(m_proto->m_alternativeNick);
- m_userID.GetText(m_proto->m_userID, _countof(m_proto->m_userID));
- removeSpaces(m_proto->m_userID);
- m_name.GetText(m_proto->m_name, _countof(m_proto->m_name));
- m_identSystem.GetText(m_proto->m_identSystem, _countof(m_proto->m_identSystem));
- m_identPort.GetText(m_proto->m_identPort, _countof(m_proto->m_identPort));
- m_proto->m_disableDefaultServer = !m_enableServer.GetState();
- m_proto->m_ident = m_ident.GetState();
- m_proto->m_identTimer = m_identTimer.GetState();
- m_proto->m_forceVisible = m_forceVisible.GetState();
- m_proto->m_disableErrorPopups = m_disableError.GetState();
- m_proto->m_rejoinChannels = m_rejoinChannels.GetState();
- m_proto->m_rejoinIfKicked = m_rejoinOnKick.GetState();
- m_proto->m_showAddresses = m_address.GetState();
- m_proto->m_oldStyleModes = m_oldStyle.GetState();
- m_proto->m_useServer = m_useServer.GetState();
- m_proto->m_bUseSASL = m_useSasl.GetState();
-
- Menu_EnableItem(m_proto->hMenuServer, m_proto->m_useServer != 0);
-
- m_proto->m_joinOnInvite = m_autoJoin.GetState();
- m_proto->m_hideServerWindow = !m_showServer.GetState();
- m_proto->m_serverComboSelection = m_serverCombo.GetCurSel();
- if (m_proto->m_sendKeepAlive = m_keepAlive.GetState())
- m_proto->SetChatTimer(m_proto->KeepAliveTimer, 60 * 1000, KeepAliveTimerProc);
- else
- m_proto->KillChatTimer(m_proto->KeepAliveTimer);
-
- m_proto->m_autoOnlineNotification = m_onlineNotif.GetState();
- if (m_proto->m_autoOnlineNotification) {
- if (!m_proto->bTempDisableCheck) {
- m_proto->SetChatTimer(m_proto->OnlineNotifTimer, 500, OnlineNotifTimerProc);
- if (m_proto->m_channelAwayNotification)
- m_proto->SetChatTimer(m_proto->OnlineNotifTimer3, 1500, OnlineNotifTimerProc3);
- }
- }
- else if (!m_proto->bTempForceCheck) {
- m_proto->KillChatTimer(m_proto->OnlineNotifTimer);
- m_proto->KillChatTimer(m_proto->OnlineNotifTimer3);
- }
+ m_proto->m_iSSL = m_ssl.GetCurSel();
+ m_proto->m_bUseSASL = m_useSasl.GetState();
- int i = m_serverCombo.GetCurSel();
- SERVER_INFO *pData = (SERVER_INFO*)m_serverCombo.GetItemData(i);
- if (pData && (INT_PTR)pData != CB_ERR) {
- if (m_enableServer.GetState())
- mir_strcpy(m_proto->m_network, pData->m_group);
+ m_proto->m_onlineNotificationTime = SendDlgItemMessage(m_hwnd, IDC_SPIN1, UDM_GETPOS, 0, 0);
+ m_proto->m_onlineNotificationLimit = SendDlgItemMessage(m_hwnd, IDC_SPIN2, UDM_GETPOS, 0, 0);
+ m_proto->m_channelAwayNotification = m_channelAway.GetState();
+
+ m_nick.GetText(m_proto->m_nick, _countof(m_proto->m_nick));
+ removeSpaces(m_proto->m_nick);
+ wcsncpy_s(m_proto->m_pNick, m_proto->m_nick, _TRUNCATE);
+ m_nick2.GetText(m_proto->m_alternativeNick, _countof(m_proto->m_alternativeNick));
+ removeSpaces(m_proto->m_alternativeNick);
+ m_userID.GetText(m_proto->m_userID, _countof(m_proto->m_userID));
+ removeSpaces(m_proto->m_userID);
+ m_name.GetText(m_proto->m_name, _countof(m_proto->m_name));
+ m_identSystem.GetText(m_proto->m_identSystem, _countof(m_proto->m_identSystem));
+ m_identPort.GetText(m_proto->m_identPort, _countof(m_proto->m_identPort));
+ m_proto->m_ident = m_ident.GetState();
+ m_proto->m_identTimer = m_identTimer.GetState();
+ m_proto->m_forceVisible = m_forceVisible.GetState();
+ m_proto->m_disableErrorPopups = m_disableError.GetState();
+ m_proto->m_rejoinChannels = m_rejoinChannels.GetState();
+ m_proto->m_rejoinIfKicked = m_rejoinOnKick.GetState();
+ m_proto->m_showAddresses = m_address.GetState();
+ m_proto->m_oldStyleModes = m_oldStyle.GetState();
+ m_proto->m_useServer = m_useServer.GetState();
+
+ Menu_EnableItem(m_proto->hMenuServer, m_proto->m_useServer != 0);
+
+ m_proto->m_joinOnInvite = m_autoJoin.GetState();
+ m_proto->m_hideServerWindow = !m_showServer.GetState();
+ if (m_proto->m_sendKeepAlive = m_keepAlive.GetState())
+ m_proto->SetChatTimer(m_proto->KeepAliveTimer, 60 * 1000, KeepAliveTimerProc);
else
- mir_strcpy(m_proto->m_network, "");
- m_proto->m_iSSL = pData->m_iSSL;
- }
+ m_proto->KillChatTimer(m_proto->KeepAliveTimer);
+
+ m_proto->m_autoOnlineNotification = m_onlineNotif.GetState();
+ if (m_proto->m_autoOnlineNotification) {
+ if (!m_proto->bTempDisableCheck) {
+ m_proto->SetChatTimer(m_proto->OnlineNotifTimer, 500, OnlineNotifTimerProc);
+ if (m_proto->m_channelAwayNotification)
+ m_proto->SetChatTimer(m_proto->OnlineNotifTimer3, 1500, OnlineNotifTimerProc3);
+ }
+ }
+ else if (!m_proto->bTempForceCheck) {
+ m_proto->KillChatTimer(m_proto->OnlineNotifTimer);
+ m_proto->KillChatTimer(m_proto->OnlineNotifTimer3);
+ }
- if (m_serverlistModified) {
- m_serverlistModified = false;
- db_delete_module(0, SERVERSMODULE);
+ m_proto->WriteSettings(ConnectSettings, _countof(ConnectSettings));
+ return true;
+ }
- int j = m_serverCombo.GetCount();
- if (j != CB_ERR && j != 0) {
- for (int index2 = 0; index2 < j; index2++) {
- pData = (SERVER_INFO*)m_serverCombo.GetItemData(index2);
- if (pData == nullptr || (INT_PTR)pData == CB_ERR)
- continue;
+ void OnIdent(CCtrlData *)
+ {
+ m_identSystem.Enable(m_ident.GetState());
+ m_identPort.Enable(m_ident.GetState());
+ m_identTimer.Enable(m_ident.GetState());
+ }
- char TextLine[512];
- if (pData->m_iSSL > 0)
- mir_snprintf(TextLine, "SERVER:SSL%u%s:%d-%dGROUP:%s", pData->m_iSSL, pData->m_address, pData->m_portStart, pData->m_portEnd, pData->m_group);
- else
- mir_snprintf(TextLine, "SERVER:%s:%d-%dGROUP:%s", pData->m_address, pData->m_portStart, pData->m_portEnd, pData->m_group);
- db_set_s(0, SERVERSMODULE, pData->m_name, TextLine);
+ void OnUseServer(CCtrlData *)
+ {
+ EnableWindow(GetDlgItem(m_hwnd, IDC_SHOWSERVER), m_useServer.GetState());
+ }
- // combobox might contain new items
- if (g_servers.find(pData) == nullptr)
- g_servers.insert(pData);
- }
- }
+ void OnOnlineNotif(CCtrlData *)
+ {
+ m_channelAway.Enable(m_onlineNotif.GetState());
+ m_onlineTimer.Enable(m_onlineNotif.GetState());
+ m_spin1.Enable(m_onlineNotif.GetState());
+ m_spin2.Enable(m_onlineNotif.GetState());
+ m_limit.Enable(m_onlineNotif.GetState() && m_channelAway.GetState());
}
- m_proto->WriteSettings(ConnectSettings, _countof(ConnectSettings));
- return true;
-}
+ void OnChannelAway(CCtrlData *)
+ {
+ m_spin2.Enable(m_onlineNotif.GetState() && m_channelAway.GetState());
+ m_limit.Enable(m_onlineNotif.GetState() && m_channelAway.GetState());
+ }
+};
/////////////////////////////////////////////////////////////////////////////////////////
// 'CTCP preferences' dialog
static TDbSetting CtcpSettings[] =
{
- { FIELD_OFFSET(CIrcProto, m_userInfo), "UserInfo", DBVT_WCHAR, _countof(pZero->m_userInfo) },
+ { FIELD_OFFSET(CIrcProto, m_userInfo), "UserInfo", DBVT_WCHAR, _countof(CIrcProto::m_userInfo) },
{ FIELD_OFFSET(CIrcProto, m_DCCPacketSize), "DccPacketSize", DBVT_WORD, 0, 4096 },
{ FIELD_OFFSET(CIrcProto, m_DCCPassive), "DccPassive", DBVT_BYTE },
{ FIELD_OFFSET(CIrcProto, m_DCCMode), "DCCMode", DBVT_BYTE },
{ FIELD_OFFSET(CIrcProto, m_manualHost), "ManualHost", DBVT_BYTE },
{ FIELD_OFFSET(CIrcProto, m_IPFromServer), "IPFromServer", DBVT_BYTE, 0, 1 },
{ FIELD_OFFSET(CIrcProto, m_disconnectDCCChats), "DisconnectDCCChats", DBVT_BYTE },
- { FIELD_OFFSET(CIrcProto, m_mySpecifiedHost), "SpecHost", DBVT_ASCIIZ, _countof(pZero->m_mySpecifiedHost) },
+ { FIELD_OFFSET(CIrcProto, m_mySpecifiedHost), "SpecHost", DBVT_ASCIIZ, _countof(CIrcProto::m_mySpecifiedHost) },
{ FIELD_OFFSET(CIrcProto, m_DCCChatAccept), "CtcpChatAccept", DBVT_BYTE, 0, 1 },
{ FIELD_OFFSET(CIrcProto, m_sendNotice), "SendNotice", DBVT_BYTE, 0, 1 }
};
-CCtcpPrefsDlg::CCtcpPrefsDlg(CIrcProto* _pro)
- : CProtoDlgBase<CIrcProto>(_pro, IDD_PREFS_CTCP),
- m_enableIP(this, IDC_ENABLEIP),
- m_fromServer(this, IDC_FROMSERVER),
- m_combo(this, IDC_COMBO),
- m_slow(this, IDC_SLOW),
- m_fast(this, IDC_FAST),
- m_disc(this, IDC_DISC),
- m_passive(this, IDC_PASSIVE),
- m_sendNotice(this, IDC_SENDNOTICE),
- m_ip(this, IDC_IP),
- m_userInfo(this, IDC_USERINFO),
- m_radio1(this, IDC_RADIO1),
- m_radio2(this, IDC_RADIO2),
- m_radio3(this, IDC_RADIO3)
-{
- m_enableIP.OnChange = Callback(this, &CCtcpPrefsDlg::OnClicked);
- m_fromServer.OnChange = Callback(this, &CCtcpPrefsDlg::OnClicked);
-}
+class CCtcpPrefsDlg : public CIrcBaseDlg
+{
+ CCtrlCombo m_combo;
+ CCtrlCheck m_slow, m_fast, m_disc, m_passive, m_sendNotice, m_enableIP, m_fromServer;
+ CCtrlEdit m_ip, m_userInfo;
+ CCtrlCheck m_radio1, m_radio2, m_radio3;
+
+public:
+ CCtcpPrefsDlg(CIrcProto *_pro) :
+ CIrcBaseDlg(_pro, IDD_PREFS_CTCP),
+ m_enableIP(this, IDC_ENABLEIP),
+ m_fromServer(this, IDC_FROMSERVER),
+ m_combo(this, IDC_COMBO),
+ m_slow(this, IDC_SLOW),
+ m_fast(this, IDC_FAST),
+ m_disc(this, IDC_DISC),
+ m_passive(this, IDC_PASSIVE),
+ m_sendNotice(this, IDC_SENDNOTICE),
+ m_ip(this, IDC_IP),
+ m_userInfo(this, IDC_USERINFO),
+ m_radio1(this, IDC_RADIO1),
+ m_radio2(this, IDC_RADIO2),
+ m_radio3(this, IDC_RADIO3)
+ {
+ m_enableIP.OnChange = Callback(this, &CCtcpPrefsDlg::OnClicked);
+ m_fromServer.OnChange = Callback(this, &CCtcpPrefsDlg::OnClicked);
+ }
-bool CCtcpPrefsDlg::OnInitDialog()
-{
- m_userInfo.SetText(m_proto->m_userInfo);
-
- m_slow.SetState(m_proto->m_DCCMode == 0);
- m_fast.SetState(m_proto->m_DCCMode == 1);
- m_disc.SetState(m_proto->m_disconnectDCCChats);
- m_passive.SetState(m_proto->m_DCCPassive);
- m_sendNotice.SetState(m_proto->m_sendNotice);
-
- m_combo.AddStringA("256");
- m_combo.AddStringA("512");
- m_combo.AddStringA("1024");
- m_combo.AddStringA("2048");
- m_combo.AddStringA("4096");
- m_combo.AddStringA("8192");
-
- wchar_t szTemp[10];
- mir_snwprintf(szTemp, L"%u", m_proto->m_DCCPacketSize);
- int i = m_combo.SelectString(szTemp);
- if (i == CB_ERR)
- m_combo.SelectString(L"4096");
-
- if (m_proto->m_DCCChatAccept == 1)
- m_radio1.SetState(true);
- if (m_proto->m_DCCChatAccept == 2)
- m_radio2.SetState(true);
- if (m_proto->m_DCCChatAccept == 3)
- m_radio3.SetState(true);
-
- m_fromServer.SetState(m_proto->m_IPFromServer);
- m_enableIP.SetState(m_proto->m_manualHost);
- m_ip.Enable(m_proto->m_manualHost);
- m_fromServer.Enable(!m_proto->m_manualHost);
- if (m_proto->m_manualHost)
- m_ip.SetTextA(m_proto->m_mySpecifiedHost);
- else {
- if (m_proto->m_IPFromServer) {
- if (m_proto->m_myHost[0]) {
- CMStringW s = (CMStringW)TranslateT("<Resolved IP: ") + (wchar_t*)_A2T(m_proto->m_myHost) + L">";
- m_ip.SetText(s.c_str());
- }
- else m_ip.SetText(TranslateT("<Automatic>"));
- }
+ bool OnInitDialog() override
+ {
+ m_userInfo.SetText(m_proto->m_userInfo);
+
+ m_slow.SetState(m_proto->m_DCCMode == 0);
+ m_fast.SetState(m_proto->m_DCCMode == 1);
+ m_disc.SetState(m_proto->m_disconnectDCCChats);
+ m_passive.SetState(m_proto->m_DCCPassive);
+ m_sendNotice.SetState(m_proto->m_sendNotice);
+
+ m_combo.AddStringA("256");
+ m_combo.AddStringA("512");
+ m_combo.AddStringA("1024");
+ m_combo.AddStringA("2048");
+ m_combo.AddStringA("4096");
+ m_combo.AddStringA("8192");
+
+ wchar_t szTemp[10];
+ mir_snwprintf(szTemp, L"%u", m_proto->m_DCCPacketSize);
+ int i = m_combo.SelectString(szTemp);
+ if (i == CB_ERR)
+ m_combo.SelectString(L"4096");
+
+ if (m_proto->m_DCCChatAccept == 1)
+ m_radio1.SetState(true);
+ if (m_proto->m_DCCChatAccept == 2)
+ m_radio2.SetState(true);
+ if (m_proto->m_DCCChatAccept == 3)
+ m_radio3.SetState(true);
+
+ m_fromServer.SetState(m_proto->m_IPFromServer);
+ m_enableIP.SetState(m_proto->m_manualHost);
+ m_ip.Enable(m_proto->m_manualHost);
+ m_fromServer.Enable(!m_proto->m_manualHost);
+ if (m_proto->m_manualHost)
+ m_ip.SetTextA(m_proto->m_mySpecifiedHost);
else {
- if (m_proto->m_myLocalHost[0]) {
- CMStringW s = (CMStringW)TranslateT("<Local IP: ") + (wchar_t*)_A2T(m_proto->m_myLocalHost) + L">";
- m_ip.SetText(s.c_str());
+ if (m_proto->m_IPFromServer) {
+ if (m_proto->m_myHost[0]) {
+ CMStringW s = (CMStringW)TranslateT("<Resolved IP: ") + (wchar_t *)_A2T(m_proto->m_myHost) + L">";
+ m_ip.SetText(s.c_str());
+ }
+ else m_ip.SetText(TranslateT("<Automatic>"));
+ }
+ else {
+ if (m_proto->m_myLocalHost[0]) {
+ CMStringW s = (CMStringW)TranslateT("<Local IP: ") + (wchar_t *)_A2T(m_proto->m_myLocalHost) + L">";
+ m_ip.SetText(s.c_str());
+ }
+ else m_ip.SetText(TranslateT("<Automatic>"));
}
- else m_ip.SetText(TranslateT("<Automatic>"));
}
+ return true;
}
- return true;
-}
-
-void CCtcpPrefsDlg::OnClicked(CCtrlData*)
-{
- m_ip.Enable(m_enableIP.GetState());
- m_fromServer.Enable(!m_enableIP.GetState());
- if (m_enableIP.GetState())
- m_ip.SetTextA(m_proto->m_mySpecifiedHost);
- else {
- if (m_fromServer.GetState()) {
- if (m_proto->m_myHost[0]) {
- CMStringW s = (CMStringW)TranslateT("<Resolved IP: ") + (wchar_t*)_A2T(m_proto->m_myHost) + L">";
- m_ip.SetText(s.c_str());
- }
- else m_ip.SetText(TranslateT("<Automatic>"));
- }
- else {
- if (m_proto->m_myLocalHost[0]) {
- CMStringW s = (CMStringW)TranslateT("<Local IP: ") + (wchar_t*)_A2T(m_proto->m_myLocalHost) + L">";
- m_ip.SetText(s.c_str());
- }
- else m_ip.SetText(TranslateT("<Automatic>"));
+ bool OnApply() override
+ {
+ m_userInfo.GetText(m_proto->m_userInfo, _countof(m_proto->m_userInfo));
+
+ m_proto->m_DCCPacketSize = m_combo.GetInt();
+ m_proto->m_DCCPassive = m_passive.GetState();
+ m_proto->m_sendNotice = m_sendNotice.GetState();
+ m_proto->m_DCCMode = m_fast.GetState();
+ m_proto->m_manualHost = m_enableIP.GetState();
+ m_proto->m_IPFromServer = m_fromServer.GetState();
+ m_proto->m_disconnectDCCChats = m_disc.GetState();
+
+ if (m_enableIP.GetState()) {
+ char szTemp[500];
+ m_ip.GetTextA(szTemp, sizeof(szTemp));
+ mir_strncpy(m_proto->m_mySpecifiedHost, GetWord(szTemp, 0).c_str(), 499);
+ if (mir_strlen(m_proto->m_mySpecifiedHost))
+ m_proto->ForkThread(&CIrcProto::ResolveIPThread, new IPRESOLVE(m_proto->m_mySpecifiedHost, IP_MANUAL));
}
- }
-}
+ else m_proto->m_mySpecifiedHost[0] = 0;
-bool CCtcpPrefsDlg::OnApply()
-{
- m_userInfo.GetText(m_proto->m_userInfo, _countof(m_proto->m_userInfo));
-
- m_proto->m_DCCPacketSize = m_combo.GetInt();
- m_proto->m_DCCPassive = m_passive.GetState();
- m_proto->m_sendNotice = m_sendNotice.GetState();
- m_proto->m_DCCMode = m_fast.GetState();
- m_proto->m_manualHost = m_enableIP.GetState();
- m_proto->m_IPFromServer = m_fromServer.GetState();
- m_proto->m_disconnectDCCChats = m_disc.GetState();
-
- if (m_enableIP.GetState()) {
- char szTemp[500];
- m_ip.GetTextA(szTemp, sizeof(szTemp));
- mir_strncpy(m_proto->m_mySpecifiedHost, GetWord(szTemp, 0).c_str(), 499);
- if (mir_strlen(m_proto->m_mySpecifiedHost))
- m_proto->ForkThread(&CIrcProto::ResolveIPThread, new IPRESOLVE(m_proto->m_mySpecifiedHost, IP_MANUAL));
+ if (m_radio1.GetState())
+ m_proto->m_DCCChatAccept = 1;
+ if (m_radio2.GetState())
+ m_proto->m_DCCChatAccept = 2;
+ if (m_radio3.GetState())
+ m_proto->m_DCCChatAccept = 3;
+
+ m_proto->WriteSettings(CtcpSettings, _countof(CtcpSettings));
+ return true;
}
- else m_proto->m_mySpecifiedHost[0] = 0;
- if (m_radio1.GetState())
- m_proto->m_DCCChatAccept = 1;
- if (m_radio2.GetState())
- m_proto->m_DCCChatAccept = 2;
- if (m_radio3.GetState())
- m_proto->m_DCCChatAccept = 3;
+ void OnClicked(CCtrlData *)
+ {
+ m_ip.Enable(m_enableIP.GetState());
+ m_fromServer.Enable(!m_enableIP.GetState());
- m_proto->WriteSettings(CtcpSettings, _countof(CtcpSettings));
- return true;
-}
+ if (m_enableIP.GetState())
+ m_ip.SetTextA(m_proto->m_mySpecifiedHost);
+ else {
+ if (m_fromServer.GetState()) {
+ if (m_proto->m_myHost[0]) {
+ CMStringW s = (CMStringW)TranslateT("<Resolved IP: ") + (wchar_t *)_A2T(m_proto->m_myHost) + L">";
+ m_ip.SetText(s.c_str());
+ }
+ else m_ip.SetText(TranslateT("<Automatic>"));
+ }
+ else {
+ if (m_proto->m_myLocalHost[0]) {
+ CMStringW s = (CMStringW)TranslateT("<Local IP: ") + (wchar_t *)_A2T(m_proto->m_myLocalHost) + L">";
+ m_ip.SetText(s.c_str());
+ }
+ else m_ip.SetText(TranslateT("<Automatic>"));
+ }
+ }
+ }
+};
/////////////////////////////////////////////////////////////////////////////////////////
// 'Advanced preferences' dialog
static TDbSetting OtherSettings[] =
{
- { FIELD_OFFSET(CIrcProto, m_quitMessage), "QuitMessage", DBVT_WCHAR, _countof(pZero->m_quitMessage) },
+ { FIELD_OFFSET(CIrcProto, m_quitMessage), "QuitMessage", DBVT_WCHAR, _countof(CIrcProto::m_quitMessage) },
{ FIELD_OFFSET(CIrcProto, m_alias), "Alias", DBVT_WCHAR, (size_t)-1 },
{ FIELD_OFFSET(CIrcProto, m_codepage), "Codepage", DBVT_DWORD, 0, CP_ACP },
{ FIELD_OFFSET(CIrcProto, m_utfAutodetect), "UtfAutodetect", DBVT_BYTE },
@@ -904,14 +588,14 @@ static TDbSetting OtherSettings[] = };
static char* sttPerformEvents[] = {
+ LPGEN("Event: Connect"),
LPGEN("Event: Available"),
LPGEN("Event: Away"),
LPGEN("Event: Not available"),
LPGEN("Event: Occupied"),
LPGEN("Event: Do not disturb"),
LPGEN("Event: Free for chat"),
- LPGEN("Event: Disconnect"),
- LPGEN("ALL NETWORKS")
+ LPGEN("Event: Disconnect")
};
static LRESULT CALLBACK EditSubclassProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
@@ -937,276 +621,268 @@ static LRESULT CALLBACK EditSubclassProc(HWND hwndDlg, UINT msg, WPARAM wParam, return mir_callNextSubclass(hwndDlg, EditSubclassProc, msg, wParam, lParam);
}
-COtherPrefsDlg::COtherPrefsDlg(CIrcProto *_pro) :
- CProtoDlgBase<CIrcProto>(_pro, IDD_PREFS_OTHER),
- m_url(this, IDC_CUSTOM),
- m_performCombo(this, IDC_PERFORMCOMBO),
- m_codepage(this, IDC_CODEPAGE),
- m_pertormEdit(this, IDC_PERFORMEDIT),
- m_perform(this, IDC_PERFORM),
- m_scripting(this, IDC_SCRIPT),
- m_autodetect(this, IDC_UTF_AUTODETECT),
- m_quitMessage(this, IDC_QUITMESSAGE),
- m_alias(this, IDC_ALIASEDIT),
- m_add(this, IDC_ADD, g_plugin.getIcon(IDI_ADD), LPGEN("Click to set commands that will be performed for this event")),
- m_delete(this, IDC_DELETE, g_plugin.getIcon(IDI_DELETE), LPGEN("Click to delete the commands for this event")),
- m_performlistModified(false)
-{
- m_performCombo.OnChange = Callback(this, &COtherPrefsDlg::OnPerformCombo);
- m_codepage.OnChange = Callback(this, &COtherPrefsDlg::OnCodePage);
- m_pertormEdit.OnChange = Callback(this, &COtherPrefsDlg::OnPerformEdit);
- m_perform.OnChange = Callback(this, &COtherPrefsDlg::OnPerform);
- m_add.OnClick = Callback(this, &COtherPrefsDlg::OnAdd);
- m_delete.OnClick = Callback(this, &COtherPrefsDlg::OnDelete);
-}
-
-bool COtherPrefsDlg::OnInitDialog()
-{
- mir_subclassWindow(m_alias.GetHwnd(), EditSubclassProc);
- mir_subclassWindow(m_quitMessage.GetHwnd(), EditSubclassProc);
- mir_subclassWindow(m_pertormEdit.GetHwnd(), EditSubclassProc);
-
- m_alias.SetText(m_proto->m_alias);
- m_quitMessage.SetText(m_proto->m_quitMessage);
- m_perform.SetState(m_proto->m_perform);
- m_scripting.SetState(m_proto->m_scriptingEnabled);
- m_performCombo.Enable(m_proto->m_perform);
- m_pertormEdit.Enable(m_proto->m_perform);
- m_add.Enable(m_proto->m_perform);
- m_delete.Enable(m_proto->m_perform);
-
- m_codepage.AddString(TranslateT("Default ANSI codepage"), CP_ACP);
-
- sttCombo = &m_codepage;
- EnumSystemCodePages(sttLangAddCallback, CP_INSTALLED);
-
- for (int i = m_codepage.GetCount(); i >= 0; i--) {
- if (m_codepage.GetItemData(i) == m_proto->m_codepage) {
- m_codepage.SetCurSel(i);
- break;
- }
+class COtherPrefsDlg : public CIrcBaseDlg
+{
+ bool m_performlistModified;
+
+ CCtrlButton m_url;
+ CCtrlMButton m_add, m_delete;
+ CCtrlCombo m_performCombo, m_codepage;
+ CCtrlEdit m_pertormEdit, m_quitMessage, m_alias;
+ CCtrlCheck m_perform, m_scripting, m_autodetect;
+
+public:
+ COtherPrefsDlg(CIrcProto *_pro) :
+ CIrcBaseDlg(_pro, IDD_PREFS_OTHER),
+ m_url(this, IDC_CUSTOM),
+ m_performCombo(this, IDC_PERFORMCOMBO),
+ m_codepage(this, IDC_CODEPAGE),
+ m_pertormEdit(this, IDC_PERFORMEDIT),
+ m_perform(this, IDC_PERFORM),
+ m_scripting(this, IDC_SCRIPT),
+ m_autodetect(this, IDC_UTF_AUTODETECT),
+ m_quitMessage(this, IDC_QUITMESSAGE),
+ m_alias(this, IDC_ALIASEDIT),
+ m_add(this, IDC_ADD, g_plugin.getIcon(IDI_ADD), LPGEN("Click to set commands that will be performed for this event")),
+ m_delete(this, IDC_DELETE, g_plugin.getIcon(IDI_DELETE), LPGEN("Click to delete the commands for this event")),
+ m_performlistModified(false)
+ {
+ m_performCombo.OnChange = Callback(this, &COtherPrefsDlg::OnPerformCombo);
+ m_codepage.OnChange = Callback(this, &COtherPrefsDlg::OnCodePage);
+ m_pertormEdit.OnChange = Callback(this, &COtherPrefsDlg::OnPerformEdit);
+ m_perform.OnChange = Callback(this, &COtherPrefsDlg::OnPerform);
+ m_add.OnClick = Callback(this, &COtherPrefsDlg::OnAdd);
+ m_delete.OnClick = Callback(this, &COtherPrefsDlg::OnDelete);
}
- if (m_proto->m_codepage == CP_UTF8)
- m_autodetect.Disable();
-
- for (auto &si : g_servers) {
- int idx = m_performCombo.FindStringA(si->m_group, -1, true);
- if (idx == CB_ERR) {
- idx = m_performCombo.AddStringA(si->m_group);
- addPerformComboValue(idx, si->m_group);
+ bool OnInitDialog()
+ {
+ mir_subclassWindow(m_alias.GetHwnd(), EditSubclassProc);
+ mir_subclassWindow(m_quitMessage.GetHwnd(), EditSubclassProc);
+ mir_subclassWindow(m_pertormEdit.GetHwnd(), EditSubclassProc);
+
+ m_alias.SetText(m_proto->m_alias);
+ m_quitMessage.SetText(m_proto->m_quitMessage);
+ m_perform.SetState(m_proto->m_perform);
+ m_scripting.SetState(m_proto->m_scriptingEnabled);
+ m_performCombo.Enable(m_proto->m_perform);
+ m_pertormEdit.Enable(m_proto->m_perform);
+ m_add.Enable(m_proto->m_perform);
+ m_delete.Enable(m_proto->m_perform);
+
+ m_codepage.AddString(TranslateT("Default ANSI codepage"), CP_ACP);
+
+ sttCombo = &m_codepage;
+ EnumSystemCodePages(sttLangAddCallback, CP_INSTALLED);
+
+ for (int i = m_codepage.GetCount(); i >= 0; i--) {
+ if (m_codepage.GetItemData(i) == m_proto->m_codepage) {
+ m_codepage.SetCurSel(i);
+ break;
+ }
}
- }
-
- for (int i = 0; i < _countof(sttPerformEvents); i++) {
- int idx = m_performCombo.InsertString(_A2T(Translate(sttPerformEvents[i])), i);
- addPerformComboValue(idx, sttPerformEvents[i]);
- }
-
- m_performCombo.SetCurSel(0);
- OnPerformCombo(nullptr);
- m_autodetect.SetState(m_proto->m_utfAutodetect);
- return true;
-}
-void COtherPrefsDlg::OnPerformCombo(CCtrlData*)
-{
- int i = m_performCombo.GetCurSel();
- PERFORM_INFO *pPerf = (PERFORM_INFO*)m_performCombo.GetItemData(i);
- if (pPerf == nullptr)
- m_pertormEdit.SetTextA("");
- else
- m_pertormEdit.SetText(pPerf->mText.c_str());
- m_add.Disable();
- if (GetWindowTextLength(m_pertormEdit.GetHwnd()) != 0)
- m_delete.Enable();
- else
- m_delete.Disable();
-}
+ if (m_proto->m_codepage == CP_UTF8)
+ m_autodetect.Disable();
-void COtherPrefsDlg::OnCodePage(CCtrlData*)
-{
- int curSel = m_codepage.GetCurSel();
- m_autodetect.Enable(m_codepage.GetItemData(curSel) != CP_UTF8);
-}
+ for (auto &it: sttPerformEvents) {
+ CMStringA sSetting = CMStringA("PERFORM:") + it;
+ sSetting.MakeUpper();
-void COtherPrefsDlg::OnPerformEdit(CCtrlData*)
-{
- m_add.Enable();
+ PERFORM_INFO *pPref = new PERFORM_INFO(sSetting.c_str(), m_proto->getMStringW(sSetting.c_str()));
+ m_performCombo.AddString(_A2T(Translate(it)), (LPARAM)pPref);
+ }
- if (GetWindowTextLength(m_pertormEdit.GetHwnd()) != 0)
- m_delete.Enable();
- else
- m_delete.Disable();
-}
+ m_performCombo.SetCurSel(0);
+ OnPerformCombo(nullptr);
+ m_autodetect.SetState(m_proto->m_utfAutodetect);
+ return true;
+ }
-void COtherPrefsDlg::OnPerform(CCtrlData*)
-{
- m_performCombo.Enable(m_perform.GetState());
- m_pertormEdit.Enable(m_perform.GetState());
- m_add.Enable(m_perform.GetState());
- m_delete.Enable(m_perform.GetState());
-}
+ bool OnApply() override
+ {
+ mir_free(m_proto->m_alias);
+ m_proto->m_alias = m_alias.GetText();
+ m_quitMessage.GetText(m_proto->m_quitMessage, _countof(m_proto->m_quitMessage));
-void COtherPrefsDlg::OnAdd(CCtrlButton*)
-{
- wchar_t *temp = m_pertormEdit.GetText();
+ int curSel = m_codepage.GetCurSel();
+ m_proto->m_codepage = m_codepage.GetItemData(curSel);
+ if (m_proto->IsConnected())
+ m_proto->setCodepage(m_proto->m_codepage);
+
+ m_proto->m_utfAutodetect = m_autodetect.GetState();
+ m_proto->m_perform = m_perform.GetState();
+ m_proto->m_scriptingEnabled = m_scripting.GetState();
+ if (m_add.Enabled())
+ OnAdd(nullptr);
+
+ if (m_performlistModified) {
+ int count = m_performCombo.GetCount();
+ for (int i = 0; i < count; i++) {
+ PERFORM_INFO *pPerf = (PERFORM_INFO *)m_performCombo.GetItemData(i);
+ if ((INT_PTR)pPerf == CB_ERR)
+ continue;
- if (my_strstri(temp, L"/away"))
- MessageBox(nullptr, TranslateT("The usage of /AWAY in your perform buffer is restricted\n as IRC sends this command automatically."), TranslateT("IRC Error"), MB_OK);
- else {
- int i = m_performCombo.GetCurSel();
- if (i != CB_ERR) {
- PERFORM_INFO *pPerf = (PERFORM_INFO*)m_performCombo.GetItemData(i);
- if (pPerf != nullptr)
- pPerf->mText = temp;
+ if (pPerf->mText.IsEmpty())
+ m_proto->delSetting(pPerf->mSetting.c_str());
+ else
+ m_proto->setWString(pPerf->mSetting.c_str(), pPerf->mText.c_str());
+ }
+ }
+ m_proto->WriteSettings(OtherSettings, _countof(OtherSettings));
+ return true;
+ }
- m_add.Disable();
- m_performlistModified = true;
+ void OnDestroy() override
+ {
+ int i = m_performCombo.GetCount();
+ if (i != CB_ERR && i != 0) {
+ for (int index = 0; index < i; index++) {
+ PERFORM_INFO *pPerf = (PERFORM_INFO *)m_performCombo.GetItemData(index);
+ if ((INT_PTR)pPerf != CB_ERR && pPerf != nullptr)
+ delete pPerf;
+ }
}
}
- mir_free(temp);
-}
-void COtherPrefsDlg::OnDelete(CCtrlButton*)
-{
- int i = m_performCombo.GetCurSel();
- if (i != CB_ERR) {
- PERFORM_INFO *pPerf = (PERFORM_INFO*)m_performCombo.GetItemData(i);
- if (pPerf != nullptr) {
- pPerf->mText = L"";
+ void OnPerformCombo(CCtrlData *)
+ {
+ int i = m_performCombo.GetCurSel();
+ if (i == CB_ERR)
+ return;
+
+ PERFORM_INFO *pPerf = (PERFORM_INFO *)m_performCombo.GetItemData(i);
+ if (pPerf == nullptr)
m_pertormEdit.SetTextA("");
+ else
+ m_pertormEdit.SetText(pPerf->mText.c_str());
+ m_add.Disable();
+ if (GetWindowTextLength(m_pertormEdit.GetHwnd()) != 0)
+ m_delete.Enable();
+ else
m_delete.Disable();
- m_add.Disable();
- }
+ }
- m_performlistModified = true;
+ void OnCodePage(CCtrlData *)
+ {
+ int curSel = m_codepage.GetCurSel();
+ m_autodetect.Enable(m_codepage.GetItemData(curSel) != CP_UTF8);
}
-}
-void COtherPrefsDlg::OnDestroy()
-{
- int i = m_performCombo.GetCount();
- if (i != CB_ERR && i != 0) {
- for (int index = 0; index < i; index++) {
- PERFORM_INFO *pPerf = (PERFORM_INFO*)m_performCombo.GetItemData(index);
- if ((INT_PTR)pPerf != CB_ERR && pPerf != nullptr)
- delete pPerf;
- }
+ void OnPerformEdit(CCtrlData *)
+ {
+ m_add.Enable();
+
+ if (GetWindowTextLength(m_pertormEdit.GetHwnd()) != 0)
+ m_delete.Enable();
+ else
+ m_delete.Disable();
}
-}
-bool COtherPrefsDlg::OnApply()
-{
- mir_free(m_proto->m_alias);
- m_proto->m_alias = m_alias.GetText();
- m_quitMessage.GetText(m_proto->m_quitMessage, _countof(m_proto->m_quitMessage));
-
- int curSel = m_codepage.GetCurSel();
- m_proto->m_codepage = m_codepage.GetItemData(curSel);
- if (m_proto->IsConnected())
- m_proto->setCodepage(m_proto->m_codepage);
-
- m_proto->m_utfAutodetect = m_autodetect.GetState();
- m_proto->m_perform = m_perform.GetState();
- m_proto->m_scriptingEnabled = m_scripting.GetState();
- if (m_add.Enabled())
- OnAdd(nullptr);
-
- if (m_performlistModified) {
- int count = m_performCombo.GetCount();
- for (int i = 0; i < count; i++) {
- PERFORM_INFO *pPerf = (PERFORM_INFO*)m_performCombo.GetItemData(i);
- if ((INT_PTR)pPerf == CB_ERR)
- continue;
+ void OnPerform(CCtrlData *)
+ {
+ m_performCombo.Enable(m_perform.GetState());
+ m_pertormEdit.Enable(m_perform.GetState());
+ m_add.Enable(m_perform.GetState());
+ m_delete.Enable(m_perform.GetState());
+ }
- if (!pPerf->mText.IsEmpty())
- m_proto->setWString(pPerf->mSetting.c_str(), pPerf->mText.c_str());
- else
- db_unset(0, m_proto->m_szModuleName, pPerf->mSetting.c_str());
+ void OnAdd(CCtrlButton *)
+ {
+ wchar_t *temp = m_pertormEdit.GetText();
+
+ if (my_strstri(temp, L"/away"))
+ MessageBox(nullptr, TranslateT("The usage of /AWAY in your perform buffer is restricted\n as IRC sends this command automatically."), TranslateT("IRC Error"), MB_OK);
+ else {
+ int i = m_performCombo.GetCurSel();
+ if (i != CB_ERR) {
+ PERFORM_INFO *pPerf = (PERFORM_INFO *)m_performCombo.GetItemData(i);
+ if (pPerf != nullptr)
+ pPerf->mText = temp;
+
+ m_add.Disable();
+ m_performlistModified = true;
+ }
}
+ mir_free(temp);
}
- m_proto->WriteSettings(OtherSettings, _countof(OtherSettings));
- return true;
-}
-void COtherPrefsDlg::addPerformComboValue(int idx, const char* szValueName)
-{
- CMStringA sSetting = CMStringA("PERFORM:") + szValueName;
- sSetting.MakeUpper();
+ void OnDelete(CCtrlButton *)
+ {
+ int i = m_performCombo.GetCurSel();
+ if (i != CB_ERR) {
+ PERFORM_INFO *pPerf = (PERFORM_INFO *)m_performCombo.GetItemData(i);
+ if (pPerf != nullptr) {
+ pPerf->mText = L"";
+ m_pertormEdit.SetTextA("");
+ m_delete.Disable();
+ m_add.Disable();
+ }
- PERFORM_INFO *pPref;
- DBVARIANT dbv;
- if (!m_proto->getWString(sSetting.c_str(), &dbv)) {
- pPref = new PERFORM_INFO(sSetting.c_str(), dbv.pwszVal);
- db_free(&dbv);
+ m_performlistModified = true;
+ }
}
- else pPref = new PERFORM_INFO(sSetting.c_str(), L"");
- m_performCombo.SetItemData(idx, (LPARAM)pPref);
-}
+};
/////////////////////////////////////////////////////////////////////////////////////////
// 'add ignore' preferences dialog
-CAddIgnoreDlg::CAddIgnoreDlg(CIrcProto* _pro, const wchar_t* mask, CIgnorePrefsDlg* _owner)
- : CProtoDlgBase<CIrcProto>(_pro, IDD_ADDIGNORE),
- m_owner(_owner)
+struct CAddIgnoreDlg : public CIrcBaseDlg
{
- m_hwndParent = _owner->GetHwnd();
+ wchar_t szOldMask[500];
- if (mask == nullptr)
- szOldMask[0] = 0;
- else
- wcsncpy(szOldMask, mask, _countof(szOldMask));
-}
+ CAddIgnoreDlg::CAddIgnoreDlg(CIrcProto *_pro, const wchar_t *mask, CDlgBase *_owner) :
+ CIrcBaseDlg(_pro, IDD_ADDIGNORE)
+ {
+ m_hwndParent = _owner->GetHwnd();
-bool CAddIgnoreDlg::OnInitDialog()
-{
- if (szOldMask[0] == 0) {
- if (m_proto->IsConnected())
- SetDlgItemText(m_hwnd, IDC_NETWORK, m_proto->m_info.sNetwork.c_str());
- CheckDlgButton(m_hwnd, IDC_Q, BST_CHECKED);
- CheckDlgButton(m_hwnd, IDC_N, BST_CHECKED);
- CheckDlgButton(m_hwnd, IDC_I, BST_CHECKED);
- CheckDlgButton(m_hwnd, IDC_D, BST_CHECKED);
- CheckDlgButton(m_hwnd, IDC_C, BST_CHECKED);
+ if (mask == nullptr)
+ szOldMask[0] = 0;
+ else
+ wcsncpy(szOldMask, mask, _countof(szOldMask));
}
- return true;
-}
-bool CAddIgnoreDlg::OnApply()
-{
- wchar_t szMask[500];
- wchar_t szNetwork[500];
- CMStringW flags;
- if (IsDlgButtonChecked(m_hwnd, IDC_Q) == BST_CHECKED) flags += 'q';
- if (IsDlgButtonChecked(m_hwnd, IDC_N) == BST_CHECKED) flags += 'n';
- if (IsDlgButtonChecked(m_hwnd, IDC_I) == BST_CHECKED) flags += 'i';
- if (IsDlgButtonChecked(m_hwnd, IDC_D) == BST_CHECKED) flags += 'd';
- if (IsDlgButtonChecked(m_hwnd, IDC_C) == BST_CHECKED) flags += 'c';
- if (IsDlgButtonChecked(m_hwnd, IDC_M) == BST_CHECKED) flags += 'm';
-
- GetDlgItemText(m_hwnd, IDC_MASK, szMask, _countof(szMask));
- GetDlgItemText(m_hwnd, IDC_NETWORK, szNetwork, _countof(szNetwork));
-
- CMStringW Mask = GetWord(szMask, 0);
- if (Mask.GetLength() != 0) {
- if (!wcschr(Mask.c_str(), '!') && !wcschr(Mask.c_str(), '@'))
- Mask += L"!*@*";
-
- if (!flags.IsEmpty()) {
- if (*szOldMask)
- m_proto->RemoveIgnore(szOldMask);
- m_proto->AddIgnore(Mask.c_str(), flags.c_str(), szNetwork);
+ bool OnInitDialog() override
+ {
+ if (szOldMask[0] == 0) {
+ CheckDlgButton(m_hwnd, IDC_Q, BST_CHECKED);
+ CheckDlgButton(m_hwnd, IDC_N, BST_CHECKED);
+ CheckDlgButton(m_hwnd, IDC_I, BST_CHECKED);
+ CheckDlgButton(m_hwnd, IDC_D, BST_CHECKED);
+ CheckDlgButton(m_hwnd, IDC_C, BST_CHECKED);
}
+ return true;
}
- return true;
-}
-void CAddIgnoreDlg::OnDestroy()
-{
- m_owner->FixButtons();
-}
+ bool OnApply() override
+ {
+ wchar_t szMask[500];
+ wchar_t szNetwork[500];
+ CMStringW flags;
+ if (IsDlgButtonChecked(m_hwnd, IDC_Q) == BST_CHECKED) flags += 'q';
+ if (IsDlgButtonChecked(m_hwnd, IDC_N) == BST_CHECKED) flags += 'n';
+ if (IsDlgButtonChecked(m_hwnd, IDC_I) == BST_CHECKED) flags += 'i';
+ if (IsDlgButtonChecked(m_hwnd, IDC_D) == BST_CHECKED) flags += 'd';
+ if (IsDlgButtonChecked(m_hwnd, IDC_C) == BST_CHECKED) flags += 'c';
+ if (IsDlgButtonChecked(m_hwnd, IDC_M) == BST_CHECKED) flags += 'm';
+
+ GetDlgItemText(m_hwnd, IDC_MASK, szMask, _countof(szMask));
+ GetDlgItemText(m_hwnd, IDC_NETWORK, szNetwork, _countof(szNetwork));
+
+ CMStringW Mask = GetWord(szMask, 0);
+ if (Mask.GetLength() != 0) {
+ if (!wcschr(Mask.c_str(), '!') && !wcschr(Mask.c_str(), '@'))
+ Mask += L"!*@*";
+
+ if (!flags.IsEmpty()) {
+ if (*szOldMask)
+ m_proto->RemoveIgnore(szOldMask);
+ m_proto->AddIgnore(Mask.c_str(), flags.c_str(), szNetwork);
+ }
+ }
+ return true;
+ }
+};
/////////////////////////////////////////////////////////////////////////////////////////
// 'Ignore' preferences dialog
@@ -1220,34 +896,6 @@ static TDbSetting IgnoreSettings[] = { FIELD_OFFSET(CIrcProto, m_ignoreChannelDefault), "IgnoreChannelDefault", DBVT_BYTE },
};
-static int CALLBACK IgnoreListSort(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
-{
- CIgnorePrefsDlg *hwndDlg = (CIgnorePrefsDlg*)lParamSort;
- if (!hwndDlg->GetHwnd())
- return 1;
-
- wchar_t temp1[512];
- wchar_t temp2[512];
-
- LVITEM lvm;
- lvm.mask = LVIF_TEXT;
- lvm.iSubItem = 0;
- lvm.cchTextMax = _countof(temp1);
-
- lvm.iItem = lParam1;
- lvm.pszText = temp1;
- hwndDlg->m_list.GetItem(&lvm);
-
- lvm.iItem = lParam2;
- lvm.pszText = temp2;
- hwndDlg->m_list.GetItem(&lvm);
-
- if (temp1[0] && temp2[0])
- return mir_wstrcmpi(temp1, temp2);
-
- return (temp1[0] == 0) ? 1 : -1;
-}
-
static LRESULT CALLBACK ListviewSubclassProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch (msg) {
@@ -1348,250 +996,292 @@ void CIrcProto::RewriteIgnoreSettings(void) }
}
-CIgnorePrefsDlg::CIgnorePrefsDlg(CIrcProto* _pro)
- : CProtoDlgBase<CIrcProto>(_pro, IDD_PREFS_IGNORE),
- m_list(this, IDC_LIST),
- m_add(this, IDC_ADD, g_plugin.getIcon(IDI_ADD), LPGEN("Add new ignore")),
- m_edit(this, IDC_EDIT, g_plugin.getIcon(IDI_EDIT), LPGEN("Edit this ignore")),
- m_del(this, IDC_DELETE, g_plugin.getIcon(IDI_DELETE), LPGEN("Delete this ignore")),
- m_enable(this, IDC_ENABLEIGNORE),
- m_ignoreChat(this, IDC_IGNORECHAT),
- m_ignoreFile(this, IDC_IGNOREFILE),
- m_ignoreChannel(this, IDC_IGNORECHANNEL),
- m_ignoreUnknown(this, IDC_IGNOREUNKNOWN)
+class CIgnorePrefsDlg : public CIrcBaseDlg
{
- m_enable.OnChange = Callback(this, &CIgnorePrefsDlg::OnEnableIgnore);
- m_ignoreChat.OnChange = Callback(this, &CIgnorePrefsDlg::OnIgnoreChat);
- m_add.OnClick = Callback(this, &CIgnorePrefsDlg::OnAdd);
- m_list.OnDoubleClick = m_edit.OnClick = Callback(this, &CIgnorePrefsDlg::OnEdit);
- m_del.OnClick = Callback(this, &CIgnorePrefsDlg::OnDelete);
- m_list.OnColumnClick = Callback(this, &CIgnorePrefsDlg::List_OnColumnClick);
-}
-
-bool CIgnorePrefsDlg::OnInitDialog()
-{
- m_proto->m_ignoreDlg = this;
- mir_subclassWindow(m_list.GetHwnd(), ListviewSubclassProc);
-
- m_enable.SetState(m_proto->m_ignore);
- m_ignoreFile.SetState(!m_proto->m_DCCFileEnabled);
- m_ignoreChat.SetState(!m_proto->m_DCCChatEnabled);
- m_ignoreChannel.SetState(m_proto->m_ignoreChannelDefault);
- if (m_proto->m_DCCChatIgnore == 2)
- m_ignoreUnknown.SetState(BST_CHECKED);
-
- m_ignoreUnknown.Enable(m_proto->m_DCCChatEnabled);
- m_list.Enable(m_proto->m_ignore);
- m_ignoreChannel.Enable(m_proto->m_ignore);
- m_add.Enable(m_proto->m_ignore);
-
- static int COLUMNS_SIZES[3] = { 195, 60, 80 };
- LV_COLUMN lvC;
- lvC.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
- lvC.fmt = LVCFMT_LEFT;
- for (int index = 0; index < 3; index++) {
- lvC.iSubItem = index;
- lvC.cx = COLUMNS_SIZES[index];
-
- wchar_t *text = nullptr;
- switch (index) {
- case 0: text = TranslateT("Ignore mask"); break;
- case 1: text = TranslateT("Flags"); break;
- case 2: text = TranslateT("Network"); break;
+ void FixButtons()
+ {
+ m_add.Enable(m_enable.GetState());
+ if (m_list.GetSelectionMark() != -1) {
+ m_edit.Enable();
+ m_del.Enable();
+ }
+ else {
+ m_edit.Disable();
+ m_del.Disable();
}
- lvC.pszText = text;
- ListView_InsertColumn(GetDlgItem(m_hwnd, IDC_INFO_LISTVIEW), index, &lvC);
}
- ListView_SetExtendedListViewStyle(GetDlgItem(m_hwnd, IDC_INFO_LISTVIEW), LVS_EX_FULLROWSELECT);
- RebuildList();
- return true;
-}
+ static int CALLBACK IgnoreListSort(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
+ {
+ CIgnorePrefsDlg *hwndDlg = (CIgnorePrefsDlg*)lParamSort;
+ if (!hwndDlg->GetHwnd())
+ return 1;
-INT_PTR CIgnorePrefsDlg::DlgProc(UINT msg, WPARAM wParam, LPARAM lParam)
-{
- switch (msg) {
- case WM_NOTIFY:
- switch (((LPNMHDR)lParam)->idFrom) {
- case IDC_LIST:
- switch (((NMHDR*)lParam)->code) {
- case NM_CLICK:
- case NM_RCLICK:
- if (m_list.GetSelectionMark() != -1)
- FixButtons();
- break;
- }
+ wchar_t temp1[512];
+ wchar_t temp2[512];
+
+ LVITEM lvm;
+ lvm.mask = LVIF_TEXT;
+ lvm.iSubItem = 0;
+ lvm.cchTextMax = _countof(temp1);
+
+ lvm.iItem = lParam1;
+ lvm.pszText = temp1;
+ hwndDlg->m_list.GetItem(&lvm);
+
+ lvm.iItem = lParam2;
+ lvm.pszText = temp2;
+ hwndDlg->m_list.GetItem(&lvm);
+
+ if (temp1[0] && temp2[0])
+ return mir_wstrcmpi(temp1, temp2);
+
+ return (temp1[0] == 0) ? 1 : -1;
+ }
+
+ void RebuildList()
+ {
+ m_list.DeleteAllItems();
+
+ for (auto &C : m_proto->m_ignoreItems) {
+ if (C->mask.IsEmpty() || C->flags[0] != '+')
+ continue;
+
+ LVITEM lvItem;
+ lvItem.iItem = m_list.GetItemCount();
+ lvItem.mask = LVIF_TEXT | LVIF_PARAM;
+ lvItem.iSubItem = 0;
+ lvItem.lParam = lvItem.iItem;
+ lvItem.pszText = (wchar_t *)C->mask.c_str();
+ lvItem.iItem = m_list.InsertItem(&lvItem);
+
+ lvItem.mask = LVIF_TEXT;
+ lvItem.iSubItem = 1;
+ lvItem.pszText = (wchar_t *)C->flags.c_str();
+ m_list.SetItem(&lvItem);
+
+ lvItem.mask = LVIF_TEXT;
+ lvItem.iSubItem = 2;
+ lvItem.pszText = (wchar_t *)C->network.c_str();
+ m_list.SetItem(&lvItem);
}
- break;
+
+ UpdateList();
+ m_list.SortItems(IgnoreListSort, (LPARAM)this);
+ UpdateList();
+
+ FixButtons();
}
- return CDlgBase::DlgProc(msg, wParam, lParam);
-}
-void CIgnorePrefsDlg::OnEnableIgnore(CCtrlData*)
-{
- m_ignoreChannel.Enable(m_enable.GetState());
- m_list.Enable(m_enable.GetState());
- m_add.Enable(m_enable.GetState());
-}
+ void UpdateList()
+ {
+ int j = m_list.GetItemCount();
+ if (j > 0) {
+ LVITEM lvm;
+ lvm.mask = LVIF_PARAM;
+ lvm.iSubItem = 0;
+ for (int i = 0; i < j; i++) {
+ lvm.iItem = i;
+ lvm.lParam = i;
+ m_list.SetItem(&lvm);
+ }
+ }
+ }
-void CIgnorePrefsDlg::OnIgnoreChat(CCtrlData*)
-{
- m_ignoreUnknown.Enable(m_ignoreChat.GetState() == BST_UNCHECKED);
-}
+ CCtrlMButton m_add, m_edit, m_del;
+ CCtrlCheck m_enable, m_ignoreChat, m_ignoreFile, m_ignoreChannel, m_ignoreUnknown;
+ CCtrlListView m_list;
+
+public:
+ CIgnorePrefsDlg(CIrcProto *_pro) :
+ CIrcBaseDlg(_pro, IDD_PREFS_IGNORE),
+ m_list(this, IDC_LIST),
+ m_add(this, IDC_ADD, g_plugin.getIcon(IDI_ADD), LPGEN("Add new ignore")),
+ m_edit(this, IDC_EDIT, g_plugin.getIcon(IDI_EDIT), LPGEN("Edit this ignore")),
+ m_del(this, IDC_DELETE, g_plugin.getIcon(IDI_DELETE), LPGEN("Delete this ignore")),
+ m_enable(this, IDC_ENABLEIGNORE),
+ m_ignoreChat(this, IDC_IGNORECHAT),
+ m_ignoreFile(this, IDC_IGNOREFILE),
+ m_ignoreChannel(this, IDC_IGNORECHANNEL),
+ m_ignoreUnknown(this, IDC_IGNOREUNKNOWN)
+ {
+ m_enable.OnChange = Callback(this, &CIgnorePrefsDlg::OnEnableIgnore);
+ m_ignoreChat.OnChange = Callback(this, &CIgnorePrefsDlg::OnIgnoreChat);
+ m_add.OnClick = Callback(this, &CIgnorePrefsDlg::OnAdd);
+ m_list.OnDoubleClick = m_edit.OnClick = Callback(this, &CIgnorePrefsDlg::OnEdit);
+ m_del.OnClick = Callback(this, &CIgnorePrefsDlg::OnDelete);
+ m_list.OnColumnClick = Callback(this, &CIgnorePrefsDlg::List_OnColumnClick);
+ }
-void CIgnorePrefsDlg::OnAdd(CCtrlButton*)
-{
- CAddIgnoreDlg *dlg = new CAddIgnoreDlg(m_proto, nullptr, this);
- dlg->Show();
- SetWindowText(dlg->GetHwnd(), TranslateT("Add ignore"));
- m_add.Disable();
- m_edit.Disable();
- m_del.Disable();
-}
+ bool OnInitDialog() override
+ {
+ m_proto->m_ignoreDlg = this;
+ mir_subclassWindow(m_list.GetHwnd(), ListviewSubclassProc);
+
+ m_enable.SetState(m_proto->m_ignore);
+ m_ignoreFile.SetState(!m_proto->m_DCCFileEnabled);
+ m_ignoreChat.SetState(!m_proto->m_DCCChatEnabled);
+ m_ignoreChannel.SetState(m_proto->m_ignoreChannelDefault);
+ if (m_proto->m_DCCChatIgnore == 2)
+ m_ignoreUnknown.SetState(BST_CHECKED);
+
+ m_ignoreUnknown.Enable(m_proto->m_DCCChatEnabled);
+ m_list.Enable(m_proto->m_ignore);
+ m_ignoreChannel.Enable(m_proto->m_ignore);
+ m_add.Enable(m_proto->m_ignore);
+
+ static int COLUMNS_SIZES[3] = { 195, 60, 80 };
+ LV_COLUMN lvC;
+ lvC.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
+ lvC.fmt = LVCFMT_LEFT;
+ for (int index = 0; index < 3; index++) {
+ lvC.iSubItem = index;
+ lvC.cx = COLUMNS_SIZES[index];
+
+ wchar_t *text = nullptr;
+ switch (index) {
+ case 0: text = TranslateT("Ignore mask"); break;
+ case 1: text = TranslateT("Flags"); break;
+ case 2: text = TranslateT("Network"); break;
+ }
+ lvC.pszText = text;
+ ListView_InsertColumn(GetDlgItem(m_hwnd, IDC_INFO_LISTVIEW), index, &lvC);
+ }
-void CIgnorePrefsDlg::OnEdit(CCtrlButton*)
-{
- if (!m_add.Enabled())
- return;
-
- wchar_t szMask[512];
- wchar_t szFlags[512];
- wchar_t szNetwork[512];
- int i = m_list.GetSelectionMark();
- m_list.GetItemText(i, 0, szMask, 511);
- m_list.GetItemText(i, 1, szFlags, 511);
- m_list.GetItemText(i, 2, szNetwork, 511);
- CAddIgnoreDlg* dlg = new CAddIgnoreDlg(m_proto, szMask, this);
- dlg->Show();
- HWND hWnd = dlg->GetHwnd();
- SetWindowText(hWnd, TranslateT("Edit ignore"));
- if (szFlags[0]) {
- if (wcschr(szFlags, 'q'))
- CheckDlgButton(hWnd, IDC_Q, BST_CHECKED);
- if (wcschr(szFlags, 'n'))
- CheckDlgButton(hWnd, IDC_N, BST_CHECKED);
- if (wcschr(szFlags, 'i'))
- CheckDlgButton(hWnd, IDC_I, BST_CHECKED);
- if (wcschr(szFlags, 'd'))
- CheckDlgButton(hWnd, IDC_D, BST_CHECKED);
- if (wcschr(szFlags, 'c'))
- CheckDlgButton(hWnd, IDC_C, BST_CHECKED);
- if (wcschr(szFlags, 'm'))
- CheckDlgButton(hWnd, IDC_M, BST_CHECKED);
+ ListView_SetExtendedListViewStyle(GetDlgItem(m_hwnd, IDC_INFO_LISTVIEW), LVS_EX_FULLROWSELECT);
+ RebuildList();
+ return true;
}
- SetDlgItemText(hWnd, IDC_MASK, szMask);
- SetDlgItemText(hWnd, IDC_NETWORK, szNetwork);
- m_add.Disable();
- m_edit.Disable();
- m_del.Disable();
-}
-void CIgnorePrefsDlg::OnDelete(CCtrlButton*)
-{
- if (!m_del.Enabled())
- return;
+ bool OnApply() override
+ {
+ m_proto->m_DCCFileEnabled = !m_ignoreFile.GetState();
+ m_proto->m_DCCChatEnabled = !m_ignoreChat.GetState();
+ m_proto->m_ignore = m_enable.GetState();
+ m_proto->m_ignoreChannelDefault = m_ignoreChannel.GetState();
+ m_proto->m_DCCChatIgnore = m_ignoreUnknown.GetState() ? 2 : 1;
+ m_proto->WriteSettings(IgnoreSettings, _countof(IgnoreSettings));
+ return true;
+ }
- wchar_t szMask[512];
- int i = m_list.GetSelectionMark();
- m_list.GetItemText(i, 0, szMask, _countof(szMask));
- m_proto->RemoveIgnore(szMask);
-}
+ void OnDestroy() override
+ {
+ m_proto->m_ignoreDlg = nullptr;
+ m_proto->m_ignoreItems.destroy();
+
+ int i = m_list.GetItemCount();
+ for (int j = 0; j < i; j++) {
+ wchar_t szMask[512], szFlags[40], szNetwork[100];
+ m_list.GetItemText(j, 0, szMask, _countof(szMask));
+ m_list.GetItemText(j, 1, szFlags, _countof(szFlags));
+ m_list.GetItemText(j, 2, szNetwork, _countof(szNetwork));
+ m_proto->m_ignoreItems.insert(new CIrcIgnoreItem(szMask, szFlags, szNetwork));
+ }
-void CIgnorePrefsDlg::List_OnColumnClick(CCtrlListView::TEventInfo*)
-{
- m_list.SortItems(IgnoreListSort, (LPARAM)this);
- UpdateList();
-}
+ m_proto->RewriteIgnoreSettings();
+ }
-bool CIgnorePrefsDlg::OnApply()
-{
- m_proto->m_DCCFileEnabled = !m_ignoreFile.GetState();
- m_proto->m_DCCChatEnabled = !m_ignoreChat.GetState();
- m_proto->m_ignore = m_enable.GetState();
- m_proto->m_ignoreChannelDefault = m_ignoreChannel.GetState();
- m_proto->m_DCCChatIgnore = m_ignoreUnknown.GetState() ? 2 : 1;
- m_proto->WriteSettings(IgnoreSettings, _countof(IgnoreSettings));
- return true;
-}
+ INT_PTR DlgProc(UINT msg, WPARAM wParam, LPARAM lParam) override
+ {
+ switch (msg) {
+ case WM_NOTIFY:
+ switch (((LPNMHDR)lParam)->idFrom) {
+ case IDC_LIST:
+ switch (((NMHDR *)lParam)->code) {
+ case NM_CLICK:
+ case NM_RCLICK:
+ if (m_list.GetSelectionMark() != -1)
+ FixButtons();
+ break;
+ }
+ }
+ break;
+ }
+ return CDlgBase::DlgProc(msg, wParam, lParam);
+ }
-void CIgnorePrefsDlg::OnDestroy()
-{
- m_proto->m_ignoreDlg = nullptr;
- m_proto->m_ignoreItems.destroy();
-
- int i = m_list.GetItemCount();
- for (int j = 0; j < i; j++) {
- wchar_t szMask[512], szFlags[40], szNetwork[100];
- m_list.GetItemText(j, 0, szMask, _countof(szMask));
- m_list.GetItemText(j, 1, szFlags, _countof(szFlags));
- m_list.GetItemText(j, 2, szNetwork, _countof(szNetwork));
- m_proto->m_ignoreItems.insert(new CIrcIgnoreItem(szMask, szFlags, szNetwork));
+ void Update() override
+ {
+ RebuildList();
}
- m_proto->RewriteIgnoreSettings();
-}
+ void OnEnableIgnore(CCtrlData *)
+ {
+ m_ignoreChannel.Enable(m_enable.GetState());
+ m_list.Enable(m_enable.GetState());
+ m_add.Enable(m_enable.GetState());
+ }
-void CIgnorePrefsDlg::FixButtons()
-{
- m_add.Enable(m_enable.GetState());
- if (m_list.GetSelectionMark() != -1) {
- m_edit.Enable();
- m_del.Enable();
+ void OnIgnoreChat(CCtrlData *)
+ {
+ m_ignoreUnknown.Enable(m_ignoreChat.GetState() == BST_UNCHECKED);
}
- else {
+
+ void OnAdd(CCtrlButton *)
+ {
+ CAddIgnoreDlg *dlg = new CAddIgnoreDlg(m_proto, nullptr, this);
+ dlg->Show();
+ SetWindowText(dlg->GetHwnd(), TranslateT("Add ignore"));
+ m_add.Disable();
m_edit.Disable();
m_del.Disable();
}
-}
-void CIgnorePrefsDlg::RebuildList()
-{
- m_list.DeleteAllItems();
-
- for (auto &C : m_proto->m_ignoreItems) {
- if (C->mask.IsEmpty() || C->flags[0] != '+')
- continue;
-
- LVITEM lvItem;
- lvItem.iItem = m_list.GetItemCount();
- lvItem.mask = LVIF_TEXT | LVIF_PARAM;
- lvItem.iSubItem = 0;
- lvItem.lParam = lvItem.iItem;
- lvItem.pszText = (wchar_t*)C->mask.c_str();
- lvItem.iItem = m_list.InsertItem(&lvItem);
-
- lvItem.mask = LVIF_TEXT;
- lvItem.iSubItem = 1;
- lvItem.pszText = (wchar_t*)C->flags.c_str();
- m_list.SetItem(&lvItem);
-
- lvItem.mask = LVIF_TEXT;
- lvItem.iSubItem = 2;
- lvItem.pszText = (wchar_t*)C->network.c_str();
- m_list.SetItem(&lvItem);
+ void OnEdit(CCtrlButton *)
+ {
+ if (!m_add.Enabled())
+ return;
+
+ wchar_t szMask[512];
+ wchar_t szFlags[512];
+ wchar_t szNetwork[512];
+ int i = m_list.GetSelectionMark();
+ m_list.GetItemText(i, 0, szMask, 511);
+ m_list.GetItemText(i, 1, szFlags, 511);
+ m_list.GetItemText(i, 2, szNetwork, 511);
+ CAddIgnoreDlg *dlg = new CAddIgnoreDlg(m_proto, szMask, this);
+ dlg->Show();
+ HWND hWnd = dlg->GetHwnd();
+ SetWindowText(hWnd, TranslateT("Edit ignore"));
+ if (szFlags[0]) {
+ if (wcschr(szFlags, 'q'))
+ CheckDlgButton(hWnd, IDC_Q, BST_CHECKED);
+ if (wcschr(szFlags, 'n'))
+ CheckDlgButton(hWnd, IDC_N, BST_CHECKED);
+ if (wcschr(szFlags, 'i'))
+ CheckDlgButton(hWnd, IDC_I, BST_CHECKED);
+ if (wcschr(szFlags, 'd'))
+ CheckDlgButton(hWnd, IDC_D, BST_CHECKED);
+ if (wcschr(szFlags, 'c'))
+ CheckDlgButton(hWnd, IDC_C, BST_CHECKED);
+ if (wcschr(szFlags, 'm'))
+ CheckDlgButton(hWnd, IDC_M, BST_CHECKED);
+ }
+
+ SetDlgItemText(hWnd, IDC_MASK, szMask);
+ SetDlgItemText(hWnd, IDC_NETWORK, szNetwork);
+ m_add.Disable();
+ m_edit.Disable();
+ m_del.Disable();
}
- UpdateList();
- m_list.SortItems(IgnoreListSort, (LPARAM)this);
- UpdateList();
+ void OnDelete(CCtrlButton *)
+ {
+ if (!m_del.Enabled())
+ return;
- FixButtons();
-}
+ wchar_t szMask[512];
+ int i = m_list.GetSelectionMark();
+ m_list.GetItemText(i, 0, szMask, _countof(szMask));
+ m_proto->RemoveIgnore(szMask);
+ }
-void CIgnorePrefsDlg::UpdateList()
-{
- int j = m_list.GetItemCount();
- if (j > 0) {
- LVITEM lvm;
- lvm.mask = LVIF_PARAM;
- lvm.iSubItem = 0;
- for (int i = 0; i < j; i++) {
- lvm.iItem = i;
- lvm.lParam = i;
- m_list.SetItem(&lvm);
- }
+ void List_OnColumnClick(CCtrlListView::TEventInfo *)
+ {
+ m_list.SortItems(IgnoreListSort, (LPARAM)this);
+ UpdateList();
}
-}
+};
/////////////////////////////////////////////////////////////////////////////////////////
@@ -1620,83 +1310,17 @@ int CIrcProto::OnInitOptionsPages(WPARAM wParam, LPARAM) return 0;
}
-/////////////////////////////////////////////////////////////////////////////////////////
-
-void CIrcProto::InitPrefs(void)
-{
- ConnectSettings[0].defStr = L"Miranda";
- ConnectSettings[1].defStr = L"UNIX";
- ConnectSettings[2].defStr = L"113";
- ConnectSettings[3].defStr = L"30";
- ConnectSettings[4].defStr = L"10";
-
- CtcpSettings[0].defStr = STR_USERINFO;
-
- OtherSettings[0].defStr = STR_QUITMESSAGE;
-
- ReadSettings(ConnectSettings, _countof(ConnectSettings));
- ReadSettings(CtcpSettings, _countof(CtcpSettings));
- ReadSettings(OtherSettings, _countof(OtherSettings));
- ReadSettings(IgnoreSettings, _countof(IgnoreSettings));
-
- int x = getDword("SizeOfListBottom", -1);
- if (x != -1) {
- db_unset(0, m_szModuleName, "SizeOfListBottom");
- setDword("channelList_height", x);
- }
- if ((x = getDword("SizeOfListWidth", -1)) != -1) {
- db_unset(0, m_szModuleName, "SizeOfListWidth");
- setDword("channelList_width", x);
- }
-
- if (m_pNick[0] == 0) {
- if (m_nick[0] != 0) {
- memcpy(m_pNick, m_nick, sizeof(m_pNick));
- setWString("PNick", m_nick);
- }
- }
- else {
- memcpy(m_nick, m_pNick, sizeof(m_nick));
- setWString("Nick", m_nick);
- }
-
- m_mySpecifiedHostIP[0] = 0;
-
- if (m_alias == nullptr)
- m_alias = mir_wstrdup(L"/op /mode ## +ooo $1 $2 $3\r\n/dop /mode ## -ooo $1 $2 $3\r\n/voice /mode ## +vvv $1 $2 $3\r\n/dvoice /mode ## -vvv $1 $2 $3\r\n/j /join #$1 $2-\r\n/p /part ## $1-\r\n/w /whois $1\r\n/k /kick ## $1 $2-\r\n/q /query $1\r\n/logon /log on ##\r\n/logoff /log off ##\r\n/save /log buffer $1\r\n/slap /me slaps $1 around a bit with a large trout");
-
- m_quickComboSelection = getDword("QuickComboSelection", m_serverComboSelection + 1);
- m_myHost[0] = 0;
-
- colors[0] = RGB(255, 255, 255);
- colors[1] = RGB(0, 0, 0);
- colors[2] = RGB(0, 0, 127);
- colors[3] = RGB(0, 147, 0);
- colors[4] = RGB(255, 0, 0);
- colors[5] = RGB(127, 0, 0);
- colors[6] = RGB(156, 0, 156);
- colors[7] = RGB(252, 127, 0);
- colors[8] = RGB(255, 255, 0);
- colors[9] = RGB(0, 252, 0);
- colors[10] = RGB(0, 147, 147);
- colors[11] = RGB(0, 255, 255);
- colors[12] = RGB(0, 0, 252);
- colors[13] = RGB(255, 0, 255);
- colors[14] = RGB(127, 127, 127);
- colors[15] = RGB(210, 210, 210);
-}
-
///////////////////////////////////////////////////////////////////////////////
// Account manager UI
-struct CDlgAccMgrUI : public CProtoDlgBase<CIrcProto>
+class CDlgAccMgrUI : public CIrcBaseDlg
{
- CCtrlCombo m_serverCombo;
- CCtrlEdit m_server, m_port, m_port2, m_pass, m_nick, m_nick2, m_name, m_userID, m_ssl;
+ CCtrlEdit m_server, m_port, m_port2, m_pass, m_nick, m_nick2, m_name, m_userID;
+ CCtrlCombo m_ssl;
- CDlgAccMgrUI(CIrcProto* _pro, HWND _owner)
- : CProtoDlgBase<CIrcProto>(_pro, IDD_ACCMGRUI),
- m_serverCombo(this, IDC_SERVERCOMBO),
+public:
+ CDlgAccMgrUI(CIrcProto* _pro, HWND _owner) :
+ CIrcBaseDlg(_pro, IDD_ACCMGRUI),
m_server(this, IDC_SERVER),
m_port(this, IDC_PORT),
m_port2(this, IDC_PORT2),
@@ -1708,24 +1332,19 @@ struct CDlgAccMgrUI : public CProtoDlgBase<CIrcProto> m_userID(this, IDC_USERID)
{
m_hwndParent = _owner;
- m_serverCombo.OnChange = Callback(this, &CDlgAccMgrUI::OnChangeCombo);
}
bool OnInitDialog() override
{
- for (auto &si : g_servers)
- m_serverCombo.AddStringA(si->m_name, LPARAM(si));
-
- m_serverCombo.SetCurSel(m_proto->m_serverComboSelection);
m_server.SetTextA(m_proto->m_serverName);
m_port.SetTextA(m_proto->m_portStart);
m_port2.SetTextA(m_proto->m_portEnd);
m_pass.SetTextA(m_proto->m_password);
- switch (m_proto->m_iSSL) {
- case 0: m_ssl.SetTextA("Off"); break;
- case 1: m_ssl.SetTextA("Auto"); break;
- case 2: m_ssl.SetTextA("On"); break;
- }
+
+ m_ssl.AddString(TranslateT("Off"), 0);
+ m_ssl.AddString(TranslateT("Auto"), 1);
+ m_ssl.AddString(TranslateT("On"), 2);
+ m_ssl.SetCurSel(m_proto->m_iSSL);
m_nick.SetText(m_proto->m_nick);
m_nick2.SetText(m_proto->m_alternativeNick);
@@ -1736,12 +1355,13 @@ struct CDlgAccMgrUI : public CProtoDlgBase<CIrcProto> bool OnApply() override
{
- m_proto->m_serverComboSelection = m_serverCombo.GetCurSel();
m_server.GetTextA(m_proto->m_serverName, _countof(m_proto->m_serverName));
m_port.GetTextA(m_proto->m_portStart, _countof(m_proto->m_portStart));
m_port2.GetTextA(m_proto->m_portEnd, _countof(m_proto->m_portEnd));
m_pass.GetTextA(m_proto->m_password, _countof(m_proto->m_password));
+ m_proto->m_iSSL = m_ssl.GetCurSel();
+
m_nick.GetText(m_proto->m_nick, _countof(m_proto->m_nick));
removeSpaces(m_proto->m_nick);
wcsncpy_s(m_proto->m_pNick, m_proto->m_nick, _TRUNCATE);
@@ -1753,23 +1373,6 @@ struct CDlgAccMgrUI : public CProtoDlgBase<CIrcProto> m_proto->WriteSettings(ConnectSettings, _countof(ConnectSettings));
return true;
}
-
- void OnChangeCombo(CCtrlCombo*)
- {
- int i = m_serverCombo.GetCurSel();
- SERVER_INFO *pData = (SERVER_INFO*)m_serverCombo.GetItemData(i);
- if (pData && (INT_PTR)pData != CB_ERR) {
- m_server.SetTextA(pData->m_address);
- m_port.SetInt(pData->m_portStart);
- m_port2.SetInt(pData->m_portEnd);
- m_pass.SetTextA("");
- switch (pData->m_iSSL) {
- case 0: m_ssl.SetTextA("Off"); break;
- case 1: m_ssl.SetTextA("Auto"); break;
- case 2: m_ssl.SetTextA("On"); break;
- }
- }
- }
};
INT_PTR CIrcProto::SvcCreateAccMgrUI(WPARAM, LPARAM lParam)
@@ -1780,39 +1383,66 @@ INT_PTR CIrcProto::SvcCreateAccMgrUI(WPARAM, LPARAM lParam) }
/////////////////////////////////////////////////////////////////////////////////////////
-// Initialize servers list
-static void sttImportIni(const wchar_t* szIniFile)
+void CIrcProto::InitPrefs(void)
{
- FILE *serverFile = _wfopen(szIniFile, L"r");
- if (serverFile == nullptr)
- return;
+ ConnectSettings[0].defStr = L"Miranda";
+ ConnectSettings[1].defStr = L"UNIX";
+ ConnectSettings[2].defStr = L"113";
+ ConnectSettings[3].defStr = L"30";
+ ConnectSettings[4].defStr = L"10";
+
+ CtcpSettings[0].defStr = STR_USERINFO;
- char buf1[500], buf2[200];
- while (fgets(buf1, sizeof(buf1), serverFile)) {
- char *p = strchr(buf1, '=');
- if (!p)
- continue;
+ OtherSettings[0].defStr = STR_QUITMESSAGE;
- p++;
- rtrim(p);
- char *p1 = strstr(p, "SERVER:");
- if (!p1)
- continue;
-
- memcpy(buf2, p, int(p1 - p));
- buf2[int(p1 - p)] = 0;
- db_set_s(0, SERVERSMODULE, buf2, p1);
+ ReadSettings(ConnectSettings, _countof(ConnectSettings));
+ ReadSettings(CtcpSettings, _countof(CtcpSettings));
+ ReadSettings(OtherSettings, _countof(OtherSettings));
+ ReadSettings(IgnoreSettings, _countof(IgnoreSettings));
+
+ int x = getDword("SizeOfListBottom", -1);
+ if (x != -1) {
+ db_unset(0, m_szModuleName, "SizeOfListBottom");
+ setDword("channelList_height", x);
+ }
+ if ((x = getDword("SizeOfListWidth", -1)) != -1) {
+ db_unset(0, m_szModuleName, "SizeOfListWidth");
+ setDword("channelList_width", x);
}
- fclose(serverFile);
- ::_wremove(szIniFile);
-}
-void InitServers()
-{
- wchar_t *szTemp = Utils_ReplaceVarsW(L"%miranda_path%\\Plugins\\IRC_servers.ini");
- sttImportIni(szTemp);
- mir_free(szTemp);
+ if (m_pNick[0] == 0) {
+ if (m_nick[0] != 0) {
+ memcpy(m_pNick, m_nick, sizeof(m_pNick));
+ setWString("PNick", m_nick);
+ }
+ }
+ else {
+ memcpy(m_nick, m_pNick, sizeof(m_nick));
+ setWString("Nick", m_nick);
+ }
+
+ m_mySpecifiedHostIP[0] = 0;
+
+ if (m_alias == nullptr)
+ m_alias = mir_wstrdup(L"/op /mode ## +ooo $1 $2 $3\r\n/dop /mode ## -ooo $1 $2 $3\r\n/voice /mode ## +vvv $1 $2 $3\r\n/dvoice /mode ## -vvv $1 $2 $3\r\n/j /join #$1 $2-\r\n/p /part ## $1-\r\n/w /whois $1\r\n/k /kick ## $1 $2-\r\n/q /query $1\r\n/logon /log on ##\r\n/logoff /log off ##\r\n/save /log buffer $1\r\n/slap /me slaps $1 around a bit with a large trout");
+
+ m_myHost[0] = 0;
- RereadServers();
+ colors[0] = RGB(255, 255, 255);
+ colors[1] = RGB(0, 0, 0);
+ colors[2] = RGB(0, 0, 127);
+ colors[3] = RGB(0, 147, 0);
+ colors[4] = RGB(255, 0, 0);
+ colors[5] = RGB(127, 0, 0);
+ colors[6] = RGB(156, 0, 156);
+ colors[7] = RGB(252, 127, 0);
+ colors[8] = RGB(255, 255, 0);
+ colors[9] = RGB(0, 252, 0);
+ colors[10] = RGB(0, 147, 147);
+ colors[11] = RGB(0, 255, 255);
+ colors[12] = RGB(0, 0, 252);
+ colors[13] = RGB(255, 0, 255);
+ colors[14] = RGB(127, 127, 127);
+ colors[15] = RGB(210, 210, 210);
}
diff --git a/protocols/IRCG/src/resource.h b/protocols/IRCG/src/resource.h index 89630cf71d..913211493f 100644 --- a/protocols/IRCG/src/resource.h +++ b/protocols/IRCG/src/resource.h @@ -9,7 +9,6 @@ #define IDD_INFO 106
#define IDD_NICK 107
#define IDD_PREFS_OTHER 113
-#define IDD_ADDSERVER 120
#define IDD_LIST 123
#define IDD_QUICKCONN 133
#define IDI_MAIN 136
@@ -27,7 +26,6 @@ #define IDI_WHOIS 179
#define IDI_LIST 181
#define IDI_MANAGER 182
-#define IDI_QUICK 184
#define IDI_GO 185
#define IDI_APPLY 185
#define IDI_SHOW 186
@@ -66,11 +64,8 @@ #define IDC_INFO_NICK 1013
#define IDC_EDIT2 1013
#define ID_INFO_GO 1017
-#define IDC_SERVERCOMBO 1022
#define IDC_IDENT 1023
#define IDC_IDENT_TIMED 1024
-#define IDC_ADDSERVER 1031
-#define IDC_EDITSERVER 1032
#define IDC_IDENTSYSTEM 1036
#define IDC_IDENTPORT 1037
#define IDC_ONLINETIMER 1038
@@ -95,16 +90,9 @@ #define IDC_REMOVE 1094
#define IDC_APPLYTOPIC 1095
#define IDC_APPLYMODES 1096
-#define IDC_DELETESERVER 1097
-#define IDC_ADD_COMBO 1100
-#define IDC_ADD_SERVER 1101
-#define IDC_ADD_ADDRESS 1102
-#define IDC_ADD_PORT 1103
-#define IDC_ADD_PORT2 1104
#define IDC_CLOSE 1108
#define IDC_JOIN 1109
#define ID_INFO_OK 1110
-#define IDC_STARTUP 1133
#define IDC_TEXT 1134
#define IDC_DEFAULT 1139
#define IDC_WILDCARD 1140
@@ -131,9 +119,6 @@ #define IDC_WHITERECT 1179
#define IDC_LOGO 1180
#define IDC_CAPTION 1181
-#define IDC_OFF 1184
-#define IDC_AUTO 1185
-#define IDC_ON 1186
#define IDC_QUITMESSAGE 1187
#define IDC_USERINFO 1189
#define IDC_PING 1190
diff --git a/protocols/IRCG/src/scripting.cpp b/protocols/IRCG/src/scripting.cpp index 620072fa8e..07bd9f533e 100644 --- a/protocols/IRCG/src/scripting.cpp +++ b/protocols/IRCG/src/scripting.cpp @@ -113,9 +113,6 @@ INT_PTR __cdecl CIrcProto::Scripting_GetIrcData(WPARAM, LPARAM lparam) if (sRequest == "ownnick" && IsConnected())
sOutput = m_info.sNick;
- else if (sRequest == "network" && IsConnected())
- sOutput = m_info.sNetwork;
-
else if (sRequest == "primarynick")
sOutput = m_nick;
diff --git a/protocols/IRCG/src/services.cpp b/protocols/IRCG/src/services.cpp index 917842b0e7..2e7cf56bfb 100644 --- a/protocols/IRCG/src/services.cpp +++ b/protocols/IRCG/src/services.cpp @@ -25,14 +25,8 @@ void CIrcProto::OnBuildProtoMenu() {
CMenuItem mi(&g_plugin);
mi.root = Menu_GetProtocolRoot(this);
-
- mi.name.a = LPGEN("&Quick connect");
- mi.hIcolibItem = g_plugin.getIconHandle(IDI_QUICK);
- mi.pszService = IRC_QUICKCONNECT;
- mi.position = 201001;
- hMenuQuick = Menu_AddProtoMenuItem(&mi, m_szModuleName);
-
- if (m_iStatus != ID_STATUS_OFFLINE) mi.flags |= CMIF_GRAYED;
+ if (m_iStatus != ID_STATUS_OFFLINE)
+ mi.flags |= CMIF_GRAYED;
mi.name.a = LPGEN("&Join channel");
mi.hIcolibItem = Skin_GetIconHandle(SKINICON_CHAT_JOIN);
@@ -315,23 +309,6 @@ INT_PTR __cdecl CIrcProto::OnJoinMenuCommand(WPARAM, LPARAM) return 0;
}
-INT_PTR __cdecl CIrcProto::OnQuickConnectMenuCommand(WPARAM, LPARAM)
-{
- if (!m_quickDlg) {
- m_quickDlg = new CQuickDlg(this);
- m_quickDlg->Show();
-
- SetWindowText(m_quickDlg->GetHwnd(), TranslateT("Quick connect"));
- SetDlgItemText(m_quickDlg->GetHwnd(), IDC_TEXT, TranslateT("Please select IRC network and enter the password if needed"));
- SetDlgItemText(m_quickDlg->GetHwnd(), IDC_CAPTION, TranslateT("Quick connect"));
- Window_SetIcon_IcoLib(m_quickDlg->GetHwnd(), g_plugin.getIconHandle(IDI_QUICK));
- }
-
- ShowWindow(m_quickDlg->GetHwnd(), SW_SHOW);
- SetActiveWindow(m_quickDlg->GetHwnd());
- return 0;
-}
-
INT_PTR __cdecl CIrcProto::OnShowListMenuCommand(WPARAM, LPARAM)
{
PostIrcMessage(L"/LIST");
@@ -948,8 +925,6 @@ void __cdecl CIrcProto::ConnectServerThread(void*) if (IsConnected()) {
if (m_mySpecifiedHost[0])
ForkThread(&CIrcProto::ResolveIPThread, new IPRESOLVE(m_mySpecifiedHost, IP_MANUAL));
-
- Chat_ChangeSessionName(m_szModuleName, SERVERWINDOW, m_info.sNetwork);
}
else {
Temp = m_iDesiredStatus;
@@ -985,7 +960,6 @@ void CIrcProto::ConnectToServer(void) m_sessionInfo.iIdentServerPort = _wtoi(m_identPort);
m_sessionInfo.sIdentServerType = m_identSystem;
m_sessionInfo.m_iSSL = m_iSSL;
- m_sessionInfo.sNetwork = m_network;
bPerformDone = false;
bTempDisableCheck = false;
@@ -1002,7 +976,7 @@ void CIrcProto::ConnectToServer(void) InterlockedIncrement((long *)&m_bConnectRequested);
wchar_t szTemp[300];
- mir_snwprintf(szTemp, L"\033%s %c%s%c (%S: %u)", TranslateT("Connecting to"), irc::BOLD, m_sessionInfo.sNetwork.c_str(), irc::BOLD, m_sessionInfo.sServer.c_str(), m_sessionInfo.iPort);
+ mir_snwprintf(szTemp, L"\033%s %S:%u", TranslateT("Connecting to"), m_sessionInfo.sServer.c_str(), m_sessionInfo.iPort);
DoEvent(GC_EVENT_INFORMATION, SERVERWINDOW, nullptr, szTemp, nullptr, nullptr, NULL, true, false);
}
diff --git a/protocols/IRCG/src/stdafx.h b/protocols/IRCG/src/stdafx.h index 4f79b0249a..35d3d6ca94 100644 --- a/protocols/IRCG/src/stdafx.h +++ b/protocols/IRCG/src/stdafx.h @@ -69,7 +69,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "resource.h"
-#define IRC_QUICKCONNECT "/QuickConnectMenu"
#define IRC_JOINCHANNEL "/JoinChannelMenu"
#define IRC_CHANGENICK "/ChangeNickMenu"
#define IRC_SHOWLIST "/ShowListMenu"
@@ -136,14 +135,6 @@ struct CHANNELINFO // Contains info about the channels int codepage;
};
-struct SERVER_INFO // Contains info about different servers
-{
- ~SERVER_INFO();
-
- char *m_name, *m_address, *m_group;
- int m_portStart, m_portEnd, m_iSSL;
-};
-
struct PERFORM_INFO // Contains 'm_perform buffer' for different networks
{
PERFORM_INFO(const char* szSetting, const wchar_t* value) :
@@ -199,7 +190,6 @@ using namespace irc; // Functions
// main.cpp
-extern OBJLIST<SERVER_INFO> g_servers;
CIrcProto* GetTimerOwner(UINT_PTR eventId);
@@ -212,9 +202,6 @@ VOID CALLBACK DCCTimerProc(HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime) // options.cpp
-void InitServers(void);
-void RereadServers(void);
-
void InitContactMenus(void);
void UninitContactMenus(void);
diff --git a/protocols/IRCG/src/tools.cpp b/protocols/IRCG/src/tools.cpp index 02ca2c5b6d..e0ebfd64fe 100644 --- a/protocols/IRCG/src/tools.cpp +++ b/protocols/IRCG/src/tools.cpp @@ -373,10 +373,7 @@ INT_PTR CIrcProto::DoEvent(int iEvent, const wchar_t* pszWindow, const wchar_t* GCEVENT gce = { m_szModuleName, nullptr, iEvent };
if (pszWindow) {
- if (mir_wstrcmpi(pszWindow, SERVERWINDOW))
- sID = pszWindow + (CMStringW)L" - " + m_info.sNetwork;
- else
- sID = pszWindow;
+ sID = pszWindow;
gce.pszID.w = (wchar_t*)sID.c_str();
}
else gce.pszID.w = nullptr;
@@ -521,7 +518,7 @@ int CIrcProto::SetChannelSBText(CMStringW sWindow, CHANNELINFO * wi) CMStringW CIrcProto::MakeWndID(const wchar_t* sWindow)
{
wchar_t buf[200];
- mir_snwprintf(buf, L"%s - %s", sWindow, (IsConnected()) ? m_info.sNetwork.c_str() : TranslateT("Offline"));
+ mir_snwprintf(buf, L"%s - %s", sWindow, (IsConnected()) ? m_tszUserName : TranslateT("Offline"));
return CMStringW(buf);
}
@@ -670,12 +667,3 @@ void CIrcProto::ClearUserhostReasons(int type) break;
}
}
-
-////////////////////////////////////////////////////////////////////
-
-SERVER_INFO::~SERVER_INFO()
-{
- mir_free(m_name);
- mir_free(m_address);
- mir_free(m_group);
-}
diff --git a/protocols/IRCG/src/version.h b/protocols/IRCG/src/version.h index f1f90eb4cf..0e67ee5bb7 100644 --- a/protocols/IRCG/src/version.h +++ b/protocols/IRCG/src/version.h @@ -1,6 +1,6 @@ #define __MAJOR_VERSION 0
-#define __MINOR_VERSION 95
-#define __RELEASE_NUM 10
+#define __MINOR_VERSION 96
+#define __RELEASE_NUM 1
#define __BUILD_NUM 1
#include <stdver.h>
diff --git a/protocols/IRCG/src/windows.cpp b/protocols/IRCG/src/windows.cpp index 44a5d90d79..8a16147cfa 100644 --- a/protocols/IRCG/src/windows.cpp +++ b/protocols/IRCG/src/windows.cpp @@ -24,8 +24,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. /////////////////////////////////////////////////////////////////////////////////////////
// Message Box
-CMessageBoxDlg::CMessageBoxDlg(CIrcProto *_pro, DCCINFO *_dci)
- : CProtoDlgBase<CIrcProto>(_pro, IDD_MESSAGEBOX),
+CMessageBoxDlg::CMessageBoxDlg(CIrcProto *_pro, DCCINFO *_dci) :
+ CIrcBaseDlg(_pro, IDD_MESSAGEBOX),
pdci(_dci)
{
}
@@ -244,8 +244,8 @@ bool CNickDlg::OnApply() #define LIST_TIMER 10
-CListDlg::CListDlg(CIrcProto *_pro)
- : CProtoDlgBase<CIrcProto>(_pro, IDD_LIST),
+CListDlg::CListDlg(CIrcProto *_pro) :
+ CIrcBaseDlg(_pro, IDD_LIST),
m_Join(this, IDC_JOIN),
m_list(this, IDC_INFO_LISTVIEW),
m_list2(this, IDC_INFO_LISTVIEW2),
@@ -546,157 +546,6 @@ bool CJoinDlg::OnApply() }
/////////////////////////////////////////////////////////////////////////////////////////
-// 'Quick' dialog
-
-CQuickDlg::CQuickDlg(CIrcProto *_pro)
- : CCoolIrcDlg(_pro, IDD_QUICKCONN),
- m_serverCombo(this, IDC_SERVERCOMBO)
-{
- m_serverCombo.OnChange = Callback(this, &CQuickDlg::OnServerCombo);
-}
-
-bool CQuickDlg::OnInitDialog()
-{
- CCoolIrcDlg::OnInitDialog();
-
- if (g_servers.getCount() > 0) {
- for (auto &si : g_servers)
- m_serverCombo.AddStringA(si->m_name, (LPARAM)si);
- }
- else EnableWindow(GetDlgItem(m_hwnd, IDOK), false);
-
- CMStringA szName(FORMAT, "---- %s ----", Translate("Not listed server"));
- m_si = new SERVER_INFO;
- m_si->m_group = mir_strdup("");
- m_si->m_name = szName.Detach();
-
- DBVARIANT dbv;
- if (!m_proto->getString("ServerName", &dbv)) {
- m_si->m_address = mir_strdup(dbv.pszVal);
- db_free(&dbv);
- }
- else m_si->m_address = mir_strdup(Translate("Type new server address here"));
-
- if (!m_proto->getString("PortStart", &dbv)) {
- m_si->m_portStart = atoi(dbv.pszVal);
- db_free(&dbv);
- }
- else m_si->m_portStart = 6667;
-
- if (!m_proto->getString("PortEnd", &dbv)) {
- m_si->m_portEnd = atoi(dbv.pszVal);
- db_free(&dbv);
- }
- else m_si->m_portEnd = 6667;
-
- m_si->m_iSSL = m_proto->getByte("UseSSL", 0);
-
- m_serverCombo.AddStringA(m_si->m_name, (LPARAM)m_si);
-
- if (m_proto->m_quickComboSelection != -1) {
- m_serverCombo.SetCurSel(m_proto->m_quickComboSelection);
- OnServerCombo(nullptr);
- }
- else EnableWindow(GetDlgItem(m_hwnd, IDOK), false);
- return true;
-}
-
-void CQuickDlg::OnDestroy()
-{
- CCoolIrcDlg::OnDestroy();
-
- delete m_si;
- m_proto->m_quickDlg = nullptr;
-}
-
-bool CQuickDlg::OnApply()
-{
- GetDlgItemTextA(m_hwnd, IDC_SERVER, m_proto->m_serverName, _countof(m_proto->m_serverName));
- GetDlgItemTextA(m_hwnd, IDC_PORT, m_proto->m_portStart, _countof(m_proto->m_portStart));
- GetDlgItemTextA(m_hwnd, IDC_PORT2, m_proto->m_portEnd, _countof(m_proto->m_portEnd));
- GetDlgItemTextA(m_hwnd, IDC_PASS, m_proto->m_password, _countof(m_proto->m_password));
-
- int i = m_serverCombo.GetCurSel();
- SERVER_INFO* pData = (SERVER_INFO*)m_serverCombo.GetItemData(i);
- if (pData && (INT_PTR)pData != CB_ERR) {
- mir_strcpy(m_proto->m_network, pData->m_group);
- pData->m_iSSL = 0;
- if (IsDlgButtonChecked(m_hwnd, IDC_SSL_ON))
- pData->m_iSSL = 2;
- if (IsDlgButtonChecked(m_hwnd, IDC_SSL_AUTO))
- pData->m_iSSL = 1;
- m_proto->m_iSSL = pData->m_iSSL;
- }
-
- wchar_t windowname[20];
- GetWindowText(m_hwnd, windowname, _countof(windowname));
- if (mir_wstrcmpi(windowname, L"Miranda IRC") == 0) {
- m_proto->m_serverComboSelection = m_serverCombo.GetCurSel() - 1;
- m_proto->setDword("ServerComboSelection", m_proto->m_serverComboSelection);
- m_proto->setString("ServerName", m_proto->m_serverName);
- m_proto->setString("PortStart", m_proto->m_portStart);
- m_proto->setString("PortEnd", m_proto->m_portEnd);
- m_proto->setString("Password", m_proto->m_password);
- m_proto->setString("Network", m_proto->m_network);
- m_proto->setByte("UseSSL", m_proto->m_iSSL);
- }
- m_proto->m_quickComboSelection = m_serverCombo.GetCurSel();
- m_proto->setDword("QuickComboSelection", m_proto->m_quickComboSelection);
- m_proto->DisconnectFromServer();
- m_proto->ConnectToServer();
- return true;
-}
-
-void CQuickDlg::OnServerCombo(CCtrlData*)
-{
- int i = m_serverCombo.GetCurSel();
- if (i == CB_ERR)
- return;
-
- SERVER_INFO* pData = (SERVER_INFO*)m_serverCombo.GetItemData(i);
- SetDlgItemTextA(m_hwnd, IDC_SERVER, pData->m_address);
- SetDlgItemTextA(m_hwnd, IDC_PASS, "");
- SetDlgItemInt(m_hwnd, IDC_PORT, pData->m_portStart, FALSE);
- SetDlgItemInt(m_hwnd, IDC_PORT2, pData->m_portEnd, FALSE);
-
- if (pData->m_iSSL == 0) {
- CheckDlgButton(m_hwnd, IDC_SSL_OFF, BST_CHECKED);
- CheckDlgButton(m_hwnd, IDC_SSL_AUTO, BST_UNCHECKED);
- CheckDlgButton(m_hwnd, IDC_SSL_ON, BST_UNCHECKED);
- }
- if (pData->m_iSSL == 1) {
- CheckDlgButton(m_hwnd, IDC_SSL_AUTO, BST_CHECKED);
- CheckDlgButton(m_hwnd, IDC_SSL_OFF, BST_UNCHECKED);
- CheckDlgButton(m_hwnd, IDC_SSL_ON, BST_UNCHECKED);
- }
- if (pData->m_iSSL == 2) {
- CheckDlgButton(m_hwnd, IDC_SSL_ON, BST_CHECKED);
- CheckDlgButton(m_hwnd, IDC_SSL_OFF, BST_UNCHECKED);
- CheckDlgButton(m_hwnd, IDC_SSL_AUTO, BST_UNCHECKED);
- }
-
- CMStringA szDefault(FORMAT, "---- %s ----", Translate("Not listed server"));
- if (!mir_strcmp(pData->m_name, szDefault)) {
- SendDlgItemMessage(m_hwnd, IDC_SERVER, EM_SETREADONLY, false, 0);
- SendDlgItemMessage(m_hwnd, IDC_PORT, EM_SETREADONLY, false, 0);
- SendDlgItemMessage(m_hwnd, IDC_PORT2, EM_SETREADONLY, false, 0);
- EnableWindow(GetDlgItem(m_hwnd, IDC_SSL_OFF), TRUE);
- EnableWindow(GetDlgItem(m_hwnd, IDC_SSL_AUTO), TRUE);
- EnableWindow(GetDlgItem(m_hwnd, IDC_SSL_ON), TRUE);
- }
- else {
- SendDlgItemMessage(m_hwnd, IDC_SERVER, EM_SETREADONLY, true, 0);
- SendDlgItemMessage(m_hwnd, IDC_PORT, EM_SETREADONLY, true, 0);
- SendDlgItemMessage(m_hwnd, IDC_PORT2, EM_SETREADONLY, true, 0);
- EnableWindow(GetDlgItem(m_hwnd, IDC_SSL_OFF), FALSE);
- EnableWindow(GetDlgItem(m_hwnd, IDC_SSL_AUTO), FALSE);
- EnableWindow(GetDlgItem(m_hwnd, IDC_SSL_ON), FALSE);
- }
-
- EnableWindow(GetDlgItem(m_hwnd, IDOK), true);
-}
-
-/////////////////////////////////////////////////////////////////////////////////////////
// 'Question' dialog
CQuestionDlg::CQuestionDlg(CIrcProto *_pro, CManagerDlg *owner) :
@@ -921,7 +770,7 @@ bool CManagerDlg::OnClose() }
if (!S.IsEmpty() && m_proto->IsConnected()) {
- mir_snwprintf(temp, L"Topic%s%s", window, m_proto->m_info.sNetwork.c_str());
+ mir_snwprintf(temp, L"Topic%s", window);
char* p = mir_u2a(temp);
m_proto->setWString(p, S.c_str());
mir_free(p);
@@ -1277,7 +1126,7 @@ void CManagerDlg::InitManager(int mode, const wchar_t* window) if (wi) {
if (m_proto->IsConnected()) {
wchar_t temp[1000];
- mir_snwprintf(temp, L"Topic%s%s", window, m_proto->m_info.sNetwork.c_str());
+ mir_snwprintf(temp, L"Topic%s", window);
char* p = mir_u2a(temp);
@@ -1370,8 +1219,8 @@ void CManagerDlg::InitManager(int mode, const wchar_t* window) /////////////////////////////////////////////////////////////////////////////////////////
// 'cool' dialog
-CCoolIrcDlg::CCoolIrcDlg(CIrcProto* _pro, int dlgId)
- : CProtoDlgBase<CIrcProto>(_pro, dlgId)
+CCoolIrcDlg::CCoolIrcDlg(CIrcProto* _pro, int dlgId) :
+ CIrcBaseDlg(_pro, dlgId)
{}
bool CCoolIrcDlg::OnInitDialog()
|