From de83ac2ff7e90537efc0153adedf2f700b4e7880 Mon Sep 17 00:00:00 2001 From: Vadim Dashevskiy Date: Mon, 25 Jun 2012 09:28:02 +0000 Subject: neweventnotify added - needs adaptation to the new API git-svn-id: http://svn.miranda-ng.org/main/trunk@629 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/NewEventNotify/options.c | 341 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 341 insertions(+) create mode 100644 plugins/NewEventNotify/options.c (limited to 'plugins/NewEventNotify/options.c') diff --git a/plugins/NewEventNotify/options.c b/plugins/NewEventNotify/options.c new file mode 100644 index 0000000000..ba96e10fda --- /dev/null +++ b/plugins/NewEventNotify/options.c @@ -0,0 +1,341 @@ +/* + Name: NewEventNotify - Plugin for Miranda IM + File: options.c - Manages Option Dialogs and Settings + Version: 0.0.4 + Description: Notifies you about some events + Author: icebreaker, + Date: 22.07.02 13:06 / Update: 16.09.02 17:45 + Copyright: (C) 2002 Starzinger Michael + + 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, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#include "neweventnotify.h" +#include +#include + +PLUGIN_OPTIONS* options; +BOOL bWmNotify; + +int OptionsRead(void) +{ + options->bDisable = NENGetSettingBool(OPT_DISABLE, FALSE); + options->bPreview = NENGetSettingBool(OPT_PREVIEW, TRUE); + options->bMenuitem = NENGetSettingBool(OPT_MENUITEM, FALSE); + options->bDefaultColorMsg = NENGetSettingBool(OPT_COLDEFAULT_MESSAGE, FALSE); + options->bDefaultColorUrl = NENGetSettingBool(OPT_COLDEFAULT_URL, FALSE); + options->bDefaultColorFile = NENGetSettingBool(OPT_COLDEFAULT_FILE, FALSE); + options->bDefaultColorOthers = NENGetSettingBool(OPT_COLDEFAULT_OTHERS, FALSE); + options->colBackMsg = (COLORREF)DBGetContactSettingDword(NULL, MODULE, OPT_COLBACK_MESSAGE, DEFAULT_COLBACK); + options->colTextMsg = (COLORREF)DBGetContactSettingDword(NULL, MODULE, OPT_COLTEXT_MESSAGE, DEFAULT_COLTEXT); + options->colBackUrl = (COLORREF)DBGetContactSettingDword(NULL, MODULE, OPT_COLBACK_URL, DEFAULT_COLBACK); + options->colTextUrl = (COLORREF)DBGetContactSettingDword(NULL, MODULE, OPT_COLTEXT_URL, DEFAULT_COLTEXT); + options->colBackFile = (COLORREF)DBGetContactSettingDword(NULL, MODULE, OPT_COLBACK_FILE, DEFAULT_COLBACK); + options->colTextFile = (COLORREF)DBGetContactSettingDword(NULL, MODULE, OPT_COLTEXT_FILE, DEFAULT_COLTEXT); + options->colBackOthers = (COLORREF)DBGetContactSettingDword(NULL, MODULE, OPT_COLBACK_OTHERS, DEFAULT_COLBACK); + options->colTextOthers = (COLORREF)DBGetContactSettingDword(NULL, MODULE, OPT_COLTEXT_OTHERS, DEFAULT_COLTEXT); + options->maskNotify = (UINT)DBGetContactSettingByte(NULL, MODULE, OPT_MASKNOTIFY, DEFAULT_MASKNOTIFY); + options->maskActL = (UINT)DBGetContactSettingByte(NULL, MODULE, OPT_MASKACTL, DEFAULT_MASKACTL); + options->maskActR = (UINT)DBGetContactSettingByte(NULL, MODULE, OPT_MASKACTR, DEFAULT_MASKACTR); + options->maskActTE = (UINT)DBGetContactSettingByte(NULL, MODULE, OPT_MASKACTTE, DEFAULT_MASKACTE); + options->bMsgWindowCheck = NENGetSettingBool(OPT_MSGWINDOWCHECK, TRUE); + options->bMsgReplyWindow = NENGetSettingBool(OPT_MSGREPLYWINDOW, FALSE); + options->bMergePopup = NENGetSettingBool(OPT_MERGEPOPUP, TRUE); + options->iDelayMsg = (int)DBGetContactSettingDword(NULL, MODULE, OPT_DELAY_MESSAGE, DEFAULT_DELAY); + options->iDelayUrl = (int)DBGetContactSettingDword(NULL, MODULE, OPT_DELAY_URL, DEFAULT_DELAY); + options->iDelayFile = (int)DBGetContactSettingDword(NULL, MODULE, OPT_DELAY_FILE, DEFAULT_DELAY); + options->iDelayOthers = (int)DBGetContactSettingDword(NULL, MODULE, OPT_DELAY_OTHERS, DEFAULT_DELAY); + options->iDelayDefault = (int)DBGetContactSettingRangedWord(NULL, "PopUp", "Seconds", SETTING_LIFETIME_DEFAULT, SETTING_LIFETIME_MIN, SETTING_LIFETIME_MAX); + options->bShowDate = NENGetSettingBool(OPT_SHOW_DATE, TRUE); + options->bShowTime = NENGetSettingBool(OPT_SHOW_TIME, TRUE); + options->bShowHeaders = NENGetSettingBool(OPT_SHOW_HEADERS, TRUE); + options->iNumberMsg = (BYTE)DBGetContactSettingByte(NULL, MODULE, OPT_NUMBER_MSG, TRUE); + options->bShowON = NENGetSettingBool(OPT_SHOW_ON, TRUE); + options->bHideSend = NENGetSettingBool(OPT_HIDESEND, TRUE); + options->bNoRSS = NENGetSettingBool(OPT_NORSS, FALSE); + options->bReadCheck = NENGetSettingBool(OPT_READCHECK, FALSE); + return 0; +} + +int OptionsWrite(void) +{ + NENWriteSettingBool(OPT_DISABLE, options->bDisable); + NENWriteSettingBool(OPT_PREVIEW, options->bPreview); + NENWriteSettingBool(OPT_MENUITEM, options->bMenuitem); + NENWriteSettingBool(OPT_COLDEFAULT_MESSAGE, options->bDefaultColorMsg); + NENWriteSettingBool(OPT_COLDEFAULT_URL, options->bDefaultColorUrl); + NENWriteSettingBool(OPT_COLDEFAULT_FILE, options->bDefaultColorFile); + NENWriteSettingBool(OPT_COLDEFAULT_OTHERS, options->bDefaultColorOthers); + DBWriteContactSettingDword(NULL, MODULE, OPT_COLBACK_MESSAGE, (DWORD)options->colBackMsg); + DBWriteContactSettingDword(NULL, MODULE, OPT_COLTEXT_MESSAGE, (DWORD)options->colTextMsg); + DBWriteContactSettingDword(NULL, MODULE, OPT_COLBACK_URL, (DWORD)options->colBackUrl); + DBWriteContactSettingDword(NULL, MODULE, OPT_COLTEXT_URL, (DWORD)options->colTextUrl); + DBWriteContactSettingDword(NULL, MODULE, OPT_COLBACK_FILE, (DWORD)options->colBackFile); + DBWriteContactSettingDword(NULL, MODULE, OPT_COLTEXT_FILE, (DWORD)options->colTextFile); + DBWriteContactSettingDword(NULL, MODULE, OPT_COLBACK_OTHERS, (DWORD)options->colBackOthers); + DBWriteContactSettingDword(NULL, MODULE, OPT_COLTEXT_OTHERS, (DWORD)options->colTextOthers); + DBWriteContactSettingByte(NULL, MODULE, OPT_MASKNOTIFY, (BYTE)options->maskNotify); + DBWriteContactSettingByte(NULL, MODULE, OPT_MASKACTL, (BYTE)options->maskActL); + DBWriteContactSettingByte(NULL, MODULE, OPT_MASKACTR, (BYTE)options->maskActR); + DBWriteContactSettingByte(NULL, MODULE, OPT_MASKACTTE, (BYTE)options->maskActTE); + NENWriteSettingBool(OPT_MSGWINDOWCHECK, options->bMsgWindowCheck); + NENWriteSettingBool(OPT_MSGREPLYWINDOW, options->bMsgReplyWindow); + NENWriteSettingBool(OPT_MERGEPOPUP, options->bMergePopup); + DBWriteContactSettingDword(NULL, MODULE, OPT_DELAY_MESSAGE, (DWORD)options->iDelayMsg); + DBWriteContactSettingDword(NULL, MODULE, OPT_DELAY_URL, (DWORD)options->iDelayUrl); + DBWriteContactSettingDword(NULL, MODULE, OPT_DELAY_FILE, (DWORD)options->iDelayFile); + DBWriteContactSettingDword(NULL, MODULE, OPT_DELAY_OTHERS, (DWORD)options->iDelayOthers); + NENWriteSettingBool(OPT_SHOW_DATE, options->bShowDate); + NENWriteSettingBool(OPT_SHOW_TIME, options->bShowTime); + NENWriteSettingBool(OPT_SHOW_HEADERS, options->bShowHeaders); + DBWriteContactSettingByte(NULL, MODULE, OPT_NUMBER_MSG, (BYTE)options->iNumberMsg); + NENWriteSettingBool(OPT_SHOW_ON, options->bShowON); + NENWriteSettingBool(OPT_HIDESEND, options->bHideSend); + NENWriteSettingBool(OPT_NORSS, options->bNoRSS); + NENWriteSettingBool(OPT_READCHECK, options->bReadCheck); + return 0; +} + +static void SetCheckBoxState(HWND hWnd, int iCtrl, BOOL bState) +{ + CheckDlgButton(hWnd, iCtrl, bState ? BST_CHECKED : BST_UNCHECKED); +} + +static void EnableDlgItem(HWND hWnd, int iCtrl, BOOL bEnable) +{ + EnableWindow(GetDlgItem(hWnd, iCtrl), bEnable); +} + +static void UpdateOptionsDlgItemsState(HWND hWnd) +{ + //disable color picker when using default colors + EnableDlgItem(hWnd, IDC_COLBACK_MESSAGE, !options->bDefaultColorMsg); + EnableDlgItem(hWnd, IDC_COLTEXT_MESSAGE, !options->bDefaultColorMsg); + EnableDlgItem(hWnd, IDC_COLBACK_URL, !options->bDefaultColorUrl); + EnableDlgItem(hWnd, IDC_COLTEXT_URL, !options->bDefaultColorUrl); + EnableDlgItem(hWnd, IDC_COLBACK_FILE, !options->bDefaultColorFile); + EnableDlgItem(hWnd, IDC_COLTEXT_FILE, !options->bDefaultColorFile); + EnableDlgItem(hWnd, IDC_COLBACK_OTHERS, !options->bDefaultColorOthers); + EnableDlgItem(hWnd, IDC_COLTEXT_OTHERS, !options->bDefaultColorOthers); + //disable merge messages options when is not using + EnableDlgItem(hWnd, IDC_CHKSHOWDATE, options->bMergePopup); + EnableDlgItem(hWnd, IDC_CHKSHOWTIME, options->bMergePopup); + EnableDlgItem(hWnd, IDC_CHKSHOWHEADERS, options->bMergePopup); + EnableDlgItem(hWnd, IDC_CMDEDITHEADERS, options->bMergePopup && options->bShowHeaders); + EnableDlgItem(hWnd, IDC_NUMBERMSG, options->bMergePopup); + EnableDlgItem(hWnd, IDC_LBNUMBERMSG, options->bMergePopup); + EnableDlgItem(hWnd, IDC_RDNEW, options->bMergePopup && options->iNumberMsg); + EnableDlgItem(hWnd, IDC_RDOLD, options->bMergePopup && options->iNumberMsg); + //disable delay textbox when infinite is checked + EnableDlgItem(hWnd, IDC_DELAY_MESSAGE, options->iDelayMsg != -1); + EnableDlgItem(hWnd, IDC_DELAY_URL, options->iDelayUrl != -1); + EnableDlgItem(hWnd, IDC_DELAY_FILE, options->iDelayFile != -1); + EnableDlgItem(hWnd, IDC_DELAY_OTHERS, options->iDelayOthers != -1); +} + +static BOOL CALLBACK OptionsDlgProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + switch (message) + { + case WM_INITDIALOG: + TranslateDialogDefault(hWnd); + //make dialog represent the current options + bWmNotify = TRUE; + SendDlgItemMessage(hWnd, IDC_COLBACK_MESSAGE, CPM_SETCOLOUR, 0, options->colBackMsg); + SendDlgItemMessage(hWnd, IDC_COLTEXT_MESSAGE, CPM_SETCOLOUR, 0, options->colTextMsg); + SendDlgItemMessage(hWnd, IDC_COLBACK_URL, CPM_SETCOLOUR, 0, options->colBackUrl); + SendDlgItemMessage(hWnd, IDC_COLTEXT_URL, CPM_SETCOLOUR, 0, options->colTextUrl); + SendDlgItemMessage(hWnd, IDC_COLBACK_FILE, CPM_SETCOLOUR, 0, options->colBackFile); + SendDlgItemMessage(hWnd, IDC_COLTEXT_FILE, CPM_SETCOLOUR, 0, options->colTextFile); + SendDlgItemMessage(hWnd, IDC_COLBACK_OTHERS, CPM_SETCOLOUR, 0, options->colBackOthers); + SendDlgItemMessage(hWnd, IDC_COLTEXT_OTHERS, CPM_SETCOLOUR, 0, options->colTextOthers); + SetCheckBoxState(hWnd, IDC_CHKDEFAULTCOL_MESSAGE, options->bDefaultColorMsg); + SetCheckBoxState(hWnd, IDC_CHKDEFAULTCOL_URL, options->bDefaultColorUrl); + SetCheckBoxState(hWnd, IDC_CHKDEFAULTCOL_FILE, options->bDefaultColorFile); + SetCheckBoxState(hWnd, IDC_CHKDEFAULTCOL_OTHERS, options->bDefaultColorOthers); + SetCheckBoxState(hWnd, IDC_CHKMENUITEM, options->bMenuitem); + SetCheckBoxState(hWnd, IDC_CHKDISABLE, options->bDisable); + SetCheckBoxState(hWnd, IDC_CHKPREVIEW, options->bPreview); + SetCheckBoxState(hWnd, IDC_CHKMERGEPOPUP, options->bMergePopup); + SetCheckBoxState(hWnd, IDC_CHKNOTIFY_MESSAGE, options->maskNotify & MASK_MESSAGE); + SetCheckBoxState(hWnd, IDC_CHKNOTIFY_URL, options->maskNotify & MASK_URL); + SetCheckBoxState(hWnd, IDC_CHKNOTIFY_FILE, options->maskNotify & MASK_FILE); + SetCheckBoxState(hWnd, IDC_CHKNOTIFY_OTHER, options->maskNotify & MASK_OTHER); + SetCheckBoxState(hWnd, IDC_CHKACTL_DISMISS, options->maskActL & MASK_DISMISS); + SetCheckBoxState(hWnd, IDC_CHKACTL_OPEN, options->maskActL & MASK_OPEN); + SetCheckBoxState(hWnd, IDC_CHKACTL_REMOVE, options->maskActL & MASK_REMOVE); + SetCheckBoxState(hWnd, IDC_CHKACTR_DISMISS, options->maskActR & MASK_DISMISS); + SetCheckBoxState(hWnd, IDC_CHKACTR_OPEN, options->maskActR & MASK_OPEN); + SetCheckBoxState(hWnd, IDC_CHKACTR_REMOVE, options->maskActR & MASK_REMOVE); + SetCheckBoxState(hWnd, IDC_CHKACTTE_DISMISS, options->maskActTE & MASK_DISMISS); + SetCheckBoxState(hWnd, IDC_CHKACTTE_OPEN, options->maskActTE & MASK_OPEN); + SetCheckBoxState(hWnd, IDC_CHKACTTE_REMOVE, options->maskActTE & MASK_REMOVE); + SetCheckBoxState(hWnd, IDC_CHKWINDOWCHECK, options->bMsgWindowCheck); + SetCheckBoxState(hWnd, IDC_CHKREPLYWINDOW, options->bMsgReplyWindow); + SetCheckBoxState(hWnd, IDC_CHKSHOWDATE, options->bShowDate); + SetCheckBoxState(hWnd, IDC_CHKSHOWTIME, options->bShowTime); + SetCheckBoxState(hWnd, IDC_CHKSHOWHEADERS, options->bShowHeaders); + SetCheckBoxState(hWnd, IDC_RDNEW, !options->bShowON); + SetCheckBoxState(hWnd, IDC_RDOLD, options->bShowON); + SetCheckBoxState(hWnd, IDC_CHKHIDESEND, options->bHideSend); + SetCheckBoxState(hWnd, IDC_SUPRESSRSS, options->bNoRSS); + SetCheckBoxState(hWnd, IDC_READCHECK, options->bReadCheck); + SetCheckBoxState(hWnd, IDC_CHKINFINITE_MESSAGE, options->iDelayMsg == -1); + SetCheckBoxState(hWnd, IDC_CHKINFINITE_URL, options->iDelayUrl == -1); + SetCheckBoxState(hWnd, IDC_CHKINFINITE_FILE, options->iDelayFile == -1); + SetCheckBoxState(hWnd, IDC_CHKINFINITE_OTHERS, options->iDelayOthers == -1); + SetDlgItemInt(hWnd, IDC_DELAY_MESSAGE, options->iDelayMsg != -1?options->iDelayMsg:0, TRUE); + SetDlgItemInt(hWnd, IDC_DELAY_URL, options->iDelayUrl != -1?options->iDelayUrl:0, TRUE); + SetDlgItemInt(hWnd, IDC_DELAY_FILE, options->iDelayFile != -1?options->iDelayFile:0, TRUE); + SetDlgItemInt(hWnd, IDC_DELAY_OTHERS, options->iDelayOthers != -1?options->iDelayOthers:0, TRUE); + SetDlgItemInt(hWnd, IDC_NUMBERMSG, options->iNumberMsg, FALSE); + //update items' states + UpdateOptionsDlgItemsState(hWnd); + bWmNotify = FALSE; + return TRUE; + + case WM_COMMAND: + if (!bWmNotify) + { + switch (LOWORD(wParam)) + { + case IDC_PREVIEW: + PopupPreview(options); + break; + default: + //update options + options->maskNotify = (IsDlgButtonChecked(hWnd, IDC_CHKNOTIFY_MESSAGE)?MASK_MESSAGE:0) | + (IsDlgButtonChecked(hWnd, IDC_CHKNOTIFY_URL)?MASK_URL:0) | + (IsDlgButtonChecked(hWnd, IDC_CHKNOTIFY_FILE)?MASK_FILE:0) | + (IsDlgButtonChecked(hWnd, IDC_CHKNOTIFY_OTHER)?MASK_OTHER:0); + options->maskActL = (IsDlgButtonChecked(hWnd, IDC_CHKACTL_DISMISS)?MASK_DISMISS:0) | + (IsDlgButtonChecked(hWnd, IDC_CHKACTL_OPEN)?MASK_OPEN:0) | + (IsDlgButtonChecked(hWnd, IDC_CHKACTL_REMOVE)?MASK_REMOVE:0); + options->maskActR = (IsDlgButtonChecked(hWnd, IDC_CHKACTR_DISMISS)?MASK_DISMISS:0) | + (IsDlgButtonChecked(hWnd, IDC_CHKACTR_OPEN)?MASK_OPEN:0) | + (IsDlgButtonChecked(hWnd, IDC_CHKACTR_REMOVE)?MASK_REMOVE:0); + options->maskActTE = (IsDlgButtonChecked(hWnd, IDC_CHKACTTE_DISMISS)?MASK_DISMISS:0) | + (IsDlgButtonChecked(hWnd, IDC_CHKACTTE_OPEN)?MASK_OPEN:0) | + (IsDlgButtonChecked(hWnd, IDC_CHKACTTE_REMOVE)?MASK_REMOVE:0); + options->bDefaultColorMsg = IsDlgButtonChecked(hWnd, IDC_CHKDEFAULTCOL_MESSAGE); + options->bDefaultColorUrl = IsDlgButtonChecked(hWnd, IDC_CHKDEFAULTCOL_URL); + options->bDefaultColorFile = IsDlgButtonChecked(hWnd, IDC_CHKDEFAULTCOL_FILE); + options->bDefaultColorOthers = IsDlgButtonChecked(hWnd, IDC_CHKDEFAULTCOL_OTHERS); + options->bMenuitem = IsDlgButtonChecked(hWnd, IDC_CHKMENUITEM); + options->bDisable = IsDlgButtonChecked(hWnd, IDC_CHKDISABLE); + options->bPreview = IsDlgButtonChecked(hWnd, IDC_CHKPREVIEW); + options->iDelayMsg = IsDlgButtonChecked(hWnd, IDC_CHKINFINITE_MESSAGE)?-1:(DWORD)GetDlgItemInt(hWnd, IDC_DELAY_MESSAGE, NULL, FALSE); + options->iDelayUrl = IsDlgButtonChecked(hWnd, IDC_CHKINFINITE_URL)?-1:(DWORD)GetDlgItemInt(hWnd, IDC_DELAY_URL, NULL, FALSE); + options->iDelayFile = IsDlgButtonChecked(hWnd, IDC_CHKINFINITE_FILE)?-1:(DWORD)GetDlgItemInt(hWnd, IDC_DELAY_FILE, NULL, FALSE); + options->iDelayOthers = IsDlgButtonChecked(hWnd, IDC_CHKINFINITE_OTHERS)?-1:(DWORD)GetDlgItemInt(hWnd, IDC_DELAY_OTHERS, NULL, FALSE); + options->bMergePopup = IsDlgButtonChecked(hWnd, IDC_CHKMERGEPOPUP); + options->bMsgWindowCheck = IsDlgButtonChecked(hWnd, IDC_CHKWINDOWCHECK); + options->bMsgReplyWindow = IsDlgButtonChecked(hWnd, IDC_CHKREPLYWINDOW); + options->bShowDate = IsDlgButtonChecked(hWnd, IDC_CHKSHOWDATE); + options->bShowTime = IsDlgButtonChecked(hWnd, IDC_CHKSHOWTIME); + options->bShowHeaders = IsDlgButtonChecked(hWnd, IDC_CHKSHOWHEADERS); + options->bShowON = IsDlgButtonChecked(hWnd, IDC_RDOLD); + options->bShowON = !IsDlgButtonChecked(hWnd, IDC_RDNEW); + options->bHideSend = IsDlgButtonChecked(hWnd, IDC_CHKHIDESEND); + options->iNumberMsg = GetDlgItemInt(hWnd, IDC_NUMBERMSG, NULL, FALSE); + options->bNoRSS = IsDlgButtonChecked(hWnd, IDC_SUPRESSRSS); + options->bReadCheck = IsDlgButtonChecked(hWnd, IDC_READCHECK); + //update items' states + UpdateOptionsDlgItemsState(hWnd); + if (HIWORD(wParam) == CPN_COLOURCHANGED) + { + options->colBackMsg = SendDlgItemMessage(hWnd, IDC_COLBACK_MESSAGE, CPM_GETCOLOUR, 0, 0); + options->colTextMsg = SendDlgItemMessage(hWnd, IDC_COLTEXT_MESSAGE, CPM_GETCOLOUR, 0, 0); + options->colBackUrl = SendDlgItemMessage(hWnd, IDC_COLBACK_URL, CPM_GETCOLOUR, 0, 0); + options->colTextUrl = SendDlgItemMessage(hWnd, IDC_COLTEXT_URL, CPM_GETCOLOUR, 0, 0); + options->colBackFile = SendDlgItemMessage(hWnd, IDC_COLBACK_FILE, CPM_GETCOLOUR, 0, 0); + options->colTextFile = SendDlgItemMessage(hWnd, IDC_COLTEXT_FILE, CPM_GETCOLOUR, 0, 0); + options->colBackOthers = SendDlgItemMessage(hWnd, IDC_COLBACK_OTHERS, CPM_GETCOLOUR, 0, 0); + options->colTextOthers = SendDlgItemMessage(hWnd, IDC_COLTEXT_OTHERS, CPM_GETCOLOUR, 0, 0); + } + //send changes to menuitem + MenuitemUpdate(!options->bDisable); + //enable "Apply" button + SendMessage(GetParent(hWnd), PSM_CHANGED, 0, 0); + break; + } + } + break; + + case WM_NOTIFY: + switch (((LPNMHDR)lParam)->code) + { + case PSN_APPLY: + OptionsWrite(); + break; + + case PSN_RESET: + OptionsRead(); + + //maybe something changed with the menuitem + MenuitemUpdate(!options->bDisable); + break; + } + break; + + default: + break; + } + return FALSE; +} + +int OptionsAdd(HINSTANCE hInst, WPARAM addInfo) +{ + OPTIONSDIALOGPAGE odp; + WCHAR wsTitle[MAX_PATH]; + WCHAR wsGroup[MAX_PATH]; + +// if (ServiceExists(MS_POPUP_ADDPOPUP)) { +// do we need this dialog if popup.dll is not there??? + + odp.cbSize = sizeof(odp); +// odp.position = 100000000; + odp.hInstance = hInst; + odp.pszTemplate = MAKEINTRESOURCE(IDD_OPT); + odp.ptszTitle = NENTranslateT(OPTIONS_TITLE, wsTitle); + odp.ptszGroup = NENTranslateT(OPTIONS_GROUP, wsGroup); +// odp.groupPosition = 910000000; + odp.flags = ODPF_BOLDGROUPS; + if (g_UnicodeCore) odp.flags |= ODPF_UNICODE; + odp.pfnDlgProc = OptionsDlgProc; + CallService(MS_OPT_ADDPAGE, addInfo, (LPARAM)&odp); + + return 0; +} + +int OptionsInit(PLUGIN_OPTIONS* pluginOptions) +{ + options = pluginOptions; + + OptionsRead(); + + return 0; +} + +int Opt_DisableNEN(BOOL Status) +{ + options->bDisable = Status; + OptionsWrite(); // JK: really necessary to write everything here ???? + + //BUG! + //Update options dialog if open! + + return 0; +} -- cgit v1.2.3