123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203 |
- #include "main.h"
- #include "./options.h"
- #include "./resource.h"
- #include "./obj_ombrowser.h"
- #include "./ifc_omconfig.h"
- #include "./ifc_omdebugconfig.h"
- #include <windows.h>
- #include <commctrl.h>
- #include <shlwapi.h>
- #include <strsafe.h>
- #define INVERTHRESULT(__result)\
- ((S_OK == (__result)) ? S_FALSE : ((S_FALSE == (__result)) ? S_OK : (__result)))
- #define BOOL2HRESULT(__result)\
- ((FALSE != (__result)) ? S_OK : S_FALSE)
- static INT_PTR CALLBACK OptionsDebug_DialogProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
- HWND CALLBACK OptionsDebug_CreatePage(HWND hParent, UINT style)
- {
- if (0 == (BOSTYLE_SHOWDEBUG & style))
- return NULL;
- return Plugin_CreateDialogParam(MAKEINTRESOURCE(IDD_OPTIONS_DEBUG), hParent, OptionsDebug_DialogProc, 0L);
- }
- static void OptionsDebug_UpdateFilterMenu(HWND hwnd, HRESULT enable)
- {
- Options_SetCheckbox(hwnd, IDC_FILTERMENU, INVERTHRESULT(enable));
- }
- static void OptionsDebug_UpdateShowError(HWND hwnd, HRESULT enable)
- {
- Options_SetCheckbox(hwnd, IDC_SHOWERROR, enable);
- }
- static void OptionsDebug_UpdateShowDebugger(HWND hwnd, HRESULT enable)
- {
- Options_SetCheckbox(hwnd, IDC_SHOWDEBUGGER, enable);
- }
- static INT_PTR OptionsDebug_OnInitDialog(HWND hwnd, HWND hFocus, LPARAM param)
- {
- WCHAR szBuffer[512] = {0};
- Plugin_LoadString(IDS_OPTIONS_DEBUG, szBuffer, ARRAYSIZE(szBuffer));
- SetWindowText(hwnd, szBuffer);
- HWND hParent = GetParent(hwnd);
- obj_ombrowser *browserManager;
- if (FALSE == SendMessage(hParent, BOM_GETBROWSER, 0, (LPARAM)&browserManager))
- browserManager = NULL;
- ifc_omdebugconfig *debugConfig;
- if (NULL != browserManager &&
- SUCCEEDED(browserManager->GetConfig(&IFC_OmDebugConfig, (void**)&debugConfig)))
- {
- OptionsDebug_UpdateFilterMenu(hwnd, debugConfig->GetMenuFilterEnabled());
- OptionsDebug_UpdateShowError(hwnd, debugConfig->GetScriptErrorEnabled());
- OptionsDebug_UpdateShowDebugger(hwnd, debugConfig->GetScriptDebuggerEnabled());
- debugConfig->Release();
- }
- else
- {
- OptionsDebug_UpdateFilterMenu(hwnd, E_FAIL);
- OptionsDebug_UpdateShowError(hwnd, E_FAIL);
- OptionsDebug_UpdateShowDebugger(hwnd, E_FAIL);
- }
- return 0;
- }
- static void OptionsDebug_OnDestroy(HWND hwnd)
- {
- }
- static void OptionsDebug_OnFilterMenu(HWND hwnd)
- {
- HWND hControl = GetDlgItem(hwnd, IDC_FILTERMENU);
- if (NULL == hControl) return;
- HWND hParent = GetParent(hwnd);
- if (NULL == hParent) return;
- BOOL checked = (BST_CHECKED == (UINT)SendMessage(hControl, BM_GETCHECK, 0, 0L));
- obj_ombrowser *browserManager;
- if (FALSE != SendMessage(hParent, BOM_GETBROWSER, 0, (LPARAM)&browserManager))
- {
- ifc_omdebugconfig *debugConfig;
- if (SUCCEEDED(browserManager->GetConfig(&IFC_OmDebugConfig, (void**)&debugConfig)))
- {
- debugConfig->EnableMenuFilter(!checked);
- debugConfig->Release();
- }
- browserManager->Release();
- }
- }
- static void OptionsDebug_OnShowError(HWND hwnd)
- {
- HWND hControl = GetDlgItem(hwnd, IDC_SHOWERROR);
- if (NULL == hControl) return;
- HWND hParent = GetParent(hwnd);
- if (NULL == hParent) return;
- BOOL checked = (BST_CHECKED == (UINT)SendMessage(hControl, BM_GETCHECK, 0, 0L));
- obj_ombrowser *browserManager;
- if (FALSE != SendMessage(hParent, BOM_GETBROWSER, 0, (LPARAM)&browserManager))
- {
- ifc_omdebugconfig *debugConfig;
- if (SUCCEEDED(browserManager->GetConfig(&IFC_OmDebugConfig, (void**)&debugConfig)))
- {
- debugConfig->EnableScriptError(checked);
- debugConfig->Release();
- }
- browserManager->Release();
- }
- }
- static void OptionsDebug_OnShowDebugger(HWND hwnd)
- {
- HWND hControl = GetDlgItem(hwnd, IDC_SHOWDEBUGGER);
- if (NULL == hControl) return;
- HWND hParent = GetParent(hwnd);
- if (NULL == hParent) return;
- BOOL checked = (BST_CHECKED == (UINT)SendMessage(hControl, BM_GETCHECK, 0, 0L));
- obj_ombrowser *browserManager;
- if (FALSE != SendMessage(hParent, BOM_GETBROWSER, 0, (LPARAM)&browserManager))
- {
- ifc_omdebugconfig *debugConfig;
- if (SUCCEEDED(browserManager->GetConfig(&IFC_OmDebugConfig, (void**)&debugConfig)))
- {
- debugConfig->EnableScriptDebugger(checked);
- debugConfig->Release();
- }
- browserManager->Release();
- }
- }
- static void OptionsDebug_OnConfigChanged(HWND hwnd, BOMCONFIGCHANGED *configData)
- {
- if (NULL == configData || NULL == configData->configUid ||
- FALSE == IsEqualIID(IFC_OmDebugConfig, *configData->configUid))
- {
- return;
- }
-
- switch(configData->valueId)
- {
- case CFGID_DEBUG_FILTERMENU: OptionsDebug_UpdateFilterMenu(hwnd, BOOL2HRESULT(configData->value)); break;
- case CFGID_DEBUG_SCRIPTERROR: OptionsDebug_UpdateShowError(hwnd, BOOL2HRESULT(configData->value)); break;
- case CFGID_DEBUG_SCRIPTDEBUGGER: OptionsDebug_UpdateShowDebugger(hwnd, BOOL2HRESULT(configData->value)); break;
- }
-
- }
- static void OptionsDebug_OnCommand(HWND hwnd, INT commandId, INT eventId, HWND hControl)
- {
- switch(commandId)
- {
- case IDC_FILTERMENU:
- if (BN_CLICKED == eventId)
- OptionsDebug_OnFilterMenu(hwnd);
- break;
- case IDC_SHOWERROR:
- if (BN_CLICKED == eventId)
- OptionsDebug_OnShowError(hwnd);
- break;
- case IDC_SHOWDEBUGGER:
- if (BN_CLICKED == eventId)
- OptionsDebug_OnShowDebugger(hwnd);
- break;
- }
- }
- static INT_PTR CALLBACK OptionsDebug_DialogProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
- {
- switch(uMsg)
- {
- case WM_INITDIALOG: return OptionsDebug_OnInitDialog(hwnd, (HWND)wParam, lParam);
- case WM_DESTROY: OptionsDebug_OnDestroy(hwnd); return 0;
- case WM_COMMAND: OptionsDebug_OnCommand(hwnd, LOWORD(wParam), HIWORD(wParam), (HWND)lParam); return TRUE;
-
- case BOM_CONFIGCHANGED: OptionsDebug_OnConfigChanged(hwnd, (BOMCONFIGCHANGED*)lParam); return TRUE;
- }
- return 0;
- }
|