Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3d873f060b | ||
|
|
4055f49f03 | ||
|
|
981cdc370b | ||
|
|
63e206a7ab | ||
|
|
5a372f955b | ||
|
|
d32c8b79dc | ||
|
|
7627cabc1b |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,2 +1,3 @@
|
||||
/doc
|
||||
*.user
|
||||
temp
|
||||
|
||||
@@ -40,13 +40,13 @@ Component ComponentId Directory_ Attributes Condition KeyPath
|
||||
s$(MSIBUILD_LENGTH_ID) S38 s$(MSIBUILD_LENGTH_ID) i2 S255 S$(MSIBUILD_LENGTH_ID)
|
||||
Component Component
|
||||
!IF "$(PLAT)" == "Win32"
|
||||
compwxExtend.dll.Win32 {CF0DA67E-4D98-4059-9ECA-CB0DE44E92EB} $(WXEXTEND_BIN_DIR) 0 filewxExtend.dll.Win32
|
||||
compwxExtend.dll.Win32 {239F2FF9-E998-4F81-85A8-DA2C0A5F860B} $(WXEXTEND_BIN_DIR) 0 filewxExtend.dll.Win32
|
||||
!ENDIF
|
||||
!IF "$(PLAT)" == "x64"
|
||||
compwxExtend.dll.x64 {02F1022D-AA80-4FCA-A6F2-C576C405E1B2} $(WXEXTEND_BIN_DIR) 256 filewxExtend.dll.x64
|
||||
compwxExtend.dll.x64 {AA798500-8E4F-4554-8611-F2C225046606} $(WXEXTEND_BIN_DIR) 256 filewxExtend.dll.x64
|
||||
!ENDIF
|
||||
!IF "$(LANG)" == "Sl"
|
||||
compwxExtend.mo.sl_SI {60770F71-A7B4-4B20-9535-726049A5D412} WXEXTENDLOCSLSIDIR $(MSIBUILD_COMPONENT_ATTRIB_FILE) filewxExtend.mo.sl_SI
|
||||
compwxExtend.mo.sl_SI {026F2E74-4190-4B49-820B-94141F32F04B} WXEXTENDLOCSLSIDIR $(MSIBUILD_COMPONENT_ATTRIB_FILE) filewxExtend.mo.sl_SI
|
||||
!ENDIF
|
||||
<<NOKEEP
|
||||
|
||||
@@ -79,22 +79,22 @@ s$(MSIBUILD_LENGTH_ID) s$(MSIBUILD_LENGTH_ID) l255 i4 S$(MSIBUILD_LENGTH_ID) S20
|
||||
File File
|
||||
!IF "$(PLAT)" == "Win32"
|
||||
!IF "$(CFG)" == "Release"
|
||||
filewxExtend.dll.Win32 compwxExtend.dll.Win32 WXEXTE~2.DLL|wxExtend10u_vc100.dll 0 0 1536 1
|
||||
filewxExtend.dll.Win32 compwxExtend.dll.Win32 WXEXTE~2.DLL|wxExtend11u_vc100.dll 0 0 1536 1
|
||||
!ENDIF
|
||||
!IF "$(CFG)" == "Debug"
|
||||
filewxExtend.dll.Win32 compwxExtend.dll.Win32 WXEXTE~4.DLL|wxExtend10ud_vc100.dll 0 0 1536 1
|
||||
filewxExtend.dll.Win32 compwxExtend.dll.Win32 WXEXTE~4.DLL|wxExtend11ud_vc100.dll 0 0 1536 1
|
||||
!ENDIF
|
||||
!ENDIF
|
||||
!IF "$(PLAT)" == "x64"
|
||||
!IF "$(CFG)" == "Release"
|
||||
filewxExtend.dll.x64 compwxExtend.dll.x64 WXEXTE~6.DLL|wxExtend10u_vc100_x64.dll 0 0 1536 1
|
||||
filewxExtend.dll.x64 compwxExtend.dll.x64 WXEXTE~6.DLL|wxExtend11u_vc100_x64.dll 0 0 1536 1
|
||||
!ENDIF
|
||||
!IF "$(CFG)" == "Debug"
|
||||
filewxExtend.dll.x64 compwxExtend.dll.x64 WXEXTE~8.DLL|wxExtend10ud_vc100_x64.dll 0 0 1536 1
|
||||
filewxExtend.dll.x64 compwxExtend.dll.x64 WXEXTE~8.DLL|wxExtend11ud_vc100_x64.dll 0 0 1536 1
|
||||
!ENDIF
|
||||
!ENDIF
|
||||
!IF "$(LANG)" == "Sl"
|
||||
filewxExtend.mo.sl_SI compwxExtend.mo.sl_SI WXEXTE~1.MO|wxExtend.mo 0 1060 0 1
|
||||
filewxExtend.mo.sl_SI compwxExtend.mo.sl_SI WXEXTE~1.MO|wxExtend11.mo 0 1060 0 1
|
||||
!ENDIF
|
||||
<<NOKEEP
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ImportGroup Label="PropertySheets" />
|
||||
<PropertyGroup Label="UserMacros">
|
||||
<wxExtendVersion>10</wxExtendVersion>
|
||||
<wxExtendVersion>11</wxExtendVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<OutDir>..\..\..\output\$(Platform).$(Configuration)\</OutDir>
|
||||
@@ -11,6 +11,9 @@
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>WXEXTEND;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<POCompile>
|
||||
<OutputFile>$(OutDir)..\locale\%(Filename)\$(ProjectName)$(wxExtendVersion).mo</OutputFile>
|
||||
</POCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<BuildMacro Include="wxExtendVersion">
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\valhex.cpp" />
|
||||
<ClCompile Include="..\src\xml.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
@@ -37,6 +38,9 @@
|
||||
<ClInclude Include="..\include\wxex\comutils.h" />
|
||||
<ClInclude Include="..\include\wxex\crypto.h" />
|
||||
<ClInclude Include="..\include\wxex\hex.h" />
|
||||
<ClInclude Include="..\include\wxex\persist\auimanager.h" />
|
||||
<ClInclude Include="..\include\wxex\persist\dialog.h" />
|
||||
<ClInclude Include="..\include\wxex\valhex.h" />
|
||||
<ClInclude Include="..\include\wxex\xml.h" />
|
||||
<ClInclude Include="..\src\stdafx.h" />
|
||||
</ItemGroup>
|
||||
@@ -119,5 +123,6 @@
|
||||
<PropertyGroup />
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
<Import Project="..\..\..\include\xgettext.targets" />
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
@@ -17,6 +17,9 @@
|
||||
<UniqueIdentifier>{e43059ae-37ac-4b28-84fb-18d1b3972b30}</UniqueIdentifier>
|
||||
<Extensions>po;pot</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Header Files\persist">
|
||||
<UniqueIdentifier>{33d4709f-47d3-42c1-9562-bc4743799b49}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\src\stdafx.cpp">
|
||||
@@ -37,6 +40,9 @@
|
||||
<ClCompile Include="..\src\hex.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\valhex.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\src\stdafx.h">
|
||||
@@ -60,6 +66,15 @@
|
||||
<ClInclude Include="..\include\wxex\hex.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\include\wxex\persist\auimanager.h">
|
||||
<Filter>Header Files\persist</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\include\wxex\persist\dialog.h">
|
||||
<Filter>Header Files\persist</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\include\wxex\valhex.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="..\locale\wxExtend.pot">
|
||||
|
||||
@@ -123,15 +123,15 @@ public:
|
||||
/// Returns whether application bar is displayed always on top.
|
||||
///
|
||||
/// \returns
|
||||
/// - true when application bar is always on top
|
||||
/// - false otherwise
|
||||
/// - \c true when application bar is always on top
|
||||
/// - \c false otherwise
|
||||
///
|
||||
inline bool IsAlwaysOnTop() const;
|
||||
|
||||
///
|
||||
/// Sets whether application bar is displayed always on top.
|
||||
///
|
||||
/// \param[in] alwaysOnTop Logical variable to control whether always-on-top behaviour is to be enabled (true) or disabled (false).
|
||||
/// \param[in] alwaysOnTop Logical variable to control whether always-on-top behaviour is to be enabled (\c true) or disabled (\c false).
|
||||
///
|
||||
inline bool SetAlwaysOnTop(bool alwaysOnTop = true);
|
||||
|
||||
@@ -139,15 +139,15 @@ public:
|
||||
/// Returns if application bar is configured for auto-hide.
|
||||
///
|
||||
/// \returns
|
||||
/// - true if application bar is configured for auto-hide
|
||||
/// - false otherwise
|
||||
/// - \c true if application bar is configured for auto-hide
|
||||
/// - \c false otherwise
|
||||
///
|
||||
inline bool IsAutoHide() const;
|
||||
|
||||
///
|
||||
/// Sets whether application bar is displayed always on top.
|
||||
///
|
||||
/// \param[in] autoHide Logical variable to control whether auto-hide behaviour is to be enabled (true) or disabled (false).
|
||||
/// \param[in] autoHide Logical variable to control whether auto-hide behaviour is to be enabled (\c true) or disabled (\c false).
|
||||
///
|
||||
inline bool SetAutoHide(bool autoHide = true);
|
||||
|
||||
@@ -155,15 +155,15 @@ public:
|
||||
/// Returns if sizing of the application bar is allowed.
|
||||
///
|
||||
/// \returns
|
||||
/// - true if sizing of the application bar is allowed
|
||||
/// - false otherwise
|
||||
/// - \c true if sizing of the application bar is allowed
|
||||
/// - \c false otherwise
|
||||
///
|
||||
inline bool GetAllowSizing() const;
|
||||
|
||||
///
|
||||
/// Sets whether resizing of the application bar is allowed.
|
||||
///
|
||||
/// \param[in] allow Logical variable to control whether resizing is to be enabled (true) or disabled (false).
|
||||
/// \param[in] allow Logical variable to control whether resizing is to be enabled (\c true) or disabled (\c false).
|
||||
///
|
||||
inline bool SetAllowSizing(bool allow = true);
|
||||
|
||||
@@ -171,8 +171,8 @@ public:
|
||||
/// Returns if application bar is auto-hidden right now.
|
||||
///
|
||||
/// \returns
|
||||
/// - true if application bar is auto-hidden right now
|
||||
/// - false otherwise
|
||||
/// - \c true if application bar is auto-hidden right now
|
||||
/// - \c false otherwise
|
||||
inline bool GetAutoHidden() const;
|
||||
|
||||
//bool GetAppBarPlacement(LPAPPBARPLACEMENT lpPlacement) const;
|
||||
@@ -198,7 +198,7 @@ public:
|
||||
///
|
||||
/// Shows or hides auto-hide application bar.
|
||||
///
|
||||
/// \param[in] show Logical variable to control whether application bar is be shown (true) or hidden (false).
|
||||
/// \param[in] show Logical variable to control whether application bar is be shown (\c true) or hidden (\c false).
|
||||
///
|
||||
void ShowAutoHideAppBar(bool show = true);
|
||||
|
||||
@@ -236,7 +236,7 @@ protected:
|
||||
///
|
||||
/// Derived classes can implement their own. However, overriden virtual method should call the parent's implementation too.
|
||||
///
|
||||
/// \param[in] beginning true when windows arrangement starts and false when arrangement ends.
|
||||
/// \param[in] beginning \c true when windows arrangement starts and \c false when arrangement ends.
|
||||
///
|
||||
virtual void OnWindowsArrange(bool beginning);
|
||||
|
||||
@@ -340,8 +340,8 @@ public:
|
||||
/// \param[in] state The state of the application bar
|
||||
///
|
||||
/// \returns
|
||||
/// - true if the application bar state represents docked state
|
||||
/// - false otherwise
|
||||
/// - \c true if the application bar state represents docked state
|
||||
/// - \c false otherwise
|
||||
///
|
||||
inline bool wxAppBarIsDocked(wxAppBarState state)
|
||||
{
|
||||
@@ -355,8 +355,8 @@ inline bool wxAppBarIsDocked(wxAppBarState state)
|
||||
/// \param[in] state The state of the application bar
|
||||
///
|
||||
/// \returns
|
||||
/// - true if the application bar state represents vertically docked state
|
||||
/// - false otherwise
|
||||
/// - \c true if the application bar state represents vertically docked state
|
||||
/// - \c false otherwise
|
||||
///
|
||||
inline bool wxAppBarIsDockedVert(wxAppBarState state)
|
||||
{
|
||||
@@ -370,8 +370,8 @@ inline bool wxAppBarIsDockedVert(wxAppBarState state)
|
||||
/// \param[in] state The state of the application bar
|
||||
///
|
||||
/// \returns
|
||||
/// - true if the application bar state represents horizontally docked state
|
||||
/// - false otherwise
|
||||
/// - \c true if the application bar state represents horizontally docked state
|
||||
/// - \c false otherwise
|
||||
///
|
||||
inline bool wxAppBarIsDockedHoriz(wxAppBarState state)
|
||||
{
|
||||
|
||||
@@ -23,16 +23,18 @@
|
||||
///
|
||||
/// wxExtend Version
|
||||
///
|
||||
#define wxEXTEND_VERSION 0x01000000
|
||||
#define wxEXTEND_VERSION 0x01010000
|
||||
|
||||
#define wxEXTEND_VERSION_MAJ 1
|
||||
#define wxEXTEND_VERSION_MIN 0
|
||||
#define wxEXTEND_VERSION_MIN 1
|
||||
#define wxEXTEND_VERSION_REV 0
|
||||
#define wxEXTEND_VERSION_BUILD 0
|
||||
|
||||
#define wxEXTEND_VERSION_STR "1.0"
|
||||
#define wxEXTEND_VERSION_STR "1.1"
|
||||
#define wxEXTEND_BUILD_YEAR_STR "2016"
|
||||
|
||||
#define wxExtendVersion "11"
|
||||
|
||||
|
||||
#if !defined(RC_INVOKED) && !defined(MIDL_PASS)
|
||||
|
||||
@@ -55,9 +57,20 @@
|
||||
/// Debug macros
|
||||
///
|
||||
#if wxDEBUG_LEVEL
|
||||
#define wxVERIFY(x) wxASSERT((x))
|
||||
#define wxVERIFY_MSG(cond, msg) \
|
||||
wxSTATEMENT_MACRO_BEGIN \
|
||||
if ( !(cond) && wxTheAssertHandler && \
|
||||
(wxOnAssert(__FILE__, __LINE__, __WXFUNCTION__, \
|
||||
#cond, msg), wxTrapInAssert) ) \
|
||||
{ \
|
||||
wxTrapInAssert = false; \
|
||||
wxTrap(); \
|
||||
} \
|
||||
wxSTATEMENT_MACRO_END
|
||||
|
||||
#define wxVERIFY(cond) wxVERIFY_MSG(cond, (const char*)NULL)
|
||||
#else
|
||||
#define wxVERIFY(x) (x)
|
||||
#define wxVERIFY(cond) (cond)
|
||||
#endif
|
||||
|
||||
|
||||
@@ -65,8 +78,8 @@
|
||||
/// Returns whether windows animation is enabled.
|
||||
///
|
||||
/// \returns
|
||||
/// - true when window animation is enabled
|
||||
/// - false otherwise
|
||||
/// - \c true when window animation is enabled
|
||||
/// - \c false otherwise
|
||||
///
|
||||
inline bool wxGetDoWndAnimation()
|
||||
{
|
||||
@@ -85,8 +98,8 @@ inline bool wxGetDoWndAnimation()
|
||||
/// \param[in] nFlags Additional SWP_ flags to pass to SetWindowPos(). If zero, SetWindowPos() is not called.
|
||||
///
|
||||
/// \returns
|
||||
/// - true when the window extended style was modified
|
||||
/// - false if the window extended style was not neccessary
|
||||
/// - \c true when the window extended style was modified
|
||||
/// - \c false if the window extended style was not neccessary
|
||||
///
|
||||
inline bool wxModifyStyleEx(_In_ WXHWND hWnd, _In_ DWORD dwRemove, _In_ DWORD dwAdd, _In_ UINT nFlags = 0)
|
||||
{
|
||||
|
||||
@@ -44,8 +44,8 @@ public:
|
||||
/// Has the initialization been successful? (explicit test)
|
||||
///
|
||||
/// \returns
|
||||
/// - true if initialization succeeded
|
||||
/// - false otherwise
|
||||
/// - \c true if initialization succeeded
|
||||
/// - \c false otherwise
|
||||
///
|
||||
bool IsOk() const { return m_ok; }
|
||||
|
||||
@@ -53,8 +53,8 @@ public:
|
||||
/// Has the initialization been successful? (implicit test)
|
||||
///
|
||||
/// \returns
|
||||
/// - true if initialization succeeded
|
||||
/// - false otherwise
|
||||
/// - \c true if initialization succeeded
|
||||
/// - \c false otherwise
|
||||
///
|
||||
operator bool() const { return m_ok; }
|
||||
|
||||
|
||||
@@ -45,8 +45,8 @@ public:
|
||||
/// Has the session creation been successful?
|
||||
///
|
||||
/// \returns
|
||||
/// - true if creation succeeded
|
||||
/// - false otherwise
|
||||
/// - \c true if creation succeeded
|
||||
/// - \c false otherwise
|
||||
///
|
||||
inline bool IsOk() const
|
||||
{
|
||||
@@ -91,8 +91,8 @@ public:
|
||||
/// Has the hash creation been successful?
|
||||
///
|
||||
/// \returns
|
||||
/// - true if creation succeeded
|
||||
/// - false otherwise
|
||||
/// - \c true if creation succeeded
|
||||
/// - \c false otherwise
|
||||
///
|
||||
inline bool IsOk() const
|
||||
{
|
||||
@@ -116,8 +116,8 @@ public:
|
||||
/// \param[in] size Size of memory block in bytes
|
||||
///
|
||||
/// \returns
|
||||
/// - true if hashing succeeded
|
||||
/// - false otherwise
|
||||
/// - \c true if hashing succeeded
|
||||
/// - \c false otherwise
|
||||
///
|
||||
bool Hash(const void *data, size_t size);
|
||||
|
||||
@@ -128,8 +128,8 @@ public:
|
||||
/// \param[in] data Memory block
|
||||
///
|
||||
/// \returns
|
||||
/// - true if hashing succeeded
|
||||
/// - false otherwise
|
||||
/// - \c true if hashing succeeded
|
||||
/// - \c false otherwise
|
||||
///
|
||||
inline bool Hash(const wxMemoryBuffer &data)
|
||||
{
|
||||
@@ -143,8 +143,8 @@ public:
|
||||
/// \param[in] str String to hash
|
||||
///
|
||||
/// \returns
|
||||
/// - true if hashing succeeded
|
||||
/// - false otherwise
|
||||
/// - \c true if hashing succeeded
|
||||
/// - \c false otherwise
|
||||
///
|
||||
inline bool HashAsUTF8(const wxString &str)
|
||||
{
|
||||
@@ -159,8 +159,8 @@ public:
|
||||
/// \param[in] fileName The path of the file to calculate hash of
|
||||
///
|
||||
/// \returns
|
||||
/// - true if hashing succeeded
|
||||
/// - false otherwise
|
||||
/// - \c true if hashing succeeded
|
||||
/// - \c false otherwise
|
||||
///
|
||||
inline bool HashFile(const wxString &fileName)
|
||||
{
|
||||
@@ -186,8 +186,8 @@ public:
|
||||
/// \param[out] hash Hash data
|
||||
///
|
||||
/// \returns
|
||||
/// - true if succeeded
|
||||
/// - false otherwise
|
||||
/// - \c true if succeeded
|
||||
/// - \c false otherwise
|
||||
///
|
||||
virtual bool GetValue(wxMemoryBuffer &hash);
|
||||
|
||||
@@ -198,8 +198,8 @@ public:
|
||||
/// \param[out] signature Digital signature
|
||||
///
|
||||
/// \returns
|
||||
/// - true if signing succeeded
|
||||
/// - false otherwise
|
||||
/// - \c true if signing succeeded
|
||||
/// - \c false otherwise
|
||||
///
|
||||
bool Sign(wxMemoryBuffer &signature);
|
||||
|
||||
@@ -233,8 +233,8 @@ public:
|
||||
/// \param[out] hash Hash data
|
||||
///
|
||||
/// \returns
|
||||
/// - true if succeeded
|
||||
/// - false otherwise
|
||||
/// - \c true if succeeded
|
||||
/// - \c false otherwise
|
||||
///
|
||||
virtual bool GetValue(wxMemoryBuffer &hash);
|
||||
};
|
||||
@@ -254,8 +254,8 @@ public:
|
||||
/// Has the key creation been successful?
|
||||
///
|
||||
/// \returns
|
||||
/// - true if creation succeeded
|
||||
/// - false otherwise
|
||||
/// - \c true if creation succeeded
|
||||
/// - \c false otherwise
|
||||
///
|
||||
inline bool IsOk() const
|
||||
{
|
||||
@@ -289,8 +289,8 @@ protected:
|
||||
/// \param[in] key Public key
|
||||
///
|
||||
/// \returns
|
||||
/// - true if verification succeeded and the hash matches
|
||||
/// - false otherwise
|
||||
/// - \c true if verification succeeded and the hash matches
|
||||
/// - \c false otherwise
|
||||
///
|
||||
bool WXEXTEND_API wxCryptoVerifySignature(const wxCryptoHash &hash, const void *signature_data, size_t signature_size, const wxCryptoKey &key);
|
||||
|
||||
@@ -303,8 +303,8 @@ bool WXEXTEND_API wxCryptoVerifySignature(const wxCryptoHash &hash, const void *
|
||||
/// \param[in] key Public key
|
||||
///
|
||||
/// \returns
|
||||
/// - true if verification succeeded and the hash matches
|
||||
/// - false otherwise
|
||||
/// - \c true if verification succeeded and the hash matches
|
||||
/// - \c false otherwise
|
||||
///
|
||||
inline bool wxCryptoVerifySignature(const wxCryptoHash &hash, const wxMemoryBuffer &signature, const wxCryptoKey &key)
|
||||
{
|
||||
|
||||
89
include/wxex/persist/auimanager.h
Normal file
89
include/wxex/persist/auimanager.h
Normal file
@@ -0,0 +1,89 @@
|
||||
/*
|
||||
Copyright 2015-2016 Amebis
|
||||
|
||||
This file is part of wxExtend.
|
||||
|
||||
wxExtend 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 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
wxExtend 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 wxExtend. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "../common.h"
|
||||
|
||||
#include <wx/persist.h>
|
||||
#include <wx/aui/framemanager.h>
|
||||
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// string constants used by wxPersistentAuiManager
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
#define wxPERSIST_AUIMGR_KIND "AuiManager"
|
||||
|
||||
// names for persistent options
|
||||
#define wxPERSIST_AUIMGR_PERSPECTIVE "perspective"
|
||||
|
||||
|
||||
///
|
||||
/// Supports saving/restoring wxAuiManager state
|
||||
///
|
||||
class wxPersistentAuiManager : public wxPersistentObject
|
||||
{
|
||||
public:
|
||||
wxPersistentAuiManager(wxAuiManager *mgr) : wxPersistentObject(mgr)
|
||||
{
|
||||
}
|
||||
|
||||
virtual wxString GetKind() const
|
||||
{
|
||||
return wxT(wxPERSIST_AUIMGR_KIND);
|
||||
}
|
||||
|
||||
virtual wxString GetName() const
|
||||
{
|
||||
// Borrow the name of wxAguiManager from its window.
|
||||
return GetManager()->GetManagedWindow()->GetName();
|
||||
}
|
||||
|
||||
virtual void Save() const
|
||||
{
|
||||
// Save perspective string to configuration.
|
||||
SaveValue(wxT(wxPERSIST_AUIMGR_PERSPECTIVE), GetManager()->SavePerspective());
|
||||
}
|
||||
|
||||
virtual bool Restore()
|
||||
{
|
||||
// Load perspective string from configuration.
|
||||
wxString persp;
|
||||
return RestoreValue(wxT(wxPERSIST_AUIMGR_PERSPECTIVE), &persp) && GetManager()->LoadPerspective(persp);
|
||||
}
|
||||
|
||||
protected:
|
||||
wxAuiManager *GetManager() const
|
||||
{
|
||||
return static_cast<wxAuiManager*>(GetObject());
|
||||
}
|
||||
|
||||
private:
|
||||
wxDECLARE_NO_COPY_CLASS(wxPersistentAuiManager);
|
||||
};
|
||||
|
||||
|
||||
///
|
||||
/// wxAuiManager's instantiation of wxCreatePersistentObject template
|
||||
///
|
||||
inline wxPersistentObject *wxCreatePersistentObject(wxAuiManager *mgr)
|
||||
{
|
||||
return new wxPersistentAuiManager(mgr);
|
||||
}
|
||||
103
include/wxex/persist/dialog.h
Normal file
103
include/wxex/persist/dialog.h
Normal file
@@ -0,0 +1,103 @@
|
||||
/*
|
||||
Copyright 2015-2016 Amebis
|
||||
|
||||
This file is part of wxExtend.
|
||||
|
||||
wxExtend 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 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
wxExtend 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 wxExtend. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "../common.h"
|
||||
|
||||
#include <wx/persist.h>
|
||||
#include <wx/persist/toplevel.h>
|
||||
#include <wx/persist/window.h>
|
||||
#include <wx/dialog.h>
|
||||
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// string constants used by wxPersistentDialog
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
#define wxPERSIST_DIALOG_KIND "Dialog"
|
||||
|
||||
|
||||
///
|
||||
/// Supports saving/restoring wxDialog state
|
||||
///
|
||||
class wxPersistentDialog : public wxPersistentWindow<wxDialog>
|
||||
{
|
||||
public:
|
||||
wxPersistentDialog(wxDialog *mgr) : wxPersistentWindow<wxDialog>(mgr)
|
||||
{
|
||||
}
|
||||
|
||||
virtual wxString GetKind() const
|
||||
{
|
||||
return wxT(wxPERSIST_DIALOG_KIND);
|
||||
}
|
||||
|
||||
virtual void Save() const
|
||||
{
|
||||
const wxDialog * const wnd = Get();
|
||||
|
||||
// Code copied from wxPersistentTLW::Save()
|
||||
const wxPoint pos = wnd->GetScreenPosition();
|
||||
SaveValue(wxPERSIST_TLW_X, pos.x);
|
||||
SaveValue(wxPERSIST_TLW_Y, pos.y);
|
||||
}
|
||||
|
||||
virtual bool Restore()
|
||||
{
|
||||
wxDialog * const wnd = Get();
|
||||
|
||||
// Code copied from wxPersistentTLW::Restore()
|
||||
long
|
||||
x wxDUMMY_INITIALIZE(-1),
|
||||
y wxDUMMY_INITIALIZE(-1);
|
||||
const wxSize size = wnd->GetSize();
|
||||
const bool hasPos = RestoreValue(wxPERSIST_TLW_X, &x) &&
|
||||
RestoreValue(wxPERSIST_TLW_Y, &y);
|
||||
|
||||
if (hasPos) {
|
||||
// to avoid making the window completely invisible if it had been
|
||||
// shown on a monitor which was disconnected since the last run
|
||||
// (this is pretty common for notebook with external displays)
|
||||
//
|
||||
// NB: we should allow window position to be (slightly) off screen,
|
||||
// it's not uncommon to position the window so that its upper
|
||||
// left corner has slightly negative coordinate
|
||||
if (wxDisplay::GetFromPoint(wxPoint(x , y )) != wxNOT_FOUND ||
|
||||
wxDisplay::GetFromPoint(wxPoint(x + size.x, y + size.y)) != wxNOT_FOUND)
|
||||
{
|
||||
wnd->Move(x, y, wxSIZE_ALLOW_MINUS_ONE);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private:
|
||||
wxDECLARE_NO_COPY_CLASS(wxPersistentDialog);
|
||||
};
|
||||
|
||||
|
||||
///
|
||||
/// wxDialog's instantiation of wxCreatePersistentObject template
|
||||
///
|
||||
inline wxPersistentObject *wxCreatePersistentObject(wxDialog *mgr)
|
||||
{
|
||||
return new wxPersistentDialog(mgr);
|
||||
}
|
||||
78
include/wxex/valhex.h
Normal file
78
include/wxex/valhex.h
Normal file
@@ -0,0 +1,78 @@
|
||||
/*
|
||||
Copyright 2015-2016 Amebis
|
||||
|
||||
This file is part of wxExtend.
|
||||
|
||||
wxExtend 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 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
wxExtend 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 wxExtend. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "common.h"
|
||||
|
||||
#include <wx/valnum.h>
|
||||
|
||||
|
||||
///
|
||||
/// Bit masks used for hexadecimal validator styles.
|
||||
///
|
||||
enum wxHexValidatorStyle
|
||||
{
|
||||
// Do not use values used by wxNumValidatorStyle flags, since this is the extension.
|
||||
wxNUM_VAL_HEX_LOWERCASE = 0x1000,
|
||||
};
|
||||
|
||||
|
||||
///
|
||||
/// Base class for hexadecimal validator
|
||||
///
|
||||
class WXEXTEND_API wxHexValidatorBase : public wxIntegerValidatorBase
|
||||
{
|
||||
protected:
|
||||
wxHexValidatorBase(int style);
|
||||
wxHexValidatorBase(const wxHexValidatorBase& other);
|
||||
|
||||
bool IsMinusOk(const wxString& val, int pos) const;
|
||||
|
||||
static bool FromString(const wxString& s, long *value);
|
||||
#ifdef wxHAS_LONG_LONG_T_DIFFERENT_FROM_LONG
|
||||
static bool FromString(const wxString &s, wxLongLong_t *value);
|
||||
#endif
|
||||
wxString ToString(LongestValueType value) const;
|
||||
|
||||
private:
|
||||
virtual bool IsCharOk(const wxString& val, int pos, wxChar ch) const;
|
||||
};
|
||||
|
||||
|
||||
///
|
||||
/// Validator for hexadecimal entries
|
||||
///
|
||||
template <typename T>
|
||||
class wxHexValidator : public wxPrivate::wxNumValidator<wxHexValidatorBase, T>
|
||||
{
|
||||
public:
|
||||
typedef wxPrivate::wxNumValidator<wxHexValidatorBase, T> Base;
|
||||
|
||||
wxHexValidator(ValueType *value = NULL, int style = wxNUM_VAL_DEFAULT) : Base(value, style)
|
||||
{
|
||||
this->DoSetMin(std::numeric_limits<ValueType>::min());
|
||||
this->DoSetMax(std::numeric_limits<ValueType>::max());
|
||||
}
|
||||
|
||||
virtual wxObject *Clone() const { return new wxHexValidator(*this); }
|
||||
|
||||
private:
|
||||
wxDECLARE_NO_ASSIGN_CLASS(wxHexValidator);
|
||||
};
|
||||
@@ -27,6 +27,7 @@
|
||||
#include "../include/wxex/comutils.h"
|
||||
#include "../include/wxex/crypto.h"
|
||||
#include "../include/wxex/hex.h"
|
||||
#include "../include/wxex/valhex.h"
|
||||
#include "../include/wxex/xml.h"
|
||||
|
||||
#include "../include/wxex/common.h"
|
||||
|
||||
98
src/valhex.cpp
Normal file
98
src/valhex.cpp
Normal file
@@ -0,0 +1,98 @@
|
||||
/*
|
||||
Copyright 2015-2016 Amebis
|
||||
|
||||
This file is part of wxExtend.
|
||||
|
||||
wxExtend 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 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
wxExtend 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 wxExtend. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "stdafx.h"
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// wxHexValidatorBase
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
||||
wxHexValidatorBase::wxHexValidatorBase(int style) : wxIntegerValidatorBase(style)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
wxHexValidatorBase::wxHexValidatorBase(const wxHexValidatorBase& other) : wxIntegerValidatorBase(other)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
bool wxHexValidatorBase::IsMinusOk(const wxString& val, int pos) const
|
||||
{
|
||||
// Minus is never OK with hexadecimal numbers.
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
bool wxHexValidatorBase::FromString(const wxString& s, long *value)
|
||||
{
|
||||
return s.ToLong(value, 16);
|
||||
}
|
||||
|
||||
|
||||
#ifdef wxHAS_LONG_LONG_T_DIFFERENT_FROM_LONG
|
||||
|
||||
bool wxHexValidatorBase::FromString(const wxString &s, wxLongLong_t *value)
|
||||
{
|
||||
return s.ToLongLong(value, 16);
|
||||
}
|
||||
|
||||
#endif // wxHAS_LONG_LONG_T_DIFFERENT_FROM_LONG
|
||||
|
||||
wxString wxHexValidatorBase::ToString(LongestValueType value) const
|
||||
{
|
||||
const wxStringCharType hexa = (HasFlag((wxNumValidatorStyle)wxNUM_VAL_HEX_LOWERCASE) ? wxT('a') : wxT('A')) - 0xa;
|
||||
int offset = sizeof(LongestValueType)*8 - 4;
|
||||
wxULongLong_t m = ((wxULongLong_t)0xf) << offset;
|
||||
unsigned int x = 0;
|
||||
|
||||
// Skip leading zeros.
|
||||
while (m && !x) {
|
||||
x = (int)((m & (wxULongLong_t)value) >> offset);
|
||||
m >>= 4, offset -= 4;
|
||||
}
|
||||
|
||||
// First digit.
|
||||
wxString str(1, (wxStringCharType)((x < 0xa ? wxT('0') : hexa) + x));
|
||||
|
||||
// Rest of the digits.
|
||||
while (m) {
|
||||
x = (int)((m & (wxULongLong_t)value) >> offset);
|
||||
m >>= 4, offset -= 4;
|
||||
str += (wxStringCharType)((x < 0xa ? wxT('0') : hexa) + x);
|
||||
}
|
||||
|
||||
return str;
|
||||
}
|
||||
|
||||
|
||||
bool wxHexValidatorBase::IsCharOk(const wxString& val, int pos, wxChar ch) const
|
||||
{
|
||||
// We only accept hexadecimal digits here.
|
||||
if ((ch < '0' || ch > '9') && (ch < 'A' || ch > 'F') && (ch < 'a' || ch > 'f'))
|
||||
return false;
|
||||
|
||||
// And the value after insertion needs to be in the defined range.
|
||||
LongestValueType value;
|
||||
if (!FromString(GetValueAfterInsertingChar(val, pos, ch), &value))
|
||||
return false;
|
||||
|
||||
return IsInRange(value);
|
||||
}
|
||||
Reference in New Issue
Block a user