From 7aca9dbcaa6293561fecfc0bfe535604c37f5a7e Mon Sep 17 00:00:00 2001 From: rozmansi Date: Thu, 17 Feb 2022 12:50:27 +0000 Subject: [PATCH] deploy: 9d633b384fe77a0a770730f55f48ae9003d94a07 --- .nojekyll | 0 annotated.html | 96 + appbar_8h_source.html | 1559 +++++++++++++ auimanager_8h_source.html | 169 ++ bc_s.png | Bin 0 -> 676 bytes bdwn.png | Bin 0 -> 147 bytes classes.html | 81 + classwx_app_bar-members.html | 106 + classwx_app_bar.html | 699 ++++++ classwx_app_bar.png | Bin 0 -> 424 bytes classwx_app_bar_dialog-members.html | 109 + classwx_app_bar_dialog.html | 217 ++ classwx_app_bar_dialog.png | Bin 0 -> 856 bytes classwx_app_bar_frame-members.html | 109 + classwx_app_bar_frame.html | 217 ++ classwx_app_bar_frame.png | Bin 0 -> 867 bytes classwx_co_initializer-members.html | 82 + classwx_co_initializer.html | 198 ++ classwx_crypto_hash-members.html | 90 + classwx_crypto_hash.html | 462 ++++ classwx_crypto_hash.png | Bin 0 -> 594 bytes classwx_crypto_hash_s_h_a1-members.html | 91 + classwx_crypto_hash_s_h_a1.html | 194 ++ classwx_crypto_hash_s_h_a1.png | Bin 0 -> 588 bytes classwx_crypto_key-members.html | 85 + classwx_crypto_key.html | 181 ++ classwx_crypto_session-members.html | 83 + classwx_crypto_session.html | 182 ++ classwx_crypto_session.png | Bin 0 -> 709 bytes ...wx_crypto_session_r_s_a_a_e_s-members.html | 84 + classwx_crypto_session_r_s_a_a_e_s.html | 128 + classwx_crypto_session_r_s_a_a_e_s.png | Bin 0 -> 703 bytes classwx_f_q_d_n_list_validator-members.html | 85 + classwx_f_q_d_n_list_validator.html | 135 ++ classwx_f_q_d_n_list_validator.png | Bin 0 -> 564 bytes classwx_f_q_d_n_validator-members.html | 85 + classwx_f_q_d_n_validator.html | 135 ++ classwx_f_q_d_n_validator.png | Bin 0 -> 528 bytes classwx_hex_validator-members.html | 81 + classwx_hex_validator.html | 115 + classwx_hex_validator.png | Bin 0 -> 973 bytes classwx_hex_validator_base-members.html | 83 + classwx_hex_validator_base.html | 162 ++ classwx_hex_validator_base.png | Bin 0 -> 671 bytes classwx_host_name_validator-members.html | 85 + classwx_host_name_validator.html | 135 ++ classwx_host_name_validator.png | Bin 0 -> 576 bytes classwx_object_with_data-members.html | 82 + classwx_object_with_data.html | 190 ++ classwx_object_with_data.png | Bin 0 -> 582 bytes classwx_persistent_aui_manager-members.html | 83 + classwx_persistent_aui_manager.html | 143 ++ classwx_persistent_aui_manager.png | Bin 0 -> 680 bytes classwx_persistent_t_l_w_ex-members.html | 82 + classwx_persistent_t_l_w_ex.html | 139 ++ classwx_persistent_t_l_w_ex.png | Bin 0 -> 1273 bytes closed.png | Bin 0 -> 132 bytes common_8h_source.html | 209 ++ comutils_8h_source.html | 108 + crypto_8h_source.html | 283 +++ dir_141f362699d66d8fa2d8101d8e9f0db9.html | 85 + dir_2fafa5ce03815a2bdea8d271fa718211.html | 112 + dir_66ccda734b8df6d1bfeadfb0d10c9c77.html | 85 + dir_68267d1309a1af8e8297ef4c3efbcdba.html | 85 + dir_6d69d241b042cee0e67e7676a2fe434a.html | 87 + dir_d44c64559bbebec7f509842c48db8b23.html | 85 + doc.png | Bin 0 -> 746 bytes doxygen.css | 1841 +++++++++++++++ doxygen.svg | 26 + dynsections.js | 121 + files.html | 100 + folderclosed.png | Bin 0 -> 616 bytes folderopen.png | Bin 0 -> 597 bytes framemanager_8h_source.html | 101 + functions.html | 208 ++ functions_func.html | 191 ++ functions_type.html | 75 + functions_vars.html | 86 + group__wx_extend.html | 2051 +++++++++++++++++ hex_8h_source.html | 174 ++ hierarchy.html | 109 + index.html | 75 + jquery.js | 35 + menu.js | 127 + menudata.js | 67 + modules.html | 80 + nav_f.png | Bin 0 -> 153 bytes nav_g.png | Bin 0 -> 95 bytes nav_h.png | Bin 0 -> 98 bytes object_8h_source.html | 114 + open.png | Bin 0 -> 123 bytes pch_8h_source.html | 113 + search/all_0.html | 37 + search/all_0.js | 5 + search/all_1.html | 37 + search/all_1.js | 5 + search/all_2.html | 37 + search/all_2.js | 5 + search/all_3.html | 37 + search/all_3.js | 9 + search/all_4.html | 37 + search/all_4.js | 7 + search/all_5.html | 37 + search/all_5.js | 9 + search/all_6.html | 37 + search/all_6.js | 4 + search/all_7.html | 37 + search/all_7.js | 17 + search/all_8.html | 37 + search/all_8.js | 11 + search/all_9.html | 37 + search/all_9.js | 4 + search/all_a.html | 37 + search/all_a.js | 6 + search/all_b.html | 37 + search/all_b.js | 11 + search/all_c.html | 37 + search/all_c.js | 7 + search/all_d.html | 37 + search/all_d.js | 4 + search/all_e.html | 37 + search/all_e.js | 84 + search/all_f.html | 37 + search/all_f.js | 8 + search/classes_0.html | 37 + search/classes_0.js | 22 + search/close.svg | 31 + search/enums_0.html | 37 + search/enums_0.js | 6 + search/enumvalues_0.html | 37 + search/enumvalues_0.js | 4 + search/enumvalues_1.html | 37 + search/enumvalues_1.js | 4 + search/enumvalues_2.html | 37 + search/enumvalues_2.js | 4 + search/enumvalues_3.html | 37 + search/enumvalues_3.js | 5 + search/enumvalues_4.html | 37 + search/enumvalues_4.js | 5 + search/enumvalues_5.html | 37 + search/enumvalues_5.js | 4 + search/functions_0.html | 37 + search/functions_0.js | 5 + search/functions_1.html | 37 + search/functions_1.js | 4 + search/functions_2.html | 37 + search/functions_2.js | 9 + search/functions_3.html | 37 + search/functions_3.js | 7 + search/functions_4.html | 37 + search/functions_4.js | 9 + search/functions_5.html | 37 + search/functions_5.js | 5 + search/functions_6.html | 37 + search/functions_6.js | 11 + search/functions_7.html | 37 + search/functions_7.js | 4 + search/functions_8.html | 37 + search/functions_8.js | 4 + search/functions_9.html | 37 + search/functions_9.js | 9 + search/functions_a.html | 37 + search/functions_a.js | 6 + search/functions_b.html | 37 + search/functions_b.js | 4 + search/functions_c.html | 37 + search/functions_c.js | 43 + search/functions_d.html | 37 + search/functions_d.js | 8 + search/groups_0.html | 37 + search/groups_0.js | 4 + search/mag_sel.svg | 74 + search/nomatches.html | 13 + search/search.css | 263 +++ search/search.js | 794 +++++++ search/search_l.png | Bin 0 -> 567 bytes search/search_m.png | Bin 0 -> 158 bytes search/search_r.png | Bin 0 -> 553 bytes search/searchdata.js | 36 + search/typedefs_0.html | 37 + search/typedefs_0.js | 4 + search/variables_0.html | 37 + search/variables_0.js | 15 + splitbar.png | Bin 0 -> 314 bytes sync_off.png | Bin 0 -> 853 bytes sync_on.png | Bin 0 -> 845 bytes tab_a.png | Bin 0 -> 142 bytes tab_b.png | Bin 0 -> 169 bytes tab_h.png | Bin 0 -> 177 bytes tab_s.png | Bin 0 -> 184 bytes tabs.css | 1 + tlwgeom_8h_source.html | 415 ++++ toplevel_8h_source.html | 154 ++ url_8h_source.html | 192 ++ valhex_8h_source.html | 167 ++ valnet_8h_source.html | 186 ++ xml_8h_source.html | 173 ++ 197 files changed, 18292 insertions(+) create mode 100644 .nojekyll create mode 100644 annotated.html create mode 100644 appbar_8h_source.html create mode 100644 auimanager_8h_source.html create mode 100644 bc_s.png create mode 100644 bdwn.png create mode 100644 classes.html create mode 100644 classwx_app_bar-members.html create mode 100644 classwx_app_bar.html create mode 100644 classwx_app_bar.png create mode 100644 classwx_app_bar_dialog-members.html create mode 100644 classwx_app_bar_dialog.html create mode 100644 classwx_app_bar_dialog.png create mode 100644 classwx_app_bar_frame-members.html create mode 100644 classwx_app_bar_frame.html create mode 100644 classwx_app_bar_frame.png create mode 100644 classwx_co_initializer-members.html create mode 100644 classwx_co_initializer.html create mode 100644 classwx_crypto_hash-members.html create mode 100644 classwx_crypto_hash.html create mode 100644 classwx_crypto_hash.png create mode 100644 classwx_crypto_hash_s_h_a1-members.html create mode 100644 classwx_crypto_hash_s_h_a1.html create mode 100644 classwx_crypto_hash_s_h_a1.png create mode 100644 classwx_crypto_key-members.html create mode 100644 classwx_crypto_key.html create mode 100644 classwx_crypto_session-members.html create mode 100644 classwx_crypto_session.html create mode 100644 classwx_crypto_session.png create mode 100644 classwx_crypto_session_r_s_a_a_e_s-members.html create mode 100644 classwx_crypto_session_r_s_a_a_e_s.html create mode 100644 classwx_crypto_session_r_s_a_a_e_s.png create mode 100644 classwx_f_q_d_n_list_validator-members.html create mode 100644 classwx_f_q_d_n_list_validator.html create mode 100644 classwx_f_q_d_n_list_validator.png create mode 100644 classwx_f_q_d_n_validator-members.html create mode 100644 classwx_f_q_d_n_validator.html create mode 100644 classwx_f_q_d_n_validator.png create mode 100644 classwx_hex_validator-members.html create mode 100644 classwx_hex_validator.html create mode 100644 classwx_hex_validator.png create mode 100644 classwx_hex_validator_base-members.html create mode 100644 classwx_hex_validator_base.html create mode 100644 classwx_hex_validator_base.png create mode 100644 classwx_host_name_validator-members.html create mode 100644 classwx_host_name_validator.html create mode 100644 classwx_host_name_validator.png create mode 100644 classwx_object_with_data-members.html create mode 100644 classwx_object_with_data.html create mode 100644 classwx_object_with_data.png create mode 100644 classwx_persistent_aui_manager-members.html create mode 100644 classwx_persistent_aui_manager.html create mode 100644 classwx_persistent_aui_manager.png create mode 100644 classwx_persistent_t_l_w_ex-members.html create mode 100644 classwx_persistent_t_l_w_ex.html create mode 100644 classwx_persistent_t_l_w_ex.png create mode 100644 closed.png create mode 100644 common_8h_source.html create mode 100644 comutils_8h_source.html create mode 100644 crypto_8h_source.html create mode 100644 dir_141f362699d66d8fa2d8101d8e9f0db9.html create mode 100644 dir_2fafa5ce03815a2bdea8d271fa718211.html create mode 100644 dir_66ccda734b8df6d1bfeadfb0d10c9c77.html create mode 100644 dir_68267d1309a1af8e8297ef4c3efbcdba.html create mode 100644 dir_6d69d241b042cee0e67e7676a2fe434a.html create mode 100644 dir_d44c64559bbebec7f509842c48db8b23.html create mode 100644 doc.png create mode 100644 doxygen.css create mode 100644 doxygen.svg create mode 100644 dynsections.js create mode 100644 files.html create mode 100644 folderclosed.png create mode 100644 folderopen.png create mode 100644 framemanager_8h_source.html create mode 100644 functions.html create mode 100644 functions_func.html create mode 100644 functions_type.html create mode 100644 functions_vars.html create mode 100644 group__wx_extend.html create mode 100644 hex_8h_source.html create mode 100644 hierarchy.html create mode 100644 index.html create mode 100644 jquery.js create mode 100644 menu.js create mode 100644 menudata.js create mode 100644 modules.html create mode 100644 nav_f.png create mode 100644 nav_g.png create mode 100644 nav_h.png create mode 100644 object_8h_source.html create mode 100644 open.png create mode 100644 pch_8h_source.html create mode 100644 search/all_0.html create mode 100644 search/all_0.js create mode 100644 search/all_1.html create mode 100644 search/all_1.js create mode 100644 search/all_2.html create mode 100644 search/all_2.js create mode 100644 search/all_3.html create mode 100644 search/all_3.js create mode 100644 search/all_4.html create mode 100644 search/all_4.js create mode 100644 search/all_5.html create mode 100644 search/all_5.js create mode 100644 search/all_6.html create mode 100644 search/all_6.js create mode 100644 search/all_7.html create mode 100644 search/all_7.js create mode 100644 search/all_8.html create mode 100644 search/all_8.js create mode 100644 search/all_9.html create mode 100644 search/all_9.js create mode 100644 search/all_a.html create mode 100644 search/all_a.js create mode 100644 search/all_b.html create mode 100644 search/all_b.js create mode 100644 search/all_c.html create mode 100644 search/all_c.js create mode 100644 search/all_d.html create mode 100644 search/all_d.js create mode 100644 search/all_e.html create mode 100644 search/all_e.js create mode 100644 search/all_f.html create mode 100644 search/all_f.js create mode 100644 search/classes_0.html create mode 100644 search/classes_0.js create mode 100644 search/close.svg create mode 100644 search/enums_0.html create mode 100644 search/enums_0.js create mode 100644 search/enumvalues_0.html create mode 100644 search/enumvalues_0.js create mode 100644 search/enumvalues_1.html create mode 100644 search/enumvalues_1.js create mode 100644 search/enumvalues_2.html create mode 100644 search/enumvalues_2.js create mode 100644 search/enumvalues_3.html create mode 100644 search/enumvalues_3.js create mode 100644 search/enumvalues_4.html create mode 100644 search/enumvalues_4.js create mode 100644 search/enumvalues_5.html create mode 100644 search/enumvalues_5.js create mode 100644 search/functions_0.html create mode 100644 search/functions_0.js create mode 100644 search/functions_1.html create mode 100644 search/functions_1.js create mode 100644 search/functions_2.html create mode 100644 search/functions_2.js create mode 100644 search/functions_3.html create mode 100644 search/functions_3.js create mode 100644 search/functions_4.html create mode 100644 search/functions_4.js create mode 100644 search/functions_5.html create mode 100644 search/functions_5.js create mode 100644 search/functions_6.html create mode 100644 search/functions_6.js create mode 100644 search/functions_7.html create mode 100644 search/functions_7.js create mode 100644 search/functions_8.html create mode 100644 search/functions_8.js create mode 100644 search/functions_9.html create mode 100644 search/functions_9.js create mode 100644 search/functions_a.html create mode 100644 search/functions_a.js create mode 100644 search/functions_b.html create mode 100644 search/functions_b.js create mode 100644 search/functions_c.html create mode 100644 search/functions_c.js create mode 100644 search/functions_d.html create mode 100644 search/functions_d.js create mode 100644 search/groups_0.html create mode 100644 search/groups_0.js create mode 100644 search/mag_sel.svg create mode 100644 search/nomatches.html create mode 100644 search/search.css create mode 100644 search/search.js create mode 100644 search/search_l.png create mode 100644 search/search_m.png create mode 100644 search/search_r.png create mode 100644 search/searchdata.js create mode 100644 search/typedefs_0.html create mode 100644 search/typedefs_0.js create mode 100644 search/variables_0.html create mode 100644 search/variables_0.js create mode 100644 splitbar.png create mode 100644 sync_off.png create mode 100644 sync_on.png create mode 100644 tab_a.png create mode 100644 tab_b.png create mode 100644 tab_h.png create mode 100644 tab_s.png create mode 100644 tabs.css create mode 100644 tlwgeom_8h_source.html create mode 100644 toplevel_8h_source.html create mode 100644 url_8h_source.html create mode 100644 valhex_8h_source.html create mode 100644 valnet_8h_source.html create mode 100644 xml_8h_source.html diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/annotated.html b/annotated.html new file mode 100644 index 0000000..f1ded54 --- /dev/null +++ b/annotated.html @@ -0,0 +1,96 @@ + + + + + + + +wxExtend: Class List + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Class List
+
+
+
Here are the classes, structs, unions and interfaces with brief descriptions:
+ + + + + + + + + + + + + + + + + + +
 CwxAppBarDockable application bar template
 CwxAppBarDialogDockable application bar dialog
 CwxAppBarFrameDockable application bar frame
 CwxCoInitializerCreate an object of this class on stack to initialize/cleanup the COM automatically
 CwxCryptoHashCryptographics Hash Base
 CwxCryptoHashSHA1SHA-1 Cryptographics Hash
 CwxCryptoKeyCryptographics Key Base
 CwxCryptoSessionCryptographics Session Base Class
 CwxCryptoSessionRSAAESRSA AES Cryptographics Session
 CwxFQDNListValidatorValidator for FQDN lists
 CwxFQDNValidatorValidator for FQDN
 CwxHexValidatorValidator for hexadecimal entries
 CwxHexValidatorBaseBase class for hexadecimal validator
 CwxHostNameValidatorValidator for host name
 CwxObjectWithDataHelper template for event user data
 CwxPersistentAuiManagerSupports saving/restoring wxAuiManager state
 CwxPersistentTLWExSupports saving/restoring wxTopLevelWindow state
+
+
+ + + + diff --git a/appbar_8h_source.html b/appbar_8h_source.html new file mode 100644 index 0000000..ff76ec7 --- /dev/null +++ b/appbar_8h_source.html @@ -0,0 +1,1559 @@ + + + + + + + +wxExtend: include/wxex/appbar.h Source File + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
appbar.h
+
+
+
1/*
+
2 ​​SPDX-License-Identifier: GPL-3.0-or-later
+
3 Copyright © 2015-2022 Amebis
+
4 Copyright © 2016 GÉANT
+
5 Based on code written by Jeffrey Richter.
+
6*/
+
7
+
8#pragma once
+
9
+
10#include "common.h"
+
11
+
12#include <codeanalysis\warnings.h>
+
13#pragma warning(push)
+
14#pragma warning(disable: WXWIDGETS_CODE_ANALYSIS_WARNINGS)
+
15#include <wx/dialog.h>
+
16#include <wx/frame.h>
+
17#include <wx/string.h>
+
18#pragma warning(pop)
+
19
+
20#include <Windowsx.h>
+
21#include <shellapi.h>
+
22#include <ShlObj.h>
+
23
+
24
+
27
+
31#define wxABT_AUTOHIDETIMERID 1
+
32
+
36#define wxABT_AUTOHIDETIME 300
+
37
+
41#define wxABT_AUTOHIDETIMERINTERVAL 3000
+
42
+
52#define WM_AB_NOTIFY 0x6f00
+
53
+
54
+
58enum class wxAppBarState {
+
59 UNKNOWN = -2,
+
60 FLOAT = -1,
+
61 LEFT = ABE_LEFT,
+
62 TOP = ABE_TOP,
+
63 RIGHT = ABE_RIGHT,
+
64 BOTTOM = ABE_BOTTOM,
+
65};
+
66
+
67
+
71#define wxABF_ALLOWFLOAT (1 << 0)
+
72#define wxABF_ALLOWDOCKTOP (1 << 1)
+
73#define wxABF_ALLOWDOCKBOTTOM (1 << 2)
+
74#define wxABF_ALLOWDOCKLEFT (1 << 3)
+
75#define wxABF_ALLOWDOCKRIGHT (1 << 4)
+
76#define wxABF_ALLOWDOCKANY (wxABF_ALLOWDOCKTOP | wxABF_ALLOWDOCKBOTTOM | wxABF_ALLOWDOCKLEFT | wxABF_ALLOWDOCKRIGHT)
+
77#define wxABF_ALLOWDOCKHORIZONTAL (wxABF_ALLOWDOCKTOP | wxABF_ALLOWDOCKBOTTOM)
+
78#define wxABF_ALLOWDOCKVERTICAL (wxABF_ALLOWDOCKLEFT | wxABF_ALLOWDOCKRIGHT)
+
79#define wxABF_ALLOWANY (wxABF_ALLOWFLOAT | wxABF_ALLOWDOCKANY)
+
80
+
81#define wxABF_ALWAYSONTOP (1 << 5)
+
82#define wxABF_ALWAYSONTOPTASKBAR (1 << 6)
+
83
+
84#define wxABF_AUTOHIDE (1 << 7)
+
85#define wxABF_AUTOHIDETASKBAR (1 << 8)
+
86
+
87#define wxABF_ALLOWSIZING (1 << 9)
+
88
+
89#define wxABF_HIDETASKBARTABWHENFLOATING (1 << 10)
+
90#define wxABF_HIDETASKBARTABWHENDOCKED (1 << 11)
+
91#define wxABF_ALWAYSHIDETASKBARTAB (wxABF_HIDETASKBARTABWHENFLOATING | wxABF_HIDETASKBARTABWHENDOCKED)
+
92
+
93// Internal flags
+
94#define wxABF_FULLSCREENAPPOPEN (1 << 12)
+
95#define wxABF_AUTOHIDDEN (1 << 13)
+
96
+
97
+
101template <class W>
+
102class wxAppBar : public W
+
103{
+
104public:
+ +
109
+
113 virtual ~wxAppBar();
+
114
+
115protected:
+
117 void PreCreate(wxAppBarState& state, int& flags, const wxSize& size, long& style);
+
119
+
120public:
+
123
+
127 inline wxAppBarState GetState() const;
+
128
+
136 inline bool IsAlwaysOnTop() const;
+
137
+
143 inline bool SetAlwaysOnTop(bool alwaysOnTop = true);
+
144
+
152 inline bool IsAutoHide() const;
+
153
+
159 inline bool SetAutoHide(bool autoHide = true);
+
160
+
168 inline bool GetAllowSizing() const;
+
169
+
175 inline bool SetAllowSizing(bool allow = true);
+
176
+
183 inline bool GetAutoHidden() const;
+
184
+
185 //bool GetAppBarPlacement(LPAPPBARPLACEMENT lpPlacement) const;
+
186 //bool SetAppBarPlacement(LPCAPPBARPLACEMENT lpPlacement);
+
187
+
194 void MinimiseToEdge(wxAppBarState edge, wxWindow* wnd = NULL);
+
195
+
201 void MaximiseFromEdge(_In_opt_ const RECT* rect = NULL);
+
202
+
208 void MaximiseFromEdge(_In_ wxWindow *wnd);
+
209
+
215 void ShowAutoHideAppBar(bool show = true);
+
216
+
220 inline void HideAutoHideAppBar() { ShowAutoHideAppBar(false); }
+
221
+
223
+
224protected:
+
227
+
235 virtual void OnChangeState(wxAppBarState stateNew);
+
236
+
244 virtual void OnChangeTaskBarState(UINT_PTR state);
+
245
+
253 virtual void OnWindowsArrange(bool beginning);
+
254
+
260 virtual void OnAutoHideDenied();
+
261
+
263
+
264protected:
+
266 virtual WXLRESULT MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam);
+
268
+
269private:
+
271 inline _Success_(return != 0) bool DockAppBar(_In_ wxAppBarState state);
+
272 inline _Success_(return != 0) bool UndockAppBar();
+
273 inline _Success_(return != 0) bool RegisterAutoHide(_In_ wxAppBarState state);
+
274 inline _Success_(return != 0) bool UnregisterAutoHide(_In_ wxAppBarState state);
+
275 inline _Success_(return != 0) bool GetDockedRect(_In_ wxAppBarState state, _Out_ LPRECT rect) const;
+
276 inline _Success_(return != 0) bool GetAutoHideRect(_In_ wxAppBarState state, _In_ bool bAutoHidden, _Out_ LPRECT rect) const;
+
278
+
279protected:
+ + + +
283
+ + + +
287
+
288 UINT_PTR m_stateTaskBar;
+
289 UINT_PTR m_timerID;
+
290
+
291 ITaskbarList *m_taskbarList;
+
292};
+
293
+
294
+
295#ifdef __VISUALC__
+
296// non dll-interface class 'xxx' used as base for dll-interface class 'yyy'
+
297#pragma warning (push)
+
298#pragma warning (disable:4275)
+
299#endif
+
300
+
304class WXEXTEND_API wxAppBarFrame : public wxAppBar<wxFrame>
+
305{
+
306public:
+ +
311
+
315 wxAppBarFrame(wxWindow *parent,
+
316 wxWindowID id,
+
317 const wxString& title,
+ +
319 int flags = wxABF_ALLOWANY,
+
320 const wxPoint& pos = wxDefaultPosition,
+
321 const wxSize& size = wxDefaultSize,
+
322 long style = wxDEFAULT_FRAME_STYLE,
+
323 const wxString& name = wxFrameNameStr);
+
324
+
328 bool Create(wxWindow *parent,
+
329 wxWindowID id,
+
330 const wxString& title,
+ +
332 int flags = wxABF_ALLOWANY,
+
333 const wxPoint& pos = wxDefaultPosition,
+
334 const wxSize& size = wxDefaultSize,
+
335 long style = wxDEFAULT_FRAME_STYLE,
+
336 const wxString& name = wxFrameNameStr);
+
337};
+
338
+
339
+
343class WXEXTEND_API wxAppBarDialog : public wxAppBar<wxDialog>
+
344{
+
345public:
+ +
350
+
354 wxAppBarDialog(wxWindow *parent,
+
355 wxWindowID id,
+
356 const wxString& title,
+ +
358 int flags = wxABF_ALLOWANY,
+
359 const wxPoint& pos = wxDefaultPosition,
+
360 const wxSize& size = wxDefaultSize,
+
361 long style = wxDEFAULT_DIALOG_STYLE,
+
362 const wxString& name = wxDialogNameStr);
+
363
+
367 bool Create(wxWindow *parent,
+
368 wxWindowID id,
+
369 const wxString& title,
+ +
371 int flags = wxABF_ALLOWANY,
+
372 const wxPoint& pos = wxDefaultPosition,
+
373 const wxSize& size = wxDefaultSize,
+
374 long style = wxDEFAULT_DIALOG_STYLE,
+
375 const wxString& name = wxDialogNameStr);
+
376};
+
377
+
378#ifdef __VISUALC__
+
379#pragma warning(pop)
+
380#endif
+
381
+
382
+ +
393{
+
394 return wxAppBarState::LEFT <= state && state <= wxAppBarState::BOTTOM;
+
395}
+
396
+
397
+ +
408{
+
409 return state == wxAppBarState::LEFT || state == wxAppBarState::RIGHT;
+
410}
+
411
+
412
+ +
423{
+
424 return state == wxAppBarState::TOP || state == wxAppBarState::BOTTOM;
+
425}
+
426
+
427
+
437inline WXHWND wxAppBarGetZWnd(wxAppBarState state, int flags)
+
438{
+
439 if (flags & wxABF_FULLSCREENAPPOPEN) {
+
440 // If full screen app is open, clear the always-on-top flag.
+
441 return HWND_NOTOPMOST;
+
442 }
+
443
+
444 //_AFX_THREAD_STATE* pThreadState = AfxGetThreadState();
+
445 //if (::IsWindow(pThreadState->m_hTrackingWindow)) {
+
446 // // We're tracking another window/menu, position behind it.
+
447 // return pThreadState->m_hTrackingWindow;
+
448 // }
+
449
+
450 if (state == wxAppBarState::FLOAT) {
+
451 // When floating, decide according to the flags.
+
452 return (flags & wxABF_ALWAYSONTOP) ? HWND_TOPMOST : HWND_NOTOPMOST;
+
453 } else if (wxAppBarIsDocked(state)) {
+
454 if (flags & wxABF_AUTOHIDE) {
+
455 // Auto-hidden docked application bar is always on top.
+
456 return HWND_TOPMOST;
+
457 }
+
458
+
459 if (flags & wxABF_ALWAYSONTOP) {
+
460 // Regular docked always-on-top application bar.
+
461 WXHWND hWndTaskbar = ::FindWindow(_T("Shell_TrayWnd"), _T(""));
+
462 if (hWndTaskbar) {
+
463 // We found the taskbar window. Position directly after it. Otherwise our window overlaps Vista's Start button orb.
+
464 return hWndTaskbar;
+
465 } else {
+
466 // Only always-on-top windows are allowed to resize properly outside the desktop rect.
+
467 // If window is docked and not always on top, resizing a window to smaller size is obstructed by desktop rect limit.
+
468 return HWND_TOPMOST;
+
469 }
+
470 }
+
471
+
472
+
473 // Regular docked non-always-on-top application bar.
+
474 return HWND_NOTOPMOST;
+
475 } else {
+
476 // Unknown state. Do nothing.
+
477 wxFAIL_MSG(wxT("unknown application bar state"));
+
478 return HWND_TOP;
+
479 }
+
480}
+
481
+
482
+
491inline UINT_PTR wxAppBarGetTaskBarState()
+
492{
+
493 APPBARDATA abd = { sizeof(abd) };
+
494 return ::SHAppBarMessage(ABM_GETSTATE, &abd);
+
495}
+
496
+
497
+
499
+
501// wxAppBar
+
503
+
504template <class W>
+ +
506 m_state(wxAppBarState::UNKNOWN),
+ +
508 m_flags(0),
+ +
510 m_timerID(0),
+
511 m_taskbarList(NULL)
+
512{
+
513 m_sizeFloat .cx = -1;
+
514 m_sizeFloat .cy = -1;
+
515 m_sizeDocked.cx = -1;
+
516 m_sizeDocked.cy = -1;
+
517 m_sizeMin .cx = -1;
+
518 m_sizeMin .cy = -1;
+
519}
+
520
+
521
+
522template <class W>
+ +
524{
+
525 if (m_taskbarList)
+
526 m_taskbarList->Release();
+
527}
+
528
+
529
+
531template <class W>
+
532void wxAppBar<W>::PreCreate(wxAppBarState& state, int& flags, const wxSize& size, long& style)
+
533{
+
534 wxASSERT_MSG(!m_taskbarList || !m_timerID, wxT("application bar is already initialized"));
+
535
+
536 // Save initial floating window size.
+
537 m_sizeFloat.cx = size.x;
+
538 m_sizeFloat.cy = size.y;
+
539
+
540 // Save initial docked window width/height.
+
541 m_sizeDocked.cx = size.x;
+
542 m_sizeDocked.cy = size.y;
+
543
+
544 // Save initial state and flags.
+
545 m_state = state;
+
546 m_stateDesired = wxAppBarState::UNKNOWN;
+
547 m_flags = flags;
+
548
+
549 // If any taskbar list tab's hiding is in affect, set application bar's style as tool window to avoid being displayed on the taskbar initially.
+
550 if (state == wxAppBarState::FLOAT) {
+ +
552 // Hide our application bar's entry on the Windows's taskbar.
+
553 style |= wxFRAME_TOOL_WINDOW;
+
554 } else if (flags & wxABF_HIDETASKBARTABWHENDOCKED) {
+
555 // Show our application bar's entry on the Windows's taskbar.
+
556 style &= ~wxFRAME_TOOL_WINDOW;
+
557 }
+
558 } else if (wxAppBarIsDocked(state)) {
+
559 if (flags & wxABF_HIDETASKBARTABWHENDOCKED) {
+
560 // Hide our application bar's entry on the Windows's taskbar.
+
561 style |= wxFRAME_TOOL_WINDOW;
+
562 } else if (flags & wxABF_HIDETASKBARTABWHENFLOATING) {
+
563 // Show our application bar's entry on the Windows's taskbar.
+
564 style &= ~wxFRAME_TOOL_WINDOW;
+
565 }
+
566 } else {
+
567 // Unknown state.
+
568 wxFAIL_MSG(wxT("unknown application bar state"));
+
569 }
+
570
+
571 // Find the taskbar list's interface.
+
572 HRESULT hr = ::CoCreateInstance(CLSID_TaskbarList, NULL, CLSCTX_ALL, IID_ITaskbarList, (LPVOID*)&m_taskbarList);
+
573 if (SUCCEEDED(hr)) {
+
574 hr = m_taskbarList->HrInit();
+
575 if (FAILED(hr)) {
+
576 wxFAIL_MSG(wxString::Format(wxT("ITaskbarList::HrInit() failed 0x%x"), hr));
+
577 m_taskbarList->Release();
+
578 m_taskbarList = NULL;
+
579 }
+
580 } else
+
581 wxFAIL_MSG(wxString::Format(wxT("TaskbarList creation failed 0x%x"), hr));
+
582}
+
584
+
585
+
586template <class W>
+ +
588{
+
589 return m_stateDesired != wxAppBarState::UNKNOWN ? m_stateDesired : m_state;
+
590}
+
591
+
592
+
593template <class W>
+
594inline bool wxAppBar<W>::IsAlwaysOnTop() const
+
595{
+
596 return (m_flags & wxABF_ALWAYSONTOP) ? true : false;
+
597}
+
598
+
599
+
600template <class W>
+
601inline bool wxAppBar<W>::SetAlwaysOnTop(bool alwaysOnTop)
+
602{
+
603 if (alwaysOnTop)
+
604 m_flags |= wxABF_ALWAYSONTOP;
+
605 else
+
606 m_flags &= ~wxABF_ALWAYSONTOP;
+
607
+
608 if (::IsWindowVisible(m_hWnd)) {
+
609 // Set the Z-order.
+
610 wxCHECK(::SetWindowPos(m_hWnd, wxAppBarGetZWnd(m_state, m_flags), 0, 0, 0, 0, SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE | SWP_NOSENDCHANGING), false);
+
611 }
+
612
+
613 return true;
+
614}
+
615
+
616
+
617template <class W>
+
618inline bool wxAppBar<W>::IsAutoHide() const
+
619{
+
620 return (m_flags & wxABF_AUTOHIDE) ? true : false;
+
621}
+
622
+
623
+
624template <class W>
+
625inline bool wxAppBar<W>::SetAutoHide(bool autoHide)
+
626{
+
627 bool autoHidePrev = IsAutoHide();
+
628
+
629 if (autoHide)
+
630 m_flags |= wxABF_AUTOHIDE;
+
631 else
+
632 m_flags &= ~wxABF_AUTOHIDE;
+
633
+
634 if (autoHidePrev != autoHide && wxAppBarIsDocked(m_state) && ::IsWindowVisible(m_hWnd)) {
+
635 if (autoHide) {
+
636 // Application bar should be auto-hidden. Try to setup it so.
+
637
+
638 // We undock to free the space before registering auto-hide, otherwise system will leave application bar's space reserved.
+
639 UndockAppBar();
+
640
+
641 // Register auto-hide application bar.
+
642 if (!RegisterAutoHide(m_state)) {
+
643 // Auto-hide failed; some other application bar must be hidden on this edge already. Dock back instead.
+
644 DockAppBar(m_state);
+
645 return false;
+
646 }
+
647 } else {
+
648 // Unregister the auto-hidden application bar and dock.
+
649 UnregisterAutoHide(m_state);
+
650 DockAppBar(m_state);
+
651 }
+
652 }
+
653
+
654 return true;
+
655}
+
656
+
657
+
658template <class W>
+ +
660{
+
661 return (m_flags & wxABF_ALLOWSIZING) ? true : false;
+
662}
+
663
+
664
+
665template <class W>
+
666inline bool wxAppBar<W>::SetAllowSizing(bool allow)
+
667{
+
668 if (allow)
+
669 m_flags |= wxABF_ALLOWSIZING;
+
670 else
+
671 m_flags &= ~wxABF_ALLOWSIZING;
+
672
+
673 return true;
+
674}
+
675
+
676
+
677template <class W>
+
678inline bool wxAppBar<W>::GetAutoHidden() const
+
679{
+
680 return (m_flags & wxABF_AUTOHIDDEN) ? true : false;
+
681}
+
682
+
683
+
684//template <class W>
+
685//bool wxAppBar<W>::GetAppBarPlacement(LPAPPBARPLACEMENT lpPlacement) const
+
686//{
+
687// wxASSERT(lpPlacement);
+
688//
+
689// if (lpPlacement->dwSize >= sizeof(APPBARPLACEMENT1)) {
+
690// lpPlacement->dwState = (DWORD)m_state;
+
691// lpPlacement->dwFlags = m_flags;
+
692// if (m_state == wxAppBarState::FLOAT) {
+
693// // Current application bar's rect is floating rect.
+
694// lpPlacement->rcFloat = m_rect;
+
695// } else if (wxAppBarIsDocked(m_state)) {
+
696// // Application bar is docked. Calc floating rect from m_sizeFloat.
+
697// lpPlacement->rcFloat.left = 0;
+
698// lpPlacement->rcFloat.top = 0;
+
699// lpPlacement->rcFloat.right = m_sizeFloat.cx;
+
700// lpPlacement->rcFloat.bottom = m_sizeFloat.cy;
+
701// } else {
+
702// // Application bar's state is unknown.
+
703// return false;
+
704// }
+
705// lpPlacement->szDocked = m_sizeDocked;
+
706// }
+
707//
+
708// lpPlacement->dwSize = sizeof(*lpPlacement);
+
709//
+
710// return true;
+
711//}
+
712//
+
713//
+
714//template <class W>
+
715//bool wxAppBar<W>::SetAppBarPlacement(LPCAPPBARPLACEMENT lpPlacement)
+
716//{
+
717// wxASSERT(lpPlacement);
+
718//
+
719// if (lpPlacement->dwSize >= sizeof(APPBARPLACEMENT1)) {
+
720// if (lpPlacement->dwState != wxAppBarState::FLOAT && !wxAppBarIsDocked(lpPlacement->dwState)) {
+
721// // The state is unknown. Abort, before we mix up internal state.
+
722// return false;
+
723// }
+
724//
+
725// // Clean previous docking/auto-hide settings if required.
+
726// if (wxAppBarIsDocked(m_state) &&
+
727// (lpPlacement->dwState == wxAppBarState::FLOAT || lpPlacement->dwState != m_state && wxAppBarIsDocked(lpPlacement->dwState)))
+
728// {
+
729// if (IsAutoHide())
+
730// UnregisterAutoHide(m_state);
+
731// else if (lpPlacement->dwState == wxAppBarState::FLOAT)
+
732// UndockAppBar();
+
733// }
+
734//
+
735// // Update application bar's flags, size and position.
+
736// m_flags |= wxABF_POSITIONSET;
+
737// m_sizeDocked = lpPlacement->szDocked;
+
738// if (lpPlacement->dwState == wxAppBarState::FLOAT) {
+
739// m_rect = lpPlacement->rcFloat;
+
740// } else if (wxAppBarIsDocked(lpPlacement->dwState)) {
+
741// m_sizeFloat.cx = lpPlacement->rcFloat.right - lpPlacement->rcFloat.left;
+
742// m_sizeFloat.cy = lpPlacement->rcFloat.bottom - lpPlacement->rcFloat.top;
+
743// GetDockedRect(lpPlacement->dwState, &m_rect);
+
744// } else {
+
745// // Application bar's state is unknown.
+
746// wxFAIL;
+
747// return false;
+
748// }
+
749//
+
750// // Notify about the change of state.
+
751// OnChangeState(lpPlacement->dwState);
+
752// m_state = lpPlacement->dwState;
+
753//
+
754// SetAutoHide(lpPlacement->dwFlags & wxABF_AUTOHIDE);
+
755// SetAlwaysOnTop(lpPlacement->dwFlags & wxABF_ALWAYSONTOP);
+
756// }
+
757//
+
758// return true;
+
759//}
+
760
+
761
+
762template <class W>
+ +
764{
+
765 wxASSERT(wxAppBarIsDocked(edge));
+
766
+
767 WXHWND hWnd;
+
768 if (!wnd) {
+
769 // No other window was specified. Minimize ourself.
+
770 wnd = this;
+
771 hWnd = m_hWnd;
+
772 } else
+
773 hWnd = wnd->GetHWND();
+
774
+
775 // If our window is hidden, there's nothing we can do.
+
776 if (hWnd == m_hWnd && !::IsWindowVisible(m_hWnd))
+
777 return;
+
778
+
779 if (m_state == wxAppBarState::FLOAT) {
+
780 // Remember the last floating size.
+
781 RECT rect = {};
+
782 wxVERIFY(::GetWindowRect(hWnd, &rect));
+
783 m_sizeFloat.cx = rect.right - rect.left;
+
784 m_sizeFloat.cy = rect.bottom - rect.top;
+
785 }
+
786
+
787 RECT rectTo;
+
788 if (IsAutoHide())
+
789 GetAutoHideRect(edge, false, &rectTo);
+
790 else
+
791 GetDockedRect(edge, &rectTo);
+
792
+
793 if (::wxGetDoWndAnimation()) {
+
794 // Do the animation.
+
795 RECT rectFrom;
+
796 wxVERIFY(::GetWindowRect(hWnd, &rectFrom));
+
797 wxVERIFY(::DrawAnimatedRects(hWnd, IDANI_CAPTION, &rectFrom, &rectTo));
+
798 }
+
799
+
800 // Notify about the change of state.
+
801 OnChangeState(edge);
+
802 m_state = edge;
+
803
+
804 if (hWnd != m_hWnd) {
+
805 // Hide the source window.
+
806 wnd->Hide();
+
807 // ::SetWindowLong(hWnd, GWL_STYLE, GetWindowLong(hWnd, GWL_STYLE) &~ WS_VISIBLE);
+
808
+
809 // Show the application bar.
+
810 Show();
+
811 } else {
+
812 if (IsAutoHide()) {
+
813 // Register auto-hide application bar.
+
814 RegisterAutoHide(edge);
+
815 } else {
+
816 // Auto-hide failed or wasn't desired at all.
+
817 DockAppBar(edge);
+
818 }
+
819 }
+
820
+
821 ::SetActiveWindow(m_hWnd);
+
822}
+
823
+
824
+
825template <class W>
+
826void wxAppBar<W>::MaximiseFromEdge(_In_opt_ const RECT* rect)
+
827{
+
828 wxASSERT(::IsWindowVisible(m_hWnd));
+
829
+
830 RECT rectTo;
+
831
+
832 if (!rect) {
+
833 // Calculate the destination rect.
+
834 rectTo.left = (::GetSystemMetrics(SM_CXSCREEN) - m_sizeFloat.cx) / 2;
+
835 rectTo.top = (::GetSystemMetrics(SM_CYSCREEN) - m_sizeFloat.cy) / 2;
+
836 rectTo.right = rectTo.left + m_sizeFloat.cx;
+
837 rectTo.bottom = rectTo.top + m_sizeFloat.cy;
+
838
+
839 rect = &rectTo;
+
840 } else {
+
841 m_sizeFloat.cx = rect->right - rect->left;
+
842 m_sizeFloat.cy = rect->bottom - rect->top;
+
843 }
+
844
+
845 if (::wxGetDoWndAnimation()) {
+
846 // Do the animation.
+
847 RECT rectFrom;
+
848 wxVERIFY(::GetWindowRect(m_hWnd, &rectFrom));
+
849 wxVERIFY(::DrawAnimatedRects(m_hWnd, IDANI_CAPTION, &rectFrom, rect));
+
850 }
+
851
+
852 // Clean previous docking/auto-hide settings if required.
+
853 if (wxAppBarIsDocked(m_state)) {
+
854 if (IsAutoHide())
+
855 UnregisterAutoHide(m_state);
+
856 else
+
857 UndockAppBar();
+
858 }
+
859
+
860 // Notify about the change of state.
+
861 OnChangeState(wxAppBarState::FLOAT);
+
862 m_state = wxAppBarState::FLOAT;
+
863
+
864 wxVERIFY(::SetWindowPos(m_hWnd, wxAppBarGetZWnd(wxAppBarState::FLOAT, m_flags), rect->left, rect->top, rect->right - rect->left, rect->bottom - rect->top, SWP_NOACTIVATE | SWP_DRAWFRAME | SWP_FRAMECHANGED));
+
865}
+
866
+
867
+
868template <class W>
+
869void wxAppBar<W>::MaximiseFromEdge(_In_ wxWindow *wnd)
+
870{
+
871 wxASSERT(wnd);
+
872 wxASSERT(::IsWindowVisible(m_hWnd));
+
873
+
874 WXHWND hWnd = wnd->GetHWND();
+
875
+
876 RECT rectTo = {};
+
877 wxVERIFY(::GetWindowRect(hWnd, &rectTo));
+
878 m_sizeFloat.cx = rectTo.right - rectTo.left;
+
879 m_sizeFloat.cy = rectTo.bottom - rectTo.top;
+
880
+
881 if (::wxGetDoWndAnimation()) {
+
882 // Do the animation.
+
883 RECT rectFrom;
+
884 wxVERIFY(::GetWindowRect(m_hWnd, &rectFrom));
+
885 wxVERIFY(::DrawAnimatedRects(hWnd, IDANI_CAPTION, &rectFrom, &rectTo));
+
886 }
+
887
+
888 // Hide our window and show the destination window.
+
889 Hide();
+
890 wnd->Show();
+
891 // ::SetWindowLong(hWnd, GWL_STYLE, GetWindowLong(hWnd, GWL_STYLE) | WS_VISIBLE);
+
892 wxVERIFY(::SetForegroundWindow(hWnd));
+
893 ::SetActiveWindow(hWnd);
+
894 // wxVERIFY(::RedrawWindow(hWnd, NULL, NULL, RDW_UPDATENOW | RDW_ALLCHILDREN | RDW_FRAME | RDW_INVALIDATE | RDW_ERASE));
+
895}
+
896
+
897
+
898template <class W>
+ +
900{
+
901 RECT rcEnd;
+
902 bool
+
903 bFullDragOn,
+
904 bHidden = GetAutoHidden(),
+
905 bVisible = ::IsWindowVisible(m_hWnd) ? true : false;
+
906
+
907 if (!IsAutoHide() || bHidden != show) {
+
908 // We're not setup for auto-hide or already in the desired state.
+
909 return;
+
910 }
+
911
+
912 // Get our end window location.
+
913 GetAutoHideRect(m_state, !bHidden, &rcEnd);
+
914
+
915 if (bVisible) {
+
916 RECT rcStart;
+
917
+
918 // Only slide the window if the user has FullDrag turned on.
+
919 if (!::SystemParametersInfo(SPI_GETDRAGFULLWINDOWS, 0, &bFullDragOn, 0))
+
920 bFullDragOn = false;
+
921
+
922 // Get our start window location.
+
923 GetAutoHideRect(m_state, bHidden, &rcStart);
+
924
+
925 if (bFullDragOn && (rcStart.left != rcEnd.left || rcStart.top != rcEnd.top || rcStart.right != rcEnd.right || rcStart.bottom != rcEnd.bottom)) {
+
926 #pragma warning(push)
+
927 #pragma warning(disable: 28159)
+
928
+
929 // Get our starting and ending time.
+
930 DWORD dwTimeStart = ::GetTickCount();
+
931 DWORD dwTimeElapsed;
+
932 RECT rcDelta;
+
933
+
934 // Calculate difference between ending and starting rectangle.
+
935 rcDelta.left = rcEnd.left - rcStart.left;
+
936 rcDelta.top = rcEnd.top - rcStart.top;
+
937 rcDelta.right = rcEnd.right - rcStart.right;
+
938 rcDelta.bottom = rcEnd.bottom - rcStart.bottom;
+
939
+
940 while ((dwTimeElapsed = ::GetTickCount() - dwTimeStart) < wxABT_AUTOHIDETIME) {
+
941 // Do the linear interpolation.
+
942 RECT rect;
+
943 rect.left = rcStart.left + ::MulDiv(rcDelta.left, dwTimeElapsed, wxABT_AUTOHIDETIME);
+
944 rect.top = rcStart.top + ::MulDiv(rcDelta.top, dwTimeElapsed, wxABT_AUTOHIDETIME);
+
945 rect.right = rcStart.right + ::MulDiv(rcDelta.right, dwTimeElapsed, wxABT_AUTOHIDETIME);
+
946 rect.bottom = rcStart.bottom + ::MulDiv(rcDelta.bottom, dwTimeElapsed, wxABT_AUTOHIDETIME);
+
947
+
948 // Show the window at its changed position
+
949 wxVERIFY(::SetWindowPos(m_hWnd, NULL, rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top, SWP_NOZORDER | SWP_NOACTIVATE));
+
950 wxVERIFY(::UpdateWindow(m_hWnd));
+
951 }
+
952
+
953 #pragma warning(pop)
+
954 }
+
955 }
+
956
+
957 if (show)
+
958 m_flags &= ~wxABF_AUTOHIDDEN;
+
959 else
+
960 m_flags |= wxABF_AUTOHIDDEN;
+
961
+
962 if (bVisible) {
+
963 wxVERIFY(::SetWindowPos(m_hWnd, NULL, rcEnd.left, rcEnd.top, rcEnd.right - rcEnd.left, rcEnd.bottom - rcEnd.top, SWP_NOZORDER | SWP_NOACTIVATE));
+
964 wxVERIFY(::UpdateWindow(m_hWnd));
+
965 // Reset auto-hide timer.
+
966 m_timerID = ::SetTimer(m_hWnd, wxABT_AUTOHIDETIMERID, wxABT_AUTOHIDETIMERINTERVAL, NULL);
+
967 }
+
968}
+
969
+
970
+
971template <class W>
+ +
973{
+
974 if (stateNew == wxAppBarState::FLOAT) {
+
975 if (m_flags & wxABF_HIDETASKBARTABWHENFLOATING) {
+
976 // Hide our application bar's entry on the Windows's taskbar.
+
977 wxModifyStyleEx(m_hWnd, 0, WS_EX_TOOLWINDOW);
+
978 if (m_taskbarList)
+
979 wxVERIFY(SUCCEEDED(m_taskbarList->DeleteTab(m_hWnd)));
+
980 } else if (m_flags & wxABF_HIDETASKBARTABWHENDOCKED) {
+
981 // Show our application bar's entry on the Windows's taskbar.
+
982 wxModifyStyleEx(m_hWnd, WS_EX_TOOLWINDOW, 0);
+
983 if (m_taskbarList)
+
984 wxVERIFY(SUCCEEDED(m_taskbarList->AddTab(m_hWnd)));
+
985 }
+
986 } else if (wxAppBarIsDocked(stateNew)) {
+
987 if (m_flags & wxABF_HIDETASKBARTABWHENDOCKED) {
+
988 // Hide our application bar's entry on the Windows's taskbar.
+
989 wxModifyStyleEx(m_hWnd, 0, WS_EX_TOOLWINDOW);
+
990 if (m_taskbarList)
+
991 wxVERIFY(SUCCEEDED(m_taskbarList->DeleteTab(m_hWnd)));
+
992 } else if (m_flags & wxABF_HIDETASKBARTABWHENFLOATING) {
+
993 // Show our application bar's entry on the Windows's taskbar.
+
994 wxModifyStyleEx(m_hWnd, WS_EX_TOOLWINDOW, 0);
+
995 if (m_taskbarList)
+
996 wxVERIFY(SUCCEEDED(m_taskbarList->AddTab(m_hWnd)));
+
997 }
+
998 } else {
+
999 // Unknown state.
+
1000 wxFAIL_MSG(wxT("unknown application bar state"));
+
1001 }
+
1002}
+
1003
+
1004
+
1005template <class W>
+ +
1007{
+
1008 if (state != m_stateTaskBar) {
+
1009 // No change, no fun.
+
1010 return;
+
1011 }
+
1012
+
1013 if ((m_flags & wxABF_ALWAYSONTOPTASKBAR) &&
+
1014 (m_stateTaskBar & ABS_ALWAYSONTOP) != (state & ABS_ALWAYSONTOP)) {
+
1015 // Always-on-top state of the taskbar changed and we're supposed to mimic it.
+
1016 SetAlwaysOnTop((state & ABS_ALWAYSONTOP) ? true : false);
+
1017 }
+
1018
+
1019 if ((m_flags & wxABF_AUTOHIDETASKBAR) &&
+
1020 (m_stateTaskBar & ABS_AUTOHIDE) != (state & ABS_AUTOHIDE)) {
+
1021 // Auto-hide state of the taskbar changed and we're supposed to mimic it.
+
1022 SetAutoHide((state & ABS_AUTOHIDE) ? true : false);
+
1023 }
+
1024
+
1025 // Remember the state.
+
1026 m_stateTaskBar = state;
+
1027}
+
1028
+
1029
+
1030template <class W>
+
1031void wxAppBar<W>::OnWindowsArrange(bool WXUNUSED(beginning))
+
1032{
+
1033}
+
1034
+
1035
+
1036template <class W>
+ +
1038{
+
1039 wxMessageBox(_("There is already an auto hidden bar on this edge.\nOnly one auto hidden bar is allowed on each edge.\nAuto-hide feature is now off."), _("Warning"), wxOK | wxICON_WARNING, this);
+
1040}
+
1041
+
1042
+
1044template <class W>
+
1045WXLRESULT wxAppBar<W>::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam)
+
1046{
+
1047 switch (message) {
+
1048 case WM_CREATE: {
+
1049 WXLRESULT lResult = W::MSWWindowProc(message, wParam, lParam);
+
1050
+
1051 // Register our application bar.
+
1052 APPBARDATA abd = { sizeof(abd), m_hWnd, WM_AB_NOTIFY, static_cast<UINT>(m_state) };
+
1053 wxCHECK(::SHAppBarMessage(ABM_NEW, &abd), false);
+
1054
+
1055 // Get the state of the Windows taskbar.
+
1056 m_stateTaskBar = wxAppBarGetTaskBarState();
+
1057
+
1058 if (m_flags & wxABF_AUTOHIDETASKBAR) {
+
1059 // Mimic the auto-hide state of taskbar.
+
1060 SetAutoHide((m_stateTaskBar & ABS_AUTOHIDE) ? true : false);
+
1061 }
+
1062
+
1063 if (m_flags & wxABF_ALWAYSONTOPTASKBAR) {
+
1064 // Mimic the always-on-top state of taskbar.
+
1065 SetAlwaysOnTop((m_stateTaskBar & ABS_ALWAYSONTOP) ? true : false);
+
1066 }
+
1067
+
1068 return lResult;
+
1069 }
+
1070
+
1071 case WM_DESTROY: {
+
1072 wxASSERT_MSG(m_timerID == 0, wxT("timer still active"));
+
1073
+
1074 // Remove the application bar.
+
1075 APPBARDATA abd = { sizeof(abd), m_hWnd };
+
1076 wxVERIFY(::SHAppBarMessage(ABM_REMOVE, &abd));
+
1077
+
1078 return W::MSWWindowProc(message, wParam, lParam);
+
1079 }
+
1080
+
1081 case WM_SHOWWINDOW:
+
1082 if (wParam) {
+
1083 // Do the false change of state notification, to allow initialization.
+
1084 OnChangeState(m_state);
+
1085
+
1086 if (wxAppBarIsDocked(m_state)) {
+
1087 if (IsAutoHide()) {
+
1088 // Register auto-hide application bar.
+
1089 RegisterAutoHide(m_state);
+
1090 } else {
+
1091 // Auto-hide failed or wasn't desired at all.
+
1092 DockAppBar(m_state);
+
1093 }
+
1094 }
+
1095
+
1096 // We're all set. Show the window now.
+
1097 return W::MSWWindowProc(message, wParam, lParam);
+
1098 } else {
+
1099 // Hide the window first, to avoid flicker.
+
1100 WXLRESULT lResult = W::MSWWindowProc(message, wParam, lParam);
+
1101
+
1102 // Clean previous docking/auto-hide settings if required.
+
1103 if (wxAppBarIsDocked(m_state)) {
+
1104 if (IsAutoHide())
+
1105 UnregisterAutoHide(m_state);
+
1106 else
+
1107 UndockAppBar();
+
1108 }
+
1109
+
1110 return lResult;
+
1111 }
+
1112
+
1113 case WM_WINDOWPOSCHANGING: {
+
1114 if (m_state != m_stateDesired && wxAppBarIsDocked(m_stateDesired)) {
+
1115 wxASSERT(lParam);
+
1116 LPWINDOWPOS lpwndpos = (LPWINDOWPOS)lParam;
+
1117 if (lpwndpos) {
+
1118 // When about to get docked, fix position and size to avoid Aero Snap interfering with window size.
+
1119 RECT rect;
+
1120 GetDockedRect(m_stateDesired, &rect);
+
1121 lpwndpos->x = rect.left;
+
1122 lpwndpos->y = rect.top;
+
1123 lpwndpos->cx = rect.right - rect.left;
+
1124 lpwndpos->cy = rect.bottom - rect.top;
+
1125 lpwndpos->flags &= ~(SWP_NOMOVE | SWP_NOSIZE);
+
1126 }
+
1127 }
+
1128
+
1129 return W::MSWWindowProc(message, wParam, lParam);
+
1130 }
+
1131
+
1132 case WM_WINDOWPOSCHANGED: {
+
1133 WXLRESULT lResult = W::MSWWindowProc(message, wParam, lParam);
+
1134
+
1135 if (wxAppBarIsDocked(m_state)) {
+
1136 // When our window changes position, tell the Shell so that any
+
1137 // auto-hidden application bar on our edge stays on top of our window making it
+
1138 // always accessible to the user.
+
1139 APPBARDATA abd = { sizeof(abd), m_hWnd };
+
1140 wxVERIFY(::SHAppBarMessage(ABM_WINDOWPOSCHANGED, &abd));
+
1141 }
+
1142
+
1143 return lResult;
+
1144 }
+
1145
+
1146 case WM_ENTERSIZEMOVE:
+
1147 m_stateDesired = m_state;
+
1148 return W::MSWWindowProc(message, wParam, lParam);
+
1149
+
1150 case WM_EXITSIZEMOVE: {
+
1151 WXLRESULT lResult = W::MSWWindowProc(message, wParam, lParam);
+
1152
+
1153 // Clean previous docking/auto-hide settings if required.
+
1154 if (wxAppBarIsDocked(m_state) &&
+
1155 (m_stateDesired == wxAppBarState::FLOAT || m_stateDesired != m_state && wxAppBarIsDocked(m_stateDesired)))
+
1156 {
+
1157 if (IsAutoHide())
+
1158 UnregisterAutoHide(m_state);
+
1159 else if (m_stateDesired == wxAppBarState::FLOAT)
+
1160 UndockAppBar();
+
1161 }
+
1162
+
1163 // Setup new docking/auto-hide settings.
+
1164 if (wxAppBarIsDocked(m_stateDesired)) {
+
1165 if (IsAutoHide()) {
+
1166 // Application bar should be auto-hide. Try to setup it as so.
+
1167 // Register auto-hide application bar.
+
1168 RegisterAutoHide(m_stateDesired);
+
1169 } else {
+
1170 // Auto-hide failed or wasn't desired at all.
+
1171 DockAppBar(m_stateDesired);
+
1172 }
+
1173 }
+
1174
+
1175 // Notify about the change of state.
+
1176 OnChangeState(m_stateDesired);
+
1177 m_state = m_stateDesired;
+
1178 m_stateDesired = wxAppBarState::UNKNOWN;
+
1179
+
1180 return lResult;
+
1181 }
+
1182
+
1183 case WM_MOVING: {
+
1184 WXLRESULT lResult = W::MSWWindowProc(message, wParam, lParam);
+
1185
+
1186 wxASSERT(lParam);
+
1187 LPRECT lpRect = (LPRECT)lParam;
+
1188
+
1189 // Phase 1. - Determine the desired state (which screen edge or floating) according to the mouse position.
+
1190
+
1191 wxAppBarState uStateDesiredPrev = m_stateDesired;
+
1192 DWORD dwPoint = ::GetMessagePos();
+
1193 wxPoint ptMouse(GET_X_LPARAM(dwPoint), GET_Y_LPARAM(dwPoint));
+
1194
+
1195 m_stateDesired = wxAppBarState::UNKNOWN;
+
1196
+
1197 if ((m_flags & wxABF_ALLOWFLOAT) && (::GetKeyState(VK_CONTROL) < 0 || !(m_flags & wxABF_ALLOWDOCKANY))) {
+
1198 // The application bar's style allows floating and user is holding down the Ctrl key, or docking is disabled anyway, so we'll force float.
+
1199 m_stateDesired = wxAppBarState::FLOAT;
+
1200 } else {
+
1201 RECT rcWorkArea = {};
+
1202 INT iDist, iDistMin = INT_MAX;
+
1203
+
1204 // Get the rectangle that bounds the size of the screen
+
1205 // minus any docked (but not-autohidden) AppBars.
+
1206 wxVERIFY(::SystemParametersInfo(SPI_GETWORKAREA, 0, &rcWorkArea, 0));
+
1207
+
1208 // Test all four edges, to find the closest one.
+
1209 if ((m_flags & wxABF_ALLOWDOCKTOP) && (iDist = ptMouse.y - rcWorkArea.top) < iDistMin) {
+
1210 m_stateDesired = wxAppBarState::TOP;
+
1211 iDistMin = iDist;
+
1212 }
+
1213 if ((m_flags & wxABF_ALLOWDOCKBOTTOM) && (iDist = rcWorkArea.bottom - ptMouse.y) < iDistMin) {
+
1214 m_stateDesired = wxAppBarState::BOTTOM;
+
1215 iDistMin = iDist;
+
1216 }
+
1217 if ((m_flags & wxABF_ALLOWDOCKLEFT) && (iDist = ptMouse.x - rcWorkArea.left) < iDistMin) {
+
1218 m_stateDesired = wxAppBarState::LEFT;
+
1219 iDistMin = iDist;
+
1220 }
+
1221 if ((m_flags & wxABF_ALLOWDOCKRIGHT) && (iDist = rcWorkArea.right - ptMouse.x) < iDistMin) {
+
1222 m_stateDesired = wxAppBarState::RIGHT;
+
1223 iDistMin = iDist;
+
1224 }
+
1225 if ((m_flags & wxABF_ALLOWFLOAT) && (iDist = wxMax(::GetSystemMetrics(SM_CXVSCROLL), ::GetSystemMetrics(SM_CYHSCROLL))) < iDistMin) {
+
1226 m_stateDesired = wxAppBarState::FLOAT;
+
1227 iDistMin = iDist;
+
1228 }
+
1229 }
+
1230
+
1231 wxASSERT_MSG(m_stateDesired != wxAppBarState::UNKNOWN, wxT("undetermined application bar state"));
+
1232
+
1233 // Phase 2. - Calculate the desired rectangle, according to the desired state.
+
1234
+
1235 if (m_stateDesired == wxAppBarState::FLOAT) {
+
1236 if (wxAppBarIsDocked(uStateDesiredPrev)) {
+
1237 // We just switched from docked to floating state. Align the window according to the mouse pointer.
+
1238 lpRect->left = ptMouse.x - m_sizeFloat.cx / 2;
+
1239 lpRect->top = ptMouse.y;
+
1240
+
1241 // We also resize back to floating window size.
+
1242 lpRect->right = lpRect->left + m_sizeFloat.cx;
+
1243 lpRect->bottom = lpRect->top + m_sizeFloat.cy;
+
1244 }
+
1245 } else if (wxAppBarIsDocked(m_stateDesired)) {
+
1246 if (IsAutoHide()) {
+
1247 // Calculate auto-hide window rect.
+
1248 GetAutoHideRect(m_stateDesired, false, lpRect);
+
1249 } else {
+
1250 // Calculate docked window rect.
+
1251 GetDockedRect(m_stateDesired, lpRect);
+
1252 }
+
1253 } else {
+
1254 // Window is not floating. It's not docked either. Then what?
+
1255 wxFAIL_MSG(wxT("unknown application bar state"));
+
1256 }
+
1257
+
1258 if (m_stateDesired != uStateDesiredPrev) {
+
1259 // Notify about the proposed change of state, but don't change the state yet.
+
1260 OnChangeState(m_stateDesired);
+
1261 }
+
1262
+
1263 return lResult;
+
1264 }
+
1265
+
1266 case WM_SIZING: {
+
1267 wxASSERT(lParam);
+
1268 LPRECT lpRect = (LPRECT)lParam;
+
1269
+
1270 if (m_stateDesired == wxAppBarState::FLOAT) {
+
1271 // Remember the floating window size.
+
1272 m_sizeFloat.cx = lpRect->right - lpRect->left;
+
1273 m_sizeFloat.cy = lpRect->bottom - lpRect->top;
+
1274 } else if (wxAppBarIsDocked(m_stateDesired)) {
+
1275 // Remember the docked window size.
+
1276 if (wxAppBarIsDockedVert(m_stateDesired))
+
1277 m_sizeDocked.cx = lpRect->right - lpRect->left;
+
1278 else
+
1279 m_sizeDocked.cy = lpRect->bottom - lpRect->top;
+
1280 } else {
+
1281 // Unknown state.
+
1282 wxFAIL_MSG(wxT("unknown application bar state"));
+
1283 }
+
1284
+
1285 return W::MSWWindowProc(message, wParam, lParam);
+
1286 }
+
1287
+
1288 case WM_GETMINMAXINFO: {
+
1289 WXLRESULT lResult = W::MSWWindowProc(message, wParam, lParam);
+
1290
+
1291 wxASSERT(lParam);
+
1292 LPMINMAXINFO lpMMI = (LPMINMAXINFO)lParam;
+
1293
+
1294 // Convert client size to window size.
+
1295 RECT rectClient = {};
+
1296 wxVERIFY(::GetClientRect(m_hWnd, &rectClient));
+
1297 if (rectClient.right - rectClient.left && rectClient.bottom - rectClient.top) {
+
1298 RECT rectWindow = {};
+
1299 wxVERIFY(::GetWindowRect(m_hWnd, &rectWindow));
+
1300 lpMMI->ptMinTrackSize.x = m_sizeMin.cx + (rectWindow.right - rectWindow.left) - (rectClient.right - rectClient.left);
+
1301 lpMMI->ptMinTrackSize.y = m_sizeMin.cy + (rectWindow.bottom - rectWindow.top ) - (rectClient.bottom - rectClient.top );
+
1302 }
+
1303
+
1304 return lResult;
+
1305 }
+
1306
+
1307 case WM_NCMOUSEMOVE:
+
1308 // If we are a docked, auto-hidden application bar, shown us
+
1309 // when the user moves over our non-client area
+
1310 ShowAutoHideAppBar(true);
+
1311
+
1312 return W::MSWWindowProc(message, wParam, lParam);
+
1313
+
1314 case WM_NCHITTEST: {
+
1315 // Find out what the base class thinks is the hit test code.
+
1316 WXLRESULT lResult = W::MSWWindowProc(message, wParam, lParam);
+
1317
+
1318 if (HTSIZEFIRST <= lResult && lResult <= HTSIZELAST) {
+
1319 if (GetAllowSizing()) {
+
1320 if (wxAppBarIsDocked(m_state)) {
+
1321 // When the application bar is docked, the user can resize only one edge.
+
1322 // This next section determines which edge the user can resize.
+
1323 // To allow resizing, the application bar window must have the WS_THICKFRAME style.
+
1324
+
1325 RECT rcClient = {};
+
1326 wxPoint point(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam));
+
1327
+
1328 // Resizing IS allowed for the edge that the application bar is docked on.
+
1329 // Get the location of the appbar's client area in screen coordinates.
+
1330 wxVERIFY(::GetClientRect(m_hWnd, &rcClient));
+
1331 wxVERIFY(::ClientToScreen(m_hWnd, (LPPOINT)&rcClient));
+
1332 wxVERIFY(::ClientToScreen(m_hWnd, ((LPPOINT)&rcClient) + 1));
+
1333
+
1334 // Assume that we can't resize
+
1335 lResult = HTBORDER;
+
1336
+
1337 switch (m_state) {
+
1338 case wxAppBarState::LEFT: if (point.x > rcClient.right) lResult = HTRIGHT; break;
+
1339 case wxAppBarState::TOP: if (point.y > rcClient.bottom) lResult = HTBOTTOM; break;
+
1340 case wxAppBarState::RIGHT: if (point.x < rcClient.left) lResult = HTLEFT; break;
+
1341 case wxAppBarState::BOTTOM: if (point.y < rcClient.top) lResult = HTTOP; break;
+
1342 }
+
1343 }
+
1344 } else {
+
1345 // The sizing is locked. Pretend that the mouse is not on a resize border.
+
1346 lResult = HTBORDER;
+
1347 }
+
1348 }
+
1349
+
1350 return lResult;
+
1351 }
+
1352
+
1353 case WM_ACTIVATE: {
+
1354 WXLRESULT lResult = W::MSWWindowProc(message, wParam, lParam);
+
1355
+
1356 if (wxAppBarIsDocked(m_state)) {
+
1357 // When our window changes activation state, tell the Shell so that any
+
1358 // auto-hidden application bar on our edge stays on top of our window making it
+
1359 // always accessible to the user.
+
1360 APPBARDATA abd = { sizeof(abd), m_hWnd };
+
1361 wxVERIFY(::SHAppBarMessage(ABM_ACTIVATE, &abd));
+
1362
+
1363 if (LOWORD(wParam) == WA_INACTIVE && IsAutoHide()) {
+
1364 // Hide the application bar if we are docked and auto-hidden.
+
1365 ShowAutoHideAppBar(false);
+
1366 }
+
1367 }
+
1368
+
1369 return lResult;
+
1370 }
+
1371
+
1372 case WM_TIMER:
+
1373 if (wParam == wxABT_AUTOHIDETIMERID) {
+
1374 if (!GetAutoHidden() &&
+
1375 wxAppBarIsDocked(m_state) &&
+
1376 GetActiveWindow() != m_hWnd)
+
1377 {
+
1378 // Get the position of the mouse and the application bar's position
+
1379 // Everything must be in screen coordinates.
+
1380 DWORD dwPoint = ::GetMessagePos();
+
1381 wxPoint pointMouse(GET_X_LPARAM(dwPoint), GET_Y_LPARAM(dwPoint));
+
1382 RECT rect = {};
+
1383 wxVERIFY(::GetWindowRect(m_hWnd, &rect));
+
1384 wxRect rectBounds(rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top);
+
1385
+
1386 // Add a little margin around the application bar
+
1387 rectBounds.Inflate(2 * ::GetSystemMetrics(SM_CXDOUBLECLK), 2 * ::GetSystemMetrics(SM_CYDOUBLECLK));
+
1388 if (!rectBounds.Contains(pointMouse)) {
+
1389 // If the mouse is NOT over or near the application bar, hide it.
+
1390 ShowAutoHideAppBar(false);
+
1391 }
+
1392 }
+
1393
+
1394 return 0;
+
1395 } else
+
1396 return W::MSWWindowProc(message, wParam, lParam);
+
1397
+
1398 case WM_AB_NOTIFY:
+
1399 switch (wParam) {
+
1400 case ABN_FULLSCREENAPP:
+
1401 if (lParam)
+
1402 m_flags |= wxABF_FULLSCREENAPPOPEN;
+
1403 else
+
1404 m_flags &= ~wxABF_FULLSCREENAPPOPEN;
+
1405 OnChangeTaskBarState(wxAppBarGetTaskBarState());
+
1406
+
1407 if (::IsWindowVisible(m_hWnd)) {
+
1408 // Set the Z-order.
+
1409 wxVERIFY(::SetWindowPos(m_hWnd, wxAppBarGetZWnd(m_state, m_flags), 0, 0, 0, 0, SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE | SWP_NOSENDCHANGING));
+
1410 }
+
1411 break;
+
1412
+
1413 case ABN_POSCHANGED:
+
1414 if (wxAppBarIsDocked(m_state) && !IsAutoHide())
+
1415 DockAppBar(m_state);
+
1416 break;
+
1417
+
1418 case ABN_STATECHANGE:
+
1419 // Taskbar's state changed.
+
1420 OnChangeTaskBarState(wxAppBarGetTaskBarState());
+
1421 break;
+
1422
+
1423 case ABN_WINDOWARRANGE:
+
1424 OnWindowsArrange(lParam ? true : false);
+
1425 break;
+
1426
+
1427 default:
+
1428 // Unknown message.
+
1429 wxFAIL_MSG(wxString::Format(wxT("unknown application bar notification 0x%x"), wParam));
+
1430 break;
+
1431 }
+
1432
+
1433 return 0;
+
1434
+
1435 default:
+
1436 return W::MSWWindowProc(message, wParam, lParam);
+
1437 }
+
1438}
+
1440
+
1441
+
1443
+
1444template <class W>
+
1445_Use_decl_annotations_
+
1446inline bool wxAppBar<W>::DockAppBar(wxAppBarState state)
+
1447{
+
1448 wxASSERT(wxAppBarIsDocked(state));
+
1449
+
1450 // Calculate docked window rect and dock the window there.
+
1451 APPBARDATA abd = { sizeof(abd), m_hWnd, 0, static_cast<UINT>(state) };
+
1452 GetDockedRect(state, &(abd.rc));
+
1453 wxCHECK(::SHAppBarMessage(ABM_SETPOS, &abd), false);
+
1454 wxCHECK(::SetWindowPos(m_hWnd, wxAppBarGetZWnd(state, m_flags), abd.rc.left, abd.rc.top, abd.rc.right - abd.rc.left, abd.rc.bottom - abd.rc.top, SWP_NOACTIVATE | SWP_DRAWFRAME | SWP_FRAMECHANGED), false);
+
1455
+
1456 return true;
+
1457}
+
1458
+
1459
+
1460template <class W>
+
1461_Use_decl_annotations_
+
1462inline bool wxAppBar<W>::UndockAppBar()
+
1463{
+
1464 // Free application bar's space to undock.
+
1465 APPBARDATA abd = { sizeof(abd), m_hWnd, 0, ABE_LEFT };
+
1466 wxASSERT(!abd.rc.left && !abd.rc.top && !abd.rc.right && !abd.rc.bottom);
+
1467 wxCHECK(::SHAppBarMessage(ABM_SETPOS, &abd), false);
+
1468
+
1469 return true;
+
1470}
+
1471
+
1472
+
1473template <class W>
+
1474_Use_decl_annotations_
+ +
1476{
+
1477 wxASSERT(wxAppBarIsDocked(state));
+
1478
+
1479 // Register application bar as auto-hide.
+
1480 APPBARDATA abd = { sizeof(abd), m_hWnd, 0, static_cast<UINT>(state), {}, (LPARAM)true };
+
1481 if (::SHAppBarMessage(ABM_SETAUTOHIDEBAR, &abd)) {
+
1482 // Auto-hide succeeded.
+
1483 m_flags |= wxABF_AUTOHIDE;
+
1484 m_flags &= ~wxABF_AUTOHIDDEN;
+
1485
+
1486 // Calculate auto-hidden window rect and move the window there.
+
1487 GetAutoHideRect(state, false, &(abd.rc));
+
1488 wxCHECK(::SetWindowPos(m_hWnd, wxAppBarGetZWnd(state, m_flags), abd.rc.left, abd.rc.top, abd.rc.right - abd.rc.left, abd.rc.bottom - abd.rc.top, SWP_NOACTIVATE | SWP_DRAWFRAME | SWP_FRAMECHANGED), false);
+
1489
+
1490 // Reset auto-hide timer.
+
1491 m_timerID = ::SetTimer(m_hWnd, wxABT_AUTOHIDETIMERID, wxABT_AUTOHIDETIMERINTERVAL, NULL);
+
1492
+
1493 return true;
+
1494 } else {
+
1495 // Auto-hide failed; some other application bar must be hidden on this edge already.
+
1496 m_flags &= ~(wxABF_AUTOHIDE | wxABF_AUTOHIDDEN);
+
1497
+
1498 // Post a message to user.
+
1499 OnAutoHideDenied();
+
1500
+
1501 return false;
+
1502 }
+
1503}
+
1504
+
1505
+
1506template <class W>
+
1507_Use_decl_annotations_
+ +
1509{
+
1510 wxASSERT(wxAppBarIsDocked(state));
+
1511
+
1512 // Unregister application bar as auto-hide.
+
1513 APPBARDATA abd = { sizeof(abd), m_hWnd, 0, static_cast<UINT>(state), {}, (LPARAM)false };
+
1514 wxCHECK(::SHAppBarMessage(ABM_SETAUTOHIDEBAR, &abd), false);
+
1515 m_flags &= ~wxABF_AUTOHIDDEN;
+
1516
+
1517 // Cancel the timer.
+
1518 if (m_timerID) {
+
1519 ::KillTimer(m_hWnd, m_timerID);
+
1520 m_timerID = 0;
+
1521 }
+
1522
+
1523 return true;
+
1524}
+
1525
+
1526
+
1527template <class W>
+
1528_Use_decl_annotations_
+
1529inline bool wxAppBar<W>::GetDockedRect(wxAppBarState state, LPRECT rect) const
+
1530{
+
1531 wxASSERT(wxAppBarIsDocked(state));
+
1532 wxASSERT(rect);
+
1533
+
1534 // Set dimensions to full screen.
+
1535 APPBARDATA abd = { sizeof(abd), m_hWnd, 0, static_cast<UINT>(state), { 0, 0, ::GetSystemMetrics(SM_CXSCREEN), ::GetSystemMetrics(SM_CYSCREEN) } };
+
1536 wxCHECK(::SHAppBarMessage(ABM_QUERYPOS, &abd), false);
+
1537
+
1538 // Correct our dimensions accordingly.
+
1539 switch (state) {
+ +
1541 rect->left = abd.rc.left;
+
1542 rect->top = abd.rc.top;
+
1543 rect->right = abd.rc.left + m_sizeDocked.cx;
+
1544 rect->bottom = abd.rc.bottom;
+
1545 break;
+
1546
+
1547 case wxAppBarState::TOP:
+
1548 rect->left = abd.rc.left;
+
1549 rect->top = abd.rc.top;
+
1550 rect->right = abd.rc.right;
+
1551 rect->bottom = abd.rc.top + m_sizeDocked.cy;
+
1552 break;
+
1553
+ +
1555 rect->left = abd.rc.right - m_sizeDocked.cx;
+
1556 rect->top = abd.rc.top;
+
1557 rect->right = abd.rc.right;
+
1558 rect->bottom = abd.rc.bottom;
+
1559 break;
+
1560
+ +
1562 rect->left = abd.rc.left;
+
1563 rect->top = abd.rc.bottom - m_sizeDocked.cy;
+
1564 rect->right = abd.rc.right;
+
1565 rect->bottom = abd.rc.bottom;
+
1566 break;
+
1567
+
1568 default:
+
1569 // Unknown state.
+
1570 wxFAIL_MSG(wxT("unsupported application bar state"));
+
1571 return false;
+
1572 }
+
1573
+
1574 return true;
+
1575}
+
1576
+
1577
+
1578template <class W>
+
1579_Use_decl_annotations_
+
1580inline bool wxAppBar<W>::GetAutoHideRect(wxAppBarState state, bool bAutoHidden, LPRECT rect) const
+
1581{
+
1582 wxASSERT(wxAppBarIsDocked(state));
+
1583 wxASSERT(rect);
+
1584
+
1585 // Keep a part of the application bar visible at all times
+
1586 const int iBorder = ::GetSystemMetrics(wxAppBarIsDockedVert(state) ? SM_CXBORDER : SM_CYBORDER) * 2;
+
1587 const RECT rcScreen = {
+
1588 0,
+
1589 0,
+
1590 ::GetSystemMetrics(SM_CXSCREEN),
+
1591 ::GetSystemMetrics(SM_CYSCREEN)
+
1592 };
+
1593
+
1594 // Correct our dimensions accordingly.
+
1595 switch (state) {
+ +
1597 rect->top = rcScreen.top;
+
1598 rect->bottom = rcScreen.bottom;
+
1599 rect->right = rcScreen.left + (bAutoHidden ? iBorder : m_sizeDocked.cx);
+
1600 rect->left = rect->right - m_sizeDocked.cx;
+
1601 break;
+
1602
+
1603 case wxAppBarState::TOP:
+
1604 rect->left = rcScreen.left;
+
1605 rect->right = rcScreen.right;
+
1606 rect->bottom = rcScreen.top + (bAutoHidden ? iBorder : m_sizeDocked.cy);
+
1607 rect->top = rect->bottom - m_sizeDocked.cy;
+
1608 break;
+
1609
+ +
1611 rect->left = rcScreen.right - (bAutoHidden ? iBorder : m_sizeDocked.cx);
+
1612 rect->top = rcScreen.top;
+
1613 rect->right = rect->left + m_sizeDocked.cx;
+
1614 rect->bottom = rcScreen.bottom;
+
1615 break;
+
1616
+ +
1618 rect->left = rcScreen.left;
+
1619 rect->top = rcScreen.bottom - (bAutoHidden ? iBorder : m_sizeDocked.cy);
+
1620 rect->right = rcScreen.right;
+
1621 rect->bottom = rect->top + m_sizeDocked.cy;
+
1622 break;
+
1623
+
1624 default:
+
1625 // Unknown state.
+
1626 wxFAIL_MSG(wxT("unsupported application bar state"));
+
1627 return false;
+
1628 }
+
1629
+
1630 return true;
+
1631}
+
1632
+
Dockable application bar dialog.
Definition: appbar.h:344
+
Dockable application bar frame.
Definition: appbar.h:305
+
Dockable application bar template.
Definition: appbar.h:103
+
UINT_PTR m_timerID
Application bar's timer id.
Definition: appbar.h:289
+
bool IsAutoHide() const
Returns if application bar is configured for auto-hide.
Definition: appbar.h:618
+
bool IsAlwaysOnTop() const
Returns whether application bar is displayed always on top.
Definition: appbar.h:594
+
wxAppBarState GetState() const
Returns current state of the application bar.
Definition: appbar.h:587
+
ITaskbarList * m_taskbarList
Windows's taskbar list interface.
Definition: appbar.h:291
+
void MaximiseFromEdge(wxWindow *wnd)
Restore application bar from the edge of the desktop.
Definition: appbar.h:869
+
UINT_PTR m_stateTaskBar
TaskBar's current state.
Definition: appbar.h:288
+
virtual ~wxAppBar()
Destructor.
Definition: appbar.h:523
+
virtual void OnWindowsArrange(bool beginning)
Notification handler when desktop windows are being arranged (cascaded, tiled, ......
Definition: appbar.h:1031
+
wxAppBar()
Creates new application bar.
Definition: appbar.h:505
+
SIZE m_sizeFloat
Window size when floating (we need it to restore floating size, when we undock)
Definition: appbar.h:284
+
int m_flags
Flags describing application bar's behaviour.
Definition: appbar.h:282
+
void MaximiseFromEdge(const RECT *rect=NULL)
Restore application bar from the edge of the desktop.
Definition: appbar.h:826
+
void MinimiseToEdge(wxAppBarState edge, wxWindow *wnd=NULL)
Minimize application bar to the edge of the desktop.
Definition: appbar.h:763
+
bool GetAllowSizing() const
Returns if sizing of the application bar is allowed.
Definition: appbar.h:659
+
void HideAutoHideAppBar()
Hides auto-hide application bar.
Definition: appbar.h:220
+
wxAppBarState m_state
Current state of the application bar.
Definition: appbar.h:280
+
bool SetAutoHide(bool autoHide=true)
Sets whether application bar is displayed always on top.
Definition: appbar.h:625
+
virtual void OnAutoHideDenied()
Called when application bar was forced from auto-hide to normal docking.
Definition: appbar.h:1037
+
SIZE m_sizeMin
Minimum window size.
Definition: appbar.h:286
+
wxAppBarState m_stateDesired
Desired state of the application bar while moving/resizing.
Definition: appbar.h:281
+
bool SetAllowSizing(bool allow=true)
Sets whether resizing of the application bar is allowed.
Definition: appbar.h:666
+
SIZE m_sizeDocked
Size of the window when docked (height when wxAppBarState::TOP or wxAppBarState::BOTTOM,...
Definition: appbar.h:285
+
virtual void OnChangeState(wxAppBarState stateNew)
Notification handler when the new state of the application bar is proposed.
Definition: appbar.h:972
+
virtual void OnChangeTaskBarState(UINT_PTR state)
Notification handler when the Windows' taskbar state changes.
Definition: appbar.h:1006
+
bool SetAlwaysOnTop(bool alwaysOnTop=true)
Sets whether application bar is displayed always on top.
Definition: appbar.h:601
+
bool GetAutoHidden() const
Returns if application bar is auto-hidden right now.
Definition: appbar.h:678
+
void ShowAutoHideAppBar(bool show=true)
Shows or hides auto-hide application bar.
Definition: appbar.h:899
+
WXHWND wxAppBarGetZWnd(wxAppBarState state, int flags)
Returns the window above which to Z-order the application bar.
Definition: appbar.h:437
+
#define wxABF_ALLOWDOCKLEFT
Is docking left of the screen allowed?
Definition: appbar.h:74
+
#define wxABT_AUTOHIDETIME
Application bar auto-hide timer timeout.
Definition: appbar.h:36
+
#define wxABF_FULLSCREENAPPOPEN
Is full-screen application open?
Definition: appbar.h:94
+
UINT_PTR wxAppBarGetTaskBarState()
Returns the current taskbar state.
Definition: appbar.h:491
+
#define WM_AB_NOTIFY
Posted to notify application bar about system changes.
Definition: appbar.h:52
+
bool wxGetDoWndAnimation()
Returns whether windows animation is enabled.
Definition: common.h:95
+
#define wxABT_AUTOHIDETIMERID
Application bar auto-hide timer ID.
Definition: appbar.h:31
+
#define wxABF_ALLOWSIZING
Is application bar's sizing allowed?
Definition: appbar.h:87
+
#define wxABF_ALLOWDOCKTOP
Is docking on top of the screen allowed?
Definition: appbar.h:72
+
#define wxABF_HIDETASKBARTABWHENFLOATING
Should application bar's tab on the system taskbar hide when floating?
Definition: appbar.h:89
+
#define wxABF_ALLOWDOCKBOTTOM
Is docking on bottom of the screen allowed?
Definition: appbar.h:73
+
bool wxAppBarIsDocked(wxAppBarState state)
Returns if the application bar state represents docked state.
Definition: appbar.h:392
+
bool wxModifyStyleEx(WXHWND hWnd, DWORD dwRemove, DWORD dwAdd, UINT nFlags=0)
Modifies window extended style.
Definition: common.h:115
+
#define WXEXTEND_API
Public function calling convention.
Definition: common.h:56
+
#define wxABT_AUTOHIDETIMERINTERVAL
Application bar auto-hide timer interval.
Definition: appbar.h:41
+
#define wxABF_AUTOHIDE
Is application bar setup for auto-hide?
Definition: appbar.h:84
+
bool wxAppBarIsDockedHoriz(wxAppBarState state)
Returns if the application bar state represents horizontally docked state.
Definition: appbar.h:422
+
#define wxABF_ALLOWDOCKANY
Is docking at any edge of the screen allowed?
Definition: appbar.h:76
+
#define wxABF_AUTOHIDDEN
Is application bar auto-hidden right now?
Definition: appbar.h:95
+
#define wxABF_HIDETASKBARTABWHENDOCKED
Should application bar's tab on the system taskbar hide when docked?
Definition: appbar.h:90
+
#define wxABF_ALLOWFLOAT
Dockable application bar flags.
Definition: appbar.h:71
+
#define wxABF_ALLOWDOCKRIGHT
Is docking right of the screen allowed?
Definition: appbar.h:75
+
#define wxABF_ALWAYSONTOP
Is application bar always on top?
Definition: appbar.h:81
+
wxAppBarState
Dockable application bar states.
Definition: appbar.h:58
+
bool wxAppBarIsDockedVert(wxAppBarState state)
Returns if the application bar state represents vertically docked state.
Definition: appbar.h:407
+
#define wxABF_ALWAYSONTOPTASKBAR
Does application bar follow always on top state of the system taskbar?
Definition: appbar.h:82
+
#define wxVERIFY(cond)
Test if condition is true. When not true, raise debug assertion with the given message.
Definition: common.h:84
+
#define wxABF_AUTOHIDETASKBAR
Does application bar follow auto-hide state of the system taskbar?
Definition: appbar.h:85
+
#define wxABF_ALLOWANY
Is floating and docking at any edge of the screen allowed?
Definition: appbar.h:79
+
@ BOTTOM
Application bar is docked at the bottom edge of the desktop.
+
@ RIGHT
Application bar is docked at the right edge of the desktop.
+
@ TOP
Application bar is docked at the top edge of the desktop.
+
@ LEFT
Application bar is docked at the left edge of the desktop.
+
@ FLOAT
Application bar is floating on the desktop (normal window)
+
+ + + + diff --git a/auimanager_8h_source.html b/auimanager_8h_source.html new file mode 100644 index 0000000..97b08bb --- /dev/null +++ b/auimanager_8h_source.html @@ -0,0 +1,169 @@ + + + + + + + +wxExtend: include/wxex/persist/auimanager.h Source File + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
auimanager.h
+
+
+
1/*
+
2 ​​​SPDX-License-Identifier: GPL-3.0-or-later
+
3 Copyright © 2015-2022 Amebis
+
4 Copyright © 2016 GÉANT
+
5*/
+
6
+
7#pragma once
+
8
+
9#include "../common.h"
+
10
+
11#include "../aui/framemanager.h"
+
12
+
13#include <codeanalysis\warnings.h>
+
14#pragma warning(push)
+
15#pragma warning(disable: WXWIDGETS_CODE_ANALYSIS_WARNINGS)
+
16#include <wx/persist.h>
+
17#include <wx/aui/framemanager.h>
+
18#pragma warning(pop)
+
19
+
20
+
23
+
27#define wxPERSIST_AUIMGR_KIND "AuiManager"
+
28
+
32#define wxPERSIST_AUIMGR_PERSPECTIVE "perspective"
+
33
+
37class wxPersistentAuiManager : public wxPersistentObject
+
38{
+
39public:
+
43 wxPersistentAuiManager(wxAuiManager *mgr) : wxPersistentObject(mgr)
+
44 {
+
45 }
+
46
+
50 virtual wxString GetKind() const wxOVERRIDE
+
51 {
+
52 return wxT(wxPERSIST_AUIMGR_KIND);
+
53 }
+
54
+
58 virtual wxString GetName() const wxOVERRIDE
+
59 {
+
60 // Borrow the name of wxAguiManager from its window.
+
61 return GetManager()->GetManagedWindow()->GetName();
+
62 }
+
63
+
67 virtual void Save() const wxOVERRIDE
+
68 {
+
69 // Save perspective string to configuration.
+
70 SaveValue(wxT(wxPERSIST_AUIMGR_PERSPECTIVE), GetManager()->SavePerspective());
+
71 }
+
72
+
76 virtual bool Restore() wxOVERRIDE
+
77 {
+
78 // Load perspective string from configuration.
+
79 wxString persp;
+
80 if (!RestoreValue(wxT(wxPERSIST_AUIMGR_PERSPECTIVE), &persp))
+
81 return false;
+
82
+
83 // Update captions (see http://trac.wxwidgets.org/ticket/12528).
+
84 wxAuiManager* mgr = GetManager();
+
85 wxCHECK(wxAuiManagerUpdatePerspectiveCaptions(*mgr, persp), false);
+
86
+
87 // Restore perspective.
+
88 return mgr->LoadPerspective(persp);
+
89 }
+
90
+
91protected:
+
93 wxAuiManager *GetManager() const
+
94 {
+
95 return static_cast<wxAuiManager*>(GetObject());
+
96 }
+
98
+
99private:
+
100 wxDECLARE_NO_COPY_CLASS(wxPersistentAuiManager);
+
101};
+
102
+
103
+
107inline wxPersistentObject *wxCreatePersistentObject(wxAuiManager *mgr)
+
108{
+
109 return new wxPersistentAuiManager(mgr);
+
110}
+
111
+
Supports saving/restoring wxAuiManager state.
Definition: auimanager.h:38
+
virtual wxString GetKind() const wxOVERRIDE
Definition: auimanager.h:50
+
wxPersistentAuiManager(wxAuiManager *mgr)
Constructs a persistent Aui manager object.
Definition: auimanager.h:43
+
virtual wxString GetName() const wxOVERRIDE
Returns name of the window.
Definition: auimanager.h:58
+
virtual void Save() const wxOVERRIDE
Saves Aui manager state.
Definition: auimanager.h:67
+
virtual bool Restore() wxOVERRIDE
Restores Aui manager state.
Definition: auimanager.h:76
+
#define wxPERSIST_AUIMGR_PERSPECTIVE
Name of the persistent storage variable for saving Aui manager state.
Definition: auimanager.h:32
+
wxPersistentObject * wxCreatePersistentObject(wxAuiManager *mgr)
wxAuiManager's instantiation of wxCreatePersistentObject template
Definition: auimanager.h:107
+
#define wxPERSIST_AUIMGR_KIND
wxPersistentAuiManager kind for persistent storage
Definition: auimanager.h:27
+
bool WXEXTEND_API wxAuiManagerUpdatePerspectiveCaptions(wxAuiManager &mgr, wxString &perspective)
Updates perspective captions with matching captions from panes.
Definition: framemanager.cpp:10
+
+ + + + diff --git a/bc_s.png b/bc_s.png new file mode 100644 index 0000000000000000000000000000000000000000..224b29aa9847d5a4b3902efd602b7ddf7d33e6c2 GIT binary patch literal 676 zcmV;V0$crwP)y__>=_9%My z{n931IS})GlGUF8K#6VIbs%684A^L3@%PlP2>_sk`UWPq@f;rU*V%rPy_ekbhXT&s z(GN{DxFv}*vZp`F>S!r||M`I*nOwwKX+BC~3P5N3-)Y{65c;ywYiAh-1*hZcToLHK ztpl1xomJ+Yb}K(cfbJr2=GNOnT!UFA7Vy~fBz8?J>XHsbZoDad^8PxfSa0GDgENZS zuLCEqzb*xWX2CG*b&5IiO#NzrW*;`VC9455M`o1NBh+(k8~`XCEEoC1Ybwf;vr4K3 zg|EB<07?SOqHp9DhLpS&bzgo70I+ghB_#)K7H%AMU3v}xuyQq9&Bm~++VYhF09a+U zl7>n7Jjm$K#b*FONz~fj;I->Bf;ule1prFN9FovcDGBkpg>)O*-}eLnC{6oZHZ$o% zXKW$;0_{8hxHQ>l;_*HATI(`7t#^{$(zLe}h*mqwOc*nRY9=?Sx4OOeVIfI|0V(V2 zBrW#G7Ss9wvzr@>H*`r>zE z+e8bOBgqIgldUJlG(YUDviMB`9+DH8n-s9SXRLyJHO1!=wY^79WYZMTa(wiZ!zP66 zA~!21vmF3H2{ngD;+`6j#~6j;$*f*G_2ZD1E;9(yaw7d-QnSCpK(cR1zU3qU0000< KMNUMnLSTYoA~SLT literal 0 HcmV?d00001 diff --git a/bdwn.png b/bdwn.png new file mode 100644 index 0000000000000000000000000000000000000000..940a0b950443a0bb1b216ac03c45b8a16c955452 GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^>_E)H!3HEvS)PKZC{Gv1kP61Pb5HX&C2wk~_T + + + + + + +wxExtend: Class Index + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Class Index
+
+ + + + + diff --git a/classwx_app_bar-members.html b/classwx_app_bar-members.html new file mode 100644 index 0000000..f87dda2 --- /dev/null +++ b/classwx_app_bar-members.html @@ -0,0 +1,106 @@ + + + + + + + +wxExtend: Member List + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
wxAppBar< W > Member List
+
+
+ +

This is the complete list of members for wxAppBar< W >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GetAllowSizing() constwxAppBar< W >inline
GetAutoHidden() constwxAppBar< W >inline
GetState() constwxAppBar< W >inline
HideAutoHideAppBar()wxAppBar< W >inline
IsAlwaysOnTop() constwxAppBar< W >inline
IsAutoHide() constwxAppBar< W >inline
m_flagswxAppBar< W >protected
m_sizeDockedwxAppBar< W >protected
m_sizeFloatwxAppBar< W >protected
m_sizeMinwxAppBar< W >protected
m_statewxAppBar< W >protected
m_stateDesiredwxAppBar< W >protected
m_stateTaskBarwxAppBar< W >protected
m_taskbarListwxAppBar< W >protected
m_timerIDwxAppBar< W >protected
MaximiseFromEdge(const RECT *rect=NULL)wxAppBar< W >
MaximiseFromEdge(wxWindow *wnd)wxAppBar< W >
MinimiseToEdge(wxAppBarState edge, wxWindow *wnd=NULL)wxAppBar< W >
OnAutoHideDenied()wxAppBar< W >protectedvirtual
OnChangeState(wxAppBarState stateNew)wxAppBar< W >protectedvirtual
OnChangeTaskBarState(UINT_PTR state)wxAppBar< W >protectedvirtual
OnWindowsArrange(bool beginning)wxAppBar< W >protectedvirtual
SetAllowSizing(bool allow=true)wxAppBar< W >inline
SetAlwaysOnTop(bool alwaysOnTop=true)wxAppBar< W >inline
SetAutoHide(bool autoHide=true)wxAppBar< W >inline
ShowAutoHideAppBar(bool show=true)wxAppBar< W >
wxAppBar()wxAppBar< W >
~wxAppBar()wxAppBar< W >virtual
+ + + + diff --git a/classwx_app_bar.html b/classwx_app_bar.html new file mode 100644 index 0000000..943230e --- /dev/null +++ b/classwx_app_bar.html @@ -0,0 +1,699 @@ + + + + + + + +wxExtend: wxAppBar< W > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+ +
wxAppBar< W > Class Template Reference
+
+
+ +

Dockable application bar template. + More...

+ +

#include <wxex/appbar.h>

+
+Inheritance diagram for wxAppBar< W >:
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

wxAppBar ()
 Creates new application bar.
 
+virtual ~wxAppBar ()
 Destructor.
 
Application bar general management
+wxAppBarState GetState () const
 Returns current state of the application bar.
 
bool IsAlwaysOnTop () const
 Returns whether application bar is displayed always on top. More...
 
bool SetAlwaysOnTop (bool alwaysOnTop=true)
 Sets whether application bar is displayed always on top. More...
 
bool IsAutoHide () const
 Returns if application bar is configured for auto-hide. More...
 
bool SetAutoHide (bool autoHide=true)
 Sets whether application bar is displayed always on top. More...
 
bool GetAllowSizing () const
 Returns if sizing of the application bar is allowed. More...
 
bool SetAllowSizing (bool allow=true)
 Sets whether resizing of the application bar is allowed. More...
 
bool GetAutoHidden () const
 Returns if application bar is auto-hidden right now. More...
 
void MinimiseToEdge (wxAppBarState edge, wxWindow *wnd=NULL)
 Minimize application bar to the edge of the desktop. More...
 
void MaximiseFromEdge (const RECT *rect=NULL)
 Restore application bar from the edge of the desktop. More...
 
void MaximiseFromEdge (wxWindow *wnd)
 Restore application bar from the edge of the desktop. More...
 
void ShowAutoHideAppBar (bool show=true)
 Shows or hides auto-hide application bar. More...
 
+void HideAutoHideAppBar ()
 Hides auto-hide application bar.
 
+ + + + + + + + + + + + + + +

+Protected Member Functions

Notification handlers
virtual void OnChangeState (wxAppBarState stateNew)
 Notification handler when the new state of the application bar is proposed. More...
 
virtual void OnChangeTaskBarState (UINT_PTR state)
 Notification handler when the Windows' taskbar state changes. More...
 
virtual void OnWindowsArrange (bool beginning)
 Notification handler when desktop windows are being arranged (cascaded, tiled, ...) More...
 
virtual void OnAutoHideDenied ()
 Called when application bar was forced from auto-hide to normal docking. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Protected Attributes

+wxAppBarState m_state
 Current state of the application bar.
 
+wxAppBarState m_stateDesired
 Desired state of the application bar while moving/resizing.
 
+int m_flags
 Flags describing application bar's behaviour.
 
+SIZE m_sizeFloat
 Window size when floating (we need it to restore floating size, when we undock)
 
+SIZE m_sizeDocked
 Size of the window when docked (height when wxAppBarState::TOP or wxAppBarState::BOTTOM, width when wxAppBarState::LEFT or wxAppBarState::RIGHT)
 
+SIZE m_sizeMin
 Minimum window size.
 
+UINT_PTR m_stateTaskBar
 TaskBar's current state.
 
+UINT_PTR m_timerID
 Application bar's timer id.
 
+ITaskbarList * m_taskbarList
 Windows's taskbar list interface.
 
+

Detailed Description

+
template<class W>
+class wxAppBar< W >

Dockable application bar template.

+

Member Function Documentation

+ +

◆ GetAllowSizing()

+ +
+
+
+template<class W >
+ + + + + +
+ + + + +
bool wxAppBar< W >::GetAllowSizing
+
+inline
+
+ +

Returns if sizing of the application bar is allowed.

+
Returns
    +
  • true if sizing of the application bar is allowed
  • +
  • false otherwise
  • +
+
+ +
+
+ +

◆ GetAutoHidden()

+ +
+
+
+template<class W >
+ + + + + +
+ + + + +
bool wxAppBar< W >::GetAutoHidden
+
+inline
+
+ +

Returns if application bar is auto-hidden right now.

+
Returns
    +
  • true if application bar is auto-hidden right now
  • +
  • false otherwise
  • +
+
+ +
+
+ +

◆ IsAlwaysOnTop()

+ +
+
+
+template<class W >
+ + + + + +
+ + + + +
bool wxAppBar< W >::IsAlwaysOnTop
+
+inline
+
+ +

Returns whether application bar is displayed always on top.

+
Returns
    +
  • true when application bar is always on top
  • +
  • false otherwise
  • +
+
+ +
+
+ +

◆ IsAutoHide()

+ +
+
+
+template<class W >
+ + + + + +
+ + + + +
bool wxAppBar< W >::IsAutoHide
+
+inline
+
+ +

Returns if application bar is configured for auto-hide.

+
Returns
    +
  • true if application bar is configured for auto-hide
  • +
  • false otherwise
  • +
+
+ +
+
+ +

◆ MaximiseFromEdge() [1/2]

+ +
+
+
+template<class W >
+ + + + + + + + +
void wxAppBar< W >::MaximiseFromEdge (const RECT * rect = NULL)
+
+ +

Restore application bar from the edge of the desktop.

+
Parameters
+ + +
[in]rectThe desired coordinates of the restored window. If NULL internally saved coordinates are used.
+
+
+ +
+
+ +

◆ MaximiseFromEdge() [2/2]

+ +
+
+
+template<class W >
+ + + + + + + + +
void wxAppBar< W >::MaximiseFromEdge (wxWindow * wnd)
+
+ +

Restore application bar from the edge of the desktop.

+
Parameters
+ + +
[in]wndWhen the undocked and docked window is different, this parameter denotes the undocked version.
+
+
+ +
+
+ +

◆ MinimiseToEdge()

+ +
+
+
+template<class W >
+ + + + + + + + + + + + + + + + + + +
void wxAppBar< W >::MinimiseToEdge (wxAppBarState edge,
wxWindow * wnd = NULL 
)
+
+ +

Minimize application bar to the edge of the desktop.

+
Parameters
+ + + +
[in]edgeThe edge at which to dock. Must be either of: wxAppBarState::LEFT, wxAppBarState::TOP, wxAppBarState::RIGHT, or wxAppBarState::BOTTOM.
[in]wndWhen the undocked and docked window is different, this parameter denotes the undocked version.
+
+
+ +
+
+ +

◆ OnAutoHideDenied()

+ +
+
+
+template<class W >
+ + + + + +
+ + + + +
void wxAppBar< W >::OnAutoHideDenied
+
+protectedvirtual
+
+ +

Called when application bar was forced from auto-hide to normal docking.

+

Default implementation displays a warning dialog.

+ +
+
+ +

◆ OnChangeState()

+ +
+
+
+template<class W >
+ + + + + +
+ + + + + + + + +
void wxAppBar< W >::OnChangeState (wxAppBarState stateNew)
+
+protectedvirtual
+
+ +

Notification handler when the new state of the application bar is proposed.

+

Derived classes can implement their own. However, overriden virtual method should call the parent's implementation too.

+
Parameters
+ + +
[in]stateNewNew state about to take effect.
+
+
+ +
+
+ +

◆ OnChangeTaskBarState()

+ +
+
+
+template<class W >
+ + + + + +
+ + + + + + + + +
void wxAppBar< W >::OnChangeTaskBarState (UINT_PTR state)
+
+protectedvirtual
+
+ +

Notification handler when the Windows' taskbar state changes.

+

Derived classes can implement their own. However, overriden virtual method should call the parent's implementation too.

+
Parameters
+ + +
[in]stateNew taskbar state.
+
+
+ +
+
+ +

◆ OnWindowsArrange()

+ +
+
+
+template<class W >
+ + + + + +
+ + + + + + + + +
void wxAppBar< W >::OnWindowsArrange (bool beginning)
+
+protectedvirtual
+
+ +

Notification handler when desktop windows are being arranged (cascaded, tiled, ...)

+

Derived classes can implement their own. However, overriden virtual method should call the parent's implementation too.

+
Parameters
+ + +
[in]beginningtrue when windows arrangement starts and false when arrangement ends.
+
+
+ +
+
+ +

◆ SetAllowSizing()

+ +
+
+
+template<class W >
+ + + + + +
+ + + + + + + + +
bool wxAppBar< W >::SetAllowSizing (bool allow = true)
+
+inline
+
+ +

Sets whether resizing of the application bar is allowed.

+
Parameters
+ + +
[in]allowLogical variable to control whether resizing is to be enabled (true) or disabled (false).
+
+
+ +
+
+ +

◆ SetAlwaysOnTop()

+ +
+
+
+template<class W >
+ + + + + +
+ + + + + + + + +
bool wxAppBar< W >::SetAlwaysOnTop (bool alwaysOnTop = true)
+
+inline
+
+ +

Sets whether application bar is displayed always on top.

+
Parameters
+ + +
[in]alwaysOnTopLogical variable to control whether always-on-top behaviour is to be enabled (true) or disabled (false).
+
+
+ +
+
+ +

◆ SetAutoHide()

+ +
+
+
+template<class W >
+ + + + + +
+ + + + + + + + +
bool wxAppBar< W >::SetAutoHide (bool autoHide = true)
+
+inline
+
+ +

Sets whether application bar is displayed always on top.

+
Parameters
+ + +
[in]autoHideLogical variable to control whether auto-hide behaviour is to be enabled (true) or disabled (false).
+
+
+ +
+
+ +

◆ ShowAutoHideAppBar()

+ +
+
+
+template<class W >
+ + + + + + + + +
void wxAppBar< W >::ShowAutoHideAppBar (bool show = true)
+
+ +

Shows or hides auto-hide application bar.

+
Parameters
+ + +
[in]showLogical variable to control whether application bar is be shown (true) or hidden (false).
+
+
+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classwx_app_bar.png b/classwx_app_bar.png new file mode 100644 index 0000000000000000000000000000000000000000..58a8405d80b54ad724523f9218c3a273cddd018a GIT binary patch literal 424 zcmeAS@N?(olHy`uVBq!ia0vp^nLr%C!3-pIHCN{XDTx4|5ZC|z{{xvX-h3_XKQsZz z0^=n{o0IhD$1*adtODK1ok1nQmfwb)U*hJH5;QrYjD|3>HJrL`I@Ip1?%^VE((wI3E&uqyJTxD?CS!79<@!yl1r>ilTXEJ@5q{g6+ zMrFwxZx%3UV7SEc;Hk3D>H~Eh4A-VaFweNYHB<8Ezt^p=+Ey0PN;*FKZWUz2NVrq{md{uPgzw_k0^opt#|;j0B#tWB(z#?Q<;J2|te zDz>i9ZMplcUvkT48GWx0Su^k6&gIKBZNHbSGWA*ie2c{KoT#%eFO}F-=lXrU`={oZ yp5MLR@*@(;2l#(XS8Iq@^ks;1@=Z$ + + + + + + +wxExtend: Member List + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
wxAppBarDialog Member List
+
+
+ +

This is the complete list of members for wxAppBarDialog, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Create(wxWindow *parent, wxWindowID id, const wxString &title, wxAppBarState state=wxAppBarState::FLOAT, int flags=wxABF_ALLOWANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxDEFAULT_DIALOG_STYLE, const wxString &name=wxDialogNameStr)wxAppBarDialog
GetAllowSizing() constwxAppBar< wxDialog >inline
GetAutoHidden() constwxAppBar< wxDialog >inline
GetState() constwxAppBar< wxDialog >inline
HideAutoHideAppBar()wxAppBar< wxDialog >inline
IsAlwaysOnTop() constwxAppBar< wxDialog >inline
IsAutoHide() constwxAppBar< wxDialog >inline
m_flagswxAppBar< wxDialog >protected
m_sizeDockedwxAppBar< wxDialog >protected
m_sizeFloatwxAppBar< wxDialog >protected
m_sizeMinwxAppBar< wxDialog >protected
m_statewxAppBar< wxDialog >protected
m_stateDesiredwxAppBar< wxDialog >protected
m_stateTaskBarwxAppBar< wxDialog >protected
m_taskbarListwxAppBar< wxDialog >protected
m_timerIDwxAppBar< wxDialog >protected
MaximiseFromEdge(const RECT *rect=NULL)wxAppBar< wxDialog >
MaximiseFromEdge(wxWindow *wnd)wxAppBar< wxDialog >
MinimiseToEdge(wxAppBarState edge, wxWindow *wnd=NULL)wxAppBar< wxDialog >
OnAutoHideDenied()wxAppBar< wxDialog >protectedvirtual
OnChangeState(wxAppBarState stateNew)wxAppBar< wxDialog >protectedvirtual
OnChangeTaskBarState(UINT_PTR state)wxAppBar< wxDialog >protectedvirtual
OnWindowsArrange(bool beginning)wxAppBar< wxDialog >protectedvirtual
SetAllowSizing(bool allow=true)wxAppBar< wxDialog >inline
SetAlwaysOnTop(bool alwaysOnTop=true)wxAppBar< wxDialog >inline
SetAutoHide(bool autoHide=true)wxAppBar< wxDialog >inline
ShowAutoHideAppBar(bool show=true)wxAppBar< wxDialog >
wxAppBar()wxAppBar< wxDialog >
wxAppBarDialog()wxAppBarDialog
wxAppBarDialog(wxWindow *parent, wxWindowID id, const wxString &title, wxAppBarState state=wxAppBarState::FLOAT, int flags=wxABF_ALLOWANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxDEFAULT_DIALOG_STYLE, const wxString &name=wxDialogNameStr)wxAppBarDialog
~wxAppBar()wxAppBar< wxDialog >virtual
+ + + + diff --git a/classwx_app_bar_dialog.html b/classwx_app_bar_dialog.html new file mode 100644 index 0000000..da9dd64 --- /dev/null +++ b/classwx_app_bar_dialog.html @@ -0,0 +1,217 @@ + + + + + + + +wxExtend: wxAppBarDialog Class Reference + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+ +
wxAppBarDialog Class Reference
+
+
+ +

Dockable application bar dialog. + More...

+ +

#include <wxex/appbar.h>

+
+Inheritance diagram for wxAppBarDialog:
+
+
+ + +wxAppBar< wxDialog > + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

wxAppBarDialog ()
 Creates application bar dialog.
 
wxAppBarDialog (wxWindow *parent, wxWindowID id, const wxString &title, wxAppBarState state=wxAppBarState::FLOAT, int flags=wxABF_ALLOWANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxDEFAULT_DIALOG_STYLE, const wxString &name=wxDialogNameStr)
 Creates application bar dialog.
 
+bool Create (wxWindow *parent, wxWindowID id, const wxString &title, wxAppBarState state=wxAppBarState::FLOAT, int flags=wxABF_ALLOWANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxDEFAULT_DIALOG_STYLE, const wxString &name=wxDialogNameStr)
 Creates application bar dialog.
 
- Public Member Functions inherited from wxAppBar< wxDialog >
wxAppBar ()
 Creates new application bar.
 
+virtual ~wxAppBar ()
 Destructor.
 
+wxAppBarState GetState () const
 Returns current state of the application bar.
 
bool IsAlwaysOnTop () const
 Returns whether application bar is displayed always on top. More...
 
bool SetAlwaysOnTop (bool alwaysOnTop=true)
 Sets whether application bar is displayed always on top. More...
 
bool IsAutoHide () const
 Returns if application bar is configured for auto-hide. More...
 
bool SetAutoHide (bool autoHide=true)
 Sets whether application bar is displayed always on top. More...
 
bool GetAllowSizing () const
 Returns if sizing of the application bar is allowed. More...
 
bool SetAllowSizing (bool allow=true)
 Sets whether resizing of the application bar is allowed. More...
 
bool GetAutoHidden () const
 Returns if application bar is auto-hidden right now. More...
 
void MinimiseToEdge (wxAppBarState edge, wxWindow *wnd=NULL)
 Minimize application bar to the edge of the desktop. More...
 
void MaximiseFromEdge (const RECT *rect=NULL)
 Restore application bar from the edge of the desktop. More...
 
void MaximiseFromEdge (wxWindow *wnd)
 Restore application bar from the edge of the desktop. More...
 
void ShowAutoHideAppBar (bool show=true)
 Shows or hides auto-hide application bar. More...
 
+void HideAutoHideAppBar ()
 Hides auto-hide application bar.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Protected Member Functions inherited from wxAppBar< wxDialog >
virtual void OnChangeState (wxAppBarState stateNew)
 Notification handler when the new state of the application bar is proposed. More...
 
virtual void OnChangeTaskBarState (UINT_PTR state)
 Notification handler when the Windows' taskbar state changes. More...
 
virtual void OnWindowsArrange (bool beginning)
 Notification handler when desktop windows are being arranged (cascaded, tiled, ...) More...
 
virtual void OnAutoHideDenied ()
 Called when application bar was forced from auto-hide to normal docking. More...
 
- Protected Attributes inherited from wxAppBar< wxDialog >
+wxAppBarState m_state
 Current state of the application bar.
 
+wxAppBarState m_stateDesired
 Desired state of the application bar while moving/resizing.
 
+int m_flags
 Flags describing application bar's behaviour.
 
+SIZE m_sizeFloat
 Window size when floating (we need it to restore floating size, when we undock)
 
+SIZE m_sizeDocked
 Size of the window when docked (height when wxAppBarState::TOP or wxAppBarState::BOTTOM, width when wxAppBarState::LEFT or wxAppBarState::RIGHT)
 
+SIZE m_sizeMin
 Minimum window size.
 
+UINT_PTR m_stateTaskBar
 TaskBar's current state.
 
+UINT_PTR m_timerID
 Application bar's timer id.
 
+ITaskbarList * m_taskbarList
 Windows's taskbar list interface.
 
+

Detailed Description

+

Dockable application bar dialog.

+

The documentation for this class was generated from the following files:
    +
  • include/wxex/appbar.h
  • +
  • src/appbar.cpp
  • +
+
+ + + + diff --git a/classwx_app_bar_dialog.png b/classwx_app_bar_dialog.png new file mode 100644 index 0000000000000000000000000000000000000000..c89a61b3aa8556cb1c58197a1bc523d706a90521 GIT binary patch literal 856 zcmeAS@N?(olHy`uVBq!ia0vp^6M?vcgBeI(xc}1$NJ#|vgt-3y{~ySF@#br3|Dg#$ z78oBmaDcV*jy#adQ4-`A%m7pb0#{Fk7%?y~J@<5R45?szJNM$G)e1Zg{DsSY{ec6s7hhNG$-AZ&dUgBH zJ1<^*NL_6C$2EB6;raKs7QS8g*SlfWE7N=CSz^~#e9e9T@6HLooi`-6HebBIeqwgW z>Oa5TzJ7nSuJ+)GbK63`g*~`ky2X6c`NcoCdDVSfvvSqHt_ZjIRm!1PS8q8R9J<$Q z-|x`S+DjgxSJjsUYA$tQdLSmpu#hADONC1?SNazbu4N+UHO@;N@LwX>;4j7ag8+5@ ze~yXoWf3kl!HEt_CU$iAOLcbquyAvANpYW9@8YuV;^FIt_I-BdT8j_v{-UHL*ZkqM zTk(VLc}pa1_1~^nU2;@+@9&p6({BCz6W4y@;NkjT30IEKe)4&F>>HliS5J#hB=tt! z|CVQHwDdyxS(e$Un+|7pZSA{edOM`^?54=YjT6_dfBNmtinDu-jdovC-F~|)E2Mpn zG>FWBw2Jko9Vvvn8q&Y4b+cmHi9kz)DBU;OopD;d?-elahTn{qhv zX6nZCi>;n~iWC-iLo05{9V(+rdSxSrr-24pz zEyh(gi!@t}tGHN$yV9qm^FC0&#Bo5qm!XCL^}OCp3l#kfOcUK0>@ry%e70U3m}4v7 z@bk;It&cyM>^G8Pd!J^Pz58&+yNZjSw?BBk^zYV|EjyNOe_B(w{;k=e*fwo9+pU3f z?B6D-$5&S;XWzfKH$CO^jMPmtv%hWa%Q>>D+N7$ux6dv2-Q0;cw=N9K-G6e$)s~y{ zlAj%3_qNAv_cu^bluGUIGrL-sFFRK%_k2|Sw=2e5a$mnKpJUpfn7xx}kE_mN|5qFd u2bO1-)VzMOTmFF+(51qcR!j*}`pDn^xA^YWrwO3E!{F)a=d#Wzp$Pz!3aU5& literal 0 HcmV?d00001 diff --git a/classwx_app_bar_frame-members.html b/classwx_app_bar_frame-members.html new file mode 100644 index 0000000..5d0e379 --- /dev/null +++ b/classwx_app_bar_frame-members.html @@ -0,0 +1,109 @@ + + + + + + + +wxExtend: Member List + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
wxAppBarFrame Member List
+
+
+ +

This is the complete list of members for wxAppBarFrame, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Create(wxWindow *parent, wxWindowID id, const wxString &title, wxAppBarState state=wxAppBarState::FLOAT, int flags=wxABF_ALLOWANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxDEFAULT_FRAME_STYLE, const wxString &name=wxFrameNameStr)wxAppBarFrame
GetAllowSizing() constwxAppBar< wxFrame >inline
GetAutoHidden() constwxAppBar< wxFrame >inline
GetState() constwxAppBar< wxFrame >inline
HideAutoHideAppBar()wxAppBar< wxFrame >inline
IsAlwaysOnTop() constwxAppBar< wxFrame >inline
IsAutoHide() constwxAppBar< wxFrame >inline
m_flagswxAppBar< wxFrame >protected
m_sizeDockedwxAppBar< wxFrame >protected
m_sizeFloatwxAppBar< wxFrame >protected
m_sizeMinwxAppBar< wxFrame >protected
m_statewxAppBar< wxFrame >protected
m_stateDesiredwxAppBar< wxFrame >protected
m_stateTaskBarwxAppBar< wxFrame >protected
m_taskbarListwxAppBar< wxFrame >protected
m_timerIDwxAppBar< wxFrame >protected
MaximiseFromEdge(const RECT *rect=NULL)wxAppBar< wxFrame >
MaximiseFromEdge(wxWindow *wnd)wxAppBar< wxFrame >
MinimiseToEdge(wxAppBarState edge, wxWindow *wnd=NULL)wxAppBar< wxFrame >
OnAutoHideDenied()wxAppBar< wxFrame >protectedvirtual
OnChangeState(wxAppBarState stateNew)wxAppBar< wxFrame >protectedvirtual
OnChangeTaskBarState(UINT_PTR state)wxAppBar< wxFrame >protectedvirtual
OnWindowsArrange(bool beginning)wxAppBar< wxFrame >protectedvirtual
SetAllowSizing(bool allow=true)wxAppBar< wxFrame >inline
SetAlwaysOnTop(bool alwaysOnTop=true)wxAppBar< wxFrame >inline
SetAutoHide(bool autoHide=true)wxAppBar< wxFrame >inline
ShowAutoHideAppBar(bool show=true)wxAppBar< wxFrame >
wxAppBar()wxAppBar< wxFrame >
wxAppBarFrame()wxAppBarFrame
wxAppBarFrame(wxWindow *parent, wxWindowID id, const wxString &title, wxAppBarState state=wxAppBarState::FLOAT, int flags=wxABF_ALLOWANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxDEFAULT_FRAME_STYLE, const wxString &name=wxFrameNameStr)wxAppBarFrame
~wxAppBar()wxAppBar< wxFrame >virtual
+ + + + diff --git a/classwx_app_bar_frame.html b/classwx_app_bar_frame.html new file mode 100644 index 0000000..dec30fe --- /dev/null +++ b/classwx_app_bar_frame.html @@ -0,0 +1,217 @@ + + + + + + + +wxExtend: wxAppBarFrame Class Reference + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+ +
wxAppBarFrame Class Reference
+
+
+ +

Dockable application bar frame. + More...

+ +

#include <wxex/appbar.h>

+
+Inheritance diagram for wxAppBarFrame:
+
+
+ + +wxAppBar< wxFrame > + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

wxAppBarFrame ()
 Creates application bar frame.
 
wxAppBarFrame (wxWindow *parent, wxWindowID id, const wxString &title, wxAppBarState state=wxAppBarState::FLOAT, int flags=wxABF_ALLOWANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxDEFAULT_FRAME_STYLE, const wxString &name=wxFrameNameStr)
 Creates application bar frame.
 
+bool Create (wxWindow *parent, wxWindowID id, const wxString &title, wxAppBarState state=wxAppBarState::FLOAT, int flags=wxABF_ALLOWANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxDEFAULT_FRAME_STYLE, const wxString &name=wxFrameNameStr)
 Creates application bar frame.
 
- Public Member Functions inherited from wxAppBar< wxFrame >
wxAppBar ()
 Creates new application bar.
 
+virtual ~wxAppBar ()
 Destructor.
 
+wxAppBarState GetState () const
 Returns current state of the application bar.
 
bool IsAlwaysOnTop () const
 Returns whether application bar is displayed always on top. More...
 
bool SetAlwaysOnTop (bool alwaysOnTop=true)
 Sets whether application bar is displayed always on top. More...
 
bool IsAutoHide () const
 Returns if application bar is configured for auto-hide. More...
 
bool SetAutoHide (bool autoHide=true)
 Sets whether application bar is displayed always on top. More...
 
bool GetAllowSizing () const
 Returns if sizing of the application bar is allowed. More...
 
bool SetAllowSizing (bool allow=true)
 Sets whether resizing of the application bar is allowed. More...
 
bool GetAutoHidden () const
 Returns if application bar is auto-hidden right now. More...
 
void MinimiseToEdge (wxAppBarState edge, wxWindow *wnd=NULL)
 Minimize application bar to the edge of the desktop. More...
 
void MaximiseFromEdge (const RECT *rect=NULL)
 Restore application bar from the edge of the desktop. More...
 
void MaximiseFromEdge (wxWindow *wnd)
 Restore application bar from the edge of the desktop. More...
 
void ShowAutoHideAppBar (bool show=true)
 Shows or hides auto-hide application bar. More...
 
+void HideAutoHideAppBar ()
 Hides auto-hide application bar.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Protected Member Functions inherited from wxAppBar< wxFrame >
virtual void OnChangeState (wxAppBarState stateNew)
 Notification handler when the new state of the application bar is proposed. More...
 
virtual void OnChangeTaskBarState (UINT_PTR state)
 Notification handler when the Windows' taskbar state changes. More...
 
virtual void OnWindowsArrange (bool beginning)
 Notification handler when desktop windows are being arranged (cascaded, tiled, ...) More...
 
virtual void OnAutoHideDenied ()
 Called when application bar was forced from auto-hide to normal docking. More...
 
- Protected Attributes inherited from wxAppBar< wxFrame >
+wxAppBarState m_state
 Current state of the application bar.
 
+wxAppBarState m_stateDesired
 Desired state of the application bar while moving/resizing.
 
+int m_flags
 Flags describing application bar's behaviour.
 
+SIZE m_sizeFloat
 Window size when floating (we need it to restore floating size, when we undock)
 
+SIZE m_sizeDocked
 Size of the window when docked (height when wxAppBarState::TOP or wxAppBarState::BOTTOM, width when wxAppBarState::LEFT or wxAppBarState::RIGHT)
 
+SIZE m_sizeMin
 Minimum window size.
 
+UINT_PTR m_stateTaskBar
 TaskBar's current state.
 
+UINT_PTR m_timerID
 Application bar's timer id.
 
+ITaskbarList * m_taskbarList
 Windows's taskbar list interface.
 
+

Detailed Description

+

Dockable application bar frame.

+

The documentation for this class was generated from the following files:
    +
  • include/wxex/appbar.h
  • +
  • src/appbar.cpp
  • +
+
+ + + + diff --git a/classwx_app_bar_frame.png b/classwx_app_bar_frame.png new file mode 100644 index 0000000000000000000000000000000000000000..9ba1dc1b1f51dbbf1565ddf6f932ac26ceaae4c6 GIT binary patch literal 867 zcmeAS@N?(olHy`uVBq!ia0vp^6M?vcgBeI(xc}1$NJ#|vgt-3y{~ySF@#br3|Dg#$ z78oBmaDcV*jy#adQ4-`A%m7pb0#{Fk7%?y~ee!g145?szJNNCR)e1Zg{DsH%{FlBj zc0pljeCE zq|Ycov!as3W?+2oo3^=YSp|at(((Mm(8^``&HL#v$$s4t$F`@H!oZDEA)^@ z=vDQekkDEXBi(E9l%QFh4gDLKe2$j5y|$Wtsl?5E;mIk_jJr0oeGpD$c_8e@U`K%Z zJiT{XYUHveSC z<)p=Lmb$C=^{!aZ<83$ZEjYW$|Jm(NK0DWniU_`}Fu3*T_7ltKomXx=zI6MkVz=Z? zA9O}Wcrmivud9o-X`1A z_jmgIjTcL6YcESoy}t0C`_zl;Y_DWYc)IY`-6xZ!O0#E8yzgEs-LuKUEl%Fn)N0<= zy@qS7U5~UShs@73zh<4Sq~ts+SVid*Fpz-W`S-oM<44QHj*jzF+)i)OF=qTA7}l_I z#<`5x^x#?NUZ|POyj0^>c#WY>sfVHF5XS*^0@S}vfnJ)vtego-P{r#cdy`K8WSAAm z&wC(MPm;I!v-{oW@2}i7+~uG0%{2SN+o1coil%w9x6b*w&1cH(D8~l%Ifl1_wsuu6 zELyqo?wf73zmNP~{(b^iLc{j#ZAsB;(Mi!K_ic`R%lbN~_Qr~JmnBViU$Zjzou;1i zBlf-Y)p;4)mIq6|jml3c%#~|Ud>3iGF4L_}ey(BFMmPW7zVzJpGaVnB3Fq?fskp|_ vc13;Pmt=WhGWfV(9_+VeCSICLXZ~P!kSfvs!sN#T%n=Npu6{1-oD!M<@#LED literal 0 HcmV?d00001 diff --git a/classwx_co_initializer-members.html b/classwx_co_initializer-members.html new file mode 100644 index 0000000..7991000 --- /dev/null +++ b/classwx_co_initializer-members.html @@ -0,0 +1,82 @@ + + + + + + + +wxExtend: Member List + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
wxCoInitializer Member List
+
+
+ +

This is the complete list of members for wxCoInitializer, including all inherited members.

+ + + + + +
IsOk() constwxCoInitializerinline
operator bool() constwxCoInitializerinline
wxCoInitializer(DWORD dwCoInit=COINIT_MULTITHREADED)wxCoInitializer
~wxCoInitializer()wxCoInitializervirtual
+ + + + diff --git a/classwx_co_initializer.html b/classwx_co_initializer.html new file mode 100644 index 0000000..22192f4 --- /dev/null +++ b/classwx_co_initializer.html @@ -0,0 +1,198 @@ + + + + + + + +wxExtend: wxCoInitializer Class Reference + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+ +
wxCoInitializer Class Reference
+
+
+ +

Create an object of this class on stack to initialize/cleanup the COM automatically. + More...

+ +

#include <wxex/comutils.h>

+ + + + + + + + + + + + + + +

+Public Member Functions

 wxCoInitializer (DWORD dwCoInit=COINIT_MULTITHREADED)
 Initialize the COM. More...
 
+virtual ~wxCoInitializer ()
 Dtor clean up.
 
bool IsOk () const
 Has the initialization been successful? (explicit test) More...
 
 operator bool () const
 Has the initialization been successful? (implicit test) More...
 
+

Detailed Description

+

Create an object of this class on stack to initialize/cleanup the COM automatically.

+

Constructor & Destructor Documentation

+ +

◆ wxCoInitializer()

+ +
+
+ + + + + + + + +
wxCoInitializer::wxCoInitializer (DWORD dwCoInit = COINIT_MULTITHREADED)
+
+ +

Initialize the COM.

+
Parameters
+ + +
[in]dwCoInitThe concurrency model and initialization options for the thread to pass to CoInitializeEx()
+
+
+ +
+
+

Member Function Documentation

+ +

◆ IsOk()

+ +
+
+ + + + + +
+ + + + + + + +
bool wxCoInitializer::IsOk () const
+
+inline
+
+ +

Has the initialization been successful? (explicit test)

+
Returns
    +
  • true if initialization succeeded
  • +
  • false otherwise
  • +
+
+ +
+
+ +

◆ operator bool()

+ +
+
+ + + + + +
+ + + + + + + +
wxCoInitializer::operator bool () const
+
+inline
+
+ +

Has the initialization been successful? (implicit test)

+
Returns
    +
  • true if initialization succeeded
  • +
  • false otherwise
  • +
+
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/classwx_crypto_hash-members.html b/classwx_crypto_hash-members.html new file mode 100644 index 0000000..b4d2dcd --- /dev/null +++ b/classwx_crypto_hash-members.html @@ -0,0 +1,90 @@ + + + + + + + +wxExtend: Member List + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
wxCryptoHash Member List
+
+
+ +

This is the complete list of members for wxCryptoHash, including all inherited members.

+ + + + + + + + + + + + + +
GetValue(wxMemoryBuffer &hash)wxCryptoHashvirtual
Hash(_In_reads_bytes_(size) const void *data, size_t size)wxCryptoHash
Hash(const wxMemoryBuffer &data)wxCryptoHashinline
HashAsUTF8(const wxString &str)wxCryptoHashinline
HashFile(const wxString &fileName)wxCryptoHashinline
IsOk() const noexceptwxCryptoHashinline
m_hwxCryptoHashprotected
operator HCRYPTHASH() const noexceptwxCryptoHashinline
Sign(wxMemoryBuffer &signature)wxCryptoHash
Sign()wxCryptoHashinline
wxCryptoHash()wxCryptoHash
~wxCryptoHash()wxCryptoHashvirtual
+ + + + diff --git a/classwx_crypto_hash.html b/classwx_crypto_hash.html new file mode 100644 index 0000000..b454661 --- /dev/null +++ b/classwx_crypto_hash.html @@ -0,0 +1,462 @@ + + + + + + + +wxExtend: wxCryptoHash Class Reference + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+ +
+ +

Cryptographics Hash Base. + More...

+ +

#include <wxex/crypto.h>

+
+Inheritance diagram for wxCryptoHash:
+
+
+ + +wxCryptoHashSHA1 + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

wxCryptoHash ()
 Creates a new cryptographics hash.
 
+virtual ~wxCryptoHash ()
 Destructor.
 
bool IsOk () const noexcept
 Has the hash creation been successful? More...
 
 operator HCRYPTHASH () const noexcept
 
bool Hash (_In_reads_bytes_(size) const void *data, size_t size)
 Hashes given block of data. More...
 
bool Hash (const wxMemoryBuffer &data)
 Hashes given block of data. More...
 
bool HashAsUTF8 (const wxString &str)
 Converts string to UTF-8 and hashes it. More...
 
bool HashFile (const wxString &fileName)
 Hashes a file. More...
 
virtual bool GetValue (wxMemoryBuffer &hash)
 Finish hashing and return hash data. More...
 
bool Sign (wxMemoryBuffer &signature)
 Signs the hash using session key. More...
 
wxMemoryBuffer Sign ()
 Signs the hash using session key. More...
 
+ + + + +

+Protected Attributes

+HCRYPTHASH m_h
 Hash Handle.
 
+

Detailed Description

+

Cryptographics Hash Base.

+

Member Function Documentation

+ +

◆ GetValue()

+ +
+
+ + + + + +
+ + + + + + + + +
bool wxCryptoHash::GetValue (wxMemoryBuffer & hash)
+
+virtual
+
+ +

Finish hashing and return hash data.

+
Parameters
+ + +
[out]hashHash data
+
+
+
Returns
    +
  • true if succeeded
  • +
  • false otherwise
  • +
+
+ +

Reimplemented in wxCryptoHashSHA1.

+ +
+
+ +

◆ Hash() [1/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
bool wxCryptoHash::Hash (_In_reads_bytes_(size) const void * data,
size_t size 
)
+
+ +

Hashes given block of data.

+
Parameters
+ + + +
[in]dataPointer to memory block
[in]sizeSize of memory block in bytes
+
+
+
Returns
    +
  • true if hashing succeeded
  • +
  • false otherwise
  • +
+
+ +
+
+ +

◆ Hash() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + +
bool wxCryptoHash::Hash (const wxMemoryBuffer & data)
+
+inline
+
+ +

Hashes given block of data.

+
Parameters
+ + +
[in]dataMemory block
+
+
+
Returns
    +
  • true if hashing succeeded
  • +
  • false otherwise
  • +
+
+ +
+
+ +

◆ HashAsUTF8()

+ +
+
+ + + + + +
+ + + + + + + + +
bool wxCryptoHash::HashAsUTF8 (const wxString & str)
+
+inline
+
+ +

Converts string to UTF-8 and hashes it.

+
Parameters
+ + +
[in]strString to hash
+
+
+
Returns
    +
  • true if hashing succeeded
  • +
  • false otherwise
  • +
+
+ +
+
+ +

◆ HashFile()

+ +
+
+ + + + + +
+ + + + + + + + +
bool wxCryptoHash::HashFile (const wxString & fileName)
+
+inline
+
+ +

Hashes a file.

+
Parameters
+ + +
[in]fileNameThe path of the file to calculate hash of
+
+
+
Returns
    +
  • true if hashing succeeded
  • +
  • false otherwise
  • +
+
+ +
+
+ +

◆ IsOk()

+ +
+
+ + + + + +
+ + + + + + + +
bool wxCryptoHash::IsOk () const
+
+inlinenoexcept
+
+ +

Has the hash creation been successful?

+
Returns
    +
  • true if creation succeeded
  • +
  • false otherwise
  • +
+
+ +
+
+ +

◆ operator HCRYPTHASH()

+ +
+
+ + + + + +
+ + + + + + + +
wxCryptoHash::operator HCRYPTHASH () const
+
+inlinenoexcept
+
+
Returns
Hash handle to be used in native API calls.
+ +
+
+ +

◆ Sign() [1/2]

+ +
+
+ + + + + +
+ + + + + + + +
wxMemoryBuffer wxCryptoHash::Sign ()
+
+inline
+
+ +

Signs the hash using session key.

+
Returns
Digital Signature
+ +
+
+ +

◆ Sign() [2/2]

+ +
+
+ + + + + + + + +
bool wxCryptoHash::Sign (wxMemoryBuffer & signature)
+
+ +

Signs the hash using session key.

+
Parameters
+ + +
[in,out]signatureDigital signature
+
+
+
Returns
    +
  • true if signing succeeded
  • +
  • false otherwise
  • +
+
+ +
+
+
The documentation for this class was generated from the following files:
    +
  • include/wxex/crypto.h
  • +
  • src/crypto.cpp
  • +
+
+ + + + diff --git a/classwx_crypto_hash.png b/classwx_crypto_hash.png new file mode 100644 index 0000000000000000000000000000000000000000..c657427900c1f5141550a3876170834b896ccd5b GIT binary patch literal 594 zcmV-Y0vTJkN^MxkN^Mxkifve1&Q1r00008bW%=J0RR90|NsC0)yh;d0005uNkli>W8q~L%d&|#9U{IEp2X~4$EfT6F15Q3u!0B+j+%?J2hsaOFn zs@?gkcl$(G<|ntY@4w)`dy|xF8M$@n_;|m|%kXuvw0E|03;fKnd~GG@X)6io*xIgc z02fWy-^8smYcp#pnUwD|n?@Z0(Caq8O{1UxS*>O44Zd#lW&P{0Iln1}Tl^-Z`EB@% z`~MAoIsfL2X<^UmUrX;MA7HKz*8#w?Zt}+$4Zt6Dk6%w1z!UBNzs(2m()$VtAp|!8 zJkbllQO^9=%QpdM{(*N*z?=Wy*Z<}NIBN3&{IvN1e%gEhKW#pMpEe)BPn!?mr_Bd= zpcrF(pjV7BJ`hnv#7&#O`641$h2s$sxvF;Ouiou!YXs|5OuzDz$2fsS{u#kI1^uZr zJNaj#*`j`G$*mOWZBC>6scA^mNW+Succ?sQtR}YFCsG6hwDH@OV literal 0 HcmV?d00001 diff --git a/classwx_crypto_hash_s_h_a1-members.html b/classwx_crypto_hash_s_h_a1-members.html new file mode 100644 index 0000000..3f286fb --- /dev/null +++ b/classwx_crypto_hash_s_h_a1-members.html @@ -0,0 +1,91 @@ + + + + + + + +wxExtend: Member List + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
wxCryptoHashSHA1 Member List
+
+
+ +

This is the complete list of members for wxCryptoHashSHA1, including all inherited members.

+ + + + + + + + + + + + + + +
GetValue(wxMemoryBuffer &hash)wxCryptoHashSHA1virtual
Hash(_In_reads_bytes_(size) const void *data, size_t size)wxCryptoHash
Hash(const wxMemoryBuffer &data)wxCryptoHashinline
HashAsUTF8(const wxString &str)wxCryptoHashinline
HashFile(const wxString &fileName)wxCryptoHashinline
IsOk() const noexceptwxCryptoHashinline
m_hwxCryptoHashprotected
operator HCRYPTHASH() const noexceptwxCryptoHashinline
Sign(wxMemoryBuffer &signature)wxCryptoHash
Sign()wxCryptoHashinline
wxCryptoHash()wxCryptoHash
wxCryptoHashSHA1(wxCryptoSession &session)wxCryptoHashSHA1
~wxCryptoHash()wxCryptoHashvirtual
+ + + + diff --git a/classwx_crypto_hash_s_h_a1.html b/classwx_crypto_hash_s_h_a1.html new file mode 100644 index 0000000..a02b7d1 --- /dev/null +++ b/classwx_crypto_hash_s_h_a1.html @@ -0,0 +1,194 @@ + + + + + + + +wxExtend: wxCryptoHashSHA1 Class Reference + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+ +
wxCryptoHashSHA1 Class Reference
+
+
+ +

SHA-1 Cryptographics Hash. + More...

+ +

#include <wxex/crypto.h>

+
+Inheritance diagram for wxCryptoHashSHA1:
+
+
+ + +wxCryptoHash + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

wxCryptoHashSHA1 (wxCryptoSession &session)
 Creates a new cryptographics SHA-1 hash.
 
virtual bool GetValue (wxMemoryBuffer &hash)
 Finish hashing and return hash data. More...
 
- Public Member Functions inherited from wxCryptoHash
wxCryptoHash ()
 Creates a new cryptographics hash.
 
+virtual ~wxCryptoHash ()
 Destructor.
 
bool IsOk () const noexcept
 Has the hash creation been successful? More...
 
 operator HCRYPTHASH () const noexcept
 
bool Hash (_In_reads_bytes_(size) const void *data, size_t size)
 Hashes given block of data. More...
 
bool Hash (const wxMemoryBuffer &data)
 Hashes given block of data. More...
 
bool HashAsUTF8 (const wxString &str)
 Converts string to UTF-8 and hashes it. More...
 
bool HashFile (const wxString &fileName)
 Hashes a file. More...
 
virtual bool GetValue (wxMemoryBuffer &hash)
 Finish hashing and return hash data. More...
 
bool Sign (wxMemoryBuffer &signature)
 Signs the hash using session key. More...
 
wxMemoryBuffer Sign ()
 Signs the hash using session key. More...
 
+ + + + + +

+Additional Inherited Members

- Protected Attributes inherited from wxCryptoHash
+HCRYPTHASH m_h
 Hash Handle.
 
+

Detailed Description

+

SHA-1 Cryptographics Hash.

+

Member Function Documentation

+ +

◆ GetValue()

+ +
+
+ + + + + +
+ + + + + + + + +
bool wxCryptoHashSHA1::GetValue (wxMemoryBuffer & hash)
+
+virtual
+
+ +

Finish hashing and return hash data.

+
Parameters
+ + +
[out]hashHash data
+
+
+
Returns
    +
  • true if succeeded
  • +
  • false otherwise
  • +
+
+ +

Reimplemented from wxCryptoHash.

+ +
+
+
The documentation for this class was generated from the following files:
    +
  • include/wxex/crypto.h
  • +
  • src/crypto.cpp
  • +
+
+ + + + diff --git a/classwx_crypto_hash_s_h_a1.png b/classwx_crypto_hash_s_h_a1.png new file mode 100644 index 0000000000000000000000000000000000000000..78fe37c916dd832a005c1ba50d9325e81096883f GIT binary patch literal 588 zcmV-S0<-;zP)vTJkN^MxkN^Mxkifve1&Q1r00008bW%=J0RR90|NsC0)yh;d0005oNklq0HsxZo3>f-K&N&B)EJ7>j3ck|YjwUM=yowR*^2InD3y&m)1F#7c$*;;%b@a>>a`(G2{n%^YDBYrcb z`)&9)&;J|za{t{Ov&6p2e@nfGd`Y_2o9951ZtEd`{Lo0!FZGOHZNh(B0=;akLxZ>!>r~EdIe*GoaTFk)cnr{bv+W%^H&2Lub2YaJFv1_J{yvnr3zj^-O z;FtT~rf&&jkpGr??k=@P@A&}Ndh;9rJl0MA_@M##Q1|%#s{!yG&Hum22Z+-8q@ + + + + + + +wxExtend: Member List + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
wxCryptoKey Member List
+
+
+ +

This is the complete list of members for wxCryptoKey, including all inherited members.

+ + + + + + + + +
ImportPrivate(wxCryptoSession &session, _In_reads_bytes_(size) const void *data, size_t size)wxCryptoKey
ImportPublic(wxCryptoSession &session, _In_reads_bytes_(size) const void *data, size_t size)wxCryptoKey
IsOk() const noexceptwxCryptoKeyinline
m_hwxCryptoKeyprotected
operator HCRYPTKEY() const noexceptwxCryptoKeyinline
wxCryptoKey()wxCryptoKey
~wxCryptoKey()wxCryptoKeyvirtual
+ + + + diff --git a/classwx_crypto_key.html b/classwx_crypto_key.html new file mode 100644 index 0000000..7dee247 --- /dev/null +++ b/classwx_crypto_key.html @@ -0,0 +1,181 @@ + + + + + + + +wxExtend: wxCryptoKey Class Reference + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+ +
+ +

Cryptographics Key Base. + More...

+ +

#include <wxex/crypto.h>

+ + + + + + + + + + + + + + + + + + + +

+Public Member Functions

wxCryptoKey ()
 Creates a new cryptographics key.
 
+virtual ~wxCryptoKey ()
 Destructor.
 
bool IsOk () const noexcept
 Has the key creation been successful? More...
 
 operator HCRYPTKEY () const noexcept
 
+bool ImportPrivate (wxCryptoSession &session, _In_reads_bytes_(size) const void *data, size_t size)
 Imports private key.
 
+bool ImportPublic (wxCryptoSession &session, _In_reads_bytes_(size) const void *data, size_t size)
 Imports public key.
 
+ + + + +

+Protected Attributes

+HCRYPTKEY m_h
 Key Handle.
 
+

Detailed Description

+

Cryptographics Key Base.

+

Member Function Documentation

+ +

◆ IsOk()

+ +
+
+ + + + + +
+ + + + + + + +
bool wxCryptoKey::IsOk () const
+
+inlinenoexcept
+
+ +

Has the key creation been successful?

+
Returns
    +
  • true if creation succeeded
  • +
  • false otherwise
  • +
+
+ +
+
+ +

◆ operator HCRYPTKEY()

+ +
+
+ + + + + +
+ + + + + + + +
wxCryptoKey::operator HCRYPTKEY () const
+
+inlinenoexcept
+
+
Returns
Key handle to be used in native API calls.
+ +
+
+
The documentation for this class was generated from the following files:
    +
  • include/wxex/crypto.h
  • +
  • src/crypto.cpp
  • +
+
+ + + + diff --git a/classwx_crypto_session-members.html b/classwx_crypto_session-members.html new file mode 100644 index 0000000..f9c5ee7 --- /dev/null +++ b/classwx_crypto_session-members.html @@ -0,0 +1,83 @@ + + + + + + + +wxExtend: Member List + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
wxCryptoSession Member List
+
+
+ +

This is the complete list of members for wxCryptoSession, including all inherited members.

+ + + + + + +
IsOk() const noexceptwxCryptoSessioninline
m_hwxCryptoSessionprotected
operator HCRYPTPROV() const noexceptwxCryptoSessioninline
wxCryptoSession()wxCryptoSession
~wxCryptoSession()wxCryptoSessionvirtual
+ + + + diff --git a/classwx_crypto_session.html b/classwx_crypto_session.html new file mode 100644 index 0000000..9045a8f --- /dev/null +++ b/classwx_crypto_session.html @@ -0,0 +1,182 @@ + + + + + + + +wxExtend: wxCryptoSession Class Reference + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+ +
wxCryptoSession Class Reference
+
+
+ +

Cryptographics Session Base Class. + More...

+ +

#include <wxex/crypto.h>

+
+Inheritance diagram for wxCryptoSession:
+
+
+ + +wxCryptoSessionRSAAES + +
+ + + + + + + + + + + + + +

+Public Member Functions

wxCryptoSession ()
 Creates a new cryptographics session.
 
+virtual ~wxCryptoSession ()
 Destructor.
 
bool IsOk () const noexcept
 Has the session creation been successful? More...
 
 operator HCRYPTPROV () const noexcept
 
+ + + + +

+Protected Attributes

+HCRYPTPROV m_h
 Session Handle.
 
+

Detailed Description

+

Cryptographics Session Base Class.

+

Member Function Documentation

+ +

◆ IsOk()

+ +
+
+ + + + + +
+ + + + + + + +
bool wxCryptoSession::IsOk () const
+
+inlinenoexcept
+
+ +

Has the session creation been successful?

+
Returns
    +
  • true if creation succeeded
  • +
  • false otherwise
  • +
+
+ +
+
+ +

◆ operator HCRYPTPROV()

+ +
+
+ + + + + +
+ + + + + + + +
wxCryptoSession::operator HCRYPTPROV () const
+
+inlinenoexcept
+
+
Returns
Session handle to be used in native API calls.
+ +
+
+
The documentation for this class was generated from the following files:
    +
  • include/wxex/crypto.h
  • +
  • src/crypto.cpp
  • +
+
+ + + + diff --git a/classwx_crypto_session.png b/classwx_crypto_session.png new file mode 100644 index 0000000000000000000000000000000000000000..1ed4e19d0cea7b69ab2ff8dc4212e068a252a78b GIT binary patch literal 709 zcmeAS@N?(olHy`uVBq!ia0vp^^MN>kgBeH~REKW{QW60^A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM;AKvyD?nJ`y+l|}qB&$r`6j^!X$meYgxwYq>8?HH7c5C)@>-)2R1}zGG9{opq z-(EYuYg;cquQ{t){NhOX(y-D=jBh^M?yK24bBWi~h*#Ss_O7`f{e$6L>1|*3fY-rx z(K8v!Upw!6V)O1FV@>d6{sr+Me15iRi$I&`fw@%-JZldAlb$tBg60ezg%bma8QnKyZ?ZhWb zK7L+iTQPG_am2Ia&7O1X-~X^_Gd0Zq{We$E7m7#M}CV+#JbLNs;+J@Kj4XYyepFP04@BW?oNpC*Sp6xg3-6dCG zpicUdzUx@|AKOVw_FugEdFqn-g(uZLfk8Iu%KBFQV-m-&@@G6&G}z_Ob{d%G7(8A5 KT-G@yGywptj%fY> literal 0 HcmV?d00001 diff --git a/classwx_crypto_session_r_s_a_a_e_s-members.html b/classwx_crypto_session_r_s_a_a_e_s-members.html new file mode 100644 index 0000000..ad981b2 --- /dev/null +++ b/classwx_crypto_session_r_s_a_a_e_s-members.html @@ -0,0 +1,84 @@ + + + + + + + +wxExtend: Member List + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
wxCryptoSessionRSAAES Member List
+
+
+ +

This is the complete list of members for wxCryptoSessionRSAAES, including all inherited members.

+ + + + + + + +
IsOk() const noexceptwxCryptoSessioninline
m_hwxCryptoSessionprotected
operator HCRYPTPROV() const noexceptwxCryptoSessioninline
wxCryptoSession()wxCryptoSession
wxCryptoSessionRSAAES()wxCryptoSessionRSAAES
~wxCryptoSession()wxCryptoSessionvirtual
+ + + + diff --git a/classwx_crypto_session_r_s_a_a_e_s.html b/classwx_crypto_session_r_s_a_a_e_s.html new file mode 100644 index 0000000..8db389c --- /dev/null +++ b/classwx_crypto_session_r_s_a_a_e_s.html @@ -0,0 +1,128 @@ + + + + + + + +wxExtend: wxCryptoSessionRSAAES Class Reference + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+ +
wxCryptoSessionRSAAES Class Reference
+
+
+ +

RSA AES Cryptographics Session. + More...

+ +

#include <wxex/crypto.h>

+
+Inheritance diagram for wxCryptoSessionRSAAES:
+
+
+ + +wxCryptoSession + +
+ + + + + + + + + + + + + + + + + +

+Public Member Functions

wxCryptoSessionRSAAES ()
 Creates a new RSA AES cryptographics session.
 
- Public Member Functions inherited from wxCryptoSession
wxCryptoSession ()
 Creates a new cryptographics session.
 
+virtual ~wxCryptoSession ()
 Destructor.
 
bool IsOk () const noexcept
 Has the session creation been successful? More...
 
 operator HCRYPTPROV () const noexcept
 
+ + + + + +

+Additional Inherited Members

- Protected Attributes inherited from wxCryptoSession
+HCRYPTPROV m_h
 Session Handle.
 
+

Detailed Description

+

RSA AES Cryptographics Session.

+

The documentation for this class was generated from the following files:
    +
  • include/wxex/crypto.h
  • +
  • src/crypto.cpp
  • +
+
+ + + + diff --git a/classwx_crypto_session_r_s_a_a_e_s.png b/classwx_crypto_session_r_s_a_a_e_s.png new file mode 100644 index 0000000000000000000000000000000000000000..f035fe4f31427f2073c380e7419f281524ddb020 GIT binary patch literal 703 zcmeAS@N?(olHy`uVBq!ia0vp^^MN>kgBeH~REKW{QW60^A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM;WflmDJU+Mj<+@|<+< zMe#n>e;-x8zT}>)5_>&*-*c7jPgABP?wxH~J})ghm)5S z-z~f38MHe8XHKfurMtf-={JAfT{r2AH{AWk_f33*_cQGX=5Oe`YI*kpVavOh2$G5x{tNUDaRkk_tZ2b;V@43hNg`s34sykxss zF06&g6z^MF!5}sB_;jCVb3P<@rN4dBR2u02^I8By@2kt=Y7EQIMjxNDvv|4D)!An^ zC+NSZewA*&f3EfUZ6;}q+m>qP#T>AB-{ ze^Ig*kMZ`IoBp;5U8;PW(H=PI*nac3c~eeWx2M`|i@5ct`uKChHAm09{r>&Ke9kQH zW9M%^i}y3$Zmt*2|Ff?s>-)yzal3EqK37;fr>(HYH_Oy|=7G5VkG0z;c&=J2eg?*t2k&nJ8}m*#!t Yw-Hs+y=Bbo2TW}Yp00i_>zopr0Gm2l6#xJL literal 0 HcmV?d00001 diff --git a/classwx_f_q_d_n_list_validator-members.html b/classwx_f_q_d_n_list_validator-members.html new file mode 100644 index 0000000..5270f97 --- /dev/null +++ b/classwx_f_q_d_n_list_validator-members.html @@ -0,0 +1,85 @@ + + + + + + + +wxExtend: Member List + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
wxFQDNListValidator Member List
+
+
+ +

This is the complete list of members for wxFQDNListValidator, including all inherited members.

+ + + + + + + + +
Clone() constwxFQDNListValidatorvirtual
m_valwxFQDNListValidatorprotected
Parse(const wxString &val_in, size_t i_start, size_t i_end, wxTextCtrl *ctrl, wxWindow *parent, wxArrayString *val_out=NULL)wxFQDNListValidatorstatic
TransferFromWindow()wxFQDNListValidatorvirtual
TransferToWindow()wxFQDNListValidatorvirtual
Validate(wxWindow *parent)wxFQDNListValidatorvirtual
wxFQDNListValidator(wxArrayString *val=NULL)wxFQDNListValidator
+ + + + diff --git a/classwx_f_q_d_n_list_validator.html b/classwx_f_q_d_n_list_validator.html new file mode 100644 index 0000000..7d6b0d6 --- /dev/null +++ b/classwx_f_q_d_n_list_validator.html @@ -0,0 +1,135 @@ + + + + + + + +wxExtend: wxFQDNListValidator Class Reference + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+ +
+ +

Validator for FQDN lists. + More...

+ +

#include <wxex/valnet.h>

+
+Inheritance diagram for wxFQDNListValidator:
+
+
+ +
+ + + + + + + + + + + + + + + + + +

+Public Member Functions

wxFQDNListValidator (wxArrayString *val=NULL)
 Construct the validator with a value to store data.
 
+virtual wxObject * Clone () const
 Copies this validator.
 
+virtual bool Validate (wxWindow *parent)
 Validates the value.
 
+virtual bool TransferToWindow ()
 Transfers the value to the window.
 
+virtual bool TransferFromWindow ()
 Transfers the value from the window.
 
+ + + + +

+Static Public Member Functions

+static bool Parse (const wxString &val_in, size_t i_start, size_t i_end, wxTextCtrl *ctrl, wxWindow *parent, wxArrayString *val_out=NULL)
 Parses FQDN list value.
 
+ + + + +

+Protected Attributes

+wxArrayString * m_val
 Pointer to variable to receive control's parsed value.
 
+

Detailed Description

+

Validator for FQDN lists.

+

The documentation for this class was generated from the following files:
    +
  • include/wxex/valnet.h
  • +
  • src/valnet.cpp
  • +
+
+ + + + diff --git a/classwx_f_q_d_n_list_validator.png b/classwx_f_q_d_n_list_validator.png new file mode 100644 index 0000000000000000000000000000000000000000..2b43017b8d9d38400966d72c49caee532e4473b9 GIT binary patch literal 564 zcmeAS@N?(olHy`uVBq!ia0vp^tw0>W!3-oBzPn8Vk`e(vA+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM;f(|o-lCEp7No-J=~n9yD0?RN<;&9sZj-{lN_REOdCq&q zbTlgj(-yYKGm{X1jPwm4odL1iPmI^T!k1>09wI!;pm)wU?4@#&hYCoa|WPI$8M z6aPFB70Ib0o{p0Oxm!C<++}Le|H{;G`zuG+_1Byd{R<)#X`3*@mi+0N$~AXYbMjO-7$Ah1xn`6T-m##e`fFN9E~dC8V(lL&B7qDaVhwN{f+XORbE^gCxID9QPr+?A5NS8aa ztVNzJ7CzR|(;wTVcw=3WnrYB>tMlCgb2snV;T71waark~_%FhFJD+^sS&^HalDW_A n6F*t9<%YV(9-p99qQOw}!>gTe~DWM4fptJaI literal 0 HcmV?d00001 diff --git a/classwx_f_q_d_n_validator-members.html b/classwx_f_q_d_n_validator-members.html new file mode 100644 index 0000000..07fcfeb --- /dev/null +++ b/classwx_f_q_d_n_validator-members.html @@ -0,0 +1,85 @@ + + + + + + + +wxExtend: Member List + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
wxFQDNValidator Member List
+
+
+ +

This is the complete list of members for wxFQDNValidator, including all inherited members.

+ + + + + + + + +
Clone() constwxFQDNValidatorvirtual
m_valwxFQDNValidatorprotected
Parse(const wxString &val_in, size_t i_start, size_t i_end, wxTextCtrl *ctrl, wxWindow *parent, wxString *val_out=NULL)wxFQDNValidatorstatic
TransferFromWindow()wxFQDNValidatorvirtual
TransferToWindow()wxFQDNValidatorvirtual
Validate(wxWindow *parent)wxFQDNValidatorvirtual
wxFQDNValidator(wxString *val=NULL)wxFQDNValidator
+ + + + diff --git a/classwx_f_q_d_n_validator.html b/classwx_f_q_d_n_validator.html new file mode 100644 index 0000000..4696b48 --- /dev/null +++ b/classwx_f_q_d_n_validator.html @@ -0,0 +1,135 @@ + + + + + + + +wxExtend: wxFQDNValidator Class Reference + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+ +
+ +

Validator for FQDN. + More...

+ +

#include <wxex/valnet.h>

+
+Inheritance diagram for wxFQDNValidator:
+
+
+ +
+ + + + + + + + + + + + + + + + + +

+Public Member Functions

wxFQDNValidator (wxString *val=NULL)
 Construct the validator with a value to store data.
 
+virtual wxObject * Clone () const
 Copies this validator.
 
+virtual bool Validate (wxWindow *parent)
 Validates the value.
 
+virtual bool TransferToWindow ()
 Transfers the value to the window.
 
+virtual bool TransferFromWindow ()
 Transfers the value from the window.
 
+ + + + +

+Static Public Member Functions

+static bool Parse (const wxString &val_in, size_t i_start, size_t i_end, wxTextCtrl *ctrl, wxWindow *parent, wxString *val_out=NULL)
 Parses FQDN value.
 
+ + + + +

+Protected Attributes

+wxString * m_val
 Pointer to variable to receive control's parsed value.
 
+

Detailed Description

+

Validator for FQDN.

+

The documentation for this class was generated from the following files:
    +
  • include/wxex/valnet.h
  • +
  • src/valnet.cpp
  • +
+
+ + + + diff --git a/classwx_f_q_d_n_validator.png b/classwx_f_q_d_n_validator.png new file mode 100644 index 0000000000000000000000000000000000000000..8eb8c511e4107763a536543b4992b8ce60ba1ad6 GIT binary patch literal 528 zcmeAS@N?(olHy`uVBq!ia0vp^ML-t<74`jZ0^R=}9&;%e0 zj1L?*z}k679?0b=3GxeO04f53tEWPY7#JAmd%8G=R4~4sdwbIw1s+yw{muXW_isO? zyP)D(P{Fb+jaZ3fAK?zW$lANNm`dmeJ`(;fFR?R}9E)0ISLrN5h)=RNzR=cPz} zh0jrM?bj9u9{tW~B(u|8c~k6-U!MdoEiXR2xmwe6dKGi!mz2y^mp0yhXdO0b-IltF zNhS{5nx4#Gj6IAuuVkw5=Wp0KtG~u(nelUF^G7+)>K*=h9M@Ahz@e*hfB`#ph)+u^ zZe=`k#fgdMg1BOGzN>ciA??C5Zs(@vX~_r7jZH~?<7_yov~kZyzY|kTo_a4#y|r$K z%$)S1Jz~v|+RJ~OdJxEKwC{(|rVo#1K1h|?DHYydE%SUvTAf>1=c?Wk{&OeF^rM%o zzI1(V@Re*)u??E5epH<(h|$gY^nJqHL)WJ3U26Yjx9`P`fa$kisek_znG&(!LiyS9 zmu7D{EX&`N{pgFew`oX>@@QcECAnng&5*y08*e!u6_1c)2Sy)*r>mdKI;Vst0DmO# AC;$Ke literal 0 HcmV?d00001 diff --git a/classwx_hex_validator-members.html b/classwx_hex_validator-members.html new file mode 100644 index 0000000..5dd5da7 --- /dev/null +++ b/classwx_hex_validator-members.html @@ -0,0 +1,81 @@ + + + + + + + +wxExtend: Member List + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
wxHexValidator< T > Member List
+
+
+ +

This is the complete list of members for wxHexValidator< T >, including all inherited members.

+ + + + +
Base typedefwxHexValidator< T >
Clone() constwxHexValidator< T >inlinevirtual
wxHexValidator(ValueType *value=NULL, int style=wxNUM_VAL_DEFAULT, unsigned int width=0)wxHexValidator< T >inline
+ + + + diff --git a/classwx_hex_validator.html b/classwx_hex_validator.html new file mode 100644 index 0000000..c0969f0 --- /dev/null +++ b/classwx_hex_validator.html @@ -0,0 +1,115 @@ + + + + + + + +wxExtend: wxHexValidator< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+ +
wxHexValidator< T > Class Template Reference
+
+
+ +

Validator for hexadecimal entries. + More...

+ +

#include <wxex/valhex.h>

+
+Inheritance diagram for wxHexValidator< T >:
+
+
+ +
+ + + + + +

+Public Types

+typedef wxPrivate::wxNumValidator< wxHexValidatorBase, T > Base
 Base class type.
 
+ + + + + + + +

+Public Member Functions

wxHexValidator (ValueType *value=NULL, int style=wxNUM_VAL_DEFAULT, unsigned int width=0)
 Constructs new hexadecimal validator.
 
+virtual wxObject * Clone () const
 Clones this validator.
 
+

Detailed Description

+
template<typename T>
+class wxHexValidator< T >

Validator for hexadecimal entries.

+

The documentation for this class was generated from the following file: +
+ + + + diff --git a/classwx_hex_validator.png b/classwx_hex_validator.png new file mode 100644 index 0000000000000000000000000000000000000000..e2bb1d06cbb52038527d09614d7edfb69a8782b5 GIT binary patch literal 973 zcmeAS@N?(olHy`uVBq!ia0y~yU~~Yo12~w0Wc>S>?LbN*z$e7@|Ns9$=8HF9OZyK^ z0J6aNz<~p-opr1c^7FM*H`JbS-?-<<+waE@|GVh+&U*T+zpIxy=0;XsS6h16 zqHN}|${Bmh-ah&CcCSQk*3xsO_0b8OFOIzly`mp)RVFt}Uv%G9gLBs&S(HV3{GD~a z&}y}LGS92uY{rd#Z}+vvuK%QW%k543>>m5Fd6DnLu9aHJ-d=k6rOaHh@{&E`hv(=0 zJ35D}WV4lM#SQb{+g7~aeE)EA`u>l*m#mAt8gzSoa!kzj-etul#VaL$r}gA<%Ll(m z;l7^Wn_&I+)=^WgH`^Pee_i+)^}utU-Pr>tWp+n@i|aZ3vNGZUx8w`wAD4GmJ5T1E zQ+Chz>xO&R&oBRYWain6`!~FEs zt61Wjq%+iCPt?vb`1=g0tyaXEF2S<7@3whP?c*R zw_s*uQd${5j{@TkXH+{5eCN26)Hm_?t)(GyyQ~^GzXq}VP_U1A;L4fspnBS;&K3O< z+SwbVidV0!4BNN;)2$8Ha^7yA_WO9wt9ploiJQ1{=J7~m{Qo>HbxP) + + + + + + +wxExtend: Member List + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
wxHexValidatorBase Member List
+
+
+ +

This is the complete list of members for wxHexValidatorBase, including all inherited members.

+ + + + + + +
FromString(const wxString &s, long *value)wxHexValidatorBaseprotectedstatic
IsMinusOk(const wxString &val, int pos) constwxHexValidatorBaseprotected
ToString(LongestValueType value) constwxHexValidatorBaseprotected
wxHexValidatorBase(int style)wxHexValidatorBaseprotected
wxHexValidatorBase(const wxHexValidatorBase &other)wxHexValidatorBaseprotected
+ + + + diff --git a/classwx_hex_validator_base.html b/classwx_hex_validator_base.html new file mode 100644 index 0000000..53d72b6 --- /dev/null +++ b/classwx_hex_validator_base.html @@ -0,0 +1,162 @@ + + + + + + + +wxExtend: wxHexValidatorBase Class Reference + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+ +
+ +

Base class for hexadecimal validator. + More...

+ +

#include <wxex/valhex.h>

+
+Inheritance diagram for wxHexValidatorBase:
+
+
+ +
+ + + + + + + + + + + + + + +

+Protected Member Functions

wxHexValidatorBase (int style)
 Constructs new hexadecimal validator.
 
wxHexValidatorBase (const wxHexValidatorBase &other)
 Copies a hexadecimal validator.
 
bool IsMinusOk (const wxString &val, int pos) const
 Tests whether minus is acceptable at given position. More...
 
+wxString ToString (LongestValueType value) const
 Converts number to string.
 
+ + + + +

+Static Protected Member Functions

+static bool FromString (const wxString &s, long *value)
 Converts string to long.
 
+

Detailed Description

+

Base class for hexadecimal validator.

+

Member Function Documentation

+ +

◆ IsMinusOk()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool wxHexValidatorBase::IsMinusOk (const wxString & val,
int pos 
) const
+
+protected
+
+ +

Tests whether minus is acceptable at given position.

+
Returns
Always false
+ +
+
+
The documentation for this class was generated from the following files:
    +
  • include/wxex/valhex.h
  • +
  • src/valhex.cpp
  • +
+
+ + + + diff --git a/classwx_hex_validator_base.png b/classwx_hex_validator_base.png new file mode 100644 index 0000000000000000000000000000000000000000..3e91009e2c8a37897f4f90f99d7f4fee69bc5099 GIT binary patch literal 671 zcmeAS@N?(olHy`uVBq!ia0vp^6M;B@gBeKbZAu4{3=#o8A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM;P9OhxhR~vn`n&r_|PeTlGC9zSm{7ZN!^dikn<-`n}(rHa~rK*?srVJ36!M-wD0_ zo#DS_zNz({_X+#gs?X}2`%5GK?zvg3UdjIbXZ}Z6$vS-1s{M=I-=FyZD?IdX)1&S2 zp;yBNR<8PGHOa%}i3($lt38AJON&MG=U<-Cr(DG-+g2hMct+}gI;&vAdIhErqAm>k znm7)G3o!oRQeudAWO<<7!BB%F`7d2baN^*}fcgL%JBg#DVcg0(w&WA5+BLiQJO(kbg^RWVlUbevkJ zUv_rR&0{k-9!SF)ZeN=1|YF+Q>jI{%)@t^}Bx7(8A5T-G@yGywoddNw8i literal 0 HcmV?d00001 diff --git a/classwx_host_name_validator-members.html b/classwx_host_name_validator-members.html new file mode 100644 index 0000000..22a4bd0 --- /dev/null +++ b/classwx_host_name_validator-members.html @@ -0,0 +1,85 @@ + + + + + + + +wxExtend: Member List + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
wxHostNameValidator Member List
+
+
+ +

This is the complete list of members for wxHostNameValidator, including all inherited members.

+ + + + + + + + +
Clone() constwxHostNameValidatorvirtual
m_valwxHostNameValidatorprotected
Parse(const wxString &val_in, size_t i_start, size_t i_end, wxTextCtrl *ctrl, wxWindow *parent, wxString *val_out=NULL)wxHostNameValidatorstatic
TransferFromWindow()wxHostNameValidatorvirtual
TransferToWindow()wxHostNameValidatorvirtual
Validate(wxWindow *parent)wxHostNameValidatorvirtual
wxHostNameValidator(wxString *val=NULL)wxHostNameValidator
+ + + + diff --git a/classwx_host_name_validator.html b/classwx_host_name_validator.html new file mode 100644 index 0000000..2fab3a6 --- /dev/null +++ b/classwx_host_name_validator.html @@ -0,0 +1,135 @@ + + + + + + + +wxExtend: wxHostNameValidator Class Reference + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+ +
+ +

Validator for host name. + More...

+ +

#include <wxex/valnet.h>

+
+Inheritance diagram for wxHostNameValidator:
+
+
+ +
+ + + + + + + + + + + + + + + + + +

+Public Member Functions

wxHostNameValidator (wxString *val=NULL)
 Construct the validator with a value to store data.
 
+virtual wxObject * Clone () const
 Copies this validator.
 
+virtual bool Validate (wxWindow *parent)
 Validates the value.
 
+virtual bool TransferToWindow ()
 Transfers the value to the window.
 
+virtual bool TransferFromWindow ()
 Transfers the value from the window.
 
+ + + + +

+Static Public Member Functions

+static bool Parse (const wxString &val_in, size_t i_start, size_t i_end, wxTextCtrl *ctrl, wxWindow *parent, wxString *val_out=NULL)
 Parses FQDN value.
 
+ + + + +

+Protected Attributes

+wxString * m_val
 Pointer to variable to receive control's parsed value.
 
+

Detailed Description

+

Validator for host name.

+

The documentation for this class was generated from the following files:
    +
  • include/wxex/valnet.h
  • +
  • src/valnet.cpp
  • +
+
+ + + + diff --git a/classwx_host_name_validator.png b/classwx_host_name_validator.png new file mode 100644 index 0000000000000000000000000000000000000000..7e810a9048d244462422fc610e7e4b428fb3368b GIT binary patch literal 576 zcmeAS@N?(olHy`uVBq!ia0vp^?LZvB!3-o>n5L}KEEn zPF`}|?(oJb8hWm;UtIq#bW17l|FrktB8t=(+Y|Wip(URlZs%fysx9`?qpSe;ux#Ws!AM z>}_uDr)$^wq`Vm>?|ybH=gv00Y3m+5o%T6S(dYB`GaIz`zt7P4*^oS|Uo3ZWSU~&7 zbHTRH%1h-6uWYrCo1UrA&TVF9`MkWe&$5kmLu~PlyLoHVAAJ7(Sf_pd^xW&;Tk>B= zZOCUi{ku|A`nG@gz1IwjC&N6mB}Pk7(EhvqbC!TliIcShfYHt1>FVdQ&MBb@0Mx<> A`~Uy| literal 0 HcmV?d00001 diff --git a/classwx_object_with_data-members.html b/classwx_object_with_data-members.html new file mode 100644 index 0000000..a6fa133 --- /dev/null +++ b/classwx_object_with_data-members.html @@ -0,0 +1,82 @@ + + + + + + + +wxExtend: Member List + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
wxObjectWithData< T > Member List
+
+
+ +

This is the complete list of members for wxObjectWithData< T >, including all inherited members.

+ + + + + +
m_datawxObjectWithData< T >
wxObjectWithData()wxObjectWithData< T >inline
wxObjectWithData(const T &data)wxObjectWithData< T >inline
wxObjectWithData(T &&data)wxObjectWithData< T >inline
+ + + + diff --git a/classwx_object_with_data.html b/classwx_object_with_data.html new file mode 100644 index 0000000..8c3036e --- /dev/null +++ b/classwx_object_with_data.html @@ -0,0 +1,190 @@ + + + + + + + +wxExtend: wxObjectWithData< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+ +
wxObjectWithData< T > Class Template Reference
+
+
+ +

Helper template for event user data. + More...

+ +

#include <wxex/object.h>

+
+Inheritance diagram for wxObjectWithData< T >:
+
+
+ +
+ + + + + + + + + + + +

+Public Member Functions

wxObjectWithData ()
 Default constructor.
 
 wxObjectWithData (const T &data)
 Construct object with data. More...
 
 wxObjectWithData (T &&data)
 Construct object with data. More...
 
+ + + + +

+Public Attributes

+T m_data
 Data.
 
+

Detailed Description

+
template<class T>
+class wxObjectWithData< T >

Helper template for event user data.

+

Constructor & Destructor Documentation

+ +

◆ wxObjectWithData() [1/2]

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + + +
wxObjectWithData< T >::wxObjectWithData (const T & data)
+
+inline
+
+ +

Construct object with data.

+
Parameters
+ + +
[in]dataData to initialize object with
+
+
+ +
+
+ +

◆ wxObjectWithData() [2/2]

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + + +
wxObjectWithData< T >::wxObjectWithData (T && data)
+
+inline
+
+ +

Construct object with data.

+
Parameters
+ + +
[in]dataData to move to object
+
+
+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classwx_object_with_data.png b/classwx_object_with_data.png new file mode 100644 index 0000000000000000000000000000000000000000..d47259f2a3ed462bc614c8b898cdcff363eb6cd9 GIT binary patch literal 582 zcmeAS@N?(olHy`uVBq!ia0vp^6M;B@gBeKbZAu4{3=#o8A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM;Qrv4Q~G>ikc8|4a9? zwH}*)Z%5i@AHVqv*<3TU9UkkZr8zfxUUFD6QROHI-!Y$c`EjKF_DQ>nO#kIB&MFpr z9xuK2ecbb@X&6`j&NuBAnig$Jh`Gd>l={6jdCMPRZUgCPOx^I12L ze;9dOq!^DZ5p+1S^J4LB`)VCo#`tAzJ98IKo3*btykVZ{=7x21q(Wy0KR&m@^vA}D z7guI-hes^hdgF3wb;P`LSE~xHSZeWZT`zs{ALG6~X_g5xg zG5vKj*KJ*TKx(m^i7sQm-K)fPj4d^9 vGXC#%oB#XQ)9vyKYP}3eZ6-#>(w*{V!Qp2<%y?@BjC2N1S3j3^P6 + + + + + + +wxExtend: Member List + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
wxPersistentAuiManager Member List
+
+
+ +

This is the complete list of members for wxPersistentAuiManager, including all inherited members.

+ + + + + + +
GetKind() const wxOVERRIDEwxPersistentAuiManagerinlinevirtual
GetName() const wxOVERRIDEwxPersistentAuiManagerinlinevirtual
Restore() wxOVERRIDEwxPersistentAuiManagerinlinevirtual
Save() const wxOVERRIDEwxPersistentAuiManagerinlinevirtual
wxPersistentAuiManager(wxAuiManager *mgr)wxPersistentAuiManagerinline
+ + + + diff --git a/classwx_persistent_aui_manager.html b/classwx_persistent_aui_manager.html new file mode 100644 index 0000000..6d0a39d --- /dev/null +++ b/classwx_persistent_aui_manager.html @@ -0,0 +1,143 @@ + + + + + + + +wxExtend: wxPersistentAuiManager Class Reference + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+ +
wxPersistentAuiManager Class Reference
+
+
+ +

Supports saving/restoring wxAuiManager state. + More...

+ +

#include <wxex/persist/auimanager.h>

+
+Inheritance diagram for wxPersistentAuiManager:
+
+
+ +
+ + + + + + + + + + + + + + + + +

+Public Member Functions

wxPersistentAuiManager (wxAuiManager *mgr)
 Constructs a persistent Aui manager object.
 
virtual wxString GetKind () const wxOVERRIDE
 
+virtual wxString GetName () const wxOVERRIDE
 Returns name of the window.
 
+virtual void Save () const wxOVERRIDE
 Saves Aui manager state.
 
+virtual bool Restore () wxOVERRIDE
 Restores Aui manager state.
 
+

Detailed Description

+

Supports saving/restoring wxAuiManager state.

+

Member Function Documentation

+ +

◆ GetKind()

+ +
+
+ + + + + +
+ + + + + + + +
virtual wxString wxPersistentAuiManager::GetKind () const
+
+inlinevirtual
+
+
Returns
wxT(wxPERSIST_AUIMGR_KIND)
+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classwx_persistent_aui_manager.png b/classwx_persistent_aui_manager.png new file mode 100644 index 0000000000000000000000000000000000000000..434b6f0e700411c774326fb7022e634f27b2c828 GIT binary patch literal 680 zcmV;Z0$2TsP)vTJkN^MxkN^Mxkifve1&Q1r00008bW%=J0RR90|NsC0)yh;d0006vNklkb8-{&S~mrdq=9B&*;n3f3E(WpZJu=uq|xW# zd0+CBY?X_$K$0501WQgYunI-8?w5hxvVpC>NK&h5DV>vZmu1IQbuQ_;rfgQkvBK`pe)@{>vGg zfR(Q7OX<4uI`8g1Htfo??Io$!Prv!!j<&&qT)+P#E=fPC4JJtutqf*nwx9sMO%H$- zwJO--u_)Q9U{9_!$(9A%T?r7=1_Ov_g8@Xe!2lxKU;q(qFo1|Q7(hfD3?QNn1`yE( z1BhsY0YtRH03!N7z|7266b7)KHW)xe8w?<#8CYrzfL52a8%~DG{CvpI!30dfUi%t@ zbq>${O|}UzRQB`t{~_-^8H(k&&9jbyH2NI$_s(Bll-IiH#dTWZ1C7A4J6DJc1+4q! z*nVyeR{8Cx7lX@;%e@|XNLxnooLehaMG>~!%hSknYK>GhOz)cdYC6Rb2#UrN`B*}v + + + + + + +wxExtend: Member List + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
wxPersistentTLWEx Member List
+
+
+ +

This is the complete list of members for wxPersistentTLWEx, including all inherited members.

+ + + + + +
GetKind() const wxOVERRIDEwxPersistentTLWExinlinevirtual
Restore() wxOVERRIDEwxPersistentTLWExinlinevirtual
Save() const wxOVERRIDEwxPersistentTLWExinlinevirtual
wxPersistentTLWEx(wxTopLevelWindow *mgr)wxPersistentTLWExinline
+ + + + diff --git a/classwx_persistent_t_l_w_ex.html b/classwx_persistent_t_l_w_ex.html new file mode 100644 index 0000000..b09f914 --- /dev/null +++ b/classwx_persistent_t_l_w_ex.html @@ -0,0 +1,139 @@ + + + + + + + +wxExtend: wxPersistentTLWEx Class Reference + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+ +
wxPersistentTLWEx Class Reference
+
+
+ +

Supports saving/restoring wxTopLevelWindow state. + More...

+ +

#include <wxex/persist/toplevel.h>

+
+Inheritance diagram for wxPersistentTLWEx:
+
+
+ +
+ + + + + + + + + + + + + +

+Public Member Functions

wxPersistentTLWEx (wxTopLevelWindow *mgr)
 Constructs a persistent dialog object.
 
virtual wxString GetKind () const wxOVERRIDE
 
+virtual void Save () const wxOVERRIDE
 Saves dialog state.
 
+virtual bool Restore () wxOVERRIDE
 Restores dialog state.
 
+

Detailed Description

+

Supports saving/restoring wxTopLevelWindow state.

+

Member Function Documentation

+ +

◆ GetKind()

+ +
+
+ + + + + +
+ + + + + + + +
virtual wxString wxPersistentTLWEx::GetKind () const
+
+inlinevirtual
+
+
Returns
wxT(wxPERSIST_TLW_KIND)
+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classwx_persistent_t_l_w_ex.png b/classwx_persistent_t_l_w_ex.png new file mode 100644 index 0000000000000000000000000000000000000000..c48d9ca645d80ed2221a0414d9f9a4f09e14f986 GIT binary patch literal 1273 zcmeAS@N?(olHy`uVBq!ia0y~yU=jhc12~w0WZ5T~79b@N;1lBd|Nnm=^TnI5rTvE{ z09jys;J^Xa&O7ozE=Ng_UoZnu5eQs86=KA|z|!IA;uuoF_;&8aNsFy`T>4jUyY&D6 z@p2)aX*nJzcvOnj=Z5ARnMF8Rd90rjbn1Bb(_k-6dHpVx+8s(FlfFDO5@~aqG>NBm z;e;hB&WRc-nkNG!xIDdXH7$yf393zUg_TN zAL8xo${%iBzjxj2&vyg%XzVC?P;i2G#k)7_{A5o!vp6TJszx7k-?6)B%FKNI6BR|j zUhTMh!dLwKh8dsc-D|Q=e_wt#v9P{okLr$ntzW`>bu%&(CV4IAIeKc{lC;?YTgjG_a9)d;oY(!!y3ARwZ+&{zZ({#j+cj*G`d)(T zoi2uMi;nHi{QA;NZeMei%eR#(lXHM^KZmQMNflBr^|9>cXiKiNNg zG!k(zb}mePl%%C3{NJZ_A;Ticu1?P2i8BmD+n6}gG_=GR#2QjH7}$3DOK>r8E1V2q zID1EvhqZxqLW)L1+B=aprUOhKAXCb@oEZ}sRV29<%(Onr+jaVB(Z*@~4XhvPc1kda zT{siK5COCasNyV0vx%_?S%M!{hk!B$gSG?XhlfRc4H=)t1EA zGc-@Tnz-Aiy!LMR_I2^0rOXckB)JrBtqia!+rZ>np4`IpfCVHlku&mDc=xU=+xFex zKK1tbpQ~;k+ftn?`1ZT4M%f0o4e@PE9c5f1Tbqi%3b6&S%}(U}zU9QF&_vb;5+L0d zZ_a%kF75J~+i~F<#;y%_91Z`je!ew~rJ#d{Rp4!i#zn+8!y4S^X>XAo!fTtxjsJlnE3&#)xWvfQ+o|qL|?pl_d{aAiQNqLQ-IO2m#OP@ zOUBhRkCSJ~KfGp;ekeD0sa&=OgWn|KM=}g5mWt;X9SAamfN{Tvp|1HK^O`>0_L6Mo RE?_yu;OXk;vd$@?2>|HeGBW@G literal 0 HcmV?d00001 diff --git a/closed.png b/closed.png new file mode 100644 index 0000000000000000000000000000000000000000..98cc2c909da37a6df914fbf67780eebd99c597f5 GIT binary patch literal 132 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{V-kvUwAr*{o@8{^CZMh(5KoB^r_<4^zF@3)Cp&&t3hdujKf f*?bjBoY!V+E))@{xMcbjXe@)LtDnm{r-UW|*e5JT literal 0 HcmV?d00001 diff --git a/common_8h_source.html b/common_8h_source.html new file mode 100644 index 0000000..f83eae9 --- /dev/null +++ b/common_8h_source.html @@ -0,0 +1,209 @@ + + + + + + + +wxExtend: include/wxex/common.h Source File + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
common.h
+
+
+
1/*
+
2 ​​​SPDX-License-Identifier: GPL-3.0-or-later
+
3 Copyright © 2015-2022 Amebis
+
4 Copyright © 2016 GÉANT
+
5*/
+
6
+
7#if !defined(__wxEXTEND_common_h__)
+
8#define __wxEXTEND_common_h__
+
9
+
12
+
16#define wxEXTEND_VERSION 0x01050300
+
17
+
18#define wxEXTEND_VERSION_MAJ 1
+
19#define wxEXTEND_VERSION_MIN 5
+
20#define wxEXTEND_VERSION_REV 3
+
21#define wxEXTEND_VERSION_BUILD 0
+
22
+
23#define wxEXTEND_VERSION_STR "1.5.3"
+
24#define wxEXTEND_BUILD_YEAR_STR "2022"
+
25
+
26#define wxExtendVersion "15"
+
27
+
28
+
29#if !defined(RC_INVOKED) && !defined(MIDL_PASS)
+
30
+
31#define _WINSOCKAPI_ // Prevent inclusion of winsock.h in windows.h.
+
32#include <Windows.h>
+
33
+
34#include <codeanalysis\warnings.h>
+
35#ifndef WXWIDGETS_CODE_ANALYSIS_WARNINGS
+
36#define WXWIDGETS_CODE_ANALYSIS_WARNINGS ALL_CODE_ANALYSIS_WARNINGS 26812 26814
+
37#endif
+
38
+
39#pragma warning(push)
+
40#pragma warning(disable: WXWIDGETS_CODE_ANALYSIS_WARNINGS)
+
41#include <wx/config.h>
+
42#include <wx/debug.h>
+
43#include <wx/defs.h>
+
44#include <wx/intl.h>
+
45#pragma warning(pop)
+
46
+
50#ifndef WXEXTEND_API
+
51#if defined(WXMAKINGDLL_WXEXTEND)
+
52#define WXEXTEND_API __declspec(dllexport)
+
53#elif defined(WXUSINGDLL)
+
54#define WXEXTEND_API __declspec(dllimport)
+
55#else
+
56#define WXEXTEND_API
+
57#endif
+
58#endif
+
59
+
60
+
64#if wxDEBUG_LEVEL
+
65#define wxVERIFY_MSG(cond, msg) \
+
66 wxSTATEMENT_MACRO_BEGIN \
+
67 if ( !(cond) && wxTheAssertHandler && \
+
68 (wxOnAssert(__FILE__, __LINE__, __WXFUNCTION__, \
+
69 #cond, msg), wxTrapInAssert) ) \
+
70 { \
+
71 wxTrapInAssert = false; \
+
72 wxTrap(); \
+
73 } \
+
74 wxSTATEMENT_MACRO_END
+
75#endif
+
76
+
77
+
81#if wxDEBUG_LEVEL
+
82#define wxVERIFY(cond) wxVERIFY_MSG(cond, (const char*)NULL)
+
83#else
+
84#define wxVERIFY(cond) (cond)
+
85#endif
+
86
+
87
+ +
96{
+
97 ANIMATIONINFO ai = { sizeof(ai) };
+
98 wxCHECK(SystemParametersInfo(SPI_GETANIMATION, sizeof(ai), &ai, 0), false);
+
99 return ai.iMinAnimate ? true : false;
+
100}
+
101
+
102
+
115inline bool wxModifyStyleEx(_In_ WXHWND hWnd, _In_ DWORD dwRemove, _In_ DWORD dwAdd, _In_ UINT nFlags = 0)
+
116{
+
117 wxASSERT(IsWindow(hWnd));
+
118
+
119 const DWORD dwStyle = GetWindowLong(hWnd, GWL_EXSTYLE);
+
120 const DWORD dwNewStyle = (dwStyle & ~dwRemove) | dwAdd;
+
121 if(dwStyle == dwNewStyle)
+
122 return false;
+
123
+
124 SetWindowLong(hWnd, GWL_EXSTYLE, dwNewStyle);
+
125 if(nFlags != 0)
+
126 SetWindowPos(hWnd, NULL, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE | nFlags);
+
127
+
128 return true;
+
129}
+
130
+
131
+
145#pragma warning(suppress: 26812) // wxLanguage is unscoped
+
146inline bool wxInitializeLocale(wxLocale &locale, wxLanguage *language = NULL)
+
147{
+
148 // Read language from configuration.
+
149 wxLanguage lang_code = wxLANGUAGE_DEFAULT;
+
150 wxString lang;
+
151 if (wxConfigBase::Get()->Read(wxT("Language"), &lang)) {
+
152 const wxLanguageInfo *lang_info = wxLocale::FindLanguageInfo(lang);
+
153 lang_code = lang_info ? (wxLanguage)lang_info->Language : wxLANGUAGE_DEFAULT;
+
154 }
+
155
+
156 if (language)
+
157 *language = lang_code;
+
158
+
159 if (wxLocale::IsAvailable(lang_code)) {
+
160 // Language is "available". Well... Known actually.
+
161 wxString sPath;
+
162 if (wxConfigBase::Get()->Read(wxT("LocalizationRepositoryPath"), &sPath))
+
163 locale.AddCatalogLookupPathPrefix(sPath);
+
164 return locale.Init(lang_code);
+
165 }
+
166
+
167 return false;
+
168}
+
169
+
170#endif // !defined(RC_INVOKED) && !defined(MIDL_PASS)
+
171
+
173
+
174#endif // !defined(__wxEXTEND_common_h__)
+
bool wxGetDoWndAnimation()
Returns whether windows animation is enabled.
Definition: common.h:95
+
bool wxModifyStyleEx(WXHWND hWnd, DWORD dwRemove, DWORD dwAdd, UINT nFlags=0)
Modifies window extended style.
Definition: common.h:115
+
bool wxInitializeLocale(wxLocale &locale, wxLanguage *language=NULL)
Inizializes wxWidgets localization scheme.
Definition: common.h:146
+
+ + + + diff --git a/comutils_8h_source.html b/comutils_8h_source.html new file mode 100644 index 0000000..eca311d --- /dev/null +++ b/comutils_8h_source.html @@ -0,0 +1,108 @@ + + + + + + + +wxExtend: include/wxex/comutils.h Source File + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
comutils.h
+
+
+
1/*
+
2 ​​​​SPDX-License-Identifier: GPL-3.0-or-later
+
3 Copyright © 2016-2022 Amebis
+
4 Copyright © 2016 GÉANT
+
5*/
+
6
+
7#pragma once
+
8
+
9#include "common.h"
+
10
+
13
+ +
18{
+
19public:
+
25 wxCoInitializer(DWORD dwCoInit = COINIT_MULTITHREADED);
+
26
+
30 virtual ~wxCoInitializer();
+
31
+
39 bool IsOk() const { return m_ok; }
+
40
+
48 operator bool() const { return m_ok; }
+
49
+
50private:
+
51 bool m_ok, m_initialized;
+
52};
+
53
+
Create an object of this class on stack to initialize/cleanup the COM automatically.
Definition: comutils.h:18
+
bool IsOk() const
Has the initialization been successful? (explicit test)
Definition: comutils.h:39
+
#define WXEXTEND_API
Public function calling convention.
Definition: common.h:56
+
+ + + + diff --git a/crypto_8h_source.html b/crypto_8h_source.html new file mode 100644 index 0000000..c85cfcf --- /dev/null +++ b/crypto_8h_source.html @@ -0,0 +1,283 @@ + + + + + + + +wxExtend: include/wxex/crypto.h Source File + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
crypto.h
+
+
+
1/*
+
2 ​​​​SPDX-License-Identifier: GPL-3.0-or-later
+
3 Copyright © 2016-2022 Amebis
+
4 Copyright © 2016 GÉANT
+
5*/
+
6
+
7#pragma once
+
8
+
9#include "common.h"
+
10
+
11#include <codeanalysis\warnings.h>
+
12#pragma warning(push)
+
13#pragma warning(disable: WXWIDGETS_CODE_ANALYSIS_WARNINGS)
+
14#include <wx/buffer.h>
+
15#include <wx/ffile.h>
+
16#include <wx/log.h>
+
17#include <wx/string.h>
+
18#pragma warning(pop)
+
19
+
20#include <Wincrypt.h>
+
21
+
24
+ +
29{
+
30protected:
+
31 HCRYPTPROV m_h;
+
32
+
33public:
+ +
38
+
39
+
43 virtual ~wxCryptoSession();
+
44
+
45
+
53 inline bool IsOk() const noexcept
+
54 {
+
55 return m_h != NULL;
+
56 }
+
57
+
58
+
62 inline operator HCRYPTPROV() const noexcept
+
63 {
+
64 return m_h;
+
65 }
+
66};
+
67
+
68
+ +
73{
+
74public:
+ +
79};
+
80
+
81
+ +
86{
+
87protected:
+
88 HCRYPTHASH m_h;
+
89
+
90public:
+ +
95
+
96
+
100 virtual ~wxCryptoHash();
+
101
+
102
+
110 inline bool IsOk() const noexcept
+
111 {
+
112 return m_h != NULL;
+
113 }
+
114
+
115
+
119 inline operator HCRYPTHASH() const noexcept
+
120 {
+
121 return m_h;
+
122 }
+
123
+
124
+
135 _Success_(return != 0) bool Hash(_In_reads_bytes_(size) const void *data, _In_ size_t size);
+
136
+
137
+
147 inline _Success_(return != 0) bool Hash(_In_ const wxMemoryBuffer &data)
+
148 {
+
149 return Hash(data.GetData(), data.GetDataLen());
+
150 }
+
151
+
152
+
162 inline _Success_(return != 0) bool HashAsUTF8(_In_ const wxString &str)
+
163 {
+
164 const wxScopedCharBuffer buf(str.ToUTF8());
+
165 return Hash(buf.data(), buf.length());
+
166 }
+
167
+
168
+
178 inline _Success_(return != 0) bool HashFile(_In_ const wxString &fileName)
+
179 {
+
180 wxFFile file(fileName, wxT("rb"));
+
181 if (file.IsOpened()) {
+
182 wxMemoryBuffer buf(4*1024);
+
183 void *data = buf.GetData();
+
184 const size_t nBlock = buf.GetBufSize();
+
185 while (!file.Eof())
+
186 Hash(data, file.Read(data, nBlock));
+
187
+
188 return true;
+
189 } else {
+
190 wxLogError(wxT("Can not open %s file for reading."), fileName);
+
191 return false;
+
192 }
+
193 }
+
194
+
195
+
205 virtual _Success_(return != 0) bool GetValue(_Out_ wxMemoryBuffer &hash);
+
206
+
207
+
217 _Success_(return != 0) bool Sign(_Inout_ wxMemoryBuffer &signature);
+
218
+
219
+
225 inline wxMemoryBuffer Sign()
+
226 {
+
227 wxMemoryBuffer signature;
+
228 wxVERIFY(Sign(signature));
+
229 return signature;
+
230 }
+
231};
+
232
+
233
+ +
238{
+
239public:
+ +
244
+
245
+
255 virtual _Success_(return != 0) bool GetValue(_Out_ wxMemoryBuffer &hash);
+
256};
+
257
+
258
+
259#if (NTDDI_VERSION > NTDDI_WINXPSP2)
+
260
+
264class WXEXTEND_API wxCryptoHashSHA256 : public wxCryptoHash
+
265{
+
266public:
+
270 wxCryptoHashSHA256(wxCryptoSession &session);
+
271
+
272
+
282 virtual _Success_(return != 0) bool GetValue(_Out_ wxMemoryBuffer &hash);
+
283};
+
284
+
285#endif
+
286
+
287
+ +
292{
+
293protected:
+
294 HCRYPTKEY m_h;
+
295
+
296public:
+
300 wxCryptoKey();
+
301
+
302
+
306 virtual ~wxCryptoKey();
+
307
+
308
+
316 inline bool IsOk() const noexcept
+
317 {
+
318 return m_h != NULL;
+
319 }
+
320
+
321
+
325 inline operator HCRYPTKEY() const noexcept
+
326 {
+
327 return m_h;
+
328 }
+
329
+
330
+
334 _Success_(return != 0) bool ImportPrivate(_Inout_ wxCryptoSession &session, _In_reads_bytes_(size) const void *data, _In_ size_t size);
+
335
+
336
+
340 _Success_(return != 0) bool ImportPublic(_Inout_ wxCryptoSession &session, _In_reads_bytes_(size) const void *data, _In_ size_t size);
+
341};
+
342
+
343
+
356_Success_(return != 0) bool WXEXTEND_API wxCryptoVerifySignature(_In_ const wxCryptoHash &hash, _In_reads_bytes_(signature_size) const void *signature_data, _In_ size_t signature_size, _In_ const wxCryptoKey &key);
+
357
+
358
+
370inline _Success_(return != 0) bool wxCryptoVerifySignature(_In_ const wxCryptoHash &hash, _In_ const wxMemoryBuffer &signature, _In_ const wxCryptoKey &key)
+
371{
+
372 return wxCryptoVerifySignature(hash, signature.GetData(), signature.GetDataLen(), key);
+
373}
+
374
+
Cryptographics Hash Base.
Definition: crypto.h:86
+
HCRYPTHASH m_h
Hash Handle.
Definition: crypto.h:88
+
bool IsOk() const noexcept
Has the hash creation been successful?
Definition: crypto.h:110
+
SHA-1 Cryptographics Hash.
Definition: crypto.h:238
+
Cryptographics Key Base.
Definition: crypto.h:292
+
HCRYPTKEY m_h
Key Handle.
Definition: crypto.h:294
+
bool IsOk() const noexcept
Has the key creation been successful?
Definition: crypto.h:316
+
Cryptographics Session Base Class.
Definition: crypto.h:29
+
bool IsOk() const noexcept
Has the session creation been successful?
Definition: crypto.h:53
+
HCRYPTPROV m_h
Session Handle.
Definition: crypto.h:31
+
RSA AES Cryptographics Session.
Definition: crypto.h:73
+
#define WXEXTEND_API
Public function calling convention.
Definition: common.h:56
+
bool WXEXTEND_API wxCryptoVerifySignature(const wxCryptoHash &hash, _In_reads_bytes_(signature_size) const void *signature_data, size_t signature_size, const wxCryptoKey &key)
Verifies if the hash matches signature and the public key.
+
#define wxVERIFY(cond)
Test if condition is true. When not true, raise debug assertion with the given message.
Definition: common.h:84
+
+ + + + diff --git a/dir_141f362699d66d8fa2d8101d8e9f0db9.html b/dir_141f362699d66d8fa2d8101d8e9f0db9.html new file mode 100644 index 0000000..e1dc33f --- /dev/null +++ b/dir_141f362699d66d8fa2d8101d8e9f0db9.html @@ -0,0 +1,85 @@ + + + + + + + +wxExtend: include/wxex/aui Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
aui Directory Reference
+
+
+ + + + +

+Files

file  framemanager.h [code]
 
+
+ + + + diff --git a/dir_2fafa5ce03815a2bdea8d271fa718211.html b/dir_2fafa5ce03815a2bdea8d271fa718211.html new file mode 100644 index 0000000..f3a406e --- /dev/null +++ b/dir_2fafa5ce03815a2bdea8d271fa718211.html @@ -0,0 +1,112 @@ + + + + + + + +wxExtend: include/wxex Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
wxex Directory Reference
+
+
+ + + + + + + + +

+Directories

directory  aui
 
directory  persist
 
directory  private
 
+ + + + + + + + + + + + + + + + + + + + + +

+Files

file  appbar.h [code]
 
file  common.h [code]
 
file  comutils.h [code]
 
file  crypto.h [code]
 
file  hex.h [code]
 
file  object.h [code]
 
file  url.h [code]
 
file  valhex.h [code]
 
file  valnet.h [code]
 
file  xml.h [code]
 
+
+ + + + diff --git a/dir_66ccda734b8df6d1bfeadfb0d10c9c77.html b/dir_66ccda734b8df6d1bfeadfb0d10c9c77.html new file mode 100644 index 0000000..4214fca --- /dev/null +++ b/dir_66ccda734b8df6d1bfeadfb0d10c9c77.html @@ -0,0 +1,85 @@ + + + + + + + +wxExtend: include/wxex/private Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
private Directory Reference
+
+
+ + + + +

+Files

file  tlwgeom.h [code]
 
+
+ + + + diff --git a/dir_68267d1309a1af8e8297ef4c3efbcdba.html b/dir_68267d1309a1af8e8297ef4c3efbcdba.html new file mode 100644 index 0000000..9a83261 --- /dev/null +++ b/dir_68267d1309a1af8e8297ef4c3efbcdba.html @@ -0,0 +1,85 @@ + + + + + + + +wxExtend: src Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
src Directory Reference
+
+
+ + + + +

+Files

file  pch.h [code]
 
+
+ + + + diff --git a/dir_6d69d241b042cee0e67e7676a2fe434a.html b/dir_6d69d241b042cee0e67e7676a2fe434a.html new file mode 100644 index 0000000..f3d4a13 --- /dev/null +++ b/dir_6d69d241b042cee0e67e7676a2fe434a.html @@ -0,0 +1,87 @@ + + + + + + + +wxExtend: include/wxex/persist Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
persist Directory Reference
+
+
+ + + + + + +

+Files

file  auimanager.h [code]
 
file  toplevel.h [code]
 
+
+ + + + diff --git a/dir_d44c64559bbebec7f509842c48db8b23.html b/dir_d44c64559bbebec7f509842c48db8b23.html new file mode 100644 index 0000000..3c82a29 --- /dev/null +++ b/dir_d44c64559bbebec7f509842c48db8b23.html @@ -0,0 +1,85 @@ + + + + + + + +wxExtend: include Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
include Directory Reference
+
+
+ + + + +

+Directories

directory  wxex
 
+
+ + + + diff --git a/doc.png b/doc.png new file mode 100644 index 0000000000000000000000000000000000000000..17edabff95f7b8da13c9516a04efe05493c29501 GIT binary patch literal 746 zcmV7=@pnbNXRFEm&G8P!&WHG=d)>K?YZ1bzou)2{$)) zumDct!>4SyxL;zgaG>wy`^Hv*+}0kUfCrz~BCOViSb$_*&;{TGGn2^x9K*!Sf0=lV zpP=7O;GA0*Jm*tTYj$IoXvimpnV4S1Z5f$p*f$Db2iq2zrVGQUz~yq`ahn7ck(|CE z7Gz;%OP~J6)tEZWDzjhL9h2hdfoU2)Nd%T<5Kt;Y0XLt&<@6pQx!nw*5`@bq#?l*?3z{Hlzoc=Pr>oB5(9i6~_&-}A(4{Q$>c>%rV&E|a(r&;?i5cQB=} zYSDU5nXG)NS4HEs0it2AHe2>shCyr7`6@4*6{r@8fXRbTA?=IFVWAQJL&H5H{)DpM#{W(GL+Idzf^)uRV@oB8u$ z8v{MfJbTiiRg4bza<41NAzrl{=3fl_D+$t+^!xlQ8S}{UtY`e z;;&9UhyZqQRN%2pot{*Ei0*4~hSF_3AH2@fKU!$NSflS>{@tZpDT4`M2WRTTVH+D? z)GFlEGGHe?koB}i|1w45!BF}N_q&^HJ&-tyR{(afC6H7|aml|tBBbv}55C5DNP8p3 z)~jLEO4Z&2hZmP^i-e%(@d!(E|KRafiU8Q5u(wU((j8un3OR*Hvj+t literal 0 HcmV?d00001 diff --git a/doxygen.css b/doxygen.css new file mode 100644 index 0000000..9036737 --- /dev/null +++ b/doxygen.css @@ -0,0 +1,1841 @@ +/* The standard CSS for doxygen 1.9.3 */ + +body, table, div, p, dl { + font: 400 14px/22px Roboto,sans-serif; +} + +p.reference, p.definition { + font: 400 14px/22px Roboto,sans-serif; +} + +/* @group Heading Levels */ + +h1.groupheader { + font-size: 150%; +} + +.title { + font: 400 14px/28px Roboto,sans-serif; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h2.groupheader { + border-bottom: 1px solid #879ECB; + color: #354C7B; + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px cyan; +} + +dt { + font-weight: bold; +} + +ul.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; + column-count: 3; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +th p.starttd, th p.intertd, th p.endtd { + font-size: 100%; + font-weight: 700; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +p.interli { +} + +p.interdd { +} + +p.intertd { +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.navtab { + border-right: 1px solid #A3B4D7; + padding-right: 15px; + text-align: right; + line-height: 110%; +} + +div.navtab table { + border-spacing: 0; +} + +td.navtab { + padding-right: 6px; + padding-left: 6px; +} +td.navtabHL { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL a, td.navtabHL a:visited { + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} + +a.navtab { + font-weight: bold; +} + +div.qindex{ + text-align: center; + width: 100%; + line-height: 140%; + font-size: 130%; + color: #A0A0A0; +} + +dt.alphachar{ + font-size: 180%; + font-weight: bold; +} + +.alphachar a{ + color: black; +} + +.alphachar a:hover, .alphachar a:visited{ + text-decoration: none; +} + +.classindex dl { + padding: 25px; + column-count:1 +} + +.classindex dd { + display:inline-block; + margin-left: 50px; + width: 90%; + line-height: 1.15em; +} + +.classindex dl.odd { + background-color: #F8F9FC; +} + +@media(min-width: 1120px) { + .classindex dl { + column-count:2 + } +} + +@media(min-width: 1320px) { + .classindex dl { + column-count:3 + } +} + + +/* @group Link Styling */ + +a { + color: #3D578C; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #4665A2; +} + +a:hover { + text-decoration: underline; +} + +.contents a.qindexHL:visited { + color: #FFFFFF; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: #4665A2; +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: #4665A2; +} + +a.code.hl_class { /* style for links to class names in code snippets */ } +a.code.hl_struct { /* style for links to struct names in code snippets */ } +a.code.hl_union { /* style for links to union names in code snippets */ } +a.code.hl_interface { /* style for links to interface names in code snippets */ } +a.code.hl_protocol { /* style for links to protocol names in code snippets */ } +a.code.hl_category { /* style for links to category names in code snippets */ } +a.code.hl_exception { /* style for links to exception names in code snippets */ } +a.code.hl_service { /* style for links to service names in code snippets */ } +a.code.hl_singleton { /* style for links to singleton names in code snippets */ } +a.code.hl_concept { /* style for links to concept names in code snippets */ } +a.code.hl_namespace { /* style for links to namespace names in code snippets */ } +a.code.hl_package { /* style for links to package names in code snippets */ } +a.code.hl_define { /* style for links to macro names in code snippets */ } +a.code.hl_function { /* style for links to function names in code snippets */ } +a.code.hl_variable { /* style for links to variable names in code snippets */ } +a.code.hl_typedef { /* style for links to typedef names in code snippets */ } +a.code.hl_enumvalue { /* style for links to enum value names in code snippets */ } +a.code.hl_enumeration { /* style for links to enumeration names in code snippets */ } +a.code.hl_signal { /* style for links to Qt signal names in code snippets */ } +a.code.hl_slot { /* style for links to Qt slot names in code snippets */ } +a.code.hl_friend { /* style for links to friend names in code snippets */ } +a.code.hl_dcop { /* style for links to KDE3 DCOP names in code snippets */ } +a.code.hl_property { /* style for links to property names in code snippets */ } +a.code.hl_event { /* style for links to event names in code snippets */ } +a.code.hl_sequence { /* style for links to sequence names in code snippets */ } +a.code.hl_dictionary { /* style for links to dictionary names in code snippets */ } + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +ul { + overflow: visible; +} + +#side-nav ul { + overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ +} + +#main-nav ul { + overflow: visible; /* reset ul rule for the navigation bar drop down lists */ +} + +.fragment { + text-align: left; + direction: ltr; + overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/ + overflow-y: hidden; +} + +pre.fragment { + border: 1px solid #C4CFE5; + background-color: #FBFCFD; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: monospace, fixed; + font-size: 105%; +} + +div.fragment { + padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ + margin: 4px 8px 4px 2px; + background-color: #FBFCFD; + border: 1px solid #C4CFE5; +} + +div.line { + font-family: monospace, fixed; + font-size: 13px; + min-height: 13px; + line-height: 1.0; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line:after { + content:"\000A"; + white-space: pre; +} + +div.line.glow { + background-color: cyan; + box-shadow: 0 0 10px cyan; +} + + +span.lineno { + padding-right: 4px; + margin-right: 9px; + text-align: right; + border-right: 2px solid #0F0; + background-color: #E8E8E8; + white-space: pre; +} +span.lineno a { + background-color: #D8D8D8; +} + +span.lineno a:hover { + background-color: #C8C8C8; +} + +.lineno { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +div.ah, span.ah { + background-color: black; + font-weight: bold; + color: #FFFFFF; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%); +} + +div.classindex ul { + list-style: none; + padding-left: 0; +} + +div.classindex span.ai { + display: inline-block; +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + background-color: white; + color: black; + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +td.indexkey { + background-color: #EBEFF6; + font-weight: bold; + border: 1px solid #C4CFE5; + margin: 2px 0px 2px 0; + padding: 2px 10px; + white-space: nowrap; + vertical-align: top; +} + +td.indexvalue { + background-color: #EBEFF6; + border: 1px solid #C4CFE5; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #EEF1F7; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl, img.inline { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + +.compoundTemplParams { + color: #4665A2; + font-size: 80%; + line-height: 120%; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +blockquote { + background-color: #F7F8FB; + border-left: 2px solid #9CAFD4; + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +blockquote.DocNodeRTL { + border-left: 0; + border-right: 2px solid #9CAFD4; + margin: 0 4px 0 24px; + padding: 0 16px 0 12px; +} + +/* @end */ + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #A3B4D7; +} + +th.dirtab { + background: #EBEFF6; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #4A6AAA; +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: cyan; + box-shadow: 0 0 15px cyan; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #F9FAFC; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memSeparator { + border-bottom: 1px solid #DEE4F0; + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight, .memTemplItemRight { + width: 100%; +} + +.memTemplParams { + color: #4665A2; + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtitle { + padding: 8px; + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + border-top-right-radius: 4px; + border-top-left-radius: 4px; + margin-bottom: -1px; + background-image: url('nav_f.png'); + background-repeat: repeat-x; + background-color: #E2E8F2; + line-height: 1.25; + font-weight: 300; + float:left; +} + +.permalink +{ + font-size: 65%; + display: inline-block; + vertical-align: middle; +} + +.memtemplate { + font-size: 80%; + color: #4665A2; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px cyan; +} + +.memname { + font-weight: 400; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 0px 6px 0px; + color: #253555; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + background-color: #DFE5F1; + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 4px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 4px; + +} + +.overload { + font-family: "courier new",courier,monospace; + font-size: 65%; +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 10px 2px 10px; + background-color: #FBFCFD; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: #FFFFFF; + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} +.paramname code { + line-height: 14px; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype, .tparams .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir, .tparams .paramdir { + font-family: "courier new",courier,monospace; + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: #728DC1; + border-top:1px solid #5373B4; + border-left:1px solid #5373B4; + border-right:1px solid #C4CFE5; + border-bottom:1px solid #C4CFE5; + text-shadow: none; + color: white; + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid #9CAFD4; + border-bottom: 1px solid #9CAFD4; + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.even { + padding-left: 6px; + background-color: #F7F8FB; +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: #3D578C; +} + +.arrow { + color: #9CAFD4; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 22px; +} + +.icon { + font-family: Arial, Helvetica; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: #728DC1; + color: white; + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfopen { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderopen.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderclosed.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('doc.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +table.directory { + font: 400 14px Roboto,sans-serif; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: #2A3D61; +} + +table.doxtable caption { + caption-side: top; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + /*width: 100%;*/ + margin-bottom: 10px; + border: 1px solid #A8B8D9; + border-spacing: 0px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid #A8B8D9; + border-bottom: 1px solid #A8B8D9; + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid #A8B8D9; + /*width: 100%;*/ +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + font-size: 90%; + color: #253555; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + font-weight: 400; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid #A8B8D9; +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:#8AA0CC; + border:solid 1px #C2CDE4; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#364D7C; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; + color: #283A5D; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color:#6884BD; +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color:#364D7C; + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +table.classindex +{ + margin: 10px; + white-space: nowrap; + margin-left: 3%; + margin-right: 3%; + width: 94%; + border: 0; + border-spacing: 0; + padding: 0; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + margin: 0px; + border-bottom: 1px solid #C4CFE5; +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +.PageDocRTL-title div.headertitle { + text-align: right; + direction: rtl; +} + +dl { + padding: 0 0 0 0; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */ +dl.section { + margin-left: 0px; + padding-left: 0px; +} + +dl.section.DocNodeRTL { + margin-right: 0px; + padding-right: 0px; +} + +dl.note { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #D0C000; +} + +dl.note.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #FF0000; +} + +dl.warning.DocNodeRTL, dl.attention.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00D000; +} + +dl.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #00D000; +} + +dl.deprecated { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #505050; +} + +dl.deprecated.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #505050; +} + +dl.todo { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00C0E0; +} + +dl.todo.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #00C0E0; +} + +dl.test { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #3030E0; +} + +dl.test.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #3030E0; +} + +dl.bug { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #C08050; +} + +dl.bug.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectrow +{ + height: 56px; +} + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; + padding-left: 0.5em; +} + +#projectname +{ + font: 200% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font: 90% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font: 50% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #5373B4; +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.plantumlgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +div.zoom +{ + border: 1px solid #90A5CE; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:#334975; + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; + text-align:right; + width:52px; +} + +dl.citelist dd { + margin:2px 0 2px 72px; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: #F4F6FA; + border: 1px solid #D8DFEE; + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 8px 10px 10px; + width: 200px; +} + +.PageDocRTL-title div.toc { + float: left !important; + text-align: right; +} + +div.toc li { + background: url("bdwn.png") no-repeat scroll 0 5px transparent; + font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +.PageDocRTL-title div.toc li { + background-position-x: right !important; + padding-left: 0 !important; + padding-right: 10px; +} + +div.toc h3 { + font: bold 12px/1.2 Arial,FreeSans,sans-serif; + color: #4665A2; + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 30px; +} + +div.toc li.level4 { + margin-left: 45px; +} + +span.emoji { + /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html + * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort; + */ +} + +span.obfuscator { + display: none; +} + +.PageDocRTL-title div.toc li.level1 { + margin-left: 0 !important; + margin-right: 0; +} + +.PageDocRTL-title div.toc li.level2 { + margin-left: 0 !important; + margin-right: 15px; +} + +.PageDocRTL-title div.toc li.level3 { + margin-left: 0 !important; + margin-right: 30px; +} + +.PageDocRTL-title div.toc li.level4 { + margin-left: 0 !important; + margin-right: 45px; +} + +.inherit_header { + font-weight: bold; + color: gray; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + /*white-space: nowrap;*/ + background-color: white; + border: 1px solid gray; + border-radius: 4px 4px 4px 4px; + box-shadow: 1px 1px 7px gray; + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: grey; + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: #006318; +} + +#powerTip div { + margin: 0px; + padding: 0px; + font: 12px/16px Roboto,sans-serif; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: #FFFFFF; + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before { + border-top-color: #808080; + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: #FFFFFF; + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: #808080; + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: #FFFFFF; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: #FFFFFF; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + +/* @group Markdown */ + +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.markdownTable tr { +} + +th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft, td.markdownTableBodyLeft { + text-align: left +} + +th.markdownTableHeadRight, td.markdownTableBodyRight { + text-align: right +} + +th.markdownTableHeadCenter, td.markdownTableBodyCenter { + text-align: center +} + +.DocNodeRTL { + text-align: right; + direction: rtl; +} + +.DocNodeLTR { + text-align: left; + direction: ltr; +} + +table.DocNodeRTL { + width: auto; + margin-right: 0; + margin-left: auto; +} + +table.DocNodeLTR { + width: auto; + margin-right: auto; + margin-left: 0; +} + +code.JavaDocCode + direction:ltr; +} + +tt, code, kbd, samp +{ + display: inline-block; + direction:ltr; +} +/* @end */ + +u { + text-decoration: underline; +} + diff --git a/doxygen.svg b/doxygen.svg new file mode 100644 index 0000000..d42dad5 --- /dev/null +++ b/doxygen.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dynsections.js b/dynsections.js new file mode 100644 index 0000000..3174bd7 --- /dev/null +++ b/dynsections.js @@ -0,0 +1,121 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); +} + +function toggleLevel(level) +{ + $('table.directory tr').each(function() { + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (l + + + + + + +wxExtend: File List + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
File List
+
+
+
Here is a list of all documented files with brief descriptions:
+
[detail level 1234]
+ + + + + + + + + + + + + + + + + + + + + +
  include
  wxex
  aui
 framemanager.h
  persist
 auimanager.h
 toplevel.h
  private
 tlwgeom.h
 appbar.h
 common.h
 comutils.h
 crypto.h
 hex.h
 object.h
 url.h
 valhex.h
 valnet.h
 xml.h
  src
 pch.h
+
+
+ + + + diff --git a/folderclosed.png b/folderclosed.png new file mode 100644 index 0000000000000000000000000000000000000000..bb8ab35edce8e97554e360005ee9fc5bffb36e66 GIT binary patch literal 616 zcmV-u0+;=XP)a9#ETzayK)T~Jw&MMH>OIr#&;dC}is*2Mqdf&akCc=O@`qC+4i z5Iu3w#1M@KqXCz8TIZd1wli&kkl2HVcAiZ8PUn5z_kG@-y;?yK06=cA0U%H0PH+kU zl6dp}OR(|r8-RG+YLu`zbI}5TlOU6ToR41{9=uz^?dGTNL;wIMf|V3`d1Wj3y!#6` zBLZ?xpKR~^2x}?~zA(_NUu3IaDB$tKma*XUdOZN~c=dLt_h_k!dbxm_*ibDM zlFX`g{k$X}yIe%$N)cn1LNu=q9_CS)*>A zsX_mM4L@`(cSNQKMFc$RtYbx{79#j-J7hk*>*+ZZhM4Hw?I?rsXCi#mRWJ=-0LGV5a-WR0Qgt<|Nqf)C-@80`5gIz45^_20000IqP)X=#(TiCT&PiIIVc55T}TU}EUh*{q$|`3@{d>{Tc9Bo>e= zfmF3!f>fbI9#GoEHh0f`i5)wkLpva0ztf%HpZneK?w-7AK@b4Itw{y|Zd3k!fH?q2 zlhckHd_V2M_X7+)U&_Xcfvtw60l;--DgZmLSw-Y?S>)zIqMyJ1#FwLU*%bl38ok+! zh78H87n`ZTS;uhzAR$M`zZ`bVhq=+%u9^$5jDplgxd44}9;IRqUH1YHH|@6oFe%z( zo4)_>E$F&^P-f(#)>(TrnbE>Pefs9~@iN=|)Rz|V`sGfHNrJ)0gJb8xx+SBmRf@1l zvuzt=vGfI)<-F9!o&3l?>9~0QbUDT(wFdnQPv%xdD)m*g%!20>Bc9iYmGAp<9YAa( z0QgYgTWqf1qN++Gqp z8@AYPTB3E|6s=WLG?xw0tm|U!o=&zd+H0oRYE;Dbx+Na9s^STqX|Gnq%H8s(nGDGJ j8vwW|`Ts`)fSK|Kx=IK@RG@g200000NkvXXu0mjfauFEA literal 0 HcmV?d00001 diff --git a/framemanager_8h_source.html b/framemanager_8h_source.html new file mode 100644 index 0000000..284d323 --- /dev/null +++ b/framemanager_8h_source.html @@ -0,0 +1,101 @@ + + + + + + + +wxExtend: include/wxex/aui/framemanager.h Source File + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
framemanager.h
+
+
+
1/*
+
2 ​​​SPDX-License-Identifier: GPL-3.0-or-later
+
3 Copyright © 2015-2022 Amebis
+
4 Copyright © 2016 GÉANT
+
5*/
+
6
+
7#pragma once
+
8
+
9#include "../common.h"
+
10
+
11#include <codeanalysis\warnings.h>
+
12#pragma warning(push)
+
13#pragma warning(disable: WXWIDGETS_CODE_ANALYSIS_WARNINGS)
+
14#include <wx/aui/framemanager.h>
+
15#include <wx/string.h>
+
16#pragma warning(pop)
+
17
+
20
+
31bool WXEXTEND_API wxAuiManagerUpdatePerspectiveCaptions(wxAuiManager& mgr, wxString& perspective);
+
32
+
#define WXEXTEND_API
Public function calling convention.
Definition: common.h:56
+
bool WXEXTEND_API wxAuiManagerUpdatePerspectiveCaptions(wxAuiManager &mgr, wxString &perspective)
Updates perspective captions with matching captions from panes.
Definition: framemanager.cpp:10
+
+ + + + diff --git a/functions.html b/functions.html new file mode 100644 index 0000000..1244bb1 --- /dev/null +++ b/functions.html @@ -0,0 +1,208 @@ + + + + + + + +wxExtend: Class Members + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- b -

+ + +

- c -

+ + +

- f -

+ + +

- g -

+ + +

- h -

+ + +

- i -

+ + +

- m -

+ + +

- o -

+ + +

- p -

+ + +

- r -

+ + +

- s -

+ + +

- t -

+ + +

- v -

+ + +

- w -

+ + +

- ~ -

+
+ + + + diff --git a/functions_func.html b/functions_func.html new file mode 100644 index 0000000..d6b0f33 --- /dev/null +++ b/functions_func.html @@ -0,0 +1,191 @@ + + + + + + + +wxExtend: Class Members - Functions + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- c -

+ + +

- f -

+ + +

- g -

+ + +

- h -

+ + +

- i -

+ + +

- m -

+ + +

- o -

+ + +

- p -

+ + +

- r -

+ + +

- s -

+ + +

- t -

+ + +

- v -

+ + +

- w -

+ + +

- ~ -

+
+ + + + diff --git a/functions_type.html b/functions_type.html new file mode 100644 index 0000000..63965c3 --- /dev/null +++ b/functions_type.html @@ -0,0 +1,75 @@ + + + + + + + +wxExtend: Class Members - Typedefs + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+ + + + diff --git a/functions_vars.html b/functions_vars.html new file mode 100644 index 0000000..a7b1cd5 --- /dev/null +++ b/functions_vars.html @@ -0,0 +1,86 @@ + + + + + + + +wxExtend: Class Members - Variables + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+ + + + diff --git a/group__wx_extend.html b/group__wx_extend.html new file mode 100644 index 0000000..aadb183 --- /dev/null +++ b/group__wx_extend.html @@ -0,0 +1,2051 @@ + + + + + + + +wxExtend: WxExtend + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+ +
WxExtend
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Classes

class  wxAppBar< W >
 Dockable application bar template. More...
 
class  wxAppBarFrame
 Dockable application bar frame. More...
 
class  wxAppBarDialog
 Dockable application bar dialog. More...
 
class  wxCoInitializer
 Create an object of this class on stack to initialize/cleanup the COM automatically. More...
 
class  wxCryptoSession
 Cryptographics Session Base Class. More...
 
class  wxCryptoSessionRSAAES
 RSA AES Cryptographics Session. More...
 
class  wxCryptoHash
 Cryptographics Hash Base. More...
 
class  wxCryptoHashSHA1
 SHA-1 Cryptographics Hash. More...
 
class  wxCryptoKey
 Cryptographics Key Base. More...
 
class  wxPersistentAuiManager
 Supports saving/restoring wxAuiManager state. More...
 
class  wxPersistentTLWEx
 Supports saving/restoring wxTopLevelWindow state. More...
 
class  wxHexValidatorBase
 Base class for hexadecimal validator. More...
 
class  wxHexValidator< T >
 Validator for hexadecimal entries. More...
 
class  wxHostNameValidator
 Validator for host name. More...
 
class  wxFQDNValidator
 Validator for FQDN. More...
 
class  wxFQDNListValidator
 Validator for FQDN lists. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Macros

+#define wxABT_AUTOHIDETIMERID   1
 Application bar auto-hide timer ID.
 
+#define wxABT_AUTOHIDETIME   300
 Application bar auto-hide timer timeout.
 
+#define wxABT_AUTOHIDETIMERINTERVAL   3000
 Application bar auto-hide timer interval.
 
#define WM_AB_NOTIFY   0x6f00
 Posted to notify application bar about system changes. More...
 
#define wxABF_ALLOWFLOAT   (1 << 0)
 Dockable application bar flags. More...
 
+#define wxABF_ALLOWDOCKTOP   (1 << 1)
 Is docking on top of the screen allowed?
 
+#define wxABF_ALLOWDOCKBOTTOM   (1 << 2)
 Is docking on bottom of the screen allowed?
 
+#define wxABF_ALLOWDOCKLEFT   (1 << 3)
 Is docking left of the screen allowed?
 
+#define wxABF_ALLOWDOCKRIGHT   (1 << 4)
 Is docking right of the screen allowed?
 
+#define wxABF_ALLOWDOCKANY   (wxABF_ALLOWDOCKTOP | wxABF_ALLOWDOCKBOTTOM | wxABF_ALLOWDOCKLEFT | wxABF_ALLOWDOCKRIGHT)
 Is docking at any edge of the screen allowed?
 
+#define wxABF_ALLOWDOCKHORIZONTAL   (wxABF_ALLOWDOCKTOP | wxABF_ALLOWDOCKBOTTOM)
 Is docking on top or bottom of the screen allowed?
 
+#define wxABF_ALLOWDOCKVERTICAL   (wxABF_ALLOWDOCKLEFT | wxABF_ALLOWDOCKRIGHT)
 Is docking left or right of the screen allowed?
 
+#define wxABF_ALLOWANY   (wxABF_ALLOWFLOAT | wxABF_ALLOWDOCKANY)
 Is floating and docking at any edge of the screen allowed?
 
+#define wxABF_ALWAYSONTOP   (1 << 5)
 Is application bar always on top?
 
+#define wxABF_ALWAYSONTOPTASKBAR   (1 << 6)
 Does application bar follow always on top state of the system taskbar?
 
+#define wxABF_AUTOHIDE   (1 << 7)
 Is application bar setup for auto-hide?
 
+#define wxABF_AUTOHIDETASKBAR   (1 << 8)
 Does application bar follow auto-hide state of the system taskbar?
 
+#define wxABF_ALLOWSIZING   (1 << 9)
 Is application bar's sizing allowed?
 
+#define wxABF_HIDETASKBARTABWHENFLOATING   (1 << 10)
 Should application bar's tab on the system taskbar hide when floating?
 
+#define wxABF_HIDETASKBARTABWHENDOCKED   (1 << 11)
 Should application bar's tab on the system taskbar hide when docked?
 
+#define wxABF_ALWAYSHIDETASKBARTAB   (wxABF_HIDETASKBARTABWHENFLOATING | wxABF_HIDETASKBARTABWHENDOCKED)
 Should application bar's tab on the system taskbar hide always?
 
+#define wxABF_FULLSCREENAPPOPEN   (1 << 12)
 Is full-screen application open?
 
+#define wxABF_AUTOHIDDEN   (1 << 13)
 Is application bar auto-hidden right now?
 
+#define wxEXTEND_VERSION   0x01050300
 wxExtend Version
 
+#define wxEXTEND_VERSION_MAJ   1
 wxExtend Major Version
 
+#define wxEXTEND_VERSION_MIN   5
 wxExtend Minor Version
 
+#define wxEXTEND_VERSION_REV   3
 wxExtend Revision
 
+#define wxEXTEND_VERSION_BUILD   0
 wxExtend Build
 
+#define wxEXTEND_VERSION_STR   "1.5.3"
 wxExtend Displayable Version
 
+#define wxEXTEND_BUILD_YEAR_STR   "2022"
 wxExtend Build Year
 
+#define wxExtendVersion   "15"
 wxExtend API Version
 
+#define _WINSOCKAPI_
 
+#define WXWIDGETS_CODE_ANALYSIS_WARNINGS   ALL_CODE_ANALYSIS_WARNINGS 26812 26814
 
+#define WXEXTEND_API
 Public function calling convention.
 
#define wxVERIFY(cond)   (cond)
 Test if condition is true. When not true, raise debug assertion with the given message. More...
 
+#define wxPERSIST_AUIMGR_KIND   "AuiManager"
 wxPersistentAuiManager kind for persistent storage
 
+#define wxPERSIST_AUIMGR_PERSPECTIVE   "perspective"
 Name of the persistent storage variable for saving Aui manager state.
 
+ + + + + + + + + + +

+Enumerations

enum class  wxAppBarState {
+  UNKNOWN = -2 +, wxAppBarState::FLOAT = -1 +, wxAppBarState::LEFT = ABE_LEFT +, wxAppBarState::TOP = ABE_TOP +,
+  wxAppBarState::RIGHT = ABE_RIGHT +, wxAppBarState::BOTTOM = ABE_BOTTOM +
+ }
 Dockable application bar states. More...
 
enum class  wxHexDecodeMode { wxHexDecodeMode::Strict +, wxHexDecodeMode::SkipWS +, wxHexDecodeMode::Relaxed + }
 Elements of this enum specify the possible behaviours of wxHexDecode() when an invalid character is encountered. More...
 
enum  wxHexValidatorStyle { wxNUM_VAL_HEX_LOWERCASE = 0x1000 + }
 Bit masks used for hexadecimal validator styles.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

bool wxAppBarIsDocked (wxAppBarState state)
 Returns if the application bar state represents docked state. More...
 
bool wxAppBarIsDockedVert (wxAppBarState state)
 Returns if the application bar state represents vertically docked state. More...
 
bool wxAppBarIsDockedHoriz (wxAppBarState state)
 Returns if the application bar state represents horizontally docked state. More...
 
WXHWND wxAppBarGetZWnd (wxAppBarState state, int flags)
 Returns the window above which to Z-order the application bar. More...
 
UINT_PTR wxAppBarGetTaskBarState ()
 Returns the current taskbar state. More...
 
bool WXEXTEND_API wxAuiManagerUpdatePerspectiveCaptions (wxAuiManager &mgr, wxString &perspective)
 Updates perspective captions with matching captions from panes. More...
 
bool wxGetDoWndAnimation ()
 Returns whether windows animation is enabled. More...
 
bool wxModifyStyleEx (WXHWND hWnd, DWORD dwRemove, DWORD dwAdd, UINT nFlags=0)
 Modifies window extended style. More...
 
bool wxInitializeLocale (wxLocale &locale, wxLanguage *language=NULL)
 Inizializes wxWidgets localization scheme. More...
 
bool WXEXTEND_API wxCryptoVerifySignature (const wxCryptoHash &hash, _In_reads_bytes_(signature_size) const void *signature_data, size_t signature_size, const wxCryptoKey &key)
 Verifies if the hash matches signature and the public key. More...
 
bool wxCryptoVerifySignature (const wxCryptoHash &hash, const wxMemoryBuffer &signature, const wxCryptoKey &key)
 Verifies if the hash matches signature and the public key. More...
 
constexpr size_t wxHexEncodedSize (size_t len) noexcept
 Return the size needed for the buffer containing the encoded representation of a buffer of given length. More...
 
size_t WXEXTEND_API wxHexEncode (char *dst, size_t dstLen, const void *src, size_t srcLen)
 Raw hex encoding function which encodes the contents of a buffer of the specified length into the buffer of the specified size. More...
 
wxString wxHexEncode (const void *src, size_t srcLen)
 Hex encoding function which encodes the contents of a buffer of the specified length into the wxString. More...
 
wxString wxHexEncode (const wxMemoryBuffer &buf)
 Hex encoding function which encodes the contents of a buffer into the wxString. More...
 
constexpr size_t wxHexDecodedSize (size_t len) noexcept
 Return the buffer size necessary for decoding a hex string of the given length. More...
 
size_t WXEXTEND_API wxHexDecode (void *dst, size_t dstLen, const char *src, size_t srcLen=wxNO_LEN, wxHexDecodeMode mode=wxHexDecodeMode::Strict, size_t *posErr=NULL)
 Raw decoding function which decodes the contents of the string of specified length (or zero terminated by default) into the provided buffer of the given size. More...
 
size_t wxHexDecode (void *dst, size_t dstLen, const wxString &src, wxHexDecodeMode mode=wxHexDecodeMode::Strict, size_t *posErr=NULL)
 Decoding function which decodes the contents of the string into the provided buffer of the given size. More...
 
wxMemoryBuffer WXEXTEND_API wxHexDecode (const char *src, size_t srcLen=wxNO_LEN, wxHexDecodeMode mode=wxHexDecodeMode::Strict, size_t *posErr=NULL)
 Decoding function which decodes the contents of the string of specified length (or zero terminated by default) into the buffer. More...
 
wxMemoryBuffer wxHexDecode (const wxString &src, wxHexDecodeMode mode=wxHexDecodeMode::Strict, size_t *posErr=NULL)
 Decoding function which decodes the contents of the string into the buffer. More...
 
+wxPersistentObject * wxCreatePersistentObject (wxAuiManager *mgr)
 wxAuiManager's instantiation of wxCreatePersistentObject template
 
bool wxURLIsProtected (char chr)
 Test if given character should be protected for URL encoding. More...
 
size_t wxURLEncodedSize (size_t len)
 Return the size needed for the buffer containing the encoded representation of a string of given length. More...
 
size_t WXEXTEND_API wxURLEncode (char *dst, size_t dstLen, const char *src, size_t srcLen)
 Raw URL encoding function which encodes the contents of a string of the specified length into the buffer of the specified size. More...
 
wxString wxURLEncode (const char *src, size_t srcLen)
 URL encoding function which encodes the contents of a string of the specified length into the wxString. More...
 
wxString wxURLEncode (const wxString &str)
 URL encoding function which encodes the contents of a string into the wxString. More...
 
wxString wxURLEncode (const wxMemoryBuffer &buf)
 URL encoding function which encodes the contents of a buffer into the wxString. More...
 
size_t wxURLDecodedSize (size_t len)
 Return the buffer size necessary for decoding a URL string of the given length. More...
 
size_t WXEXTEND_API wxURLDecode (char *dst, size_t dstLen, const char *src, size_t srcLen=wxNO_LEN)
 Raw decoding function which decodes the contents of the string of specified length (or zero terminated by default) into the provided buffer of the given size. More...
 
size_t wxURLDecode (char *dst, size_t dstLen, const wxString &src)
 Decoding function which decodes the contents of the string into the provided buffer of the given size. More...
 
wxMemoryBuffer WXEXTEND_API wxURLDecode (const char *src, size_t srcLen=wxNO_LEN)
 Decoding function which decodes the contents of the string of specified length (or zero terminated by default) into the buffer. More...
 
wxMemoryBuffer wxURLDecode (const wxString &src)
 Decoding function which decodes the contents of the string into the buffer. More...
 
wxString wxXmlEscapeText (const wxString &str)
 Escapes text string for XML insertion. More...
 
wxString wxXmlEscapeAttr (const wxString &str)
 Escapes attribute value string for XML insertion. More...
 
bool WXEXTEND_API wxXmlHashNode (wxCryptoHash &hash, const wxXmlNode *node)
 Calculates hash of the node and all its children. More...
 
+

Detailed Description

+

Macro Definition Documentation

+ +

◆ WM_AB_NOTIFY

+ +
+
+ + + + +
#define WM_AB_NOTIFY   0x6f00
+
+ +

Posted to notify application bar about system changes.

+
Parameters
+ + + +
[in]wParamEvent identifier. One of the following values
    +
  • ABN_FULLSCREENAPP Notifies an appbar when a full-screen application is opening or closing. lParam is boolean flag specifying whether a full-screen application is opening or closing. This parameter is TRUE if the application is opening or FALSE if it is closing.
  • +
  • ABN_POSCHANGED Notifies an appbar when an event has occurred that may affect the appbar's size and position. Events include changes in the taskbar's size, position, and visibility state, as well as the addition, removal, or resizing of another appbar on the same side of the screen. lParam is not used.
  • +
  • ABN_STATECHANGE Notifies an appbar that the taskbar's autohide or always-on-top state has changed—that is, the user has selected or cleared the "Always on top" or "Auto hide" check box on the taskbar's property sheet. lParam is not used.
  • +
+
[in]lParamEvent specific. See wParam for details.
+
+
+ +
+
+ +

◆ wxABF_ALLOWFLOAT

+ +
+
+ + + + +
#define wxABF_ALLOWFLOAT   (1 << 0)
+
+ +

Dockable application bar flags.

+

Is floating application bar allowed?

+ +
+
+ +

◆ wxVERIFY

+ +
+
+ + + + + + + + +
#define wxVERIFY( cond)   (cond)
+
+ +

Test if condition is true. When not true, raise debug assertion with the given message.

+

Test if condition is true. When not true, raise debug assertion.

+ +
+
+

Enumeration Type Documentation

+ +

◆ wxAppBarState

+ +
+
+ + + + + +
+ + + + +
enum class wxAppBarState
+
+strong
+
+ +

Dockable application bar states.

+ + + + + + +
Enumerator
FLOAT 

Application bar is floating on the desktop (normal window)

+
LEFT 

Application bar is docked at the left edge of the desktop.

+
TOP 

Application bar is docked at the top edge of the desktop.

+
RIGHT 

Application bar is docked at the right edge of the desktop.

+
BOTTOM 

Application bar is docked at the bottom edge of the desktop.

+
+ +
+
+ +

◆ wxHexDecodeMode

+ +
+
+ + + + + +
+ + + + +
enum class wxHexDecodeMode
+
+strong
+
+ +

Elements of this enum specify the possible behaviours of wxHexDecode() when an invalid character is encountered.

+ + + + +
Enumerator
Strict 

Normal behaviour: stop at any invalid characters.

+
SkipWS 

Skip whitespace characters.

+
Relaxed 

The most lenient behaviour: simply ignore all invalid characters.

+
+ +
+
+

Function Documentation

+ +

◆ wxAppBarGetTaskBarState()

+ +
+
+ + + + + +
+ + + + + + + +
UINT_PTR wxAppBarGetTaskBarState ()
+
+inline
+
+ +

Returns the current taskbar state.

+
Returns
The taskbar state
+
See also
SHAppBarMessage function
+ +
+
+ +

◆ wxAppBarGetZWnd()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
WXHWND wxAppBarGetZWnd (wxAppBarState state,
int flags 
)
+
+inline
+
+ +

Returns the window above which to Z-order the application bar.

+
Parameters
+ + + +
[in]stateThe state of the application bar
[in]flagsThe flags of the application bar
+
+
+
Returns
The handle of the window
+ +
+
+ +

◆ wxAppBarIsDocked()

+ +
+
+ + + + + +
+ + + + + + + + +
bool wxAppBarIsDocked (wxAppBarState state)
+
+inline
+
+ +

Returns if the application bar state represents docked state.

+
Parameters
+ + +
[in]stateThe state of the application bar
+
+
+
Returns
    +
  • true if the application bar state represents docked state
  • +
  • false otherwise
  • +
+
+ +
+
+ +

◆ wxAppBarIsDockedHoriz()

+ +
+
+ + + + + +
+ + + + + + + + +
bool wxAppBarIsDockedHoriz (wxAppBarState state)
+
+inline
+
+ +

Returns if the application bar state represents horizontally docked state.

+
Parameters
+ + +
[in]stateThe state of the application bar
+
+
+
Returns
    +
  • true if the application bar state represents horizontally docked state
  • +
  • false otherwise
  • +
+
+ +
+
+ +

◆ wxAppBarIsDockedVert()

+ +
+
+ + + + + +
+ + + + + + + + +
bool wxAppBarIsDockedVert (wxAppBarState state)
+
+inline
+
+ +

Returns if the application bar state represents vertically docked state.

+
Parameters
+ + +
[in]stateThe state of the application bar
+
+
+
Returns
    +
  • true if the application bar state represents vertically docked state
  • +
  • false otherwise
  • +
+
+ +
+
+ +

◆ wxAuiManagerUpdatePerspectiveCaptions()

+ +
+
+ + + + + + + + + + + + + + + + + + +
bool WXEXTEND_API wxAuiManagerUpdatePerspectiveCaptions (wxAuiManager & mgr,
wxString & perspective 
)
+
+ +

Updates perspective captions with matching captions from panes.

+
Parameters
+ + + +
[in]mgrwxAUI manager
[in,out]perspectivePerspective string to update captions in
+
+
+
Returns
    +
  • true when update succeeded
  • +
  • false otherwise
  • +
+
+ +
+
+ +

◆ wxCryptoVerifySignature() [1/2]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool WXEXTEND_API wxCryptoVerifySignature (const wxCryptoHashhash,
_In_reads_bytes_(signature_size) const void * signature_data,
size_t signature_size,
const wxCryptoKeykey 
)
+
+ +

Verifies if the hash matches signature and the public key.

+
Parameters
+ + + + + +
[in]hashHash
[in]signature_dataPointer to signature data
[in]signature_sizeSignature data size in bytes
[in]keyPublic key
+
+
+
Returns
    +
  • true if verification succeeded and the hash matches
  • +
  • false otherwise
  • +
+
+ +
+
+ +

◆ wxCryptoVerifySignature() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
bool wxCryptoVerifySignature (const wxCryptoHashhash,
const wxMemoryBuffer & signature,
const wxCryptoKeykey 
)
+
+inline
+
+ +

Verifies if the hash matches signature and the public key.

+
Parameters
+ + + + +
[in]hashHash
[in]signatureSignature data
[in]keyPublic key
+
+
+
Returns
    +
  • true if verification succeeded and the hash matches
  • +
  • false otherwise
  • +
+
+ +
+
+ +

◆ wxGetDoWndAnimation()

+ +
+
+ + + + + +
+ + + + + + + +
bool wxGetDoWndAnimation ()
+
+inline
+
+ +

Returns whether windows animation is enabled.

+
Returns
    +
  • true when window animation is enabled
  • +
  • false otherwise
  • +
+
+ +
+
+ +

◆ wxHexDecode() [1/4]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
wxMemoryBuffer WXEXTEND_API wxHexDecode (const char * src,
size_t srcLen = wxNO_LEN,
wxHexDecodeMode mode = wxHexDecodeMode::Strict,
size_t * posErr = NULL 
)
+
+ +

Decoding function which decodes the contents of the string of specified length (or zero terminated by default) into the buffer.

+

The function normally stops at any character invalid inside a hex-encoded string (i.e. not numeric nor 'A-Z' nor 'a-z') but can be made to skip the whitespace or all invalid characters using its mode argument

+
Parameters
+ + + + + +
[in]srcSource buffer to decode
[in]srcLenLength of src buffer (in characters) or wxNO_LEN for zero terminated strings
[in]modeDesired behaviour on invalid characters (one of wxHexDecodeMode constants)
[out]posErrError offset in source buffer (in characters)
+
+
+
Returns
Destination buffer with decoded data or an empty buffer if an error occured during decoding
+ +
+
+ +

◆ wxHexDecode() [2/4]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
wxMemoryBuffer wxHexDecode (const wxString & src,
wxHexDecodeMode mode = wxHexDecodeMode::Strict,
size_t * posErr = NULL 
)
+
+inline
+
+ +

Decoding function which decodes the contents of the string into the buffer.

+

The function normally stops at any character invalid inside a hex-encoded string (i.e. not numeric nor 'A-Z' nor 'a-z') but can be made to skip the whitespace or all invalid characters using its mode argument

+
Parameters
+ + + + +
[in]srcSource string to decode
[in]modeDesired behaviour on invalid characters (one of wxHexDecodeMode constants)
[out]posErrError offset in source buffer (in characters)
+
+
+
Returns
Destination buffer with decoded data or an empty buffer if an error occured during decoding
+ +
+
+ +

◆ wxHexDecode() [3/4]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
size_t WXEXTEND_API wxHexDecode (void * dst,
size_t dstLen,
const char * src,
size_t srcLen = wxNO_LEN,
wxHexDecodeMode mode = wxHexDecodeMode::Strict,
size_t * posErr = NULL 
)
+
+ +

Raw decoding function which decodes the contents of the string of specified length (or zero terminated by default) into the provided buffer of the given size.

+

The function normally stops at any character invalid inside a hex-encoded string (i.e. not numeric nor 'A-Z' nor 'a-z') but can be made to skip the whitespace or all invalid characters using its mode argument

+
Parameters
+ + + + + + + +
[out]dstDestination buffer to receive decoded data
[in]dstLenLength of dst buffer (in bytes)
[in]srcSource buffer to decode
[in]srcLenLength of src buffer (in characters) or wxNO_LEN for zero terminated strings
[in]modeDesired behaviour on invalid characters (one of wxHexDecodeMode constants)
[out]posErrError offset in source buffer (in characters)
+
+
+
Returns
The length of the decoded data or wxCONV_FAILED if an error occurs such as the buffer is too small or the encoded string is invalid; in the latter case the posErr is filled with the position where the decoding stopped if it is not NULL
+ +
+
+ +

◆ wxHexDecode() [4/4]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
size_t wxHexDecode (void * dst,
size_t dstLen,
const wxString & src,
wxHexDecodeMode mode = wxHexDecodeMode::Strict,
size_t * posErr = NULL 
)
+
+inline
+
+ +

Decoding function which decodes the contents of the string into the provided buffer of the given size.

+

The function normally stops at any character invalid inside a hex-encoded string (i.e. not numeric nor 'A-Z' nor 'a-z') but can be made to skip the whitespace or all invalid characters using its mode argument

+
Parameters
+ + + + + + +
[out]dstDestination buffer to receive decoded data
[in]dstLenLength of dst buffer (in bytes)
[in]srcSource string to decode
[in]modeDesired behaviour on invalid characters (one of wxHexDecodeMode constants)
[out]posErrError offset in source buffer (in characters)
+
+
+
Returns
The length of the decoded data or wxCONV_FAILED if an error occurs such as the buffer is too small or the encoded string is invalid; in the latter case the posErr is filled with the position where the decoding stopped if it is not NULL
+ +
+
+ +

◆ wxHexDecodedSize()

+ +
+
+ + + + + +
+ + + + + + + + +
constexpr size_t wxHexDecodedSize (size_t len)
+
+inlineconstexprnoexcept
+
+ +

Return the buffer size necessary for decoding a hex string of the given length.

+
Parameters
+ + +
[in]lenLength of the hex encoded string
+
+
+
Returns
Maximum decoded representation size (in bytes)
+ +
+
+ +

◆ wxHexEncode() [1/3]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
size_t WXEXTEND_API wxHexEncode (char * dst,
size_t dstLen,
const void * src,
size_t srcLen 
)
+
+ +

Raw hex encoding function which encodes the contents of a buffer of the specified length into the buffer of the specified size.

+
Parameters
+ + + + + +
[out]dstDestination buffer to receive Hex encoded data
[in]dstLenLength of dst buffer (in characters)
[in]srcSource buffer to encode
[in]srcLenLength of src buffer (in bytes)
+
+
+
Returns
The length of the encoded data or wxCONV_FAILED if the buffer is not large enough; to determine the needed size you can either allocate a buffer of wxHexEncodedSize(srcLen) size or call the function with NULL buffer in which case the required size will be returned
+ +
+
+ +

◆ wxHexEncode() [2/3]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
wxString wxHexEncode (const void * src,
size_t srcLen 
)
+
+inline
+
+ +

Hex encoding function which encodes the contents of a buffer of the specified length into the wxString.

+
Parameters
+ + + +
[in]srcSource buffer to encode
[in]srcLenLength of src buffer (in bytes)
+
+
+
Returns
The hex encoded string
+ +
+
+ +

◆ wxHexEncode() [3/3]

+ +
+
+ + + + + +
+ + + + + + + + +
wxString wxHexEncode (const wxMemoryBuffer & buf)
+
+inline
+
+ +

Hex encoding function which encodes the contents of a buffer into the wxString.

+
Parameters
+ + +
[in]bufSource buffer to encode
+
+
+
Returns
The hex encoded string
+ +
+
+ +

◆ wxHexEncodedSize()

+ +
+
+ + + + + +
+ + + + + + + + +
constexpr size_t wxHexEncodedSize (size_t len)
+
+inlineconstexprnoexcept
+
+ +

Return the size needed for the buffer containing the encoded representation of a buffer of given length.

+
Parameters
+ + +
[in]lenLength of the buffer
+
+
+
Returns
Maximum encoded representation size (in characters)
+ +
+
+ +

◆ wxInitializeLocale()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool wxInitializeLocale (wxLocale & locale,
wxLanguage * language = NULL 
)
+
+inline
+
+ +

Inizializes wxWidgets localization scheme.

+

The language identifier is read from Language configuration string ("ll_CC" form expected). The path to folder containing localization catalogue PO files is read from LocalizationRepositoryPath configuration string.

+
Parameters
+ + + +
[in,out]localeLocale to initialize
[out]languageTranslation language
+
+
+
Returns
    +
  • true when initialization succeeded
  • +
  • false otherwise
  • +
+
+ +
+
+ +

◆ wxModifyStyleEx()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool wxModifyStyleEx (WXHWND hWnd,
DWORD dwRemove,
DWORD dwAdd,
UINT nFlags = 0 
)
+
+inline
+
+ +

Modifies window extended style.

+
Parameters
+ + + + + +
[in]hWndHandle of the window to modify.
[in]dwRemoveSet of extended styles to remove.
[in]dwAddSet of extended styles to add.
[in]nFlagsAdditional 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
  • +
+
+ +
+
+ +

◆ wxURLDecode() [1/4]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
size_t WXEXTEND_API wxURLDecode (char * dst,
size_t dstLen,
const char * src,
size_t srcLen = wxNO_LEN 
)
+
+ +

Raw decoding function which decodes the contents of the string of specified length (or zero terminated by default) into the provided buffer of the given size.

+
Parameters
+ + + + + +
[out]dstDestination buffer to receive decoded data
[in]dstLenLength of dst buffer (in bytes)
[in]srcSource buffer to decode
[in]srcLenLength of src buffer (in characters) or wxNO_LEN for zero terminated strings
+
+
+
Returns
The length of the decoded data or wxCONV_FAILED if the buffer is not large enough; to determine the needed size you can either allocate a buffer of wxURLDecodedSize(srcLen) size or call the function with NULL string in which case the required size will be returned
+ +
+
+ +

◆ wxURLDecode() [2/4]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
size_t wxURLDecode (char * dst,
size_t dstLen,
const wxString & src 
)
+
+inline
+
+ +

Decoding function which decodes the contents of the string into the provided buffer of the given size.

+
Parameters
+ + + + +
[out]dstDestination buffer to receive decoded data
[in]dstLenLength of dst buffer (in bytes)
[in]srcSource string to decode
+
+
+
Returns
The length of the decoded data or wxCONV_FAILED if the buffer is not large enough; to determine the needed size you can either allocate a buffer of wxURLDecodedSize(srcLen) size or call the function with NULL string in which case the required size will be returned
+ +
+
+ +

◆ wxURLDecode() [3/4]

+ +
+
+ + + + + + + + + + + + + + + + + + +
wxMemoryBuffer WXEXTEND_API wxURLDecode (const char * src,
size_t srcLen = wxNO_LEN 
)
+
+ +

Decoding function which decodes the contents of the string of specified length (or zero terminated by default) into the buffer.

+
Parameters
+ + + +
[in]srcSource buffer to decode
[in]srcLenLength of src buffer (in characters) or wxNO_LEN for zero terminated strings
+
+
+
Returns
Destination buffer with decoded data or an empty buffer if an error occured during decoding
+ +
+
+ +

◆ wxURLDecode() [4/4]

+ +
+
+ + + + + +
+ + + + + + + + +
wxMemoryBuffer wxURLDecode (const wxString & src)
+
+inline
+
+ +

Decoding function which decodes the contents of the string into the buffer.

+
Parameters
+ + +
[in]srcSource string to decode
+
+
+
Returns
Destination buffer with decoded data or an empty buffer if an error occured during decoding
+ +
+
+ +

◆ wxURLDecodedSize()

+ +
+
+ + + + + +
+ + + + + + + + +
size_t wxURLDecodedSize (size_t len)
+
+inline
+
+ +

Return the buffer size necessary for decoding a URL string of the given length.

+
Parameters
+ + +
[in]lenLength of the URL encoded string
+
+
+
Returns
Maximum decoded representation size (in bytes)
+ +
+
+ +

◆ wxURLEncode() [1/4]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
size_t WXEXTEND_API wxURLEncode (char * dst,
size_t dstLen,
const char * src,
size_t srcLen 
)
+
+ +

Raw URL encoding function which encodes the contents of a string of the specified length into the buffer of the specified size.

+
Parameters
+ + + + + +
[out]dstDestination buffer to receive URL encoded data
[in]dstLenLength of dst buffer (in characters)
[in]srcSource string to encode
[in]srcLenLength of src string (in bytes)
+
+
+
Returns
The length of the encoded data or wxCONV_FAILED if the buffer is not large enough; to determine the needed size you can either allocate a buffer of wxURLEncodedSize(srcLen) size or call the function with NULL string in which case the required size will be returned
+ +
+
+ +

◆ wxURLEncode() [2/4]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
wxString wxURLEncode (const char * src,
size_t srcLen 
)
+
+inline
+
+ +

URL encoding function which encodes the contents of a string of the specified length into the wxString.

+
Parameters
+ + + +
[in]srcSource string to encode
[in]srcLenLength of src string (in bytes)
+
+
+
Returns
The URL encoded string
+ +
+
+ +

◆ wxURLEncode() [3/4]

+ +
+
+ + + + + +
+ + + + + + + + +
wxString wxURLEncode (const wxMemoryBuffer & buf)
+
+inline
+
+ +

URL encoding function which encodes the contents of a buffer into the wxString.

+
Parameters
+ + +
[in]bufSource buffer to encode
+
+
+
Returns
The URL encoded string
+ +
+
+ +

◆ wxURLEncode() [4/4]

+ +
+
+ + + + + +
+ + + + + + + + +
wxString wxURLEncode (const wxString & str)
+
+inline
+
+ +

URL encoding function which encodes the contents of a string into the wxString.

+
Parameters
+ + +
[in]strSource string to encode
+
+
+
Returns
The URL encoded string
+ +
+
+ +

◆ wxURLEncodedSize()

+ +
+
+ + + + + +
+ + + + + + + + +
size_t wxURLEncodedSize (size_t len)
+
+inline
+
+ +

Return the size needed for the buffer containing the encoded representation of a string of given length.

+
Parameters
+ + +
[in]lenLength of string (in bytes)
+
+
+
Returns
Maximum encoded representation size (in characters)
+ +
+
+ +

◆ wxURLIsProtected()

+ +
+
+ + + + + +
+ + + + + + + + +
bool wxURLIsProtected (char chr)
+
+inline
+
+ +

Test if given character should be protected for URL encoding.

+
Parameters
+ + +
[in]chrASCII character
+
+
+
Returns
    +
  • true if character should be protected
  • +
  • false otherwise
  • +
+
+ +
+
+ +

◆ wxXmlEscapeAttr()

+ +
+
+ + + + + +
+ + + + + + + + +
wxString wxXmlEscapeAttr (const wxString & str)
+
+inline
+
+ +

Escapes attribute value string for XML insertion.

+
Parameters
+ + +
[in]strAttribute value
+
+
+
Returns
Escaped string
+ +
+
+ +

◆ wxXmlEscapeText()

+ +
+
+ + + + + +
+ + + + + + + + +
wxString wxXmlEscapeText (const wxString & str)
+
+inline
+
+ +

Escapes text string for XML insertion.

+
Parameters
+ + +
[in]strText string
+
+
+
Returns
Escaped string
+ +
+
+ +

◆ wxXmlHashNode()

+ +
+
+ + + + + + + + + + + + + + + + + + +
bool WXEXTEND_API wxXmlHashNode (wxCryptoHashhash,
const wxXmlNode * node 
)
+
+ +

Calculates hash of the node and all its children.

+
Parameters
+ + + +
[in]hashHandle of a hash object
[in]nodeRoot node
+
+
+ +
+
+
+ + + + diff --git a/hex_8h_source.html b/hex_8h_source.html new file mode 100644 index 0000000..d59a674 --- /dev/null +++ b/hex_8h_source.html @@ -0,0 +1,174 @@ + + + + + + + +wxExtend: include/wxex/hex.h Source File + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
hex.h
+
+
+
1/*
+
2 ​​​SPDX-License-Identifier: GPL-3.0-or-later
+
3 Copyright © 2015-2022 Amebis
+
4 Copyright © 2016 GÉANT
+
5*/
+
6
+
7#pragma once
+
8
+
9#include "common.h"
+
10
+
11#include <codeanalysis\warnings.h>
+
12#pragma warning(push)
+
13#pragma warning(disable: WXWIDGETS_CODE_ANALYSIS_WARNINGS)
+
14#include <wx/string.h>
+
15#include <wx/buffer.h>
+
16#pragma warning(pop)
+
17
+
18
+
19// ----------------------------------------------------------------------------
+
20// Encoding Functions
+
21// ----------------------------------------------------------------------------
+
22
+
25
+
34inline constexpr size_t wxHexEncodedSize(size_t len) noexcept
+
35{
+
36 return 2*len;
+
37}
+
38
+
39
+
54size_t WXEXTEND_API wxHexEncode(char *dst, size_t dstLen, const void *src, size_t srcLen);
+
55
+
56
+
66inline wxString wxHexEncode(const void *src, size_t srcLen)
+
67{
+
68 const size_t dstLen = wxHexEncodedSize(srcLen);
+
69 wxCharBuffer dst(dstLen);
+
70 wxHexEncode(dst.data(), dstLen, src, srcLen);
+
71
+
72 return dst;
+
73}
+
74
+
75
+
83inline wxString wxHexEncode(const wxMemoryBuffer& buf)
+
84{
+
85 return wxHexEncode(buf.GetData(), buf.GetDataLen());
+
86}
+
87
+
88
+
89// ----------------------------------------------------------------------------
+
90// Decoding Functions
+
91// ----------------------------------------------------------------------------
+
92
+ +
98{
+
99 Strict,
+
100 SkipWS,
+
101 Relaxed,
+
102};
+
103
+
104
+
113inline constexpr size_t wxHexDecodedSize(size_t len) noexcept
+
114{
+
115 return (len + 1)/2;
+
116}
+
117
+
139size_t WXEXTEND_API wxHexDecode(void *dst, size_t dstLen, const char *src, size_t srcLen = wxNO_LEN, wxHexDecodeMode mode = wxHexDecodeMode::Strict, size_t *posErr = NULL);
+
140
+
141
+
160inline size_t wxHexDecode(void *dst, size_t dstLen, const wxString& src, wxHexDecodeMode mode = wxHexDecodeMode::Strict, size_t *posErr = NULL)
+
161{
+
162 // don't use str.length() here as the ASCII buffer is shorter than it is for
+
163 // strings with embedded NULs
+
164 return wxHexDecode(dst, dstLen, src.ToAscii(), wxNO_LEN, mode, posErr);
+
165}
+
166
+
167
+
183wxMemoryBuffer WXEXTEND_API wxHexDecode(const char *src, size_t srcLen = wxNO_LEN, wxHexDecodeMode mode = wxHexDecodeMode::Strict, size_t *posErr = NULL);
+
184
+
185
+
199inline wxMemoryBuffer wxHexDecode(const wxString& src, wxHexDecodeMode mode = wxHexDecodeMode::Strict, size_t *posErr = NULL)
+
200{
+
201 // don't use str.length() here as the ASCII buffer is shorter than it for
+
202 // strings with embedded NULs
+
203 return wxHexDecode(src.ToAscii(), wxNO_LEN, mode, posErr);
+
204}
+
205
+
size_t WXEXTEND_API wxHexDecode(void *dst, size_t dstLen, const char *src, size_t srcLen=wxNO_LEN, wxHexDecodeMode mode=wxHexDecodeMode::Strict, size_t *posErr=NULL)
Raw decoding function which decodes the contents of the string of specified length (or zero terminate...
Definition: hex.cpp:36
+
#define WXEXTEND_API
Public function calling convention.
Definition: common.h:56
+
constexpr size_t wxHexDecodedSize(size_t len) noexcept
Return the buffer size necessary for decoding a hex string of the given length.
Definition: hex.h:113
+
size_t WXEXTEND_API wxHexEncode(char *dst, size_t dstLen, const void *src, size_t srcLen)
Raw hex encoding function which encodes the contents of a buffer of the specified length into the buf...
Definition: hex.cpp:10
+
wxHexDecodeMode
Elements of this enum specify the possible behaviours of wxHexDecode() when an invalid character is e...
Definition: hex.h:98
+
constexpr size_t wxHexEncodedSize(size_t len) noexcept
Return the size needed for the buffer containing the encoded representation of a buffer of given leng...
Definition: hex.h:34
+
@ SkipWS
Skip whitespace characters.
+
@ Strict
Normal behaviour: stop at any invalid characters.
+
@ Relaxed
The most lenient behaviour: simply ignore all invalid characters.
+
+ + + + diff --git a/hierarchy.html b/hierarchy.html new file mode 100644 index 0000000..22d8341 --- /dev/null +++ b/hierarchy.html @@ -0,0 +1,109 @@ + + + + + + + +wxExtend: Class Hierarchy + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Class Hierarchy
+
+
+
This inheritance list is sorted roughly, but not completely, alphabetically:
+
[detail level 123]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 CwxTopLevelWindow::GeometrySerializer
 CwxPersistentTLWExSupports saving/restoring wxTopLevelWindow state
 CW
 CwxAppBar< W >Dockable application bar template
 CwxCoInitializerCreate an object of this class on stack to initialize/cleanup the COM automatically
 CwxCryptoHashCryptographics Hash Base
 CwxCryptoHashSHA1SHA-1 Cryptographics Hash
 CwxCryptoKeyCryptographics Key Base
 CwxCryptoSessionCryptographics Session Base Class
 CwxCryptoSessionRSAAESRSA AES Cryptographics Session
 CwxDialog
 CwxAppBar< wxDialog >
 CwxAppBarDialogDockable application bar dialog
 CwxFrame
 CwxAppBar< wxFrame >
 CwxAppBarFrameDockable application bar frame
 CwxIntegerValidatorBase
 CwxHexValidatorBaseBase class for hexadecimal validator
 CwxPrivate::wxNumValidator
 CwxHexValidator< T >Validator for hexadecimal entries
 CwxObject
 CwxObjectWithData< T >Helper template for event user data
 CwxPersistentObject
 CwxPersistentAuiManagerSupports saving/restoring wxAuiManager state
 CwxPersistentWindow
 CwxPersistentTLWExSupports saving/restoring wxTopLevelWindow state
 CwxValidator
 CwxFQDNListValidatorValidator for FQDN lists
 CwxFQDNValidatorValidator for FQDN
 CwxHostNameValidatorValidator for host name
+
+
+ + + + diff --git a/index.html b/index.html new file mode 100644 index 0000000..fce2c2e --- /dev/null +++ b/index.html @@ -0,0 +1,75 @@ + + + + + + + +wxExtend: Main Page + + + + + + + + + +
+
+ + + + + + +
+
wxExtend +
+
Additional templates and function helpers for wxWidgets
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
wxExtend Documentation
+
+
+
+ + + + diff --git a/jquery.js b/jquery.js new file mode 100644 index 0000000..c9ed3d9 --- /dev/null +++ b/jquery.js @@ -0,0 +1,35 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0a;a++)for(i in o[a])n=o[a][i],o[a].hasOwnProperty(i)&&void 0!==n&&(e[i]=t.isPlainObject(n)?t.isPlainObject(e[i])?t.widget.extend({},e[i],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,i){var n=i.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=s.call(arguments,1),h=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(h=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(h=i&&i.jquery?h.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):h=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new i(o,this))})),h}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("
"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.widthi?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,m=-2*e.offset[1];0>c?(s=t.top+p+f+m+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+m)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+m-h,(i>0||u>a(i))&&(t.top+=p+f+m))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}}),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var n=!1;t(document).on("mouseup",function(){n=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!n){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,o="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!o&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),n=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,n=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("
").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("
"),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidtht.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("
"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element +},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),m&&(p-=l),g&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable});/** + * Copyright (c) 2007 Ariel Flesler - aflesler ○ gmail • com | https://github.com/flesler + * Licensed under MIT + * @author Ariel Flesler + * @version 2.1.2 + */ +;(function(f){"use strict";"function"===typeof define&&define.amd?define(["jquery"],f):"undefined"!==typeof module&&module.exports?module.exports=f(require("jquery")):f(jQuery)})(function($){"use strict";function n(a){return!a.nodeName||-1!==$.inArray(a.nodeName.toLowerCase(),["iframe","#document","html","body"])}function h(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}var p=$.scrollTo=function(a,d,b){return $(window).scrollTo(a,d,b)};p.defaults={axis:"xy",duration:0,limit:!0};$.fn.scrollTo=function(a,d,b){"object"=== typeof d&&(b=d,d=0);"function"===typeof b&&(b={onAfter:b});"max"===a&&(a=9E9);b=$.extend({},p.defaults,b);d=d||b.duration;var u=b.queue&&1=f[g]?0:Math.min(f[g],n));!a&&1-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 + * http://www.smartmenus.org/ + * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file diff --git a/menu.js b/menu.js new file mode 100644 index 0000000..54e81cf --- /dev/null +++ b/menu.js @@ -0,0 +1,127 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { + function makeTree(data,relPath) { + var result=''; + if ('children' in data) { + result+=''; + } + return result; + } + var searchBox; + if (searchEnabled) { + if (serverSide) { + searchBox='
'+ + '
'+ + '
'+ + ''+ + '
'+ + '
'+ + '
'+ + '
'; + } else { + searchBox='
'+ + ''+ + ''+ + ''+ + ''+ + ''+ + '' + '' + '
'; + } + } + + $('#main-nav').before('
'+ + ''+ + ''+ + '
'); + $('#main-nav').append(makeTree(menudata,relPath)); + $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); + if (searchBox) { + $('#main-menu').append('
  • '); + } + var $mainMenuState = $('#main-menu-state'); + var prevWidth = 0; + if ($mainMenuState.length) { + function initResizableIfExists() { + if (typeof initResizable==='function') initResizable(); + } + // animate mobile menu + $mainMenuState.change(function(e) { + var $menu = $('#main-menu'); + var options = { duration: 250, step: initResizableIfExists }; + if (this.checked) { + options['complete'] = function() { $menu.css('display', 'block') }; + $menu.hide().slideDown(options); + } else { + options['complete'] = function() { $menu.css('display', 'none') }; + $menu.show().slideUp(options); + } + }); + // set default menu visibility + function resetState() { + var $menu = $('#main-menu'); + var $mainMenuState = $('#main-menu-state'); + var newWidth = $(window).outerWidth(); + if (newWidth!=prevWidth) { + if ($(window).outerWidth()<768) { + $mainMenuState.prop('checked',false); $menu.hide(); + $('#searchBoxPos1').html(searchBox); + $('#searchBoxPos2').hide(); + } else { + $menu.show(); + $('#searchBoxPos1').empty(); + $('#searchBoxPos2').html(searchBox); + $('#searchBoxPos2').show(); + } + prevWidth = newWidth; + } + } + $(window).ready(function() { resetState(); initResizableIfExists(); }); + $(window).resize(resetState); + } + $('#main-menu').smartmenus(); +} +/* @license-end */ diff --git a/menudata.js b/menudata.js new file mode 100644 index 0000000..5274058 --- /dev/null +++ b/menudata.js @@ -0,0 +1,67 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file +*/ +var menudata={children:[ +{text:"Main Page",url:"index.html"}, +{text:"Modules",url:"modules.html"}, +{text:"Classes",url:"annotated.html",children:[ +{text:"Class List",url:"annotated.html"}, +{text:"Class Index",url:"classes.html"}, +{text:"Class Hierarchy",url:"hierarchy.html"}, +{text:"Class Members",url:"functions.html",children:[ +{text:"All",url:"functions.html",children:[ +{text:"b",url:"functions.html#index_b"}, +{text:"c",url:"functions.html#index_c"}, +{text:"f",url:"functions.html#index_f"}, +{text:"g",url:"functions.html#index_g"}, +{text:"h",url:"functions.html#index_h"}, +{text:"i",url:"functions.html#index_i"}, +{text:"m",url:"functions.html#index_m"}, +{text:"o",url:"functions.html#index_o"}, +{text:"p",url:"functions.html#index_p"}, +{text:"r",url:"functions.html#index_r"}, +{text:"s",url:"functions.html#index_s"}, +{text:"t",url:"functions.html#index_t"}, +{text:"v",url:"functions.html#index_v"}, +{text:"w",url:"functions.html#index_w"}, +{text:"~",url:"functions.html#index__7E"}]}, +{text:"Functions",url:"functions_func.html",children:[ +{text:"c",url:"functions_func.html#index_c"}, +{text:"f",url:"functions_func.html#index_f"}, +{text:"g",url:"functions_func.html#index_g"}, +{text:"h",url:"functions_func.html#index_h"}, +{text:"i",url:"functions_func.html#index_i"}, +{text:"m",url:"functions_func.html#index_m"}, +{text:"o",url:"functions_func.html#index_o"}, +{text:"p",url:"functions_func.html#index_p"}, +{text:"r",url:"functions_func.html#index_r"}, +{text:"s",url:"functions_func.html#index_s"}, +{text:"t",url:"functions_func.html#index_t"}, +{text:"v",url:"functions_func.html#index_v"}, +{text:"w",url:"functions_func.html#index_w"}, +{text:"~",url:"functions_func.html#index__7E"}]}, +{text:"Variables",url:"functions_vars.html"}, +{text:"Typedefs",url:"functions_type.html"}]}]}, +{text:"Files",url:"files.html",children:[ +{text:"File List",url:"files.html"}]}]} diff --git a/modules.html b/modules.html new file mode 100644 index 0000000..f201e33 --- /dev/null +++ b/modules.html @@ -0,0 +1,80 @@ + + + + + + + +wxExtend: Modules + + + + + + + + + +
    +
    + + + + + + +
    +
    wxExtend +
    +
    Additional templates and function helpers for wxWidgets
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Modules
    +
    +
    +
    Here is a list of all modules:
    + + +
     WxExtend
    +
    +
    + + + + diff --git a/nav_f.png b/nav_f.png new file mode 100644 index 0000000000000000000000000000000000000000..72a58a529ed3a9ed6aa0c51a79cf207e026deee2 GIT binary patch literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI`!2~2XGqLUlQVE_ejv*C{Z|{2ZH7M}7UYxc) zn!W8uqtnIQ>_z8U literal 0 HcmV?d00001 diff --git a/nav_g.png b/nav_g.png new file mode 100644 index 0000000000000000000000000000000000000000..2093a237a94f6c83e19ec6e5fd42f7ddabdafa81 GIT binary patch literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrB!3HFm1ilyoDK$?Q$B+ufw|5PB85lU25BhtE tr?otc=hd~V+ws&_A@j8Fiv!KF$B+ufw|5=67#uj90@pIL wZ=Q8~_Ju`#59=RjDrmm`tMD@M=!-l18IR?&vFVdQ&MBb@0HFXL + + + + + + +wxExtend: include/wxex/object.h Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    wxExtend +
    +
    Additional templates and function helpers for wxWidgets
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    object.h
    +
    +
    +
    1/*
    +
    2 ​​​SPDX-License-Identifier: GPL-3.0-or-later
    +
    3 Copyright © 2015-2022 Amebis
    +
    4 Copyright © 2016 GÉANT
    +
    5*/
    +
    6
    +
    7#pragma once
    +
    8
    +
    9#include "common.h"
    +
    10
    +
    11#include <codeanalysis\warnings.h>
    +
    12#pragma warning(push)
    +
    13#pragma warning(disable: WXWIDGETS_CODE_ANALYSIS_WARNINGS)
    +
    14#include <wx/object.h>
    +
    15#pragma warning(pop)
    +
    16
    +
    17
    +
    21template <class T>
    +
    22class wxObjectWithData : public wxObject
    +
    23{
    +
    24public:
    +
    28 inline wxObjectWithData() {}
    +
    29
    +
    35 inline wxObjectWithData(const T &data) : m_data(data) {}
    +
    36
    +
    42 inline wxObjectWithData(T &&data) : m_data(std::move(data)) {}
    +
    43
    +
    44public:
    + +
    46};
    +
    Helper template for event user data.
    Definition: object.h:23
    +
    wxObjectWithData(T &&data)
    Construct object with data.
    Definition: object.h:42
    +
    T m_data
    Data.
    Definition: object.h:45
    +
    wxObjectWithData()
    Default constructor.
    Definition: object.h:28
    +
    wxObjectWithData(const T &data)
    Construct object with data.
    Definition: object.h:35
    +
    + + + + diff --git a/open.png b/open.png new file mode 100644 index 0000000000000000000000000000000000000000..30f75c7efe2dd0c9e956e35b69777a02751f048b GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{VPM$7~Ar*{o?;hlAFyLXmaDC0y znK1_#cQqJWPES%4Uujug^TE?jMft$}Eq^WaR~)%f)vSNs&gek&x%A9X9sM + + + + + + +wxExtend: src/pch.h Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    wxExtend +
    +
    Additional templates and function helpers for wxWidgets
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    pch.h
    +
    +
    +
    1/*
    +
    2 ​​​SPDX-License-Identifier: GPL-3.0-or-later
    +
    3 Copyright © 2015-2022 Amebis
    +
    4 Copyright © 2016 GÉANT
    +
    5*/
    +
    6
    +
    7#pragma once
    +
    8
    +
    9// Since including <wx/app.h> introduces wrong include order in 3.0.2,
    +
    10// include the grand <wx/wx.h> at a cost of longer pre-compilation phase.
    +
    11#include <codeanalysis\warnings.h>
    +
    12#pragma warning(push)
    +
    13#pragma warning(disable: ALL_CODE_ANALYSIS_WARNINGS 26812 26814)
    +
    14#include <wx/wx.h>
    +
    15#pragma warning(pop)
    +
    16
    +
    17#include "../include/wxex/aui/framemanager.h"
    +
    18
    +
    19#include "../include/wxex/persist/auimanager.h"
    +
    20#include "../include/wxex/persist/toplevel.h"
    +
    21
    +
    22#include "../include/wxex/appbar.h"
    +
    23#include "../include/wxex/comutils.h"
    +
    24#include "../include/wxex/crypto.h"
    +
    25#include "../include/wxex/hex.h"
    +
    26#include "../include/wxex/object.h"
    +
    27#include "../include/wxex/url.h"
    +
    28#include "../include/wxex/valhex.h"
    +
    29#include "../include/wxex/valnet.h"
    +
    30#include "../include/wxex/xml.h"
    +
    31
    +
    32#include "../include/wxex/common.h"
    +
    33
    +
    34#include "../include/wxex/private/tlwgeom.h"
    +
    + + + + diff --git a/search/all_0.html b/search/all_0.html new file mode 100644 index 0000000..c36c9af --- /dev/null +++ b/search/all_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_0.js b/search/all_0.js new file mode 100644 index 0000000..65a183a --- /dev/null +++ b/search/all_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['base_0',['Base',['../classwx_hex_validator.html#a7b669b54bc0886cb30cb1a5ca0de6dd5',1,'wxHexValidator']]], + ['bottom_1',['BOTTOM',['../group__wx_extend.html#ggacab6afd4179e836abf89f1a500879f5ca1fabf63de5c96c78e2a40805bcdeb73b',1,'appbar.h']]] +]; diff --git a/search/all_1.html b/search/all_1.html new file mode 100644 index 0000000..91cfe8a --- /dev/null +++ b/search/all_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_1.js b/search/all_1.js new file mode 100644 index 0000000..0246808 --- /dev/null +++ b/search/all_1.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['clone_0',['Clone',['../classwx_hex_validator.html#a9a77f62ea37dab9638b04737ed41aca2',1,'wxHexValidator::Clone()'],['../classwx_host_name_validator.html#a4719dd3cf2b6565d11680ffd7044762e',1,'wxHostNameValidator::Clone()'],['../classwx_f_q_d_n_validator.html#ae7302aa89e8eca0e0d00f16963591f86',1,'wxFQDNValidator::Clone()'],['../classwx_f_q_d_n_list_validator.html#aa8ee7eb46ef90619c33b759110e85ecb',1,'wxFQDNListValidator::Clone()']]], + ['create_1',['Create',['../classwx_app_bar_frame.html#a87e258db562d1c01d0a441dc66bb1c7d',1,'wxAppBarFrame::Create()'],['../classwx_app_bar_dialog.html#a3b6426d21cc8a4269058e3d40d30b4cb',1,'wxAppBarDialog::Create()']]] +]; diff --git a/search/all_2.html b/search/all_2.html new file mode 100644 index 0000000..259dde4 --- /dev/null +++ b/search/all_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_2.js b/search/all_2.js new file mode 100644 index 0000000..4b34203 --- /dev/null +++ b/search/all_2.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['float_0',['FLOAT',['../group__wx_extend.html#ggacab6afd4179e836abf89f1a500879f5cae738c26bf4ce1037fa81b039a915cbf6',1,'appbar.h']]], + ['fromstring_1',['FromString',['../classwx_hex_validator_base.html#a6b26a8c569e6438ca2e3dcb32da50070',1,'wxHexValidatorBase']]] +]; diff --git a/search/all_3.html b/search/all_3.html new file mode 100644 index 0000000..1e60c94 --- /dev/null +++ b/search/all_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_3.js b/search/all_3.js new file mode 100644 index 0000000..462e4b1 --- /dev/null +++ b/search/all_3.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['getallowsizing_0',['GetAllowSizing',['../classwx_app_bar.html#a8b7f72142e0240b4b33bebdc6d19b361',1,'wxAppBar']]], + ['getautohidden_1',['GetAutoHidden',['../classwx_app_bar.html#aebe0b7c841cf979c9612f528be878b95',1,'wxAppBar']]], + ['getkind_2',['GetKind',['../classwx_persistent_aui_manager.html#a125e1f0e1707f61f601d5afcd6b6aa39',1,'wxPersistentAuiManager::GetKind()'],['../classwx_persistent_t_l_w_ex.html#a50b9c40ec5f8f45ddae7f40551d45b18',1,'wxPersistentTLWEx::GetKind()']]], + ['getname_3',['GetName',['../classwx_persistent_aui_manager.html#a3ee0a6da9642d85707842e215511d767',1,'wxPersistentAuiManager']]], + ['getstate_4',['GetState',['../classwx_app_bar.html#a40b3039c0f7a672d16c1187c8878ded6',1,'wxAppBar']]], + ['getvalue_5',['GetValue',['../classwx_crypto_hash.html#a9d1bee413e0c04bf56edc82a5da78559',1,'wxCryptoHash::GetValue()'],['../classwx_crypto_hash_s_h_a1.html#ac684c67a791c1daa76060cfb8be6c115',1,'wxCryptoHashSHA1::GetValue()']]] +]; diff --git a/search/all_4.html b/search/all_4.html new file mode 100644 index 0000000..08f1aed --- /dev/null +++ b/search/all_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_4.js b/search/all_4.js new file mode 100644 index 0000000..0ebef2a --- /dev/null +++ b/search/all_4.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['hash_0',['Hash',['../classwx_crypto_hash.html#ae26c3fa63ede941c3ae6e3758ea2c966',1,'wxCryptoHash::Hash(_In_reads_bytes_(size) const void *data, size_t size)'],['../classwx_crypto_hash.html#a36f7967c2f2affb36c9c7a9924d94c39',1,'wxCryptoHash::Hash(const wxMemoryBuffer &data)']]], + ['hashasutf8_1',['HashAsUTF8',['../classwx_crypto_hash.html#a65d60a6937ee200baac1fe01eb8255f6',1,'wxCryptoHash']]], + ['hashfile_2',['HashFile',['../classwx_crypto_hash.html#a322f6ead6d2bc7e23a54ca6104e71cf8',1,'wxCryptoHash']]], + ['hideautohideappbar_3',['HideAutoHideAppBar',['../classwx_app_bar.html#a8e7a125895744ca83db85cebf2c18775',1,'wxAppBar']]] +]; diff --git a/search/all_5.html b/search/all_5.html new file mode 100644 index 0000000..0d85fcc --- /dev/null +++ b/search/all_5.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_5.js b/search/all_5.js new file mode 100644 index 0000000..e3cc47f --- /dev/null +++ b/search/all_5.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['importprivate_0',['ImportPrivate',['../classwx_crypto_key.html#ab038e20153c1e5881ccf29ea2a49e884',1,'wxCryptoKey']]], + ['importpublic_1',['ImportPublic',['../classwx_crypto_key.html#a125633f1ec6153228d5bb8001c342f8a',1,'wxCryptoKey']]], + ['isalwaysontop_2',['IsAlwaysOnTop',['../classwx_app_bar.html#a154d1f7a4e04ab2f61adcf205abd4961',1,'wxAppBar']]], + ['isautohide_3',['IsAutoHide',['../classwx_app_bar.html#a10e2e6f46f8c90dcd76f27b02dd4fe45',1,'wxAppBar']]], + ['isminusok_4',['IsMinusOk',['../classwx_hex_validator_base.html#ab2e555c478f31bc81740fc7c94d59363',1,'wxHexValidatorBase']]], + ['isok_5',['IsOk',['../classwx_co_initializer.html#ac99d618e4222add9f165b58f6ce67c34',1,'wxCoInitializer::IsOk()'],['../classwx_crypto_session.html#ae8ed4efdc2c9fbec56129ee096354744',1,'wxCryptoSession::IsOk()'],['../classwx_crypto_hash.html#ac5d521f9db3f6ac272e938fa74afb207',1,'wxCryptoHash::IsOk()'],['../classwx_crypto_key.html#afc8cb58b4d6d362d1dd1f2b68b93b38d',1,'wxCryptoKey::IsOk()']]] +]; diff --git a/search/all_6.html b/search/all_6.html new file mode 100644 index 0000000..7e088b8 --- /dev/null +++ b/search/all_6.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_6.js b/search/all_6.js new file mode 100644 index 0000000..e8d2379 --- /dev/null +++ b/search/all_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['left_0',['LEFT',['../group__wx_extend.html#ggacab6afd4179e836abf89f1a500879f5ca684d325a7303f52e64011467ff5c5758',1,'appbar.h']]] +]; diff --git a/search/all_7.html b/search/all_7.html new file mode 100644 index 0000000..d2b1825 --- /dev/null +++ b/search/all_7.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_7.js b/search/all_7.js new file mode 100644 index 0000000..fd86446 --- /dev/null +++ b/search/all_7.js @@ -0,0 +1,17 @@ +var searchData= +[ + ['m_5fdata_0',['m_data',['../classwx_object_with_data.html#a3a6313f74c8a1de486df7cc0b4ae6c67',1,'wxObjectWithData']]], + ['m_5fflags_1',['m_flags',['../classwx_app_bar.html#a7de8d3fef326880f83aa63ca07c3a7f3',1,'wxAppBar']]], + ['m_5fh_2',['m_h',['../classwx_crypto_session.html#afc12a4c11aa0319694da98a469156f51',1,'wxCryptoSession::m_h()'],['../classwx_crypto_hash.html#a5424e152aba41c70b3bdb821ef21851c',1,'wxCryptoHash::m_h()'],['../classwx_crypto_key.html#a80ff174fdca2897a83addf87b5f7afb9',1,'wxCryptoKey::m_h()']]], + ['m_5fsizedocked_3',['m_sizeDocked',['../classwx_app_bar.html#aca33c43e6370549d922000ead6814955',1,'wxAppBar']]], + ['m_5fsizefloat_4',['m_sizeFloat',['../classwx_app_bar.html#a6c5fba27197133ba1247816a7b8abac9',1,'wxAppBar']]], + ['m_5fsizemin_5',['m_sizeMin',['../classwx_app_bar.html#ac59056e7fd5f0dd50082f87b19f987f6',1,'wxAppBar']]], + ['m_5fstate_6',['m_state',['../classwx_app_bar.html#a96a0e58d3c64712e0a93dcd80414d3fa',1,'wxAppBar']]], + ['m_5fstatedesired_7',['m_stateDesired',['../classwx_app_bar.html#ac6e7cac049c1394f9dcedfd3d554c078',1,'wxAppBar']]], + ['m_5fstatetaskbar_8',['m_stateTaskBar',['../classwx_app_bar.html#a50f6ac6aebf9e462145c0af70d3cbcef',1,'wxAppBar']]], + ['m_5ftaskbarlist_9',['m_taskbarList',['../classwx_app_bar.html#a455ccfb06e546f341dc320c19828896e',1,'wxAppBar']]], + ['m_5ftimerid_10',['m_timerID',['../classwx_app_bar.html#a0283c72da37448e33bb1aa83598da38b',1,'wxAppBar']]], + ['m_5fval_11',['m_val',['../classwx_host_name_validator.html#ad56f6a4458009cae80b16167b45bef8b',1,'wxHostNameValidator::m_val()'],['../classwx_f_q_d_n_validator.html#a8282f515456f5610203d2e74d5ce5ffc',1,'wxFQDNValidator::m_val()'],['../classwx_f_q_d_n_list_validator.html#aa4a0d72751dd82ac74f38b12bf0238f2',1,'wxFQDNListValidator::m_val()']]], + ['maximisefromedge_12',['MaximiseFromEdge',['../classwx_app_bar.html#a7f86c392151d776d5cf6a3dfffcc233c',1,'wxAppBar::MaximiseFromEdge(const RECT *rect=NULL)'],['../classwx_app_bar.html#a4e7b1019bff7b513fef79d3b1328e377',1,'wxAppBar::MaximiseFromEdge(wxWindow *wnd)']]], + ['minimisetoedge_13',['MinimiseToEdge',['../classwx_app_bar.html#a808e8d6fed0fda0f17f423fdce48fa91',1,'wxAppBar']]] +]; diff --git a/search/all_8.html b/search/all_8.html new file mode 100644 index 0000000..f4e3a2a --- /dev/null +++ b/search/all_8.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_8.js b/search/all_8.js new file mode 100644 index 0000000..e3e85ce --- /dev/null +++ b/search/all_8.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['onautohidedenied_0',['OnAutoHideDenied',['../classwx_app_bar.html#ac1a5b59877322c86a33b2ea12a126d6f',1,'wxAppBar']]], + ['onchangestate_1',['OnChangeState',['../classwx_app_bar.html#ad5ffb287a3823720f271607f4d6aa07d',1,'wxAppBar']]], + ['onchangetaskbarstate_2',['OnChangeTaskBarState',['../classwx_app_bar.html#ae5a7f89951072e7f5611d3fc1e264ade',1,'wxAppBar']]], + ['onwindowsarrange_3',['OnWindowsArrange',['../classwx_app_bar.html#a63dab2382ef1642156e633fd56172de0',1,'wxAppBar']]], + ['operator_20bool_4',['operator bool',['../classwx_co_initializer.html#a0b35d0b8e75e96b50af749b686651fd9',1,'wxCoInitializer']]], + ['operator_20hcrypthash_5',['operator HCRYPTHASH',['../classwx_crypto_hash.html#af48cdd5c908fcb13a6aec3383c95e344',1,'wxCryptoHash']]], + ['operator_20hcryptkey_6',['operator HCRYPTKEY',['../classwx_crypto_key.html#ac33af073e59164397426adaed6dc6ad0',1,'wxCryptoKey']]], + ['operator_20hcryptprov_7',['operator HCRYPTPROV',['../classwx_crypto_session.html#a07af35e7873944f3405203ba1bb11796',1,'wxCryptoSession']]] +]; diff --git a/search/all_9.html b/search/all_9.html new file mode 100644 index 0000000..89177a8 --- /dev/null +++ b/search/all_9.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_9.js b/search/all_9.js new file mode 100644 index 0000000..028d0b2 --- /dev/null +++ b/search/all_9.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['parse_0',['Parse',['../classwx_host_name_validator.html#accd3877574e3a5c0583022690d21aa0d',1,'wxHostNameValidator::Parse()'],['../classwx_f_q_d_n_validator.html#aab31e6de0f7ba76527c6b53ad94b299e',1,'wxFQDNValidator::Parse()'],['../classwx_f_q_d_n_list_validator.html#a391ec73c2f99695b11548e24e043ee4a',1,'wxFQDNListValidator::Parse()']]] +]; diff --git a/search/all_a.html b/search/all_a.html new file mode 100644 index 0000000..1f90b7a --- /dev/null +++ b/search/all_a.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_a.js b/search/all_a.js new file mode 100644 index 0000000..33870e6 --- /dev/null +++ b/search/all_a.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['relaxed_0',['Relaxed',['../group__wx_extend.html#ggaa513d718d7b6dbd6fb0225102770e027a4160be5df3fc34c3b165f28616f1bd16',1,'hex.h']]], + ['restore_1',['Restore',['../classwx_persistent_aui_manager.html#adc240ccc521959d4f6d5391aa60a6f98',1,'wxPersistentAuiManager::Restore()'],['../classwx_persistent_t_l_w_ex.html#a87a0933e9a6dd48196057f44393393fb',1,'wxPersistentTLWEx::Restore()']]], + ['right_2',['RIGHT',['../group__wx_extend.html#ggacab6afd4179e836abf89f1a500879f5ca21507b40c80068eda19865706fdc2403',1,'appbar.h']]] +]; diff --git a/search/all_b.html b/search/all_b.html new file mode 100644 index 0000000..b7ad6e6 --- /dev/null +++ b/search/all_b.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_b.js b/search/all_b.js new file mode 100644 index 0000000..b4dff02 --- /dev/null +++ b/search/all_b.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['save_0',['Save',['../classwx_persistent_aui_manager.html#a8f71e0e2189c2007ac2ae7f7e2c2a752',1,'wxPersistentAuiManager::Save()'],['../classwx_persistent_t_l_w_ex.html#abf3f2b6f6d6b46f9b6035bf43b0537ac',1,'wxPersistentTLWEx::Save()']]], + ['setallowsizing_1',['SetAllowSizing',['../classwx_app_bar.html#ac75f7994f00fc8e4938f2b0faf3dd6d6',1,'wxAppBar']]], + ['setalwaysontop_2',['SetAlwaysOnTop',['../classwx_app_bar.html#ae80d0867b83e54c429771e403cd9519a',1,'wxAppBar']]], + ['setautohide_3',['SetAutoHide',['../classwx_app_bar.html#abdbcdafcaf2331734313b2276c6bc640',1,'wxAppBar']]], + ['showautohideappbar_4',['ShowAutoHideAppBar',['../classwx_app_bar.html#afcff0806eb953c6693e570b3f1eeafae',1,'wxAppBar']]], + ['sign_5',['Sign',['../classwx_crypto_hash.html#a30e3060aea3e1f7233d4c547a4913629',1,'wxCryptoHash::Sign(wxMemoryBuffer &signature)'],['../classwx_crypto_hash.html#aa50c43132cffb5b0050073a6ff8066bc',1,'wxCryptoHash::Sign()']]], + ['skipws_6',['SkipWS',['../group__wx_extend.html#ggaa513d718d7b6dbd6fb0225102770e027a063e54f96fc1a13b0a0c841f9fd3117f',1,'hex.h']]], + ['strict_7',['Strict',['../group__wx_extend.html#ggaa513d718d7b6dbd6fb0225102770e027a2e979835dd62324f5bfe217449ba4974',1,'hex.h']]] +]; diff --git a/search/all_c.html b/search/all_c.html new file mode 100644 index 0000000..829c917 --- /dev/null +++ b/search/all_c.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_c.js b/search/all_c.js new file mode 100644 index 0000000..1a45ffb --- /dev/null +++ b/search/all_c.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['top_0',['TOP',['../group__wx_extend.html#ggacab6afd4179e836abf89f1a500879f5ca6705777b712ee811e76fb07162081d63',1,'appbar.h']]], + ['tostring_1',['ToString',['../classwx_hex_validator_base.html#a8067b403957158dd5f957c450d6019d2',1,'wxHexValidatorBase']]], + ['transferfromwindow_2',['TransferFromWindow',['../classwx_host_name_validator.html#a8a47e769b50ceb70b6d91a151525cf30',1,'wxHostNameValidator::TransferFromWindow()'],['../classwx_f_q_d_n_validator.html#a4181cffa3242c6eac8cd49c0248d1f02',1,'wxFQDNValidator::TransferFromWindow()'],['../classwx_f_q_d_n_list_validator.html#a5231fde7170224f346a9c012ec61dbeb',1,'wxFQDNListValidator::TransferFromWindow()']]], + ['transfertowindow_3',['TransferToWindow',['../classwx_host_name_validator.html#afd52baa0eafd6dd08e7a18f1b1fcc86c',1,'wxHostNameValidator::TransferToWindow()'],['../classwx_f_q_d_n_validator.html#a9c80ba791350a78a654b411d220192a4',1,'wxFQDNValidator::TransferToWindow()'],['../classwx_f_q_d_n_list_validator.html#a9f73a37739d7f2df509fa9ba23289896',1,'wxFQDNListValidator::TransferToWindow()']]] +]; diff --git a/search/all_d.html b/search/all_d.html new file mode 100644 index 0000000..d32b28e --- /dev/null +++ b/search/all_d.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_d.js b/search/all_d.js new file mode 100644 index 0000000..c981313 --- /dev/null +++ b/search/all_d.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['validate_0',['Validate',['../classwx_host_name_validator.html#af02757d0f090ca20612db1578644d369',1,'wxHostNameValidator::Validate()'],['../classwx_f_q_d_n_validator.html#a2da3b2661f17fe4b63780baea6dbd404',1,'wxFQDNValidator::Validate()'],['../classwx_f_q_d_n_list_validator.html#a68edaa1daaaefccf81a316e5a72c5cec',1,'wxFQDNListValidator::Validate()']]] +]; diff --git a/search/all_e.html b/search/all_e.html new file mode 100644 index 0000000..ce450a2 --- /dev/null +++ b/search/all_e.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_e.js b/search/all_e.js new file mode 100644 index 0000000..c883c48 --- /dev/null +++ b/search/all_e.js @@ -0,0 +1,84 @@ +var searchData= +[ + ['wm_5fab_5fnotify_0',['WM_AB_NOTIFY',['../group__wx_extend.html#ga28549a910dbd9c7222691b22f7aee628',1,'appbar.h']]], + ['wxabf_5fallowany_1',['wxABF_ALLOWANY',['../group__wx_extend.html#gaeea26e3d219f41ba21f5ac0328887b42',1,'appbar.h']]], + ['wxabf_5fallowdockany_2',['wxABF_ALLOWDOCKANY',['../group__wx_extend.html#ga8b5409e774169b35811b8cbe6d7279e7',1,'appbar.h']]], + ['wxabf_5fallowdockbottom_3',['wxABF_ALLOWDOCKBOTTOM',['../group__wx_extend.html#ga46d6172160c331b0265dd632e822a84f',1,'appbar.h']]], + ['wxabf_5fallowdockhorizontal_4',['wxABF_ALLOWDOCKHORIZONTAL',['../group__wx_extend.html#gaf4d0bd870e5e968f3ac19da071e98d48',1,'appbar.h']]], + ['wxabf_5fallowdockleft_5',['wxABF_ALLOWDOCKLEFT',['../group__wx_extend.html#ga01ff72cdb36f317323b5b085ee7c3b46',1,'appbar.h']]], + ['wxabf_5fallowdockright_6',['wxABF_ALLOWDOCKRIGHT',['../group__wx_extend.html#gac4c88cf9104926e6b97159eeb8c1fc46',1,'appbar.h']]], + ['wxabf_5fallowdocktop_7',['wxABF_ALLOWDOCKTOP',['../group__wx_extend.html#ga3ac6f7a930800c924b98669345501a0e',1,'appbar.h']]], + ['wxabf_5fallowdockvertical_8',['wxABF_ALLOWDOCKVERTICAL',['../group__wx_extend.html#ga46877b506b1ba394fafb8668afefe4b4',1,'appbar.h']]], + ['wxabf_5fallowfloat_9',['wxABF_ALLOWFLOAT',['../group__wx_extend.html#gaaf93b901e974b0cd4438b69170175ca2',1,'appbar.h']]], + ['wxabf_5fallowsizing_10',['wxABF_ALLOWSIZING',['../group__wx_extend.html#ga374a172ec398df3a3b59514ae9c17fec',1,'appbar.h']]], + ['wxabf_5falwayshidetaskbartab_11',['wxABF_ALWAYSHIDETASKBARTAB',['../group__wx_extend.html#gaacfb0b1281cdcfe1628f36c125e4ad44',1,'appbar.h']]], + ['wxabf_5falwaysontop_12',['wxABF_ALWAYSONTOP',['../group__wx_extend.html#gac61c13faaa3315da305dff70922f718f',1,'appbar.h']]], + ['wxabf_5falwaysontoptaskbar_13',['wxABF_ALWAYSONTOPTASKBAR',['../group__wx_extend.html#gad1a25b75ef14d5ef36d4a21b4f7d2ba3',1,'appbar.h']]], + ['wxabf_5fautohidden_14',['wxABF_AUTOHIDDEN',['../group__wx_extend.html#ga974924b2902609bab0aff74975488100',1,'appbar.h']]], + ['wxabf_5fautohide_15',['wxABF_AUTOHIDE',['../group__wx_extend.html#ga73648c67f839edae65a374b713e6fd08',1,'appbar.h']]], + ['wxabf_5fautohidetaskbar_16',['wxABF_AUTOHIDETASKBAR',['../group__wx_extend.html#gadd878bfddfe707961941a0fa09f1adcd',1,'appbar.h']]], + ['wxabf_5ffullscreenappopen_17',['wxABF_FULLSCREENAPPOPEN',['../group__wx_extend.html#ga09dfc3ab0c3551061d85c9ce98815b56',1,'appbar.h']]], + ['wxabf_5fhidetaskbartabwhendocked_18',['wxABF_HIDETASKBARTABWHENDOCKED',['../group__wx_extend.html#ga9d340d497cefc10a3ad2a8885f716c16',1,'appbar.h']]], + ['wxabf_5fhidetaskbartabwhenfloating_19',['wxABF_HIDETASKBARTABWHENFLOATING',['../group__wx_extend.html#ga3c3596fce55a2bb3472332e51eb88c77',1,'appbar.h']]], + ['wxabt_5fautohidetime_20',['wxABT_AUTOHIDETIME',['../group__wx_extend.html#ga05a18a821590aaed11fe1e779b32b8f0',1,'appbar.h']]], + ['wxabt_5fautohidetimerid_21',['wxABT_AUTOHIDETIMERID',['../group__wx_extend.html#ga35adecc26a1a7e1a88f27bce2b220e3f',1,'appbar.h']]], + ['wxabt_5fautohidetimerinterval_22',['wxABT_AUTOHIDETIMERINTERVAL',['../group__wx_extend.html#ga734516e6fc45702ae4623703f7d32fb9',1,'appbar.h']]], + ['wxappbar_23',['wxAppBar',['../classwx_app_bar.html#a679ca2856889f23ea3373bfa6e41e831',1,'wxAppBar::wxAppBar()'],['../classwx_app_bar.html',1,'wxAppBar< W >']]], + ['wxappbar_3c_20wxdialog_20_3e_24',['wxAppBar< wxDialog >',['../classwx_app_bar.html',1,'']]], + ['wxappbar_3c_20wxframe_20_3e_25',['wxAppBar< wxFrame >',['../classwx_app_bar.html',1,'']]], + ['wxappbardialog_26',['wxAppBarDialog',['../classwx_app_bar_dialog.html',1,'wxAppBarDialog'],['../classwx_app_bar_dialog.html#a1e8ef4a24d412cca6497d9e71d0d4aa6',1,'wxAppBarDialog::wxAppBarDialog()'],['../classwx_app_bar_dialog.html#a2476ca6af4e51178a71e2db969840d59',1,'wxAppBarDialog::wxAppBarDialog(wxWindow *parent, wxWindowID id, const wxString &title, wxAppBarState state=wxAppBarState::FLOAT, int flags=wxABF_ALLOWANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxDEFAULT_DIALOG_STYLE, const wxString &name=wxDialogNameStr)']]], + ['wxappbarframe_27',['wxAppBarFrame',['../classwx_app_bar_frame.html',1,'wxAppBarFrame'],['../classwx_app_bar_frame.html#a54f6bb87ceab60639fbb04686b9be9bb',1,'wxAppBarFrame::wxAppBarFrame()'],['../classwx_app_bar_frame.html#a7358be3ebb20a5eb6933e726dbd5a139',1,'wxAppBarFrame::wxAppBarFrame(wxWindow *parent, wxWindowID id, const wxString &title, wxAppBarState state=wxAppBarState::FLOAT, int flags=wxABF_ALLOWANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxDEFAULT_FRAME_STYLE, const wxString &name=wxFrameNameStr)']]], + ['wxappbargettaskbarstate_28',['wxAppBarGetTaskBarState',['../group__wx_extend.html#ga24d7244fd3b59ee6c2bf84ec4b5a443e',1,'appbar.h']]], + ['wxappbargetzwnd_29',['wxAppBarGetZWnd',['../group__wx_extend.html#ga015a42693a150e97fb55cf65355858fd',1,'appbar.h']]], + ['wxappbarisdocked_30',['wxAppBarIsDocked',['../group__wx_extend.html#ga4cb5f472abff1c4eb2682ac19ee21e01',1,'appbar.h']]], + ['wxappbarisdockedhoriz_31',['wxAppBarIsDockedHoriz',['../group__wx_extend.html#ga786c97a26fa8d963b0d5d90f6bce2a4a',1,'appbar.h']]], + ['wxappbarisdockedvert_32',['wxAppBarIsDockedVert',['../group__wx_extend.html#gacf6e1af88190be67e1535fe939df194d',1,'appbar.h']]], + ['wxappbarstate_33',['wxAppBarState',['../group__wx_extend.html#gacab6afd4179e836abf89f1a500879f5c',1,'appbar.h']]], + ['wxauimanagerupdateperspectivecaptions_34',['wxAuiManagerUpdatePerspectiveCaptions',['../group__wx_extend.html#gaa4d1c55a5ab605bc8f40a01ae470930b',1,'wxAuiManagerUpdatePerspectiveCaptions(wxAuiManager &mgr, wxString &perspective): framemanager.cpp'],['../group__wx_extend.html#gaa4d1c55a5ab605bc8f40a01ae470930b',1,'wxAuiManagerUpdatePerspectiveCaptions(wxAuiManager &mgr, wxString &perspective): framemanager.cpp']]], + ['wxcoinitializer_35',['wxCoInitializer',['../classwx_co_initializer.html#a46b112d54217cf254e396dec121d177f',1,'wxCoInitializer::wxCoInitializer()'],['../classwx_co_initializer.html',1,'wxCoInitializer']]], + ['wxcreatepersistentobject_36',['wxCreatePersistentObject',['../group__wx_extend.html#ga13bc393d7bfdc9edfd95fadc802dc983',1,'auimanager.h']]], + ['wxcryptohash_37',['wxCryptoHash',['../classwx_crypto_hash.html#a294ffd571dfb94b7641db96bce483fae',1,'wxCryptoHash::wxCryptoHash()'],['../classwx_crypto_hash.html',1,'wxCryptoHash']]], + ['wxcryptohashsha1_38',['wxCryptoHashSHA1',['../classwx_crypto_hash_s_h_a1.html#a39beceb5a2186bc1cc9f09428c35eeda',1,'wxCryptoHashSHA1::wxCryptoHashSHA1()'],['../classwx_crypto_hash_s_h_a1.html',1,'wxCryptoHashSHA1']]], + ['wxcryptokey_39',['wxCryptoKey',['../classwx_crypto_key.html#a77b57e4487dc3287aff103c6300348c0',1,'wxCryptoKey::wxCryptoKey()'],['../classwx_crypto_key.html',1,'wxCryptoKey']]], + ['wxcryptosession_40',['wxCryptoSession',['../classwx_crypto_session.html#ab745053893934e49fa3304e70e16bff6',1,'wxCryptoSession::wxCryptoSession()'],['../classwx_crypto_session.html',1,'wxCryptoSession']]], + ['wxcryptosessionrsaaes_41',['wxCryptoSessionRSAAES',['../classwx_crypto_session_r_s_a_a_e_s.html#a80e2156d934c4b9f51a6c5c127eea5a5',1,'wxCryptoSessionRSAAES::wxCryptoSessionRSAAES()'],['../classwx_crypto_session_r_s_a_a_e_s.html',1,'wxCryptoSessionRSAAES']]], + ['wxcryptoverifysignature_42',['wxCryptoVerifySignature',['../group__wx_extend.html#ga83dff5298b84b50ed814bf8f1894bcb1',1,'wxCryptoVerifySignature(const wxCryptoHash &hash, _In_reads_bytes_(signature_size) const void *signature_data, size_t signature_size, const wxCryptoKey &key): crypto.h'],['../group__wx_extend.html#gade58a7782dfb7824739533438ea26966',1,'wxCryptoVerifySignature(const wxCryptoHash &hash, const wxMemoryBuffer &signature, const wxCryptoKey &key): crypto.h']]], + ['wxextend_43',['WxExtend',['../group__wx_extend.html',1,'']]], + ['wxextend_5fapi_44',['WXEXTEND_API',['../group__wx_extend.html#ga624ae3515d39396935a077c6cc0a4d64',1,'common.h']]], + ['wxextend_5fbuild_5fyear_5fstr_45',['wxEXTEND_BUILD_YEAR_STR',['../group__wx_extend.html#ga750c4abf89090ab14ed5f80bd90caf7f',1,'common.h']]], + ['wxextend_5fversion_46',['wxEXTEND_VERSION',['../group__wx_extend.html#ga646bb8d684b5be4edbb948bb738e4a5c',1,'common.h']]], + ['wxextend_5fversion_5fbuild_47',['wxEXTEND_VERSION_BUILD',['../group__wx_extend.html#ga4d01911034ce7def90ddd4a255891de6',1,'common.h']]], + ['wxextend_5fversion_5fmaj_48',['wxEXTEND_VERSION_MAJ',['../group__wx_extend.html#gaeb5a966e6c308505ceb9ca44725c6719',1,'common.h']]], + ['wxextend_5fversion_5fmin_49',['wxEXTEND_VERSION_MIN',['../group__wx_extend.html#ga3faf85af194ee13dc9af73213b948c61',1,'common.h']]], + ['wxextend_5fversion_5frev_50',['wxEXTEND_VERSION_REV',['../group__wx_extend.html#ga24fb2c2fcbcb893e39e012a78d257670',1,'common.h']]], + ['wxextend_5fversion_5fstr_51',['wxEXTEND_VERSION_STR',['../group__wx_extend.html#ga12e70691e43d77b9403a01a8cb092566',1,'common.h']]], + ['wxextendversion_52',['wxExtendVersion',['../group__wx_extend.html#gaf3b4e6209093012ab4f9afdecb4ebc23',1,'common.h']]], + ['wxfqdnlistvalidator_53',['wxFQDNListValidator',['../classwx_f_q_d_n_list_validator.html',1,'wxFQDNListValidator'],['../classwx_f_q_d_n_list_validator.html#a22e07a46d63408f19d961298362f4cbb',1,'wxFQDNListValidator::wxFQDNListValidator()']]], + ['wxfqdnvalidator_54',['wxFQDNValidator',['../classwx_f_q_d_n_validator.html',1,'wxFQDNValidator'],['../classwx_f_q_d_n_validator.html#ad428dd3a554ffcbb639c2273b0ff5746',1,'wxFQDNValidator::wxFQDNValidator()']]], + ['wxgetdowndanimation_55',['wxGetDoWndAnimation',['../group__wx_extend.html#ga33015805cefd09b3899d7b5667f6c0eb',1,'common.h']]], + ['wxhexdecode_56',['wxHexDecode',['../group__wx_extend.html#gadf787040a4ae03a9d69664b55e7e554d',1,'wxHexDecode(const char *src, size_t srcLen, wxHexDecodeMode mode, size_t *posErr): hex.cpp'],['../group__wx_extend.html#ga5ff18f1e5fecbdaa3761c91a1f5a9a99',1,'wxHexDecode(void *dst_, size_t dstLen, const char *src, size_t srcLen, wxHexDecodeMode mode, size_t *posErr): hex.cpp'],['../group__wx_extend.html#ga4af18e7566d7025c457b56c2f8ecc4fc',1,'wxHexDecode(const wxString &src, wxHexDecodeMode mode=wxHexDecodeMode::Strict, size_t *posErr=NULL): hex.h'],['../group__wx_extend.html#gadf787040a4ae03a9d69664b55e7e554d',1,'wxHexDecode(const char *src, size_t srcLen=wxNO_LEN, wxHexDecodeMode mode=wxHexDecodeMode::Strict, size_t *posErr=NULL): hex.cpp'],['../group__wx_extend.html#ga49fa5b25ba95cf8bdc672c8753b1060d',1,'wxHexDecode(void *dst, size_t dstLen, const wxString &src, wxHexDecodeMode mode=wxHexDecodeMode::Strict, size_t *posErr=NULL): hex.h'],['../group__wx_extend.html#ga5ff18f1e5fecbdaa3761c91a1f5a9a99',1,'wxHexDecode(void *dst, size_t dstLen, const char *src, size_t srcLen=wxNO_LEN, wxHexDecodeMode mode=wxHexDecodeMode::Strict, size_t *posErr=NULL): hex.cpp']]], + ['wxhexdecodedsize_57',['wxHexDecodedSize',['../group__wx_extend.html#ga76593329d1380e463b26185f02678dce',1,'hex.h']]], + ['wxhexdecodemode_58',['wxHexDecodeMode',['../group__wx_extend.html#gaa513d718d7b6dbd6fb0225102770e027',1,'hex.h']]], + ['wxhexencode_59',['wxHexEncode',['../group__wx_extend.html#gaa4dcf0c1741f24b7865a030e5937a95f',1,'wxHexEncode(char *dst, size_t dstLen, const void *src_, size_t srcLen): hex.cpp'],['../group__wx_extend.html#ga1fc191df2a9382f85bf249eeaa729cde',1,'wxHexEncode(const wxMemoryBuffer &buf): hex.h'],['../group__wx_extend.html#gaf37ad5cbd6338f10c7a9fd1e2914bb44',1,'wxHexEncode(const void *src, size_t srcLen): hex.h'],['../group__wx_extend.html#gaa4dcf0c1741f24b7865a030e5937a95f',1,'wxHexEncode(char *dst, size_t dstLen, const void *src, size_t srcLen): hex.cpp']]], + ['wxhexencodedsize_60',['wxHexEncodedSize',['../group__wx_extend.html#gaaa29acae6f167f361a6488c265784e4d',1,'hex.h']]], + ['wxhexvalidator_61',['wxHexValidator',['../classwx_hex_validator.html',1,'wxHexValidator< T >'],['../classwx_hex_validator.html#ad42757abea45dd8c0d5f3a26dc0781a1',1,'wxHexValidator::wxHexValidator()']]], + ['wxhexvalidatorbase_62',['wxHexValidatorBase',['../classwx_hex_validator_base.html',1,'wxHexValidatorBase'],['../classwx_hex_validator_base.html#a90b2c5af4faf851decc77a358ffdd341',1,'wxHexValidatorBase::wxHexValidatorBase(const wxHexValidatorBase &other)'],['../classwx_hex_validator_base.html#a1272218c75fb5b7bb984d9aa4d472e76',1,'wxHexValidatorBase::wxHexValidatorBase(int style)']]], + ['wxhexvalidatorstyle_63',['wxHexValidatorStyle',['../group__wx_extend.html#ga622fca47d51f7ca515ad58f4390b07a4',1,'valhex.h']]], + ['wxhostnamevalidator_64',['wxHostNameValidator',['../classwx_host_name_validator.html',1,'wxHostNameValidator'],['../classwx_host_name_validator.html#ab81623b12369e8afb280abd4eac1e3d0',1,'wxHostNameValidator::wxHostNameValidator()']]], + ['wxinitializelocale_65',['wxInitializeLocale',['../group__wx_extend.html#ga9bdc3711db3f3e7fd87c4a491bd8afa0',1,'common.h']]], + ['wxmodifystyleex_66',['wxModifyStyleEx',['../group__wx_extend.html#ga58084b8e1a8e2e27bcf5e5df387f9601',1,'common.h']]], + ['wxobjectwithdata_67',['wxObjectWithData',['../classwx_object_with_data.html#a81bb61c35c0954b130d98ba211396e89',1,'wxObjectWithData::wxObjectWithData()'],['../classwx_object_with_data.html',1,'wxObjectWithData< T >'],['../classwx_object_with_data.html#a2482db1ff8e93d3d5c45e92ffc7a0008',1,'wxObjectWithData::wxObjectWithData(T &&data)'],['../classwx_object_with_data.html#a6cf0232bbeaad79c4e115ee08ffcb5ed',1,'wxObjectWithData::wxObjectWithData()']]], + ['wxpersist_5fauimgr_5fkind_68',['wxPERSIST_AUIMGR_KIND',['../group__wx_extend.html#ga7788ec0b170f698bd985a50acc9125ec',1,'auimanager.h']]], + ['wxpersist_5fauimgr_5fperspective_69',['wxPERSIST_AUIMGR_PERSPECTIVE',['../group__wx_extend.html#ga12bc8d4a3e2d373c79dd90f1cad5fc8a',1,'auimanager.h']]], + ['wxpersistentauimanager_70',['wxPersistentAuiManager',['../classwx_persistent_aui_manager.html',1,'wxPersistentAuiManager'],['../classwx_persistent_aui_manager.html#a266f1e8b0d8963e7abed395d6c7c2362',1,'wxPersistentAuiManager::wxPersistentAuiManager()']]], + ['wxpersistenttlwex_71',['wxPersistentTLWEx',['../classwx_persistent_t_l_w_ex.html',1,'wxPersistentTLWEx'],['../classwx_persistent_t_l_w_ex.html#a7c86c50779bfbbd648bdf8cdf6928fc4',1,'wxPersistentTLWEx::wxPersistentTLWEx()']]], + ['wxurldecode_72',['wxURLDecode',['../group__wx_extend.html#gab65fce11bff2681b90cee6177a6b4bab',1,'wxURLDecode(char *dst, size_t dstLen, const wxString &src): url.h'],['../group__wx_extend.html#ga5f3fa8488d8d161e6e801d30169ebb14',1,'wxURLDecode(const char *src, size_t srcLen): url.cpp'],['../group__wx_extend.html#gab52713daaa8365da604084ebdea1c3b8',1,'wxURLDecode(char *dst, size_t dstLen, const char *src, size_t srcLen): url.cpp'],['../group__wx_extend.html#gaaa451e5c982986900598b6776c76e073',1,'wxURLDecode(const wxString &src): url.h'],['../group__wx_extend.html#ga5f3fa8488d8d161e6e801d30169ebb14',1,'wxURLDecode(const char *src, size_t srcLen=wxNO_LEN): url.cpp'],['../group__wx_extend.html#gab52713daaa8365da604084ebdea1c3b8',1,'wxURLDecode(char *dst, size_t dstLen, const char *src, size_t srcLen=wxNO_LEN): url.cpp']]], + ['wxurldecodedsize_73',['wxURLDecodedSize',['../group__wx_extend.html#gab08984928f08a74f90b2e18e0449d19b',1,'url.h']]], + ['wxurlencode_74',['wxURLEncode',['../group__wx_extend.html#gaf11ee00da860e63832ab5505020e2714',1,'wxURLEncode(char *dst, size_t dstLen, const char *src, size_t srcLen): url.cpp'],['../group__wx_extend.html#ga99b74bd46040eb1143b160ed627b2f28',1,'wxURLEncode(const char *src, size_t srcLen): url.h'],['../group__wx_extend.html#gaf72d33079f5facbb38c182a10bbe0ab7',1,'wxURLEncode(const wxString &str): url.h'],['../group__wx_extend.html#ga5f4daf0d120c83adbd0ad46b4d639556',1,'wxURLEncode(const wxMemoryBuffer &buf): url.h'],['../group__wx_extend.html#gaf11ee00da860e63832ab5505020e2714',1,'wxURLEncode(char *dst, size_t dstLen, const char *src, size_t srcLen): url.cpp']]], + ['wxurlencodedsize_75',['wxURLEncodedSize',['../group__wx_extend.html#gaf1dd200c30d04bdfcd55fe2c5ee83976',1,'url.h']]], + ['wxurlisprotected_76',['wxURLIsProtected',['../group__wx_extend.html#gaad62152fab34b51f84df9a7feb042e9f',1,'url.h']]], + ['wxverify_77',['wxVERIFY',['../group__wx_extend.html#gad8b37e21b4abf5fa854eb8524161e972',1,'common.h']]], + ['wxxmlescapeattr_78',['wxXmlEscapeAttr',['../group__wx_extend.html#ga0a5fe49ff679628c97dfb29140f39eb7',1,'xml.h']]], + ['wxxmlescapetext_79',['wxXmlEscapeText',['../group__wx_extend.html#ga2df1fb125c80cc34345704c395fa98d2',1,'xml.h']]], + ['wxxmlhashnode_80',['wxXmlHashNode',['../group__wx_extend.html#ga50d87745169578f671751e6a3b62c829',1,'wxXmlHashNode(wxCryptoHash &hash, const wxXmlNode *node): xml.cpp'],['../group__wx_extend.html#ga50d87745169578f671751e6a3b62c829',1,'wxXmlHashNode(wxCryptoHash &hash, const wxXmlNode *node): xml.cpp']]] +]; diff --git a/search/all_f.html b/search/all_f.html new file mode 100644 index 0000000..59cfe49 --- /dev/null +++ b/search/all_f.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_f.js b/search/all_f.js new file mode 100644 index 0000000..148070c --- /dev/null +++ b/search/all_f.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['_7ewxappbar_0',['~wxAppBar',['../classwx_app_bar.html#a521931479c266038782c368daca9acc9',1,'wxAppBar']]], + ['_7ewxcoinitializer_1',['~wxCoInitializer',['../classwx_co_initializer.html#ab1237d26d2fc2c988843d314f4a1da23',1,'wxCoInitializer']]], + ['_7ewxcryptohash_2',['~wxCryptoHash',['../classwx_crypto_hash.html#a53ec9d8cc3275837284899c5b21ac6fb',1,'wxCryptoHash']]], + ['_7ewxcryptokey_3',['~wxCryptoKey',['../classwx_crypto_key.html#a0aa0c802206417dd65b7efe8847a6505',1,'wxCryptoKey']]], + ['_7ewxcryptosession_4',['~wxCryptoSession',['../classwx_crypto_session.html#a492e3909129930480b8b95773cc57af2',1,'wxCryptoSession']]] +]; diff --git a/search/classes_0.html b/search/classes_0.html new file mode 100644 index 0000000..8361bcd --- /dev/null +++ b/search/classes_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/classes_0.js b/search/classes_0.js new file mode 100644 index 0000000..f30c7c2 --- /dev/null +++ b/search/classes_0.js @@ -0,0 +1,22 @@ +var searchData= +[ + ['wxappbar_0',['wxAppBar',['../classwx_app_bar.html',1,'']]], + ['wxappbar_3c_20wxdialog_20_3e_1',['wxAppBar< wxDialog >',['../classwx_app_bar.html',1,'']]], + ['wxappbar_3c_20wxframe_20_3e_2',['wxAppBar< wxFrame >',['../classwx_app_bar.html',1,'']]], + ['wxappbardialog_3',['wxAppBarDialog',['../classwx_app_bar_dialog.html',1,'']]], + ['wxappbarframe_4',['wxAppBarFrame',['../classwx_app_bar_frame.html',1,'']]], + ['wxcoinitializer_5',['wxCoInitializer',['../classwx_co_initializer.html',1,'']]], + ['wxcryptohash_6',['wxCryptoHash',['../classwx_crypto_hash.html',1,'']]], + ['wxcryptohashsha1_7',['wxCryptoHashSHA1',['../classwx_crypto_hash_s_h_a1.html',1,'']]], + ['wxcryptokey_8',['wxCryptoKey',['../classwx_crypto_key.html',1,'']]], + ['wxcryptosession_9',['wxCryptoSession',['../classwx_crypto_session.html',1,'']]], + ['wxcryptosessionrsaaes_10',['wxCryptoSessionRSAAES',['../classwx_crypto_session_r_s_a_a_e_s.html',1,'']]], + ['wxfqdnlistvalidator_11',['wxFQDNListValidator',['../classwx_f_q_d_n_list_validator.html',1,'']]], + ['wxfqdnvalidator_12',['wxFQDNValidator',['../classwx_f_q_d_n_validator.html',1,'']]], + ['wxhexvalidator_13',['wxHexValidator',['../classwx_hex_validator.html',1,'']]], + ['wxhexvalidatorbase_14',['wxHexValidatorBase',['../classwx_hex_validator_base.html',1,'']]], + ['wxhostnamevalidator_15',['wxHostNameValidator',['../classwx_host_name_validator.html',1,'']]], + ['wxobjectwithdata_16',['wxObjectWithData',['../classwx_object_with_data.html',1,'']]], + ['wxpersistentauimanager_17',['wxPersistentAuiManager',['../classwx_persistent_aui_manager.html',1,'']]], + ['wxpersistenttlwex_18',['wxPersistentTLWEx',['../classwx_persistent_t_l_w_ex.html',1,'']]] +]; diff --git a/search/close.svg b/search/close.svg new file mode 100644 index 0000000..a933eea --- /dev/null +++ b/search/close.svg @@ -0,0 +1,31 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/search/enums_0.html b/search/enums_0.html new file mode 100644 index 0000000..eb1f873 --- /dev/null +++ b/search/enums_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/enums_0.js b/search/enums_0.js new file mode 100644 index 0000000..5930632 --- /dev/null +++ b/search/enums_0.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['wxappbarstate_0',['wxAppBarState',['../group__wx_extend.html#gacab6afd4179e836abf89f1a500879f5c',1,'appbar.h']]], + ['wxhexdecodemode_1',['wxHexDecodeMode',['../group__wx_extend.html#gaa513d718d7b6dbd6fb0225102770e027',1,'hex.h']]], + ['wxhexvalidatorstyle_2',['wxHexValidatorStyle',['../group__wx_extend.html#ga622fca47d51f7ca515ad58f4390b07a4',1,'valhex.h']]] +]; diff --git a/search/enumvalues_0.html b/search/enumvalues_0.html new file mode 100644 index 0000000..7a520ff --- /dev/null +++ b/search/enumvalues_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/enumvalues_0.js b/search/enumvalues_0.js new file mode 100644 index 0000000..845a4a1 --- /dev/null +++ b/search/enumvalues_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['bottom_0',['BOTTOM',['../group__wx_extend.html#ggacab6afd4179e836abf89f1a500879f5ca1fabf63de5c96c78e2a40805bcdeb73b',1,'appbar.h']]] +]; diff --git a/search/enumvalues_1.html b/search/enumvalues_1.html new file mode 100644 index 0000000..d2e2ce0 --- /dev/null +++ b/search/enumvalues_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/enumvalues_1.js b/search/enumvalues_1.js new file mode 100644 index 0000000..bafbe51 --- /dev/null +++ b/search/enumvalues_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['float_0',['FLOAT',['../group__wx_extend.html#ggacab6afd4179e836abf89f1a500879f5cae738c26bf4ce1037fa81b039a915cbf6',1,'appbar.h']]] +]; diff --git a/search/enumvalues_2.html b/search/enumvalues_2.html new file mode 100644 index 0000000..9ecc4d3 --- /dev/null +++ b/search/enumvalues_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/enumvalues_2.js b/search/enumvalues_2.js new file mode 100644 index 0000000..e8d2379 --- /dev/null +++ b/search/enumvalues_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['left_0',['LEFT',['../group__wx_extend.html#ggacab6afd4179e836abf89f1a500879f5ca684d325a7303f52e64011467ff5c5758',1,'appbar.h']]] +]; diff --git a/search/enumvalues_3.html b/search/enumvalues_3.html new file mode 100644 index 0000000..ceb76af --- /dev/null +++ b/search/enumvalues_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/enumvalues_3.js b/search/enumvalues_3.js new file mode 100644 index 0000000..561dafd --- /dev/null +++ b/search/enumvalues_3.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['relaxed_0',['Relaxed',['../group__wx_extend.html#ggaa513d718d7b6dbd6fb0225102770e027a4160be5df3fc34c3b165f28616f1bd16',1,'hex.h']]], + ['right_1',['RIGHT',['../group__wx_extend.html#ggacab6afd4179e836abf89f1a500879f5ca21507b40c80068eda19865706fdc2403',1,'appbar.h']]] +]; diff --git a/search/enumvalues_4.html b/search/enumvalues_4.html new file mode 100644 index 0000000..940d778 --- /dev/null +++ b/search/enumvalues_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/enumvalues_4.js b/search/enumvalues_4.js new file mode 100644 index 0000000..6b291cc --- /dev/null +++ b/search/enumvalues_4.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['skipws_0',['SkipWS',['../group__wx_extend.html#ggaa513d718d7b6dbd6fb0225102770e027a063e54f96fc1a13b0a0c841f9fd3117f',1,'hex.h']]], + ['strict_1',['Strict',['../group__wx_extend.html#ggaa513d718d7b6dbd6fb0225102770e027a2e979835dd62324f5bfe217449ba4974',1,'hex.h']]] +]; diff --git a/search/enumvalues_5.html b/search/enumvalues_5.html new file mode 100644 index 0000000..f52f570 --- /dev/null +++ b/search/enumvalues_5.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/enumvalues_5.js b/search/enumvalues_5.js new file mode 100644 index 0000000..b9a0ae7 --- /dev/null +++ b/search/enumvalues_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['top_0',['TOP',['../group__wx_extend.html#ggacab6afd4179e836abf89f1a500879f5ca6705777b712ee811e76fb07162081d63',1,'appbar.h']]] +]; diff --git a/search/functions_0.html b/search/functions_0.html new file mode 100644 index 0000000..2d2d950 --- /dev/null +++ b/search/functions_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_0.js b/search/functions_0.js new file mode 100644 index 0000000..0246808 --- /dev/null +++ b/search/functions_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['clone_0',['Clone',['../classwx_hex_validator.html#a9a77f62ea37dab9638b04737ed41aca2',1,'wxHexValidator::Clone()'],['../classwx_host_name_validator.html#a4719dd3cf2b6565d11680ffd7044762e',1,'wxHostNameValidator::Clone()'],['../classwx_f_q_d_n_validator.html#ae7302aa89e8eca0e0d00f16963591f86',1,'wxFQDNValidator::Clone()'],['../classwx_f_q_d_n_list_validator.html#aa8ee7eb46ef90619c33b759110e85ecb',1,'wxFQDNListValidator::Clone()']]], + ['create_1',['Create',['../classwx_app_bar_frame.html#a87e258db562d1c01d0a441dc66bb1c7d',1,'wxAppBarFrame::Create()'],['../classwx_app_bar_dialog.html#a3b6426d21cc8a4269058e3d40d30b4cb',1,'wxAppBarDialog::Create()']]] +]; diff --git a/search/functions_1.html b/search/functions_1.html new file mode 100644 index 0000000..3b96b90 --- /dev/null +++ b/search/functions_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_1.js b/search/functions_1.js new file mode 100644 index 0000000..c54f144 --- /dev/null +++ b/search/functions_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['fromstring_0',['FromString',['../classwx_hex_validator_base.html#a6b26a8c569e6438ca2e3dcb32da50070',1,'wxHexValidatorBase']]] +]; diff --git a/search/functions_2.html b/search/functions_2.html new file mode 100644 index 0000000..1f16d2a --- /dev/null +++ b/search/functions_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_2.js b/search/functions_2.js new file mode 100644 index 0000000..462e4b1 --- /dev/null +++ b/search/functions_2.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['getallowsizing_0',['GetAllowSizing',['../classwx_app_bar.html#a8b7f72142e0240b4b33bebdc6d19b361',1,'wxAppBar']]], + ['getautohidden_1',['GetAutoHidden',['../classwx_app_bar.html#aebe0b7c841cf979c9612f528be878b95',1,'wxAppBar']]], + ['getkind_2',['GetKind',['../classwx_persistent_aui_manager.html#a125e1f0e1707f61f601d5afcd6b6aa39',1,'wxPersistentAuiManager::GetKind()'],['../classwx_persistent_t_l_w_ex.html#a50b9c40ec5f8f45ddae7f40551d45b18',1,'wxPersistentTLWEx::GetKind()']]], + ['getname_3',['GetName',['../classwx_persistent_aui_manager.html#a3ee0a6da9642d85707842e215511d767',1,'wxPersistentAuiManager']]], + ['getstate_4',['GetState',['../classwx_app_bar.html#a40b3039c0f7a672d16c1187c8878ded6',1,'wxAppBar']]], + ['getvalue_5',['GetValue',['../classwx_crypto_hash.html#a9d1bee413e0c04bf56edc82a5da78559',1,'wxCryptoHash::GetValue()'],['../classwx_crypto_hash_s_h_a1.html#ac684c67a791c1daa76060cfb8be6c115',1,'wxCryptoHashSHA1::GetValue()']]] +]; diff --git a/search/functions_3.html b/search/functions_3.html new file mode 100644 index 0000000..0b37ee2 --- /dev/null +++ b/search/functions_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_3.js b/search/functions_3.js new file mode 100644 index 0000000..0ebef2a --- /dev/null +++ b/search/functions_3.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['hash_0',['Hash',['../classwx_crypto_hash.html#ae26c3fa63ede941c3ae6e3758ea2c966',1,'wxCryptoHash::Hash(_In_reads_bytes_(size) const void *data, size_t size)'],['../classwx_crypto_hash.html#a36f7967c2f2affb36c9c7a9924d94c39',1,'wxCryptoHash::Hash(const wxMemoryBuffer &data)']]], + ['hashasutf8_1',['HashAsUTF8',['../classwx_crypto_hash.html#a65d60a6937ee200baac1fe01eb8255f6',1,'wxCryptoHash']]], + ['hashfile_2',['HashFile',['../classwx_crypto_hash.html#a322f6ead6d2bc7e23a54ca6104e71cf8',1,'wxCryptoHash']]], + ['hideautohideappbar_3',['HideAutoHideAppBar',['../classwx_app_bar.html#a8e7a125895744ca83db85cebf2c18775',1,'wxAppBar']]] +]; diff --git a/search/functions_4.html b/search/functions_4.html new file mode 100644 index 0000000..0eaf2b4 --- /dev/null +++ b/search/functions_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_4.js b/search/functions_4.js new file mode 100644 index 0000000..e3cc47f --- /dev/null +++ b/search/functions_4.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['importprivate_0',['ImportPrivate',['../classwx_crypto_key.html#ab038e20153c1e5881ccf29ea2a49e884',1,'wxCryptoKey']]], + ['importpublic_1',['ImportPublic',['../classwx_crypto_key.html#a125633f1ec6153228d5bb8001c342f8a',1,'wxCryptoKey']]], + ['isalwaysontop_2',['IsAlwaysOnTop',['../classwx_app_bar.html#a154d1f7a4e04ab2f61adcf205abd4961',1,'wxAppBar']]], + ['isautohide_3',['IsAutoHide',['../classwx_app_bar.html#a10e2e6f46f8c90dcd76f27b02dd4fe45',1,'wxAppBar']]], + ['isminusok_4',['IsMinusOk',['../classwx_hex_validator_base.html#ab2e555c478f31bc81740fc7c94d59363',1,'wxHexValidatorBase']]], + ['isok_5',['IsOk',['../classwx_co_initializer.html#ac99d618e4222add9f165b58f6ce67c34',1,'wxCoInitializer::IsOk()'],['../classwx_crypto_session.html#ae8ed4efdc2c9fbec56129ee096354744',1,'wxCryptoSession::IsOk()'],['../classwx_crypto_hash.html#ac5d521f9db3f6ac272e938fa74afb207',1,'wxCryptoHash::IsOk()'],['../classwx_crypto_key.html#afc8cb58b4d6d362d1dd1f2b68b93b38d',1,'wxCryptoKey::IsOk()']]] +]; diff --git a/search/functions_5.html b/search/functions_5.html new file mode 100644 index 0000000..eaa2769 --- /dev/null +++ b/search/functions_5.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_5.js b/search/functions_5.js new file mode 100644 index 0000000..c71656b --- /dev/null +++ b/search/functions_5.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['maximisefromedge_0',['MaximiseFromEdge',['../classwx_app_bar.html#a7f86c392151d776d5cf6a3dfffcc233c',1,'wxAppBar::MaximiseFromEdge(const RECT *rect=NULL)'],['../classwx_app_bar.html#a4e7b1019bff7b513fef79d3b1328e377',1,'wxAppBar::MaximiseFromEdge(wxWindow *wnd)']]], + ['minimisetoedge_1',['MinimiseToEdge',['../classwx_app_bar.html#a808e8d6fed0fda0f17f423fdce48fa91',1,'wxAppBar']]] +]; diff --git a/search/functions_6.html b/search/functions_6.html new file mode 100644 index 0000000..25d1cc8 --- /dev/null +++ b/search/functions_6.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_6.js b/search/functions_6.js new file mode 100644 index 0000000..e3e85ce --- /dev/null +++ b/search/functions_6.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['onautohidedenied_0',['OnAutoHideDenied',['../classwx_app_bar.html#ac1a5b59877322c86a33b2ea12a126d6f',1,'wxAppBar']]], + ['onchangestate_1',['OnChangeState',['../classwx_app_bar.html#ad5ffb287a3823720f271607f4d6aa07d',1,'wxAppBar']]], + ['onchangetaskbarstate_2',['OnChangeTaskBarState',['../classwx_app_bar.html#ae5a7f89951072e7f5611d3fc1e264ade',1,'wxAppBar']]], + ['onwindowsarrange_3',['OnWindowsArrange',['../classwx_app_bar.html#a63dab2382ef1642156e633fd56172de0',1,'wxAppBar']]], + ['operator_20bool_4',['operator bool',['../classwx_co_initializer.html#a0b35d0b8e75e96b50af749b686651fd9',1,'wxCoInitializer']]], + ['operator_20hcrypthash_5',['operator HCRYPTHASH',['../classwx_crypto_hash.html#af48cdd5c908fcb13a6aec3383c95e344',1,'wxCryptoHash']]], + ['operator_20hcryptkey_6',['operator HCRYPTKEY',['../classwx_crypto_key.html#ac33af073e59164397426adaed6dc6ad0',1,'wxCryptoKey']]], + ['operator_20hcryptprov_7',['operator HCRYPTPROV',['../classwx_crypto_session.html#a07af35e7873944f3405203ba1bb11796',1,'wxCryptoSession']]] +]; diff --git a/search/functions_7.html b/search/functions_7.html new file mode 100644 index 0000000..b6392ea --- /dev/null +++ b/search/functions_7.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_7.js b/search/functions_7.js new file mode 100644 index 0000000..028d0b2 --- /dev/null +++ b/search/functions_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['parse_0',['Parse',['../classwx_host_name_validator.html#accd3877574e3a5c0583022690d21aa0d',1,'wxHostNameValidator::Parse()'],['../classwx_f_q_d_n_validator.html#aab31e6de0f7ba76527c6b53ad94b299e',1,'wxFQDNValidator::Parse()'],['../classwx_f_q_d_n_list_validator.html#a391ec73c2f99695b11548e24e043ee4a',1,'wxFQDNListValidator::Parse()']]] +]; diff --git a/search/functions_8.html b/search/functions_8.html new file mode 100644 index 0000000..ecf6a89 --- /dev/null +++ b/search/functions_8.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_8.js b/search/functions_8.js new file mode 100644 index 0000000..94140f2 --- /dev/null +++ b/search/functions_8.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['restore_0',['Restore',['../classwx_persistent_aui_manager.html#adc240ccc521959d4f6d5391aa60a6f98',1,'wxPersistentAuiManager::Restore()'],['../classwx_persistent_t_l_w_ex.html#a87a0933e9a6dd48196057f44393393fb',1,'wxPersistentTLWEx::Restore()']]] +]; diff --git a/search/functions_9.html b/search/functions_9.html new file mode 100644 index 0000000..cd70e2b --- /dev/null +++ b/search/functions_9.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_9.js b/search/functions_9.js new file mode 100644 index 0000000..c973f02 --- /dev/null +++ b/search/functions_9.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['save_0',['Save',['../classwx_persistent_aui_manager.html#a8f71e0e2189c2007ac2ae7f7e2c2a752',1,'wxPersistentAuiManager::Save()'],['../classwx_persistent_t_l_w_ex.html#abf3f2b6f6d6b46f9b6035bf43b0537ac',1,'wxPersistentTLWEx::Save()']]], + ['setallowsizing_1',['SetAllowSizing',['../classwx_app_bar.html#ac75f7994f00fc8e4938f2b0faf3dd6d6',1,'wxAppBar']]], + ['setalwaysontop_2',['SetAlwaysOnTop',['../classwx_app_bar.html#ae80d0867b83e54c429771e403cd9519a',1,'wxAppBar']]], + ['setautohide_3',['SetAutoHide',['../classwx_app_bar.html#abdbcdafcaf2331734313b2276c6bc640',1,'wxAppBar']]], + ['showautohideappbar_4',['ShowAutoHideAppBar',['../classwx_app_bar.html#afcff0806eb953c6693e570b3f1eeafae',1,'wxAppBar']]], + ['sign_5',['Sign',['../classwx_crypto_hash.html#a30e3060aea3e1f7233d4c547a4913629',1,'wxCryptoHash::Sign(wxMemoryBuffer &signature)'],['../classwx_crypto_hash.html#aa50c43132cffb5b0050073a6ff8066bc',1,'wxCryptoHash::Sign()']]] +]; diff --git a/search/functions_a.html b/search/functions_a.html new file mode 100644 index 0000000..d2a3de9 --- /dev/null +++ b/search/functions_a.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_a.js b/search/functions_a.js new file mode 100644 index 0000000..3cbbbfb --- /dev/null +++ b/search/functions_a.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['tostring_0',['ToString',['../classwx_hex_validator_base.html#a8067b403957158dd5f957c450d6019d2',1,'wxHexValidatorBase']]], + ['transferfromwindow_1',['TransferFromWindow',['../classwx_host_name_validator.html#a8a47e769b50ceb70b6d91a151525cf30',1,'wxHostNameValidator::TransferFromWindow()'],['../classwx_f_q_d_n_validator.html#a4181cffa3242c6eac8cd49c0248d1f02',1,'wxFQDNValidator::TransferFromWindow()'],['../classwx_f_q_d_n_list_validator.html#a5231fde7170224f346a9c012ec61dbeb',1,'wxFQDNListValidator::TransferFromWindow()']]], + ['transfertowindow_2',['TransferToWindow',['../classwx_host_name_validator.html#afd52baa0eafd6dd08e7a18f1b1fcc86c',1,'wxHostNameValidator::TransferToWindow()'],['../classwx_f_q_d_n_validator.html#a9c80ba791350a78a654b411d220192a4',1,'wxFQDNValidator::TransferToWindow()'],['../classwx_f_q_d_n_list_validator.html#a9f73a37739d7f2df509fa9ba23289896',1,'wxFQDNListValidator::TransferToWindow()']]] +]; diff --git a/search/functions_b.html b/search/functions_b.html new file mode 100644 index 0000000..e6f34bb --- /dev/null +++ b/search/functions_b.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_b.js b/search/functions_b.js new file mode 100644 index 0000000..c981313 --- /dev/null +++ b/search/functions_b.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['validate_0',['Validate',['../classwx_host_name_validator.html#af02757d0f090ca20612db1578644d369',1,'wxHostNameValidator::Validate()'],['../classwx_f_q_d_n_validator.html#a2da3b2661f17fe4b63780baea6dbd404',1,'wxFQDNValidator::Validate()'],['../classwx_f_q_d_n_list_validator.html#a68edaa1daaaefccf81a316e5a72c5cec',1,'wxFQDNListValidator::Validate()']]] +]; diff --git a/search/functions_c.html b/search/functions_c.html new file mode 100644 index 0000000..87b4ce2 --- /dev/null +++ b/search/functions_c.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_c.js b/search/functions_c.js new file mode 100644 index 0000000..3e2ad40 --- /dev/null +++ b/search/functions_c.js @@ -0,0 +1,43 @@ +var searchData= +[ + ['wxappbar_0',['wxAppBar',['../classwx_app_bar.html#a679ca2856889f23ea3373bfa6e41e831',1,'wxAppBar']]], + ['wxappbardialog_1',['wxAppBarDialog',['../classwx_app_bar_dialog.html#a1e8ef4a24d412cca6497d9e71d0d4aa6',1,'wxAppBarDialog::wxAppBarDialog()'],['../classwx_app_bar_dialog.html#a2476ca6af4e51178a71e2db969840d59',1,'wxAppBarDialog::wxAppBarDialog(wxWindow *parent, wxWindowID id, const wxString &title, wxAppBarState state=wxAppBarState::FLOAT, int flags=wxABF_ALLOWANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxDEFAULT_DIALOG_STYLE, const wxString &name=wxDialogNameStr)']]], + ['wxappbarframe_2',['wxAppBarFrame',['../classwx_app_bar_frame.html#a54f6bb87ceab60639fbb04686b9be9bb',1,'wxAppBarFrame::wxAppBarFrame()'],['../classwx_app_bar_frame.html#a7358be3ebb20a5eb6933e726dbd5a139',1,'wxAppBarFrame::wxAppBarFrame(wxWindow *parent, wxWindowID id, const wxString &title, wxAppBarState state=wxAppBarState::FLOAT, int flags=wxABF_ALLOWANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxDEFAULT_FRAME_STYLE, const wxString &name=wxFrameNameStr)']]], + ['wxappbargettaskbarstate_3',['wxAppBarGetTaskBarState',['../group__wx_extend.html#ga24d7244fd3b59ee6c2bf84ec4b5a443e',1,'appbar.h']]], + ['wxappbargetzwnd_4',['wxAppBarGetZWnd',['../group__wx_extend.html#ga015a42693a150e97fb55cf65355858fd',1,'appbar.h']]], + ['wxappbarisdocked_5',['wxAppBarIsDocked',['../group__wx_extend.html#ga4cb5f472abff1c4eb2682ac19ee21e01',1,'appbar.h']]], + ['wxappbarisdockedhoriz_6',['wxAppBarIsDockedHoriz',['../group__wx_extend.html#ga786c97a26fa8d963b0d5d90f6bce2a4a',1,'appbar.h']]], + ['wxappbarisdockedvert_7',['wxAppBarIsDockedVert',['../group__wx_extend.html#gacf6e1af88190be67e1535fe939df194d',1,'appbar.h']]], + ['wxauimanagerupdateperspectivecaptions_8',['wxAuiManagerUpdatePerspectiveCaptions',['../group__wx_extend.html#gaa4d1c55a5ab605bc8f40a01ae470930b',1,'wxAuiManagerUpdatePerspectiveCaptions(wxAuiManager &mgr, wxString &perspective): framemanager.cpp'],['../group__wx_extend.html#gaa4d1c55a5ab605bc8f40a01ae470930b',1,'wxAuiManagerUpdatePerspectiveCaptions(wxAuiManager &mgr, wxString &perspective): framemanager.cpp']]], + ['wxcoinitializer_9',['wxCoInitializer',['../classwx_co_initializer.html#a46b112d54217cf254e396dec121d177f',1,'wxCoInitializer']]], + ['wxcreatepersistentobject_10',['wxCreatePersistentObject',['../group__wx_extend.html#ga13bc393d7bfdc9edfd95fadc802dc983',1,'auimanager.h']]], + ['wxcryptohash_11',['wxCryptoHash',['../classwx_crypto_hash.html#a294ffd571dfb94b7641db96bce483fae',1,'wxCryptoHash']]], + ['wxcryptohashsha1_12',['wxCryptoHashSHA1',['../classwx_crypto_hash_s_h_a1.html#a39beceb5a2186bc1cc9f09428c35eeda',1,'wxCryptoHashSHA1']]], + ['wxcryptokey_13',['wxCryptoKey',['../classwx_crypto_key.html#a77b57e4487dc3287aff103c6300348c0',1,'wxCryptoKey']]], + ['wxcryptosession_14',['wxCryptoSession',['../classwx_crypto_session.html#ab745053893934e49fa3304e70e16bff6',1,'wxCryptoSession']]], + ['wxcryptosessionrsaaes_15',['wxCryptoSessionRSAAES',['../classwx_crypto_session_r_s_a_a_e_s.html#a80e2156d934c4b9f51a6c5c127eea5a5',1,'wxCryptoSessionRSAAES']]], + ['wxcryptoverifysignature_16',['wxCryptoVerifySignature',['../group__wx_extend.html#ga83dff5298b84b50ed814bf8f1894bcb1',1,'wxCryptoVerifySignature(const wxCryptoHash &hash, _In_reads_bytes_(signature_size) const void *signature_data, size_t signature_size, const wxCryptoKey &key): crypto.h'],['../group__wx_extend.html#gade58a7782dfb7824739533438ea26966',1,'wxCryptoVerifySignature(const wxCryptoHash &hash, const wxMemoryBuffer &signature, const wxCryptoKey &key): crypto.h']]], + ['wxfqdnlistvalidator_17',['wxFQDNListValidator',['../classwx_f_q_d_n_list_validator.html#a22e07a46d63408f19d961298362f4cbb',1,'wxFQDNListValidator']]], + ['wxfqdnvalidator_18',['wxFQDNValidator',['../classwx_f_q_d_n_validator.html#ad428dd3a554ffcbb639c2273b0ff5746',1,'wxFQDNValidator']]], + ['wxgetdowndanimation_19',['wxGetDoWndAnimation',['../group__wx_extend.html#ga33015805cefd09b3899d7b5667f6c0eb',1,'common.h']]], + ['wxhexdecode_20',['wxHexDecode',['../group__wx_extend.html#gadf787040a4ae03a9d69664b55e7e554d',1,'wxHexDecode(const char *src, size_t srcLen, wxHexDecodeMode mode, size_t *posErr): hex.cpp'],['../group__wx_extend.html#ga5ff18f1e5fecbdaa3761c91a1f5a9a99',1,'wxHexDecode(void *dst_, size_t dstLen, const char *src, size_t srcLen, wxHexDecodeMode mode, size_t *posErr): hex.cpp'],['../group__wx_extend.html#ga4af18e7566d7025c457b56c2f8ecc4fc',1,'wxHexDecode(const wxString &src, wxHexDecodeMode mode=wxHexDecodeMode::Strict, size_t *posErr=NULL): hex.h'],['../group__wx_extend.html#ga5ff18f1e5fecbdaa3761c91a1f5a9a99',1,'wxHexDecode(void *dst, size_t dstLen, const char *src, size_t srcLen=wxNO_LEN, wxHexDecodeMode mode=wxHexDecodeMode::Strict, size_t *posErr=NULL): hex.cpp'],['../group__wx_extend.html#ga49fa5b25ba95cf8bdc672c8753b1060d',1,'wxHexDecode(void *dst, size_t dstLen, const wxString &src, wxHexDecodeMode mode=wxHexDecodeMode::Strict, size_t *posErr=NULL): hex.h'],['../group__wx_extend.html#gadf787040a4ae03a9d69664b55e7e554d',1,'wxHexDecode(const char *src, size_t srcLen=wxNO_LEN, wxHexDecodeMode mode=wxHexDecodeMode::Strict, size_t *posErr=NULL): hex.cpp']]], + ['wxhexdecodedsize_21',['wxHexDecodedSize',['../group__wx_extend.html#ga76593329d1380e463b26185f02678dce',1,'hex.h']]], + ['wxhexencode_22',['wxHexEncode',['../group__wx_extend.html#gaa4dcf0c1741f24b7865a030e5937a95f',1,'wxHexEncode(char *dst, size_t dstLen, const void *src, size_t srcLen): hex.cpp'],['../group__wx_extend.html#gaa4dcf0c1741f24b7865a030e5937a95f',1,'wxHexEncode(char *dst, size_t dstLen, const void *src_, size_t srcLen): hex.cpp'],['../group__wx_extend.html#ga1fc191df2a9382f85bf249eeaa729cde',1,'wxHexEncode(const wxMemoryBuffer &buf): hex.h'],['../group__wx_extend.html#gaf37ad5cbd6338f10c7a9fd1e2914bb44',1,'wxHexEncode(const void *src, size_t srcLen): hex.h']]], + ['wxhexencodedsize_23',['wxHexEncodedSize',['../group__wx_extend.html#gaaa29acae6f167f361a6488c265784e4d',1,'hex.h']]], + ['wxhexvalidator_24',['wxHexValidator',['../classwx_hex_validator.html#ad42757abea45dd8c0d5f3a26dc0781a1',1,'wxHexValidator']]], + ['wxhexvalidatorbase_25',['wxHexValidatorBase',['../classwx_hex_validator_base.html#a1272218c75fb5b7bb984d9aa4d472e76',1,'wxHexValidatorBase::wxHexValidatorBase(int style)'],['../classwx_hex_validator_base.html#a90b2c5af4faf851decc77a358ffdd341',1,'wxHexValidatorBase::wxHexValidatorBase(const wxHexValidatorBase &other)']]], + ['wxhostnamevalidator_26',['wxHostNameValidator',['../classwx_host_name_validator.html#ab81623b12369e8afb280abd4eac1e3d0',1,'wxHostNameValidator']]], + ['wxinitializelocale_27',['wxInitializeLocale',['../group__wx_extend.html#ga9bdc3711db3f3e7fd87c4a491bd8afa0',1,'common.h']]], + ['wxmodifystyleex_28',['wxModifyStyleEx',['../group__wx_extend.html#ga58084b8e1a8e2e27bcf5e5df387f9601',1,'common.h']]], + ['wxobjectwithdata_29',['wxObjectWithData',['../classwx_object_with_data.html#a6cf0232bbeaad79c4e115ee08ffcb5ed',1,'wxObjectWithData::wxObjectWithData()'],['../classwx_object_with_data.html#a81bb61c35c0954b130d98ba211396e89',1,'wxObjectWithData::wxObjectWithData(const T &data)'],['../classwx_object_with_data.html#a2482db1ff8e93d3d5c45e92ffc7a0008',1,'wxObjectWithData::wxObjectWithData(T &&data)']]], + ['wxpersistentauimanager_30',['wxPersistentAuiManager',['../classwx_persistent_aui_manager.html#a266f1e8b0d8963e7abed395d6c7c2362',1,'wxPersistentAuiManager']]], + ['wxpersistenttlwex_31',['wxPersistentTLWEx',['../classwx_persistent_t_l_w_ex.html#a7c86c50779bfbbd648bdf8cdf6928fc4',1,'wxPersistentTLWEx']]], + ['wxurldecode_32',['wxURLDecode',['../group__wx_extend.html#gab52713daaa8365da604084ebdea1c3b8',1,'wxURLDecode(char *dst, size_t dstLen, const char *src, size_t srcLen=wxNO_LEN): url.cpp'],['../group__wx_extend.html#gab65fce11bff2681b90cee6177a6b4bab',1,'wxURLDecode(char *dst, size_t dstLen, const wxString &src): url.h'],['../group__wx_extend.html#ga5f3fa8488d8d161e6e801d30169ebb14',1,'wxURLDecode(const char *src, size_t srcLen=wxNO_LEN): url.cpp'],['../group__wx_extend.html#gaaa451e5c982986900598b6776c76e073',1,'wxURLDecode(const wxString &src): url.h'],['../group__wx_extend.html#gab52713daaa8365da604084ebdea1c3b8',1,'wxURLDecode(char *dst, size_t dstLen, const char *src, size_t srcLen): url.cpp'],['../group__wx_extend.html#ga5f3fa8488d8d161e6e801d30169ebb14',1,'wxURLDecode(const char *src, size_t srcLen): url.cpp']]], + ['wxurldecodedsize_33',['wxURLDecodedSize',['../group__wx_extend.html#gab08984928f08a74f90b2e18e0449d19b',1,'url.h']]], + ['wxurlencode_34',['wxURLEncode',['../group__wx_extend.html#ga99b74bd46040eb1143b160ed627b2f28',1,'wxURLEncode(const char *src, size_t srcLen): url.h'],['../group__wx_extend.html#gaf11ee00da860e63832ab5505020e2714',1,'wxURLEncode(char *dst, size_t dstLen, const char *src, size_t srcLen): url.cpp'],['../group__wx_extend.html#ga5f4daf0d120c83adbd0ad46b4d639556',1,'wxURLEncode(const wxMemoryBuffer &buf): url.h'],['../group__wx_extend.html#gaf72d33079f5facbb38c182a10bbe0ab7',1,'wxURLEncode(const wxString &str): url.h'],['../group__wx_extend.html#gaf11ee00da860e63832ab5505020e2714',1,'wxURLEncode(char *dst, size_t dstLen, const char *src, size_t srcLen): url.cpp']]], + ['wxurlencodedsize_35',['wxURLEncodedSize',['../group__wx_extend.html#gaf1dd200c30d04bdfcd55fe2c5ee83976',1,'url.h']]], + ['wxurlisprotected_36',['wxURLIsProtected',['../group__wx_extend.html#gaad62152fab34b51f84df9a7feb042e9f',1,'url.h']]], + ['wxxmlescapeattr_37',['wxXmlEscapeAttr',['../group__wx_extend.html#ga0a5fe49ff679628c97dfb29140f39eb7',1,'xml.h']]], + ['wxxmlescapetext_38',['wxXmlEscapeText',['../group__wx_extend.html#ga2df1fb125c80cc34345704c395fa98d2',1,'xml.h']]], + ['wxxmlhashnode_39',['wxXmlHashNode',['../group__wx_extend.html#ga50d87745169578f671751e6a3b62c829',1,'wxXmlHashNode(wxCryptoHash &hash, const wxXmlNode *node): xml.cpp'],['../group__wx_extend.html#ga50d87745169578f671751e6a3b62c829',1,'wxXmlHashNode(wxCryptoHash &hash, const wxXmlNode *node): xml.cpp']]] +]; diff --git a/search/functions_d.html b/search/functions_d.html new file mode 100644 index 0000000..ada2b81 --- /dev/null +++ b/search/functions_d.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_d.js b/search/functions_d.js new file mode 100644 index 0000000..148070c --- /dev/null +++ b/search/functions_d.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['_7ewxappbar_0',['~wxAppBar',['../classwx_app_bar.html#a521931479c266038782c368daca9acc9',1,'wxAppBar']]], + ['_7ewxcoinitializer_1',['~wxCoInitializer',['../classwx_co_initializer.html#ab1237d26d2fc2c988843d314f4a1da23',1,'wxCoInitializer']]], + ['_7ewxcryptohash_2',['~wxCryptoHash',['../classwx_crypto_hash.html#a53ec9d8cc3275837284899c5b21ac6fb',1,'wxCryptoHash']]], + ['_7ewxcryptokey_3',['~wxCryptoKey',['../classwx_crypto_key.html#a0aa0c802206417dd65b7efe8847a6505',1,'wxCryptoKey']]], + ['_7ewxcryptosession_4',['~wxCryptoSession',['../classwx_crypto_session.html#a492e3909129930480b8b95773cc57af2',1,'wxCryptoSession']]] +]; diff --git a/search/groups_0.html b/search/groups_0.html new file mode 100644 index 0000000..c8654e6 --- /dev/null +++ b/search/groups_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/groups_0.js b/search/groups_0.js new file mode 100644 index 0000000..6a47a0b --- /dev/null +++ b/search/groups_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['wxextend_0',['WxExtend',['../group__wx_extend.html',1,'']]] +]; diff --git a/search/mag_sel.svg b/search/mag_sel.svg new file mode 100644 index 0000000..03626f6 --- /dev/null +++ b/search/mag_sel.svg @@ -0,0 +1,74 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/search/nomatches.html b/search/nomatches.html new file mode 100644 index 0000000..2b9360b --- /dev/null +++ b/search/nomatches.html @@ -0,0 +1,13 @@ + + + + + + + + +
    +
    No Matches
    +
    + + diff --git a/search/search.css b/search/search.css new file mode 100644 index 0000000..648a792 --- /dev/null +++ b/search/search.css @@ -0,0 +1,263 @@ +/*---------------- Search Box */ + +#MSearchBox { + white-space : nowrap; + background: white; + border-radius: 0.65em; + box-shadow: inset 0.5px 0.5px 3px 0px #555; + z-index: 102; +} + +#MSearchBox .left { + display: inline-block; + vertical-align: middle; + height: 1.4em; +} + +#MSearchSelect { + display: inline-block; + vertical-align: middle; + height: 19px; + padding: 0 0 0 0.3em; + margin: 0; +} + +#MSearchField { + display: inline-block; + vertical-align: middle; + width: 7.5em; + height: 19px; + margin: 0 0.15em; + padding: 0; + line-height: 1em; + border:none; + color: #909090; + outline: none; + font-family: Arial, Verdana, sans-serif; + -webkit-border-radius: 0px; + border-radius: 0px; + background: none; +} + +@media(hover: none) { + /* to avoid zooming on iOS */ + #MSearchField { + font-size: 16px; + } +} + +#MSearchBox .right { + display: inline-block; + vertical-align: middle; + width: 1.4em; + height: 1.4em; +} + +#MSearchClose { + display: none; + font-size: inherit; + background : none; + border: none; + margin: 0; + padding: 0; + outline: none; + +} + +#MSearchCloseImg { + height: 1.4em; + padding: 0.3em; + margin: 0; +} + +.MSearchBoxActive #MSearchField { + color: #000000; +} + +#main-menu > li:last-child { + /* This
  • object is the parent of the search bar */ + display: flex; + justify-content: center; + align-items: center; + height: 36px; + margin-right: 1em; +} + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #90A5CE; + background-color: #F9FAFC; + z-index: 10001; + padding-top: 4px; + padding-bottom: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +.SelectItem { + font: 8pt Arial, Verdana, sans-serif; + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: monospace; + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: #000000; + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: #000000; + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: #FFFFFF; + background-color: #3D578C; + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + /*width: 60ex;*/ + height: 15em; +} + +#MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #000; + background-color: #EEF1F7; + z-index:10000; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; + padding-bottom: 15px; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +body.SRPage { + margin: 5px 2px; +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +span.SRScope { + padding-left: 4px; + font-family: Arial, Verdana, sans-serif; +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; + font-family: Arial, Verdana, sans-serif; +} + +.SRResult { + display: none; +} + +div.searchresults { + margin-left: 10px; + margin-right: 10px; +} + +/*---------------- External search page results */ + +.searchresult { + background-color: #F0F3F8; +} + +.pages b { + color: white; + padding: 5px 5px 3px 5px; + background-image: url("../tab_a.png"); + background-repeat: repeat-x; + text-shadow: 0 1px 1px #000000; +} + +.pages { + line-height: 17px; + margin-left: 4px; + text-decoration: none; +} + +.hl { + font-weight: bold; +} + +#searchresults { + margin-bottom: 20px; +} + +.searchpages { + margin-top: 10px; +} + diff --git a/search/search.js b/search/search.js new file mode 100644 index 0000000..ac8055d --- /dev/null +++ b/search/search.js @@ -0,0 +1,794 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function convertToId(search) +{ + var result = ''; + for (i=0;i do a search + { + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex0) // Up + { + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } + else if (e.keyCode==13 || e.keyCode==27) + { + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() + { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() + { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() + { + this.keyTimeout = 0; + + // strip leading whitespace + var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + var code = searchValue.toLowerCase().charCodeAt(0); + var idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair + { + idxChar = searchValue.substr(0, 2); + } + + var resultsPage; + var resultsPageWithSearch; + var hasResultsPage; + + var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) + { + var hexCode=idx.toString(16); + resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + this.extension; + resultsPageWithSearch = resultsPage+'?'+escape(searchValue); + hasResultsPage = true; + } + else // nothing available for this search term + { + resultsPage = this.resultsPath + '/nomatches' + this.extension; + resultsPageWithSearch = resultsPage; + hasResultsPage = false; + } + + window.frames.MSearchResults.location = resultsPageWithSearch; + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + + if (domPopupSearchResultsWindow.style.display!='block') + { + var domSearchBox = this.DOMSearchBox(); + this.DOMSearchClose().style.display = 'inline-block'; + var domPopupSearchResults = this.DOMPopupSearchResults(); + var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth; + var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + var maxWidth = document.body.clientWidth; + var width = 400; + if (left<10) left=10; + if (width+left+8>maxWidth) width=maxWidth-left-8; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + domPopupSearchResultsWindow.style.width = width + 'px'; + } + + this.lastSearchValue = searchValue; + this.lastResultsPage = resultsPage; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) + { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) + { + this.DOMSearchBox().className = 'MSearchBoxActive'; + + var searchField = this.DOMSearchField(); + + if (searchField.value == this.searchLabel) // clear "Search" term upon entry + { + searchField.value = ''; + this.searchActive = true; + } + } + else if (!isActive) // directly remove the panel + { + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.DOMSearchField().value = this.searchLabel; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults(name) +{ + // The number of matches from the last run of . + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) + { + var parentElement = document.getElementById(id); + var element = parentElement.firstChild; + + while (element && element!=parentElement) + { + if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren') + { + return element; + } + + if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes()) + { + element = element.firstChild; + } + else if (element.nextSibling) + { + element = element.nextSibling; + } + else + { + do + { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) + { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) + { + var element = this.FindChildElement(id); + if (element) + { + if (element.style.display == 'block') + { + element.style.display = 'none'; + } + else + { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) + { + if (!search) // get search word from URL + { + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + var resultRows = document.getElementsByTagName("div"); + var matches = 0; + + var i = 0; + while (i < resultRows.length) + { + var row = resultRows.item(i); + if (row.className == "SRResult") + { + var rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) + { + row.style.display = 'block'; + matches++; + } + else + { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) // no results + { + document.getElementById("NoMatches").style.display='block'; + } + else // at least one result + { + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) + { + if (e.type == "keydown") + { + this.repeatOn = false; + this.lastKey = e.keyCode; + } + else if (e.type == "keypress") + { + if (!this.repeatOn) + { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } + else if (e.type == "keyup") + { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + var newIndex = itemIndex-1; + var focusItem = this.NavPrev(newIndex); + if (focusItem) + { + var child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') // children visible + { + var n=0; + var tmpElem; + while (1) // search for last child + { + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) + { + focusItem = tmpElem; + } + else // found it! + { + break; + } + n++; + } + } + } + if (focusItem) + { + focusItem.focus(); + } + else // return focus to search field + { + parent.document.getElementById("MSearchField").focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = itemIndex+1; + var focusItem; + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') // children visible + { + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } + else if (this.lastKey==39) // Right + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } + else if (this.lastKey==37) // Left + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + if (childIndex>0) + { + var newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } + else // already at first child, jump to parent + { + document.getElementById('Item'+itemIndex).focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = childIndex+1; + var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) // last child, jump to parent next parent + { + elem = this.NavNext(itemIndex+1); + } + if (elem) + { + elem.focus(); + } + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } +} + +function setKeyActions(elem,action) +{ + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); +} + +function setClassAttr(elem,attr) +{ + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); +} + +function createResults() +{ + var results = document.getElementById("SRResults"); + for (var e=0; e(R!W8j_r#qQ#gnr4kAxdU#F0+OBry$Z+ z_0PMi;P|#{d%mw(dnw=jM%@$onTJa%@6Nm3`;2S#nwtVFJI#`U@2Q@@JCCctagvF- z8H=anvo~dTmJ2YA%wA6IHRv%{vxvUm|R)kgZeo zmX%Zb;mpflGZdXCTAgit`||AFzkI#z&(3d4(htA?U2FOL4WF6wY&TB#n3n*I4+hl| z*NBpo#FA92vEu822WQ%mvv4FO#qs` BFGc_W literal 0 HcmV?d00001 diff --git a/search/search_r.png b/search/search_r.png new file mode 100644 index 0000000000000000000000000000000000000000..1af5d21ee13e070d7600f1c4657fde843b953a69 GIT binary patch literal 553 zcmeAS@N?(olHy`uVBq!ia0vp^LO?9c!2%@BXHTsJQY`6?zK#qG8~eHcB(ehe3dtTp zz6=bxGZ+|(`xqD=STHa&U1eaXVrO7DwS|Gf*oA>XrmV$GYcEhOQT(QLuS{~ooZ2P@v=Xc@RKW@Irliv8_;wroU0*)0O?temdsA~70jrdux+`@W7 z-N(<(C)L?hOO?KV{>8(jC{hpKsws)#Fh zvsO>IB+gb@b+rGWaO&!a9Z{!U+fV*s7TS>fdt&j$L%^U@Epd$~Nl7e8wMs5Z1yT$~ z28I^8hDN#u<{^fLRz?<9hUVG^237_Jy7tbuQ8eV{r(~v8;?@w8^gA7>fx*+&&t;uc GLK6VEQpiUD literal 0 HcmV?d00001 diff --git a/search/searchdata.js b/search/searchdata.js new file mode 100644 index 0000000..8048a46 --- /dev/null +++ b/search/searchdata.js @@ -0,0 +1,36 @@ +var indexSectionsWithContent = +{ + 0: "bcfghilmoprstvw~", + 1: "w", + 2: "cfghimoprstvw~", + 3: "m", + 4: "b", + 5: "w", + 6: "bflrst", + 7: "w" +}; + +var indexSectionNames = +{ + 0: "all", + 1: "classes", + 2: "functions", + 3: "variables", + 4: "typedefs", + 5: "enums", + 6: "enumvalues", + 7: "groups" +}; + +var indexSectionLabels = +{ + 0: "All", + 1: "Classes", + 2: "Functions", + 3: "Variables", + 4: "Typedefs", + 5: "Enumerations", + 6: "Enumerator", + 7: "Modules" +}; + diff --git a/search/typedefs_0.html b/search/typedefs_0.html new file mode 100644 index 0000000..882b2a1 --- /dev/null +++ b/search/typedefs_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/typedefs_0.js b/search/typedefs_0.js new file mode 100644 index 0000000..3db6a6c --- /dev/null +++ b/search/typedefs_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['base_0',['Base',['../classwx_hex_validator.html#a7b669b54bc0886cb30cb1a5ca0de6dd5',1,'wxHexValidator']]] +]; diff --git a/search/variables_0.html b/search/variables_0.html new file mode 100644 index 0000000..950bfc5 --- /dev/null +++ b/search/variables_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/variables_0.js b/search/variables_0.js new file mode 100644 index 0000000..1a49ece --- /dev/null +++ b/search/variables_0.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['m_5fdata_0',['m_data',['../classwx_object_with_data.html#a3a6313f74c8a1de486df7cc0b4ae6c67',1,'wxObjectWithData']]], + ['m_5fflags_1',['m_flags',['../classwx_app_bar.html#a7de8d3fef326880f83aa63ca07c3a7f3',1,'wxAppBar']]], + ['m_5fh_2',['m_h',['../classwx_crypto_session.html#afc12a4c11aa0319694da98a469156f51',1,'wxCryptoSession::m_h()'],['../classwx_crypto_hash.html#a5424e152aba41c70b3bdb821ef21851c',1,'wxCryptoHash::m_h()'],['../classwx_crypto_key.html#a80ff174fdca2897a83addf87b5f7afb9',1,'wxCryptoKey::m_h()']]], + ['m_5fsizedocked_3',['m_sizeDocked',['../classwx_app_bar.html#aca33c43e6370549d922000ead6814955',1,'wxAppBar']]], + ['m_5fsizefloat_4',['m_sizeFloat',['../classwx_app_bar.html#a6c5fba27197133ba1247816a7b8abac9',1,'wxAppBar']]], + ['m_5fsizemin_5',['m_sizeMin',['../classwx_app_bar.html#ac59056e7fd5f0dd50082f87b19f987f6',1,'wxAppBar']]], + ['m_5fstate_6',['m_state',['../classwx_app_bar.html#a96a0e58d3c64712e0a93dcd80414d3fa',1,'wxAppBar']]], + ['m_5fstatedesired_7',['m_stateDesired',['../classwx_app_bar.html#ac6e7cac049c1394f9dcedfd3d554c078',1,'wxAppBar']]], + ['m_5fstatetaskbar_8',['m_stateTaskBar',['../classwx_app_bar.html#a50f6ac6aebf9e462145c0af70d3cbcef',1,'wxAppBar']]], + ['m_5ftaskbarlist_9',['m_taskbarList',['../classwx_app_bar.html#a455ccfb06e546f341dc320c19828896e',1,'wxAppBar']]], + ['m_5ftimerid_10',['m_timerID',['../classwx_app_bar.html#a0283c72da37448e33bb1aa83598da38b',1,'wxAppBar']]], + ['m_5fval_11',['m_val',['../classwx_host_name_validator.html#ad56f6a4458009cae80b16167b45bef8b',1,'wxHostNameValidator::m_val()'],['../classwx_f_q_d_n_validator.html#a8282f515456f5610203d2e74d5ce5ffc',1,'wxFQDNValidator::m_val()'],['../classwx_f_q_d_n_list_validator.html#aa4a0d72751dd82ac74f38b12bf0238f2',1,'wxFQDNListValidator::m_val()']]] +]; diff --git a/splitbar.png b/splitbar.png new file mode 100644 index 0000000000000000000000000000000000000000..fe895f2c58179b471a22d8320b39a4bd7312ec8e GIT binary patch literal 314 zcmeAS@N?(olHy`uVBq!ia0vp^Yzz!63>-{AmhX=Jf(#6djGiuzAr*{o?=JLmPLyc> z_*`QK&+BH@jWrYJ7>r6%keRM@)Qyv8R=enp0jiI>aWlGyB58O zFVR20d+y`K7vDw(hJF3;>dD*3-?v=<8M)@x|EEGLnJsniYK!2U1 Y!`|5biEc?d1`HDhPgg&ebxsLQ02F6;9RL6T literal 0 HcmV?d00001 diff --git a/sync_off.png b/sync_off.png new file mode 100644 index 0000000000000000000000000000000000000000..3b443fc62892114406e3d399421b2a881b897acc GIT binary patch literal 853 zcmV-b1FHOqP)oT|#XixUYy%lpuf3i8{fX!o zUyDD0jOrAiT^tq>fLSOOABs-#u{dV^F$b{L9&!2=9&RmV;;8s^x&UqB$PCj4FdKbh zoB1WTskPUPu05XzFbA}=KZ-GP1fPpAfSs>6AHb12UlR%-i&uOlTpFNS7{jm@mkU1V zh`nrXr~+^lsV-s1dkZOaI|kYyVj3WBpPCY{n~yd%u%e+d=f%`N0FItMPtdgBb@py; zq@v6NVArhyTC7)ULw-Jy8y42S1~4n(3LkrW8mW(F-4oXUP3E`e#g**YyqI7h-J2zK zK{m9##m4ri!7N>CqQqCcnI3hqo1I;Yh&QLNY4T`*ptiQGozK>FF$!$+84Z`xwmeMh zJ0WT+OH$WYFALEaGj2_l+#DC3t7_S`vHpSivNeFbP6+r50cO8iu)`7i%Z4BTPh@_m3Tk!nAm^)5Bqnr%Ov|Baunj#&RPtRuK& z4RGz|D5HNrW83-#ydk}tVKJrNmyYt-sTxLGlJY5nc&Re zU4SgHNPx8~Yxwr$bsju?4q&%T1874xxzq+_%?h8_ofw~(bld=o3iC)LUNR*BY%c0y zWd_jX{Y8`l%z+ol1$@Qa?Cy!(0CVIEeYpKZ`(9{z>3$CIe;pJDQk$m3p}$>xBm4lb zKo{4S)`wdU9Ba9jJbVJ0C=SOefZe%d$8=2r={nu<_^a3~>c#t_U6dye5)JrR(_a^E f@}b6j1K9lwFJq@>o)+Ry00000NkvXXu0mjfWa5j* literal 0 HcmV?d00001 diff --git a/sync_on.png b/sync_on.png new file mode 100644 index 0000000000000000000000000000000000000000..e08320fb64e6fa33b573005ed6d8fe294e19db76 GIT binary patch literal 845 zcmV-T1G4;yP)Y;xxyHF2B5Wzm| zOOGupOTn@c(JmBOl)e;XMNnZuiTJP>rM8<|Q`7I_))aP?*T)ow&n59{}X4$3Goat zgjs?*aasfbrokzG5cT4K=uG`E14xZl@z)F={P0Y^?$4t z>v!teRnNZym<6h{7sLyF1V0HsfEl+l6TrZpsfr1}luH~F7L}ktXu|*uVX^RG$L0`K zWs3j|0tIvVe(N%_?2{(iCPFGf#B6Hjy6o&}D$A%W%jfO8_W%ZO#-mh}EM$LMn7joJ z05dHr!5Y92g+31l<%i1(=L1a1pXX+OYnalY>31V4K}BjyRe3)9n#;-cCVRD_IG1fT zOKGeNY8q;TL@K{dj@D^scf&VCs*-Jb>8b>|`b*osv52-!A?BpbYtTQBns5EAU**$m zSnVSm(teh>tQi*S*A>#ySc=n;`BHz`DuG4&g4Kf8lLhca+zvZ7t7RflD6-i-mcK=M z!=^P$*u2)bkY5asG4gsss!Hn%u~>}kIW`vMs%lJLH+u*9<4PaV_c6U`KqWXQH%+Nu zTv41O(^ZVi@qhjQdG!fbZw&y+2o!iYymO^?ud3{P*HdoX83YV*Uu_HB=?U&W9%AU# z80}k1SS-CXTU7dcQlsm<^oYLxVSseqY6NO}dc`Nj?8vrhNuCdm@^{a3AQ_>6myOj+ z`1RsLUXF|dm|3k7s2jD(B{rzE>WI2scH8i1;=O5Cc9xB3^aJk%fQjqsu+kH#0=_5a z0nCE8@dbQa-|YIuUVvG0L_IwHMEhOj$Mj4Uq05 X8=0q~qBNan00000NkvXXu0mjfptF>5 literal 0 HcmV?d00001 diff --git a/tab_a.png b/tab_a.png new file mode 100644 index 0000000000000000000000000000000000000000..3b725c41c5a527a3a3e40097077d0e206a681247 GIT binary patch literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QlXwMjv*C{Z|8b*H5dputLHD# z=<0|*y7z(Vor?d;H&?EG&cXR}?!j-Lm&u1OOI7AIF5&c)RFE;&p0MYK>*Kl@eiymD r@|NpwKX@^z+;{u_Z~trSBfrMKa%3`zocFjEXaR$#tDnm{r-UW|TZ1%4 literal 0 HcmV?d00001 diff --git a/tab_b.png b/tab_b.png new file mode 100644 index 0000000000000000000000000000000000000000..e2b4a8638cb3496a016eaed9e16ffc12846dea18 GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QU#tajv*C{Z}0l@H7kg?K0Lnr z!j&C6_(~HV9oQ0Pa6x{-v0AGV_E?vLn=ZI-;YrdjIl`U`uzuDWSP?o#Dmo{%SgM#oan kX~E1%D-|#H#QbHoIja2U-MgvsK&LQxy85}Sb4q9e0Efg%P5=M^ literal 0 HcmV?d00001 diff --git a/tabs.css b/tabs.css new file mode 100644 index 0000000..00d1c60 --- /dev/null +++ b/tabs.css @@ -0,0 +1 @@ +.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main-menu-btn{position:relative;display:inline-block;width:36px;height:36px;text-indent:36px;margin-left:8px;white-space:nowrap;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.main-menu-btn-icon,.main-menu-btn-icon:before,.main-menu-btn-icon:after{position:absolute;top:50%;left:2px;height:2px;width:24px;background:#666;-webkit-transition:all .25s;transition:all .25s}.main-menu-btn-icon:before{content:'';top:-7px;left:0}.main-menu-btn-icon:after{content:'';top:7px;left:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon{height:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:before{top:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:after{top:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}#main-menu-state{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(1px,1px,1px,1px)}#main-menu-state:not(:checked) ~ #main-menu{display:none}#main-menu-state:checked ~ #main-menu{display:block}@media(min-width:768px){.main-menu-btn{position:absolute;top:-99999px}#main-menu-state:not(:checked) ~ #main-menu{display:block}}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a span.sub-arrow:before{display:block;content:'+'}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0 !important;-webkit-border-radius:0;border-radius:0 !important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0 !important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}} \ No newline at end of file diff --git a/tlwgeom_8h_source.html b/tlwgeom_8h_source.html new file mode 100644 index 0000000..6c18aed --- /dev/null +++ b/tlwgeom_8h_source.html @@ -0,0 +1,415 @@ + + + + + + + +wxExtend: include/wxex/private/tlwgeom.h Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    wxExtend +
    +
    Additional templates and function helpers for wxWidgets
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    tlwgeom.h
    +
    +
    +
    1/*
    +
    2 ​​​SPDX-License-Identifier: GPL-3.0-or-later
    +
    3 Copyright © 2015-2022 Amebis
    +
    4 Copyright © 2016 GÉANT
    +
    5*/
    +
    6
    +
    7#pragma once
    +
    8
    +
    9#include <codeanalysis\warnings.h>
    +
    10#pragma warning(push)
    +
    11#pragma warning(disable: WXWIDGETS_CODE_ANALYSIS_WARNINGS)
    +
    12#include <wx/dynlib.h>
    +
    13#include <wx/private/tlwgeom.h>
    +
    14#pragma warning(pop)
    +
    15
    +
    16#ifndef USER_DEFAULT_SCREEN_DPI
    +
    17#define USER_DEFAULT_SCREEN_DPI 96
    +
    18#endif
    +
    19
    +
    21
    +
    22#define wxPERSIST_TLW_MONITOR_X "xmon"
    +
    23#define wxPERSIST_TLW_MONITOR_Y "ymon"
    +
    24#define wxPERSIST_TLW_MONITOR_W "wmon"
    +
    25#define wxPERSIST_TLW_MONITOR_H "hmon"
    +
    26#define wxPERSIST_TLW_DPI_HORZ "xdpi"
    +
    27#define wxPERSIST_TLW_DPI_VERT "ydpi"
    +
    28
    +
    29class wxTLWGeometryEx : public wxTLWGeometryBase
    +
    30{
    +
    31public:
    +
    32 wxTLWGeometryEx()
    +
    33 {
    +
    34 wxZeroMemory(m_placement);
    +
    35 m_placement.length = sizeof(m_placement);
    +
    36
    +
    37 wxZeroMemory(m_mntinfo);
    +
    38 m_mntinfo.cbSize = sizeof(m_mntinfo);
    +
    39
    +
    40 m_dpiHorz = USER_DEFAULT_SCREEN_DPI;
    +
    41 m_dpiVert = USER_DEFAULT_SCREEN_DPI;
    +
    42 }
    +
    43
    +
    44 virtual bool Save(const Serializer& ser) const wxOVERRIDE
    +
    45 {
    +
    46 // For compatibility with the existing saved positions/sizes, use the
    +
    47 // same keys as the generic version (which was previously used under
    +
    48 // MSW too).
    +
    49
    +
    50 // Normal position and size.
    +
    51 const RECT& rc = m_placement.rcNormalPosition;
    +
    52 if (!ser.SaveField(wxPERSIST_TLW_X, rc.left) ||
    +
    53 !ser.SaveField(wxPERSIST_TLW_Y, rc.top) ||
    +
    54 !ser.SaveField(wxPERSIST_TLW_W, rc.right - rc.left) ||
    +
    55 !ser.SaveField(wxPERSIST_TLW_H, rc.bottom - rc.top))
    +
    56 return false;
    +
    57
    +
    58 // Maximized/minimized state.
    +
    59 UINT show = m_placement.showCmd;
    +
    60 if (!ser.SaveField(wxPERSIST_TLW_MAXIMIZED, show == SW_SHOWMAXIMIZED))
    +
    61 return false;
    +
    62
    +
    63 if (!ser.SaveField(wxPERSIST_TLW_ICONIZED, show == SW_SHOWMINIMIZED))
    +
    64 return false;
    +
    65
    +
    66 // Maximized window position.
    +
    67 const POINT pt = m_placement.ptMaxPosition;
    +
    68 if (!ser.SaveField(wxPERSIST_TLW_MAX_X, pt.x) ||
    +
    69 !ser.SaveField(wxPERSIST_TLW_MAX_Y, pt.y))
    +
    70 return false;
    +
    71
    +
    72 // We don't currently save the minimized window position, it doesn't
    +
    73 // seem useful for anything and is probably just a left over from
    +
    74 // Windows 3.1 days, when icons were positioned on the desktop instead
    +
    75 // of being located in the taskbar.
    +
    76
    +
    77 // Monitor position and size.
    +
    78 const RECT& rcMon = m_mntinfo.rcWork;
    +
    79 if (!ser.SaveField(wxPERSIST_TLW_MONITOR_X, rcMon.left) ||
    +
    80 !ser.SaveField(wxPERSIST_TLW_MONITOR_Y, rcMon.top) ||
    +
    81 !ser.SaveField(wxPERSIST_TLW_MONITOR_W, rcMon.right - rcMon.left) ||
    +
    82 !ser.SaveField(wxPERSIST_TLW_MONITOR_H, rcMon.bottom - rcMon.top))
    +
    83 return false;
    +
    84
    +
    85 // DPI.
    +
    86 if (!ser.SaveField(wxPERSIST_TLW_DPI_HORZ, m_dpiHorz) ||
    +
    87 !ser.SaveField(wxPERSIST_TLW_DPI_VERT, m_dpiVert))
    +
    88 return false;
    +
    89
    +
    90 return true;
    +
    91 }
    +
    92
    +
    93 virtual bool Restore(Serializer& ser) wxOVERRIDE
    +
    94 {
    +
    95 // Normal position and size.
    +
    96 wxRect r;
    +
    97 if (!ser.RestoreField(wxPERSIST_TLW_X, &r.x) ||
    +
    98 !ser.RestoreField(wxPERSIST_TLW_Y, &r.y) ||
    +
    99 !ser.RestoreField(wxPERSIST_TLW_W, &r.width) ||
    +
    100 !ser.RestoreField(wxPERSIST_TLW_H, &r.height))
    +
    101 return false;
    +
    102 wxCopyRectToRECT(r, m_placement.rcNormalPosition);
    +
    103
    +
    104 // Maximized/minimized state.
    +
    105 //
    +
    106 // Note the special case of SW_MINIMIZE: while GetWindowPlacement()
    +
    107 // returns SW_SHOWMINIMIZED when the window is iconized, we restore it
    +
    108 // as SW_MINIMIZE as this is what the code in wxTLW checks to determine
    +
    109 // whether the window is supposed to be iconized or not.
    +
    110 //
    +
    111 // Just to confuse matters further, note that SW_MAXIMIZE is exactly
    +
    112 // the same thing as SW_SHOWMAXIMIZED.
    +
    113 int tmp;
    +
    114 UINT& show = m_placement.showCmd;
    +
    115 if (ser.RestoreField(wxPERSIST_TLW_MAXIMIZED, &tmp) && tmp)
    +
    116 show = SW_MAXIMIZE;
    +
    117 else if (ser.RestoreField(wxPERSIST_TLW_ICONIZED, &tmp) && tmp)
    +
    118 show = SW_MINIMIZE;
    +
    119 else
    +
    120 show = SW_SHOWNORMAL;
    +
    121
    +
    122 // Maximized window position.
    +
    123 if (ser.RestoreField(wxPERSIST_TLW_MAX_X, &r.x) &&
    +
    124 ser.RestoreField(wxPERSIST_TLW_MAX_Y, &r.y))
    +
    125 {
    +
    126 m_placement.ptMaxPosition.x = r.x;
    +
    127 m_placement.ptMaxPosition.y = r.y;
    +
    128 } else {
    +
    129 m_placement.ptMaxPosition.x = -1;
    +
    130 m_placement.ptMaxPosition.y = -1;
    +
    131 }
    +
    132
    +
    133 m_placement.ptMinPosition.x = -1;
    +
    134 m_placement.ptMinPosition.y = -1;
    +
    135
    +
    136 // Monitor position and size.
    +
    137 wxRect rmon;
    +
    138 if (!ser.RestoreField(wxPERSIST_TLW_MONITOR_X, &rmon.x) ||
    +
    139 !ser.RestoreField(wxPERSIST_TLW_MONITOR_Y, &rmon.y) ||
    +
    140 !ser.RestoreField(wxPERSIST_TLW_MONITOR_W, &rmon.width) ||
    +
    141 !ser.RestoreField(wxPERSIST_TLW_MONITOR_H, &rmon.height))
    +
    142 return false;
    +
    143 wxCopyRectToRECT(rmon, m_mntinfo.rcWork);
    +
    144
    +
    145 // DPI.
    +
    146 if (!ser.RestoreField(wxPERSIST_TLW_DPI_HORZ, &r.x) ||
    +
    147 !ser.RestoreField(wxPERSIST_TLW_DPI_VERT, &r.y))
    +
    148 return false;
    +
    149 m_dpiHorz = r.x;
    +
    150 m_dpiVert = r.y;
    +
    151
    +
    152 return true;
    +
    153 }
    +
    154
    +
    155 virtual bool GetFrom(const wxTopLevelWindow* tlw) wxOVERRIDE
    +
    156 {
    +
    157 WXHWND hWnd = GetHwndOf(tlw);
    +
    158 if (!::GetWindowPlacement(hWnd, &m_placement))
    +
    159 {
    +
    160 wxLogLastError(wxS("GetWindowPlacement"));
    +
    161 return false;
    +
    162 }
    +
    163
    +
    164 HMONITOR hMonitor = ::MonitorFromWindow(hWnd, MONITOR_DEFAULTTONEAREST);
    +
    165 wxASSERT_MSG(hMonitor, wxT("error locating monitor"));
    +
    166 _Analysis_assume_(hMonitor);
    +
    167 if (!::GetMonitorInfo(hMonitor, &m_mntinfo))
    +
    168 {
    +
    169 wxLogLastError(wxS("GetMonitorInfo"));
    +
    170 return false;
    +
    171 }
    +
    172
    +
    173 GetDPI(hWnd, &m_dpiHorz, &m_dpiVert) || GetDPI(hMonitor, &m_dpiHorz, &m_dpiVert);
    +
    174
    +
    175 return true;
    +
    176 }
    +
    177
    +
    178 virtual bool ApplyTo(wxTopLevelWindow* tlw) wxOVERRIDE
    +
    179 {
    +
    180 // There is a subtlety here: if the window is currently hidden,
    +
    181 // restoring its geometry shouldn't show it, so we must use SW_HIDE as
    +
    182 // show command, but showing it later should restore it to the correct
    +
    183 // state, so we need to remember it in wxTLW itself. And even if it's
    +
    184 // currently shown, we still need to update its show command, so that
    +
    185 // it matches the real window state after SetWindowPlacement() call.
    +
    186 tlw->MSWSetShowCommand(m_placement.showCmd);
    +
    187 if (!tlw->IsShown())
    +
    188 {
    +
    189 m_placement.showCmd = SW_HIDE;
    +
    190 }
    +
    191
    +
    192 // Get monitor to restore window to.
    +
    193 HMONITOR hMonitor = ::MonitorFromRect(&m_mntinfo.rcWork, MONITOR_DEFAULTTONEAREST);
    +
    194 wxASSERT_MSG(hMonitor, wxT("error locating monitor"));
    +
    195 _Analysis_assume_(hMonitor);
    +
    196 MONITORINFO mntinfo;
    +
    197 mntinfo.cbSize = sizeof(mntinfo);
    +
    198 if (!::GetMonitorInfo(hMonitor, &mntinfo))
    +
    199 {
    +
    200 wxLogLastError(wxS("GetMonitorInfo"));
    +
    201 return false;
    +
    202 }
    +
    203
    +
    204 UINT dpiHorz, dpiVert;
    +
    205 GetDPI(hMonitor, &dpiHorz, &dpiVert);
    +
    206
    +
    207 SIZE
    +
    208 sizeWorkPrev = {
    +
    209 m_mntinfo.rcWork.right - m_mntinfo.rcWork.left,
    +
    210 m_mntinfo.rcWork.bottom - m_mntinfo.rcWork.top
    +
    211 },
    +
    212 sizeWork = {
    +
    213 mntinfo.rcWork.right - mntinfo.rcWork.left,
    +
    214 mntinfo.rcWork.bottom - mntinfo.rcWork.top
    +
    215 };
    +
    216
    +
    217 //
    +
    218 // Project the coordinates:
    +
    219 // - Position relative to monitor working area center.
    +
    220 // - Scale according to DPI.
    +
    221 //
    +
    222
    +
    223 if (m_placement.ptMaxPosition.x != -1 && m_placement.ptMaxPosition.y != -1) {
    +
    224 m_placement.ptMaxPosition.x = wxMulDivInt32(m_placement.ptMaxPosition.x - m_mntinfo.rcWork.left, sizeWork.cx, sizeWorkPrev.cx) + mntinfo.rcWork.left;
    +
    225 m_placement.ptMaxPosition.y = wxMulDivInt32(m_placement.ptMaxPosition.y - m_mntinfo.rcWork.top, sizeWork.cy, sizeWorkPrev.cy) + mntinfo.rcWork.top;
    +
    226 }
    +
    227
    +
    228 SIZE sizeWndPrev, sizeWnd;
    +
    229 HWND hWnd = GetHwndOf(tlw);
    +
    230
    +
    231 if (tlw->GetWindowStyle() & wxRESIZE_BORDER) {
    +
    232 sizeWndPrev.cx = m_placement.rcNormalPosition.right - m_placement.rcNormalPosition.left;
    +
    233 sizeWndPrev.cy = m_placement.rcNormalPosition.bottom - m_placement.rcNormalPosition.top;
    +
    234 sizeWnd.cx = wxMulDivInt32(sizeWndPrev.cx, dpiHorz, m_dpiHorz);
    +
    235 sizeWnd.cy = wxMulDivInt32(sizeWndPrev.cy, dpiVert, m_dpiVert);
    +
    236 } else {
    +
    237 // The window is not resizable. Do not change its size.
    +
    238 WINDOWPLACEMENT placement = { sizeof(placement) };
    +
    239 if (!::GetWindowPlacement(hWnd, &placement))
    +
    240 {
    +
    241 wxLogLastError(wxS("GetWindowPlacement"));
    +
    242 return false;
    +
    243 }
    +
    244 SIZE size = {
    +
    245 placement.rcNormalPosition.right - placement.rcNormalPosition.left,
    +
    246 placement.rcNormalPosition.bottom - placement.rcNormalPosition.top
    +
    247 };
    +
    248
    +
    249 UINT dpiWndHorz, dpiWndVert;
    +
    250 GetDPI(hWnd, &dpiWndHorz, &dpiWndVert) || GetDPI(::MonitorFromWindow(hWnd, MONITOR_DEFAULTTONEAREST), &dpiWndHorz, &dpiWndVert);
    +
    251
    +
    252 sizeWndPrev.cx = wxMulDivInt32(size.cx, m_dpiHorz, dpiWndHorz);
    +
    253 sizeWndPrev.cy = wxMulDivInt32(size.cy, m_dpiVert, dpiWndVert);
    +
    254 sizeWnd.cx = wxMulDivInt32(size.cx, dpiHorz, dpiWndHorz);
    +
    255 sizeWnd.cy = wxMulDivInt32(size.cy, dpiVert, dpiWndVert);
    +
    256 }
    +
    257
    +
    258 m_placement.rcNormalPosition.left = wxMulDivInt32(m_placement.rcNormalPosition.left + sizeWndPrev.cx / 2 - m_mntinfo.rcWork.left, sizeWork.cx, sizeWorkPrev.cx) + mntinfo.rcWork.left - sizeWnd.cx / 2;
    +
    259 m_placement.rcNormalPosition.top = wxMulDivInt32(m_placement.rcNormalPosition.top + sizeWndPrev.cy / 2 - m_mntinfo.rcWork.top, sizeWork.cy, sizeWorkPrev.cy) + mntinfo.rcWork.top - sizeWnd.cy / 2;
    +
    260 m_placement.rcNormalPosition.right = m_placement.rcNormalPosition.left + sizeWnd.cx;
    +
    261 m_placement.rcNormalPosition.bottom = m_placement.rcNormalPosition.top + sizeWnd.cy;
    +
    262
    +
    263 if (!::SetWindowPlacement(hWnd, &m_placement))
    +
    264 {
    +
    265 wxLogLastError(wxS("SetWindowPlacement"));
    +
    266 return false;
    +
    267 }
    +
    268
    +
    269 return true;
    +
    270 }
    +
    271
    +
    272private:
    +
    273 static bool GetDPI(_In_ HWND hWnd, _Out_ UINT *dpiHorz, _Out_ UINT *dpiVert)
    +
    274 {
    +
    275 wxASSERT(dpiHorz);
    +
    276 wxASSERT(dpiVert);
    +
    277
    +
    278#if wxUSE_DYNLIB_CLASS
    +
    279 typedef UINT(WINAPI *GetDpiForWindow_t)(HWND);
    +
    280 static bool s_checkedGetDpiForWindow = false;
    +
    281 static GetDpiForWindow_t s_pfnGetDpiForWindow = NULL;
    +
    282 if (!s_checkedGetDpiForWindow && s_dllUser32.IsLoaded()) {
    +
    283 s_pfnGetDpiForWindow = (GetDpiForWindow_t)s_dllUser32.RawGetSymbol(wxT("GetDpiForWindow"));
    +
    284 s_checkedGetDpiForWindow = true;
    +
    285 }
    +
    286
    +
    287 if (s_pfnGetDpiForWindow) {
    +
    288 *dpiHorz = *dpiVert = s_pfnGetDpiForWindow(hWnd);
    +
    289 return true;
    +
    290 }
    +
    291#endif
    +
    292
    +
    293 *dpiHorz = *dpiVert = USER_DEFAULT_SCREEN_DPI;
    +
    294 return false;
    +
    295 }
    +
    296
    +
    297 static bool GetDPI(_In_ HMONITOR hMonitor, _Out_ UINT *dpiHorz, _Out_ UINT *dpiVert)
    +
    298 {
    +
    299 wxASSERT(dpiHorz);
    +
    300 wxASSERT(dpiVert);
    +
    301
    +
    302#if wxUSE_DYNLIB_CLASS
    +
    303 enum MONITOR_DPI_TYPE {
    +
    304 MDT_EFFECTIVE_DPI = 0,
    +
    305 MDT_ANGULAR_DPI = 1,
    +
    306 MDT_RAW_DPI = 2,
    +
    307 MDT_DEFAULT = MDT_EFFECTIVE_DPI
    +
    308 };
    +
    309 typedef HRESULT(WINAPI *GetDpiForMonitor_t)(HMONITOR, MONITOR_DPI_TYPE, UINT *, UINT *);
    +
    310 static GetDpiForMonitor_t s_pfnGetDpiForMonitor = NULL;
    +
    311 if (!s_pfnGetDpiForMonitor) {
    +
    312 if (s_dllShCore.IsLoaded())
    +
    313 s_pfnGetDpiForMonitor = (GetDpiForMonitor_t)s_dllShCore.GetSymbol(wxT("GetDpiForMonitor"));
    +
    314 }
    +
    315
    +
    316 if (s_pfnGetDpiForMonitor) {
    +
    317 s_pfnGetDpiForMonitor(hMonitor, MDT_DEFAULT, dpiHorz, dpiVert);
    +
    318 return true;
    +
    319 }
    +
    320#endif
    +
    321
    +
    322 *dpiHorz = *dpiVert = USER_DEFAULT_SCREEN_DPI;
    +
    323 return false;
    +
    324 }
    +
    325
    +
    326private:
    +
    327 WINDOWPLACEMENT m_placement;
    +
    328 MONITORINFO m_mntinfo;
    +
    329 UINT m_dpiHorz;
    +
    330 UINT m_dpiVert;
    +
    331
    +
    332#if wxUSE_DYNLIB_CLASS
    +
    333 static wxDynamicLibrary s_dllUser32;
    +
    334 static wxDynamicLibrary s_dllShCore;
    +
    335#endif
    +
    336};
    +
    337
    +
    + + + + diff --git a/toplevel_8h_source.html b/toplevel_8h_source.html new file mode 100644 index 0000000..0d75bd2 --- /dev/null +++ b/toplevel_8h_source.html @@ -0,0 +1,154 @@ + + + + + + + +wxExtend: include/wxex/persist/toplevel.h Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    wxExtend +
    +
    Additional templates and function helpers for wxWidgets
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    toplevel.h
    +
    +
    +
    1/*
    +
    2 ​​​SPDX-License-Identifier: GPL-3.0-or-later
    +
    3 Copyright © 2015-2022 Amebis
    +
    4 Copyright © 2016 GÉANT
    +
    5*/
    +
    6
    +
    7#pragma once
    +
    8
    +
    9#include "../common.h"
    +
    10#include "../private/tlwgeom.h"
    +
    11
    +
    12#include <codeanalysis\warnings.h>
    +
    13#pragma warning(push)
    +
    14#pragma warning(disable: WXWIDGETS_CODE_ANALYSIS_WARNINGS)
    +
    15#include <wx/persist.h>
    +
    16#include <wx/persist/toplevel.h>
    +
    17#include <wx/persist/window.h>
    +
    18#include <wx/toplevel.h>
    +
    19#pragma warning(pop)
    +
    20
    +
    23
    + +
    28 public wxPersistentWindow<wxTopLevelWindow>,
    +
    29 private wxTopLevelWindow::GeometrySerializer
    +
    30{
    +
    31public:
    +
    35 wxPersistentTLWEx(wxTopLevelWindow *mgr) : wxPersistentWindow<wxTopLevelWindow>(mgr)
    +
    36 {
    +
    37 }
    +
    38
    +
    42 virtual wxString GetKind() const wxOVERRIDE
    +
    43 {
    +
    44 return wxT(wxPERSIST_TLW_KIND);
    +
    45 }
    +
    46
    +
    50 virtual void Save() const wxOVERRIDE
    +
    51 {
    +
    52 const wxTopLevelWindow * const wnd = Get();
    +
    53
    +
    54 wxTLWGeometryEx geom;
    +
    55 if (geom.GetFrom(wnd))
    +
    56 geom.Save(*this);
    +
    57 }
    +
    58
    +
    62 virtual bool Restore() wxOVERRIDE
    +
    63 {
    +
    64 wxTopLevelWindow * const wnd = Get();
    +
    65
    +
    66 wxTLWGeometryEx geom;
    +
    67 if (!geom.Restore(*this))
    +
    68 return false;
    +
    69
    +
    70 return geom.ApplyTo(wnd);
    +
    71 }
    +
    72
    +
    73private:
    +
    74 wxDECLARE_NO_COPY_CLASS(wxPersistentTLWEx);
    +
    75
    +
    76private:
    +
    77 virtual bool SaveField(const wxString& name, int value) const wxOVERRIDE
    +
    78 {
    +
    79 return SaveValue(name, value);
    +
    80 }
    +
    81
    +
    82 virtual bool RestoreField(const wxString& name, int* value) wxOVERRIDE
    +
    83 {
    +
    84 return RestoreValue(name, value);
    +
    85 }
    +
    86};
    +
    87
    +
    Supports saving/restoring wxTopLevelWindow state.
    Definition: toplevel.h:30
    +
    virtual wxString GetKind() const wxOVERRIDE
    Definition: toplevel.h:42
    +
    wxPersistentTLWEx(wxTopLevelWindow *mgr)
    Constructs a persistent dialog object.
    Definition: toplevel.h:35
    +
    virtual bool Restore() wxOVERRIDE
    Restores dialog state.
    Definition: toplevel.h:62
    +
    virtual void Save() const wxOVERRIDE
    Saves dialog state.
    Definition: toplevel.h:50
    +
    + + + + diff --git a/url_8h_source.html b/url_8h_source.html new file mode 100644 index 0000000..91c1a24 --- /dev/null +++ b/url_8h_source.html @@ -0,0 +1,192 @@ + + + + + + + +wxExtend: include/wxex/url.h Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    wxExtend +
    +
    Additional templates and function helpers for wxWidgets
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    url.h
    +
    +
    +
    1/*
    +
    2 ​​​SPDX-License-Identifier: GPL-3.0-or-later
    +
    3 Copyright © 2015-2022 Amebis
    +
    4 Copyright © 2016 GÉANT
    +
    5*/
    +
    6
    +
    7#pragma once
    +
    8
    +
    9#include "common.h"
    +
    10
    +
    11#include <codeanalysis\warnings.h>
    +
    12#pragma warning(push)
    +
    13#pragma warning(disable: WXWIDGETS_CODE_ANALYSIS_WARNINGS)
    +
    14#include <wx/string.h>
    +
    15#include <wx/buffer.h>
    +
    16#pragma warning(pop)
    +
    17
    +
    20
    +
    30inline bool wxURLIsProtected(char chr)
    +
    31{
    +
    32 switch (chr) {
    +
    33 case ' ':
    +
    34 case '!':
    +
    35 case '*':
    +
    36 case '\'':
    +
    37 case '(':
    +
    38 case ')':
    +
    39 case ';':
    +
    40 case ':':
    +
    41 case '@':
    +
    42 case '&':
    +
    43 case '=':
    +
    44 case '+':
    +
    45 case '$':
    +
    46 case ',':
    +
    47 case '/':
    +
    48 case '?':
    +
    49 case '#':
    +
    50 case '[':
    +
    51 case ']': return true;
    +
    52 }
    +
    53
    +
    54 return chr < 0x20;
    +
    55}
    +
    56
    +
    57
    +
    66inline size_t wxURLEncodedSize(size_t len)
    +
    67{
    +
    68 return len*3;
    +
    69}
    +
    70
    +
    71
    +
    86size_t WXEXTEND_API wxURLEncode(char *dst, size_t dstLen, const char *src, size_t srcLen);
    +
    87
    +
    88
    +
    98inline wxString wxURLEncode(const char *src, size_t srcLen)
    +
    99{
    +
    100 const size_t dstLen = wxURLEncodedSize(srcLen);
    +
    101 wxCharBuffer dst(dstLen);
    +
    102 dst.shrink(wxURLEncode(dst.data(), dstLen, src, srcLen));
    +
    103
    +
    104 return dst;
    +
    105}
    +
    106
    +
    107
    +
    115inline wxString wxURLEncode(const wxString& str)
    +
    116{
    +
    117 return wxURLEncode(str.GetData(), str.Length());
    +
    118}
    +
    119
    +
    120
    +
    128inline wxString wxURLEncode(const wxMemoryBuffer& buf)
    +
    129{
    +
    130 return wxURLEncode(reinterpret_cast<const char*>(buf.GetData()), buf.GetDataLen());
    +
    131}
    +
    132
    +
    133
    +
    134// ----------------------------------------------------------------------------
    +
    135// Decoding Functions
    +
    136// ----------------------------------------------------------------------------
    +
    137
    +
    146inline size_t wxURLDecodedSize(size_t len)
    +
    147{
    +
    148 return len;
    +
    149}
    +
    150
    +
    166size_t WXEXTEND_API wxURLDecode(char *dst, size_t dstLen, const char *src, size_t srcLen = wxNO_LEN);
    +
    167
    +
    168
    +
    181inline size_t wxURLDecode(char *dst, size_t dstLen, const wxString& src)
    +
    182{
    +
    183 // don't use str.length() here as the ASCII buffer is shorter than it is for
    +
    184 // strings with embedded NULs
    +
    185 return wxURLDecode(dst, dstLen, src.ToAscii(), wxNO_LEN);
    +
    186}
    +
    187
    +
    188
    +
    198wxMemoryBuffer WXEXTEND_API wxURLDecode(const char *src, size_t srcLen = wxNO_LEN);
    +
    199
    +
    200
    +
    208inline wxMemoryBuffer wxURLDecode(const wxString& src)
    +
    209{
    +
    210 // don't use str.length() here as the ASCII buffer is shorter than it for
    +
    211 // strings with embedded NULs
    +
    212 return wxURLDecode(src.ToAscii(), wxNO_LEN);
    +
    213}
    +
    214
    +
    #define WXEXTEND_API
    Public function calling convention.
    Definition: common.h:56
    +
    bool wxURLIsProtected(char chr)
    Test if given character should be protected for URL encoding.
    Definition: url.h:30
    +
    size_t wxURLDecodedSize(size_t len)
    Return the buffer size necessary for decoding a URL string of the given length.
    Definition: url.h:146
    +
    size_t WXEXTEND_API wxURLDecode(char *dst, size_t dstLen, const char *src, size_t srcLen=wxNO_LEN)
    Raw decoding function which decodes the contents of the string of specified length (or zero terminate...
    Definition: url.cpp:50
    +
    size_t WXEXTEND_API wxURLEncode(char *dst, size_t dstLen, const char *src, size_t srcLen)
    Raw URL encoding function which encodes the contents of a string of the specified length into the buf...
    Definition: url.cpp:10
    +
    size_t wxURLEncodedSize(size_t len)
    Return the size needed for the buffer containing the encoded representation of a string of given leng...
    Definition: url.h:66
    +
    + + + + diff --git a/valhex_8h_source.html b/valhex_8h_source.html new file mode 100644 index 0000000..f335a4d --- /dev/null +++ b/valhex_8h_source.html @@ -0,0 +1,167 @@ + + + + + + + +wxExtend: include/wxex/valhex.h Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    wxExtend +
    +
    Additional templates and function helpers for wxWidgets
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    valhex.h
    +
    +
    +
    1/*
    +
    2 ​​​SPDX-License-Identifier: GPL-3.0-or-later
    +
    3 Copyright © 2015-2022 Amebis
    +
    4 Copyright © 2016 GÉANT
    +
    5*/
    +
    6
    +
    7#pragma once
    +
    8
    +
    9#include "common.h"
    +
    10
    +
    11#include <codeanalysis\warnings.h>
    +
    12#pragma warning(push)
    +
    13#pragma warning(disable: WXWIDGETS_CODE_ANALYSIS_WARNINGS)
    +
    14#include <wx/valnum.h>
    +
    15#pragma warning(pop)
    +
    16
    +
    19
    + +
    24{
    +
    25 // Do not use values used by wxNumValidatorStyle flags, since this is the extension.
    +
    26 wxNUM_VAL_HEX_LOWERCASE = 0x1000,
    +
    27};
    +
    28
    +
    29
    +
    30#ifdef __VISUALC__
    +
    31// non dll-interface class 'xxx' used as base for dll-interface class 'yyy'
    +
    32#pragma warning (push)
    +
    33#pragma warning (disable:4275)
    +
    34#endif
    +
    35
    +
    39class WXEXTEND_API wxHexValidatorBase : public wxIntegerValidatorBase
    +
    40{
    +
    41protected:
    +
    45 wxHexValidatorBase(int style);
    +
    46
    + +
    51
    +
    57 bool IsMinusOk(const wxString& val, int pos) const;
    +
    58
    +
    62 static bool FromString(const wxString& s, long *value);
    +
    63
    +
    64#ifdef wxHAS_LONG_LONG_T_DIFFERENT_FROM_LONG
    +
    68 static bool FromString(const wxString &s, wxLongLong_t *value);
    +
    69#endif
    +
    70
    +
    74 wxString ToString(LongestValueType value) const;
    +
    75
    +
    76protected:
    +
    78 void DoSetWidth(unsigned int width) { m_width = width; }
    +
    80
    +
    81private:
    +
    83 virtual bool IsCharOk(const wxString& val, int pos, wxChar ch) const;
    +
    85
    +
    86private:
    +
    87 unsigned int m_width;
    +
    88};
    +
    89
    +
    90#ifdef __VISUALC__
    +
    91#pragma warning(pop)
    +
    92#endif
    +
    93
    +
    94
    +
    98template <typename T>
    +
    99class wxHexValidator : public wxPrivate::wxNumValidator<wxHexValidatorBase, T>
    +
    100{
    +
    101public:
    +
    102 typedef wxPrivate::wxNumValidator<wxHexValidatorBase, T> Base;
    +
    103
    +
    107 wxHexValidator(ValueType *value = NULL, int style = wxNUM_VAL_DEFAULT, unsigned int width = 0) : Base(value, style)
    +
    108 {
    +
    109 this->DoSetWidth(width);
    +
    110 this->DoSetMin(std::numeric_limits<ValueType>::min());
    +
    111 this->DoSetMax(std::numeric_limits<ValueType>::max());
    +
    112 }
    +
    113
    +
    117 virtual wxObject *Clone() const { return new wxHexValidator(*this); }
    +
    118
    +
    119private:
    +
    120 wxDECLARE_NO_ASSIGN_CLASS(wxHexValidator);
    +
    121};
    +
    122
    +
    Base class for hexadecimal validator.
    Definition: valhex.h:40
    +
    Validator for hexadecimal entries.
    Definition: valhex.h:100
    +
    wxPrivate::wxNumValidator< wxHexValidatorBase, T > Base
    Base class type.
    Definition: valhex.h:102
    +
    virtual wxObject * Clone() const
    Clones this validator.
    Definition: valhex.h:117
    +
    wxHexValidator(ValueType *value=NULL, int style=wxNUM_VAL_DEFAULT, unsigned int width=0)
    Constructs new hexadecimal validator.
    Definition: valhex.h:107
    +
    wxHexValidatorStyle
    Bit masks used for hexadecimal validator styles.
    Definition: valhex.h:24
    +
    #define WXEXTEND_API
    Public function calling convention.
    Definition: common.h:56
    +
    + + + + diff --git a/valnet_8h_source.html b/valnet_8h_source.html new file mode 100644 index 0000000..b58b06f --- /dev/null +++ b/valnet_8h_source.html @@ -0,0 +1,186 @@ + + + + + + + +wxExtend: include/wxex/valnet.h Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    wxExtend +
    +
    Additional templates and function helpers for wxWidgets
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    valnet.h
    +
    +
    +
    1/*
    +
    2 ​​​​SPDX-License-Identifier: GPL-3.0-or-later
    +
    3 Copyright © 2016-2022 Amebis
    +
    4 Copyright © 2016 GÉANT
    +
    5*/
    +
    6
    +
    7#pragma once
    +
    8
    +
    9#include "common.h"
    +
    10
    +
    11#include <codeanalysis\warnings.h>
    +
    12#pragma warning(push)
    +
    13#pragma warning(disable: WXWIDGETS_CODE_ANALYSIS_WARNINGS)
    +
    14#include <wx/arrstr.h>
    +
    15#include <wx/textctrl.h>
    +
    16#include <wx/validate.h>
    +
    17#pragma warning(pop)
    +
    18
    +
    21
    +
    22#ifdef __VISUALC__
    +
    23// non dll-interface class 'xxx' used as base for dll-interface class 'yyy'
    +
    24#pragma warning (push)
    +
    25#pragma warning (disable:4275)
    +
    26#endif
    +
    27
    +
    31class WXEXTEND_API wxHostNameValidator : public wxValidator
    +
    32{
    +
    33public:
    +
    37 wxHostNameValidator(wxString *val = NULL);
    +
    38
    +
    42 virtual wxObject* Clone() const;
    +
    43
    +
    47 virtual bool Validate(wxWindow *parent);
    +
    48
    +
    52 virtual bool TransferToWindow();
    +
    53
    +
    57 virtual bool TransferFromWindow();
    +
    58
    +
    62 static bool Parse(const wxString &val_in, size_t i_start, size_t i_end, wxTextCtrl *ctrl, wxWindow *parent, wxString *val_out = NULL);
    +
    63
    +
    64protected:
    +
    65 wxString *m_val;
    +
    66
    +
    67private:
    +
    68 wxDECLARE_DYNAMIC_CLASS(wxHostNameValidator);
    +
    69 wxDECLARE_NO_ASSIGN_CLASS(wxHostNameValidator);
    +
    70};
    +
    71
    +
    72
    +
    76class WXEXTEND_API wxFQDNValidator : public wxValidator
    +
    77{
    +
    78public:
    +
    82 wxFQDNValidator(wxString *val = NULL);
    +
    83
    +
    87 virtual wxObject* Clone() const;
    +
    88
    +
    92 virtual bool Validate(wxWindow *parent);
    +
    93
    +
    97 virtual bool TransferToWindow();
    +
    98
    +
    102 virtual bool TransferFromWindow();
    +
    103
    +
    107 static bool Parse(const wxString &val_in, size_t i_start, size_t i_end, wxTextCtrl *ctrl, wxWindow *parent, wxString *val_out = NULL);
    +
    108
    +
    109protected:
    +
    110 wxString *m_val;
    +
    111
    +
    112private:
    +
    113 wxDECLARE_DYNAMIC_CLASS(wxFQDNValidator);
    +
    114 wxDECLARE_NO_ASSIGN_CLASS(wxFQDNValidator);
    +
    115};
    +
    116
    +
    117
    +
    121class WXEXTEND_API wxFQDNListValidator : public wxValidator
    +
    122{
    +
    123public:
    +
    127 wxFQDNListValidator(wxArrayString *val = NULL);
    +
    128
    +
    132 virtual wxObject* Clone() const;
    +
    133
    +
    137 virtual bool Validate(wxWindow *parent);
    +
    138
    +
    142 virtual bool TransferToWindow();
    +
    143
    +
    147 virtual bool TransferFromWindow();
    +
    148
    +
    152 static bool Parse(const wxString &val_in, size_t i_start, size_t i_end, wxTextCtrl *ctrl, wxWindow *parent, wxArrayString *val_out = NULL);
    +
    153
    +
    154protected:
    +
    155 wxArrayString *m_val;
    +
    156
    +
    157private:
    +
    158 wxDECLARE_DYNAMIC_CLASS(wxFQDNListValidator);
    +
    159 wxDECLARE_NO_ASSIGN_CLASS(wxFQDNListValidator);
    +
    160};
    +
    161
    +
    162#ifdef __VISUALC__
    +
    163#pragma warning(pop)
    +
    164#endif
    +
    165
    +
    Validator for FQDN lists.
    Definition: valnet.h:122
    +
    wxArrayString * m_val
    Pointer to variable to receive control's parsed value.
    Definition: valnet.h:155
    +
    Validator for FQDN.
    Definition: valnet.h:77
    +
    wxString * m_val
    Pointer to variable to receive control's parsed value.
    Definition: valnet.h:110
    +
    Validator for host name.
    Definition: valnet.h:32
    +
    wxString * m_val
    Pointer to variable to receive control's parsed value.
    Definition: valnet.h:65
    +
    #define WXEXTEND_API
    Public function calling convention.
    Definition: common.h:56
    +
    + + + + diff --git a/xml_8h_source.html b/xml_8h_source.html new file mode 100644 index 0000000..c082afe --- /dev/null +++ b/xml_8h_source.html @@ -0,0 +1,173 @@ + + + + + + + +wxExtend: include/wxex/xml.h Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    wxExtend +
    +
    Additional templates and function helpers for wxWidgets
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    xml.h
    +
    +
    +
    1/*
    +
    2 ​​​​SPDX-License-Identifier: GPL-3.0-or-later
    +
    3 Copyright © 2016-2022 Amebis
    +
    4 Copyright © 2016 GÉANT
    +
    5*/
    +
    6
    +
    7#pragma once
    +
    8
    +
    9#include "common.h"
    +
    10
    +
    11#include "crypto.h"
    +
    12
    +
    13#include <codeanalysis\warnings.h>
    +
    14#pragma warning(push)
    +
    15#pragma warning(disable: WXWIDGETS_CODE_ANALYSIS_WARNINGS)
    +
    16#include <wx/string.h>
    +
    17#include <wx/xml/xml.h>
    +
    18#pragma warning(pop)
    +
    19
    +
    22
    +
    29inline wxString wxXmlEscapeText(_In_ const wxString& str)
    +
    30{
    +
    31 wxString escaped;
    +
    32 escaped.reserve(str.length());
    +
    33
    +
    34 for (auto i = str.begin(); i != str.end(); ++i) {
    +
    35 const wxChar c = *i;
    +
    36 switch (c) {
    +
    37 case wxS('<'):
    +
    38 escaped.append(wxS("&lt;"));
    +
    39 break;
    +
    40 case wxS('>'):
    +
    41 escaped.append(wxS("&gt;"));
    +
    42 break;
    +
    43 case wxS('&'):
    +
    44 escaped.append(wxS("&amp;"));
    +
    45 break;
    +
    46 case wxS('\r'):
    +
    47 escaped.append(wxS("&#xD;"));
    +
    48 break;
    +
    49 default:
    +
    50 escaped.append(c);
    +
    51 }
    +
    52 }
    +
    53
    +
    54 return escaped;
    +
    55}
    +
    56
    +
    57
    +
    65inline wxString wxXmlEscapeAttr(_In_ const wxString& str)
    +
    66{
    +
    67 wxString escaped;
    +
    68 escaped.reserve(str.length());
    +
    69
    +
    70 for (auto i = str.begin(); i != str.end(); ++i) {
    +
    71 const wxChar c = *i;
    +
    72 switch (c) {
    +
    73 case wxS('<'):
    +
    74 escaped.append(wxS("&lt;"));
    +
    75 break;
    +
    76 case wxS('>'):
    +
    77 escaped.append(wxS("&gt;"));
    +
    78 break;
    +
    79 case wxS('&'):
    +
    80 escaped.append(wxS("&amp;"));
    +
    81 break;
    +
    82 case wxS('\r'):
    +
    83 escaped.append(wxS("&#xD;"));
    +
    84 break;
    +
    85 case wxS('"'):
    +
    86 escaped.append(wxS("&quot;"));
    +
    87 break;
    +
    88 case wxS('\t'):
    +
    89 escaped.append(wxS("&#x9;"));
    +
    90 break;
    +
    91 case wxS('\n'):
    +
    92 escaped.append(wxS("&#xA;"));
    +
    93 break;
    +
    94 default:
    +
    95 escaped.append(c);
    +
    96 }
    +
    97 }
    +
    98
    +
    99 return escaped;
    +
    100}
    +
    101
    +
    102
    +
    110bool WXEXTEND_API wxXmlHashNode(_In_ wxCryptoHash &hash, _In_ const wxXmlNode *node);
    +
    111
    +
    Cryptographics Hash Base.
    Definition: crypto.h:86
    +
    wxString wxXmlEscapeAttr(const wxString &str)
    Escapes attribute value string for XML insertion.
    Definition: xml.h:65
    +
    wxString wxXmlEscapeText(const wxString &str)
    Escapes text string for XML insertion.
    Definition: xml.h:29
    +
    bool WXEXTEND_API wxXmlHashNode(wxCryptoHash &hash, const wxXmlNode *node)
    Calculates hash of the node and all its children.
    Definition: xml.cpp:11
    +
    #define WXEXTEND_API
    Public function calling convention.
    Definition: common.h:56
    +
    + + + +