OSDN Git Service

Fixed issue #112: (8) Low hanging GUI fruits during Commit and Push
[tortoisegit/TortoiseGitJp.git] / src / TortoiseIDiff / NiceTrackbar.h
1 // TortoiseIDiff - an image diff viewer in TortoiseSVN\r
2 \r
3 // Copyright (C) 2006 - 2008 - TortoiseSVN\r
4 \r
5 // This program is free software; you can redistribute it and/or\r
6 // modify it under the terms of the GNU General Public License\r
7 // as published by the Free Software Foundation; either version 2\r
8 // of the License, or (at your option) any later version.\r
9 \r
10 // This program is distributed in the hope that it will be useful,\r
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of\r
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
13 // GNU General Public License for more details.\r
14 \r
15 // You should have received a copy of the GNU General Public License\r
16 // along with this program; if not, write to the Free Software Foundation,\r
17 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\r
18 //\r
19 #pragma once\r
20 \r
21 /**\r
22  * \ingroup TortoiseIDiff\r
23  * Subclassed trackbar control that jumps to the mouse click positions immediately, instead of\r
24  * changing the value "towards it".\r
25  */\r
26 class CNiceTrackbar {\r
27 public:\r
28         CNiceTrackbar() : m_Window(NULL), m_OrigProc(NULL), m_Dragging(false), m_DragChanged(false) { }\r
29 \r
30         HWND GetWindow() const { return m_Window; }\r
31         bool IsValid() const { return m_Window != NULL; }\r
32 \r
33         void ConvertTrackbarToNice( HWND window );\r
34 \r
35 private:\r
36         static LRESULT CALLBACK NiceTrackbarProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);\r
37         void PostMessageToParent (int tbCode) const;\r
38         bool SetThumb (LPARAM lparamPoint);\r
39 \r
40 private:\r
41         HWND m_Window;\r
42         WNDPROC m_OrigProc;\r
43         bool m_Dragging;\r
44         bool m_DragChanged;\r
45 };\r