Menu

[r192]: / trunk / src / HiddenWindow.h  Maximize  Restore  History

Download this file

98 lines (75 with data), 2.5 kB

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
// CommitMonitor - simple checker for new commits in svn repositories
// Copyright (C) 2007 - Stefan Kueng
// 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,
// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
#pragma once
#include <shellapi.h>
#include "BaseWindow.h"
#include "MainDlg.h"
#include "UrlInfo.h"
#include "resource.h"
#pragma comment(lib, "shell32.lib")
/// the timer IDs
#define IDT_MONITOR 101
#define IDT_ANIMATE 102
/// timer elapse time, set to 1 minute
#define TIMER_ELAPSE 60000
#define TIMER_ANIMATE 400
typedef struct
{
wstring sTitle;
wstring sText;
} popupData;
class CHiddenWindow : public CWindow
{
public:
CHiddenWindow(HINSTANCE hInst, const WNDCLASSEX* wcx = NULL);
~CHiddenWindow(void);
/**
* Registers the window class and creates the window.
*/
bool RegisterAndCreateWindow();
INT_PTR ShowDialog();
void StopThread();
DWORD RunThread();
void SetTask(bool b) {m_bIsTask = b;}
protected:
/// the message handler for this window
LRESULT CALLBACK WinMsgHandler(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
LRESULT HandleCustomMessages(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
private:
void DoTimer(bool bForce);
void DoAnimate();
void ShowTrayIcon(bool newCommits);
private:
UINT COMMITMONITOR_SHOWDLGMSG;
UINT WM_TASKBARCREATED;
int m_nIcon;
NOTIFYICONDATA m_SystemTray;
HICON m_hIconNormal;
HICON m_hIconNew0;
HICON m_hIconNew1;
HICON m_hIconNew2;
HICON m_hIconNew3;
CUrlInfos m_UrlInfos;
DWORD m_ThreadRunning;
bool m_bRun;
HANDLE m_hMonitorThread;
bool m_bMainDlgShown;
bool m_bMainDlgRemovedItems;
HWND m_hMainDlg;
CRegStdWORD regShowTaskbarIcon;
bool m_bIsTask;
typedef BOOL(__stdcall *PFNCHANGEWINDOWMESSAGEFILTER)(UINT message, DWORD dwFlag);
static PFNCHANGEWINDOWMESSAGEFILTER m_pChangeWindowMessageFilter;
};
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.