From 296157204cb8c89827ee68c39f5e1783d2de7e86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20P=C3=B6sel?= Date: Thu, 16 May 2013 20:46:27 +0000 Subject: Omegle: - Show in status bar when Stranger is typing - Added option to chose language of Stranger - Use version.h file - Updated copyright year - Small fixes. - Version bump. git-svn-id: http://svn.miranda-ng.org/main/trunk@4691 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- protocols/Omegle/omegle_10.vcxproj | 2 + protocols/Omegle/omegle_10.vcxproj.filters | 6 + protocols/Omegle/omegle_11.vcxproj | 1 + protocols/Omegle/omegle_11.vcxproj.filters | 3 + protocols/Omegle/res/omegle.rc | 185 ++++++++++------------------- protocols/Omegle/res/version.rc | 38 ++++++ protocols/Omegle/src/chat.cpp | 33 ++++- protocols/Omegle/src/client.h | 5 +- protocols/Omegle/src/common.h | 5 +- protocols/Omegle/src/communication.cpp | 36 +++++- protocols/Omegle/src/connection.cpp | 2 +- protocols/Omegle/src/constants.h | 92 +++++++++++++- protocols/Omegle/src/db.h | 3 +- protocols/Omegle/src/dialogs.cpp | 22 +++- protocols/Omegle/src/dialogs.h | 2 +- protocols/Omegle/src/events.cpp | 2 +- protocols/Omegle/src/http.cpp | 2 +- protocols/Omegle/src/http.h | 2 +- protocols/Omegle/src/main.cpp | 16 +-- protocols/Omegle/src/messages.cpp | 2 +- protocols/Omegle/src/process.cpp | 2 +- protocols/Omegle/src/proto.cpp | 2 +- protocols/Omegle/src/proto.h | 3 +- protocols/Omegle/src/resource.h | 4 +- protocols/Omegle/src/stubs.cpp | 2 +- protocols/Omegle/src/theme.cpp | 2 +- protocols/Omegle/src/theme.h | 2 +- protocols/Omegle/src/utils.cpp | 2 +- protocols/Omegle/src/utils.h | 2 +- protocols/Omegle/src/version.h | 21 ++++ 30 files changed, 329 insertions(+), 172 deletions(-) create mode 100644 protocols/Omegle/res/version.rc create mode 100644 protocols/Omegle/src/version.h diff --git a/protocols/Omegle/omegle_10.vcxproj b/protocols/Omegle/omegle_10.vcxproj index e453bec912..22020d375f 100644 --- a/protocols/Omegle/omegle_10.vcxproj +++ b/protocols/Omegle/omegle_10.vcxproj @@ -201,9 +201,11 @@ + + diff --git a/protocols/Omegle/omegle_10.vcxproj.filters b/protocols/Omegle/omegle_10.vcxproj.filters index ae6518148d..b28798a212 100644 --- a/protocols/Omegle/omegle_10.vcxproj.filters +++ b/protocols/Omegle/omegle_10.vcxproj.filters @@ -86,11 +86,17 @@ Header Files + + Header Files + Resource Files + + Resource Files + diff --git a/protocols/Omegle/omegle_11.vcxproj b/protocols/Omegle/omegle_11.vcxproj index ae0726d836..a304910eec 100644 --- a/protocols/Omegle/omegle_11.vcxproj +++ b/protocols/Omegle/omegle_11.vcxproj @@ -207,6 +207,7 @@ + diff --git a/protocols/Omegle/omegle_11.vcxproj.filters b/protocols/Omegle/omegle_11.vcxproj.filters index 1dbee5e29b..9132493e95 100644 --- a/protocols/Omegle/omegle_11.vcxproj.filters +++ b/protocols/Omegle/omegle_11.vcxproj.filters @@ -90,6 +90,9 @@ Resource Files + + + Resource Files \ No newline at end of file diff --git a/protocols/Omegle/res/omegle.rc b/protocols/Omegle/res/omegle.rc index 61481f7302..d1226cf03d 100644 --- a/protocols/Omegle/res/omegle.rc +++ b/protocols/Omegle/res/omegle.rc @@ -19,6 +19,41 @@ LANGUAGE LANG_CZECH, SUBLANG_DEFAULT #pragma code_page(1250) +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "..\\src\\resource.h\0" +END + +2 TEXTINCLUDE +BEGIN + "#include ""afxres.h""\r\n" + "#include ""..\\src\\constants.h""\0" +END + +3 TEXTINCLUDE +BEGIN + "\r\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDI_OMEGLE ICON "omegle.ico" + + ///////////////////////////////////////////////////////////////////////////// // // Dialog @@ -29,10 +64,12 @@ STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD EXSTYLE WS_EX_CONTROLPARENT FONT 8, "MS Shell Dlg", 400, 0, 0x1 BEGIN - COMBOBOX IDC_SERVER,84,7,130,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - LTEXT "Server:",IDC_STATIC,24,9,60,8 - LTEXT "Visible name:",IDC_STATIC,24,25,60,8 - EDITTEXT IDC_NAME,84,22,130,14,ES_AUTOHSCROLL + LTEXT "Server:",IDC_STATIC,24,9,56,8,0,WS_EX_RIGHT + COMBOBOX IDC_SERVER,84,7,74,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "Language:",IDC_STATIC,162,9,56,8,0,WS_EX_RIGHT + COMBOBOX IDC_LANGUAGE,222,7,74,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "Visible name:",IDC_STATIC,24,25,56,8,0,WS_EX_RIGHT + EDITTEXT IDC_NAME,84,22,74,14,ES_AUTOHSCROLL CONTROL "Meet strangers with common interests (separated by commas):",IDC_MEET_COMMON, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,24,39,272,10 EDITTEXT IDC_INTERESTS,24,49,272,20,ES_MULTILINE | ES_AUTOVSCROLL | WS_VSCROLL @@ -47,56 +84,16 @@ BEGIN "Button",BS_AUTOCHECKBOX | WS_TABSTOP,24,167,272,10 CONTROL "Automatically connect to stranger when protocol is turned online",IDC_AUTO_CONNECT, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,24,180,272,10 - CONTROL "Automatically connect to another stranger when current disconnects",IDC_DONTSTOP, + CONTROL "Automatically connect to another stranger when current disconnects",IDC_DONTSTOP, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,24,192,272,10 - CONTROL "Don't clear chat before connecting to new stranger",IDC_NOCLEAR, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,24,204,272,10 + CONTROL "Don't clear chat before connecting to new stranger",IDC_NOCLEAR, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,24,204,272,10 CONTROL "Load count of users on actual server after connection",IDC_SERVER_INFO, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,24,216,272,10 CONTROL "Enable logging for debugging purposes",IDC_LOGGING, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,24,228,272,10 - END - -///////////////////////////////////////////////////////////////////////////// -// -// DESIGNINFO -// - -#ifdef APSTUDIO_INVOKED -GUIDELINES DESIGNINFO -BEGIN - IDD_OPTIONS, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 309 - VERTGUIDE, 24 - VERTGUIDE, 84 - VERTGUIDE, 214 - VERTGUIDE, 296 - TOPMARGIN, 7 - BOTTOMMARGIN, 241 - END -END -#endif // APSTUDIO_INVOKED - -#endif // Czech (Czech Republic) resources -///////////////////////////////////////////////////////////////////////////// - - -///////////////////////////////////////////////////////////////////////////// -// English (United States) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US -#pragma code_page(1252) - -///////////////////////////////////////////////////////////////////////////// -// -// Dialog -// - IDD_OmegleACCOUNT DIALOGEX 0, 0, 186, 134 STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD EXSTYLE WS_EX_CONTROLPARENT @@ -104,12 +101,14 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN COMBOBOX IDC_SERVER,60,0,125,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP LTEXT "Server:",IDC_STATIC,0,2,60,8 - LTEXT "Visible name:",IDC_STATIC,0,17,60,8 - EDITTEXT IDC_NAME,60,15,125,14,ES_AUTOHSCROLL + LTEXT "Visible name:",IDC_STATIC,0,32,60,8 + EDITTEXT IDC_NAME,60,30,125,14,ES_AUTOHSCROLL CONTROL "Meet strangers with common interests",IDC_MEET_COMMON, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,0,36,185,10 - EDITTEXT IDC_INTERESTS,0,60,185,32,ES_MULTILINE | ES_AUTOVSCROLL | WS_VSCROLL - LTEXT "Your interests (separated by commas):",IDC_STATIC,0,50,185,8 + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,0,52,185,10 + EDITTEXT IDC_INTERESTS,0,76,185,32,ES_MULTILINE | ES_AUTOVSCROLL | WS_VSCROLL + LTEXT "Your interests (separated by commas):",IDC_STATIC,0,66,185,8 + COMBOBOX IDC_LANGUAGE,60,15,125,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "Language:",IDC_STATIC,0,17,60,8 END @@ -126,82 +125,22 @@ BEGIN VERTGUIDE, 60 VERTGUIDE, 185 END -END -#endif // APSTUDIO_INVOKED - - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE -BEGIN - "..\\src\\resource.h\0" -END - -2 TEXTINCLUDE -BEGIN - "#include ""afxres.h""\r\n" - "#include ""..\\src\\constants.h""\0" -END - -3 TEXTINCLUDE -BEGIN - "\r\0" -END - -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// Icon -// - -// Icon with lowest ID value placed first to ensure application icon -// remains consistent on all systems. -IDI_OMEGLE ICON "omegle.ico" -///////////////////////////////////////////////////////////////////////////// -// -// Version -// - -VS_VERSION_INFO VERSIONINFO - FILEVERSION 0,1,0,1 - PRODUCTVERSION 0,1,0,1 - FILEFLAGSMASK 0x17L -#ifdef _DEBUG - FILEFLAGS 0x1L -#else - FILEFLAGS 0x0L -#endif - FILEOS 0x4L - FILETYPE 0x2L - FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904b0" - BEGIN - VALUE "FileDescription", "Omegle protocol plugin for Miranda NG" - VALUE "FileVersion", "0.1.1.0" - VALUE "InternalName", "Omegle" - VALUE "LegalCopyright", "Copyright © 2011-12 Robert Pösel" - VALUE "OriginalFilename", "omegle.dll" - VALUE "ProductName", "Omegle Protocol" - VALUE "ProductVersion", "0.1.1.0" - END - END - BLOCK "VarFileInfo" + IDD_OPTIONS, DIALOG BEGIN - VALUE "Translation", 0x409, 1200 + LEFTMARGIN, 7 + RIGHTMARGIN, 309 + VERTGUIDE, 24 + VERTGUIDE, 84 + VERTGUIDE, 214 + VERTGUIDE, 296 + TOPMARGIN, 7 + BOTTOMMARGIN, 241 END END +#endif // APSTUDIO_INVOKED -#endif // English (United States) resources +#endif // Czech (Czech Republic) resources ///////////////////////////////////////////////////////////////////////////// diff --git a/protocols/Omegle/res/version.rc b/protocols/Omegle/res/version.rc new file mode 100644 index 0000000000..5bfbab4754 --- /dev/null +++ b/protocols/Omegle/res/version.rc @@ -0,0 +1,38 @@ +// Microsoft Visual C++ generated resource script. +// +#ifdef APSTUDIO_INVOKED +#error this file is not editable by Microsoft Visual C++ +#endif //APSTUDIO_INVOKED + +#include "afxres.h" +#include "..\src\version.h" + +VS_VERSION_INFO VERSIONINFO + FILEVERSION __FILEVERSION_STRING + PRODUCTVERSION __FILEVERSION_STRING + FILEFLAGSMASK 0x17L +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x4L + FILETYPE 0x0L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "000004b0" + BEGIN + VALUE "FileDescription", __DESCRIPTION + VALUE "InternalName", __PLUGIN_NAME + VALUE "LegalCopyright", __COPYRIGHT + VALUE "OriginalFilename", __FILENAME + VALUE "ProductName", __PLUGIN_NAME + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0, 1200 + END +END diff --git a/protocols/Omegle/src/chat.cpp b/protocols/Omegle/src/chat.cpp index 647f012b40..62a00d5174 100644 --- a/protocols/Omegle/src/chat.cpp +++ b/protocols/Omegle/src/chat.cpp @@ -3,7 +3,7 @@ Omegle plugin for Miranda Instant Messenger _____________________________________________ -Copyright © 2011-12 Robert Pösel +Copyright © 2011-13 Robert Pösel This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -172,11 +172,9 @@ int OmegleProto::OnChatEvent(WPARAM wParam,LPARAM lParam) break; } - } + } else switch (facy.state_) { + // Outgoing message - // Outgoing message - switch (facy.state_) - { case STATE_ACTIVE: LOG("**Chat - Outgoing message: %s", text.c_str()); ForkThread(&OmegleProto::SendMsgWorker, this, (void*)new std::string(text)); @@ -402,4 +400,29 @@ void OmegleProto::ClearChat() gce.pDest = &gcd; CallServiceSync(MS_GC_EVENT,WINDOW_CLEARLOG,reinterpret_cast(&gce)); +} + +// TODO: Could this be done better? +HANDLE OmegleProto::GetChatHandle() +{ + /*if (facy.chatHandle_ != NULL) + return facy.chatHandle_; + + for (HANDLE hContact = db_find_first(m_szModuleName); hContact; hContact = db_find_next(hContact, m_szModuleName)) { + if (db_get_b(hContact, m_szModuleName, "ChatRoom", 0) > 0) { + ptrA id = db_get_sa(hContact, m_szModuleName, "ChatRoomId"); + if (id != NULL && !strcmp(id, m_szModuleName)) + return hContact; + } + } + + return NULL;*/ + + GC_INFO gci = {0}; + gci.Flags = HCONTACT; + gci.pszModule = m_szModuleName; + gci.pszID = const_cast(m_tszUserName); + CallService(MS_GC_GETINFO, 0, (LPARAM)(GC_INFO *) &gci); + + return gci.hContact; } \ No newline at end of file diff --git a/protocols/Omegle/src/client.h b/protocols/Omegle/src/client.h index be5ec9055c..a6e28c5a2c 100644 --- a/protocols/Omegle/src/client.h +++ b/protocols/Omegle/src/client.h @@ -3,7 +3,7 @@ Omegle plugin for Miranda Instant Messenger _____________________________________________ -Copyright © 2011-12 Robert Pösel +Copyright © 2011-13 Robert Pösel This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -48,11 +48,13 @@ public: hConnection = NULL; hEventsConnection = NULL; connection_lock_ = NULL; + chatHandle_ = NULL; } HANDLE hConnection; HANDLE hEventsConnection; HANDLE connection_lock_; + HANDLE chatHandle_; // Parent handle OmegleProto* parent; @@ -77,6 +79,7 @@ public: void store_headers( http::response* resp, NETLIBHTTPHEADER* headers, int headers_count ); std::string get_server( bool not_last = false ); + std::string get_language(); // Connection handling unsigned int error_count_; diff --git a/protocols/Omegle/src/common.h b/protocols/Omegle/src/common.h index 76ca316359..3fdc0ab188 100644 --- a/protocols/Omegle/src/common.h +++ b/protocols/Omegle/src/common.h @@ -3,7 +3,7 @@ Omegle plugin for Miranda Instant Messenger _____________________________________________ -Copyright © 2011-12 Robert Pösel +Copyright © 2011-13 Robert Pösel This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -61,8 +61,11 @@ along with this program. If not, see . #include #include #include +#include //#include +#include "version.h" + class OmegleProto; #define LOG Log diff --git a/protocols/Omegle/src/communication.cpp b/protocols/Omegle/src/communication.cpp index fa34f586b8..033068b872 100644 --- a/protocols/Omegle/src/communication.cpp +++ b/protocols/Omegle/src/communication.cpp @@ -3,7 +3,7 @@ Omegle plugin for Miranda Instant Messenger _____________________________________________ -Copyright © 2011-12 Robert Pösel +Copyright © 2011-13 Robert Pösel This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -150,6 +150,15 @@ std::string Omegle_client::get_server( bool not_last ) return servers[server]; } +std::string Omegle_client::get_language() +{ + BYTE language = db_get_b(NULL, parent->m_szModuleName, OMEGLE_KEY_LANGUAGE, 0); + if (language < 0 || language >= (SIZEOF(languages))) + language = 0; + + return language > 0 ? languages[language].id : "en"; +} + int Omegle_client::choose_method( int request_type ) { switch ( request_type ) @@ -198,7 +207,8 @@ std::string Omegle_client::choose_action( int request_type, std::string* data, s { case OMEGLE_REQUEST_START: { - std::string action = "/start?rcs=1&spid="; + std::string action = "/start?rcs=1&spid=&lang="; + action += get_language(); if (get_data != NULL) action += (*get_data); @@ -319,8 +329,8 @@ bool Omegle_client::start() std::string data; if (this->spy_mode_) { - // get last server from list, which is for spy mode - this->server_ = servers[SIZEOF(servers)-1]; + //// get last server from list, which is for spy mode + //this->server_ = servers[SIZEOF(servers)-1]; if (this->question_.empty()) { data = "&wantsspy=1"; @@ -371,8 +381,8 @@ bool Omegle_client::start() data = "&topics=" + utils::url::encode(data); } - // get any server but last, which is for spy mode - this->server_ = get_server(true); + //// get any server but last, which is for spy mode + //this->server_ = get_server(true); } } @@ -508,6 +518,16 @@ bool Omegle_client::events( ) mir_free(msg); }*/ + if ( (pos = resp.data.find( "[\"serverMessage\", \"" )) != std::string::npos ) { + // We got server message + pos += 19; + + std::string message = utils::text::trim( resp.data.substr(pos, resp.data.find("\"]", pos) - pos)); + TCHAR *tstr = Langpack_PcharToTchar(message.c_str()); + parent->UpdateChat(NULL, tstr); + mir_free(tstr); + } + if ( resp.data.find( "[\"connected\"]" ) != std::string::npos ) { // Stranger connected if (this->spy_mode_ && !this->question_.empty()) { @@ -555,6 +575,7 @@ bool Omegle_client::events( ) { // Stranger is typing, not supported by chat module yet SkinPlaySound( "StrangerTyp" ); + CallService(MS_MSG_SETSTATUSTEXT, (WPARAM)parent->GetChatHandle(), (LPARAM)TranslateT("Stranger is typing.")); } if ( resp.data.find( "[\"stoppedTyping\"]" ) != std::string::npos @@ -562,6 +583,7 @@ bool Omegle_client::events( ) { // Stranger stopped typing, not supported by chat module yet SkinPlaySound( "StrangerTypStop" ); + CallService(MS_MSG_SETSTATUSTEXT, (WPARAM)parent->GetChatHandle(), (LPARAM)TranslateT("Stranger stopped typing.")); } pos = 0; @@ -577,6 +599,8 @@ bool Omegle_client::events( ) TCHAR *msg = mir_a2t_cp(message.c_str(),CP_UTF8); parent->UpdateChat(TranslateT("Stranger"), msg); mir_free(msg); + + CallService(MS_MSG_SETSTATUSTEXT, (WPARAM)parent->GetChatHandle(), 0); } } diff --git a/protocols/Omegle/src/connection.cpp b/protocols/Omegle/src/connection.cpp index 409b376a33..b098e81fad 100644 --- a/protocols/Omegle/src/connection.cpp +++ b/protocols/Omegle/src/connection.cpp @@ -3,7 +3,7 @@ Omegle plugin for Miranda Instant Messenger _____________________________________________ -Copyright © 2011-12 Robert Pösel +Copyright © 2011-13 Robert Pösel This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/protocols/Omegle/src/constants.h b/protocols/Omegle/src/constants.h index 319c184992..81a4630c98 100644 --- a/protocols/Omegle/src/constants.h +++ b/protocols/Omegle/src/constants.h @@ -3,7 +3,7 @@ Omegle plugin for Miranda Instant Messenger _____________________________________________ -Copyright © 2011-12 Robert Pösel +Copyright © 2011-13 Robert Pösel This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -22,10 +22,6 @@ along with this program. If not, see . #pragma once -// Version management -#define __VERSION_DWORD PLUGIN_MAKE_VERSION(0,1,1,0) -#define __VERSION_STRING "0.1.1.0" - // Product management #define OMEGLE_NAME "Omegle" #define OMEGLE_SERVER_REGULAR "http://www.omegle.com" @@ -52,4 +48,88 @@ along with this program. If not, see . // Servers list //static const char *servers[] = {"Random", "bajor", "cardassia", "promenade", "odo-bucket", "ferengi", "quilt", "empok-nor", "quibbler"}; -static const char *servers[] = {"Random", "front1", "front2", "front3", "front4", "qfront1"}; \ No newline at end of file +static const char *servers[] = {"Random", "front1", "front2", "front3", "front4", "front5", "front6", "front7", "front8", "front9"}; + +static const struct { + const char *id; + const char *lang; +} languages[] = { + {"en", "English"}, + {"af", "Afrikaans"}, + {"sq", "Albanian"}, + {"ar", "Arabic"}, + {"hy", "Armenian"}, + {"az", "Azerbaijani"}, + {"eu", "Basque"}, + {"be", "Belarusian"}, + {"bn", "Bengali"}, + {"bs", "Bosnian"}, + {"bg", "Bulgarian"}, + {"ceb", "Cebuanese"}, + {"cs", "Czech"}, + {"zh-CN", "Chinese (simplified)"}, + {"zh-TW", "Chinese (traditional)"}, + {"da", "Danish"}, + {"eo", "Esperanto"}, + {"et", "Estonian"}, + {"tl", "Philipino"}, + {"fi", "Finnish"}, + {"fr", "French"}, + {"gl", "Galician"}, + {"ka", "Georgian"}, + {"gu", "Gujarati"}, + {"ht", "Haitian Creole"}, + {"iw", "Hebrew"}, + {"hi", "Hindi"}, + {"hmn", "Hmong"}, + {"nl", "Dutch"}, + {"hr", "Croat"}, + {"id", "Indonesian"}, + {"ga", "Irish"}, + {"is", "Icelandic"}, + {"it", "Italian"}, + {"ja", "Japanese"}, + {"jw", "Javanese"}, + {"yi", "Yiddish"}, + {"kn", "Kannada"}, + {"ca", "Catalan"}, + {"km", "Khmer"}, + {"ko", "Korean"}, + {"lo", "Lao"}, + {"la", "Latina"}, + {"lt", "Lithuanian"}, + {"lv", "Latvian"}, + {"hu", "Hungarian"}, + {"mk", "Macedonian"}, + {"ms", "Malay"}, + {"mt", "Maltese"}, + {"mr", "Marathi"}, + {"de", "German"}, + {"no", "Norwegian"}, + {"fa", "Persian"}, + {"pl", "Polish"}, + {"pt", "Portugese"}, + {"ro", "Romañian"}, + {"ru", "Russian"}, + {"el", "Greek"}, + {"sk", "Slovak"}, + {"sl", "Slovenian"}, + {"sr", "Serbian"}, + {"sw", "Swahili"}, + {"es", "Spanish"}, + {"sv", "Swedish"}, + {"ta", "Tamil"}, + {"te", "Telugu"}, + {"th", "Thai"}, + {"tr", "Turkish"}, + {"uk", "Ukrainian"}, + {"ur", "Urdu"}, + {"cy", "Welsh"}, + {"vi", "Vietnamese"} +}; + +// Known server messages, only to inform lpgen +static const char *server_messages[] = { + LPGEN("Stranger is using Omegle's mobile Web site (omegle.com on a phone or tablet)"), + LPGEN("You and stranger speak the same language.") +}; diff --git a/protocols/Omegle/src/db.h b/protocols/Omegle/src/db.h index 355c0061ab..69dfa7e54e 100644 --- a/protocols/Omegle/src/db.h +++ b/protocols/Omegle/src/db.h @@ -3,7 +3,7 @@ Omegle plugin for Miranda Instant Messenger _____________________________________________ -Copyright © 2011-12 Robert Pösel +Copyright © 2011-13 Robert Pösel This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -50,6 +50,7 @@ along with this program. If not, see . #define OMEGLE_KEY_INTERESTS "Interests" #define OMEGLE_KEY_REUSE_QUESTION "ReuseQuestion" #define OMEGLE_KEY_SERVER "Server" +#define OMEGLE_KEY_LANGUAGE "Language" #define OMEGLE_KEY_LOGGING "EnableLogging" #define OMEGLE_KEY_SERVER_INFO "GetServerInfo" #define OMEGLE_KEY_LAST_QUESTION "LastQuestion" diff --git a/protocols/Omegle/src/dialogs.cpp b/protocols/Omegle/src/dialogs.cpp index a3dff58abc..057a43955f 100644 --- a/protocols/Omegle/src/dialogs.cpp +++ b/protocols/Omegle/src/dialogs.cpp @@ -3,7 +3,7 @@ Omegle plugin for Miranda Instant Messenger _____________________________________________ -Copyright © 2011-12 Robert Pösel +Copyright © 2011-13 Robert Pösel This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -77,11 +77,14 @@ INT_PTR CALLBACK OmegleAccountProc( HWND hwnd, UINT message, WPARAM wparam, LPAR // Server SendDlgItemMessageA(hwnd, IDC_SERVER, CB_INSERTSTRING, 0, reinterpret_cast(Translate(servers[0]))); for(size_t i=1; i(servers[i])); - } SendDlgItemMessage(hwnd, IDC_SERVER, CB_SETCURSEL, db_get_b(NULL, proto->m_szModuleName, OMEGLE_KEY_SERVER, 0), 0); + // Language + for(size_t i=0; i(Translate(languages[i].lang))); + SendDlgItemMessage(hwnd, IDC_LANGUAGE, CB_SETCURSEL, db_get_b(NULL, proto->m_szModuleName, OMEGLE_KEY_LANGUAGE, 0), 0); + LoadDBText(proto, hwnd, IDC_NAME, OMEGLE_KEY_NAME); LoadDBText(proto, hwnd, IDC_INTERESTS, OMEGLE_KEY_INTERESTS); LoadDBCheckState(proto, hwnd, IDC_MEET_COMMON, OMEGLE_KEY_MEET_COMMON); @@ -91,6 +94,7 @@ INT_PTR CALLBACK OmegleAccountProc( HWND hwnd, UINT message, WPARAM wparam, LPAR case WM_COMMAND: switch(LOWORD(wparam)) { + case IDC_LANGUAGE: case IDC_SERVER: if (HIWORD(wparam) == CBN_SELCHANGE) { SendMessage(GetParent(hwnd), PSM_CHANGED, 0, 0); @@ -115,6 +119,7 @@ INT_PTR CALLBACK OmegleAccountProc( HWND hwnd, UINT message, WPARAM wparam, LPAR proto = reinterpret_cast(GetWindowLongPtr(hwnd,GWLP_USERDATA)); db_set_b(NULL, proto->m_szModuleName, OMEGLE_KEY_SERVER, SendDlgItemMessage(hwnd, IDC_SERVER, CB_GETCURSEL, 0, 0)); + db_set_b(NULL, proto->m_szModuleName, OMEGLE_KEY_LANGUAGE, SendDlgItemMessage(hwnd, IDC_LANGUAGE, CB_GETCURSEL, 0, 0)); StoreDBText(proto, hwnd, IDC_NAME, OMEGLE_KEY_NAME); StoreDBText(proto, hwnd, IDC_INTERESTS, OMEGLE_KEY_INTERESTS); @@ -149,11 +154,14 @@ INT_PTR CALLBACK OmegleOptionsProc( HWND hwnd, UINT message, WPARAM wparam, LPAR // Server SendDlgItemMessageA(hwnd, IDC_SERVER, CB_INSERTSTRING, 0, reinterpret_cast(Translate(servers[0]))); for(size_t i=1; i(servers[i])); - } SendDlgItemMessage(hwnd, IDC_SERVER, CB_SETCURSEL, db_get_b(NULL, proto->m_szModuleName, OMEGLE_KEY_SERVER, 0), 0); + // Language + for(size_t i=0; i(Translate(languages[i].lang))); + SendDlgItemMessage(hwnd, IDC_LANGUAGE, CB_SETCURSEL, db_get_b(NULL, proto->m_szModuleName, OMEGLE_KEY_LANGUAGE, 0), 0); + LoadDBText(proto, hwnd, IDC_NAME, OMEGLE_KEY_NAME); LoadDBText(proto, hwnd, IDC_INTERESTS, OMEGLE_KEY_INTERESTS); LoadDBText(proto, hwnd, IDC_HI_MESSAGE, OMEGLE_KEY_HI); @@ -175,7 +183,8 @@ INT_PTR CALLBACK OmegleOptionsProc( HWND hwnd, UINT message, WPARAM wparam, LPAR switch(LOWORD(wparam)) { - case IDC_SERVER: + case IDC_SERVER: + case IDC_LANGUAGE: if (HIWORD(wparam) == CBN_SELCHANGE) { SendMessage(GetParent(hwnd), PSM_CHANGED, 0, 0); } break; @@ -209,6 +218,7 @@ INT_PTR CALLBACK OmegleOptionsProc( HWND hwnd, UINT message, WPARAM wparam, LPAR proto = reinterpret_cast(GetWindowLongPtr(hwnd,GWLP_USERDATA)); db_set_b(NULL, proto->m_szModuleName, OMEGLE_KEY_SERVER, SendDlgItemMessage(hwnd, IDC_SERVER, CB_GETCURSEL, 0, 0)); + db_set_b(NULL, proto->m_szModuleName, OMEGLE_KEY_LANGUAGE, SendDlgItemMessage(hwnd, IDC_LANGUAGE, CB_GETCURSEL, 0, 0)); StoreDBText(proto, hwnd, IDC_NAME, OMEGLE_KEY_NAME); StoreDBText(proto, hwnd, IDC_INTERESTS, OMEGLE_KEY_INTERESTS); diff --git a/protocols/Omegle/src/dialogs.h b/protocols/Omegle/src/dialogs.h index 880f04636b..e28e6a7134 100644 --- a/protocols/Omegle/src/dialogs.h +++ b/protocols/Omegle/src/dialogs.h @@ -3,7 +3,7 @@ Omegle plugin for Miranda Instant Messenger _____________________________________________ -Copyright © 2011-12 Robert Pösel +Copyright © 2011-13 Robert Pösel This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/protocols/Omegle/src/events.cpp b/protocols/Omegle/src/events.cpp index 5e2749e70c..b5f29b13ef 100644 --- a/protocols/Omegle/src/events.cpp +++ b/protocols/Omegle/src/events.cpp @@ -3,7 +3,7 @@ Omegle plugin for Miranda Instant Messenger _____________________________________________ -Copyright © 2011-12 Robert Pösel +Copyright © 2011-13 Robert Pösel This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/protocols/Omegle/src/http.cpp b/protocols/Omegle/src/http.cpp index e360253e1a..159f55365b 100644 --- a/protocols/Omegle/src/http.cpp +++ b/protocols/Omegle/src/http.cpp @@ -3,7 +3,7 @@ Omegle plugin for Miranda Instant Messenger _____________________________________________ -Copyright © 2011-12 Robert Pösel +Copyright © 2011-13 Robert Pösel This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/protocols/Omegle/src/http.h b/protocols/Omegle/src/http.h index a09e4f903d..451fe78458 100644 --- a/protocols/Omegle/src/http.h +++ b/protocols/Omegle/src/http.h @@ -3,7 +3,7 @@ Omegle plugin for Miranda Instant Messenger _____________________________________________ -Copyright © 2011-12 Robert Pösel +Copyright © 2011-13 Robert Pösel This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/protocols/Omegle/src/main.cpp b/protocols/Omegle/src/main.cpp index 04d22d4711..497717ab98 100644 --- a/protocols/Omegle/src/main.cpp +++ b/protocols/Omegle/src/main.cpp @@ -3,7 +3,7 @@ Omegle plugin for Miranda Instant Messenger _____________________________________________ -Copyright © 2011-12 Robert Pösel +Copyright © 2011-13 Robert Pösel This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -33,13 +33,13 @@ DWORD g_mirandaVersion; PLUGININFOEX pluginInfo = { sizeof(PLUGININFOEX), - "Omegle Protocol", - __VERSION_DWORD, - "Omegle protocol support for Miranda NG.", - "Robert P\xf6" "sel", - "robyer@seznam.cz", - "(c) 2011-12 Robert P\xf6" "sel", - "http://miranda-ng.org/", + __PLUGIN_NAME, + PLUGIN_MAKE_VERSION(__MAJOR_VERSION, __MINOR_VERSION, __RELEASE_NUM, __BUILD_NUM), + __DESCRIPTION, + __AUTHOR, + __AUTHOREMAIL, + __COPYRIGHT, + __AUTHORWEB, UNICODE_AWARE, // {9E1D9244-606C-4ef4-99A0-1D7D23CB7601} { 0x9e1d9244, 0x606c, 0x4ef4, { 0x99, 0xa0, 0x1d, 0x7d, 0x23, 0xcb, 0x76, 0x1 } } diff --git a/protocols/Omegle/src/messages.cpp b/protocols/Omegle/src/messages.cpp index b90ff67579..90049ab2cd 100644 --- a/protocols/Omegle/src/messages.cpp +++ b/protocols/Omegle/src/messages.cpp @@ -3,7 +3,7 @@ Omegle plugin for Miranda Instant Messenger _____________________________________________ -Copyright © 2011-12 Robert Pösel +Copyright © 2011-13 Robert Pösel This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/protocols/Omegle/src/process.cpp b/protocols/Omegle/src/process.cpp index eb707373ec..cac7c8ef91 100644 --- a/protocols/Omegle/src/process.cpp +++ b/protocols/Omegle/src/process.cpp @@ -3,7 +3,7 @@ Omegle plugin for Miranda Instant Messenger _____________________________________________ -Copyright © 2011-12 Robert Pösel +Copyright © 2011-13 Robert Pösel This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/protocols/Omegle/src/proto.cpp b/protocols/Omegle/src/proto.cpp index ad5229f13d..09f330a111 100644 --- a/protocols/Omegle/src/proto.cpp +++ b/protocols/Omegle/src/proto.cpp @@ -3,7 +3,7 @@ Omegle plugin for Miranda Instant Messenger _____________________________________________ -Copyright © 2011-12 Robert Pösel +Copyright © 2011-13 Robert Pösel This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/protocols/Omegle/src/proto.h b/protocols/Omegle/src/proto.h index 001e148735..6af449a453 100644 --- a/protocols/Omegle/src/proto.h +++ b/protocols/Omegle/src/proto.h @@ -3,7 +3,7 @@ Omegle plugin for Miranda Instant Messenger _____________________________________________ -Copyright © 2011-12 Robert Pösel +Copyright © 2011-13 Robert Pösel This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -132,6 +132,7 @@ public: void SetChatStatus(int); void ClearChat(); void SetTopic(const TCHAR *topic = NULL); + HANDLE GetChatHandle(); // Connection client Omegle_client facy; diff --git a/protocols/Omegle/src/resource.h b/protocols/Omegle/src/resource.h index cc7a7d5af1..e34fac5b93 100644 --- a/protocols/Omegle/src/resource.h +++ b/protocols/Omegle/src/resource.h @@ -1,6 +1,6 @@ //{{NO_DEPENDENCIES}} // Microsoft Visual C++ generated include file. -// Used by omegle.rc +// Used by D:\Development\Miranda NG\protocols\Omegle\res\omegle.rc // #define IDI_OMEGLE 101 #define IDD_OmegleACCOUNT 111 @@ -10,9 +10,11 @@ #define IDC_MEET_COMMON 1206 #define IDC_INTERESTS 1207 #define IDC_HI_ENABLED 1208 +#define IDC_SERVER2 1208 #define IDC_HI_MESSAGE 1209 #define IDC_ASL_MESSAGE 1210 #define IDC_LAST_QUESTION 1211 +#define IDC_LANGUAGE 1212 #define IDC_NOCLEAR 1213 #define IDC_DONTSTOP 1214 #define IDC_REUSE_QUESTIONS 1215 diff --git a/protocols/Omegle/src/stubs.cpp b/protocols/Omegle/src/stubs.cpp index b02fd71ef5..9d30932504 100644 --- a/protocols/Omegle/src/stubs.cpp +++ b/protocols/Omegle/src/stubs.cpp @@ -3,7 +3,7 @@ Omegle plugin for Miranda Instant Messenger _____________________________________________ -Copyright © 2011-12 Robert Pösel +Copyright © 2011-13 Robert Pösel This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/protocols/Omegle/src/theme.cpp b/protocols/Omegle/src/theme.cpp index 202d58791e..786e2c2340 100644 --- a/protocols/Omegle/src/theme.cpp +++ b/protocols/Omegle/src/theme.cpp @@ -3,7 +3,7 @@ Omegle plugin for Miranda Instant Messenger _____________________________________________ -Copyright © 2011-12 Robert Pösel +Copyright © 2011-13 Robert Pösel This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/protocols/Omegle/src/theme.h b/protocols/Omegle/src/theme.h index 7456803b6c..302b0e296d 100644 --- a/protocols/Omegle/src/theme.h +++ b/protocols/Omegle/src/theme.h @@ -3,7 +3,7 @@ Omegle plugin for Miranda Instant Messenger _____________________________________________ -Copyright © 2011-12 Robert Pösel +Copyright © 2011-13 Robert Pösel This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/protocols/Omegle/src/utils.cpp b/protocols/Omegle/src/utils.cpp index d8c5837cb0..fcc45aa502 100644 --- a/protocols/Omegle/src/utils.cpp +++ b/protocols/Omegle/src/utils.cpp @@ -3,7 +3,7 @@ Omegle plugin for Miranda Instant Messenger _____________________________________________ -Copyright © 2011-12 Robert Pösel +Copyright © 2011-13 Robert Pösel This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/protocols/Omegle/src/utils.h b/protocols/Omegle/src/utils.h index 908b721e72..d6b8e560eb 100644 --- a/protocols/Omegle/src/utils.h +++ b/protocols/Omegle/src/utils.h @@ -3,7 +3,7 @@ Omegle plugin for Miranda Instant Messenger _____________________________________________ -Copyright © 2011-12 Robert Pösel +Copyright © 2011-13 Robert Pösel This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/protocols/Omegle/src/version.h b/protocols/Omegle/src/version.h new file mode 100644 index 0000000000..f8f8b70911 --- /dev/null +++ b/protocols/Omegle/src/version.h @@ -0,0 +1,21 @@ +#define __MAJOR_VERSION 0 +#define __MINOR_VERSION 1 +#define __RELEASE_NUM 2 +#define __BUILD_NUM 0 + +#define __FILEVERSION_STRING __MAJOR_VERSION,__MINOR_VERSION,__RELEASE_NUM,__BUILD_NUM +#define __FILEVERSION_DOTS __MAJOR_VERSION.__MINOR_VERSION.__RELEASE_NUM.__BUILD_NUM + +#define __STRINGIFY_IMPL(x) #x +#define __STRINGIFY(x) __STRINGIFY_IMPL(x) +#define __VERSION_STRING __STRINGIFY(__FILEVERSION_DOTS) + +#define __PLUGIN_NAME "Omegle Protocol" +#define __INTERNAL_NAME "Omegle Protocol" +#define __FILENAME "Omegle.dll" +#define __DESCRIPTION "Omegle protocol support for Miranda NG." +#define __AUTHOR "Robert P\xf6" "sel" +#define __AUTHOREMAIL "robyer@seznam.cz" +#define __AUTHORWEB "http://miranda-ng.org/" +#define __COPYRIGHT "© 2011-13 Robert P\xf6" "sel" + -- cgit v1.2.3