diff options
| author | sje <sje@4f64403b-2f21-0410-a795-97e2b3489a10> | 2006-11-11 13:26:01 +0000 | 
|---|---|---|
| committer | sje <sje@4f64403b-2f21-0410-a795-97e2b3489a10> | 2006-11-11 13:26:01 +0000 | 
| commit | 4e1b05db0379ee0bb6bdd146e575b6bdd5e42cf5 (patch) | |
| tree | 8ec2a05bfd0ab75ec10e28496c636c1db05abf0c | |
| parent | d28d7257050561d9f9f9a39b4c2ddb233ac1ffaa (diff) | |
added option to enable/disable message text in popup, made options page a little bigger
git-svn-id: https://server.scottellis.com.au/svn/mim_plugs@40 4f64403b-2f21-0410-a795-97e2b3489a10
| -rw-r--r-- | message_notify/messagenotify.cpp | 26 | ||||
| -rw-r--r-- | message_notify/options.cpp | 5 | ||||
| -rw-r--r-- | message_notify/options.h | 1 | ||||
| -rw-r--r-- | message_notify/popups.cpp | 26 | ||||
| -rw-r--r-- | message_notify/resource.h | 2 | ||||
| -rw-r--r-- | message_notify/resource.rc | 43 | 
6 files changed, 51 insertions, 52 deletions
| diff --git a/message_notify/messagenotify.cpp b/message_notify/messagenotify.cpp index 69595b2..ccf1b47 100644 --- a/message_notify/messagenotify.cpp +++ b/message_notify/messagenotify.cpp @@ -26,7 +26,7 @@ DWORD focusTimerId = 0;  PLUGININFO pluginInfo={
  	sizeof(PLUGININFO),
  	"Message Notify",
 -	PLUGIN_MAKE_VERSION(0,1,1,1),
 +	PLUGIN_MAKE_VERSION(0,1,2,0),
  	"Show a popup when a message is received",
  	"Scott Ellis",
  	"mail@scottellis.com.au",
 @@ -195,15 +195,20 @@ unsigned int __stdcall sttCheckWindowProc( VOID *dwParam ) {  				MultiByteToWideChar(code_page, 0, (char *) cd->blob, -1, msg, size);
  				ShowPopupW(cd->hContact, swzContactDisplayName, msg);
  				free(msg);
 +			} else { // no message
 +				ShowPopupW(cd->hContact, swzContactDisplayName, 0);
  			}
  			if(!unicode_system) free(swzContactDisplayName);
  		} else {
  			char *szCDN = (char *) CallService(MS_CLIST_GETCONTACTDISPLAYNAME, (WPARAM)cd->hContact, 0);
  			if(szCDN && szCDN[0]) {
 -				char msg[MAX_SECONDLINE];
 -				strncpy(msg, (char *)cd->blob, MAX_SECONDLINE - 1);
 -				msg[MAX_SECONDLINE - 1] = 0;
 -				ShowPopup(cd->hContact, szCDN, (char *)msg);
 +				if(cd->blobsize) {
 +					char msg[MAX_SECONDLINE];
 +					strncpy(msg, (char *)cd->blob, MAX_SECONDLINE - 1);
 +					msg[MAX_SECONDLINE - 1] = 0;
 +					ShowPopup(cd->hContact, szCDN, (char *)msg);
 +				} else
 +					ShowPopup(cd->hContact, szCDN, 0);
  			}
  		}
  	}
 @@ -239,12 +244,15 @@ int OnDatabaseEventPreAdd(WPARAM wParam, LPARAM lParam) {  		return 0; // just to be safe
 -	// copy blob data
  	CheckWindowData *cd = new CheckWindowData;
  	cd->hContact = (HANDLE)wParam;
 -	cd->blobsize = dbei->cbBlob;
 -	cd->blob = new BYTE[cd->blobsize];
 -	memcpy(cd->blob, dbei->pBlob, cd->blobsize);
 +	if(options.show_msg) {
 +		// copy blob data
 +		cd->blobsize = dbei->cbBlob;
 +		cd->blob = new BYTE[cd->blobsize];
 +		memcpy(cd->blob, dbei->pBlob, cd->blobsize);
 +	} else
 +		cd->blobsize = 0;
  	// spawn a thread to deal with the copied data
  	CloseHandle((HANDLE)_beginthreadex(0, 0, sttCheckWindowProc, (VOID *)cd, 0, 0));
 diff --git a/message_notify/options.cpp b/message_notify/options.cpp index 9460843..8b7a40c 100644 --- a/message_notify/options.cpp +++ b/message_notify/options.cpp @@ -67,6 +67,7 @@ static BOOL CALLBACK DlgProcOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM l  			};
  		}
  		CheckDlgButton(hwndDlg, IDC_CHK_CLOSE, options.close_win ? TRUE : FALSE);
 +		CheckDlgButton(hwndDlg, IDC_CHK_MSG, options.show_msg ? TRUE : FALSE);
  		if(options.timeout == -1) {
  			CheckDlgButton(hwndDlg, IDC_CHK_SETTIMEOUT, FALSE);
  			SetDlgItemInt(hwndDlg, IDC_ED_TIMEOUT, 0, FALSE);
 @@ -134,6 +135,7 @@ static BOOL CALLBACK DlgProcOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM l  					}
  					SendMessage( GetParent( hwndDlg ), PSM_CHANGED, 0, 0 );
  					return TRUE;
 +				case IDC_CHK_MSG:
  				case IDC_CHK_CLOSE:
  				case IDC_CHK_TABS:
  					SendMessage( GetParent( hwndDlg ), PSM_CHANGED, 0, 0 );
 @@ -165,6 +167,7 @@ static BOOL CALLBACK DlgProcOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM l  			else
  				options.notify_when = NOTIFY_ALWAYS;
  			options.close_win = IsDlgButtonChecked(hwndDlg, IDC_CHK_CLOSE) ? true : false;
 +			options.show_msg = IsDlgButtonChecked(hwndDlg, IDC_CHK_MSG) ? true : false;
  			if(IsDlgButtonChecked(hwndDlg, IDC_CHK_SETTIMEOUT)) {
  				BOOL trans;
 @@ -224,6 +227,7 @@ void LoadOptions() {  	options.textCol = (COLORREF)DBGetContactSettingDword(0, MODULE, "TextColour", (DWORD)0x000000);
  	options.consider_tabs = (DBGetContactSettingByte(0, MODULE, "ConsiderTabs", 1) == 1);
  	options.close_win = (DBGetContactSettingByte(0, MODULE, "CloseWin", 0) == 1);
 +	options.show_msg = (DBGetContactSettingByte(0, MODULE, "ShowMsg", 1) == 1);
  	char buff[128];
  	for(int i = 0; i < 9; i++) {
 @@ -240,6 +244,7 @@ void SaveOptions() {  	DBWriteContactSettingDword(0, MODULE, "TextColour", (DWORD)options.textCol);
  	DBWriteContactSettingByte(0, MODULE, "ConsiderTabs", options.consider_tabs ? 1 : 0);
  	DBWriteContactSettingByte(0, MODULE, "CloseWin", options.close_win ? 1 : 0);
 +	DBWriteContactSettingByte(0, MODULE, "ShowMsg", options.show_msg ? 1 : 0);
  	char buff[128];
  	for(int i = 0; i < 9; i++) {
  		sprintf(buff, "DisableStatus%d", i);
 diff --git a/message_notify/options.h b/message_notify/options.h index 75f1c88..5449b48 100644 --- a/message_notify/options.h +++ b/message_notify/options.h @@ -25,6 +25,7 @@ typedef struct Options_tag {  	bool consider_tabs;
  	bool close_win;
  	bool disable_status[9];
 +	bool show_msg;
  } Options;
  extern Options options;
 diff --git a/message_notify/popups.cpp b/message_notify/popups.cpp index 1a40583..83a40b9 100644 --- a/message_notify/popups.cpp +++ b/message_notify/popups.cpp @@ -146,17 +146,8 @@ void ShowPopup( HANDLE hContact, const char* line1, const char* line2, int flags  	ppd->lchIcon = hPopupIcon;
 -	if(line1 && line2) {
 -		strncpy( ppd->lpzContactName, line1, MAX_CONTACTNAME );
 -		strncpy( ppd->lpzText, line2, MAX_SECONDLINE );
 -	} else {
 -		if(line1) {
 -			strncpy( ppd->lpzText, line1, MAX_SECONDLINE );
 -		} else {
 -			if(line2) 
 -				strncpy( ppd->lpzText, line2, MAX_SECONDLINE );
 -		}
 -	}
 +	if(line1) strncpy( ppd->lpzContactName, line1, MAX_CONTACTNAME );
 +	if(line2) strncpy( ppd->lpzText, line2, MAX_SECONDLINE );
  	if(options.set_colours) {
  		ppd->colorBack = options.bkCol;
 @@ -205,17 +196,8 @@ void ShowPopupW( HANDLE hContact, const wchar_t* line1, const wchar_t* line2, in  	ppd->lchIcon = hPopupIcon;
 -	if(line1 && line2) {
 -		_tcsncpy( ppd->lpwzContactName, line1, MAX_CONTACTNAME );
 -		_tcsncpy( ppd->lpwzText, line2, MAX_SECONDLINE );
 -	} else {
 -		if(line1) {
 -			_tcsncpy( ppd->lpwzText, line1, MAX_SECONDLINE );
 -		} else {
 -			if(line2) 
 -				_tcsncpy( ppd->lpwzText, line2, MAX_SECONDLINE );
 -		}
 -	}
 +	if(line1) _tcsncpy( ppd->lpwzContactName, line1, MAX_CONTACTNAME );
 +	if(line2) _tcsncpy( ppd->lpwzText, line2, MAX_SECONDLINE );
  	if(options.set_colours) {
  		ppd->colorBack = options.bkCol;
 diff --git a/message_notify/resource.h b/message_notify/resource.h index d8de870..a20fa09 100644 --- a/message_notify/resource.h +++ b/message_notify/resource.h @@ -14,6 +14,8 @@  #define IDC_CP_TXT                      1008
  #define IDC_CHK_TABS                    1009
  #define IDC_CHK_CLOSE                   1010
 +#define IDC_CHK_CLOSE2                  1011
 +#define IDC_CHK_MSG                     1011
  #define IDC_LIST1                       1012
  #define IDC_LST_STATUS                  1012
 diff --git a/message_notify/resource.rc b/message_notify/resource.rc index 44b0fe0..78d0f9e 100644 --- a/message_notify/resource.rc +++ b/message_notify/resource.rc @@ -52,30 +52,31 @@ END  // Dialog
  //
 -IDD_OPTIONS DIALOGEX 0, 0, 250, 196
 +IDD_OPTIONS DIALOGEX 0, 0, 269, 210
  STYLE DS_SETFONT | WS_CHILD
  FONT 8, "MS Sans Serif", 0, 0, 0x0
  BEGIN
 -    GROUPBOX        "Notification Options",IDC_STATIC,7,7,144,83
 -    CONTROL         "Notify if window not open",IDC_RAD_CLOSED,"Button",BS_AUTORADIOBUTTON | WS_GROUP,10,20,136,10
 +    GROUPBOX        "Notification Options",IDC_STATIC,7,7,142,95
 +    CONTROL         "Notify if window not open",IDC_RAD_CLOSED,"Button",BS_AUTORADIOBUTTON | WS_GROUP,13,20,132,10
      CONTROL         "Notify if window isn't 'foreground'",IDC_RAD_NFORE,
 -                    "Button",BS_AUTORADIOBUTTON,10,34,136,10
 -    CONTROL         "Notify always",IDC_RAD_ALWAYS,"Button",BS_AUTORADIOBUTTON,10,59,136,10
 -    GROUPBOX        "Timeout",IDC_STATIC,7,96,236,40
 +                    "Button",BS_AUTORADIOBUTTON,13,34,132,10
 +    CONTROL         "Notify always",IDC_RAD_ALWAYS,"Button",BS_AUTORADIOBUTTON,13,59,132,10
 +    GROUPBOX        "Timeout",IDC_STATIC,7,109,255,40
      CONTROL         "Set timeout (otherwise, infinite)",IDC_CHK_SETTIMEOUT,
 -                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,29,104,205,10
 -    RTEXT           "Timeout (seconds, 0 == default):",IDC_STATIC,19,119,137,8
 -    EDITTEXT        IDC_ED_TIMEOUT,168,117,29,12,ES_RIGHT | ES_AUTOHSCROLL | ES_NUMBER
 -    GROUPBOX        "Colours",IDC_STATIC,7,140,236,49
 -    CONTROL         "Set popup colours",IDC_CHK_SETCOLOURS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,161,95,10
 -    RTEXT           "Background:",IDC_STATIC,122,154,63,8
 -    RTEXT           "Text:",IDC_STATIC,122,173,63,8
 -    CONTROL         "Custom1",IDC_CP_BK,"ColourPicker",WS_TABSTOP,193,151,41,12
 -    CONTROL         "Custom1",IDC_CP_TXT,"ColourPicker",WS_TABSTOP,193,171,41,12
 -    CONTROL         "Consider tabs",IDC_CHK_TABS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,33,46,112,10
 -    CONTROL         "Close window on right click",IDC_CHK_CLOSE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,74,136,10
 -    GROUPBOX        "Disable when",IDC_STATIC,157,7,86,83
 -    CONTROL         "",IDC_LST_STATUS,"SysListView32",LVS_REPORT | LVS_NOLABELWRAP | LVS_ALIGNLEFT | LVS_NOCOLUMNHEADER | LVS_NOSORTHEADER | WS_TABSTOP,161,19,79,64,WS_EX_CLIENTEDGE
 +                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,29,117,205,10
 +    RTEXT           "Timeout (seconds, 0 == default):",IDC_STATIC,19,132,137,8
 +    EDITTEXT        IDC_ED_TIMEOUT,168,130,29,12,ES_RIGHT | ES_AUTOHSCROLL | ES_NUMBER
 +    GROUPBOX        "Colours",IDC_STATIC,7,154,255,49
 +    CONTROL         "Set popup colours",IDC_CHK_SETCOLOURS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,174,95,10
 +    RTEXT           "Background:",IDC_STATIC,122,167,63,8
 +    RTEXT           "Text:",IDC_STATIC,122,186,63,8
 +    CONTROL         "Custom1",IDC_CP_BK,"ColourPicker",WS_TABSTOP,193,164,41,12
 +    CONTROL         "Custom1",IDC_CP_TXT,"ColourPicker",WS_TABSTOP,193,184,41,12
 +    CONTROL         "Consider tabs",IDC_CHK_TABS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,29,46,112,10
 +    CONTROL         "Close window on right click",IDC_CHK_CLOSE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,74,132,10
 +    GROUPBOX        "Disable when",IDC_STATIC,155,7,107,94
 +    CONTROL         "",IDC_LST_STATUS,"SysListView32",LVS_REPORT | LVS_NOLABELWRAP | LVS_ALIGNLEFT | LVS_NOCOLUMNHEADER | LVS_NOSORTHEADER | WS_TABSTOP,159,17,99,80,WS_EX_CLIENTEDGE
 +    CONTROL         "Include message text",IDC_CHK_MSG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,87,132,10
  END
 @@ -90,9 +91,9 @@ BEGIN      IDD_OPTIONS, DIALOG
      BEGIN
          LEFTMARGIN, 7
 -        RIGHTMARGIN, 243
 +        RIGHTMARGIN, 262
          TOPMARGIN, 7
 -        BOTTOMMARGIN, 189
 +        BOTTOMMARGIN, 203
      END
  END
  #endif    // APSTUDIO_INVOKED
 | 
