add the base .rbuild files
[reactos.git] / reactos / subsys / system / explorer / taskbar / traynotify.h
diff --git a/reactos/subsys/system/explorer/taskbar/traynotify.h b/reactos/subsys/system/explorer/taskbar/traynotify.h
deleted file mode 100644 (file)
index 7d90406..0000000
+++ /dev/null
@@ -1,257 +0,0 @@
-/*
- * Copyright 2003, 2004 Martin Fuchs
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
-
-
- //
- // Explorer and Desktop clone
- //
- // traynotify.h
- //
- // Martin Fuchs, 22.08.2003
- //
-
-
-#define        CLASSNAME_TRAYNOTIFY    TEXT("TrayNotifyWnd")
-#define        TITLE_TRAYNOTIFY                TEXT("")
-
-#define        CLASSNAME_CLOCKWINDOW   TEXT("TrayClockWClass")
-
-#define        NOTIFYAREA_WIDTH_DEF    100
-#define        NOTIFYICON_DIST                 20
-#define        NOTIFYAREA_SPACE                10
-#define        NOTIFYICON_SIZE                 16
-#define        NOTIFYICON_X                    2
-#define        NOTIFYICON_Y                    3
-
-#define        ICON_AUTOHIDE_SECONDS   300
-
-#define        PM_GETMODULEPATH_CB             (WM_APP+0x21)
-#define        PM_GET_NOTIFYAREA               (WM_APP+0x22)
-
-
- /// NotifyIconIndex is used for maintaining the order of notification icons.
-struct NotifyIconIndex
-{
-       NotifyIconIndex(NOTIFYICONDATA* pnid);
-
-        // sort operator
-       friend bool operator<(const NotifyIconIndex& a, const NotifyIconIndex& b)
-               {return a._hWnd<b._hWnd || (a._hWnd==b._hWnd && a._uID<b._uID);}
-
-       HWND    _hWnd;
-       UINT    _uID;
-
-protected:
-       NotifyIconIndex();
-};
-
-
-enum NOTIFYICONMODE {
-       NIM_SHOW, NIM_HIDE, NIM_AUTO
-};
-
-extern String string_from_mode(NOTIFYICONMODE mode);
-
- /// configuration for the display mode of a notification icon
-struct NotifyIconConfig
-{
-       NotifyIconConfig() : _mode(NIM_AUTO) {}
-
-       void    create_name();
-       bool    match(const NotifyIconConfig& props) const;
-
-        // properties used to identify a notification icon
-       String  _tipText;
-       String  _windowTitle;   // To look at the window title and at the window module path of the notify icon owner window
-       String  _modulePath;    // to identify notification icons is an extension above XP's behaviour.
-                                                       // (XP seems to store icon image data in the registry instead.)
-       NOTIFYICONMODE _mode;
-
-       String  _name;                  /// unique name used to identify the entry in the configuration file
-};
-
- /// list of NotifyIconConfig structures
-typedef list<NotifyIconConfig> NotifyIconCfgList;
-
-
- /// structure for maintaining informations about one notification icon
-struct NotifyInfo : public NotifyIconIndex, public NotifyIconConfig
-{
-       NotifyInfo();
-
-        // sort operator
-       friend bool operator<(const NotifyInfo& a, const NotifyInfo& b)
-               {return a._idx < b._idx;}
-
-       bool    modify(NOTIFYICONDATA* pnid);
-
-       int             _idx;   // display index
-       HICON   _hIcon;
-       DWORD   _dwState;
-       UINT    _uCallbackMessage;
-       UINT    _version;
-
-       DWORD   _lastChange;    // timer tick value of the last change
-};
-
-typedef map<NotifyIconIndex, NotifyInfo> NotifyIconMap;
-typedef set<NotifyInfo> NotifyIconSet;
-
-
-struct NotifyHook
-{
-       NotifyHook();
-       ~NotifyHook();
-
-       void    GetModulePath(HWND hwnd, HWND hwndCallback);
-       bool    ModulePathCopyData(LPARAM lparam, HWND* phwnd, String& path);
-
-protected:
-       const UINT WM_GETMODULEPATH;
-};
-
-
- /// tray notification area aka "tray"
-struct NotifyArea : public Window
-{
-       typedef Window super;
-
-       NotifyArea(HWND hwnd);
-       ~NotifyArea();
-
-       static HWND Create(HWND hwndParent);
-
-       LRESULT ProcessTrayNotification(int notify_code, NOTIFYICONDATA* pnid);
-
-protected:
-       WindowHandle _hwndClock;
-       int             _clock_width;
-
-       ToolTip _tooltip;
-       NotifyHook _hook;
-
-       bool    _show_hidden;
-       bool    _hide_inactive;
-       bool    _show_button;
-
-       LRESULT Init(LPCREATESTRUCT pcs);
-       LRESULT WndProc(UINT nmsg, WPARAM wparam, LPARAM lparam);
-       int             Command(int id, int code);
-       int             Notify(int id, NMHDR* pnmh);
-
-       void    UpdateIcons();
-       void    Paint();
-       void    Refresh(bool do_refresh=false);
-       void    CancelModes();
-
-       NotifyIconSet::iterator IconHitTest(const POINT& pos);
-       bool    DetermineHideState(NotifyInfo& entry);
-
-       void    read_config();
-       void    write_config();
-
-       friend struct TrayNotifyDlg;
-
-       NotifyIconCfgList _cfg;
-
-       map<HWND, String> _window_modules;
-
-       NotifyIconMap _icon_map;
-       NotifyIconSet _sorted_icons;
-       int             _next_idx;
-       size_t  _last_icon_count;
-
-       void    show_clock(bool flag);
-};
-
-
-struct NotifyIconDlgInfo : public NotifyIconConfig
-{
-       typedef NotifyIconConfig super;
-
-       NotifyIconDlgInfo(const NotifyInfo& info) : super(info), _lastChange(info._lastChange) {}
-       NotifyIconDlgInfo(const NotifyIconConfig& cfg) : super(cfg), _lastChange(0) {}
-       NotifyIconDlgInfo() : _lastChange(0) {}
-
-       DWORD   _lastChange;
-};
-
-typedef map<int, NotifyIconDlgInfo> NotifyIconDlgInfoMap;
-
-
- /// configuration dialog for notification icons
-struct TrayNotifyDlg : public ResizeController<Dialog>
-{
-       typedef ResizeController<Dialog> super;
-
-       TrayNotifyDlg(HWND hwnd);
-       ~TrayNotifyDlg();
-
-protected:
-       HWND    _tree_ctrl;
-       HACCEL  _haccel;
-       HIMAGELIST      _himl;
-       NotifyArea* _pNotifyArea;
-       NotifyIconDlgInfoMap _info;
-
-       typedef pair<NOTIFYICONMODE, DWORD> IconStatePair;
-       typedef map<NotifyIconIndex, IconStatePair> IconStateMap;
-
-       NotifyIconCfgList _cfg_org;
-       IconStateMap _icon_states_org;
-       bool    _show_hidden_org;
-
-       HTREEITEM _hitemCurrent;
-       HTREEITEM _hitemCurrent_visible;
-       HTREEITEM _hitemCurrent_hidden;
-       HTREEITEM _hitemConfig;
-       HTREEITEM _selectedItem;
-
-       virtual LRESULT WndProc(UINT nmsg, WPARAM wparam, LPARAM lparam);
-       virtual int     Command(int id, int code);
-       virtual int     Notify(int id, NMHDR* pnmh);
-
-       void    Refresh();
-       void    InsertItem(HTREEITEM hparent, HTREEITEM after, const NotifyInfo&, HDC);
-       void    InsertItem(HTREEITEM hparent, HTREEITEM after, const NotifyIconDlgInfo&, HDC, HICON, NOTIFYICONMODE);
-       void    SetIconMode(NOTIFYICONMODE mode);
-       void    RefreshProperties(const NotifyIconDlgInfo& entry);
-};
-
-
- /// window for displaying the time in the tray notification area
-struct ClockWindow : public Window
-{
-       typedef Window super;
-
-       ClockWindow(HWND hwnd);
-
-       static HWND Create(HWND hwndParent);
-
-       void    TimerTick();
-
-protected:
-       LRESULT WndProc(UINT nmsg, WPARAM wparam, LPARAM lparam);
-       int             Notify(int id, NMHDR* pnmh);
-
-       bool    FormatTime();
-       void    Paint();
-
-       TCHAR   _time[16];
-       ToolTip _tooltip;
-};