| Index: chrome_frame/find_dialog.h
|
| ===================================================================
|
| --- chrome_frame/find_dialog.h (revision 0)
|
| +++ chrome_frame/find_dialog.h (revision 0)
|
| @@ -0,0 +1,54 @@
|
| +// Copyright (c) 2009 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#ifndef CHROME_FRAME_FIND_DIALOG_H_
|
| +#define CHROME_FRAME_FIND_DIALOG_H_
|
| +
|
| +#include <atlbase.h>
|
| +#include <atlwin.h>
|
| +
|
| +#include "base/ref_counted.h"
|
| +#include "resource.h"
|
| +#include "grit/chrome_frame_resources.h"
|
| +
|
| +class ChromeFrameAutomationClient;
|
| +
|
| +class CFFindDialog : public CDialogImpl<CFFindDialog> {
|
| + public:
|
| + enum { IDD = IDD_FIND_DIALOG };
|
| +
|
| + BEGIN_MSG_MAP(CFFindDialog)
|
| + MESSAGE_HANDLER(WM_DESTROY, OnDestroy)
|
| + MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
|
| + COMMAND_ID_HANDLER(IDOK, OnFind)
|
| + COMMAND_ID_HANDLER(IDCANCEL, OnCancel)
|
| + END_MSG_MAP()
|
| +
|
| + CFFindDialog();
|
| + void Init(ChromeFrameAutomationClient* automation_client);
|
| +
|
| + LRESULT OnDestroy(UINT msg, WPARAM wparam,
|
| + LPARAM lparam, BOOL& handled); // NOLINT
|
| + LRESULT OnFind(WORD wNotifyCode, WORD wID,
|
| + HWND hWndCtl, BOOL& bHandled); // NOLINT
|
| + LRESULT OnCancel(WORD wNotifyCode, WORD wID,
|
| + HWND hWndCtl, BOOL& bHandled); // NOLINT
|
| + LRESULT OnInitDialog(UINT msg, WPARAM wparam,
|
| + LPARAM lparam, BOOL& handled); // NOLINT
|
| +
|
| + private:
|
| +
|
| + // Since the message loop we expect to run in isn't going to be nicely
|
| + // calling IsDialogMessage(), we need to hook the wnd proc and call it
|
| + // ourselves. See http://support.microsoft.com/kb/q187988/
|
| + bool InstallMessageHook();
|
| + bool UninstallMessageHook();
|
| + static LRESULT CALLBACK GetMsgProc(int code, WPARAM wparam, LPARAM lparam);
|
| + static HHOOK msg_hook_;
|
| +
|
| + // We don't own these, and they must exist at least as long as we do.
|
| + ChromeFrameAutomationClient* automation_client_;
|
| +};
|
| +
|
| +#endif // CHROME_FRAME_FIND_DIALOG_H_
|
|
|