blob: d624e55b600aa3c818a57fa21afb23a06fa257d8 [file] [log] [blame]
// Copyright (c) 2012 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_BROWSER_UI_VIEWS_STATUS_ICONS_STATUS_TRAY_WIN_H_
#define CHROME_BROWSER_UI_VIEWS_STATUS_ICONS_STATUS_TRAY_WIN_H_
#include <windows.h>
#include "base/compiler_specific.h"
#include "chrome/browser/status_icons/status_tray.h"
class StatusTrayWin : public StatusTray {
public:
StatusTrayWin();
~StatusTrayWin();
// Exposed for testing.
LRESULT CALLBACK WndProc(HWND hwnd,
UINT message,
WPARAM wparam,
LPARAM lparam);
protected:
// Overriden from StatusTray:
virtual StatusIcon* CreatePlatformStatusIcon(
StatusIconType type,
const gfx::ImageSkia& image,
const base::string16& tool_tip) OVERRIDE;
private:
// Static callback invoked when a message comes in to our messaging window.
static LRESULT CALLBACK WndProcStatic(HWND hwnd,
UINT message,
WPARAM wparam,
LPARAM lparam);
UINT NextIconId();
// The unique icon ID we will assign to the next icon.
UINT next_icon_id_;
// The window class of |window_|.
ATOM atom_;
// The handle of the module that contains the window procedure of |window_|.
HMODULE instance_;
// The window used for processing events.
HWND window_;
// The message ID of the "TaskbarCreated" message, sent to us when we need to
// reset our status icons.
UINT taskbar_created_message_;
DISALLOW_COPY_AND_ASSIGN(StatusTrayWin);
};
#endif // CHROME_BROWSER_UI_VIEWS_STATUS_ICONS_STATUS_TRAY_WIN_H_