sprint 1-alpha
sprint/gtl/detail/commctrl.h
00001 /******************************************************************************
00002  *  GTL: GUI Template Library 
00003  *    A Cross Platform C++ Wrapper for Win32 users
00004  *  Copyright (C) 2007-2011 Paolo Medici (www.pmx.it)
00005  *
00006  *  This library is free software; you can redistribute it and/or
00007  *  modify it under the terms of the GNU Lesser General Public
00008  *  License as published by the Free Software Foundation; either
00009  *  version 2.1 of the License, or (at your option) any later version.
00010  *
00011  *  This library is distributed in the hope that it will be useful,
00012  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00013  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014  *  Lesser General Public License for more details.
00015  *
00016  *  You should have received a copy of the GNU Lesser General Public
00017  *  License along with this library; if not, write to the Free Software
00018  *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
00019  *
00020  *******************************************************************************/
00021 
00022 #ifndef _SPRINT_COMMONCONTROL_H
00023 #define _SPRINT_COMMONCONTROL_H
00024 
00025 #include  <commctrl.h>
00026 
00027 namespace sprint {
00028         namespace gtl {
00029 
00030 #if (_WIN32_IE >= 0x0300)
00031 
00032 // Link with -lcomctl32
00033 class CommonControl {
00034 
00035 public:
00036        
00037 static void StartCommonControls(DWORD dwFlags)
00038 {
00039 ::INITCOMMONCONTROLSEX ctrls;
00040 
00041 ctrls.dwSize = sizeof(INITCOMMONCONTROLSEX);
00042 ctrls.dwICC = dwFlags;
00043 InitCommonControlsEx( &ctrls );
00044 }
00045        
00046 CommonControl(DWORD dwFlags)
00047 {      
00048     StartCommonControls(dwFlags);   
00049 }
00050 
00051 static CommonControl & Instance();
00052 
00053 };
00054 
00057 #define DECLARE_COMMON_CONTROL(i) sprint::gtl::CommonControl & sprint::gtl::CommonControl::Instance() { static sprint::gtl::CommonControl instance(i); return instance; }
00058 
00059 #else
00060 
00061 #warning please define _WIN32_IE >= 0x0300
00062 
00063 #endif 
00064 
00065 } // gtl
00066 
00067 } // sprint
00068 
00069 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines