diff options
author | Tobias Weimer <wishmaster51@googlemail.com> | 2015-07-12 14:10:16 +0000 |
---|---|---|
committer | Tobias Weimer <wishmaster51@googlemail.com> | 2015-07-12 14:10:16 +0000 |
commit | f4ce2b5c214cce406dbd7a73dc7f35ae409546ad (patch) | |
tree | 533cc821ffc9c5664c075930be6a40fde9593aba /plugins/Clist_ng/INCLUDE/utils.h | |
parent | 71a88c6d8c4578ca24e02a5c6f4860c206e7c6da (diff) |
Clist NG:
Commit of CList NG by silvercircle from https://github.com/silvercircle/miranda-ng
This is based on clist_nicer and Anti-Grain Geometry: http://www.antigrain.com/
This is the first version that actually compiles.
Do NOT use it in production environment!
git-svn-id: http://svn.miranda-ng.org/main/trunk@14543 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins/Clist_ng/INCLUDE/utils.h')
-rw-r--r-- | plugins/Clist_ng/INCLUDE/utils.h | 137 |
1 files changed, 137 insertions, 0 deletions
diff --git a/plugins/Clist_ng/INCLUDE/utils.h b/plugins/Clist_ng/INCLUDE/utils.h new file mode 100644 index 0000000000..24555ff01e --- /dev/null +++ b/plugins/Clist_ng/INCLUDE/utils.h @@ -0,0 +1,137 @@ +/*
+ * astyle --force-indent=tab=4 --brackets=linux --indent-switches
+ * --pad=oper --one-line=keep-blocks --unpad=paren
+ *
+ * Miranda IM: the free IM client for Microsoft* Windows*
+ *
+ * Copyright 2000-2010 Miranda ICQ/IM project,
+ * all portions of this codebase are copyrighted to the people
+ * listed in contributors.txt.
+ *
+ * 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, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * part of clist_ng plugin for Miranda.
+ *
+ * (C) 2005-2010 by silvercircle _at_ gmail _dot_ com and contributors
+ *
+ * $Id: utils.h 128 2010-09-26 12:12:56Z silvercircle $
+ */
+
+
+#ifndef __UTILS_H_
+#define __UTILS_H_
+
+class Utils
+{
+public:
+ static void TSAPI enableDlgControl (const HWND hwnd, UINT id, BOOL fEnable);
+ static void TSAPI showDlgControl (const HWND hwnd, UINT id, int showCmd);
+ static HMODULE loadSystemLibrary (const wchar_t* szFilename, bool useGetHandle = false);
+ static void extractResource (const HMODULE h, const UINT uID, const wchar_t* tszName, const wchar_t* tszPath,
+ const wchar_t* tszFilename, bool fForceOverwrite);
+ static void ensureTralingBackslash (wchar_t *szPathname);
+ static DWORD __fastcall hexStringToLong (const char *szSource);
+
+ static int pathIsAbsolute (const wchar_t* path);
+ static size_t pathToRelative (const wchar_t* pSrc, wchar_t* pOut, const wchar_t* szBase = 0);
+ static size_t pathToAbsolute (const wchar_t* pSrc, wchar_t* pOut, const wchar_t* szBase = 0);
+ static const wchar_t* striStr (const wchar_t* szString, const wchar_t* szSearchFor);
+ static const wchar_t* extractURLFromRichEdit (const ENLINK* _e, const HWND hwndRich);
+
+ template<class T, class U, class V, class W> static HRESULT writeProfile(T* _section, U* _key, V* _value, W* _file)
+ {
+ size_t _s = sizeof(T);
+
+ if(_s == 1)
+ return(WritePrivateProfileStringA((char *)_section, (char *)_key, (char *)_value, (char *)_file));
+ else
+ return(WritePrivateProfileStringW((wchar_t *)_section, (wchar_t *)_key, (wchar_t *)_value, (wchar_t *)_file));
+ }
+
+ template<class T, class U, class V> static HRESULT writeProfile(T* _section, U* _key, DWORD _value, const V* _file)
+ {
+ T sValue[1024];
+
+ size_t _s = sizeof(T);
+ if(_s == 1) {
+ _snprintf((char *)sValue, 1024, "%d", _value);
+ sValue[1023] = 0;
+ return(WritePrivateProfileStringA((char *)_section, (char *)_key, (char *)sValue, (char *)_file));
+ }
+ else {
+ _snwprintf((wchar_t *)sValue, 1024, L"%d", _value);
+ sValue[1023] = 0;
+ return(WritePrivateProfileStringW((wchar_t *)_section, (wchar_t *)_key, (wchar_t *)sValue, (wchar_t *)_file));
+ }
+ }
+};
+
+/**
+ * implement a warning dialog with a "do not show this again" check
+ * box
+ */
+
+class WarningDlg {
+
+public:
+ /*
+ * the warning IDs
+ */
+ enum {
+ WARN_RELNOTES = 0,
+ WARN_SKIN_LOADER_ERROR = 1,
+ WARN_SKIN_OVERWRITE = 2,
+ WARN_LAST = 3,
+ };
+
+ /*
+ * the flags (low word is reserved for default windows flags like MB_OK etc.
+ */
+
+ enum {
+ CWF_UNTRANSLATED = 0x00010000, // do not translate the msg (useful for some error messages)
+ CWF_NOALLOWHIDE = 0x00020000 // critical message, hide the "do not show this again" check box
+ };
+
+ WarningDlg(const wchar_t* tszTitle, const wchar_t* tszText, const UINT uId, const DWORD dwFlags);
+ ~WarningDlg();
+
+public:
+ /*
+ * static function to construct and show the dialog, returns the
+ * user's choice
+ */
+ static LRESULT show (const int uId, DWORD dwFlags = 0, const wchar_t* tszTxt = 0);
+ static void destroyAll ();
+ LRESULT ShowDialog () const;
+
+private:
+ UINT m_uId;
+ HFONT m_hFontCaption;
+ DWORD m_dwFlags;
+ HWND m_hwnd;
+ bool m_fIsModal;
+ pSmartWstring m_pszTitle, m_pszText;
+
+ INT_PTR CALLBACK dlgProc (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
+ static INT_PTR CALLBACK stubDlgProc (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
+ static __int64 getMask (); // get bit mask for disabled message classes
+
+private:
+ static MWindowList hWindowList;
+ static wchar_t* m_warnings[WARN_LAST];
+};
+
+#endif /* __UTILS_H_ */
|