From 1a9f50fcbc79413ccc669349b682aa6a6ebb398b Mon Sep 17 00:00:00 2001 From: Kirill Volinsky Date: Sat, 13 Oct 2012 18:34:25 +0000 Subject: Twitter: folders restructurization git-svn-id: http://svn.miranda-ng.org/main/trunk@1909 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- protocols/Twitter/ui.cpp | 589 ----------------------------------------------- 1 file changed, 589 deletions(-) delete mode 100644 protocols/Twitter/ui.cpp (limited to 'protocols/Twitter/ui.cpp') diff --git a/protocols/Twitter/ui.cpp b/protocols/Twitter/ui.cpp deleted file mode 100644 index fa6899c13d..0000000000 --- a/protocols/Twitter/ui.cpp +++ /dev/null @@ -1,589 +0,0 @@ -/* -Copyright © 2009 Jim Porter - -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 -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include "ui.h" - -#include -#include - -#include "proto.h" -#include "twitter.h" - -static const TCHAR *sites[] = { - _T("https://twitter.com/"), - _T("https://identi.ca/api/") -}; - -INT_PTR CALLBACK first_run_dialog(HWND hwndDlg,UINT msg,WPARAM wParam,LPARAM lParam) -{ - TwitterProto *proto; - - switch(msg) - { - case WM_INITDIALOG: - TranslateDialogDefault(hwndDlg); - - proto = reinterpret_cast(lParam); - SetWindowLongPtr(hwndDlg,GWLP_USERDATA,lParam); - - DBVARIANT dbv; - - if( !DBGetContactSettingTString(0,proto->ModuleName(),TWITTER_KEY_GROUP,&dbv)) - { - SetDlgItemText(hwndDlg,IDC_GROUP,dbv.ptszVal); - DBFreeVariant(&dbv); - } - else - { - SetDlgItemText(hwndDlg,IDC_GROUP,L"Twitter"); - } - - if( !DBGetContactSettingString(0,proto->ModuleName(),TWITTER_KEY_UN,&dbv)) - { - SetDlgItemTextA(hwndDlg,IDC_USERNAME,dbv.pszVal); - DBFreeVariant(&dbv); - } - - /*if ( !DBGetContactSettingString(0,proto->ModuleName(),TWITTER_KEY_PASS,&dbv)) - { - CallService(MS_DB_CRYPT_DECODESTRING,strlen(dbv.pszVal)+1, - reinterpret_cast(dbv.pszVal)); - SetDlgItemTextA(hwndDlg,IDC_PW,dbv.pszVal); - DBFreeVariant(&dbv); - }*/ - - for(size_t i=0; i(sites[i])); - } - if( !DBGetContactSettingString(0,proto->ModuleName(),TWITTER_KEY_BASEURL,&dbv)) - { - SetDlgItemTextA(hwndDlg,IDC_SERVER,dbv.pszVal); - DBFreeVariant(&dbv); - } - else - { - SendDlgItemMessage(hwndDlg,IDC_SERVER,CB_SETCURSEL,0,0); - } - - return true; - case WM_COMMAND: - if(LOWORD(wParam) == IDC_NEWACCOUNTLINK) - { - CallService(MS_UTILS_OPENURL,1,reinterpret_cast - ("http://twitter.com/signup")); - return true; - } - - if(GetWindowLongPtr(hwndDlg,GWLP_USERDATA)) // Window is done initializing - { - switch(HIWORD(wParam)) - { - case EN_CHANGE: - case CBN_EDITCHANGE: - case CBN_SELCHANGE: - SendMessage(GetParent(hwndDlg),PSM_CHANGED,0,0); - } - } - break; - - case WM_NOTIFY: // might be able to get rid of this bit? - if(reinterpret_cast(lParam)->code == PSN_APPLY) - { - proto = reinterpret_cast(GetWindowLongPtr(hwndDlg,GWLP_USERDATA)); - char str[128]; - TCHAR tstr[128]; - - /* - GetDlgItemTextA(hwndDlg,IDC_UN,str,sizeof(str)); - DBWriteContactSettingString(0,proto->ModuleName(),TWITTER_KEY_UN,str); - - GetDlgItemTextA(hwndDlg,IDC_PW,str,sizeof(str)); - CallService(MS_DB_CRYPT_ENCODESTRING,sizeof(str),reinterpret_cast(str)); - DBWriteContactSettingString(0,proto->ModuleName(),TWITTER_KEY_PASS,str); - */ - - GetDlgItemTextA(hwndDlg,IDC_SERVER,str,sizeof(str)-1); - if(str[strlen(str)-1] != '/') - strncat(str,"/",sizeof(str)); - DBWriteContactSettingString(0,proto->ModuleName(),TWITTER_KEY_BASEURL,str); - - GetDlgItemText(hwndDlg,IDC_GROUP,tstr,SIZEOF(tstr)); - DBWriteContactSettingTString(0,proto->ModuleName(),TWITTER_KEY_GROUP,tstr); - - return true; - } - break; - } - - return false; -} - -INT_PTR CALLBACK tweet_proc(HWND hwndDlg,UINT msg,WPARAM wParam,LPARAM lParam) -{ - TwitterProto *proto; - - switch(msg) - { - case WM_INITDIALOG: - TranslateDialogDefault(hwndDlg); - - proto = reinterpret_cast(lParam); - SetWindowLongPtr(hwndDlg,GWLP_USERDATA,lParam); - SendDlgItemMessage(hwndDlg,IDC_TWEETMSG,EM_LIMITTEXT,140,0); - SetDlgItemText(hwndDlg,IDC_CHARACTERS,_T("140")); - - // Set window title - TCHAR title[512]; - mir_sntprintf(title,SIZEOF(title),_T("Send Tweet for %s"),proto->m_tszUserName); - SendMessage(hwndDlg,WM_SETTEXT,0,(LPARAM)title); - - return true; - case WM_COMMAND: - if(LOWORD(wParam) == IDOK) - { - TCHAR msg[141]; - proto = reinterpret_cast(GetWindowLongPtr(hwndDlg,GWLP_USERDATA)); - - GetDlgItemText(hwndDlg,IDC_TWEETMSG,msg,SIZEOF(msg)); - ShowWindow(hwndDlg,SW_HIDE); - - char *narrow = mir_t2a_cp(msg,CP_UTF8); - ForkThread(&TwitterProto::SendTweetWorker, proto,narrow); - - EndDialog(hwndDlg, wParam); - return true; - } - else if(LOWORD(wParam) == IDCANCEL) - { - EndDialog(hwndDlg, wParam); - return true; - } - else if(LOWORD(wParam) == IDC_TWEETMSG && HIWORD(wParam) == EN_CHANGE) - { - size_t len = SendDlgItemMessage(hwndDlg,IDC_TWEETMSG,WM_GETTEXTLENGTH,0,0); - char str[4]; - _snprintf(str,sizeof(str),"%d",140-len); - SetDlgItemTextA(hwndDlg,IDC_CHARACTERS,str); - - return true; - } - - break; - case WM_SETREPLY: - { - char foo[512]; - _snprintf(foo,sizeof(foo),"@%s ",(char*)wParam); - size_t len = strlen(foo); - - SetDlgItemTextA(hwndDlg,IDC_TWEETMSG,foo); - SendDlgItemMessage(hwndDlg,IDC_TWEETMSG,EM_SETSEL,len,len); - - char str[4]; - _snprintf(str,sizeof(str),"%d",140-len); - SetDlgItemTextA(hwndDlg,IDC_CHARACTERS,str); - - return true; - } - break; - } - - return false; -} - -INT_PTR CALLBACK options_proc(HWND hwndDlg,UINT msg,WPARAM wParam,LPARAM lParam) -{ - TwitterProto *proto; - - switch(msg) - { - case WM_INITDIALOG: - TranslateDialogDefault(hwndDlg); - - proto = reinterpret_cast(lParam); - - DBVARIANT dbv; - if( !DBGetContactSettingString(0,proto->ModuleName(),TWITTER_KEY_UN,&dbv)) - { - SetDlgItemTextA(hwndDlg,IDC_UN,dbv.pszVal); - DBFreeVariant(&dbv); - } - - /*if( !DBGetContactSettingString(0,proto->ModuleName(),TWITTER_KEY_PASS,&dbv)) - { - CallService(MS_DB_CRYPT_DECODESTRING,strlen(dbv.pszVal)+1, - reinterpret_cast(dbv.pszVal)); - SetDlgItemTextA(hwndDlg,IDC_PW,dbv.pszVal); - DBFreeVariant(&dbv); - }*/ - - CheckDlgButton(hwndDlg,IDC_CHATFEED,DBGetContactSettingByte(0, - proto->ModuleName(),TWITTER_KEY_CHATFEED,0)); - - for(size_t i=0; i(sites[i])); - } - - if( !DBGetContactSettingString(0,proto->ModuleName(),TWITTER_KEY_BASEURL,&dbv)) - { - SetDlgItemTextA(hwndDlg,IDC_BASEURL,dbv.pszVal); - DBFreeVariant(&dbv); - } - else - { - SendDlgItemMessage(hwndDlg,IDC_BASEURL,CB_SETCURSEL,0,0); - } - - char pollrate_str[32]; - mir_snprintf(pollrate_str,sizeof(pollrate_str),"%d", - DBGetContactSettingDword(0,proto->ModuleName(),TWITTER_KEY_POLLRATE,80)); - SetDlgItemTextA(hwndDlg,IDC_POLLRATE,pollrate_str); - - CheckDlgButton(hwndDlg,IDC_TWEET_MSG,DBGetContactSettingByte(0, - proto->ModuleName(),TWITTER_KEY_TWEET_TO_MSG,0)); - - - // Do this last so that any events propagated by pre-filling the form don't - // instigate a PSM_CHANGED message - SetWindowLongPtr(hwndDlg,GWLP_USERDATA,lParam); - - break; - case WM_COMMAND: - if(GetWindowLongPtr(hwndDlg,GWLP_USERDATA)) // Window is done initializing - { - switch(HIWORD(wParam)) - { - case EN_CHANGE: - case BN_CLICKED: - case CBN_EDITCHANGE: - case CBN_SELCHANGE: - switch(LOWORD(wParam)) - { - case IDC_UN: - case IDC_PW: - case IDC_BASEURL: - ShowWindow(GetDlgItem(hwndDlg,IDC_RECONNECT),SW_SHOW); - } - SendMessage(GetParent(hwndDlg),PSM_CHANGED,0,0); - } - } - - break; - case WM_NOTIFY: - if(reinterpret_cast(lParam)->code == PSN_APPLY) - { - proto = reinterpret_cast(GetWindowLongPtr(hwndDlg,GWLP_USERDATA)); - char str[128]; - - GetDlgItemTextA(hwndDlg,IDC_UN,str,sizeof(str)); - DBWriteContactSettingString(0,proto->ModuleName(),TWITTER_KEY_UN,str); - - /*GetDlgItemTextA(hwndDlg,IDC_PW,str,sizeof(str)); - CallService(MS_DB_CRYPT_ENCODESTRING,sizeof(str),reinterpret_cast(str)); - DBWriteContactSettingString(0,proto->ModuleName(),TWITTER_KEY_PASS,str);*/ - - GetDlgItemTextA(hwndDlg,IDC_BASEURL,str,sizeof(str)-1); - if(str[strlen(str)-1] != '/') - strncat(str,"/",sizeof(str)); - DBWriteContactSettingString(0,proto->ModuleName(),TWITTER_KEY_BASEURL,str); - - DBWriteContactSettingByte(0,proto->ModuleName(),TWITTER_KEY_CHATFEED, - IsDlgButtonChecked(hwndDlg,IDC_CHATFEED)); - - GetDlgItemTextA(hwndDlg,IDC_POLLRATE,str,sizeof(str)); - int rate = atoi(str); - if(rate == 0) - rate = 80; - DBWriteContactSettingDword(0,proto->ModuleName(),TWITTER_KEY_POLLRATE,rate); - - DBWriteContactSettingByte(0,proto->ModuleName(),TWITTER_KEY_TWEET_TO_MSG, - IsDlgButtonChecked(hwndDlg,IDC_TWEET_MSG)); - - proto->UpdateSettings(); - return true; - } - } - - return false; -} - -namespace popup_options -{ - static int get_timeout(HWND hwndDlg) - { - if(IsDlgButtonChecked(hwndDlg,IDC_TIMEOUT_PERMANENT)) - return -1; - else if(IsDlgButtonChecked(hwndDlg,IDC_TIMEOUT_CUSTOM)) - { - char str[32]; - GetDlgItemTextA(hwndDlg,IDC_TIMEOUT,str,sizeof(str)); - return atoi(str); - } - else // Default checked (probably) - return 0; - } - - static COLORREF get_text_color(HWND hwndDlg,bool for_db) - { - if(IsDlgButtonChecked(hwndDlg,IDC_COL_WINDOWS)) - { - if(for_db) - return -1; - else - return GetSysColor(COLOR_WINDOWTEXT); - } - else if(IsDlgButtonChecked(hwndDlg,IDC_COL_CUSTOM)) - return (COLORREF)SendDlgItemMessage(hwndDlg,IDC_COLTEXT,CPM_GETCOLOUR,0,0); - else // Default checked (probably) - return 0; - } - - static COLORREF get_back_color(HWND hwndDlg,bool for_db) - { - if(IsDlgButtonChecked(hwndDlg,IDC_COL_WINDOWS)) - { - if(for_db) - return -1; - else - return GetSysColor(COLOR_WINDOW); - } - else if(IsDlgButtonChecked(hwndDlg,IDC_COL_CUSTOM)) - return (COLORREF)SendDlgItemMessage(hwndDlg,IDC_COLBACK,CPM_GETCOLOUR,0,0); - else // Default checked (probably) - return 0; - } - - struct - { - TCHAR *name; - TCHAR *text; - } const quotes[] = { - { _T("Dorothy Parker"), _T("If, with the literate, I am\n") - _T("Impelled to try an epigram,\n") - _T("I never seek to take the credit;\n") - _T("We all assume that Oscar said it.") }, - { _T("Steve Ballmer"), _T("I have never, honestly, thrown a chair in my life.") }, - { _T("James Joyce"), _T("I think I would know Nora's fart anywhere. I think ") - _T("I could pick hers out in a roomful of farting women.") }, - { _T("Brooke Shields"), _T("Smoking kills. If you're killed, you've lost a very ") - _T("important part of your life.") }, - { _T("Yogi Berra"), _T("Always go to other peoples' funerals, otherwise ") - _T("they won't go to yours.") }, - }; - - static void preview(HWND hwndDlg) - { - POPUPDATAT popup = {}; - - // Pick a random contact - HANDLE hContact = 0; - int n_contacts = (int)CallService(MS_DB_CONTACT_GETCOUNT,0,0); - - if(n_contacts != 0) - { - int contact = rand() % n_contacts; - hContact = db_find_first(); - for(int i=0; i(&popup),0); - } -} - -void CheckAndUpdateDlgButton(HWND hWnd,int button,BOOL check) -{ - CheckDlgButton(hWnd,button,check); - SendMessage(hWnd,WM_COMMAND,MAKELONG(button,BN_CLICKED), - (LPARAM)GetDlgItem(hWnd,button)); -} - -INT_PTR CALLBACK popup_options_proc(HWND hwndDlg,UINT msg,WPARAM wParam,LPARAM lParam) -{ - using namespace popup_options; - TwitterProto *proto; - - int text_color,back_color,timeout; - - switch(msg) - { - case WM_INITDIALOG: - TranslateDialogDefault(hwndDlg); - - proto = reinterpret_cast(lParam); - - CheckAndUpdateDlgButton(hwndDlg,IDC_SHOWPOPUPS, - db_get_b(0,proto->ModuleName(),TWITTER_KEY_POPUP_SHOW,0)); - CheckDlgButton(hwndDlg,IDC_NOSIGNONPOPUPS, - !db_get_b(0,proto->ModuleName(),TWITTER_KEY_POPUP_SIGNON,0)); - - - // ***** Get color information - back_color = db_get_dw(0,proto->ModuleName(),TWITTER_KEY_POPUP_COLBACK,0); - text_color = db_get_dw(0,proto->ModuleName(),TWITTER_KEY_POPUP_COLTEXT,0); - - SendDlgItemMessage(hwndDlg,IDC_COLBACK,CPM_SETCOLOUR,0,RGB(255,255,255)); - SendDlgItemMessage(hwndDlg,IDC_COLTEXT,CPM_SETCOLOUR,0,RGB( 0, 0, 0)); - - if(back_color == -1 && text_color == -1) // Windows defaults - CheckAndUpdateDlgButton(hwndDlg,IDC_COL_WINDOWS,true); - else if(back_color == 0 && text_color == 0) // Popup defaults - CheckAndUpdateDlgButton(hwndDlg,IDC_COL_POPUP,true); - else // Custom colors - { - CheckAndUpdateDlgButton(hwndDlg,IDC_COL_CUSTOM,true); - SendDlgItemMessage(hwndDlg,IDC_COLBACK,CPM_SETCOLOUR,0,back_color); - SendDlgItemMessage(hwndDlg,IDC_COLTEXT,CPM_SETCOLOUR,0,text_color); - } - - // ***** Get timeout information - timeout = db_get_dw(0,proto->ModuleName(),TWITTER_KEY_POPUP_TIMEOUT,0); - SetDlgItemTextA(hwndDlg,IDC_TIMEOUT,"5"); - - if(timeout == 0) - CheckAndUpdateDlgButton(hwndDlg,IDC_TIMEOUT_DEFAULT,true); - else if(timeout < 0) - CheckAndUpdateDlgButton(hwndDlg,IDC_TIMEOUT_PERMANENT,true); - else - { - char str[32]; - _snprintf(str,sizeof(str),"%d",timeout); - SetDlgItemTextA(hwndDlg,IDC_TIMEOUT,str); - CheckAndUpdateDlgButton(hwndDlg,IDC_TIMEOUT_CUSTOM,true); - } - - SendDlgItemMessage(hwndDlg,IDC_TIMEOUT_SPIN,UDM_SETRANGE32,1,INT_MAX); - SetWindowLongPtr(hwndDlg,GWLP_USERDATA,lParam); - - return true; - case WM_COMMAND: - switch(HIWORD(wParam)) - { - case BN_CLICKED: - switch(LOWORD(wParam)) - { - case IDC_SHOWPOPUPS: - EnableWindow(GetDlgItem(hwndDlg,IDC_NOSIGNONPOPUPS), - IsDlgButtonChecked(hwndDlg,IDC_SHOWPOPUPS)); - break; - - case IDC_COL_CUSTOM: - EnableWindow(GetDlgItem(hwndDlg,IDC_COLBACK),true); - EnableWindow(GetDlgItem(hwndDlg,IDC_COLTEXT),true); - break; - case IDC_COL_WINDOWS: - case IDC_COL_POPUP: - EnableWindow(GetDlgItem(hwndDlg,IDC_COLBACK),false); - EnableWindow(GetDlgItem(hwndDlg,IDC_COLTEXT),false); - break; - - case IDC_TIMEOUT_CUSTOM: - EnableWindow(GetDlgItem(hwndDlg,IDC_TIMEOUT),true); - EnableWindow(GetDlgItem(hwndDlg,IDC_TIMEOUT_SPIN),true); - break; - case IDC_TIMEOUT_DEFAULT: - case IDC_TIMEOUT_PERMANENT: - EnableWindow(GetDlgItem(hwndDlg,IDC_TIMEOUT),false); - EnableWindow(GetDlgItem(hwndDlg,IDC_TIMEOUT_SPIN),false); - break; - - case IDC_PREVIEW: - preview(hwndDlg); - break; - } - - case EN_CHANGE: - if(GetWindowLongPtr(hwndDlg,GWLP_USERDATA)) // Window is done initializing - SendMessage(GetParent(hwndDlg),PSM_CHANGED,0,0); - } - break; - case WM_NOTIFY: - if(reinterpret_cast(lParam)->code == PSN_APPLY) - { - proto = reinterpret_cast(GetWindowLongPtr(hwndDlg,GWLP_USERDATA)); - - DBWriteContactSettingByte(0,proto->ModuleName(),TWITTER_KEY_POPUP_SHOW, - IsDlgButtonChecked(hwndDlg,IDC_SHOWPOPUPS)); - DBWriteContactSettingByte(0,proto->ModuleName(),TWITTER_KEY_POPUP_SIGNON, - !IsDlgButtonChecked(hwndDlg,IDC_NOSIGNONPOPUPS)); - - // ***** Write color settings - DBWriteContactSettingDword(0,proto->ModuleName(),TWITTER_KEY_POPUP_COLBACK, - get_back_color(hwndDlg,true)); - DBWriteContactSettingDword(0,proto->ModuleName(),TWITTER_KEY_POPUP_COLTEXT, - get_text_color(hwndDlg,true)); - - // ***** Write timeout setting - DBWriteContactSettingDword(0,proto->ModuleName(),TWITTER_KEY_POPUP_TIMEOUT, - get_timeout(hwndDlg)); - - return true; - } - break; - } - - return false; -} - - -INT_PTR CALLBACK pin_proc(HWND hwndDlg,UINT msg,WPARAM wParam,LPARAM lParam) -{ - TwitterProto *proto; - - switch(msg) - { - case WM_INITDIALOG: - TranslateDialogDefault(hwndDlg); - - SetWindowLongPtr(hwndDlg,GWLP_USERDATA,lParam); - - return true; - case WM_COMMAND: - if(LOWORD(wParam) == IDOK) - { - proto = reinterpret_cast(GetWindowLongPtr(hwndDlg,GWLP_USERDATA)); - char str[128]; - - GetDlgItemTextA(hwndDlg,IDC_PIN,str,sizeof(str)); - - DBWriteContactSettingString(0,proto->ModuleName(),TWITTER_KEY_OAUTH_PIN,str); - EndDialog(hwndDlg, wParam); - return true; - } - else if(LOWORD(wParam) == IDCANCEL) - { - EndDialog(hwndDlg, wParam); - return true; - } - break; - } - - return false; -} -- cgit v1.2.3